:root{--bg:#f4f7fb;--fg:#172033;--muted:#667085;--card:#fff;--card-subtle:#f8fafc;--border:#d8dee8;--border-strong:#c6ceda;--accent:#0b57d0;--accent-hover:#0847ad;--accent-soft:#edf4ff;--accent-fg:#fff;--danger:#b42318;--danger-soft:#fff1f0;--ok:#067647;--ok-soft:#ecfdf3;--warn:#b54708;--warn-soft:#fff7ed;--focus:#2e90fa;--shadow-sm:0 1px 2px #1018280d;--shadow-md:0 8px 24px #10182814;--radius:10px;color:var(--fg);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Noto Sans,Noto Sans Devanagari,sans-serif;font-size:15px;line-height:1.5}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);min-width:320px;color:var(--fg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}h1{letter-spacing:-.025em;margin:0 0 1.1rem;font-size:clamp(1.55rem,2vw,1.9rem);font-weight:700;line-height:1.2}h2{letter-spacing:-.01em;margin:0;font-size:1.12rem;font-weight:650;line-height:1.3}h3{margin:1rem 0 .5rem;font-size:1rem;font-weight:650}a{color:var(--accent);text-underline-offset:2px}code,.code,.plate,.plate-input{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.small{font-size:.85em}.muted{color:var(--muted)}.num{text-align:right;font-variant-numeric:tabular-nums}:focus-visible{outline:3px solid color-mix(in srgb, var(--focus) 50%, transparent);outline-offset:2px}.sr-only,.sr-only-label{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{background:var(--card);z-index:10;padding:.5rem;position:absolute;top:0;left:-999px}.skip:focus{left:.5rem}button,.button{min-height:2.45rem;font:inherit;border:1px solid var(--border-strong);background:var(--card);color:var(--fg);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:8px;justify-content:center;align-items:center;gap:.4rem;padding:.48rem .85rem;font-weight:600;text-decoration:none;transition:background .14s,border-color .14s,box-shadow .14s,transform .1s;display:inline-flex}button:hover:not(:disabled),.button:hover{background:var(--card-subtle);border-color:#aeb8c7}button:active:not(:disabled),.button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);box-shadow:0 1px 2px #0b57d040}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.button.primary-link{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.button.primary-link:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.button-large{min-height:3rem;padding-inline:1.15rem}button.danger{background:var(--danger-soft);color:var(--danger);border-color:#f3b7b2}button.plain{min-height:0;color:var(--accent);box-shadow:none;background:0 0;border:none;padding:0;text-decoration:underline}input,select,textarea{min-height:2.45rem;font:inherit;border:1px solid var(--border-strong);color:var(--fg);background:#fff;border-radius:8px;padding:.48rem .65rem;transition:border-color .14s,box-shadow .14s;box-shadow:inset 0 1px 1px #10182805}input:hover,select:hover,textarea:hover{border-color:#aeb8c7}input:focus,select:focus,textarea:focus{border-color:var(--focus);outline:none;box-shadow:0 0 0 3px #2e90fa24}label{color:#344054;flex-direction:column;gap:.28rem;font-size:.9rem;font-weight:550;display:flex}label.check{flex-direction:row;align-items:center;gap:.4rem}textarea.code{width:100%;min-height:10rem}pre.code{background:#f0f2f5;border-radius:4px;max-height:24rem;padding:.75rem;overflow:auto}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:40;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;border-bottom:1px solid #d8dee8e6;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;min-height:4rem;padding:.6rem clamp(.8rem,2vw,1.4rem);display:flex;position:sticky;top:0;box-shadow:0 1px 6px #1018280f}.app-footer{text-align:center;letter-spacing:.025em;color:#7a8494;border-top:1px solid var(--border);background:#ffffffc7;margin-top:auto;padding:.8rem 1rem;font-size:.76rem;font-weight:600}.brand{align-items:center;gap:.7rem;min-width:0;display:flex}.brand-mark{color:#fff;letter-spacing:.08em;background:linear-gradient(145deg,#14213d,#0b57d0);border-radius:9px;flex:0 0 2.15rem;place-items:center;width:2.15rem;height:2.15rem;font-size:.72rem;font-weight:800;display:inline-grid;box-shadow:0 4px 12px #0b57d038}.brand-copy{flex-direction:column;min-width:0;line-height:1.15;display:flex}.brand-copy strong{letter-spacing:-.015em;font-size:1rem}.brand-copy .muted{white-space:nowrap;margin-top:.18rem;font-size:.75rem}.nav-toggle{width:2.45rem;height:2.45rem;min-height:2.45rem;box-shadow:none;background:0 0;border-color:#0000;flex-direction:column;flex-shrink:0;justify-content:center;gap:.27rem;padding:.52rem;display:inline-flex}.nav-toggle span{background:currentColor;border-radius:999px;width:100%;height:2px;display:block}.topbar-right{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.lang{color:var(--muted);flex-direction:row;align-items:center;gap:.4rem;font-size:.82rem}.lang select{min-height:2.25rem;padding-top:.35rem;padding-bottom:.35rem}.who{background:var(--accent-soft);color:#194185;white-space:nowrap;border:1px solid #d7e5fb;border-radius:999px;align-items:center;min-height:2.25rem;padding:.32rem .7rem;font-size:.82rem;font-weight:600;display:inline-flex}.body{flex:1;min-height:0;display:flex;position:relative}.nav-backdrop{z-index:34;min-height:0;box-shadow:none;cursor:default;background:#0f172a3d;border:0;border-radius:0;padding:0;position:fixed;inset:4rem 0 0}.nav-backdrop:hover{background:#0f172a3d!important;border:0!important}.sidenav{z-index:35;border-right:1px solid var(--border);visibility:hidden;background:#fffffffa;width:17rem;padding:.7rem;transition:transform .18s,visibility .18s;position:fixed;top:4rem;bottom:0;left:0;overflow-y:auto;transform:translate(-105%);box-shadow:8px 0 28px #1018281f}.sidenav.open{visibility:visible;transform:translate(0)}.sidenav ul{gap:.18rem;margin:0;padding:0;list-style:none;display:grid}.sidenav a{color:#344054;border-radius:8px;padding:.62rem .78rem;font-size:.91rem;font-weight:550;text-decoration:none;transition:background .12s,color .12s;display:block}.sidenav a:hover{color:var(--fg);background:#f2f5f9}.sidenav a.active{background:var(--accent-soft);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);font-weight:700}main{flex:1;width:100%;min-width:0;padding:clamp(1rem,2.1vw,1.7rem)}@media (width<=800px){.topbar{gap:.5rem;padding-inline:.7rem}.brand-copy .muted,.brand-mark,.who,.lang>span{display:none}.topbar-right{gap:.4rem}.topbar-right button,.topbar-right .button{padding-inline:.6rem}.sidenav{width:min(18rem,86vw)}main{padding:.85rem}.card{border-radius:10px;padding:.9rem}.reset-password-form,.rename-user-form{min-width:0}}.card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;margin-bottom:1rem;padding:clamp(1rem,1.6vw,1.3rem)}.card.narrow,.card.login{max-width:30rem}.card-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.card-head h2{align-items:center;gap:.45rem;display:flex}.card-actions{flex-wrap:wrap;gap:.5rem;display:flex}.login-wrap{background:radial-gradient(circle at 18% 18%, #0b57d014, transparent 28rem), radial-gradient(circle at 82% 78%, #14213d0f, transparent 30rem), var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:100vh;padding:1rem;display:flex}.card.login{width:min(30rem,100%);box-shadow:var(--shadow-md);border-color:#cfd8e6}.login-footer{background:0 0;border:0;width:min(30rem,100%)}.row{align-items:flex-end;gap:.6rem;margin:.5rem 0;display:flex}.row.wrap{flex-wrap:wrap}.row.spread{justify-content:space-between}.stack{flex-direction:column;gap:.4rem;display:flex}.page-title-row{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.4rem;display:flex}.page-title-row h1{margin-bottom:0}.workflow-action{flex-wrap:wrap;align-items:center;gap:.8rem;margin:0 0 1rem;display:flex}.reset-password-form,.rename-user-form{flex-wrap:wrap;min-width:21rem;margin:0}.reset-password-field,.rename-user-field{flex:13rem;min-width:13rem}.reset-password-field input,.rename-user-field input{width:100%}.form{flex-direction:column;gap:.6rem;max-width:40rem;margin:.5rem 0;display:flex}.grid2{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1rem;display:grid}.case-grid{grid-template-columns:minmax(0,3fr) minmax(18rem,2fr);gap:1rem;display:grid}@media (width<=1000px){.case-grid{grid-template-columns:1fr}}table{border-collapse:separate;border-spacing:0;width:100%;font-size:.9rem}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #e7ebf0;padding:.7rem .75rem}th{z-index:5;color:#475467;letter-spacing:.025em;text-transform:uppercase;background:#f8fafc;font-size:.78rem;font-weight:700;position:sticky;top:4rem}tbody tr{transition:background .12s}tbody tr:hover{background:#f8fbff}tbody tr:last-child td{border-bottom:0}td a{font-weight:600;text-decoration:none}td a:hover{text-decoration:underline}table.logs td{white-space:pre-wrap;word-break:break-word}.table-scroll{max-height:70vh;overflow:auto}.table-scroll th{top:0}.table-scroll td.wrap{word-break:break-all;min-width:10rem}.table-scroll td.num{text-align:right;white-space:nowrap}.badge.review-review_required{background:var(--warn-soft);color:var(--warn);border-color:#fedf89}.badge.review-reviewed{background:var(--ok-soft);color:var(--ok);border-color:#abefc6}.kv{grid-template-columns:max-content 1fr;gap:.25rem 1rem;margin:0;display:grid}.kv-row{display:contents}.kv dt{color:var(--muted)}.kv dd{word-break:break-word;margin:0}.badge{border:1px solid var(--border);letter-spacing:.015em;color:#475467;white-space:nowrap;background:#f2f4f7;border-radius:999px;align-items:center;gap:.3rem;padding:.16rem .5rem;font-size:.74rem;font-weight:700;display:inline-flex}.badge.warn,.badge.outcome-insufficient_evidence,.badge.gate-warn,.badge.state-paused{background:var(--warn-soft);color:var(--warn);border-color:#fedf89}.badge.outcome-pass,.badge.outcome-success,.badge.gate-pass,.badge.state-completed{background:var(--ok-soft);color:var(--ok);border-color:#abefc6}.badge.outcome-fail,.badge.outcome-failed,.badge.outcome-denied,.badge.gate-fail,.badge.state-stopped{background:var(--danger-soft);color:var(--danger);border-color:#fecdca}.badge.lock,.badge.state-created,.badge.state-validated,.badge.state-processing{background:var(--accent-soft);color:var(--accent);border-color:#b2ccff}.chips,.gates{flex-wrap:wrap;gap:.3rem;display:flex}.queue-tabs{flex-wrap:wrap;gap:.35rem;margin:.75rem 0 .35rem;display:flex}.queue-tab{align-items:center;gap:.35rem;display:inline-flex}.queue-tab.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:700}.queue-banner{margin:0 0 .6rem}.state{margin:.65rem 0}.state-loading,.state-empty{text-align:center;color:var(--muted);background:var(--card-subtle);border:1px dashed var(--border);border-radius:10px;padding:1.25rem}.state-error{border:1px solid #fecdca;border-left:4px solid var(--danger);background:var(--danger-soft);border-radius:9px;padding:.7rem .85rem}.state-not-implemented{border-color:#b2ccff;border-left-color:var(--accent);background:var(--accent-soft)}.notice{border:1px solid #0000;border-radius:9px;margin:.65rem 0 1rem;padding:.72rem .9rem}.notice-info{background:var(--accent-soft);color:#194185;border-color:#d7e5fb}.notice-success{background:var(--ok-soft);color:var(--ok);border-color:#abefc6}.notice-warning{background:var(--warn-soft);color:var(--warn);border-color:#fedf89}.alerts{padding:0;list-style:none}.alert{border-left:4px solid var(--border);margin-bottom:.3rem;padding:.4rem .6rem}.alert-warning{border-left-color:var(--warn)}.alert-critical{border-left-color:var(--danger)}.stats{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem;margin:.75rem 0;display:grid}.stat{border:1px solid var(--border);box-shadow:var(--shadow-sm);background:linear-gradient(#fff,#fbfcfe);border-radius:10px;padding:.8rem .9rem}.stat-value{color:#101828;font-variant-numeric:tabular-nums;font-size:1.55rem;font-weight:750;line-height:1.15}.stat-label{color:var(--muted);margin-top:.2rem;font-size:.8rem;font-weight:600}.progress-label{color:var(--muted);justify-content:space-between;gap:1rem;margin-bottom:.35rem;display:flex}.progress-label strong{color:var(--fg);font-variant-numeric:tabular-nums}.progress{background:#e9edf3;border-radius:999px;height:.55rem;overflow:hidden}.progress-bar{background:linear-gradient(90deg,#0b57d0,#2e90fa);height:100%;transition:width .18s}.upload-progress{background:#f7faff;border:1px solid #b2ccff;border-radius:10px;width:100%;margin-top:.75rem;padding:.75rem .85rem}.upload-progress .row{align-items:center;margin:0 0 .45rem}.plate{letter-spacing:.09em;color:#101828;font-size:1.15rem;font-weight:750}.plate-input{letter-spacing:.09em;text-transform:uppercase;font-size:1.2rem;font-weight:650}.claim-note{background:var(--warn-soft);color:var(--warn);border:1px solid #fedf89;border-radius:10px;margin:0 0 .85rem;padding:.6rem .85rem}.decision-body{border:0;flex-direction:column;gap:.6rem;min-width:0;margin:0;padding:0;display:flex}.wrong-crop{background:#f7faff;border:1px dashed #b2ccff;border-radius:10px;flex-direction:column;gap:.5rem;padding:.85rem;display:flex}.wrong-crop p{margin:0}.reread-result{flex-direction:column;gap:.4rem;display:flex}.check-row{flex-direction:row;align-items:center;gap:.5rem;display:flex}.suggested-reading{background:var(--accent-soft);border:1px solid #b2ccff;border-radius:10px;flex-direction:column;gap:.35rem;margin-bottom:.75rem;padding:1rem;display:flex}.suggested-reading .plate{font-size:clamp(1.45rem,3vw,2rem)}.suggested-reading .badge{align-self:flex-start}.raw-reading,.repaired-reading{border-color:#fedf89;border-left:4px solid var(--warn);background:#fffcf5}.state-warning{background:var(--warn-soft);color:var(--warn);border:1px solid #fedf89;border-radius:9px;margin:.2rem 0 0;padding:.5rem .75rem;font-weight:600}.repair-facts{grid-template-columns:max-content 1fr;gap:.3rem .9rem;margin:.3rem 0 0;display:grid}.repair-facts dt{color:var(--muted,#667085)}.repair-facts dd{margin:0}.repair-facts .plate,.reading-list .plate{font-size:1rem}.reading-list[data-testid]{grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));gap:.45rem 2.5rem;display:grid}.reading-list[data-testid] li .badge{margin-left:.25rem}.reading-list[data-testid=repaired-candidates]{padding-left:0;list-style:none}.decision-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-top:.5rem;display:grid}.decision-option{border:1px solid var(--border-strong);background:var(--card);cursor:pointer;border-radius:9px;flex-direction:row;align-items:center;gap:.5rem;min-height:3rem;padding:.65rem .75rem;display:flex}.decision-option:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:#194185}.reading-list{flex-wrap:wrap;gap:.55rem 1.5rem;margin:.6rem 0;padding-left:1.5rem;display:flex}.upload-primary{background:var(--accent-soft);border:1px solid #b2ccff;border-radius:10px;flex-direction:column;align-items:flex-start;gap:.55rem;padding:1rem;display:flex}.upload-primary p{margin:0}.selection-confirmation{color:var(--ok);font-weight:650}.disclosure{border:1px solid var(--border);background:var(--card);border-radius:10px;margin:.75rem 0}.disclosure>summary{color:#344054;cursor:pointer;padding:.75rem .9rem;font-weight:650}.disclosure[open]>summary{border-bottom:1px solid var(--border)}.disclosure-body{padding:.9rem}.disclosure-body.form{margin:0}.disclosure.compact{box-shadow:none}details.card{padding:0;overflow:hidden}details.card>summary{padding:1rem 1.3rem;font-size:1.05rem}.viewer{flex-direction:column;gap:.55rem;display:flex}.viewer-toolbar{flex-wrap:wrap;align-items:center;padding:.35rem 0}.viewer-frame{cursor:grab;touch-action:none;background:#0b0f17;border:1px solid #202939;border-radius:10px;height:60vh;min-height:18rem;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff05}.viewer-frame img{transform-origin:0 0;-webkit-user-select:none;user-select:none;image-orientation:from-image;position:absolute;top:0;left:0}.viewer-frame.drawing{cursor:crosshair}.viewer-box{pointer-events:none;border:2px solid #fdb022;position:absolute;box-shadow:0 0 0 9999px #0b0f1759}.viewer-toolbar button.active{border-color:var(--accent);background:var(--accent-soft)}.dialog{border:1px solid var(--border);background:var(--card);border-radius:12px;width:90vw;max-width:34rem;padding:1.2rem;box-shadow:0 24px 60px #10182833}.dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a75}.dialog label{margin:.55rem 0}.plate-crop{border:1px solid var(--border);image-rendering:auto;border-radius:8px;max-width:100%;height:auto;display:block}.offline{z-index:39;border-radius:0;margin:0;position:sticky;top:4rem}@media (width<=640px){.decision-options{grid-template-columns:1fr}.workflow-action .button{width:100%}}
