:root{--vl-primary:#003D9F;--vl-ink:#00175C;--vl-accent:#5CEBD5;--vl-light:#70A3FF;--vl-bg:#FFFFFF;--vl-bg-alt:#F5F7FB;--vl-bg-selected:#EDF3FF;--vl-border:#DFE5F0;--vl-text:#22345C;--vl-text-2:#5A6B8C;--st-ok:#1E9E6A;--st-warn:#E39A22;--st-danger:#D64550;--st-info:#70A3FF;--st-ia:#7C5CEB;--st-mock:#8C6D1F;--font-display:"DM Serif Display",Georgia,serif;--font-ui:"Montserrat",system-ui,sans-serif;--font-mono:ui-monospace,"SF Mono",Menlo,monospace;--radius:0px;--radius-pill:24px;--shadow:0 1px 2px rgba(0,23,92,.06),0 6px 20px rgba(0,23,92,.07);--row-h:40px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px}*{box-sizing:border-box;margin:0}body,html{height:100%}body{background:var(--vl-bg);color:var(--vl-text);font-family:var(--font-ui);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--vl-primary);text-decoration:none}h1{font-family:var(--font-display);font-weight:400;font-size:28px;color:var(--vl-ink);letter-spacing:-.01em}button{font-family:var(--font-ui);cursor:pointer}table{border-collapse:collapse;width:100%;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--vl-text-2);font-weight:600;text-align:left;padding:8px 12px}td,th{border-bottom:1px solid var(--vl-border)}td{padding:0 12px;height:var(--row-h)}tr.row:hover{background:var(--vl-bg-selected)}.mono,code{font-family:var(--font-mono);font-size:12.5px}.topbar{display:flex;align-items:center;gap:20px;padding:0 20px;height:52px;background:var(--vl-primary);color:#fff}.topbar .brand{font-family:var(--font-display);font-size:18px;letter-spacing:.02em}.topbar nav{display:flex;gap:2px;height:100%}.topbar nav a{color:#CFE0FF;padding:0 14px;display:flex;align-items:center;font-weight:500;font-size:13px;height:100%;border-bottom:3px solid transparent}.topbar nav a.active,.topbar nav a:hover{color:#fff;border-bottom-color:var(--vl-accent)}.topbar .spacer{flex:1 1}.topbar .counters{display:flex;gap:16px;font-family:var(--font-mono);font-size:11px;color:#BFD3FA}.topbar .counters b{color:var(--vl-accent);font-weight:600}.topbar .persona{display:flex;align-items:center;gap:8px;font-size:13px}.page{max-width:1240px;margin:0 auto;padding:24px 20px 60px}.pagehead{display:flex;align-items:baseline;gap:14px;margin-bottom:18px}.pagehead .sub{color:var(--vl-text-2);font-size:13px}.btn{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13px;padding:9px 18px;border:none;border-radius:var(--radius-pill);background:var(--vl-accent);color:var(--vl-ink)}.btn:hover{filter:brightness(.95)}.btn.ghost{background:transparent;border:1.5px solid var(--vl-primary);color:var(--vl-primary)}.btn.sm{padding:5px 12px;font-size:12px}.btn.danger{background:transparent;border:1.5px solid var(--st-danger);color:var(--st-danger)}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 10px;border-radius:var(--radius-pill);white-space:nowrap}.badge.info{background:rgba(112,163,255,.15);color:var(--vl-primary)}.badge.ok{background:rgba(30,158,106,.13);color:var(--st-ok)}.badge.warn{background:rgba(227,154,34,.15);color:#A26D0E}.badge.danger{background:rgba(214,69,80,.13);color:var(--st-danger)}.badge.ia{background:rgba(124,92,235,.12);color:var(--st-ia)}.badge.mock{background:rgba(140,109,31,.12);color:var(--st-mock);border:1px dashed rgba(140,109,31,.5)}.badge.neutral{background:var(--vl-bg-alt);color:var(--vl-text-2)}.card{background:var(--vl-bg);border:1px solid var(--vl-border)}.card .cardhead{padding:12px 16px;border-bottom:1px solid var(--vl-border);font-weight:600;font-size:13px;color:var(--vl-ink);display:flex;align-items:center;gap:10px}.card .cardbody{padding:16px}.grid2{grid-template-columns:1fr 360px;grid-gap:16px;gap:16px;align-items:start}.grid2,.kv{display:grid}.kv{grid-template-columns:140px 1fr;grid-gap:6px 12px;gap:6px 12px;font-size:13px}.kv dt{color:var(--vl-text-2)}.kv dd{color:var(--vl-ink);font-weight:500}.filters{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.filters a{font-size:12.5px;font-weight:600;padding:6px 14px;border:1px solid var(--vl-border);color:var(--vl-text-2);border-radius:var(--radius-pill)}.filters a.on{background:var(--vl-primary);border-color:var(--vl-primary);color:#fff}.iapanel{border-left:3px solid var(--st-ia)}.iapanel .cardhead{color:var(--st-ia)}.iapanel .metric{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:12px;padding:3px 0}.stat{padding:4px 0}.stat b{display:block;font-family:var(--font-display);font-size:34px;color:var(--vl-primary);line-height:1.1}.stat span{font-size:12px;color:var(--vl-text-2);font-weight:600}.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:16px;gap:16px;margin-bottom:20px}input,select,textarea{font-family:var(--font-ui);font-size:13px;padding:8px 10px;border:1px solid var(--vl-border);background:#fff;color:var(--vl-text);width:100%}textarea{min-height:90px}label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--vl-text-2);font-weight:600;display:block;margin:10px 0 4px}.timeline{font-size:12.5px}.timeline li{list-style:none;padding:6px 0 6px 16px;border-left:2px solid var(--vl-border);position:relative}.timeline li:before{content:"";position:absolute;left:-5px;top:12px;width:8px;height:8px;border-radius:50%;background:var(--vl-light)}.nir{font-family:var(--font-mono);letter-spacing:.05em}.lockrow{opacity:.55}.locknote{font-size:11px;color:var(--st-warn);font-weight:600}.row{transition:background .12s ease}tbody tr.row td:first-child{border-left:3px solid transparent}tbody tr.row:hover td:first-child{border-left-color:var(--vl-accent)}.badge,.btn{transition:filter .12s ease,transform .08s ease}.btn:active{transform:translateY(1px)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--vl-accent);outline-offset:2px}input,select,textarea{transition:border-color .12s ease}input:focus,select:focus,textarea:focus{border-color:var(--vl-primary);outline:none;box-shadow:0 0 0 3px rgba(92,235,213,.25)}.card{transition:box-shadow .15s ease}.pagehead h1{position:relative;padding-bottom:6px}.pagehead h1:after{content:"";position:absolute;left:0;bottom:0;width:44px;height:3px;background:var(--vl-accent)}.topbar nav a{transition:color .12s ease,border-color .12s ease}th{position:-webkit-sticky;position:sticky;top:0;background:var(--vl-bg);z-index:1}.badge.ia:before{content:"◆ ";font-size:8px;vertical-align:1px}.badge.mock{opacity:.85}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}