:root{--ink: #1B1F1E;--ink2: #333A38;--muted: #59625F;--faint: #6A736F;--bg: #F4F5F2;--card: #FFFFFF;--line: #D5DBD8;--line2: #E4E8E6;--head: #EEF1EF;--brand: #1F5F5B;--brand-dark: #163F3C;--top: #1B2B2A;--top-ink: #C9DCD9;--ok: #1D6B3D;--ok-bg: #E3F1E8;--ok-line: #A9C9B4;--fix: #1A4F96;--fix-bg: #E1EAF7;--fix-line: #A8BEDF;--flag: #8A4B00;--flag-bg: #FCEBD6;--flag-line: #E2BF92;--need: #7A4300;--need-bg: #FFF4E0;--need-line: #E8C690;--cur: #3E8A5E;--cur-bg: #F1F8F3;--bad: #A12A2A;--bad-bg: #FBE9E9;--mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink)}body{font-family:IBM Plex Sans,system-ui,sans-serif;font-size:14px;line-height:1.45}a{color:var(--brand)}a:hover{color:var(--brand-dark)}button,input,select,textarea{font-family:inherit;font-size:14px}h1{font-size:24px;font-weight:600;margin:0}h2{font-size:18px;font-weight:600;margin:0}h3{font-size:15px;font-weight:600;margin:0}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.small{font-size:12px}.faint{color:var(--faint)}.topbar{background:var(--top);color:#fff;padding:12px 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.topbar .brand{font-weight:600;font-size:15px}.topbar a,.topbar button.link{color:var(--top-ink);text-decoration:none;font-size:13px;background:none;border:none;cursor:pointer;padding:0}.topbar a:hover,.topbar button.link:hover{color:#fff}.topbar .nav{display:flex;gap:16px;align-items:center}.page{max-width:1680px;margin:0 auto;padding:20px 24px 40px}.narrow{max-width:1200px}.crumbs{font-size:12px;color:var(--muted)}.crumbs a{text-decoration:none}.card{background:var(--card);border:1px solid var(--line);border-radius:8px}.pad{padding:16px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:12px}.btn{min-height:36px;padding:0 12px;border-radius:6px;border:1px solid #B7C1BD;background:#fff;color:var(--ink2);cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:none;white-space:nowrap}.btn:hover{border-color:#8e9894}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:500}.btn.primary:hover{background:var(--brand-dark)}.btn.big{min-height:44px;padding:0 18px}.btn.ok{border-color:var(--ok-line);color:var(--ok)}.btn.ok.solid{background:var(--ok);border-color:var(--ok);color:#fff}.btn.fix{border-color:var(--fix-line);color:var(--fix)}.btn.fix.solid{background:var(--fix);border-color:var(--fix);color:#fff}.btn.flag{border-color:var(--flag-line);color:var(--flag)}.btn.quiet{border-color:transparent;background:none;color:var(--muted);padding:0 6px}.btn.quiet:hover{color:var(--ink)}.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:500;border:1px solid transparent;white-space:nowrap}.pill.asis{background:#fff;color:var(--faint);border-color:var(--line)}.pill.need{background:var(--need-bg);color:var(--need);border-color:var(--need-line)}.pill.approved{background:var(--ok-bg);color:var(--ok)}.pill.flagged{background:var(--flag-bg);color:var(--flag)}.pill.corrected{background:var(--fix-bg);color:var(--fix)}.pill.pending{background:var(--need-bg);color:var(--need)}.pill.open{background:var(--ok-bg);color:var(--ok)}.pill.rejected{background:var(--bad-bg);color:var(--bad)}.pill.gray{background:#eef0ee;color:#4a524f}.tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--line);margin-top:18px}.tabs button{background:none;border:none;border-bottom:2px solid transparent;padding:10px 14px;min-height:44px;font-size:14px;color:var(--muted);cursor:pointer;display:inline-flex;gap:6px;align-items:center}.tabs button.on{color:var(--ink);font-weight:600;border-bottom-color:var(--brand)}.split{display:flex;gap:20px;align-items:flex-start;margin-top:16px}.split>.left{flex:11 1 520px;min-width:0;display:flex;flex-direction:column;gap:12px}.split>.right{flex:9 1 420px;min-width:0;position:sticky;top:12px;max-height:calc(100vh - 24px);overflow-y:auto;border-radius:8px}@media (max-width: 1000px){.split{flex-direction:column}.split>.right{position:static;width:100%}}table.grid{width:100%;border-collapse:collapse}table.grid th{background:var(--head);text-align:left;font-size:12px;font-weight:600;color:#4a524f;text-transform:uppercase;letter-spacing:.4px;padding:9px 12px;position:sticky;top:0;z-index:1}table.grid td{padding:10px 12px;border-top:1px solid var(--line2);vertical-align:top}table.grid tr.sel td{background:#f1f6f5}table.grid tr.sel td:first-child{box-shadow:inset 3px 0 0 var(--brand)}table.grid tr.clickable{cursor:pointer}table.grid tr.clickable:hover td{background:#f7f9f8}table.grid tr.sel.clickable:hover td{background:#ebf3f1}.inst-link{font-family:var(--mono);font-size:12px;color:var(--brand);text-decoration:underline;background:none;border:none;padding:0;cursor:pointer}.chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:4px;background:var(--head);border:1px solid #C9D1CD;font-family:var(--mono);font-size:12px;color:var(--brand);cursor:pointer;white-space:nowrap}.chip.warn{background:var(--need-bg);border-color:var(--need-line);color:var(--need)}.chip.sel{outline:2px solid var(--brand);outline-offset:1px}.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form .full{grid-column:1 / -1}.field{display:flex;flex-direction:column;gap:4px}.field label{font-weight:500}.field input,.field select,.field textarea{padding:9px 10px;border:1px solid #B7C1BD;border-radius:6px;background:#fff}.field textarea{resize:vertical}.hint{font-size:12px;color:var(--muted)}.boxed{padding:10px 12px;background:var(--bg);border-radius:6px;color:var(--ink2)}.err{color:var(--bad);background:var(--bad-bg);border-radius:6px;padding:8px 12px}.note-warn{background:var(--need-bg);border:1px solid var(--need-line);border-radius:6px;padding:10px 12px;color:#4e2e00}.signbar{border-top:1px solid var(--line);padding:14px 16px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;background:#fafbfa;border-radius:0 0 8px 8px}.viewer-img{background:#e9ecea;border-radius:6px;height:calc(100vh - 300px);min-height:380px;display:flex}.viewer-img iframe{width:100%;height:100%;border:0;border-radius:6px;background:#fff}.viewer-img .empty{margin:auto;text-align:center;color:var(--faint);padding:24px}dl.kv{margin:0;display:grid;grid-template-columns:100px minmax(0,1fr);gap:5px 12px;font-size:13px}dl.kv dt{color:var(--muted)}dl.kv dd{margin:0;overflow-wrap:anywhere}.tree-wrap{overflow:auto;position:relative}.tree-node{position:absolute;box-sizing:border-box;padding:8px 10px;border-radius:8px;border:1px solid #B7C1BD;background:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-size:13px;line-height:1.3;overflow:hidden}.tree-node.root{border:2px dashed #A3ACA8;background:#fafbfa;color:var(--muted)}.tree-node.current{border:2px solid var(--cur);background:var(--cur-bg)}.tree-node.noted{border:2px solid #D08A2E;background:#fff9ef}.tree-node .cap{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;font-weight:600;color:#2f6b47}.tree-chip{position:absolute;transform:translate(-50%);z-index:2}.empty-state{padding:40px;text-align:center;color:var(--muted)}.center-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{width:100%;max-width:380px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--top);color:#fff;padding:10px 16px;border-radius:8px;z-index:50;box-shadow:0 4px 16px #0003}.toast.bad{background:var(--bad)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
