:root{color-scheme:light dark;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI Variable Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "SF Mono", "JetBrains Mono", Consolas, monospace;--bg: #eef1f7;--surface: #ffffff;--surface-2: #f4f7fc;--border: #e4e9f2;--border-strong: #cfd8e6;--ink: #0b1626;--muted: #5a6675;--brand: #2c6bff;--brand-ink: #1b4ed8;--brand-weak: #e9f0ff;--on-brand: #ffffff;--gold: #9c6f1c;--gold-weak: #f6edd7;--good: #0e9f6e;--good-weak: #e3f6ee;--warn: #b06f12;--warn-weak: #f9efd6;--crit: #d92d2d;--crit-weak: #fbe6e6;--rail: #0a1120;--rail-2: #0f1a2e;--rail-hover: #16233c;--rail-ink: #d3dbe9;--rail-muted: #8b97ad;--rail-border: #1b2740;--radius: 14px;--radius-sm: 9px;--radius-xs: 6px;--shadow-sm: 0 1px 2px rgba(11, 22, 38, .05), 0 1px 3px rgba(11, 22, 38, .07);--shadow-md: 0 6px 20px -6px rgba(11, 22, 38, .16), 0 2px 6px rgba(11, 22, 38, .06);--shadow-lg: 0 20px 48px -12px rgba(11, 22, 38, .28)}@media (prefers-color-scheme: dark){:root{--bg: #070c16;--surface: #0f1a2d;--surface-2: #15223b;--border: #21314a;--border-strong: #304463;--ink: #e9eef8;--muted: #93a0b6;--brand: #5f8cff;--brand-ink: #86a9ff;--brand-weak: #16233f;--on-brand: #08121f;--gold: #d6a84c;--gold-weak: #2a2410;--good: #34c793;--good-weak: #0f2620;--warn: #e0a63a;--warn-weak: #291f0d;--crit: #f26d6d;--crit-weak: #2b1414;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 6px 22px -6px rgba(0, 0, 0, .5);--shadow-lg: 0 22px 52px -12px rgba(0, 0, 0, .62)}}:root[data-theme=light]{--bg: #eef1f7;--surface: #ffffff;--surface-2: #f4f7fc;--border: #e4e9f2;--border-strong: #cfd8e6;--ink: #0b1626;--muted: #5a6675;--brand: #2c6bff;--brand-ink: #1b4ed8;--brand-weak: #e9f0ff;--on-brand: #ffffff;--gold: #9c6f1c;--gold-weak: #f6edd7;--good: #0e9f6e;--good-weak: #e3f6ee;--warn: #b06f12;--warn-weak: #f9efd6;--crit: #d92d2d;--crit-weak: #fbe6e6;--shadow-sm: 0 1px 2px rgba(11,22,38,.05), 0 1px 3px rgba(11,22,38,.07);--shadow-md: 0 6px 20px -6px rgba(11,22,38,.16), 0 2px 6px rgba(11,22,38,.06);--shadow-lg: 0 20px 48px -12px rgba(11,22,38,.28)}:root[data-theme=dark]{--bg: #070c16;--surface: #0f1a2d;--surface-2: #15223b;--border: #21314a;--border-strong: #304463;--ink: #e9eef8;--muted: #93a0b6;--brand: #5f8cff;--brand-ink: #86a9ff;--brand-weak: #16233f;--on-brand: #08121f;--gold: #d6a84c;--gold-weak: #2a2410;--good: #34c793;--good-weak: #0f2620;--warn: #e0a63a;--warn-weak: #291f0d;--crit: #f26d6d;--crit-weak: #2b1414;--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--shadow-md: 0 6px 22px -6px rgba(0,0,0,.5);--shadow-lg: 0 22px 52px -12px rgba(0,0,0,.62)}*{box-sizing:border-box}body{font-family:var(--font-sans);margin:0;color:var(--ink);background:var(--bg);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"cv05","ss01"}h1{font-size:1.65rem;font-weight:720;letter-spacing:-.025em;margin:0 0 .9rem;text-wrap:balance}h2{font-size:1.15rem;font-weight:660;letter-spacing:-.01em;margin:1.9rem 0 .8rem}h3{font-size:1rem;font-weight:640;margin:0 0 .4rem}a{color:var(--brand)}.mono{font-family:var(--font-mono);font-size:.92em;letter-spacing:-.02em}.muted{color:var(--muted)}button{min-height:2.5rem;padding:0 1.15rem;cursor:pointer;border:1px solid transparent;background:var(--brand);color:var(--on-brand);border-radius:var(--radius-sm);font:inherit;font-weight:600;box-shadow:0 6px 16px -8px color-mix(in srgb,var(--brand) 75%,transparent);transition:background-color .15s ease,box-shadow .15s ease,transform .05s ease,border-color .15s ease}button:hover{background:var(--brand-ink)}button:active{transform:translateY(1px)}button.secondary{background:var(--surface);color:var(--brand);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}button.secondary:hover{background:var(--brand-weak);border-color:var(--brand)}button.danger{background:var(--crit);color:#fff;box-shadow:0 6px 16px -8px color-mix(in srgb,var(--crit) 70%,transparent)}button.danger:hover{filter:brightness(.95);background:var(--crit)}button.link{background:none;border:none;color:var(--brand);text-decoration:none;min-height:auto;padding:0;box-shadow:none;font-weight:550}button.link:hover{background:none;text-decoration:underline}button:disabled{opacity:.6;cursor:not-allowed}.button{display:inline-flex;align-items:center;min-height:2.5rem;padding:0 1.15rem;cursor:pointer;border:1px solid transparent;background:var(--brand);color:var(--on-brand);border-radius:var(--radius-sm);font-weight:600;box-shadow:var(--shadow-sm)}.button:hover{background:var(--brand-ink)}#doc-upload:focus-visible+.button,.button:focus-within{outline:3px solid var(--brand);outline-offset:2px}:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:4px}.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}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:.5rem;top:.5rem;z-index:30;background:var(--ink);color:var(--bg);padding:.5rem .75rem;border-radius:var(--radius-sm)}.auth{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(1200px 520px at 50% -10%,var(--brand-weak),transparent 70%),var(--bg)}.auth-card{width:min(100%,25rem);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:2rem 2rem 1.5rem}.auth-card h1{font-size:1.4rem;margin:.25rem 0 1.25rem}.auth-brand{display:flex;align-items:center;gap:.7rem;color:var(--brand);margin-bottom:1.5rem}.auth-brand .brand-name{display:block;font-weight:720;font-size:1.05rem;letter-spacing:.01em;color:var(--ink)}.auth-brand .brand-tag{display:block;font-size:.8rem;color:var(--muted)}.auth-card form button[type=submit],.auth-card .btn-sso{width:100%;margin-top:.5rem}a.btn-sso{display:flex;align-items:center;justify-content:center;min-height:2.5rem;padding:0 1.15rem;box-sizing:border-box;background:var(--brand);color:var(--on-brand);text-decoration:none;border:1px solid transparent;border-radius:var(--radius-sm);font-weight:600;box-shadow:0 6px 16px -8px color-mix(in srgb,var(--brand) 75%,transparent);transition:background-color .15s ease,box-shadow .15s ease,transform .05s ease}a.btn-sso:hover{background:var(--brand-ink)}a.btn-sso:active{transform:translateY(1px)}.auth-fallback{margin-top:1rem}.auth-fallback>summary{cursor:pointer;font-size:.85rem;color:var(--muted);padding:.35rem 0}.auth-fallback>summary:hover{color:var(--ink)}.auth-fallback[open]>summary{margin-bottom:.5rem;color:var(--ink)}.auth-foot{margin:1.5rem 0 0;padding-top:1rem;border-top:1px solid var(--border);font-size:.8rem;color:var(--muted);text-align:center}.error{color:var(--crit);background:var(--crit-weak);border:1px solid var(--crit);border-radius:var(--radius-sm);padding:.5rem .75rem;margin:.75rem 0 0;font-size:.9rem}.app{display:grid;grid-template-columns:256px 1fr;grid-template-rows:auto 1fr;min-height:100vh}.sidebar{grid-row:1 / 3;background:linear-gradient(180deg,var(--rail-2),var(--rail));border-right:1px solid var(--rail-border);color:var(--rail-ink);padding:16px 14px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .brand{display:flex;align-items:center;gap:11px;padding:6px 8px 12px}.sidebar .brand .brandmark,.sidebar .brand .mark{color:#fff}.sidebar .brand .mark{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:11px;background:linear-gradient(155deg,var(--brand),#163e9e);box-shadow:0 6px 16px -4px #2c6bff8c,inset 0 0 0 1px #ffffff24,inset 0 0 0 2.5px color-mix(in srgb,var(--gold) 45%,transparent)}.sidebar .brand .name{display:block;font-weight:720;font-size:15px;letter-spacing:.2px;color:#fff;line-height:1.1}.sidebar .brand .tag{display:block;font-size:11px;color:var(--rail-muted)}.nav-label{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--rail-muted);font-weight:700;margin:14px 10px 4px}.sidebar ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.sidebar button{width:100%;text-align:left;display:flex;align-items:center;gap:11px;background:transparent;color:var(--rail-ink);border:1px solid transparent;box-shadow:none;font-weight:550;font-size:13.5px;border-radius:var(--radius-sm);min-height:2.35rem;padding:0 11px;position:relative}.sidebar button .nav-ic{color:var(--ic, var(--rail-muted));display:inline-flex;flex:none}.sidebar button .nav-ic svg{width:18px;height:18px}.sidebar button:hover{background:var(--rail-hover);color:#fff}.sidebar button[aria-current=page]{background:linear-gradient(90deg,color-mix(in srgb,var(--brand) 24%,transparent),transparent 92%);color:#fff}.sidebar button[aria-current=page]:before{content:"";position:absolute;left:-14px;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:var(--brand);box-shadow:0 0 12px 1px color-mix(in srgb,var(--brand) 80%,transparent)}.rail-foot{margin-top:auto;display:flex;align-items:center;gap:10px;font-size:12px;padding:10px 11px;border-radius:var(--radius-sm);background:var(--rail-hover);border:1px solid var(--rail-border)}.rail-foot .avatar{width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;color:#fff;font-weight:700;font-size:12px;background:linear-gradient(135deg,var(--gold),#6f4e11)}.rail-foot .who{min-width:0;line-height:1.25}.rail-foot .who b{color:#fff;font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-foot .who span{color:var(--rail-muted)}.topbar{grid-column:2 / 3;position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:14px;padding:.75rem 1.9rem;background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:saturate(1.5) blur(10px);backdrop-filter:saturate(1.5) blur(10px);border-bottom:1px solid var(--border)}.topbar .crumb{font-size:12.5px;color:var(--muted)}.topbar .crumb b{color:var(--ink);font-weight:600}.topbar .spacer{flex:1}.env{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--good);background:var(--good-weak);border:1px solid color-mix(in srgb,var(--good) 32%,transparent);padding:5px 11px;border-radius:999px}.env .dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 8px 1px currentColor}.content{grid-column:2 / 3;padding:1.9rem 1.9rem 2.5rem;min-width:0;max-width:1220px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:1.2rem}.page-head h1{margin:0}.kpis{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:baseline;color:var(--muted);margin:.1rem 0 1.1rem;font-size:.95rem}.kpis strong{color:var(--ink);font-weight:720;font-size:1.05rem;font-variant-numeric:tabular-nums}.row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin:0 0 .5rem;padding:0;list-style:none}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.tabbar{display:flex;gap:.3rem;flex-wrap:wrap;margin:0 0 1rem;border-bottom:1px solid var(--border)}.tabbar .tab{background:transparent;border:0;color:var(--muted);font:inherit;font-weight:600;cursor:pointer;padding:.55rem .9rem;border-radius:var(--radius-sm) var(--radius-sm) 0 0;border-bottom:2px solid transparent;margin-bottom:-1px}.tabbar .tab:hover{color:var(--ink);background:var(--surface-2)}.tabbar .tab.active{color:var(--brand-ink);border-bottom-color:var(--brand)}.filters{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;margin:1rem 0 .5rem}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.15rem;box-shadow:var(--shadow-sm);position:relative}.tile .chip{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;margin-bottom:.8rem;color:var(--brand);background:var(--brand-weak)}.tile .chip svg{width:20px;height:20px}.tile.gold .chip{color:var(--gold);background:var(--gold-weak)}.tile.good .chip{color:var(--good);background:var(--good-weak)}.tile.warn .chip{color:var(--warn);background:var(--warn-weak)}.tile .value{font-size:2.05rem;font-weight:730;line-height:1.05;letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:0}.tile .value small{font-size:1rem;font-weight:600;color:var(--muted)}.tile .label{color:var(--muted);margin:.3rem 0 0;font-size:.9rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.3rem 1.5rem;margin:1rem 0}.card>:first-child{margin-top:0}form.card{margin-bottom:1.25rem}.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.15rem .6rem;border-radius:999px;border:1px solid;font-size:.82rem;font-weight:600;white-space:nowrap}.badge .dot{width:.5rem;height:.5rem;border-radius:50%;background:currentColor;flex:none}.badge.good{color:var(--good);background:var(--good-weak);border-color:color-mix(in srgb,var(--good) 38%,transparent)}.badge.warn{color:var(--warn);background:var(--warn-weak);border-color:color-mix(in srgb,var(--warn) 38%,transparent)}.badge.crit{color:var(--crit);background:var(--crit-weak);border-color:color-mix(in srgb,var(--crit) 38%,transparent)}.badge.gold{color:var(--gold);background:var(--gold-weak);border-color:color-mix(in srgb,var(--gold) 42%,transparent)}.badge.muted{color:var(--muted);background:var(--surface-2);border-color:var(--border)}.bar-cell{display:flex;align-items:center;gap:.6rem}.bar-track{flex:1;height:.55rem;background:var(--surface-2);border:1px solid var(--border);border-radius:1rem;overflow:hidden}.bar-fill{height:100%;border-radius:1rem;background:linear-gradient(90deg,var(--brand),var(--brand-ink))}.field{margin-bottom:1.1rem}label{display:block;font-weight:600;margin-bottom:.3rem;font-size:.92rem}input,select{min-height:2.5rem;padding:0 .7rem;width:min(100%,28rem);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-weak)}.help{font-size:.88rem;color:var(--muted);margin:.3rem 0 0}fieldset{margin:1.25rem 0;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem 1rem 1rem}legend{font-weight:600;padding:0 .4rem}.switch{display:flex;align-items:center;gap:.6rem;margin:.6rem 0}.switch input{width:1.25rem;height:1.25rem;min-height:0;accent-color:var(--brand)}.switch label{margin:0;font-weight:400}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:var(--surface);margin-top:1rem}table{border-collapse:collapse;width:100%}caption{text-align:left;font-weight:640;padding:.9rem 1.1rem 0}th,td{text-align:left;padding:.75rem 1.1rem;border-bottom:1px solid var(--border);vertical-align:middle}thead th{color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:var(--surface-2);border-bottom:1px solid var(--border-strong)}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--surface-2)}code{background:var(--surface-2);border:1px solid var(--border);padding:.1rem .4rem;border-radius:.3rem;font-size:.9em;word-break:break-all;font-family:var(--font-mono)}.notice{padding:.7rem .95rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);margin:.75rem 0;color:var(--muted)}.dash-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:1rem;margin-top:1.4rem;align-items:start}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.panel>header{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.9rem 1.15rem;border-bottom:1px solid var(--border)}.panel>header h2{margin:0;font-size:.95rem;font-weight:660;letter-spacing:-.01em}.panel>header a,.panel>header button.link{font-size:.8rem}.panel-scroll{overflow-x:auto}.panel-body{padding:1.15rem;display:flex;flex-direction:column;gap:1.1rem}.statline{display:flex;flex-direction:column;gap:.6rem}.statrow{display:grid;grid-template-columns:104px 1fr 2.2rem;align-items:center;gap:.7rem;font-size:.9rem}.statrow.wide{grid-template-columns:1fr auto}.statrow .n{text-align:right;color:var(--muted);font-weight:650;font-variant-numeric:tabular-nums}.seal{display:flex;gap:.85rem;align-items:center;border:1px solid color-mix(in srgb,var(--gold) 34%,transparent);background:linear-gradient(160deg,var(--gold-weak),transparent);border-radius:var(--radius-sm);padding:.9rem 1rem}.seal .s-ic{width:40px;height:40px;flex:none;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(150deg,var(--gold),#6b4a10);box-shadow:inset 0 0 0 1px #fff3}.seal .s-ic svg{width:20px;height:20px}.seal h3{margin:0 0 2px;font-size:.92rem}.seal p{margin:0;font-size:.85rem;color:var(--muted)}@media (max-width: 1000px){.dash-grid{grid-template-columns:1fr}}@media (max-width: 860px){.app{grid-template-columns:1fr}.sidebar{grid-row:auto;grid-column:1 / -1;position:static;height:auto;flex-direction:column}.topbar,.content{grid-column:1 / -1}.topbar{padding-left:1.1rem;padding-right:1.1rem}.content{padding:1.2rem}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.row-actions{display:inline-flex;gap:.9rem;align-items:center}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#080c178c;display:grid;place-items:center;padding:1rem;z-index:50}.modal{background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1.4rem;width:min(680px,100%);max-height:88vh;overflow:auto}.modal-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.modal-actions{display:flex;gap:1rem;align-items:baseline}.modal h3{margin:1.1rem 0 .4rem;font-size:1rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}dl.kv{margin:0;display:grid;grid-template-columns:minmax(9rem,max-content) 1fr;gap:.35rem 1rem}dl.kv dt{color:var(--muted)}dl.kv dd{margin:0;word-break:break-word}dl.kv dd.mono{font-size:12.5px}.notice.crit{border-color:color-mix(in srgb,var(--crit) 45%,transparent);background:var(--crit-weak);color:var(--crit)}.notice.good{border-color:color-mix(in srgb,var(--good) 40%,transparent);background:var(--good-weak);color:var(--good)}
