:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans KR,sans-serif;color:var(--text);background:var(--page);font-synthesis:none;--page: #f7f8fa;--panel: #fff;--text: #202925;--muted: #64726c;--border: #e1e6e3;--soft: #f1f5f3;--green: #205c47;--on-green: #fff;color-scheme:light}[data-theme=dark]{--page: #141917;--panel: #1d2421;--text: #e3eae6;--muted: #a1b2a8;--border: #34443c;--soft: #27352e;--green: #84c8a7;--on-green: #12251c;color-scheme:dark}*{box-sizing:border-box}body{margin:0;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--green);outline-offset:3px}button svg{pointer-events:none}svg{width:19px;height:19px;stroke-width:1.7;flex-shrink:0}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}small{font-size:12px}input[type=checkbox],input[type=radio]{accent-color:var(--green);width:21px;height:21px;flex-shrink:0}input:not([type=checkbox]):not([type=radio]),select{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:7px;padding:12px;min-height:44px;min-width:0;max-width:100%}select{cursor:pointer}input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;background:var(--panel);border-bottom:1px solid var(--border);padding:0 max(24px,calc((100vw - 1200px)/2))}.brand{display:flex;gap:10px;align-items:center;font-size:21px;font-weight:700;letter-spacing:-.7px}.brand>svg{width:29px;height:29px;color:var(--green)}.brand-sub{display:block;font-size:9px;letter-spacing:1px;color:var(--muted);font-weight:400;margin-top:4px}.top-actions{display:flex;gap:12px}.icon-button{background:none;color:var(--muted);padding:12px;min-width:44px;min-height:44px}.workspace{max-width:1200px;margin:0 auto;padding:32px 24px 0}.heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.heading h1{font-size:28px;letter-spacing:-1px;font-weight:650;margin-bottom:10px}.heading p{color:var(--muted);line-height:1.7}.local-label{display:flex;gap:10px;align-items:center;color:var(--green);font-size:12px}.local-label small{display:block;color:var(--muted);margin-top:5px}.section-label{font-size:14px;margin:24px 0 12px;font-weight:600}.mode-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:24px}.mode-tabs button{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:16px;color:var(--muted);font-weight:600;min-height:70px}.mode-tabs .active{background:var(--soft);border-color:var(--green);color:var(--green)}.mode-icon{display:grid;place-items:center}.mode-tabs small,.active-dot{display:none}.work-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:20px;align-items:start}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden}.panel-title{min-height:64px;padding:10px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.panel-title>div{display:flex;align-items:center;gap:10px}.panel-title h2{font-size:15px;font-weight:600}.panel-title>svg{color:var(--muted)}.step,.count{font-size:12px;color:var(--muted);background:var(--soft);border-radius:4px;padding:4px 6px}.text-button{background:none;color:var(--muted);font-size:12px;padding:12px;min-height:44px}.text-button:hover{color:var(--green)}.dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border:1.5px dashed var(--border);background:var(--soft);border-radius:8px;margin:20px;padding:24px 16px;transition:.15s}.dropzone.dragging{border-color:var(--green)}.dropzone.disabled{opacity:.6;pointer-events:none}.upload-icon{display:grid;place-items:center;color:var(--green);width:40px;height:40px}.dropzone strong{font-size:14px;font-weight:550}.dropzone>span:not(.upload-icon):not(.upload-button){font-size:12px;color:var(--muted)}.upload-button{border-radius:6px;background:var(--green);color:var(--on-green);display:flex;align-items:center;gap:8px;padding:12px 24px;min-height:48px;font-size:14px}.file-list{padding:0 20px;display:flex;flex-direction:column;gap:10px}.file-card{border:1px solid var(--border);border-radius:7px;overflow:hidden}.file-top{display:flex;align-items:center;gap:8px;padding:10px}.file-icon{display:grid;place-items:center;background:var(--soft);width:32px;height:40px;border-radius:5px;color:var(--green)}.file-info{min-width:0;flex:1}.file-info strong{font-size:13px;font-weight:550;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-info small{display:block;color:var(--muted);margin-top:6px;font-size:11px}.file-info small span{margin:0 3px}.file-top button{background:none;color:var(--muted);min-height:44px;min-width:38px;padding:8px}.file-top button svg{width:16px;height:16px}.file-sheets{display:flex;flex-direction:column;background:var(--soft);border-top:1px solid var(--border);padding:6px 12px}.file-sheets label{display:flex;align-items:center;gap:8px;font-size:12px;min-height:44px}.file-sheets small{margin-left:auto;color:var(--muted);font-size:11px}.file-summary{display:flex;align-items:center;justify-content:space-between;margin:16px 20px;padding:14px 0;border-top:1px solid var(--border);font-size:12px;color:var(--muted)}.file-summary>span{display:flex;gap:6px;align-items:center}.file-summary strong{color:var(--green);font-size:18px}.file-summary strong small{font-weight:400;color:var(--muted);font-size:11px}.preview-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 20px 14px}.preview-heading h3{font-size:13px;font-weight:600;white-space:nowrap}.preview-heading select{font-size:12px;max-width:65%}.table-wrap{overflow:auto;max-height:300px;border-top:1px solid var(--border);scrollbar-width:thin}.table-wrap table{border-collapse:collapse;font-size:12px;width:100%;white-space:nowrap}.table-wrap th{background:var(--soft);font-weight:500;color:var(--muted);padding:12px 14px;text-align:left;position:sticky;top:0;z-index:1}.table-wrap td{padding:12px 14px;border-bottom:1px solid var(--border);max-width:240px;overflow:hidden;text-overflow:ellipsis}.table-wrap .rownum{color:var(--muted);text-align:center}.preview-note{color:var(--muted);font-size:11px;text-align:right;padding:14px 20px}.empty-preview{padding:32px 20px;text-align:center;font-size:12px;color:var(--muted);background:var(--soft)}.option-body{padding:20px}.option-heading{margin-bottom:22px}.option-heading h2{font-size:20px;font-weight:600;margin-bottom:8px}.option-heading p{font-size:12px;color:var(--muted);line-height:1.6}fieldset{padding:0;border:0;margin:0;min-width:0}.option-explain{padding:14px;background:var(--soft);border-radius:6px;display:flex;align-items:flex-start;gap:9px;color:var(--muted);font-size:12px;line-height:1.8;margin-bottom:20px}fieldset h3{font-size:13px;margin:18px 0 14px}.check{display:flex;gap:12px;align-items:flex-start;min-height:48px;cursor:pointer;font-size:14px}.check input{margin:0}.check span{line-height:1.5}.check small{display:block;color:var(--muted);margin-top:4px;font-size:12px;line-height:1.6}.hint{font-size:12px;color:var(--muted);line-height:1.8;margin:14px 0}.field{display:flex;flex-direction:column;gap:9px;font-size:13px;margin:18px 0}.field select[multiple]{min-height:115px}.field small,details>small{font-size:11px;color:var(--muted);line-height:1.8}.radio{display:flex;align-items:center;gap:8px;font-size:13px;min-height:48px}details{border-top:1px solid var(--border);padding:8px 0 0;margin-top:16px}summary{display:flex;align-items:center;justify-content:space-between;font-size:13px;cursor:pointer;list-style:none;min-height:44px}.sheet-tags{display:flex;gap:7px;flex-wrap:wrap}.sheet-tags span{background:var(--soft);font-size:12px;padding:8px 12px;border-radius:4px}.run-area{border-top:1px solid var(--border);padding:20px;background:var(--panel)}.qc-label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--green);margin-bottom:12px}.primary{background:var(--green);color:var(--on-green);border-radius:6px;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;font-size:14px;font-weight:500;min-height:48px}.run-area .primary{width:100%;min-height:54px}.run-area .primary>span{margin-left:auto;font-size:12px;opacity:.8}.run-area>small{display:block;color:var(--muted);text-align:center;font-size:11px;margin-top:12px}.progress{margin-top:16px}.progress-label{display:flex;justify-content:space-between;font-size:12px;margin-bottom:8px}.progress-track{height:6px;background:var(--soft);border-radius:5px;overflow:hidden}.progress-track>div{background:var(--green);height:100%;width:0}.result-placeholder{margin-top:20px;display:flex;align-items:center;gap:14px;border:1px solid var(--border);border-radius:8px;padding:22px;color:var(--muted);background:var(--panel)}.result-placeholder strong{font-size:14px;font-weight:500}.result-placeholder p{font-size:12px;margin-top:6px}.result-placeholder .step{margin-left:auto}.result-panel{margin-top:20px;padding:24px}.result-top{display:flex;align-items:center;gap:20px}.result-top>div:nth-child(2){flex:1}.result-top h3{font-size:15px;margin-bottom:8px}.result-top p{font-size:12px;color:var(--muted);line-height:1.7}.qc-status{display:flex;align-items:center;gap:12px;padding:16px;background:var(--soft);border-radius:8px;color:var(--green);flex-shrink:0}.qc-status>svg{width:32px;height:32px}.qc-status span{font-size:10px;letter-spacing:1px}.qc-status h2{font-size:28px;margin-top:4px}.qc-status.fail{background:#fff0eb;color:#ad422b}.secondary{border:1px solid var(--border);color:var(--text);background:var(--panel);border-radius:6px;min-height:44px;padding:10px 14px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px}.stats{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;padding:22px 0;margin:20px 0;border-block:1px solid var(--border)}.stats>div{text-align:center}.stats span{display:block;font-size:12px;color:var(--muted);margin-bottom:10px}.stats strong{font-size:24px;font-weight:600}.checks{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:20px}.checks span{font-size:12px;color:var(--green);display:flex;align-items:center;gap:6px}.checks .failed,.history-qc.failed{color:#c9553b}.download-row{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.download-row>label{font-size:12px;display:flex;flex-direction:column;gap:8px}.result-panel .preview-heading{margin:24px 0 14px}.notice{background:#fff3ec;border:1px solid #efd4be;padding:14px;border-radius:8px;display:flex;align-items:flex-start;gap:9px;color:#9a4a23;font-size:13px;margin:0 0 18px;line-height:1.8}.notice span{flex:1}.notice button{background:none;color:inherit;min-width:44px;min-height:44px}[hidden]{display:none!important}footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:28px 0;font-size:11px;color:var(--muted)}footer>span:last-child{display:flex;align-items:center;gap:5px}footer b{font-weight:400}.recent{border:1px solid var(--border);border-radius:8px;background:var(--panel);padding:6px 16px}.recent-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.recent-heading h2,.recent-heading h3{font-size:13px;font-weight:600}.history-empty{padding:6px 0 16px;color:var(--muted);font-size:12px;line-height:1.8}.history-list{list-style:none;padding:0;margin:0}.history-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--border)}.history-list strong{font-size:12px;font-weight:500}.history-list small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.history-qc{color:var(--green);font-size:11px;white-space:nowrap}.settings-dialog{border:1px solid var(--border);border-radius:12px;padding:0;max-width:500px;width:calc(100% - 32px);max-height:90dvh;background:var(--panel);color:var(--text)}.settings-dialog::backdrop{background:#0007}.settings-dialog header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border)}.settings-dialog h2{font-size:20px}.settings-body{padding:4px 20px 20px}.settings-dialog footer{position:sticky;bottom:0;background:var(--panel);border-top:1px solid var(--border);padding:14px 20px;justify-content:flex-end}.settings-dialog footer button{min-width:90px}#settings-error{color:#c9553b}@media(max-width:760px){.topbar{padding:0 16px;height:68px}.brand{font-size:20px}.brand-sub{font-size:8px}.workspace{padding:24px 16px 0}.heading h1{font-size:25px}.heading p{font-size:13px}.local-label{display:none}.mode-tabs{grid-template-columns:repeat(2,1fr);gap:8px}.mode-tabs button{padding:14px 12px;font-size:13px;min-height:62px}.work-grid{display:flex;flex-direction:column;gap:16px}.panel{width:100%}.file-top{gap:5px}.file-top button{min-width:36px}.file-info strong{font-size:12px}.file-info small{font-size:10px}.file-icon{width:26px}.file-list{padding:0 12px}.dropzone{margin:16px}.dropzone strong{font-size:13px}.dropzone>span:not(.upload-icon):not(.upload-button){font-size:11px}.preview-heading{margin-inline:16px}.preview-heading h3{font-size:12px}.preview-heading select{font-size:11px}.table-wrap{max-height:250px}.result-panel{padding:16px}.result-top{flex-wrap:wrap;gap:14px}.result-top>div:nth-child(2){min-width:150px}.result-top h3{font-size:13px}.result-top p{font-size:11px}.result-top>.secondary{width:100%}.qc-status h2{font-size:26px}.stats{grid-template-columns:repeat(3,1fr);gap:22px 8px}.stats>div:last-child{grid-column:2}.stats span{font-size:11px}.checks span{font-size:11px;line-height:1.6}.download-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.download-row>label,.download-row>.primary{grid-column:1/-1}.download-row>button{min-height:50px;font-size:12px;padding:10px}.download-row>.text-button{border:1px solid var(--border);border-radius:6px}.result-placeholder p{font-size:11px;line-height:1.6}footer{flex-direction:column;font-size:10px;text-align:center}.settings-dialog{max-height:92dvh}.history-list small{font-size:10px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.heading>.primary{flex-shrink:0}.heading>div:first-child{flex:1}@media(max-width:760px){.heading{gap:12px}.heading h1{font-size:22px}.heading>.primary{padding:12px;font-size:13px}.heading p{font-size:12px}}
