:root{--green:#03c75a;--green-dark:#02a94f;--green-soft:#eafbf1;--ink:#172033;--muted:#667085;--bg:#f4f7f5;--card:#fff;--line:#e3e9e5;--shadow:0 10px 28px rgba(31,52,44,.07)} *{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"NanumSquare","Malgun Gothic",Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px}button,input{font:inherit}.app{min-height:100vh;min-height:100svh;display:flex;flex-direction:column}.topbar{height:70px;background:#fff;border-bottom:1px solid #edf1ee;display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:20}.logo{font-size:25px;font-weight:900;letter-spacing:-1.7px}.title-base{color:#111}.title-change{color:#e60012}.title-service{color:var(--green)}.top-actions{display:flex;align-items:center}.home-btn{border:1px solid #cfe6d8;background:#fff;color:#0b6f39;border-radius:11px;padding:9px 14px;font-weight:800;cursor:pointer}.home-btn:hover{border-color:var(--green);background:var(--green-soft)} .workspace{display:grid;grid-template-columns:260px minmax(720px,1fr) 260px;gap:22px;max-width:1900px;width:100%;margin:0 auto;padding:18px 22px;flex:1;align-items:stretch}.content-frame{min-width:0;display:flex}.main-scroll{min-width:0;display:flex;flex:1;width:100%}.main{max-width:1180px;width:100%;margin:0 auto;display:flex;flex-direction:column;min-height:100%}.hero{margin-bottom:18px}.hero h1{font-size:26px;margin:0;letter-spacing:-.8px}.card{background:var(--card);border:1px solid #e6ebe7;border-radius:17px;box-shadow:var(--shadow);padding:21px;margin-bottom:18px} .file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.dropzone{border:2px dashed #8dddaf;border-radius:15px;background:#f8fffb;padding:28px 22px;text-align:center;transition:.18s;cursor:pointer;display:block;outline:none}.dropzone:hover,.dropzone:focus,.dropzone.drag{border-color:var(--green);background:var(--green-soft)}.dropzone.processing{pointer-events:none;opacity:.72}.drop-icon{width:48px;height:48px;border-radius:14px;background:var(--green);color:#fff;margin:0 auto 11px;display:grid;place-items:center;font-size:26px;font-weight:300}.drop-main{font-weight:900;font-size:15px}.drop-sub{color:var(--muted);margin-top:6px;font-size:12px;line-height:1.6} .file-card{display:none;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-top:12px;background:#fff}.file-left{display:flex;align-items:center;gap:12px;min-width:0}.excel-icon{width:39px;height:39px;border-radius:10px;background:var(--green-soft);color:var(--green-dark);display:grid;place-items:center;font-weight:900}.file-name{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:650px}.file-meta{font-size:12px;color:var(--muted);margin-top:2px}.mini-btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 11px;font-weight:800;color:#475467;cursor:pointer}.mini-btn:hover{border-color:var(--green);color:var(--green-dark)}.mini-btn:disabled{opacity:.45;cursor:not-allowed;background:#f2f4f3} .upload-error{display:none;color:#b42318;background:#fff2f1;border:1px solid #f5b7b3;border-radius:10px;padding:10px 12px;margin-top:10px;line-height:1.55;font-weight:700}.warn{color:#9a5b00;background:#fff9e8;border:1px solid #f3d68a;border-radius:10px;padding:10px 12px;margin-top:10px;display:none}.status{display:none;margin-top:12px;border:1px solid #a8dfbd;background:#f3fff8;border-radius:12px;padding:13px}.status-head{display:flex;justify-content:space-between;font-weight:800;margin-bottom:8px}.progress{height:9px;border-radius:99px;background:#dff2e7;overflow:hidden}.bar{height:100%;width:0;background:var(--green);transition:.2s}.log{margin-top:8px;font-size:12px;color:#475467;max-height:80px;overflow:auto;white-space:pre-line} .stage-actions{display:flex;justify-content:center;margin:18px 0 0}.stage-guide{text-align:center}.stage-guide-sub{font-size:12px;color:var(--muted);line-height:1.75}.stage-guide-sub+.stage-guide-sub{margin-top:.35vh}.secondary-info-zone{margin-top:auto;width:100%;padding-bottom:1vh}.secondary-guide{text-align:center}.secondary-info-zone .frame-footer{margin-top:1.4vh} .side-frame{background:#fff;border:1px solid #edf1ee;border-radius:22px;display:flex;align-items:flex-start;justify-content:center;padding:22px 0;min-height:620px}.ad-panel,.ad-slot-shell{width:260px;max-width:100%}.ad-slot{width:100%;min-width:0}.ad-slot .adsbygoogle{display:block;width:100%}.bottom-ad-region{display:none;width:100%;margin:0 auto}.bottom-ad-shell{width:100%;max-width:970px;margin:0 auto}.ad-slot-bottom{width:100%} .frame-footer{margin-top:0;border-top:1px solid #e9efeb;background:#fff;padding:11px 16px;font-size:12px;color:var(--muted);line-height:1.5;text-align:center;display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap}.frame-footer a{color:var(--muted);text-decoration:none}.frame-footer a:hover{color:var(--green-dark);text-decoration:underline}.footer-nav{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}.footer-sep{color:#c0c8c3}.toast{position:fixed;right:24px;bottom:24px;background:#153d28;color:#fff;padding:12px 15px;border-radius:10px;box-shadow:0 12px 28px rgba(0,0,0,.22);opacity:0;transform:translateY(12px);pointer-events:none;transition:.25s;z-index:99}.toast.show{opacity:1;transform:translateY(0)} @media(min-width:1600px){.side-left,.side-right{display:flex}} @media(min-width:1280px) and (max-width:1599px){.workspace{grid-template-columns:minmax(760px,1fr) 260px;max-width:1560px}.side-left{display:none}.side-right{display:flex}} @media(max-width:1279px){.workspace{grid-template-columns:1fr;max-width:1180px;padding:14px}.side-frame{display:none}.bottom-ad-region{display:block}.topbar{padding:0 14px}} @media(max-width:640px){.workspace{padding:10px}.card{padding:14px}.quick-info{margin-top:22px;padding:14px}.frame-footer{padding:12px 10px;gap:6px}.frame-footer>.footer-sep{display:none}.footer-mail{width:100%}}@media(max-width:1279px){.secondary-info-zone{padding-bottom:.8vh}}@media(max-width:760px){.secondary-info-zone{padding-bottom:.6vh}}@media(max-width:1279px){.bottom-ad-region{display:block}.bottom-ad-region:has(.adsbygoogle){margin-top:2vh}.bottom-ad-region:has(.adsbygoogle)+.frame-footer{margin-top:2vh}}