:root{--orange: #f58220;--ink: #111827;--muted: #5b6472;--line: #d9dee7;--bg: #eef1f5;--panel: #ffffff;--green: #0f766e;--red: #b42318;--yellow: #9a6700;--blue: #1d4ed8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}.appHeader{display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:14px 22px;background:var(--panel);border-bottom:1px solid var(--line)}.appHeader h1,.batchHeader h2,.reviewTitle h2{margin:0;font-size:24px;letter-spacing:0}.kicker{color:var(--orange);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:0}.headerRight,.actions,.toolbar,.userChip,.primaryButton,.secondaryButton{display:flex;align-items:center;gap:8px}.userChip{min-height:34px;padding:0 10px;border:1px solid var(--line);background:#f8fafc;font-size:13px;color:var(--muted)}.workspace{display:grid;grid-template-columns:318px minmax(0,1fr);min-height:calc(100vh - 72px)}.sidebar{border-right:1px solid var(--line);background:#f8fafc;padding:14px;overflow:auto}.panel,.batchHeader,.tablePanel,.reviewPanel,.loginPanel{background:var(--panel);border:1px solid var(--line)}.panel{padding:14px;margin-bottom:12px}.panel h2{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:15px}.panel input,.panel select,.statusGrid select,.toolbar select,.searchBox input,textarea{width:100%;min-height:38px;border:1px solid var(--line);background:#fff;padding:8px 10px;color:var(--ink)}.panel>input,.panel>select,.panel>button{margin-top:8px}.primaryButton,.secondaryButton,.iconButton,.batchItem{border:1px solid var(--line);cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform 80ms ease}.primaryButton{justify-content:center;min-height:38px;padding:0 12px;border-color:var(--orange);background:var(--orange);color:#111;font-weight:800;text-decoration:none}.secondaryButton{justify-content:center;min-height:36px;padding:0 10px;background:#fff;color:var(--ink);text-decoration:none}.primaryButton:hover:not(:disabled),.secondaryButton:hover:not(:disabled),.iconButton:hover:not(:disabled){border-color:#f5822080;background:#fff7ed}.primaryButton:hover:not(:disabled){background:#ff9b3d}.primaryButton:active:not(:disabled),.secondaryButton:active:not(:disabled),.iconButton:active:not(:disabled){transform:translateY(1px)}.dangerButton{border-color:#b4231859;color:var(--red)}.batchProgress{display:grid;gap:4px;width:120px;color:var(--muted);font-size:11px;font-weight:800}.batchProgress div{height:6px;overflow:hidden;border:1px solid var(--line);background:#f1f5f9}.batchProgress i{display:block;height:100%;background:var(--orange)}.iconButton{display:grid;place-items:center;width:38px;height:38px;background:#fff}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.55}.hint,.reviewTitle p{margin:8px 0 0;color:var(--muted);font-size:12px}.batchList{display:grid;gap:8px}.batchItem{display:grid;gap:4px;width:100%;padding:10px;background:#fff;text-align:left}.batchItem.active{border-left:4px solid var(--orange)}.batchItem span{color:var(--muted);font-size:12px}.mainPane{min-width:0;padding:14px}.batchHeader{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:14px;align-items:center;padding:14px;margin-bottom:12px}.actionStatus{grid-column:1 / -1;display:flex;align-items:center;min-height:30px;padding:6px 10px;border:1px solid rgba(29,78,216,.18);background:#eff6ff;color:var(--blue);font-size:12px;font-weight:800}.actionStatus.compact{margin-top:8px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(88px,1fr));gap:8px}.metric{min-height:48px;padding:8px 10px;border:1px solid var(--line);background:#f8fafc}.metric span{display:block;color:var(--muted);font-size:11px}.metric strong{display:block;font-size:18px}.split{display:grid;grid-template-columns:minmax(540px,1fr) 420px;gap:12px;align-items:start}.tablePanel,.reviewPanel{min-height:0}.toolbar{justify-content:space-between;flex-wrap:wrap;gap:10px;padding:10px;border-bottom:1px solid var(--line)}.searchBox{display:flex;align-items:center;gap:8px;margin-left:auto;width:min(520px,100%);padding-left:10px;border:1px solid var(--line);background:#fff}.searchBox input{border:0;outline:0}.filterButtons{display:flex;flex-wrap:wrap;gap:6px}.filterButton{min-height:38px;padding:0 12px;border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;font-weight:800}.filterButton:hover{border-color:#f5822073;color:var(--ink)}.filterButton.active{border-color:var(--orange);background:#fff7ed;color:var(--ink)}.tableWrap{overflow:auto;max-height:min(52vh,560px)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;white-space:nowrap}th{position:sticky;top:0;background:#f8fafc;z-index:1;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:0}.sortButton{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;font-weight:800;text-transform:inherit}.sortButton:hover,.sortButton.active{color:var(--ink)}tbody tr{cursor:pointer}tbody tr:hover,tbody tr.selected{background:#fff7ed}.fileLink,.reviewFileLink{border:0;background:transparent;color:var(--blue);cursor:pointer;font:inherit;font-weight:800;text-align:left;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.fileLink{max-width:340px;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.fileLink:hover,.reviewFileLink:hover{color:#0f3a94;background:#eff6ff}.emptyRow{height:86px;color:var(--muted);text-align:center;white-space:normal}.pill{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid var(--line);background:#f8fafc;color:var(--muted);font-size:12px;font-weight:800}.pill.complete,.pill.present,.pill.reviewed{border-color:#0f766e40;background:#ecfdf5;color:var(--green)}.pill.incomplete,.pill.missing,.pill.failed{border-color:#b4231840;background:#fff1f2;color:var(--red)}.pill.needs-review,.pill.unreviewed,.pill.in-review{border-color:#9a670040;background:#fffbeb;color:var(--yellow)}.reviewPanel{padding:14px}.reviewStack{display:grid;gap:12px}.reviewTitle{display:flex;justify-content:space-between;gap:12px;align-items:start;padding-bottom:12px;border-bottom:1px solid var(--line)}.reviewFileLink{display:inline-block;margin-top:8px;padding:0;color:var(--muted);font-size:12px;font-weight:700}.issueList{display:grid;gap:8px;margin:12px 0}.issue{display:grid;gap:3px;padding:9px 10px;border-left:3px solid var(--yellow);background:#fffbeb;font-size:12px}.issue.ok{border-color:var(--green);background:#ecfdf5}.issue span{color:var(--muted)}.statusGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.statusGrid label{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:800}.statusField{padding:7px;border-left:3px solid transparent}.statusField.danger{border-left-color:var(--red);background:#fff1f2;color:var(--red)}.statusField.warning{border-left-color:var(--yellow);background:#fffbeb;color:var(--yellow)}.statusField.danger select{border-color:#b4231866;background:snow}.statusField.warning select{border-color:#9a670059;background:#fffdf3}textarea{min-height:86px;margin:12px 0;resize:vertical}.reviewHistory{margin-top:12px;padding:10px 12px;border:1px solid var(--line);background:#f8fafc}.reviewHistory h3{margin:0 0 8px;font-size:13px}.reviewHistory ol{display:grid;gap:6px;margin:0;padding:0;list-style:none}.reviewHistory li{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:28px}.reviewHistory li div{min-width:0}.reviewHistory strong,.reviewHistory span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reviewHistory strong{font-size:12px}.reviewHistory span{color:var(--muted);font-size:11px}.evidencePanel{display:grid;gap:10px;margin-top:12px}.evidenceMenu{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:6px;padding:8px 0;background:var(--panel);border-bottom:1px solid var(--line)}.evidenceMenuButton{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 10px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;font-size:12px;font-weight:800}.evidenceMenuButton:hover{border-color:#f582208c}.evidenceMenuButton.noEvidence{color:var(--muted)}.evidenceMenuButton span{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;background:#f1f5f9;color:var(--muted);font-size:11px}.evidenceTopic{scroll-margin-top:12px}.evidenceTopicHeader{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0 6px}.evidenceTopicHeader h3{margin:0;font-size:14px}.evidenceGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px}.evidenceFigure{margin:0;border:1px solid var(--line);background:#f8fafc}.evidenceFigure img{display:block;width:100%;height:auto;max-height:220px;object-fit:contain;background:#fff}figcaption{padding:7px 8px;color:var(--muted);font-size:11px}.evidenceEmpty{padding:10px 12px;border:1px dashed var(--line);color:var(--muted);font-size:12px}.pdfViewer{position:fixed;z-index:20;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(860px,calc(100vw - 24px));height:min(720px,calc(100vh - 24px));border:1px solid #cbd5e1;background:#fff;box-shadow:0 18px 45px #0f172a47}.pdfViewerBar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;min-height:46px;padding:6px 8px 6px 12px;border-bottom:1px solid var(--line);background:#f8fafc;cursor:grab;-webkit-user-select:none;user-select:none}.pdfViewerBar:active{cursor:grabbing}.pdfViewerBar strong,.pdfViewerBar span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdfViewerBar strong{font-size:13px}.pdfViewerBar span{color:var(--muted);font-size:12px}.pdfFrame{width:100%;height:100%;border:0;background:#f8fafc}.pdfViewer.dragging .pdfFrame{pointer-events:none}.pdfMissing{display:grid;place-items:center;padding:24px;color:var(--muted);text-align:center}details{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}pre{max-height:260px;overflow:auto;white-space:pre-wrap;font-size:12px;color:#273244}.loginPanel,.empty{display:grid;place-items:center;gap:12px;min-height:280px;margin:32px auto;max-width:440px;padding:28px;text-align:center;color:var(--muted)}.loginPanel h2{margin:0;color:var(--ink)}.message{margin-bottom:12px;padding:10px 12px}.message.info{border:1px solid rgba(29,78,216,.18);background:#eff6ff;color:var(--blue)}.message.error{border:1px solid rgba(180,35,24,.2);background:#fff1f2;color:var(--red)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1120px){.workspace,.reviewStack,.batchHeader{grid-template-columns:1fr}.toolbar{align-items:stretch}.searchBox,.filterButtons{width:100%}.metrics{grid-template-columns:repeat(2,1fr)}}
