:root{--blue:#1f4e78;--ink:#20364b;--muted:#617185;--paper:#fff;--canvas:#eef3f7;--line:#d7e1e9;--green:#20734f;--amber:#96631b;font-family:"Malgun Gothic","Apple SD Gothic Neo",Arial,sans-serif;color:var(--ink);background:var(--paper);font-size:15px;line-height:1.6}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}button,input{font:inherit}button,a,input{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,.dropzone:focus-within{outline:3px solid #397fc0}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:var(--blue)}h1,h2,p{margin:0}h1{font-size:30px;line-height:1.4;letter-spacing:-1px}h2{font-size:18px;letter-spacing:-.4px;margin-bottom:18px}p{max-width:76ch}input[type=text],input[type=password],input:not([type]){width:100%;border:1px solid #a8b8c5;padding:11px 12px;border-radius:5px;background:#fff}input[type=radio],input[type=checkbox]{accent-color:var(--blue);width:17px;height:17px;flex-shrink:0}.primary,.secondary,.download-link{display:inline-flex;align-items:center;justify-content:center;padding:11px 22px;border-radius:5px;font-weight:bold;text-decoration:none;border:1px solid var(--blue);background:var(--blue);color:#fff}.primary:hover,.download-link:hover{background:#153f65}.secondary{color:var(--blue);background:white;border-color:#a4b9ca}.text-button{background:none;border:0;padding:3px 0;color:var(--muted)}.text-button:hover{text-decoration:underline}.muted,.footnote{color:var(--muted)}.footnote{font-size:13px;margin-top:14px}.error{color:#a12f26}.notice{padding:14px 18px;background:#fff0ec;border-left:4px solid #b73c2f;margin-bottom:24px;white-space:pre-wrap}.login-wrap{min-height:100vh;display:grid;place-items:center;background:var(--canvas);padding:30px}.login-panel{max-width:430px;width:100%;background:#fff;padding:42px 40px;border-top:5px solid var(--blue);box-shadow:0 12px 40px #20364b0e}.brand-mark{width:42px;height:42px;border:2px solid var(--blue);color:var(--blue);display:grid;place-items:center;font-size:26px;font-weight:bold;line-height:1}.login-panel h1{font-size:26px;margin:20px 0 12px}.login-panel form{margin-top:30px}.login-panel label{display:block;font-size:14px;font-weight:bold;margin:16px 0 5px}.login-panel button{width:100%;margin-top:24px}.login-note{font-size:12px;color:var(--muted);margin-top:30px;line-height:1.8}.login-panel .error{font-size:13px;margin-top:12px}.workspace{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:35px 20px 20px;background:var(--canvas);display:flex;flex-direction:column;border-right:1px solid var(--line)}.brand{display:flex;gap:13px;align-items:center;color:var(--ink);text-decoration:none;line-height:1.4;font-size:14px;margin:0 10px 38px}.brand strong{font-size:23px}.new-job{width:100%;padding:11px 14px}.history-heading{display:flex;justify-content:space-between;margin:30px 10px 10px;font-size:13px;font-weight:bold;color:var(--muted)}#history{overflow-y:auto;flex:1}.history-item{display:block;width:100%;text-align:left;border:1px solid transparent;background:transparent;padding:13px 12px;margin:3px 0;border-radius:5px;color:var(--ink)}.history-item:hover{background:#e2eaf1}.history-item.active{background:white;border-color:#b8ccdc;box-shadow:3px 0 0 var(--blue) inset}.history-item strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.history-item small{font-size:11px;color:var(--muted)}.history-empty{font-size:13px;color:var(--muted);padding:12px}.account{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;margin-top:20px;font-size:13px;gap:10px;overflow-wrap:anywhere}.main{padding:0 48px 48px;max-width:1350px;width:100%;margin:auto}.topbar{height:85px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);font-size:13px;margin-bottom:42px}.template-link{font-weight:bold;text-underline-offset:4px}.page-heading{margin-bottom:34px}.page-heading h1{font-size:34px;line-height:1.4;letter-spacing:-1.2px}.page-heading p{color:var(--muted);margin-top:14px}.dropzone{display:flex;min-height:260px;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#f7fafc;border:2px dashed #9fb8cc;border-radius:9px;cursor:pointer;padding:25px;gap:8px}.dropzone:hover,.dropzone.dragover{border-color:var(--blue);background:#edf5fc}.dropzone strong{font-size:19px;margin-top:9px}.dropzone span:not(.sheet-icon){color:var(--blue);font-size:14px}.dropzone small{color:var(--muted);font-size:12px;margin-top:8px}.sheet-icon{display:grid;grid-template-columns:repeat(2,11px);gap:4px;padding:12px 9px 9px;border:2px solid var(--blue);border-top-width:8px}.sheet-icon i{width:11px;height:5px;background:#a8c2d6}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.workflow{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;padding:30px 0;margin:8px 0 10px;list-style:none;border-bottom:1px solid var(--line)}.workflow li{display:flex;align-items:baseline;gap:12px}.workflow b{font-size:25px;color:#849caf;font-weight:400}.workflow strong{font-size:15px}.workflow p{font-size:13px;color:var(--muted);margin-top:9px;line-height:1.9}.job-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.job-heading h1{overflow-wrap:anywhere;font-size:29px}.eyebrow{font-size:13px;color:var(--muted);margin-bottom:6px}.badge{white-space:nowrap;border-radius:3px;background:var(--canvas);padding:4px 12px;font-size:13px;font-weight:bold}.badge.complete{color:var(--green);background:#e7f4ed}.badge.failed{color:#a12f26;background:#fff0ec}.badge.warning{color:var(--amber);background:#fff4dc}#job-meta{font-size:13px;margin-top:9px}.settings-section{margin-top:32px;border-top:2px solid var(--blue);padding-top:22px}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 25px;margin-bottom:24px}.summary-grid dt{font-size:12px;color:var(--muted)}.summary-grid dd{margin:4px 0 0;font-weight:bold;overflow-wrap:anywhere}.summary-grid dl{margin:0}.table-scroll{overflow-x:auto}.staff-table{width:100%;border-collapse:collapse;text-align:center;font-size:14px}.staff-table caption{text-align:left;font-size:12px;color:var(--muted);margin-bottom:6px}.staff-table th{background:var(--canvas);padding:10px;border-top:1px solid var(--line);font-weight:400}.staff-table td{padding:12px;border-bottom:1px solid var(--line);font-weight:bold}.run-section{margin-top:34px;padding-top:28px;border-top:1px solid var(--line)}.run-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.run-options>label{display:flex;align-items:start;gap:8px;border:1px solid var(--line);border-radius:5px;padding:16px 12px;cursor:pointer}.run-options>label:has(input:checked){border-color:var(--blue);background:#f0f6fb}.run-options strong{display:block;font-size:14px}.run-options small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.checkbox{display:flex;align-items:center;gap:9px;margin-top:22px;font-size:14px}#run-button{margin-top:24px;min-width:190px}.progress-section{display:flex;gap:20px;align-items:center;margin-top:35px;padding:28px;background:var(--canvas)}.progress-section h2{margin-bottom:6px}.progress-section p{font-size:13px}.progress-section button{margin-left:auto;white-space:nowrap}.spinner{width:26px;height:26px;border:3px solid #b5c7d6;border-top-color:var(--blue);border-radius:50%;animation:spin 1.2s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}#result-section{margin-top:34px;padding-top:28px;border-top:1px solid var(--line)}#result-message{white-space:pre-wrap;font-size:14px}#result-message.warning{padding:16px;background:#fff5df;color:#735018}.download-actions{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}.download-link.secondary{background:white;color:var(--blue)}.map-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.map-tile{border:1px solid var(--line);background:white;padding:12px;text-align:left;cursor:zoom-in;border-radius:3px}.map-tile img{display:block;width:100%;height:230px;object-fit:contain;background:#f7f9fb}.map-tile span{display:block;font-size:13px;font-weight:bold;margin:12px 3px 4px;overflow-wrap:anywhere}details{margin-top:24px;border-top:1px solid var(--line);padding-top:18px}summary{cursor:pointer;color:var(--blue);font-size:14px}#file-list a{display:block;margin:10px 0;font-size:13px;overflow-wrap:anywhere}.next-step{padding:18px 20px;background:var(--canvas);font-size:14px;margin-top:24px}.job-footer{margin-top:38px;border-top:1px solid var(--line);padding-top:18px}.danger{font-size:13px;color:#a44236}.plan-summary{font-size:13px;color:var(--muted);margin-bottom:18px}dialog{width:min(1300px,95vw);max-height:95vh;border:1px solid var(--line);padding:20px;border-radius:6px}dialog::backdrop{background:#102539b3}.dialog-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}dialog img{width:100%;display:block}.dialog-toolbar strong{font-size:14px;overflow-wrap:anywhere}@media(min-width:1500px){.main{padding-left:65px;padding-right:65px}}@media(max-width:1000px){.workspace{grid-template-columns:220px minmax(0,1fr)}.main{padding:0 28px 35px}.run-options{grid-template-columns:1fr}.workflow{gap:14px}.workflow li{gap:7px}.workflow p br{display:none}.summary-grid{grid-template-columns:repeat(2,1fr)}.page-heading h1{font-size:30px}.progress-section{flex-wrap:wrap}}@media(max-width:700px){.workspace{display:block}.sidebar{height:auto;position:relative;padding:18px 20px;display:grid;grid-template-columns:1fr auto;gap:12px}.brand{margin:0}.brand strong{font-size:19px}.brand-mark{width:34px;height:34px;font-size:21px}.new-job{width:auto;font-size:13px}.history-heading{display:none}#history{grid-column:1/-1;display:flex;gap:6px;overflow:auto;max-height:85px}.history-item{min-width:170px;max-width:200px}.account{grid-column:1/-1;margin:0;padding-top:9px}.main{padding:0 20px 30px}.topbar{height:65px;margin-bottom:26px}.page-heading h1{font-size:27px}.dropzone{min-height:230px}.dropzone strong{font-size:16px}.workflow{grid-template-columns:1fr;gap:22px}.workflow p{margin-top:3px}.workflow p br{display:none}.job-heading h1{font-size:24px}.summary-grid{gap:18px}.map-grid{grid-template-columns:1fr}.progress-section{padding:20px}.login-panel{padding:30px 25px}.staff-table{min-width:360px}.dialog-toolbar{align-items:flex-start}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}
/* Dedicated administration uses the same roster table typography and colors. */
body:not([data-view="admin"]) .admin-only{display:none!important}
body[data-view="admin"] .user-only{display:none!important}
body[data-view="admin"] .sidebar .admin-nav{flex:1;border-top:0;margin-top:0;padding-top:0}
body[data-view="admin"] .login-panel form{margin-top:24px}
body[data-view="admin"] .sidebar>.secondary{display:flex!important;font-size:13px;padding:9px 10px}
.admin-entry{font-size:13px;margin-top:12px}
.admin-nav{border-top:1px solid var(--line);padding-top:16px;margin-top:12px;display:flex;flex-direction:column;gap:3px}.admin-nav>strong{font-size:12px;color:var(--muted);padding:0 10px 6px}.admin-nav button{background:transparent;border:0;text-align:left;padding:9px 11px;border-radius:4px;color:var(--ink);font-size:14px}.admin-nav button:hover,.admin-nav button.active{background:#dce8f1;color:var(--blue);font-weight:bold}.account-password{font-size:12px;text-align:left;margin:16px 10px 0}.admin-heading,.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px}.admin-heading h1{font-size:29px}.admin-status{font-size:13px;color:var(--muted);margin:15px 0 28px;min-height:21px}.admin-status.error{color:#a12f26}.admin-toolbar{margin-bottom:24px}.admin-toolbar p{font-size:13px}.admin-toolbar button,.admin-toolbar a{white-space:nowrap}.admin-table{width:100%;border-collapse:collapse;font-size:13px;min-width:720px}.admin-table th{text-align:left;font-size:12px;background:var(--canvas);padding:12px 10px;border-top:2px solid var(--blue);white-space:nowrap}.admin-table td{padding:15px 10px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere;max-width:240px}.admin-table small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.admin-table strong{display:block;font-size:13px}.admin-table .compact{padding:5px 8px;font-size:12px;margin:0 4px 5px 0;white-space:nowrap}.disabled-user{color:#a44236}.filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:22px 0}.filter-bar label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}.filter-bar input,.filter-bar select{width:155px;min-height:42px}.filter-bar input,.filter-bar select,.account-dialog select{border:1px solid #a8b8c5;border-radius:4px;padding:8px 10px;background:#fff;color:var(--ink);font:inherit}.filter-bar button{padding:8px 18px;min-height:42px}.pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:25px;font-size:13px}.empty-cell{text-align:center;padding:35px!important;color:var(--muted)}.admin-table details{margin:0;padding:0;border:0}.admin-table details summary{font-size:12px}.admin-table pre{font-family:inherit;font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere;max-width:300px;min-width:150px;background:var(--canvas);padding:9px;border-radius:3px}.log-table{min-width:820px}.log-table td:nth-child(1){white-space:nowrap;font-size:11px}.log-table td .text-button{display:block;font-size:11px}.load-more{margin-top:22px}.account-dialog{max-width:520px;padding:30px}.account-dialog .dialog-toolbar h2{margin:0}.account-dialog label{display:block;font-size:13px;font-weight:bold;margin:18px 0 5px}.account-dialog input,.account-dialog select{width:100%}.account-dialog [type=submit]{width:100%;margin-top:24px}.account-dialog .error{font-size:13px;margin-top:15px}.account-columns{display:grid;grid-template-columns:1.5fr 1fr;gap:14px}.account-dialog .footnote{font-size:12px}.admin-table a{white-space:nowrap}#back-admin-jobs{margin-bottom:18px;font-size:13px}@media(max-width:700px){.admin-nav{grid-column:1/-1;flex-direction:row;align-items:center;padding-top:10px;margin-top:0}.admin-nav>strong{display:none}.admin-nav button{flex:1;text-align:center;font-size:12px}.account-password{margin:0;grid-column:1/-1;text-align:right}.admin-toolbar{align-items:flex-start;flex-wrap:wrap}.admin-heading h1{font-size:25px}.admin-toolbar .primary{width:100%}.account-dialog{padding:22px}.filter-bar label{flex:1;min-width:140px}.filter-bar input,.filter-bar select{width:100%}.pagination{gap:12px}.account-columns{grid-template-columns:1fr}}
.main{margin:0 auto}
.workbook-section{margin-top:34px;border-top:1px solid var(--line);padding-top:25px}.workbook-heading{display:flex;gap:18px;justify-content:space-between;align-items:center;flex-wrap:wrap}.workbook-heading h2{margin:0}.workbook-legend{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap}.review-key{padding:2px 8px;border-radius:3px;color:var(--ink)}.review-key.error{background:#fce4e4;color:#8f2020}.review-key.review{background:#fff2cc;color:#654a00}.workbook-scroll{max-height:560px;overflow:auto;border:1px solid var(--line);margin-top:14px}.workbook-table{border-collapse:separate;border-spacing:0;font-size:12px;width:max-content;min-width:100%}.workbook-table th,.workbook-table td{padding:8px 10px;border-right:1px solid #e0e5e9;border-bottom:1px solid #e0e5e9;vertical-align:top;min-width:80px;max-width:380px;white-space:pre-wrap;overflow-wrap:anywhere}.workbook-table thead th{position:sticky;top:0;background:#eaf1f6;color:var(--ink);z-index:2;text-align:center;font-weight:600}.workbook-table tbody th{position:sticky;left:0;background:#f2f5f7;z-index:1;text-align:right;min-width:48px;max-width:70px}.workbook-table tbody td{background:#fff}.workbook-table .workbook-reason{min-width:230px;max-width:300px;white-space:normal}.workbook-reason strong,.workbook-reason span{display:block}.workbook-reason span{margin-top:3px}.workbook-table tr.row-error td,.workbook-table tr.row-error th{background:#fce4e4;color:#8f2020}.workbook-table tr.row-review td,.workbook-table tr.row-review th{background:#fff2cc;color:#654a00}.workbook-table tr.row-error th{box-shadow:inset 4px 0 #bb3535}.workbook-table tr.row-review th{box-shadow:inset 4px 0 #c39427}#workbook-search{width:240px}#workbook-sheet{width:190px}#workbook-status{min-height:22px}@media(max-width:700px){.workbook-heading{align-items:flex-start;flex-direction:column}.workbook-scroll{max-height:450px}#workbook-search,#workbook-sheet{width:100%}}
.login-panel .auth-tabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin-top:24px}.login-panel .auth-tabs button{width:50%;margin:0;padding:12px;background:none;border:0;border-bottom:3px solid transparent;color:var(--muted);font-weight:bold}.login-panel .auth-tabs button.active{border-color:var(--blue);color:var(--blue)}.login-panel .auth-tabs+form{margin-top:16px}.registration-result{margin-top:24px;padding:20px;background:#e7f4ed;color:var(--green);font-size:14px}.approval-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff6df;padding:18px 20px;border-left:4px solid #c08b27;margin-bottom:24px}.approval-banner strong{font-size:17px}.approval-banner p,.approval-banner label{font-size:12px;color:#75531d}.approval-banner p{margin-top:5px}.approval-banner label{display:flex;align-items:center;gap:8px;white-space:nowrap}.pending-user{color:#96631b;font-weight:bold}@media(max-width:700px){.approval-banner{align-items:flex-start;flex-direction:column}}
