@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.12tyk43_3sh9u.woff2?dpl=dpl_7PykzKFZgVEZer3guDoqqoDt4Y2Q)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2?dpl=dpl_7PykzKFZgVEZer3guDoqqoDt4Y2Q)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.0-wfv7uh4i7h9.woff2?dpl=dpl_7PykzKFZgVEZer3guDoqqoDt4Y2Q)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0nx0ww8fni_q3.woff2?dpl=dpl_7PykzKFZgVEZer3guDoqqoDt4Y2Q)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2?dpl=dpl_7PykzKFZgVEZer3guDoqqoDt4Y2Q)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.0ee55_hj9qcer.woff2?dpl=dpl_7PykzKFZgVEZer3guDoqqoDt4Y2Q)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0.qu-9752pffj.woff2?dpl=dpl_7PykzKFZgVEZer3guDoqqoDt4Y2Q)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.0mao5jbfbduzp.woff2?dpl=dpl_7PykzKFZgVEZer3guDoqqoDt4Y2Q)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.0uzt.a6d44yda.woff2?dpl=dpl_7PykzKFZgVEZer3guDoqqoDt4Y2Q)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0mvwgmnhv29no.woff2?dpl=dpl_7PykzKFZgVEZer3guDoqqoDt4Y2Q)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.09zddjkbdep5a.woff2?dpl=dpl_7PykzKFZgVEZer3guDoqqoDt4Y2Q)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ccf27e5a7366fb23-s.0hck6o0i8wq3a.woff2?dpl=dpl_7PykzKFZgVEZer3guDoqqoDt4Y2Q)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e41d5df559864f9e-s.p.0gq7fw9.sy_5..woff2?dpl=dpl_7PykzKFZgVEZer3guDoqqoDt4Y2Q)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif Fallback;src:local(Times New Roman);ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.0%;size-adjust:83.94%}.instrument_serif_aae0ad7d-module__6mRBtq__className{font-family:Instrument Serif,Instrument Serif Fallback;font-style:normal;font-weight:400}.instrument_serif_aae0ad7d-module__6mRBtq__variable{--font-instrument-serif:"Instrument Serif", "Instrument Serif Fallback"}
:root{--brand:#7c3aed;--brand-fg:#fff;--brand-soft:color-mix(in oklch, var(--brand) 8%, var(--bg));--brand-soft-strong:color-mix(in oklch, var(--brand) 14%, var(--bg));--brand-ring:color-mix(in oklch, var(--brand) 24%, transparent);--bg:#fafaf9;--surface:#fff;--surface-2:#f5f5f4;--surface-3:#ebebe9;--border:#e7e5e4;--border-strong:#d6d3d1;--text:#1c1917;--text-2:#57534e;--text-3:#a8a29e;--text-inv:#fafaf9;--ok:#15803d;--ok-soft:#ecfdf5;--ok-border:#bbf7d0;--warn:#b45309;--warn-soft:#fffbeb;--warn-border:#fde68a;--danger:#b91c1c;--danger-soft:#fef2f2;--danger-border:#fecaca;--info:#0369a1;--info-soft:#f0f9ff;--info-border:#bae6fd;--sb-w:248px;--tb-h:56px;--radius:10px;--radius-sm:6px;--radius-lg:14px;--shadow-sm:0 1px 2px #0f0d080a;--shadow-md:0 4px 16px -4px #0f0d0814, 0 1px 2px #0f0d080a;--shadow-lg:0 24px 48px -12px #0f0d082e;--f-sans:var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--f-mono:var(--font-geist-mono), ui-monospace, "SF Mono", Menlo, monospace;--f-serif:var(--font-instrument-serif), "Times New Roman", serif}[data-theme=dark]{--bg:#0c0a09;--surface:#161412;--surface-2:#1c1a17;--surface-3:#28241f;--border:#2a2724;--border-strong:#3a3531;--text:#f5f5f4;--text-2:#a8a29e;--text-3:#57534e;--text-inv:#1c1917;--ok:#4ade80;--ok-soft:#4ade801a;--ok-border:#4ade8040;--warn:#fbbf24;--warn-soft:#fbbf241a;--warn-border:#fbbf2440;--danger:#f87171;--danger-soft:#f871711a;--danger-border:#f8717140;--info:#60a5fa;--info-soft:#60a5fa1a;--info-border:#60a5fa40;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 16px -4px #00000059, 0 1px 2px #00000040;--shadow-lg:0 24px 48px -12px #0009}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--f-sans);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "ss01", "ss03";font-size:13.5px;line-height:1.45}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.mono,.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.serif{font-family:var(--f-serif)}.app{grid-template-columns:var(--sb-w) 1fr;height:100%;min-height:100vh;display:grid}.app.topbar{grid-template-rows:auto 1fr;grid-template-columns:1fr}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;height:100vh;min-height:100vh;display:flex;position:sticky;top:0}.sb-brand{align-items:center;gap:10px;padding:18px 18px 14px;display:flex}.sb-brand .logo{background:var(--brand);width:28px;height:28px;color:var(--brand-fg);letter-spacing:-.02em;border-radius:7px;place-items:center;font-size:14px;font-weight:700;display:grid;box-shadow:inset 0 -2px #0000002e,inset 0 1px #ffffff40}.sb-brand .wm{letter-spacing:-.02em;font-size:15px;font-weight:600}.sb-brand .wm em{color:var(--brand);font-style:normal}.sb-search{margin:0 12px 12px;position:relative}.sb-search input{background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;outline:none;padding:7px 10px 7px 30px;font-size:12.5px;transition:border-color .15s,background .15s}.sb-search input:focus{border-color:var(--brand);background:var(--surface)}.sb-search .ic{color:var(--text-3);display:flex;position:absolute;top:50%;left:9px;transform:translateY(-50%)}.sb-search kbd{font-family:var(--f-mono);color:var(--text-3);background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:10.5px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.sb-nav{flex-direction:column;flex:1;gap:1px;padding:4px 8px 12px;display:flex;overflow-y:auto}.sb-group{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);padding:14px 10px 6px;font-size:10.5px;font-weight:600}.sb-item{color:var(--text-2);cursor:pointer;border-radius:7px;align-items:center;gap:10px;padding:7px 10px;font-size:13px;transition:background .12s,color .12s;display:flex;position:relative}.sb-item .ic{color:var(--text-3);flex-shrink:0;display:flex}.sb-item:hover{background:var(--surface-2);color:var(--text)}.sb-item:hover .ic{color:var(--text-2)}.sb-item.active{background:var(--brand-soft);color:var(--brand);font-weight:500}.sb-item.active .ic{color:var(--brand)}.sb-item .badge-n{background:var(--surface-3);color:var(--text-2);font-size:10.5px;font-weight:600;font-family:var(--f-mono);border-radius:999px;margin-left:auto;padding:1px 6px}.sb-item.active .badge-n{background:var(--brand);color:var(--brand-fg)}.sb-foot{border-top:1px solid var(--border);align-items:center;gap:10px;padding:10px 12px;display:flex}.sb-foot .avatar{background:linear-gradient(135deg, var(--brand), color-mix(in oklch, var(--brand) 40%, #000));width:32px;height:32px;color:var(--brand-fg);border-radius:8px;place-items:center;font-size:12px;font-weight:600;display:grid}.sb-foot .who{flex:1;min-width:0}.sb-foot .who .nm{font-size:12.5px;font-weight:500}.sb-foot .who .sub{color:var(--text-3);font-size:11px}.sb-foot button{color:var(--text-3);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:6px}.sb-foot button:hover{background:var(--surface-2);color:var(--text)}.topbar-nav{background:var(--surface);border-bottom:1px solid var(--border);z-index:30;align-items:center;gap:8px;height:56px;padding:0 24px;display:flex;position:sticky;top:0}.topbar-nav .tb-brand{cursor:pointer;align-items:center;gap:10px;margin-right:28px;display:flex}.topbar-nav .tb-items{flex:1;align-items:center;gap:2px;display:flex;overflow-x:auto}.topbar-nav .tb-item{color:var(--text-2);white-space:nowrap;cursor:pointer;border-radius:7px;padding:6px 10px;font-size:13px}.topbar-nav .tb-item:hover{background:var(--surface-2);color:var(--text)}.topbar-nav .tb-item.active{background:var(--brand-soft);color:var(--brand);font-weight:500}.topbar-nav .tb-right{align-items:center;gap:10px;display:flex}.main{background:var(--bg);flex-direction:column;min-width:0;display:flex}.page-hd{border-bottom:1px solid var(--border);background:var(--bg);z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:color-mix(in oklch, var(--bg) 88%, transparent);justify-content:space-between;align-items:flex-end;gap:16px;padding:18px 28px 14px;display:flex;position:sticky;top:0}.page-hd .ttl-row{align-items:center;gap:10px;display:flex}.page-hd h1{letter-spacing:-.02em;margin:0;font-size:20px;font-weight:600}.page-hd .crumb{color:var(--text-3);align-items:center;gap:6px;margin-bottom:3px;font-size:12px;display:flex}.page-hd .crumb svg{opacity:.5}.page-hd .right{align-items:center;gap:8px;display:flex}.page-body{flex:1;min-width:0;padding:20px 28px 60px}.btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-sm);border-radius:7px;align-items:center;gap:7px;padding:7px 12px;font-size:12.5px;font-weight:500;transition:background .12s,border-color .12s,transform 50ms;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(.5px)}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-fg);box-shadow:inset 0 -1px #00000026,inset 0 1px #ffffff26,0 1px 2px #00000014}.btn.primary:hover{background:color-mix(in oklch, var(--brand) 90%, #000)}.btn.ghost{box-shadow:none;background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{color:var(--danger);border-color:var(--danger-border);background:var(--danger-soft)}.btn.danger:hover{background:color-mix(in oklch, var(--danger) 14%, var(--surface))}.btn.sm{border-radius:6px;gap:5px;padding:4px 8px;font-size:11.5px}.btn.lg{gap:8px;padding:9px 16px;font-size:13.5px}.btn.icon{padding:6px}.btn.icon.sm{padding:4px}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:7px;padding:2px;display:inline-flex}.seg button{color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:4px 10px;font-size:12px;font-weight:500}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card.flat{box-shadow:none}.card-hd{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex}.card-hd h3{letter-spacing:-.005em;margin:0;font-size:13.5px;font-weight:600}.card-hd .sub{color:var(--text-3);font-size:11.5px}.card-body{padding:16px}.card-pad-0 .card-body{padding:0}.stats{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:4px;padding:14px 16px;display:flex;position:relative;overflow:hidden}.stat .lbl{color:var(--text-2);font-size:11.5px;font-weight:500}.stat .val{letter-spacing:-.03em;font-size:26px;font-weight:600;font-family:var(--f-mono);margin-top:2px;line-height:1.1}.stat .val .sym{color:var(--text-3);margin-right:2px;font-weight:500}.stat .sub{color:var(--text-3);align-items:center;gap:6px;font-size:11.5px;display:flex}.stat .sub .delta{color:var(--ok);font-weight:500;font-family:var(--f-mono)}.stat .sub .delta.down{color:var(--danger)}.stat.brand{background:var(--brand-soft);border-color:color-mix(in oklch, var(--brand) 22%, var(--border))}.stat.brand .lbl,.stat.brand .val,.stat.brand .sub,.stat.brand .sub .delta{color:var(--brand)}.spark{width:100%;height:28px;margin-top:6px;display:block}.badge{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 7px;font-size:11px;font-weight:500;line-height:1.6;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge.ok{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-border)}.badge.warn{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-border)}.badge.danger{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-border)}.badge.info{background:var(--info-soft);color:var(--info);border-color:var(--info-border)}.badge.brand{background:var(--brand-soft);color:var(--brand);border-color:color-mix(in oklch, var(--brand) 24%, transparent)}.badge.solid{background:var(--text);color:var(--text-inv);border-color:#0000}.ins{align-items:center;gap:7px;font-size:12.5px;font-weight:500;display:inline-flex}.ins .mark{width:22px;height:22px;font-family:var(--f-mono);color:#fff;letter-spacing:-.02em;border-radius:5px;flex-shrink:0;place-items:center;font-size:10px;font-weight:600;display:grid}.tbl{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px}.tbl th{text-align:left;color:var(--text-3);border-bottom:1px solid var(--border);background:var(--surface-2);letter-spacing:.01em;padding:9px 14px;font-size:11.5px;font-weight:500;position:sticky;top:0}.tbl th:first-child{border-top-left-radius:var(--radius)}.tbl th:last-child{border-top-right-radius:var(--radius)}.tbl td{border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;padding:11px 14px}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr:hover td{background:var(--surface-2)}.tbl tbody tr.sel td{background:var(--brand-soft)}.tbl td .num{font-family:var(--f-mono)}.tbl .right{text-align:right}.tbl .center{text-align:center}.tbl .muted{color:var(--text-3)}.tbl .primary{font-weight:500}.tbl .row-link td{cursor:pointer}.tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.tools .left,.tools .right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip{background:var(--surface);border:1px solid var(--border);color:var(--text-2);cursor:pointer;border-radius:7px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.chip:hover{background:var(--surface-2)}.chip.on{background:var(--brand-soft);color:var(--brand);border-color:color-mix(in oklch, var(--brand) 28%, transparent);font-weight:500}.chip .x{color:var(--text-3);margin-left:2px}.search{display:inline-block;position:relative}.search input{background:var(--surface);border:1px solid var(--border);width:240px;color:var(--text);border-radius:7px;outline:none;padding:6px 10px 6px 30px;font-size:12.5px}.search input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}.search .ic{color:var(--text-3);display:flex;position:absolute;top:50%;left:9px;transform:translateY(-50%)}.modal-bg{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;background:#0f0d0866;place-items:center;padding:24px;animation:.15s ease-out fadeIn;display:grid;position:fixed;inset:0}[data-theme=dark] .modal-bg{background:#0009}.modal{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:14px;flex-direction:column;width:100%;max-width:560px;max-height:88vh;animation:.2s cubic-bezier(.2,.9,.3,1) slideUp;display:flex}.modal.wide{max-width:880px}.modal-hd{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-hd h3{margin:0;font-size:15px;font-weight:600}.modal-body{flex:1;padding:20px;overflow-y:auto}.modal-ft{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.modal .x{width:28px;height:28px;color:var(--text-3);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.modal .x:hover{background:var(--surface-2);color:var(--text)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.field{flex-direction:column;gap:5px;display:flex}.field .lbl{color:var(--text-2);font-size:11.5px;font-weight:500}.field .lbl .req{color:var(--danger);margin-left:2px}.field input,.field select,.field textarea{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:7px;outline:none;width:100%;padding:7px 10px;font-size:13px;transition:border-color .12s,box-shadow .12s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}.field .hint{color:var(--text-3);font-size:11px}.field-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.field-grid-3{grid-template-columns:1fr 1fr 1fr;gap:14px;display:grid}.row{align-items:center;gap:8px;display:flex}.col{flex-direction:column;gap:8px;display:flex}.gap-12{gap:12px}.gap-16{gap:16px}.gap-20{gap:20px}.flex-1{flex:1}.muted{color:var(--text-3)}.subdued{color:var(--text-2)}.right{text-align:right}.tnum{font-variant-numeric:tabular-nums}.divider{background:var(--border);height:1px;margin:12px 0}.bar{background:var(--surface-3);border-radius:999px;height:6px;position:relative;overflow:hidden}.bar>i{background:var(--brand);border-radius:999px;height:100%;display:block}.bar.ok>i{background:var(--ok)}.bar.warn>i{background:var(--warn)}.bar.danger>i{background:var(--danger)}.av{background:var(--surface-3);width:32px;height:32px;color:var(--text);border-radius:50%;flex-shrink:0;place-items:center;font-size:11.5px;font-weight:500;display:grid}.av.sm{width:24px;height:24px;font-size:10px}.av.lg{width:56px;height:56px;font-size:17px}.av.xl{width:72px;height:72px;font-size:22px}.sem{align-items:center;gap:4px;display:inline-flex}.sem .l{background:var(--surface-3);border-radius:50%;width:10px;height:10px}.sem.green .l:first-child{background:var(--ok);box-shadow:0 0 0 3px color-mix(in oklch, var(--ok) 20%, transparent)}.sem.yellow .l:nth-child(2){background:var(--warn);box-shadow:0 0 0 3px color-mix(in oklch, var(--warn) 20%, transparent)}.sem.red .l:nth-child(3){background:var(--danger);box-shadow:0 0 0 3px color-mix(in oklch, var(--danger) 20%, transparent)}.cal{border-left:1px solid var(--border);border-top:1px solid var(--border);border-radius:var(--radius);background:var(--surface);grid-template-columns:repeat(7,1fr);display:grid;overflow:hidden}.cal .dow{background:var(--surface-2);color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:7px 10px;font-size:11px;font-weight:500}.cal .day{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);flex-direction:column;gap:3px;min-height:100px;padding:6px 8px;font-size:12px;display:flex}.cal .day .n{color:var(--text-2);font-weight:500;font-family:var(--f-mono);font-size:12px}.cal .day.other .n{color:var(--text-3);opacity:.5}.cal .day.today{background:var(--brand-soft)}.cal .day.today .n{color:var(--brand);font-weight:600}.cal .ev{background:var(--surface-2);color:var(--text-2);border-left:2px solid var(--text-3);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:2px 6px;font-size:10.5px;overflow:hidden}.cal .ev.warn{background:var(--warn-soft);color:var(--warn);border-color:var(--warn)}.cal .ev.danger{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.cal .ev.ok{background:var(--ok-soft);color:var(--ok);border-color:var(--ok)}.cal .ev.brand{background:var(--brand-soft);color:var(--brand);border-color:var(--brand)}.tl{flex-direction:column;gap:0;padding-left:4px;display:flex}.tl-item{padding:0 0 18px 28px;position:relative}.tl-item:last-child{padding-bottom:0}.tl-item:before{content:"";background:var(--border);width:1.5px;position:absolute;top:16px;bottom:0;left:9px}.tl-item:last-child:before{display:none}.tl-item .dot{background:var(--surface-3);border:2px solid var(--surface);width:12px;height:12px;box-shadow:0 0 0 2px var(--border);border-radius:50%;position:absolute;top:4px;left:4px}.tl-item.brand .dot{background:var(--brand);box-shadow:0 0 0 2px var(--brand)}.tl-item.ok .dot{background:var(--ok);box-shadow:0 0 0 2px var(--ok)}.tl-item.warn .dot{background:var(--warn);box-shadow:0 0 0 2px var(--warn)}.tl-item.danger .dot{background:var(--danger);box-shadow:0 0 0 2px var(--danger)}.tl-item .when{color:var(--text-3);font-size:11px;font-family:var(--f-mono)}.tl-item .what{color:var(--text);margin-top:2px;font-size:13px}.tl-item .note{color:var(--text-2);margin-top:3px;font-size:12px}.tabs{border-bottom:1px solid var(--border);gap:0;margin-bottom:16px;display:flex}.tabs button{color:var(--text-2);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:9px 14px;font-size:13px;display:inline-flex}.tabs button:hover{color:var(--text)}.tabs button.on{color:var(--brand);border-bottom-color:var(--brand);font-weight:500}.tabs button .badge-n{font-family:var(--f-mono);background:var(--surface-3);color:var(--text-2);border-radius:999px;padding:1px 6px;font-size:10.5px;font-weight:500}.chat-app{height:calc(100vh - var(--tb-h) - 60px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:320px 1fr;min-height:540px;display:grid;overflow:hidden}.chat-list{border-right:1px solid var(--border);flex-direction:column;min-width:0;display:flex}.chat-list-hd{border-bottom:1px solid var(--border);padding:10px 12px}.chat-list-items{flex:1;overflow-y:auto}.chat-row{border-bottom:1px solid var(--border);cursor:pointer;align-items:flex-start;gap:10px;padding:11px 12px;display:flex}.chat-row:hover{background:var(--surface-2)}.chat-row.on{background:var(--brand-soft)}.chat-row .who{font-size:13px;font-weight:500}.chat-row .last{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;max-width:200px;margin-top:2px;font-size:11.5px;overflow:hidden}.chat-row .when{color:var(--text-3);font-size:10.5px;font-family:var(--f-mono);flex-shrink:0;margin-left:auto}.chat-row .meta{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.chat-row .ch{text-transform:uppercase;letter-spacing:.04em;border-radius:4px;margin-top:4px;padding:1px 5px;font-size:9.5px;font-weight:600;display:inline-flex}.chat-row .ch.wa{color:#166534;background:#dcfce7}.chat-row .ch.sms{color:#1e40af;background:#dbeafe}.chat-row .ch.em{color:#92400e;background:#fef3c7}[data-theme=dark] .chat-row .ch.wa{color:#4ade80;background:#4ade8026}[data-theme=dark] .chat-row .ch.sms{color:#60a5fa;background:#60a5fa26}[data-theme=dark] .chat-row .ch.em{color:#fbbf24;background:#fbbf2426}.chat-view{flex-direction:column;min-width:0;display:flex}.chat-vhd{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:11px 16px;display:flex}.chat-body{background:var(--surface-2);flex-direction:column;flex:1;gap:8px;padding:16px;display:flex;overflow-y:auto}.bubble{border-radius:12px;max-width:60%;padding:8px 12px;font-size:13px;line-height:1.4}.bubble.them{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.bubble.us{background:var(--brand);color:var(--brand-fg);border-bottom-right-radius:4px;align-self:flex-end}.bubble .t{opacity:.7;font-size:10px;font-family:var(--f-mono);margin-top:3px}.chat-input{border-top:1px solid var(--border);background:var(--surface);align-items:center;gap:8px;padding:12px 16px;display:flex}.chat-input input{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;flex:1;padding:8px 12px}.chat-input input:focus{border-color:var(--brand);background:var(--surface);outline:none}.scan-drop{border:2px dashed var(--border-strong);text-align:center;background:var(--surface);cursor:pointer;border-radius:14px;padding:40px 30px;transition:border-color .15s,background .15s}.scan-drop:hover,.scan-drop.over{border-color:var(--brand);background:var(--brand-soft)}.scan-drop .ico{background:var(--brand-soft);width:56px;height:56px;color:var(--brand);border-radius:14px;place-items:center;margin:0 auto 12px;display:grid}.scan-drop h3{margin:0 0 6px;font-size:16px;font-weight:600}.scan-drop p{color:var(--text-2);margin:0;font-size:13px}.scan-drop .formats{color:var(--text-3);justify-content:center;gap:8px;margin-top:14px;font-size:11px;display:flex}.scan-grid{grid-template-columns:1fr 1.1fr;align-items:start;gap:20px;display:grid}.pdf-thumb{aspect-ratio:8.5/11;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);border-radius:8px;flex-direction:column;gap:10px;padding:22px;display:flex;position:relative;overflow:hidden}.pdf-thumb .ln{background:var(--surface-3);border-radius:3px;height:6px}.pdf-thumb .ln.short{width:70%}.pdf-thumb .ln.tiny{width:40%}.pdf-thumb .ln.title{background:var(--text-2);width:50%;height:10px}.pdf-thumb .scan-line{background:linear-gradient(to bottom, transparent, color-mix(in oklch, var(--brand) 30%, transparent), transparent);border-top:1px solid var(--brand);border-bottom:1px solid var(--brand);height:30px;animation:1.8s ease-in-out infinite scanMove;position:absolute;left:0;right:0}.pdf-thumb.done .scan-line{display:none}@keyframes scanMove{0%,to{top:0%}50%{top:calc(100% - 30px)}}.extract-list{flex-direction:column;gap:6px;display:flex}.extract-row{background:var(--surface);border:1px solid var(--border);opacity:0;border-radius:8px;grid-template-columns:140px 1fr auto;align-items:center;gap:12px;padding:9px 12px;font-size:12.5px;animation:.35s cubic-bezier(.2,.9,.3,1) forwards rowIn;display:grid;transform:translateY(4px)}@keyframes rowIn{to{opacity:1;transform:none}}.extract-row .k{color:var(--text-3);font-size:11.5px;font-weight:500}.extract-row .v{font-family:var(--f-mono);color:var(--text);font-size:12.5px}.extract-row .conf{color:var(--ok);font-size:10.5px;font-family:var(--f-mono)}.extract-row .conf.med{color:var(--warn)}.act-list .row{border-bottom:1px solid var(--border);grid-template-columns:32px 1fr auto;align-items:center;gap:12px;padding:10px 16px;display:grid}.act-list .row:last-child{border-bottom:0}.act-list .row .ic{background:var(--surface-2);width:32px;height:32px;color:var(--text-2);border-radius:8px;place-items:center;display:grid}.act-list .row .ic.brand{background:var(--brand-soft);color:var(--brand)}.act-list .row .ic.ok{background:var(--ok-soft);color:var(--ok)}.act-list .row .ic.warn{background:var(--warn-soft);color:var(--warn)}.act-list .row .ic.danger{background:var(--danger-soft);color:var(--danger)}.act-list .row .what{font-size:12.5px}.act-list .row .when{color:var(--text-3);font-size:11px;font-family:var(--f-mono)}.act-list .row .sub{color:var(--text-2);font-size:11.5px}.dash{grid-template-columns:2fr 1fr;gap:16px;display:grid}.dash-2col{grid-template-columns:1fr 1fr;gap:16px;display:grid}.dash-3col{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.ring{--p:60;--c:var(--brand);--s:80px;width:var(--s);height:var(--s);background:conic-gradient(var(--c) calc(var(--p) * 1%), var(--surface-3) 0);border-radius:50%;place-items:center;display:grid;position:relative}.ring:before{content:"";background:var(--surface);border-radius:50%;position:absolute;inset:9px}.ring>span{font-family:var(--f-mono);letter-spacing:-.02em;font-size:17px;font-weight:600;position:relative}.dist{flex-direction:column;gap:10px;display:flex}.dist-row{grid-template-columns:110px 1fr 60px;align-items:center;gap:10px;font-size:12px;display:grid}.dist-row .lbl{color:var(--text-2)}.dist-row .v{text-align:right;font-family:var(--f-mono);color:var(--text);font-weight:500}.file-pill{border:1px solid var(--border);background:var(--surface);border-radius:7px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:inline-flex}.file-pill .fz{color:var(--text-3);font-family:var(--f-mono);font-size:11px}@media (max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.dash,.dash-2col,.scan-grid{grid-template-columns:1fr}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border:3px solid var(--bg);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--text-3)}
