:root{--nav:#142b39;--nav-light:#203d4c;--brand:#166e65;--brand-soft:#e7f4f0;--ink:#20343f;--muted:#71828b;--line:#e5ebed;--bg:#f4f7f8;--amber:#a77919;--red:#b24b43}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--brand);text-decoration:none}[hidden]{display:none!important}.shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:236px;background:var(--nav);color:#dbe6ec;display:flex;flex-direction:column;padding:28px 18px}.brand{display:flex;gap:12px;align-items:center;font-size:17px;font-weight:650}.brand-mark{width:41px;height:41px;background:#dcece7;color:#144f48;display:grid;place-items:center;border-radius:12px;font-size:22px;font-weight:700}.brand small{display:block;color:#91a9b6;font-size:11px;font-weight:400;margin-top:2px}.nav-caption{font-size:10px;letter-spacing:1.8px;color:#7f9ba8;margin:42px 14px 15px}nav button{display:flex;align-items:center;gap:13px;width:100%;border:0;color:#b7cbd5;background:transparent;padding:13px 14px;border-radius:8px;text-align:left;margin-bottom:6px}nav button span{font-size:19px;width:20px}nav button:hover{background:var(--nav-light)}nav button.active{background:#dbece5;color:#1b5249;font-weight:650}nav i{margin-left:auto;background:#e1b668;color:#182e39;padding:0 5px;border-radius:3px;font-size:10px;font-style:normal}.sidebar-bottom{margin-top:auto;padding:22px 12px 0;color:#b3c8d1;font-size:11px}.sidebar-bottom small{display:block;color:#7492a1;margin:8px 0 20px}.sidebar-bottom a{color:#b3c8d1}.live-dot{display:inline-block;width:6px;height:6px;border-radius:100%;background:#76c2a5;margin-right:7px}.main{margin-left:236px;width:calc(100% - 236px)}.topbar{height:73px;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid var(--line);background:white;color:var(--muted);font-size:12px}.topbar-right{display:flex;gap:18px;align-items:center}.pill{padding:3px 9px;color:var(--brand);background:var(--brand-soft);border-radius:6px}.text-button{border:0;background:none;color:var(--muted);padding:4px}.text-button:hover{color:var(--brand)}main{max-width:1520px;margin:auto;padding:31px 36px 48px}.page-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:25px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--brand);font-weight:650}h1{font-size:27px;letter-spacing:-.7px;line-height:1.3;margin:7px 0 9px}h2{font-size:17px;margin:0 0 18px}h3{font-size:14px;margin:0 0 12px}p{margin:0 0 16px}.muted,.subtext{color:var(--muted);font-size:12px}.primary,.secondary,.small-button{border-radius:7px;padding:10px 17px;border:1px solid var(--brand);background:var(--brand);color:white;font-weight:550}.primary:hover{background:#12594f}.primary:disabled,button:disabled{opacity:.45;cursor:not-allowed}.secondary{background:white;border-color:var(--line);color:var(--ink)}.secondary:hover{background:var(--bg)}.small-button{font-size:12px;padding:5px 10px;white-space:nowrap}.small-button.ghost{background:white;color:var(--brand);border-color:#c9dcd6}.small-button.danger{background:white;color:var(--red);border-color:#edd4d1}.actions{display:flex;gap:8px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.stat{background:white;padding:21px 22px;border:1px solid var(--line);border-radius:10px}.stat-label{color:var(--muted);font-size:12px;display:flex;justify-content:space-between}.stat strong{display:block;font-size:30px;font-weight:650;margin:11px 0 3px;font-variant-numeric:tabular-nums}.stat small{font-size:11px;color:var(--muted)}.stat.warning{border-top:3px solid #dab262}.stat.warning strong{color:var(--amber)}.panel{background:white;border:1px solid var(--line);border-radius:10px;padding:23px;margin-bottom:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.panel-head h2{margin:0}.dashboard-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:22px}.hero-panel{background:#e7efec;border-color:#d8e5df;display:flex;gap:28px;align-items:center}.hero-panel .hero-icon{background:white;width:66px;height:66px;border-radius:16px;display:grid;place-items:center;color:var(--brand);font-size:32px;flex-shrink:0}.hero-panel h2{font-size:19px;margin-bottom:6px}.hero-panel p{margin:0;color:#56736a;font-size:12px}.hero-panel .primary{margin-left:auto;white-space:nowrap}.bar-row{display:grid;grid-template-columns:88px 1fr 66px;gap:14px;align-items:center;margin:18px 0;font-size:12px}.bar-track{height:11px;background:#edf2f2;border-radius:4px;overflow:hidden}.bar-fill{height:100%;background:var(--brand);border-radius:4px}.task-row{padding:13px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}.task-row:last-child{border:0}.task-row .task-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#f4eddc;color:var(--amber)}.task-row .task-text{flex:1}.task-row small{display:block;font-size:11px;color:var(--muted)}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:var(--muted);font-weight:500;background:#f7f9fa;padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:13px 14px;border-bottom:1px solid #eef2f3;vertical-align:middle}tr:last-child td{border-bottom:0}tr:hover td{background:#fafcfc}td strong{font-weight:600;display:block}td small{display:block;color:var(--muted);margin-top:2px}.table-wrap{overflow:auto}.tag{display:inline-block;border-radius:4px;background:#eef3f5;color:#516c7b;font-size:11px;padding:2px 7px;white-space:nowrap}.tag.green{background:#e8f4ee;color:#287d61}.tag.amber{background:#fbf0d8;color:#9a721e}.tag.red{background:#fbe9e7;color:#ac5049}.filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:17px;align-items:center}.filters input{min-width:250px}.filters select{width:auto;min-width:145px}input,select,textarea{width:100%;padding:9px 12px;border:1px solid #dce4e6;border-radius:6px;background:white;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 2px #166e6512}input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand)}label{display:block;font-size:12px;color:#536872}label input,label select,label textarea{margin-top:7px}textarea{min-height:80px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.full{grid-column:1/-1}.form-footer{margin-top:21px;display:flex;gap:10px;align-items:center}.notice{color:#795e2c;background:#fff8e8;padding:12px 15px;border-radius:7px;font-size:12px;margin-bottom:19px}.empty{text-align:center;color:var(--muted);padding:40px!important}.split{display:grid;grid-template-columns:1.1fr 1fr;gap:22px}.upload-area{position:relative;border:1px dashed #b8cec5;background:#f5faf8;border-radius:9px;min-height:220px;display:flex;align-items:center;justify-content:center;text-align:center;padding:25px;cursor:pointer}.upload-area input{position:absolute;inset:0;opacity:0;cursor:pointer}.upload-area strong{display:block;font-size:15px;margin:8px}.upload-area .upload-symbol{font-size:34px;color:var(--brand)}.image-frame{position:relative;border:1px solid var(--line);background:#fafafa;line-height:0;border-radius:7px;overflow:hidden;margin-bottom:14px}.image-frame img{width:100%;max-height:530px;object-fit:contain;display:block}.image-frame .boxes{position:absolute;inset:0;pointer-events:none}.ocr-box{position:absolute;border:1px solid #1f9b77;background:#1f9b770a}.evidence-list{max-height:230px;overflow:auto;font-size:12px}.evidence-line{padding:7px 8px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px}.evidence-line small{color:var(--muted);white-space:nowrap}.check-label{display:flex;align-items:flex-start;gap:9px;margin:15px 0}.check-label input{margin-top:3px;flex-shrink:0}.result-success{background:var(--brand-soft);color:var(--brand);padding:16px;border-radius:8px;margin:18px 0}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);padding:13px 23px;border-radius:8px;background:var(--nav);color:white;z-index:200;box-shadow:0 8px 25px #102a3522;max-width:90vw}.toast.error{background:#a94740}dialog{border:1px solid var(--line);border-radius:14px;max-width:1000px;width:90vw;padding:30px;color:var(--ink);box-shadow:0 20px 90px #102a3533}dialog::backdrop{background:#122b3955}.dialog-close{position:absolute;right:16px;top:12px;border:0;background:transparent;font-size:26px;color:var(--muted)}footer{padding:20px 36px;font-size:10px;color:#95a2a8;border-top:1px solid var(--line)}.login-layout{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:white}.login-story{background:var(--nav);color:white;padding:80px 12%;display:flex;flex-direction:column;justify-content:center}.login-story .eyebrow{color:#85b9a7;margin-top:45px}.login-story h1{font-size:42px;line-height:1.5;margin:18px 0}.login-story p{color:#a8c2cc}.story-lines{display:flex;gap:22px;margin:45px 0;font-size:12px;color:#c2d5da}.login-story small{margin-top:40px;color:#698a98;font-size:11px}.login-card{max-width:380px;width:85%;margin:auto}.login-card h2{font-size:27px;margin:10px 0}.login-card label{margin-top:23px}.login-card .primary{width:100%;display:flex;justify-content:space-between;margin:28px 0 18px}.demo-note{font-size:11px;color:#8a9ba4;background:#f5f8f8;padding:12px;border-radius:7px}#login-error{color:var(--red);font-size:12px;margin-top:15px}.login-layout .brand-mark{width:55px;height:55px;font-size:30px}.count{font-size:11px;color:var(--muted)}.scope-summary{padding:6px 0}.value-number{text-align:right;font-variant-numeric:tabular-nums}code{background:#eef3f5;border-radius:3px;padding:2px 4px;font-size:11px}pre{white-space:pre-wrap;word-break:break-all;font-size:11px;background:#f7f9fa;padding:12px;border-radius:6px;max-height:250px;overflow:auto}@media(max-width:1050px){.sidebar{width:205px}.main{margin-left:205px;width:calc(100% - 205px)}main{padding:25px}.topbar{padding:0 25px}.stats{gap:10px}.stat{padding:17px}.split,.dashboard-grid{grid-template-columns:1fr}.hero-panel{gap:14px}}@media(max-width:720px){.sidebar{position:static;width:100%;padding:15px;display:block}.brand{font-size:15px}.nav-caption,.sidebar-bottom{display:none}nav{display:flex;overflow:auto;margin-top:17px;gap:5px}nav button{width:auto;white-space:nowrap;padding:9px 12px}nav button span{display:none}.shell{display:block}.main{margin:0;width:100%}.topbar{height:auto;min-height:60px;gap:10px;padding:15px;font-size:11px}.topbar-right{gap:8px;flex-wrap:wrap;justify-content:flex-end}main{padding:22px 15px}.stats{grid-template-columns:1fr 1fr}.stat strong{font-size:24px}.page-heading{align-items:flex-start}.form-grid{grid-template-columns:1fr}.hero-panel .hero-icon{display:none}.hero-panel{flex-wrap:wrap}.hero-panel .primary{margin-left:0}.login-layout{grid-template-columns:1fr}.login-story{padding:30px 9%}.login-story h1{font-size:28px}.login-story .eyebrow{margin-top:15px}.login-story small,.story-lines{display:none}.login-card{margin:35px auto}.panel{padding:18px}.filters input{min-width:100%;}dialog{padding:23px;width:95vw}}
:root .image-frame img{max-height:none;height:auto}
@media(min-width:721px) and (max-width:1100px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat strong{font-size:26px}.page-heading{flex-wrap:wrap}}
.physical-evidence{margin-bottom:22px}.physical-box-layer,.physical-draw-layer{position:absolute;inset:0}.physical-box-layer{pointer-events:none}.physical-draw-layer{cursor:crosshair;touch-action:none}.physical-box{position:absolute;border:2px solid #147d69;background:#147d6910}.physical-box span{position:absolute;top:0;left:0;background:#147d69;color:white;font-size:11px;line-height:1.4;padding:2px 4px;white-space:nowrap}.physical-box.excluded{border-color:#a86c61;border-style:dashed;background:#b55e5320}.physical-box.excluded span{background:#a86c61}#physical-instance-rows select{min-width:110px}#physical-instance-rows .check-label{margin:0}.physical-evidence img{user-select:none}
.ledger-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.ledger-keyword{grid-column:span 2}.ledger-filter-actions{display:flex;align-items:end;gap:10px;grid-column:span 2}.ledger-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;flex-wrap:wrap}.ledger-pagination .actions{flex-wrap:wrap}.ledger-pagination button:disabled{opacity:.4;cursor:default}#ledger-jump-form{display:flex;gap:8px;align-items:center}#ledger-jump-form label{display:flex;align-items:center;gap:6px;margin:0}#ledger-jump-form input{width:75px;margin:0}#ledger-table td{white-space:nowrap}#ledger-table td small{white-space:normal;min-width:100px}@media(max-width:1100px){.ledger-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.ledger-filter-grid{grid-template-columns:1fr}.ledger-keyword,.ledger-filter-actions{grid-column:span 1}.ledger-pagination{align-items:flex-start}}
#auditLog-jump-form{display:flex;gap:8px;align-items:center}#auditLog-jump-form label{display:flex;align-items:center;gap:6px;margin:0}#auditLog-jump-form input{width:75px;margin:0}#auditLog-table td{white-space:nowrap}#auditLog-table td small{white-space:normal;min-width:100px}

.camera-panel{border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:18px}.camera-panel video,.camera-panel img{width:100%;height:auto;max-height:480px;object-fit:contain;background:#eff3f4;border-radius:6px}.camera-panel .actions{flex-wrap:wrap}.camera-panel [role=status]{margin:10px 0;font-size:12px;color:var(--muted)}

.ocr-attribute-section,.ocr-candidate-panel{border:1px solid #cce0dc;border-radius:10px;padding:16px;background:#f6faf9}.ocr-attribute-section h3,.ocr-candidate-panel h3{margin-top:0}.ocr-attribute-section small{display:block;color:#71847c;margin-top:5px;font-size:11px}.ocr-attribute-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.ocr-attribute-section [role=status]{font-size:12px;color:var(--brand);margin-bottom:0}.ocr-candidate-panel label{margin-bottom:10px}.ocr-candidates{max-height:280px;overflow:auto}.ocr-candidate-row{padding:9px 0;border-bottom:1px solid #dce8e3;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ocr-token{background:white;border:1px solid #8dbfb0;border-radius:7px;padding:8px 12px;color:var(--brand);font-size:14px;white-space:normal;text-align:left;overflow-wrap:anywhere}.ocr-token:hover,.ocr-token:focus-visible{background:#e4f4ef;box-shadow:0 0 0 2px #b0d8cb}.ocr-token:disabled{opacity:.6;cursor:default}.ocr-low-confidence{font-size:11px;color:#976617}#ocr-replace-confirm{margin-top:12px;padding:12px;background:#fff4dd;border-radius:6px;font-size:12px}#ocr-replace-confirm[hidden]{display:none}
#catalog-content{margin-top:20px}#catalog-content td input:not([type=checkbox]),#catalog-content td select{min-width:120px}#catalog-category-rows td:nth-child(3) input{min-width:230px}#catalog-mapping-rows td:first-child select{min-width:260px}#catalog-vision-form h3{margin:22px 0 12px}#catalog-vision-form>button{margin:20px 0}#catalog-content .table-wrap{margin-bottom:18px}

.multi-line-review{margin:20px 0;padding:16px;border:1px solid #d9e2e4;border-radius:10px}.multi-draft-row{padding:12px 0;border-bottom:1px solid #e8eded}.multi-line-review legend{padding:0 6px;font-weight:700}
