:root{--bg:#f2f5f5;--panel:#fff;--ink:#18313a;--muted:#667b83;--line:#d6e0e2;--brand:#126b63;--brand-dark:#0b514b;--soft:#eaf6f3;--success:#147a4f;--warning:#94620b;--danger:#aa332b;--shadow:0 8px 24px rgba(23,51,60,.06)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 Inter,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:9px;padding:9px 13px;cursor:pointer}button:hover{border-color:var(--brand);color:var(--brand-dark)}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700}.primary:hover{background:var(--brand-dark);color:#fff}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;color:#fff;background:linear-gradient(145deg,var(--brand),#1b8c7f);font-weight:900}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,#d9efea,var(--bg) 55%)}.login-shell[hidden]{display:none}.login-card{width:min(420px,100%);display:grid;gap:14px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:0 25px 70px rgba(20,50,58,.15)}.login-card h1,.login-card p{margin:0}.error-text{color:var(--danger)}label{display:grid;gap:5px;font-size:12px;font-weight:700;color:#40545b}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 10px;color:var(--ink);background:#fff}input:focus,select:focus,textarea:focus{outline:3px solid rgba(18,107,99,.12);border-color:var(--brand)}
.app-header{position:sticky;top:0;z-index:1000;display:grid;grid-template-columns:auto minmax(360px,1fr) auto;gap:22px;align-items:center;min-height:72px;padding:12px 22px;background:#fff;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;min-width:210px}.brand h1{font-size:19px;margin:0}.brand p{font-size:11px;color:var(--muted);margin:0}.global-search{position:relative;display:grid;grid-template-columns:1fr auto;gap:8px}.search-results{position:absolute;top:46px;left:0;right:0;z-index:1100;max-height:420px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 45px rgba(20,45,54,.18);padding:6px}.search-results button{width:100%;display:grid;text-align:left;border:0;border-radius:7px}.search-results button:hover{background:var(--soft)}.search-results small{color:var(--muted)}.session-box{display:flex;align-items:center;justify-content:flex-end;gap:7px;font-size:11px;white-space:nowrap}
main{max-width:1680px;margin:0 auto;padding:24px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:16px}.page-heading h2{margin:2px 0;font-size:28px}.page-heading p{margin:0;color:var(--muted)}.eyebrow{font-size:10px;font-weight:900;letter-spacing:.1em;color:var(--brand)}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.message{position:sticky;top:84px;z-index:900;white-space:pre-wrap;margin-bottom:14px;padding:12px 14px;border:1px solid #efd69d;border-radius:9px;background:#fff8e7}.message.error{border-color:#edb5b1;background:#fff1f0;color:var(--danger)}
.workspace-tabs{display:flex;gap:6px;overflow:auto;margin-bottom:18px;padding:5px;background:#e7eeee;border:1px solid var(--line);border-radius:12px}.workspace-tab-button{white-space:nowrap;border-color:transparent;background:transparent}.workspace-tab-button.active{border-color:var(--brand);background:#fff;color:var(--brand-dark);font-weight:800;box-shadow:var(--shadow)}.workspace-view[hidden]{display:none}.dismissible{position:relative;padding-right:48px}.close-notice{position:absolute;right:9px;top:8px;padding:1px 8px;border:0;background:transparent;font-size:21px;line-height:1}.paf-field{min-width:190px}.filters{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin-bottom:14px}.filters input{min-width:170px;flex:1}.filters select{width:auto;min-width:145px}.checkbox-label{display:flex;align-items:center;gap:8px;align-self:end;padding:10px 0}.checkbox-label input{width:auto}.batch-methods{grid-template-columns:repeat(3,minmax(0,1fr))}.batch-config{margin-bottom:14px}.review-locked input,.review-locked select,.review-locked textarea{background:#f0f3f4;color:#667b83}.review-locked #pafReference{background:#fff;color:var(--ink)}
.progress-panel{margin-bottom:16px;padding:15px 18px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.progress-heading{display:flex;justify-content:space-between}.progress-track{height:10px;margin:9px 0;border-radius:999px;background:#e5ecee;overflow:hidden}.progress-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),#3aab96);transition:width .35s ease}.progress-panel p{margin:0;color:var(--muted);font-size:12px}.warning-list{margin:8px 0 0;padding-left:20px;color:var(--warning);font-size:11px}
.progress-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.progress-metric{padding:8px;border-radius:8px;background:var(--soft);font-size:11px}.progress-metric strong{display:block;font-size:15px;color:var(--brand)}.progress-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:10px 0;padding:0;list-style:none}.progress-steps li{font-size:11px;color:var(--muted)}.progress-steps li.done{color:var(--success)}.progress-steps li.active{color:var(--brand);font-weight:800}.progress-timing,.progress-next{margin-top:5px!important}.progress-slow{margin-top:8px!important;padding:7px;border-radius:7px;background:#fff8e7;color:var(--warning)!important}
.workflow-grid{display:grid;grid-template-columns:minmax(740px,1.55fr) minmax(340px,.62fr);gap:18px;align-items:start}.workflow-main{display:grid;gap:16px}.workflow-aside{display:grid;gap:16px;position:sticky;top:92px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:18px;box-shadow:var(--shadow)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.panel-heading>div{display:flex;align-items:center;gap:11px}.panel h3,.panel h4{margin:0}.panel-heading p{margin:2px 0 0;color:var(--muted);font-size:12px}.step-number{display:grid;place-items:center;min-width:34px;height:34px;border-radius:50%;background:var(--soft);color:var(--brand);font-weight:900}.pill{display:inline-flex;align-items:center;padding:4px 9px;border:1px solid var(--line);border-radius:999px;font-size:11px}.pill.success{color:var(--success);border-color:#a5d9bf;background:#edfbf4}.pill.review{color:var(--warning);border-color:#edd391;background:#fff8e7}.pill.danger{color:var(--danger);border-color:#edb5b1;background:#fff1f0}.pill.neutral{color:var(--muted);background:#f7f9fa}.muted,.empty{color:var(--muted);font-size:12px}.upload-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px;margin-bottom:15px;border:1px dashed #adc2c5;border-radius:9px;background:#f8fbfb}.form-grid{display:grid;gap:11px}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.span-2{grid-column:span 2}.advanced{margin-top:12px}.advanced summary{cursor:pointer;color:var(--brand);font-weight:750;margin-bottom:12px}
.location-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.location-summary span{padding:9px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:10px}.location-summary strong{display:block;margin-top:3px;color:var(--ink);font-size:12px}#map{height:320px;margin-top:12px;border:1px solid var(--line);border-radius:10px}
.method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}.method-card{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:9px;padding:12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.method-card:has(input:checked){border-color:var(--brand);background:var(--soft)}.method-card input{width:auto;margin-top:4px}.method-card strong,.method-card small{display:block}.method-card small{margin-top:3px;color:var(--muted);font-weight:400}.manual-links{margin:16px 0;padding:15px;border:1px solid #c7dbe8;border-radius:11px;background:#f6fbff}.manual-links p{margin:4px 0 10px;color:var(--muted);font-size:12px}.manual-links button{margin-top:9px}.candidate-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0}.table-wrap{max-height:570px;overflow:auto;border:1px solid var(--line);border-radius:9px;margin-bottom:12px}table{width:100%;border-collapse:collapse;font-size:11px}th,td{padding:9px 8px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}th{position:sticky;top:0;z-index:2;background:#f2f6f7;color:#40545b;white-space:nowrap}td input[type=checkbox]{width:auto}.tier-1{background:#f7fcfa}.tier-3{background:#fffbf1}td small{color:var(--muted)}a{color:#176e9a}.candidate-table button{padding:5px 7px;font-size:10px}
.results-panel{border-top:4px solid var(--brand)}.results-list{display:grid;gap:8px;margin-bottom:14px}.result-card{display:grid;text-align:left;padding:12px;border-left:4px solid var(--brand);background:#f8fbfa}.result-card span,.result-card small{color:var(--muted);font-size:10px}.result-card strong{font-size:22px;margin:2px 0}.results-panel>label{margin-top:10px}.results-panel>button{margin-top:10px}.report-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.summary-list{display:grid;gap:7px}.summary-list div{display:flex;justify-content:space-between;gap:10px;padding-bottom:7px;border-bottom:1px solid var(--line)}.summary-list span{color:var(--muted);font-size:11px}.summary-list strong{text-align:right;font-size:12px}pre{max-height:520px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;padding:10px;border:1px solid var(--line);border-radius:8px;background:#f7f9fa;font:10px/1.45 Consolas,monospace}
@media(max-width:1180px){.app-header{position:static;grid-template-columns:1fr}.session-box{justify-content:flex-start}.workflow-grid{grid-template-columns:1fr}.workflow-aside{position:static}.form-grid.four{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){main{padding:13px}.page-heading,.candidate-toolbar{align-items:flex-start;flex-direction:column}.form-grid.four,.method-grid,.location-summary{grid-template-columns:1fr}.span-2{grid-column:auto}.global-search{grid-template-columns:1fr}.app-header{padding:12px}.session-box{flex-wrap:wrap}.report-actions{grid-template-columns:1fr}}
@media print{.app-header,.progress-panel,.actions,.upload-row,#map,.manual-links,.candidate-toolbar,.table-wrap{display:none!important}main{padding:0}.workflow-grid{display:block}.panel{box-shadow:none;break-inside:avoid}.workflow-aside{position:static}}
.candidate-filters{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:8px;margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fbfb}.candidate-filters label{font-size:10px}.candidate-filters input,.candidate-filters select{padding:7px}.sort-head{padding:0;border:0;background:transparent;border-radius:0;font-size:11px;font-weight:800}.sort-head span{color:var(--brand)}.candidate-selected{box-shadow:inset 4px 0 var(--brand);background:#edf8f5!important}.tier-chip,.origin-chip{display:inline-flex;padding:3px 7px;border-radius:999px;background:#e8f2f1;color:var(--brand-dark);font-weight:800}.candidate-count-summary{text-align:right;color:var(--muted);font-size:12px;font-weight:700}
@media(max-width:1180px){.candidate-filters{grid-template-columns:repeat(3,minmax(110px,1fr))}}@media(max-width:700px){.candidate-filters{grid-template-columns:repeat(2,minmax(110px,1fr))}}
.manual-dialog{width:min(1080px,calc(100vw - 30px));max-height:90vh;border:1px solid var(--line);border-radius:14px;padding:20px;color:var(--ink)}.manual-dialog::backdrop{background:rgba(10,30,36,.55)}.manual-dialog form{display:grid;gap:14px}.manual-import{display:grid;gap:9px;padding:12px;border-radius:10px;background:#f6fbff}.manual-dialog .panel-heading{margin:0}
.legal-preview{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}.legal-preview ul{columns:2;padding-left:18px;font-size:11px}
.account-dialog{width:min(560px,calc(100vw - 30px))}.danger-action{color:var(--danger);border-color:#edb5b1}.user-actions{display:flex;gap:5px;flex-wrap:wrap}.user-actions button{padding:5px 7px;font-size:10px}
