:root{--ink:#1F1B18;--paper:#F6F0E4;--card:#FFFCF6;--line:#DED2BC;--accent:#9E1B32;--accent2:#6E1423;
--gold:#B8893B;--goldsoft:#C9A668;--warn:#B07A1E;--danger:#7d1730;--ok:#4A6557;--muted:#8A8175;--chip:#F1E9D9;
--serif:"Fraunces","Noto Serif TC","Songti TC","Songti SC",serif;
--sans:"Inter","Noto Sans TC","Noto Sans SC","PingFang SC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif}
html[lang="zh-CN"]{--serif:"Fraunces","Noto Serif SC","Songti SC","Noto Serif TC",serif;--sans:"Inter","Noto Sans SC","PingFang SC","Noto Sans TC",system-ui,sans-serif}
html.login-font-subset{--serif:"Fraunces","Portal Login Serif SC","Songti SC",serif;--sans:"Inter","Portal Login Sans SC","PingFang SC",system-ui,sans-serif}
*{box-sizing:border-box}body{font-family:var(--sans);margin:0;overflow-x:hidden;background:var(--paper);background-image:radial-gradient(circle at 15% 10%,rgba(120,90,40,.03) 0,transparent 40%),radial-gradient(circle at 85% 90%,rgba(110,20,35,.025) 0,transparent 45%);color:var(--ink)}
h1,h2{font-family:var(--sans)}.brand{font-family:var(--serif)}
.banner{display:flex;min-height:32px;align-items:center;justify-content:center;padding:7px 16px;background:#FFF5D7;border-bottom:1px solid #E4C98D;color:#9A6515;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-align:center}
.layout{display:flex;min-height:calc(100vh - 32px)}
.side{width:236px;background:#F1E9D9;color:var(--ink);padding:0;flex:0 0 236px;display:flex;flex-direction:column;border-right:1px solid var(--line);position:sticky;top:0;height:calc(100vh - 32px);overflow-y:auto}
.side .brand{font-family:var(--serif);font-weight:600;font-size:16px;color:var(--ink);text-decoration:none;padding:18px 20px 14px;border-bottom:1px solid var(--line);display:block;cursor:pointer}.side .brand .x{color:var(--accent);font-style:italic;padding:0 4px}.side .brand small{display:block;font-family:inherit;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-top:5px;font-weight:700}
.sgroup{padding:12px 0 4px}.sgroup .cap{font-size:9.5px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);padding:0 20px 5px;display:flex;align-items:center;gap:8px}.sgroup .cap:after{content:"";flex:1;height:1px;background:var(--line)}
.side a{display:block;padding:8px 20px;color:#4A433C;text-decoration:none;font-size:13px;font-weight:600;border-left:2px solid transparent;cursor:pointer}
.side a:hover{color:var(--ink);background:rgba(255,255,255,.55)}.side a.on{background:#fff;color:var(--accent2);border-left-color:var(--accent)}
.side .push{flex:1}
.demo-start{margin:12px 14px 0;padding:12px;border:1px solid var(--line);background:rgba(255,255,255,.5)}.demo-start>span{display:block;color:var(--gold);font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:7px}.demo-start button{width:100%;padding:8px 9px;font-size:11px;letter-spacing:.02em}.demo-start small{display:block;color:var(--muted);font-size:9.5px;line-height:1.45;margin-top:7px}
.mainarea{flex:1;min-width:0;max-width:100%;display:flex;flex-direction:column}.top{position:sticky;top:0;z-index:5;height:46px;background:rgba(246,240,228,.94);backdrop-filter:blur(10px);color:var(--ink);padding:0 28px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);min-width:0}.crumb{font-size:11.5px;color:var(--muted);letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb b{color:#4A433C}.crumb .sep{color:var(--gold);padding:0 6px}.safety{font-size:9.5px;font-weight:800;letter-spacing:.08em;color:var(--gold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:36vw}.userchip{margin-left:auto;font-size:11.5px;color:var(--muted);white-space:nowrap}.userchip b{color:#4A433C}.top button{background:none;border:0;border-radius:0;color:var(--accent2);font-size:11.5px;font-weight:700;padding:0;letter-spacing:.03em;margin-left:8px}
.main{flex:1;min-width:0;width:100%;padding:36px 0 70px;max-width:none}.main>div{max-width:1200px;margin:0 auto;padding:0 28px}
.card{background:#fff;border:1px solid var(--line);border-radius:0;padding:22px 24px;margin-bottom:16px}
h1{font-family:var(--sans);font-size:28px;font-weight:700;margin:0 0 8px}h2{font-family:var(--sans);font-size:20px;font-weight:700;margin:0 0 12px}h3{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin:15px 0 7px;color:var(--gold)}
button{background:var(--accent);color:#fff;border:0;border-radius:2px;padding:10px 16px;cursor:pointer;font-family:inherit;font-size:12px;font-weight:700;letter-spacing:.08em}
button.warn{background:var(--warn)}button.danger{background:var(--danger)}button.ok{background:var(--ok)}
button.ghost{background:#EDE4D2;color:var(--ink)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
button:disabled{background:#b9c4c1;cursor:not-allowed}
.tblwrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:13px;background:#fff;border:1px solid var(--line)}td,th{border-bottom:1px solid var(--line);padding:10px 14px;text-align:left;vertical-align:top}tr:last-child td{border-bottom:0}
th{background:#fff;color:var(--gold);font-size:10px;letter-spacing:.14em;text-transform:uppercase}
input,select,textarea{padding:10px 12px;border:1px solid var(--line);border-radius:2px;font-size:13.5px;width:100%;background:#fff}
.file-native{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.filepick{display:flex;align-items:center;gap:10px;min-height:42px;flex-wrap:wrap}.choosefile{display:inline-flex;align-items:center;justify-content:center;background:#EDE4D2;color:var(--ink);border:1px solid var(--line);border-radius:2px;padding:9px 13px;cursor:pointer;font-size:12px;font-weight:700;letter-spacing:.05em}.choosefile:hover{background:#fff}.file-name{font-size:12px;color:var(--muted);word-break:break-all}.upload-status{font-size:12px;color:var(--muted);min-height:18px;margin-top:7px}
.row{display:flex;gap:10px;flex-wrap:wrap}.row>*{flex:1;min-width:140px}
.tag{display:inline-flex;gap:4px;align-items:center;padding:3px 9px;border-radius:999px;font-size:10.5px;font-weight:800;letter-spacing:.04em;background:var(--chip);border:1px solid #cdd8d2;white-space:nowrap}
.tag.NEED_INFO{background:#F5E3C4;border-color:#C9A668}.tag.APPROVED{background:#E2E9DF;border-color:#8FA695}
.tag.REJECTED{background:#F0D9DC;border-color:#C58B96}.tag.RESUBMITTED{background:#EAE3D3;border-color:#C9A668}
.tag.actual{background:#EFE3EF;border-color:#B78BB7}
.note{font-size:12px;color:var(--muted)}.err{color:var(--danger);font-size:13px;white-space:pre-wrap;margin-top:8px}
.small{font-size:12.5px}.mt{margin-top:10px}
.tabs{display:flex;gap:4px;border-bottom:2px solid var(--line);margin-bottom:12px;flex-wrap:wrap}
.tabs button{background:transparent;color:var(--muted);border-radius:7px 7px 0 0;padding:7px 12px}
.tabs button.on{background:var(--card);color:var(--ink);border:1px solid var(--line);border-bottom:2px solid var(--card);margin-bottom:-2px;font-weight:600}
.case-tabs{display:flex;gap:0;overflow-x:auto;border-bottom:1px solid var(--line);margin:20px 0 16px;background:#F1E9D9}
.case-tab{background:transparent;color:#4A433C;border-radius:0;border-right:1px solid var(--line);padding:13px 18px;white-space:nowrap;letter-spacing:.02em}
.case-tab.on{background:#fff;color:var(--accent2);box-shadow:inset 0 3px var(--accent)}
.case-panel{display:none}.case-panel.on{display:block}
.rule-summary{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));border:1px solid var(--line);margin-bottom:14px;background:#fff}
.rule-summary>div{padding:14px 16px;border-right:1px solid var(--line)}.rule-summary>div:last-child{border-right:0}
.rule-summary b{display:block;font-family:var(--serif);font-size:24px;color:var(--accent2)}.rule-summary span{font-size:11.5px;color:var(--muted)}
.submitted-evidence{display:grid;gap:12px}.submitted-file{border:1px solid var(--line);background:#fff;padding:15px}
.submitted-file-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.submitted-file-head h3{margin:0;color:var(--ink);font-size:14px;letter-spacing:0;text-transform:none}
.submitted-file-meta{font-size:11.5px;color:var(--muted);margin-top:4px}.submitted-file table{margin-top:10px}
.evidence-register-head{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));border:1px solid var(--line);background:#fff;margin-bottom:16px}.evidence-register-head>div{padding:13px 16px;border-right:1px solid var(--line)}.evidence-register-head>div:last-child{border-right:0}.evidence-register-head b{display:block;font-family:var(--serif);font-size:22px;color:var(--accent2)}.evidence-register-head span{font-size:11px;color:var(--muted)}
.evidence-status-flow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:9px 0 0}.evidence-status-flow span{font-size:11px;padding:4px 8px;background:var(--chip);border:1px solid var(--line)}
.evidence-modal[hidden]{display:none}.evidence-modal{position:fixed;inset:0;z-index:1000;background:rgba(31,27,24,.72);display:flex;align-items:stretch;justify-content:center;padding:18px}.evidence-modal-panel{width:min(1280px,100%);height:100%;background:var(--card);display:flex;flex-direction:column;border:1px solid var(--goldsoft);box-shadow:0 24px 80px rgba(0,0,0,.35)}.evidence-modal-head{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line);background:#fff}.evidence-modal-title{min-width:0;flex:1}.evidence-modal-title b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.evidence-modal-title span{display:block;font-size:11px;color:var(--muted);margin-top:2px}.evidence-modal-actions{display:flex;gap:7px;align-items:center}.evidence-modal-actions button{padding:7px 10px}.evidence-modal-body{position:relative;flex:1;min-height:0;background:#EDE4D2;overflow:auto;display:flex;align-items:flex-start;justify-content:center}.evidence-modal-body iframe{border:0;width:100%;height:100%;background:#fff}.evidence-modal-body img{display:block;max-width:none;transform-origin:center center;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.18);margin:24px}.evidence-modal-state{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:var(--card);text-align:center;padding:24px;z-index:2}.evidence-modal-state[hidden]{display:none}.evidence-modal-state .spinner,.route-progress .spinner{width:22px;height:22px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.route-progress[hidden]{display:none}.route-progress{position:fixed;top:40px;right:24px;z-index:900;display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--goldsoft);box-shadow:0 8px 24px rgba(31,27,24,.14);padding:10px 14px;font-size:12px;font-weight:700;color:var(--accent2)}.route-progress .spinner{width:16px;height:16px;border-width:2px}
.stat{font-size:12px;color:var(--muted)}.kv b{font-weight:600}
.disabledctl{display:inline-block;padding:8px 14px;border-radius:7px;background:#e7e5df;color:#8a938f;font-size:13.5px;border:1px dashed #b9c4c1;margin:2px}
.notice{background:#fff;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:0;padding:12px 16px;font-size:12.5px;margin-bottom:16px}
.alert{background:#fff;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:0;padding:12px 16px;font-size:12.5px;margin-bottom:16px}
.product-swap-preview{background:#FFF8EE;border:2px solid var(--gold);border-left:6px solid var(--accent);padding:18px 20px}.product-swap-preview>b{display:block;color:var(--accent2);font-size:16px;margin-bottom:8px}.product-swap-details{background:#fff;border-color:var(--goldsoft);padding:12px 14px}.product-swap-details>summary{color:var(--accent2);font-size:13px;font-weight:700}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.chips button{background:#EDE4D2;color:var(--ink);padding:5px 12px;border-radius:14px;font-size:12.5px}
.chips button.on{background:var(--accent);color:#fff}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.statcard{background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold);border-left:1px solid var(--line);border-radius:0;padding:16px 18px;cursor:pointer}
.statcard .big{font-size:24px;font-family:var(--serif);font-weight:700}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.thumbs figure{margin:0;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#fff;cursor:pointer}
.thumbs img{width:100%;height:84px;object-fit:cover;display:block}
.thumbs figcaption{font-size:11px;padding:3px 6px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.viewer{display:grid;grid-template-columns:minmax(280px,1.4fr) minmax(240px,1fr);gap:12px}
.viewer img{max-width:100%;border:1px solid var(--line);border-radius:7px;background:#fff}
.bar{height:9px;background:#EDE4D2;border-radius:5px;overflow:hidden}.bar i{display:block;height:100%;background:var(--gold)}
.timeline{border-left:2px solid var(--goldsoft);padding-left:14px}.timeline .tick{margin-bottom:10px}
.langbtn{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.4);color:#F1E9D9;border-radius:7px;padding:5px 10px;font-size:12px;cursor:pointer;margin:8px 18px}
details{border:1px solid var(--line);border-radius:7px;padding:6px 10px;background:#FFFCF6;margin-top:6px}
summary{cursor:pointer;font-size:12.5px;color:var(--muted)}
.trace-details{margin-top:14px}.backlink{display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--accent2);font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.02em;padding:7px 0;border-bottom:1px solid transparent}.backlink:hover{border-bottom-color:var(--gold);color:var(--accent)}.tracking{display:flex;gap:5px 14px;flex-wrap:wrap;margin-top:8px;color:var(--muted);font-size:12px}.tracking b{color:#4A433C;font-weight:700}.action-list{padding:12px 14px;margin:0 0 14px;border:1px solid var(--line);border-left:3px solid var(--gold);background:#FFFCF6}.action-list p{margin:4px 0;font-size:12.5px;line-height:1.6}.action-list ul{margin:7px 0 0;padding-left:19px;font-size:12.5px;line-height:1.7}.rule-state{font-size:12px;font-weight:700;color:#72521F}.rule-copy{font-size:12px;color:var(--muted);line-height:1.55}.ocr-edit{border:1px solid var(--line);padding:12px;background:#FFFCF6;margin-top:12px}.ocr-edit h3{margin-top:0}
.rule-table td{line-height:1.55}.rule-title{font-weight:700;color:var(--ink);display:block}.rule-purpose{font-size:11.5px;color:var(--muted);display:block;margin-top:2px}.rule-source{font-family:var(--sans);font-size:11px;color:var(--muted);word-break:break-word}.rule-open-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin:8px 0 14px}.rule-open{background:#FFFCF6;border:1px solid var(--line);padding:13px}.rule-open b{font-size:12px}.rule-open p{font-size:11.5px;line-height:1.55;color:var(--muted);margin:5px 0 0}
.doc-progress{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:13px 15px;border:1px solid var(--line);background:#FFFCF6;margin-bottom:14px}.doc-progress strong{font-size:14px}.submission-gates{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin:14px 0;background:#fff}.submission-gate{padding:16px;border-right:1px solid var(--line)}.submission-gate:last-child{border-right:0}.submission-gate b{display:block;margin:6px 0}.submission-gate small{display:block;color:var(--muted);line-height:1.5}.submission-blocker{border-left:4px solid var(--danger);background:#FFF8F8;padding:14px;margin:14px 0}.submission-blocker h3{margin-top:0}.doc-tabs{display:flex;gap:0;overflow-x:auto;border-bottom:1px solid var(--line);margin:0 0 16px}.doc-tab{min-width:145px;background:#F1E9D9;color:#4A433C;border-radius:0;border:1px solid var(--line);border-bottom:0;margin-right:-1px;padding:10px 12px;text-align:left;letter-spacing:0}.doc-tab.on{background:#fff;color:var(--accent2);box-shadow:inset 0 3px var(--accent)}.doc-tab small{display:block;margin-top:5px;font-size:10px;color:var(--muted)}.doc-panel{display:none}.doc-panel.on{display:block}.doc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}.doc-file{border:1px solid var(--line);background:#FFFCF6;padding:12px;margin-top:10px}.doc-file-head{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.doc-actions{display:flex;gap:7px;flex-wrap:wrap}.doc-actions button{padding:7px 11px}.doc-correction{display:grid;grid-template-columns:1fr 1fr 2fr auto;gap:8px;margin-top:10px;align-items:end}.doc-correction label{font-size:10px;color:var(--gold);font-weight:700}.doc-correction input{margin-top:4px}.ocr-review-table input{min-width:130px;padding:8px 9px}.ocr-review-table .source{display:block;font-size:10px;color:var(--muted);margin-top:4px}.ocr-review-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}.ocr-autosave{font-size:11px;color:var(--muted);font-weight:700}.ocr-autosave.saving{color:var(--gold)}.ocr-autosave.saved{color:var(--ok)}.ocr-autosave.failed{color:var(--danger)}.ocr-progress{display:block;margin-top:6px;font-size:11px;color:var(--accent2);font-weight:700}.required-mark{color:var(--accent);font-weight:800}.optional-mark{color:var(--ok);font-weight:800}.step-strip{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin-bottom:16px;background:#fff;position:sticky;top:46px;z-index:4}.step-strip button{background:#fff;color:var(--muted);border-radius:0;border-right:1px solid var(--line);padding:13px 14px;text-align:left;letter-spacing:0}.step-strip button:last-child{border-right:0}.step-strip button.on{color:var(--accent2);box-shadow:inset 0 -3px var(--accent);background:#FFFCF6}.step-strip b{display:block;color:var(--gold);font-size:10px;letter-spacing:.1em;margin-bottom:4px}.workflow-step{display:none}.workflow-step.on{display:block}.workflow-actions{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:16px}.destructive-link{background:transparent;color:var(--danger);border:1px solid #C58B96}.evidence-compare{display:block;margin-top:14px;padding:16px;border:1px solid var(--line);background:#fff}.evidence-original{width:100%;margin-bottom:20px}.evidence-original-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.image-review-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:8px 0}.image-review-toolbar button{padding:7px 10px;font-size:11px}.image-scale{min-width:44px;text-align:center;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.image-viewport{width:100%;height:clamp(440px,68vh,760px);overflow:auto;background:#F6F0E4;border:1px solid var(--line);display:flex;align-items:flex-start;justify-content:center;padding:12px}.evidence-compare img.image-preview{display:block;width:100%;max-width:none;max-height:none;object-fit:contain;background:#fff;transform-origin:center center;transition:transform .15s ease}.image-preview-error{width:100%;min-height:220px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:var(--danger);text-align:center;padding:30px}.evidence-pdf{display:block;width:100%;height:clamp(460px,68vh,760px);background:#F6F0E4;border:1px solid var(--line)}.ocr-review-panel{padding-top:18px;border-top:1px solid var(--line)}.ocr-candidate-table button{padding:5px 8px;font-size:10px}
.duplicate-decision{width:100%;box-sizing:border-box;border:1px solid #D9A64D;border-left:4px solid var(--gold);background:#FFF8E8;padding:12px 14px;margin-top:12px}.duplicate-decision strong{display:block;font-size:14px;color:var(--accent2);margin-bottom:4px}.duplicate-decision p{margin:0 0 8px;color:#4A433C;line-height:1.55}.duplicate-decision select{max-width:520px;background:#fff;font-weight:700}.duplicate-decision .duplicate-answer{display:block;margin-top:6px;color:var(--ok);font-size:11px;font-weight:800}
.image-preview-loading[hidden],.image-preview-error[hidden]{display:none}
.image-preview-loading{width:100%;min-height:220px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:var(--muted);text-align:center;padding:30px}
.image-preview[hidden]{display:none!important}
.ocr-review-table.delivery-items{min-width:1540px}.ocr-review-table.delivery-items th:nth-child(2),.ocr-review-table.delivery-items td:nth-child(2){min-width:145px}.ocr-review-table.delivery-items th:nth-child(3),.ocr-review-table.delivery-items td:nth-child(3){min-width:220px}.ocr-review-table.delivery-items input{min-width:110px}.ocr-review-table.delivery-items td:nth-child(3) input{min-width:200px}.ocr-group-note{border-left:3px solid var(--gold);background:#FFF8E8;padding:10px 12px;margin:7px 0 10px;font-size:11.5px;color:#4A433C}
.gov-login{max-width:420px;margin:8vh auto 0}.gov-login .kicker{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:10px}.gov-login .kicker:before{content:"";width:24px;height:1px;background:var(--gold)}.gov-login .hero{font-family:var(--serif);font-weight:500;font-size:clamp(27px,3.6vw,40px);line-height:1.12;margin:14px 0 0}.gov-login .hero .accent{color:var(--accent)}.gov-login .login-panel{background:#fff;border:1px solid var(--line);padding:24px 28px;margin-top:28px}.gov-login .login-label{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--gold);margin:14px 0 6px}.gov-login .login-panel input{border-color:var(--line);border-radius:2px;padding:10px 12px}.gov-login .login-panel input:focus{border-color:var(--gold)}.gov-login .btn{background:var(--accent);color:var(--paper);border:0;border-radius:2px;padding:11px 20px;cursor:pointer;font-family:inherit;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.gov-login .btn:hover{background:var(--accent2)}.gov-login .login-note{font-size:12px;line-height:1.65;color:var(--muted);margin:14px 0 0}.gov-login .locale-note{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}.gov-login .locale-note span{font-size:11px;border:1px solid var(--line);border-radius:2px;padding:3px 9px;color:var(--muted)}.gov-login .locale-note span:first-child{border-color:var(--gold);color:var(--accent2);font-weight:700}
.page-kicker{font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:9px;margin-bottom:10px}.page-kicker:before{content:"";width:24px;height:1px;background:var(--gold)}
.hero-title{font-family:var(--serif);font-weight:600;font-size:clamp(30px,3.3vw,42px);line-height:1.12;margin:0 0 18px}
.review-case-title{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 0 18px;min-width:0}.review-case-title .title-copy{min-width:0}.review-case-title .hero-title{margin:0 0 7px}.review-case-id{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:13px;color:var(--muted);min-width:0}.review-case-id b{color:var(--ink);overflow-wrap:anywhere}.review-case-role{flex:0 0 auto;text-align:right;color:var(--muted);font-size:11px}.review-case-role b{display:block;color:var(--accent2);font-size:13px;margin-top:3px}
.identity-strip{display:grid;grid-template-columns:1.4fr .8fr 1fr 1.2fr auto;background:#fff;border:1px solid var(--line);margin-bottom:16px}.identity-strip>div{padding:13px 17px;border-right:1px solid var(--line);min-width:0}.identity-strip>div:last-child{border-right:0;display:flex;align-items:center;justify-content:flex-end;color:var(--muted);font-size:11px}.identity-strip span{display:block;font-size:10px;color:var(--muted);letter-spacing:.06em;margin-bottom:4px}.identity-strip b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.metric-strip{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--line);margin-bottom:20px}.metric-cell{padding:14px 18px;text-align:center;border-right:1px solid var(--line);cursor:pointer}.metric-cell:last-child{border-right:0}.metric-cell:hover{background:var(--card)}.metric-cell span{display:block;font-size:11px;color:var(--muted)}.metric-cell b{display:block;font-family:var(--serif);font-size:29px;color:var(--accent2);margin-top:3px}
.metric-strip.five{grid-template-columns:repeat(5,minmax(0,1fr))}.hq-filter-grid{display:grid;grid-template-columns:1.2fr repeat(5,minmax(130px,1fr));gap:10px;align-items:end}.hq-filter-grid label{font-size:10px;color:var(--muted);font-weight:700}.hq-filter-grid input,.hq-filter-grid select{margin-top:5px}.pagination-bar{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:14px}.pagination-bar span{font-size:12px;color:var(--muted)}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:22px 0 9px}.section-head h2{font-family:var(--serif);font-weight:600;font-size:22px;margin:0}.section-head .section-note{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.work-surface{background:#fff;border:1px solid var(--line);margin-bottom:18px}.work-surface table{border:0}.work-surface th{border-bottom:1px solid var(--goldsoft)}.work-surface .footlink{display:block;padding:10px 14px;border-top:1px solid var(--line);color:var(--accent2);text-decoration:none;font-size:12px;font-weight:700}
.toolbar{display:grid;grid-template-columns:minmax(240px,1.5fr) repeat(3,minmax(145px,.7fr)) auto;gap:9px;padding:10px;border:1px solid var(--line);border-bottom:0;background:#fff}.toolbar input,.toolbar select{padding:8px 10px;font-size:12px}.toolbar button{padding:8px 12px;background:#fff;color:var(--accent2);border:1px solid var(--gold)}
.case-register th,.case-register td{white-space:nowrap}.case-register td:nth-child(2){white-space:normal;min-width:150px}.case-register .amount{text-align:right;font-variant-numeric:tabular-nums}.case-register .case-link{color:var(--accent2);font-weight:700;text-decoration:none}.case-register .case-link:hover{text-decoration:underline}.case-register .action-cell button{padding:6px 9px;font-size:10.5px;letter-spacing:.03em;background:#fff;color:var(--accent2);border:1px solid var(--accent)}
.payment-boundary{font-size:11px;color:var(--muted);padding:10px 2px;display:flex;gap:7px;align-items:center}.payment-boundary:before{content:"i";display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid var(--gold);border-radius:50%;font-family:var(--serif);color:var(--gold)}
.workbench-tabs{display:flex;gap:0;overflow-x:auto;border:1px solid var(--line);border-bottom:3px solid var(--accent);background:#fff;margin:16px 0 18px;scrollbar-width:thin}.workbench-tabs button{flex:0 0 auto;background:#fff;color:#5D554D;border-radius:0;border-right:1px solid var(--line);padding:12px 15px;letter-spacing:.01em}.workbench-tabs button.on{background:var(--accent);color:#fff}
.management-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);background:#fff;margin-bottom:16px}.management-summary>div{padding:16px;border-right:1px solid var(--line);min-width:0}.management-summary>div:last-child{border-right:0}.management-summary span{display:block;color:var(--muted);font-size:10px;letter-spacing:.08em;margin-bottom:5px}.management-summary b{font-size:15px;overflow-wrap:anywhere}.management-summary .amount{font-family:var(--serif);font-size:24px;color:var(--accent2)}
.decision-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:16px}.decision-card{border:1px solid var(--line);background:#fff;padding:20px}.decision-card h2{font-family:var(--serif);font-size:24px}.decision-checks{display:grid;gap:0;border:1px solid var(--line);margin:14px 0}.decision-checks div{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line);font-size:12px}.decision-checks div:last-child{border-bottom:0}.decision-checks strong{color:var(--accent2)}.decision-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.decision-boundary{background:#FFF8E8;border-left:3px solid var(--gold);padding:12px 14px;font-size:11.5px;line-height:1.6}.price-review{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);margin-bottom:14px}.price-review>div{padding:14px 16px;border-right:1px solid var(--line)}.price-review>div:last-child{border-right:0}.price-review span{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}.comparison-empty{padding:22px;border:1px dashed var(--goldsoft);background:#FFFCF6}.comparison-table th{white-space:nowrap}.comparison-table td:nth-child(n+2){font-variant-numeric:tabular-nums}
.empty-work{padding:28px;text-align:center;color:var(--muted);font-size:13px}.master-table input{min-width:125px;padding:7px 8px;font-size:12px}.master-table button{padding:7px 10px;font-size:10px}.master-note{font-size:12px;line-height:1.6;color:var(--muted);max-width:900px}.master-tabs{display:flex;border:1px solid var(--line);background:#fff;overflow-x:auto;margin:18px 0}.master-tabs button{border:0;border-right:1px solid var(--line);border-radius:0;background:#fff;color:var(--muted);padding:12px 16px;white-space:nowrap}.master-tabs button.on{background:var(--accent);color:#fff}.master-panel{display:none}.master-panel.on{display:block}.master-form{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;padding:16px;background:#FFFCF6;border:1px solid var(--line);margin-bottom:12px}.master-form label{font-size:10px;color:var(--gold);font-weight:800}.master-form input,.master-form select,.master-form textarea{margin-top:5px}.master-form .span2{grid-column:span 2}.master-form .span4{grid-column:1/-1}.master-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.master-form [aria-invalid="true"]{border-color:var(--danger);background:#FFF7F6}.master-card-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px}.master-card{background:#fff;border:1px solid var(--line);padding:16px}.master-card h3{margin:0 0 8px;font-size:15px}.master-card dl{display:grid;grid-template-columns:1fr auto;gap:7px;font-size:11px;margin:0}.master-card dt{color:var(--muted)}.master-card dd{margin:0;font-weight:700}.source-badge{display:inline-block;padding:3px 7px;border:1px solid var(--goldsoft);color:var(--gold);font-size:9px;font-weight:800;letter-spacing:.04em}.import-preview{border-left:3px solid var(--gold);background:#fff;padding:14px;margin-top:12px}.master-danger{color:var(--danger);font-size:11px}.assignment-ready{color:var(--ok);font-weight:800}.assignment-pending{color:var(--danger);font-weight:800}.legacy-price-row{background:#FFF8E8;border-left:3px solid var(--gold)}.legacy-price-row .note{color:var(--danger);font-weight:700}
.commercial-master{font-size:14px;line-height:1.55}.commercial-master .hero-title{font-size:26px}.commercial-master .master-note{font-size:13px;max-width:780px}.master-readiness{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-left:4px solid var(--ok);padding:14px 16px;margin:16px 0}.master-readiness.needs-work{border-left-color:var(--warn)}.master-readiness strong{display:block;font-size:16px}.master-readiness p{margin:3px 0 0;color:#5d554c;font-size:13px}.master-readiness .tag{flex:0 0 auto}.master-cleanup{margin:0 0 16px}.master-cleanup summary{color:var(--ink);font-weight:700}.master-cleanup-list{display:grid;gap:8px;margin-top:10px}.master-cleanup-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-top:1px solid var(--line)}
.master-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.master-toolbar .master-form-actions{margin-left:auto}.master-list{font-size:13px}.master-list th{font-size:11px;letter-spacing:.06em}.master-list td{vertical-align:middle}.master-list .action-cell{white-space:nowrap}.master-list .action-cell button,.master-card-actions button{padding:7px 10px;font-size:11px;letter-spacing:.01em}.master-list .action-cell .danger,.master-card-actions .danger{background:#fff;color:var(--danger);border:1px solid #C58B96}.master-list .status-active{color:var(--ok);font-weight:700}.master-list .status-inactive{color:var(--muted);font-weight:700}.master-editor[hidden],.master-step[hidden]{display:none}.master-editor{margin:12px 0 16px}.master-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.master-editor-head h3{margin:0;color:var(--ink);letter-spacing:0;text-transform:none;font-size:16px}.technical-id{display:none}.master-form-actions button.ghost{background:#EDE4D2;color:var(--ink)}
.price-sku-entry{display:grid;grid-template-columns:minmax(220px,2fr) minmax(110px,.7fr) auto;gap:8px;margin-top:8px;align-items:end}
.price-region-group{margin-bottom:20px}.price-region-group>h3{font-size:16px;color:var(--ink);letter-spacing:0;text-transform:none;margin:0 0 9px}.price-version-list{display:grid;gap:10px}.price-version-row{background:#fff;border:1px solid var(--line);padding:14px 16px}.price-version-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.price-version-head h4{font-size:15px;margin:0 0 4px}.price-version-facts{display:flex;gap:7px 18px;flex-wrap:wrap;color:#5d554c;font-size:12px;margin:8px 0}.price-version-facts b{color:var(--ink)}.master-card-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.master-tech summary{font-size:11px}.master-tech .small{word-break:break-word}.master-wizard{border:1px solid var(--line);background:#fff;margin-top:14px}.master-wizard-steps{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);background:#F1E9D9}.master-wizard-steps span{padding:11px 13px;border-right:1px solid var(--line);font-size:12px;color:var(--muted)}.master-wizard-steps span:last-child{border-right:0}.master-wizard-steps span.on{background:#fff;color:var(--accent2);box-shadow:inset 0 3px var(--accent);font-weight:700}.master-step{padding:16px}.master-source-choice{display:grid;grid-template-columns:1fr 1fr;gap:12px}.master-source-choice>div{border:1px solid var(--line);padding:14px}.master-source-choice h3{font-size:15px;color:var(--ink);letter-spacing:0;text-transform:none;margin:0 0 5px}.import-summary{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);margin:12px 0}.import-summary>div{padding:10px 12px;border-right:1px solid var(--line)}.import-summary>div:last-child{border-right:0}.import-summary b{display:block;font-size:18px}.import-summary span{font-size:11px;color:var(--muted)}.import-errors{color:var(--danger)}.assignment-help{font-size:12px;color:var(--muted);margin:0 0 10px}.assignment-row-pending{background:#FFFCF6}.bulk-actions{display:flex;gap:8px;flex-wrap:wrap}.bulk-preview{margin-top:12px}.bulk-preview table{font-size:12px}
.review-identity{grid-template-columns:1.35fr .85fr 1fr 1.35fr auto}.review-toolbar{grid-template-columns:minmax(250px,1.4fr) minmax(150px,.7fr) minmax(150px,.7fr) auto}.review-head{display:grid;grid-template-columns:1.4fr repeat(3,minmax(150px,.7fr));gap:0;background:#fff;border:1px solid var(--line);margin-bottom:16px}.review-head>div{padding:13px 16px;border-right:1px solid var(--line)}.review-head>div:last-child{border-right:0}.review-head span{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.review-head b{font-size:13px}.review-actions{position:sticky;bottom:0;z-index:4;background:rgba(246,240,228,.97);border-top:1px solid var(--goldsoft);padding:12px 0;display:flex;gap:10px;align-items:center;justify-content:flex-end}.review-actions .guard{margin-right:auto;font-size:11px;color:var(--muted)}.comment-list{display:grid;gap:8px}.comment-item{border-left:3px solid var(--gold);background:#fff;padding:12px 14px}.comment-item p{margin:4px 0 0;white-space:pre-wrap}.excel-group{margin:16px 0}.excel-group h3{font-size:13px;color:var(--accent2);letter-spacing:.04em;text-transform:none}.excel-empty{padding:22px;border:1px dashed var(--line);color:var(--muted);background:#FFFCF6}
.reviewer-title{font-size:clamp(28px,2.5vw,36px)}
.correction-center{border:1px solid var(--line);background:#fff;margin-bottom:16px}.correction-center-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);background:#FFFCF6}.correction-center-head h2{margin:0;font-size:18px}.correction-count{font-family:var(--serif);font-size:24px;color:var(--accent2);font-weight:700}.correction-list{display:grid;gap:0}.correction-item{display:grid;grid-template-columns:42px minmax(180px,.8fr) minmax(260px,1.5fr) minmax(160px,.7fr);gap:14px;padding:15px 18px;border-bottom:1px solid var(--line);align-items:start}.correction-item:last-child{border-bottom:0}.correction-number{width:30px;height:30px;border-radius:50%;background:#F5E3C4;color:var(--accent2);display:flex;align-items:center;justify-content:center;font-weight:800}.correction-location{font-size:11px;color:var(--gold);font-weight:800;letter-spacing:.04em}.correction-title{font-size:14px;font-weight:700;margin:3px 0}.correction-instruction{font-size:12.5px;line-height:1.6;margin:0;color:#4A433C}.correction-action{font-size:11px;font-weight:800;color:var(--accent2);background:#F1E9D9;padding:8px 10px}.correction-builder{border:1px solid var(--line);background:#FFFCF6;padding:16px}.correction-builder-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.correction-builder label{display:block;font-size:10px;color:var(--gold);font-weight:800;letter-spacing:.04em}.correction-builder label input,.correction-builder label select,.correction-builder label textarea{margin-top:5px}.correction-builder .wide{grid-column:1/-1}.correction-preview{border:1px solid var(--line);background:#fff;margin-top:14px}.correction-preview-title{padding:10px 14px;border-bottom:1px solid var(--line);font-size:12px;font-weight:800;color:var(--accent2)}.correction-empty{padding:20px;color:var(--muted);font-size:12px;text-align:center}.correction-remove{background:transparent;color:var(--danger);border:1px solid #C58B96;padding:6px 9px;font-size:10px}.comment-privacy{border-left:3px solid var(--ok);padding:10px 13px;background:#F5F7F3;color:#4A6557;font-size:12px;margin-bottom:12px}
.tm-review-overview{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:#fff;margin-bottom:14px}.tm-review-overview>div{padding:14px 16px;border-right:1px solid var(--line)}.tm-review-overview>div:last-child{border-right:0}.tm-review-overview b{display:block;font-family:var(--serif);font-size:25px;color:var(--accent2)}.tm-review-overview span{font-size:11px;color:var(--muted)}.tm-section-list{display:grid;gap:12px}.tm-section-card{background:#fff;border:1px solid var(--line)}.tm-section-card.CLEAR{border-left:4px solid var(--ok)}.tm-section-card.NEEDS_CORRECTION{border-left:4px solid var(--warn)}.tm-section-head{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:start;padding:16px 18px;background:#FFFCF6;border-bottom:1px solid var(--line)}.tm-section-index{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#F1E9D9;color:var(--accent2);font-weight:800}.tm-section-head h3{font-size:15px;letter-spacing:0;text-transform:none;color:var(--ink);margin:0 0 4px}.tm-section-head p{margin:0;font-size:12px;color:var(--muted)}.tm-section-body{padding:14px 18px}.tm-section-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}.tm-section-actions .clear-action{background:var(--ok)}.tm-section-actions .issue-action{background:#fff;color:var(--accent2);border:1px solid var(--accent)}.tm-issue-picker{display:none;border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.tm-issue-picker.open{display:block}.tm-issue-option{display:grid;grid-template-columns:22px minmax(0,1fr);gap:9px;padding:10px 0;border-bottom:1px solid var(--line);cursor:pointer}.tm-issue-option:last-of-type{border-bottom:0}.tm-issue-option input{width:auto;margin-top:3px}.tm-issue-option b{display:block;font-size:12.5px}.tm-issue-option span{display:block;color:var(--muted);font-size:11.5px;margin-top:3px;line-height:1.5}.tm-rule-hints summary{cursor:pointer;color:var(--accent2);font-weight:700;font-size:11.5px}.tm-rule-hints table{margin-top:10px}.tm-rule-hints th,.tm-rule-hints td{font-size:11px}.tm-handoff-note{border-left:3px solid var(--gold);background:#FFF8E8;padding:11px 13px;margin-bottom:14px;font-size:12px}
.case-status-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;background:#fff;border:1px solid var(--line);border-left:4px solid var(--gold);padding:16px 18px;margin-bottom:14px}.case-status-banner h2{font-size:18px;margin:0 0 5px}.case-status-banner p{margin:0;color:var(--muted);font-size:12px}.case-status-banner .stage{font-size:12px;text-align:right}.case-status-banner .stage b{display:block;color:var(--accent2);font-size:15px;margin-top:3px}.case-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#fff;border:1px solid var(--line);margin-bottom:16px}.case-summary-grid>div{padding:16px 18px;border-right:1px solid var(--line);min-width:0}.case-summary-grid>div:last-child{border-right:0}.case-summary-grid span{display:block;font-size:10px;color:var(--muted);letter-spacing:.05em;margin-bottom:5px}.case-summary-grid b{display:block;font-size:15px}.case-summary-grid .summary-amount{font-family:var(--serif);font-size:25px;color:var(--accent2)}.case-overview-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:16px}.overview-panel{background:#fff;border:1px solid var(--line);padding:18px}.overview-panel h2{font-family:var(--serif);font-size:22px;margin-top:0}.business-facts{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line)}.business-facts>div{padding:12px 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.business-facts>div:nth-child(2n){border-right:0}.business-facts span{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.review-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.review-flow>div{border:1px solid var(--line);padding:11px;background:#FFFCF6}.review-flow b{display:block;color:var(--accent2);font-size:12px}.review-flow span{font-size:10.5px;color:var(--muted)}.attention-list{margin:0;padding-left:18px}.attention-list li{margin:8px 0;line-height:1.5}.review-workbench{display:grid;grid-template-columns:245px minmax(0,1fr);gap:16px}.review-section-nav{background:#fff;border:1px solid var(--line);align-self:start;position:sticky;top:14px}.review-section-nav button{display:grid;grid-template-columns:28px minmax(0,1fr);gap:9px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);padding:12px}.review-section-nav button:last-child{border-bottom:0}.review-section-nav button.on{background:#FFF8E8;color:var(--accent2);box-shadow:inset 4px 0 0 var(--accent)}.review-section-nav .nav-index{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#F1E9D9;font-weight:800;font-size:10px}.review-section-nav small{display:block;color:var(--muted);margin-top:2px}.review-section-panel{background:#fff;border:1px solid var(--line);min-width:0}.review-section-panel[hidden]{display:none}.review-section-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:17px 19px;border-bottom:1px solid var(--line);background:#FFFCF6}.review-section-intro h2{font-family:var(--serif);font-size:22px;margin:0 0 4px}.review-section-intro p{font-size:12px;color:var(--muted);margin:0}.review-section-content{padding:16px 19px;min-width:0}.review-subsection{margin-bottom:18px;min-width:0}.review-subsection:last-child{margin-bottom:0}.review-subsection>h3{font-size:12px;color:var(--gold);letter-spacing:.05em;margin:0 0 9px}.review-evidence-empty{border:1px dashed var(--line);background:#FFFCF6;padding:15px;color:var(--muted);font-size:12px}.review-workbench .submitted-evidence section>h3{display:none}.review-workbench .evidence-register-head,.review-workbench .notice .evidence-status-flow{display:none}.review-workbench .submitted-file{margin-bottom:10px}.review-workbench .tblwrap{max-width:100%}.section-review-actions{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.section-review-readonly{border-left:3px solid var(--ok);background:#F5F7F3;padding:11px 13px;font-size:12px}.shared-review-note{border-left:3px solid var(--gold);background:#FFF8E8;padding:12px 14px;margin-bottom:16px;font-size:12px}
.section-review-actions>[data-review-section-error]:not(:empty){border-left:3px solid var(--danger);background:#FFF4F4;padding:10px 12px;margin-top:12px}.section-review-opinion{display:grid;gap:7px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.section-review-opinion label{font-size:12px;font-weight:700}.section-review-opinion textarea{min-height:88px;resize:vertical}.review-audience{display:flex;gap:14px;flex-wrap:wrap}.review-audience label{display:flex;align-items:center;gap:6px;font-weight:600}.review-audience input{width:auto}.review-opinion-panel{margin:0 0 16px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--accent);padding:16px 18px}.review-opinion-panel h2{font-size:19px;margin:0 0 10px}.review-opinion-list{display:grid;gap:10px}.review-opinion-item{padding:11px 13px;background:#FFF8E8;border:1px solid var(--line)}.review-opinion-item b{display:block;margin-bottom:4px}.review-opinion-item p{margin:5px 0 0;line-height:1.55}
.section-review-complete{font-size:19px;font-weight:800;color:var(--ok);text-align:center;padding:15px 18px}.section-review-complete .tag{border:0;background:transparent;font-size:19px;padding:0}.final-decision-status{display:inline-flex;align-items:center;justify-content:center;min-width:110px;padding:10px 18px;font-size:22px;font-weight:900}.history-purpose{margin:-2px 0 14px;color:var(--muted);line-height:1.6}.review-comments-heading{margin-top:22px}.review-comment-role{font-size:14px}.comment-item .comment-meta{display:block;margin-top:3px}.comment-item .comment-note{font-size:14px;line-height:1.65;margin-top:9px}
.history-version-list{display:grid;gap:14px}.history-version-card{border:1px solid var(--line);background:#fff}.history-version-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border-bottom:1px solid var(--line);background:#FFFCF6}.history-version-head h3{margin:0;font-size:18px}.history-version-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--line)}.history-version-summary>div{padding:12px 16px;border-right:1px solid var(--line)}.history-version-summary>div:last-child{border-right:0}.history-version-summary span{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}.history-version-events{padding:13px 16px}.history-version-events>div{margin-bottom:8px;line-height:1.55}.history-version-events>div:last-child{margin-bottom:0}.history-version-changes{border-top:1px solid var(--line);padding:0 16px 14px}.history-version-changes>summary{cursor:pointer;font-weight:700;padding:13px 0;min-height:44px;display:flex;align-items:center}.history-version-changes h4{margin:15px 0 7px}.photo-batch{border:1px solid var(--line);background:#FFFCF6;padding:14px 16px}.photo-batch h3{margin:0 0 5px;font-size:16px}.photo-batch p{margin:0 0 10px}
@media(max-width:1050px){.identity-strip{grid-template-columns:1fr 1fr}.identity-strip>div{border-bottom:1px solid var(--line)}.metric-strip{grid-template-columns:1fr 1fr}.metric-cell:nth-child(2){border-right:0}.metric-cell:nth-child(-n+2){border-bottom:1px solid var(--line)}.toolbar{grid-template-columns:1fr 1fr}}
@media(max-width:1050px){.metric-strip.five{grid-template-columns:repeat(2,1fr)}.hq-filter-grid{grid-template-columns:1fr 1fr}}
@media(max-width:980px){.review-head,.management-summary,.case-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.review-head>div,.management-summary>div,.case-summary-grid>div{border-bottom:1px solid var(--line)}.decision-layout,.case-overview-layout{grid-template-columns:1fr}.price-review{grid-template-columns:1fr}.price-review>div{border-right:0;border-bottom:1px solid var(--line)}.review-workbench{grid-template-columns:1fr}.review-section-nav{position:static;display:flex;overflow-x:auto}.review-section-nav button{min-width:210px;border-right:1px solid var(--line)}}
@media(max-width:760px){.layout{flex-direction:column}.side{width:100%;height:auto;position:static;display:flex;flex:0 0 auto;flex-direction:row;flex-wrap:wrap;align-items:stretch;overflow-x:hidden;padding:0}.side .brand,.side .sgroup .cap,.side .push,.side .langbtn{display:none}.sgroup{padding:0;display:flex;flex:0 0 100%;overflow-x:auto}.side a{white-space:nowrap;border-left:0;border-bottom:3px solid transparent}.side a.on{border-bottom-color:var(--gold)}.demo-start{width:100%;margin:0;padding:5px 8px;display:flex;align-items:center;flex:0 0 100%;border:0;border-top:1px solid var(--line)}.demo-start>span,.demo-start small{display:none}.demo-start button{width:100%;white-space:nowrap;padding:7px 9px}.top{padding:0 16px}.safety{display:none}.main{padding-top:24px}.main>div{padding:0 16px}.viewer{grid-template-columns:1fr}.step-strip button{padding:10px 8px;font-size:10px}.step-strip button span{display:none}.doc-tabs{display:grid;grid-template-columns:1fr 1fr;overflow:visible}.doc-tab{min-width:0;margin:0}.doc-correction{grid-template-columns:1fr}.doc-file-head{align-items:flex-start}.evidence-compare{grid-template-columns:1fr}.workflow-actions{position:sticky;bottom:0;background:rgba(246,240,228,.96);padding:10px 0}.case-tabs{margin-left:-16px;margin-right:-16px;display:grid;grid-template-columns:1fr 1fr;overflow:visible}.case-tab{padding:11px 12px;white-space:normal;text-align:center;border-bottom:1px solid var(--line)}.case-tab:nth-child(2n){border-right:0}.case-tab:last-child{grid-column:1/-1;border-right:0}.rule-summary{grid-template-columns:1fr}.rule-summary>div{border-right:0;border-bottom:1px solid var(--line)}.rule-summary>div:last-child{border-bottom:0}.review-head,.management-summary{grid-template-columns:1fr}.decision-actions{grid-template-columns:1fr}}
@media(max-width:760px){.correction-item{grid-template-columns:38px 1fr}.correction-item>div:nth-child(n+3){grid-column:2}.correction-builder-grid{grid-template-columns:1fr}.correction-builder .wide{grid-column:auto}}
@media(max-width:760px){.tm-review-overview,.case-summary-grid{grid-template-columns:1fr}.tm-review-overview>div,.case-summary-grid>div{border-right:0;border-bottom:1px solid var(--line)}.tm-review-overview>div:last-child,.case-summary-grid>div:last-child{border-bottom:0}.tm-section-head{grid-template-columns:36px 1fr}.tm-section-head>.tag{grid-column:2;justify-self:start}.case-status-banner{grid-template-columns:1fr}.case-status-banner .stage{text-align:left}.business-facts{grid-template-columns:1fr}.business-facts>div{border-right:0}.review-flow{grid-template-columns:1fr}.review-section-intro{grid-template-columns:1fr}.review-case-title{display:block}.review-case-role{text-align:left;margin-top:10px}}
@media(max-width:760px){.evidence-register-head{grid-template-columns:1fr}.evidence-register-head>div{border-right:0;border-bottom:1px solid var(--line)}.evidence-modal{padding:0}.evidence-modal-head{align-items:flex-start;flex-wrap:wrap}.evidence-modal-actions{width:100%;overflow-x:auto}.route-progress{top:8px;right:8px}.evidence-modal-body img{margin:12px}.submitted-file-head button{width:100%}}
@media(max-width:760px){.history-version-summary{grid-template-columns:1fr}.history-version-summary>div{border-right:0;border-bottom:1px solid var(--line)}.history-version-summary>div:last-child{border-bottom:0}}
@media(max-width:760px){.metric-strip.five,.hq-filter-grid{grid-template-columns:1fr}.pagination-bar{justify-content:space-between}}
@media(max-width:900px){.master-form{grid-template-columns:1fr 1fr}.master-form .span4{grid-column:1/-1}.master-card-grid{grid-template-columns:1fr}}
@media(max-width:760px){.commercial-master .master-form{grid-template-columns:1fr}.commercial-master .master-form .span2,.commercial-master .master-form .span4{grid-column:1/-1}.master-source-choice{grid-template-columns:1fr}.master-wizard-steps{grid-template-columns:1fr}.master-wizard-steps span{border-right:0;border-bottom:1px solid var(--line)}.import-summary{grid-template-columns:1fr 1fr}.import-summary>div:nth-child(2){border-right:0}.import-summary>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.master-toolbar .master-form-actions{margin-left:0;width:100%;justify-content:flex-start}.master-list .action-cell{white-space:normal}.master-cleanup-row{align-items:flex-start;flex-direction:column}.price-sku-entry{grid-template-columns:1fr}.price-sku-entry button{justify-self:start}}
/* At <=760px the sidebar collapses into a horizontal nav strip. The local
   synthetic reset kept its desktop stacked panel there, driving ~230px of blank
   header height and a clipped sliver inside the scroll container. It now rides
   in the row as one compact control: only the decorative kicker and help text
   are hidden, the control itself stays visible, and whether it exists at all is
   still decided solely by the JS isLocalSyntheticDemo() guard. */
@media(max-width:760px){
 .demo-start{display:flex;align-items:center;flex:0 0 auto;margin:0;padding:0 10px;border:0;border-left:1px solid var(--line);background:transparent;white-space:nowrap}
 .demo-start>span,.demo-start small{display:none}
 .demo-start button{width:auto;margin:0;padding:8px 12px;font-size:11px;white-space:nowrap}
}
/* ---- document-first (workflow v2) surfaces ---- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.review-original{border:1px solid var(--line);background:#FFFCF6;margin:10px 0}
.review-original-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--line)}
.review-original-head b{font-size:14px}.review-original-head .note{flex:1;min-width:0;overflow-wrap:anywhere}
.review-original-frame{position:relative;padding:12px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.review-original-image{max-width:100%;height:auto;display:block;border:1px solid var(--line)}
.review-original-object{width:100%;min-height:420px;border:1px solid var(--line)}
.review-document-comparison{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:14px;align-items:start}
.review-document-comparison .review-original{margin:0;position:sticky;top:12px;min-width:0}
.review-document-comparison .review-original-frame{height:clamp(320px,65vh,760px);overflow:auto;overscroll-behavior:contain}
.review-document-comparison .submitted-file-data{min-width:0;max-height:calc(75vh + 80px);overflow:auto;overscroll-behavior:contain;padding:0}
.review-document-comparison .review-field-table{min-width:480px;font-size:13px}
.review-field-provenance{font-size:11px;margin-top:8px;overflow-wrap:anywhere}
.select-search{display:block;width:100%;margin-bottom:6px}.select-search-status{display:block}
.section-direct-upload{padding:14px;border:1px solid var(--line);margin:12px 0;background:var(--card);display:grid;gap:8px}
.section-direct-upload button{justify-self:start}
.review-action-success{margin:12px 0;border-left:3px solid var(--ok)}
@media(max-width:1100px){.review-document-comparison{grid-template-columns:1fr}.review-document-comparison .review-original{position:static}.review-document-comparison .review-original-frame{height:360px}.review-document-comparison .submitted-file-data{max-height:65vh}}
.submitted-file-data{padding:0 12px 12px}.submitted-file-data h4{margin:10px 0 6px;font-size:14px}
.doc-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 14px;border-bottom:1px solid var(--line)}
.doc-file-list{list-style:none;margin:0;padding:0 14px 14px}
.doc-file-list li{border-top:1px solid var(--line);padding:10px 0;overflow-wrap:anywhere}
.doc-file-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.capture-legend{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.capture-badge{display:inline-flex;align-items:center;border:1px solid var(--line);padding:4px 7px;font-size:11px;font-weight:700}.capture-badge.cap-ai-text{background:#EEF5FF;color:#174A83}.capture-badge.cap-ai-visual{background:#F3EEFF;color:#5B378A}.capture-badge.cap-master{background:#FFF3D8;color:#6B4A00}.capture-badge.cap-system{background:#EAF8F0;color:#17613A}.capture-badge.cap-human{background:#E8F7F1;color:#146047}.capture-badge.cap-product{background:#FFF0EE;color:#8A3324}.subject-contract{border:1px solid var(--line);background:#fff;padding:10px 12px;margin-top:10px}.subject-contract table{width:100%}.ocr-readonly-value{display:block;padding:8px 9px;background:#F5F1E9;border:1px solid var(--line);min-height:18px}.contract-gap{border-left:4px solid var(--danger);background:#FFF8F8;padding:12px;margin:10px 0;color:var(--danger)}
.line-item-table input,.line-item-table select{width:100%;min-width:96px;box-sizing:border-box}
.line-item-table td{vertical-align:top}
.fee-panel{border:1px solid var(--line);background:#FFFCF6;padding:12px 14px;margin-top:12px}
.fee-figures{display:flex;gap:18px;flex-wrap:wrap;margin-top:8px}
.fee-figures span{display:block;font-size:12px;color:#5c6672}
.history-timeline{margin:0;padding-left:18px}.history-timeline li{margin-bottom:6px;overflow-wrap:anywhere}
.correction-reason{border-left:3px solid var(--accent);padding:8px 12px;background:#FFFCF6;margin-bottom:10px}
.correction-reason ul{margin:6px 0 0;padding-left:18px}
.photo-batch-figures{display:flex;gap:18px;flex-wrap:wrap;margin:8px 0}
.photo-batch-figures span{display:block;font-size:12px;color:#5c6672}
.photo-batch-list{list-style:none;margin:0;padding:0}
.photo-batch-list li{border-top:1px solid var(--line);padding:9px 0;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.reference-strip{display:flex;gap:18px;flex-wrap:wrap;border:1px solid var(--line);background:#FFFCF6;padding:10px 14px;margin:10px 0}
.reference-strip span{display:block;font-size:12px;color:#5c6672}
/* --- one document's subjects, under its own original --- */
/* One subject inside one review-table cell: the control, then its source line —
   the same shape the review table has always used. `.subject-grid` is the
   two-up stack for the one composite subject (printed name + master code). */
.subject-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
/* The visually hidden label inside this cell is absolutely positioned. Without
   a positioned ancestor it resolves against the page, so on a phone it reached
   out of its own clipped table and stretched the document. This gives it a
   containing block inside the cell that scrolls with the table. */
.subject-cell{min-width:0;position:relative}
.ocr-review-table .ocr-row-number{min-width:100px;width:100px}
.ocr-review-table .subject-row-delete{display:inline-block;white-space:nowrap;word-break:normal;letter-spacing:0;padding:7px 9px;margin-top:8px;font-size:13px}
.product-identity-warning[hidden]{display:none}
.product-identity-warning .product-choice-confirm{white-space:normal;letter-spacing:0;padding:8px 12px;font-size:14px}
.subject-cell input[data-product-identity-ack]{display:none}
@media(max-width:760px){.ocr-review-table .product-subject-cell{min-width:270px}.product-subject-cell .subject-grid{grid-template-columns:1fr}}
.subject-cell>label,.subject-cell>span.subject-label{display:block;font-weight:700;margin-bottom:4px}
.subject-cell input,.subject-cell select{width:100%;box-sizing:border-box}
.subject-cell .source{display:block;font-size:10px;color:var(--muted);margin-top:4px}
.subject-note{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.5}
.ocr-review-table .subject-cell .capture-badge{padding:2px 5px;font-size:9.5px}
.summary-trace-row>td{background:#FFFCF6}
.subject-unknown{color:var(--gold);font-weight:700}
.sim-badge{display:inline-flex;align-items:center;gap:6px;border:1px solid #C8A35B;background:#FFF6E3;color:#6B4A00;padding:4px 8px;font-size:11px;font-weight:700}
/* --- cross-document questions and the reimbursement amount summary --- */
.correlation-card{border:1px solid var(--line);background:#fff;padding:12px 14px;margin-bottom:10px}
.correlation-card h4{margin:0 0 4px}
.correlation-sources{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-top:10px}
.correlation-source{border:1px solid var(--line);background:#FFFCF6;padding:9px 11px;overflow-wrap:anywhere}
.correlation-source b{display:block}
/* The counters the nine cross-document checks report. Money does not live
   here: it uses the reviewer's own `.price-review` strip and review table. */
.summary-figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.summary-figure{border:1px solid var(--line);background:#FFFCF6;padding:9px 11px}
.summary-figure span{display:block;font-size:13px;color:#4A433C;margin-bottom:4px}
.summary-figure b{font-variant-numeric:tabular-nums}
.review-count-strip{flex-wrap:wrap}.review-count-strip>div{min-width:0}
:where(button,a,input,select,textarea):focus-visible{outline:2px solid var(--gold);outline-offset:2px}
/* 390px: every wide surface scrolls inside its own container, never the page.
   The step strip and the section tabs keep the geometry they have always had
   here — three steps across, two tab columns, both from the 760px rules above.
   Only the surfaces this release added are re-stacked. */
html,body{max-width:100%;overflow-x:hidden}
.tblwrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
/* The affordance that goes with a table which keeps a width of its own. It says
   nothing at any width where the table already fits, so it is off by default
   and turned on beside those tables only by the phone rules further down. It
   hides no control and no data: the table it belongs to is fully present and
   fully scrollable either way. */
.scroll-hint{display:none}
/* Print: a heading is kept with what it introduces, and a panel that is not on
   screen is not on paper either. Declared before the phone rules so the mobile
   block stays exactly what it says it is — layout, never hiding. Not verified
   against a physical printer: this is the stylesheet, not a print pass. */
@media print{
 /* The shell's left column is `.side`; releasing it and its sticky height is
    what lets the content use the page instead of an on-screen column. The
    safety banner is kept: it is the one notice that says what this data is. */
 .side,.top,.case-tabs,.backlink,button{display:none !important}
 .layout{display:block;min-height:0}
 .mainarea,.main{display:block;overflow:visible}
 .main>div{padding:0}
 .review-section-nav{position:static}
 .case-panel:not(.on){display:none}
 .case-detail{font-size:12pt}
 /* Keep a heading with what follows it, and keep a table row whole. A large
    card or a long file list is allowed to break — forcing those onto one page
    is how content disappears off the bottom of a sheet. */
 .case-detail h1,.case-detail h2,.case-detail h3,.case-detail h4{break-after:avoid-page;page-break-after:avoid}
 tr,.correction-item{break-inside:avoid-page;page-break-inside:avoid}
 thead{display:table-header-group}
 details{display:block}details>summary{list-style:none}
}
@media(max-width:430px){
 /* Three steps stay across, as they always have. The 760px rule above hides
    the step titles to fit a tablet; at phone width the ordinals alone would
    say nothing, so the same titles come back in a smaller size inside the
    same three columns. No baseline rule is altered. */
 .step-strip button{padding:9px 6px}
 .step-strip button span{display:block;font-size:9.5px;line-height:1.35;letter-spacing:0}
 .review-original-head,.doc-section-head{flex-direction:column;align-items:flex-start}
 .review-original-object{min-height:300px}
 .fee-figures,.photo-batch-figures,.reference-strip{flex-direction:column;gap:8px}
 .photo-batch-list li{flex-direction:column;align-items:flex-start}
 .photo-batch-list li button{width:100%}
 .subject-grid,.summary-figures,.correlation-sources{grid-template-columns:1fr}
 /* The subject review block only. Four nested paddings left ~224px for the
    fields on a 390px screen, so a label wrapped every two characters. These
    give that block its width back; every other screen keeps its own spacing. */
 .subject-review{padding:8px}
 .subject-review .evidence-compare{padding:8px}
 .subject-review .submitted-file-data{padding:0}
 .subject-review .ocr-review-table th,.subject-review .ocr-review-table td{padding:7px 6px}
 .subject-review .ocr-review-table>tbody>tr>th{width:92px;min-width:92px;letter-spacing:0;white-space:normal}
 .subject-review .ocr-review-table input,.subject-review .ocr-review-table select{min-width:130px}
 .review-count-strip{grid-template-columns:1fr;display:grid}
 .review-count-strip>div{border-right:0;border-bottom:1px solid var(--line)}
 .review-count-strip>div:last-child{border-bottom:0}
}
/* --- one reading scale for the surfaces this release touches ---------------
   The palette, the webfonts, the shell geometry, the sidebar, the top bar and
   the login screen are untouched: everything below is scoped to three page
   containers — the submitted case (`.case-detail`), the editing workspace
   (`.case-workspace`) and the drafts board (`.staging-board`) — so no rule here
   can restyle navigation or sign-in, and the reviewer workbenches keep exactly
   the type they have always had.
   The scale is declared once, here, and nothing further down re-declares a
   size: body 15, help and labels 13, table 14 with a 12 header, sub-heading 15,
   section 19, page heading 24. The 16px scale this replaces set a sub-heading
   (19) almost level with its own section heading (24) and a table at full body
   size, which is the bulk the customer reported. Weight, likewise: text is 400
   and the things a person acts on are 600, instead of 700/800 everywhere. */
.case-detail,.case-workspace,.staging-board{font-size:15px;line-height:1.6;font-weight:400}
.case-detail h1,.case-workspace h1,.staging-board h1{font-size:24px;font-weight:600;line-height:1.28;margin:0 0 8px}
.case-detail h2,.case-workspace h2,.staging-board h2{font-size:19px;font-weight:600;line-height:1.35;margin:0 0 10px}
.case-detail h3,.case-workspace h3,.staging-board h3{font-size:15px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink);margin:14px 0 7px}
.case-detail h4,.case-workspace h4,.staging-board h4{font-size:14px;font-weight:600;margin:12px 0 6px}
/* `.section-head h2` is the shell's display serif. On these three surfaces the
   heading has to belong to the sans text under it, so the family is stated here
   and nowhere else — the brand serif keeps every other screen, including the
   sign-in hero and the reviewer's own section heads. */
.case-detail .section-head h2,.case-workspace .section-head h2,.staging-board .section-head h2{font-family:var(--sans)}
.case-detail table,.case-workspace table,.staging-board table{font-size:14px}
.case-detail th,.case-detail td,.case-workspace th,.case-workspace td,.staging-board th,.staging-board td{padding:9px 12px;color:var(--ink)}
/* The header keeps the brand's gold, darkened to the tone this file already
   uses for small gold text so it is legible at reading size on white. */
.case-detail th,.case-workspace th,.staging-board th{color:#7A5A22;font-size:12px;font-weight:600;letter-spacing:.04em}
.case-detail .note,.case-detail .small,.case-detail figcaption,.case-workspace .note,.case-workspace .small,.staging-board .note,.staging-board .small{font-size:13px;line-height:1.55}
.case-detail .stat,.case-workspace .stat{font-size:13px;color:#4A433C}
.case-detail b,.case-detail strong,.case-workspace b,.case-workspace strong,.staging-board b,.staging-board strong{font-weight:600}
.case-detail button,.case-workspace button,.staging-board button{font-size:13px;font-weight:600;letter-spacing:.02em}
.case-detail .tag,.case-workspace .tag,.staging-board .tag{font-size:11.5px;font-weight:600;letter-spacing:0}
.case-detail .card,.case-workspace .card,.staging-board .card{padding:18px 20px}
/* Figures are read, not admired: the display serif is for the brand, and a
   stat, a counter or an amount is set in the interface sans with tabular digits
   so the columns line up and a 7 cannot be mistaken for a 1. The three counter
   strips a case page still renders — the frozen Excel checklist, the evidence
   register and the amount summary — are all included, because a serif figure
   beside sans text is exactly the mismatch this scale exists to remove. */
.case-detail .summary-amount,.case-workspace .summary-amount,.case-detail .rule-summary b,.case-detail .evidence-register-head b,.case-workspace .rule-summary b,.case-workspace .evidence-register-head b{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:19px}
/* Money is compared down a column, so it is aligned down a column. */
.case-detail td.amount,.case-detail th.amount,.case-detail b.amount,.case-workspace td.amount,.case-workspace b.amount,.staging-board b.amount{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--sans)}
.case-detail .source-line{color:#4A433C}
/* The case facts: the portal's own label/value grid, not four dashboard tiles.
   The component is the reviewer's `.business-facts`; the label size joins this
   scale, and because the case carries three facts rather than an even number
   they sit in one row divided by the right border instead of a two-up block
   whose last row would leave a hole. The phone stacking is below. */
.case-detail .business-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
.case-detail .business-facts>div{border-bottom:0;border-right:1px solid var(--line)}
.case-detail .business-facts>div:last-child{border-right:0}
.case-detail .business-facts span{font-size:12px;letter-spacing:.02em}
.case-detail .business-facts b{font-size:15px}
/* Tab labels are read at a glance; the tracked-out small caps were not. */
.case-detail .case-tab{font-size:14px;font-weight:600;padding:11px 16px;letter-spacing:0;color:#3B3630}
.case-detail .case-tab.on{color:var(--accent2)}
/* --- the drafts and submitted board ---------------------------------------
   Two groups of one row, assembled from surfaces this portal already has: a
   section head, one bordered work surface per group, one row per record. No
   new card language and no second visual grammar. */
/* The group title and its count read as one line. `.section-head` pushes its
   note to the far edge, which on this page left the count stranded on its own
   away from the words it counts. */
.staging-board .section-head{justify-content:flex-start;align-items:baseline;gap:10px}
.staging-board .section-head .section-note{font-size:12px;letter-spacing:.04em}
.staging-board .case-row-list{list-style:none;margin:0;padding:0}
.staging-board .case-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;align-items:start;padding:13px 16px;border-bottom:1px solid var(--line)}
.staging-board .case-row:last-child{border-bottom:0}
.staging-board .case-row-title{margin:0;font-size:15px;font-weight:600;overflow-wrap:anywhere}
.case-workspace .draft-title-editor,.staging-board .draft-title-editor{min-width:0}
.case-workspace .draft-title-heading,.staging-board .draft-title-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.case-workspace .draft-title-heading h1,.staging-board .draft-title-heading .case-row-title{margin:0}
.case-workspace .draft-title-edit,.staging-board .draft-title-edit{padding:4px 8px;min-height:0}
.case-workspace .draft-title-form:not([hidden]),.staging-board .draft-title-form:not([hidden]){display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin-top:8px;padding:10px 12px;border:1px solid var(--line);background:#FFFCF6}
.case-workspace .draft-title-form label,.staging-board .draft-title-form label{display:grid;gap:4px;flex:1 1 280px;margin:0;font-size:12px;color:var(--muted)}
.case-workspace .draft-title-form input,.staging-board .draft-title-form input{width:100%;font-size:14px}
.case-workspace .draft-title-message,.staging-board .draft-title-message{flex-basis:100%;margin:0}
.staging-board .case-row-meta{display:flex;align-items:center;gap:5px 12px;flex-wrap:wrap;margin:4px 0 0}
.staging-board .case-row-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.staging-board .case-row .trace-details{margin-top:7px}
/* The nine cross-document questions, wherever they are shown — in the working
   workspace and on the submitted case.
   This panel had grown its own type scale: a 24px sans heading beside 19px
   review-section headings, its own card and source sizes, and a beige card
   inside a beige panel. It now declares no typography of its own at all, so
   the heading, body, help text and disclosure inherit exactly what the review
   section beside it uses — including the base heading reset this surface has
   always carried. What is left here is layout: a white section, one border per
   thing, and a counter strip that is a line of figures rather than three
   dashboard tiles. The palette variables and the table language are unchanged. */
.cross-document{background:#fff}
.cross-document .correlation-card{background:#fff;padding:11px 0;margin:0;border:0;border-top:1px solid var(--line)}
.cross-document .correlation-card h4{margin:0}
.cross-document .summary-figures{display:flex;flex-wrap:wrap;gap:18px;
 border:1px solid var(--line);padding:9px 14px;margin:0 0 10px}
.cross-document .summary-figure{display:flex;align-items:baseline;gap:8px;
 border:0;background:none;padding:0}
.cross-document .summary-figure span{margin:0}
/* One check is one row: its question and outcome on the first line, the answer
   underneath, and one line per source document. The frames are gone — the panel
   already has one — so a source is a line of text with its two controls, never
   a beige box inside a beige box inside a card. */
.cross-document .correlation-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:0}
.cross-document .correlation-sources{display:block;margin-top:6px}
.cross-document .correlation-source{display:flex;align-items:baseline;gap:6px 12px;flex-wrap:wrap;border:0;background:none;padding:3px 0}
.cross-document .correlation-source b{display:inline;font-weight:600}
.cross-document .correlation-source .source-value{overflow-wrap:anywhere}
.cross-document .correlation-actions{display:inline-flex;gap:8px;flex-wrap:wrap}
.cross-document .correlation-actions button{padding:4px 9px;font-size:12px}
@media(max-width:430px){
 .cross-document .summary-figures{flex-direction:column;gap:6px}
 /* One source, four lines: what was compared, which document it came from, the
    value itself, and the two controls. Laid out as one column with a real gap
    rather than three inline runs that read as a single sentence. No frame is
    reintroduced and no size changes — this is spacing only. */
 .cross-document .correlation-source{display:grid;grid-template-columns:1fr;gap:3px;padding:6px 0}
 .cross-document .correlation-source b,.cross-document .correlation-source .source-value{display:block}
 .cross-document .correlation-actions{margin-top:2px}
 .cross-document .tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
}
/* One comfortable primary control per task; everything else stays quieter. */
.case-detail .primary-action,.case-workspace .primary-action{min-height:40px;padding:0 20px;font-size:15px}
.case-detail button.ghost,.case-workspace button.ghost{min-height:32px}
/* The returned-case card is a task, not a dossier: why it came back, what to
   change, and the one control that starts the change — in that order, stacked
   and tight, so the button is on the first screen at 1280×720. It carries no
   second copy of the case's current status: the tracking line above it already
   says where the case is. */
.correction-center{margin-bottom:14px}
.correction-center-head{padding:12px 18px}
.correction-center-head h2{margin:0}
.correction-center-head .note{margin:0}
.correction-brief{padding:11px 18px;border-bottom:1px solid var(--line);background:#FFFCF6}
.correction-brief>p{margin:0 0 6px}
.correction-brief>p:last-child{margin-bottom:0}
.correction-why{font-size:15px;font-weight:600}
.correction-quote{padding:7px 11px;border-left:3px solid var(--goldsoft);background:#fff;font-size:14px;line-height:1.55;font-weight:400}
.correction-gap{font-size:13px;color:var(--accent2);font-weight:600}
.correction-tasks{padding:11px 18px 4px;border-bottom:1px solid var(--line)}
.correction-tasks>h3{margin:0 0 5px}
.correction-list{margin:0;padding:0;list-style:none}
.correction-item{display:block;padding:8px 0;border-bottom:1px solid var(--line)}
.correction-item:last-child{border-bottom:0}
.correction-item>p{margin:0 0 3px}
.correction-item>p:last-child{margin-bottom:0}
.correction-item .correction-location{font-size:12px;color:#7A5A22;font-weight:600;letter-spacing:0;text-transform:none}
.correction-item .correction-title{font-size:15px;font-weight:600}
.correction-item .correction-instruction{font-size:14px;line-height:1.55;color:var(--ink)}
.correction-item .correction-action{display:inline-block;font-size:13px;font-weight:600;padding:3px 8px}
.correction-launch{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 18px}
.correction-launch .note{font-size:13px}
.revision-comparison>summary{cursor:pointer;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.revision-comparison>summary h3{display:inline-block;margin:0}
@media(max-width:430px){
 .case-detail,.case-workspace,.staging-board{font-size:14px}
 .case-detail h1,.case-workspace h1,.staging-board h1{font-size:21px}
 .case-detail h2,.case-workspace h2,.staging-board h2{font-size:17px}
 .correction-launch{flex-direction:column;align-items:stretch}
 .case-detail .primary-action,.case-workspace .primary-action{width:100%}
 /* One fact per line on a phone, divided the way the row divides them wide. */
 .case-detail .business-facts{grid-template-columns:1fr}
 .case-detail .business-facts>div{border-right:0;border-bottom:1px solid var(--line)}
 .case-detail .business-facts>div:last-child{border-bottom:0}
 .staging-board .case-row{grid-template-columns:1fr}
 .staging-board .case-row-actions{justify-content:flex-start}
 .staging-board .case-row-actions button{flex:1 1 auto}
 .case-workspace .draft-title-form,.staging-board .draft-title-form{align-items:stretch}
 .case-workspace .draft-title-form button,.staging-board .draft-title-form button{flex:1 1 auto}
 /* Wide tables scroll inside their own container; the page itself does not. */
 .case-detail .tblwrap,.case-workspace .tblwrap,.staging-board .tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
 /* Two tables cannot be read at 390px by shrinking: the five-column version
    list stacked 提交人 one character per line, and the four-column frozen
    checklist did the same to its rule prose. Each keeps the width its own text
    needs and scrolls inside the `.tblwrap` it already sits in — the page itself
    still never scrolls sideways, every row and every link is untouched, and no
    other table is widened, so the three-column amount tables keep fitting the
    screen as they do now. */
 .history-revisions{min-width:560px}
 .rule-table{min-width:640px}
 .scroll-hint{display:block;margin:0 0 6px}
}
.cross-document-panel,.commercial-review-panel{margin-top:18px}.cross-document-panel>.section-head,.commercial-review-panel>.section-head{align-items:flex-start}.correlation-list{display:grid;gap:10px}.correlation-card{padding:14px}.correlation-card.needs-attention{border-left:4px solid var(--warn)}.correlation-card .section-head h3{margin:0;font-size:15px}.correlation-card details{margin-top:8px}.correlation-actions{display:grid;gap:8px;border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.correlation-actions textarea{width:100%}.correlation-actions select{max-width:360px}.review-field-table td{vertical-align:top}.commercial-review-panel>.business-facts{margin:12px 0}.commercial-issues li{display:grid;gap:4px}.review-section-nav{max-height:calc(100vh - 32px);overflow-y:auto}
.submitted-price-panel{margin-top:18px}.review-section-content>.submitted-price-panel{margin:18px 0;padding:18px;background:#FFFCF6;border-left:4px solid var(--gold)}.submitted-price-panel>.section-head{align-items:flex-start}.price-correction-summary{margin:0 0 12px;padding:10px 12px;border-left:3px solid var(--warn);background:#FFF8E8;font-weight:700}.price-review-list{display:grid;gap:10px}.price-review-card{border:1px solid var(--line);background:#fff;padding:14px}.price-review-card.needs-attention{border-left:4px solid var(--warn)}.price-review-card .section-head h3{margin:0;font-size:15px}.price-review-card .business-facts{margin:10px 0}.price-review-actions{display:grid;gap:8px;border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.price-review-actions textarea{width:100%}.price-correction-confirm{display:grid;gap:8px;border:1px solid var(--goldsoft);background:#FFF8E8;padding:12px}.price-correction-confirm[hidden]{display: none}.price-correction-confirm p{margin:0;line-height:1.55}.price-correction-state{border-left:3px solid var(--warn);background:#FFF8E8;padding:9px 11px;font-size:12px;font-weight:700}.hq-price-list-assignment{border-top:1px solid var(--line);margin-top:14px;padding-top:12px;display:grid;gap:8px}.hq-price-list-assignment h4{margin:0}.hq-price-list-assignment select{max-width:420px}.hq-price-list-assignment label{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
@media(max-width:600px){.review-section-nav{max-height:none}.review-section-nav button{min-width:180px}.review-field-table,.commercial-review-panel table,.cross-document-panel table{min-width:760px}.correlation-actions .row{display:grid;grid-template-columns:1fr}.correlation-actions select{max-width:none;width:100%}.cross-document-panel,.commercial-review-panel,.submitted-price-panel{padding:14px}.cross-document-panel>.section-head,.commercial-review-panel>.section-head,.submitted-price-panel>.section-head{display:grid;gap:8px}.price-review-actions .row,.hq-price-list-assignment .row{display:grid;grid-template-columns:1fr}.hq-price-list-assignment select{max-width:none;width:100%}}
/* Shared action controls — 2026-10-05 */
/* Reserve action space inside scrollable tables; wrap between controls, never
   Chinese characters. Review/navigation labels are not forcibly single-line. */
.action-cell{min-width:164px;vertical-align:middle}
.master-list .action-cell{min-width:200px}
.action-cell button,.case-register .action-cell button,.master-list .action-cell button{
 display:inline-flex;align-items:center;justify-content:center;min-width:64px;
 min-height:44px;padding:10px 14px;margin:0 6px 6px 0;font-size:14px;
 line-height:1.4;letter-spacing:0;white-space:nowrap;word-break:normal;
 vertical-align:middle;border-radius:4px
}
.action-cell button:last-child{margin-right:0}
.master-list .action-cell{white-space:normal}
.action-cell button.ghost,.master-card-actions button.ghost{background:#fff;color:var(--accent2);border:1px solid var(--line)}
.action-cell button.danger,.master-card-actions button.danger{background:#fff;color:var(--danger);border:1px solid #C58B96}
.master-card-actions{gap:8px}
.master-card-actions button,.master-form-actions button,
.tm-section-actions button,.price-review-actions button,
.hq-price-list-assignment button,.decision-actions button{
 min-height:44px;padding:10px 16px;font-size:14px;line-height:1.4;
 letter-spacing:0;border-radius:4px;word-break:normal
}
.master-card-actions button,.master-form-actions button{white-space:nowrap}
.tm-section-actions,.price-review-actions .row{gap:10px}
.tm-section-actions .clear-action,.price-review-actions .clear-action{background:var(--ok);color:#fff;border:1px solid var(--ok)}
.tm-section-actions .issue-action,.price-review-actions .issue-action{background:#fff;color:var(--accent2);border:1px solid var(--accent)}
.section-review-actions button.warn,.price-review-actions button.warn,.decision-actions button.warn{
 background:#FFF3D8;color:#6B4A00;border:1px solid var(--goldsoft)
}
.decision-actions{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.decision-actions button{white-space:normal;overflow-wrap:break-word}
.action-cell button:disabled,.master-card-actions button:disabled,
.tm-section-actions button:disabled,.price-review-actions button:disabled,
.hq-price-list-assignment button:disabled,.decision-actions button:disabled,
.section-review-actions button:disabled{
 background:#E6E8E5;color:#626760;border:1px solid #C4CAC3;cursor:not-allowed
}
.langbtn{background:#fff;color:var(--accent2);border:1px solid var(--accent2);border-radius:4px;min-height:44px;padding:10px 14px;font-size:14px;line-height:1.4;letter-spacing:0;white-space:nowrap}
.top button{min-height:44px;min-width:52px;padding:0 10px;font-size:13px;white-space:nowrap}
@media(max-width:760px){
 .master-list .action-cell{min-width:180px}
 .side .langbtn{display:inline-flex;align-items:center;justify-content:center;margin:4px 8px;flex:0 0 auto}
 .decision-actions{grid-template-columns:1fr}
 .tm-section-actions{align-items:stretch}
 .tm-section-actions button{flex:1 1 220px;max-width:100%}
 .master-form-actions button{max-width:100%;white-space:normal}
}
