@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.00az9qtie3ho1.woff2)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.3j-a226dh71aj.woff2)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.2gwoz23eiro2t.woff2)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.0i3h3th1vs4m7.woff2)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-20C4,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.0zr6hhvz-h9nw.woff2)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_5b341566-module__yFtfAa__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_5b341566-module__yFtfAa__variable{--f-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.27spqqad3wyeo.woff2)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.3f4zuumv8svu0.woff2)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.34r5yzckw0h2s.woff2)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.2jyz_zw3a8jit.woff2)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.30bdpjkrtcces.woff2)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-20C4,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.1v5bejj26fx9h.woff2)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_8b23c014-module__0fTVAq__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8b23c014-module__0fTVAq__variable{--f-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--bg:#fafaf9;--surface:#fff;--surface-2:#f4f4f3;--surface-3:#ebebe9;--line:#e6e6e3;--control:#8d8d93;--text:#121214;--text-2:#52525a;--text-3:#6e6e76;--accent:#2f45c9;--accent-hover:#2536a6;--on-accent:#fff;--accent-soft:#eef0fc;--accent-text:#2f45c9;--c-indigo:#2f45c9;--c-coral:#ef5a3c;--c-yellow:#f5b800;--c-teal:#10a39b;--c-indigo-soft:#e9ecfb;--c-coral-soft:#fdece8;--c-yellow-soft:#fef5d9;--c-teal-soft:#e2f5f3;--highlight:#f5b800;--on-highlight:#0c1130;--ok:#157f45;--ok-soft:#eaf5ee;--warn:#8a5a00;--warn-soft:#fbf3df;--warn-dot:#d08a00;--bad:#b42318;--bad-soft:#fcedeb;--bad-dot:#d92d20;--info:#0b6870;--info-soft:#e6f2f3;--emergency:#d92d20;--on-emergency:#fff;--focus:#2f45c9;--scrim:#12121473;--shadow-pop:0 12px 32px -8px #1212142e, 0 0 0 1px #1212140f;--ink:#121214;--on-ink:#fafaf9;--on-ink-2:#a8a8b0;--shadow-soft:0 1px 2px #1212140a, 0 12px 40px -12px #12121429;--font-sans:var(--f-sans), ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:var(--f-mono), ui-monospace, Menlo, monospace;--font-display:var(--f-display), ui-sans-serif, system-ui, sans-serif;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--motion-fast:.12s;--motion-base:.2s;--motion-slow:.32s;--ease:cubic-bezier(.2, 0, 0, 1);--type-display:600 40px/48px var(--font-sans);--type-title:600 26px/32px var(--font-sans);--type-h1:600 24px/32px var(--font-sans);--type-h2:600 16px/24px var(--font-sans);--type-body:400 14px/20px var(--font-sans);--type-strong:600 14px/20px var(--font-sans);--type-small:400 13px/18px var(--font-sans);--type-caption:400 12px/16px var(--font-sans);--type-overline:500 11px/16px var(--font-sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0c0c0d;--surface:#141416;--surface-2:#1b1b1e;--surface-3:#232327;--line:#26262a;--control:#63636c;--text:#ededef;--text-2:#a8a8b0;--text-3:#8c8c95;--accent:#9aa6e6;--accent-hover:#b8c0ea;--on-accent:#0c1130;--accent-soft:#1a1f3b;--accent-text:#aeb8ec;--c-indigo:#8c9bf0;--c-coral:#ef5a3c;--c-yellow:#f5b800;--c-teal:#10a39b;--c-indigo-soft:#1e2550;--c-coral-soft:#3a1c16;--c-yellow-soft:#33290a;--c-teal-soft:#0e2b29;--highlight:#f5b800;--on-highlight:#0c1130;--ok:#5bd08f;--ok-soft:#10261a;--warn:#f2c661;--warn-soft:#2a220c;--warn-dot:#f2c661;--bad:#ff8a80;--bad-soft:#33161a;--bad-dot:#f2665b;--info:#6ccbd3;--info-soft:#0c2427;--emergency:#d92d20;--on-emergency:#fff;--focus:#aeb8ec;--scrim:#0009;--shadow-pop:0 12px 32px -8px #0009, 0 0 0 1px #ffffff0f;--ink:#ededef;--on-ink:#0c0c0d;--on-ink-2:#52525a;--shadow-soft:0 1px 2px #0000004d, 0 12px 40px -12px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}
*,:before,:after{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11" 1;margin:0;font-size:14px;line-height:20px}h1,h2,h3,h4,p{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{max-width:100%}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.tnum,.money{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono)}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{z-index:100;background:var(--accent);color:var(--on-accent);border-radius:var(--r-md);padding:8px 12px;position:absolute;top:-48px;left:12px}.skip:focus{top:12px}.shell{grid-template-columns:240px minmax(0,1fr);min-height:100vh;display:grid}.side{border-right:1px solid var(--line);background:var(--bg);flex-direction:column;gap:2px;height:100vh;padding:16px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.side-brand{justify-content:space-between;align-items:center;padding:4px 8px 14px;display:flex}.estate-pick{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);align-items:center;gap:10px;margin:0 0 10px;padding:8px;display:flex}.estate-pick b{font-size:13px;line-height:18px;display:block}.estate-pick span{color:var(--text-3);font-size:12px}.nav-group{letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);padding:14px 10px 6px;font-size:11px;font-weight:500;line-height:16px}.nav-link{border-radius:var(--r-md);height:34px;color:var(--text-2);transition:background-color .12s var(--ease);align-items:center;gap:10px;padding:0 10px;font-weight:450;display:flex}.nav-link:hover{background:var(--surface-2);color:var(--text)}.nav-link[aria-current=page]{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--line);font-weight:550}.nav-link .count{color:var(--text-3);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.nav-link .count.hot{color:var(--bad);font-weight:600}.side-foot{border-top:1px solid var(--line);gap:4px;margin-top:auto;padding-top:12px;display:grid}.me{border-radius:var(--r-md);align-items:center;gap:10px;padding:8px;display:flex}.me b{font-size:13px;font-weight:550;line-height:18px;display:block}.me span{color:var(--text-3);font-size:12px}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:20;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);align-items:center;gap:12px;height:56px;padding:0 24px;display:flex;position:sticky;top:0}.crumbs{color:var(--text-3);align-items:center;gap:6px;min-width:0;font-size:13px;display:flex}.crumbs b{color:var(--text);font-weight:550}.topbar .spacer{flex:1}.search{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);width:260px;height:34px;color:var(--text-3);align-items:center;gap:8px;padding:0 10px;display:flex}.search input{min-width:0;font:inherit;color:var(--text);background:0 0;border:0;outline:0;flex:1}.search kbd{font-family:var(--font-mono);color:var(--text-3);border:1px solid var(--line);border-radius:4px;padding:0 4px;font-size:11px}.content{align-content:start;gap:24px;width:100%;max-width:1360px;padding:28px 32px 64px;display:grid}.menu-btn{display:none}.ph{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.ph h1{letter-spacing:-.015em;font-size:24px;font-weight:600;line-height:32px}.ph p{color:var(--text-2);margin-top:2px}.ph .actions{flex-wrap:wrap;gap:8px;display:flex}.btn{border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);height:34px;color:var(--text);cursor:pointer;white-space:nowrap;transition:background-color .12s var(--ease), border-color .12s var(--ease);justify-content:center;align-items:center;gap:6px;padding:0 12px;font-weight:500;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:active{background:var(--surface-3)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-danger{color:var(--bad)}.btn-danger:hover{background:var(--bad-soft);border-color:#0000}.btn-lg{border-radius:var(--r-lg);height:44px;padding:0 18px;font-size:15px}.btn-block{width:100%}.btn[disabled]{opacity:.5;cursor:not-allowed}.icon-btn{border-radius:var(--r-md);width:34px;height:34px;color:var(--text-2);cursor:pointer;background:0 0;border:0;place-items:center;display:inline-grid;position:relative}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn .dot{background:var(--highlight);width:7px;height:7px;box-shadow:0 0 0 2px var(--bg);border-radius:50%;position:absolute;top:7px;right:7px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);min-width:0}.card-pad{padding:20px}.card-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.card-head h2{font-size:14px;font-weight:600;line-height:20px}.card-head p{color:var(--text-3);font-size:13px}.stats{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.stat{border-left:1px solid var(--line);gap:6px;min-width:0;padding:18px 20px;display:grid}.stat:first-child{border-left:0}.stat .label{color:var(--text-2);justify-content:space-between;gap:8px;font-size:13px;display:flex}.stat .value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:26px;font-weight:600;line-height:32px;overflow:hidden}.stat .note{color:var(--text-3);font-size:12px}.stat .value.bad{color:var(--bad)}.grid-2{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.grid-2e{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.split{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}.stack{gap:12px;display:grid}.stack-lg{gap:20px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:12px;display:flex}.hero-balance{background:var(--text);color:var(--bg);border-radius:var(--r-xl);gap:10px;padding:24px;display:grid}.hero-balance .label{color:color-mix(in srgb, var(--bg) 70%, transparent);font-size:13px}.hero-balance .amount{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:40px;font-weight:600;line-height:48px}.hero-balance .amount small{opacity:.7;font-size:.5em}.hero-balance .btn{background:var(--bg);color:var(--text);border-color:var(--bg)}.badge{white-space:nowrap;background:var(--surface-2);height:22px;color:var(--text-2);border-radius:999px;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:500;display:inline-flex}.badge i{background:currentColor;border-radius:50%;width:6px;height:6px}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.warn i{background:var(--warn-dot)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.badge.bad i{background:var(--bad-dot)}.badge.info{background:var(--info-soft);color:var(--info)}.badge.accent{background:var(--accent-soft);color:var(--accent-text)}.pill-count{background:var(--surface-3);font-variant-numeric:tabular-nums;border-radius:9px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:600;display:inline-grid}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);min-width:0;overflow:hidden}.toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.toolbar .search{width:240px;height:32px}.scroll-x{overflow-x:auto}table.t{border-collapse:collapse;width:100%;font-size:13px}.t th{text-align:left;color:var(--text-3);border-bottom:1px solid var(--line);background:var(--surface);white-space:nowrap;height:36px;padding:0 12px;font-size:12px;font-weight:500;position:sticky;top:0}.t th button{cursor:pointer;color:inherit;font-weight:inherit;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.t th[aria-sort] button{color:var(--text)}.t td{border-bottom:1px solid var(--line);height:44px;color:var(--text-2);white-space:nowrap;padding:0 12px}.t tr:last-child td{border-bottom:0}.t td.key{color:var(--text);font-weight:550}.t .num{text-align:right;font-variant-numeric:tabular-nums}.t tbody tr.click{cursor:pointer}.t tbody tr.click:hover td{background:var(--surface-2)}.t tbody tr[aria-selected=true] td{background:var(--accent-soft)}.t tbody tr:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.owed{color:var(--bad);font-weight:550}.credit{color:var(--ok);font-weight:550}.table-foot{border-top:1px solid var(--line);color:var(--text-3);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:12px;display:flex}.skel{background:var(--surface-3);border-radius:4px;height:10px;display:inline-block}.chip{border:1px solid var(--line);background:var(--surface);height:30px;color:var(--text-2);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:13px;display:inline-flex}.chip:hover{border-color:var(--control);color:var(--text)}.chip[aria-pressed=true]{background:var(--text);color:var(--bg);border-color:var(--text)}.chip .n{font-variant-numeric:tabular-nums;opacity:.7}.tabs{border-bottom:1px solid var(--line);gap:20px;display:flex;overflow-x:auto}.tabs a,.tabs button{height:38px;color:var(--text-3);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:0;font-weight:500;display:inline-flex}.tabs a:hover,.tabs button:hover{color:var(--text)}.tabs [aria-selected=true],.tabs [aria-current=page]{color:var(--text);border-bottom-color:var(--text)}.seg{background:var(--surface-2);border-radius:var(--r-md);border:1px solid var(--line);gap:2px;padding:3px;display:inline-flex}.seg button{height:28px;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 12px;font-weight:500}.seg button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--line)}.field{gap:6px;min-width:0;display:grid}.field>label,.field>.lbl{color:var(--text);font-size:13px;font-weight:500}.input{border:1px solid var(--control);border-radius:var(--r-md);background:var(--surface);align-items:center;gap:8px;min-height:38px;padding:0 10px;display:flex}.input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.input input,.input select,.input textarea{min-width:0;font:inherit;color:var(--text);background:0 0;border:0;outline:0;flex:1;padding:0;font-size:14px}.input select{cursor:pointer;height:36px}.input textarea{resize:vertical;min-height:96px;padding:9px 0;line-height:20px}.input .pre{color:var(--text-3)}.input.err{border-color:var(--bad-dot)}.hint{color:var(--text-3);font-size:12px}.error{color:var(--bad);font-size:12px}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.check{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.check input{width:16px;height:16px;accent-color:var(--accent);margin:2px 0 0}.switch{background:var(--control);cursor:pointer;width:36px;height:20px;transition:background-color .12s var(--ease);border:0;border-radius:999px;flex:none;padding:0;position:relative}.switch:after{content:"";width:16px;height:16px;transition:transform .12s var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true]:after{transform:translate(16px)}.setting{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex}.setting:first-of-type{border-top:0}.setting b{font-weight:550;display:block}.setting span{color:var(--text-3);font-size:13px}.list>*+*{border-top:1px solid var(--line)}.li{align-items:center;gap:12px;min-width:0;padding:12px 20px;display:flex}.li.click{cursor:pointer}.li.click:hover{background:var(--surface-2)}.li .body{flex:1;min-width:0}.li .body b{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:550;display:block;overflow:hidden}.li .body span{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-size:13px;display:block;overflow:hidden}.li .lead{border-radius:var(--r-md);background:var(--surface-2);width:32px;height:32px;color:var(--text-2);flex:none;place-items:center;display:grid}.avatar{background:var(--surface-3);color:var(--text-2);letter-spacing:.01em;border-radius:50%;flex:none;place-items:center;font-weight:600;display:inline-grid}.scrim{z-index:60;background:var(--scrim);animation:fade .16s var(--ease);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--r-xl);width:100%;max-width:480px;box-shadow:var(--shadow-pop);max-height:calc(100vh - 48px);display:grid;overflow:auto}.modal-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 0;display:flex}.modal-head h2{font-size:16px;font-weight:600;line-height:24px}.modal-head p{color:var(--text-2);margin-top:2px;font-size:13px}.modal-body{gap:14px;padding:16px 20px 20px;display:grid}.modal-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.drawer-scrim{z-index:60;background:var(--scrim);animation:fade .16s var(--ease);position:fixed;inset:0}.drawer{z-index:61;background:var(--surface);width:min(440px,100vw);box-shadow:var(--shadow-pop);animation:slide .22s var(--ease);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px;display:flex}.drawer-body{flex:1;align-content:start;gap:18px;padding:20px;display:grid;overflow:auto}.drawer-foot{border-top:1px solid var(--line);gap:8px;padding:14px 20px;display:flex}.toasts{z-index:80;gap:8px;display:grid;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--r-lg);background:var(--text);min-height:42px;color:var(--bg);box-shadow:var(--shadow-pop);animation:rise .2s var(--ease);align-items:center;gap:12px;padding:8px 8px 8px 14px;font-size:13px;display:flex}.toast button{color:inherit;cursor:pointer;background:0 0;border:0;padding:4px 8px;text-decoration:underline}@keyframes fade{0%{opacity:0}}@keyframes slide{0%{opacity:0;transform:translate(24px)}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.banner{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.banner .ic{color:var(--text-2);margin-top:1px}.banner b{font-weight:550;display:block}.banner span{color:var(--text-2);font-size:13px}.banner.warn{background:var(--warn-soft);border-color:#0000}.banner.warn .ic{color:var(--warn)}.banner.ok{background:var(--ok-soft);border-color:#0000}.banner.ok .ic{color:var(--ok)}.banner.bad{background:var(--bad-soft);border-color:#0000}.banner.bad .ic{color:var(--bad)}.banner .act{margin-left:auto}.empty{text-align:center;color:var(--text-2);justify-items:center;gap:6px;padding:48px 24px;display:grid}.empty .ic{background:var(--surface-2);width:44px;height:44px;color:var(--text-2);border-radius:50%;place-items:center;margin-bottom:6px;display:grid}.empty b{color:var(--text);font-size:15px}.meter{background:var(--surface-3);border-radius:3px;height:6px;overflow:hidden}.meter>i{background:var(--c-indigo);border-radius:3px;height:100%;display:block}.kv{grid-template-columns:120px 1fr;gap:8px 12px;font-size:13px;display:grid}.kv dt{color:var(--text-3)}.kv dd{color:var(--text);margin:0}.code-chip{font-family:var(--font-mono);letter-spacing:.08em;background:var(--highlight);color:var(--on-highlight);border-radius:var(--r-sm);padding:2px 10px;font-weight:600;display:inline-block}.qr{border-radius:var(--r-lg);border:1px solid var(--line);background:#fff;place-items:center;padding:14px;display:grid}.qr svg{width:100%;max-width:200px;height:auto;display:block}.photo-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.photo-grid>*{aspect-ratio:1;border-radius:var(--r-md);background:var(--surface-2);position:relative;overflow:hidden}.timeline{gap:14px;display:grid}.timeline>div{grid-template-columns:10px 1fr;gap:12px;font-size:13px;display:grid}.timeline i{background:var(--control);border-radius:50%;width:8px;height:8px;margin-top:6px}.timeline .now i{background:var(--text)}.bubble{background:var(--surface-2);border-radius:14px;max-width:72%;padding:8px 12px;font-size:14px;line-height:20px}.bubble.mine{background:var(--text);color:var(--bg);margin-left:auto}.bubble small{opacity:.65;text-align:right;margin-top:2px;font-size:11px;display:block}.emergency-card{background:var(--emergency);color:var(--on-emergency);border-radius:var(--r-xl);gap:14px;padding:24px;display:grid}.emergency-card .btn{color:#121214;background:#fff;border-color:#fff}.emergency-card .btn.ghost{color:#fff;background:0 0;border-color:#ffffff80}.chart text{fill:var(--text-3);font-size:11px;font-family:var(--font-sans)}.chart .grid{stroke:var(--line)}.chart .a{fill:var(--c-indigo)}.chart .b{fill:var(--c-teal);opacity:.35}.legend{color:var(--text-3);gap:14px;font-size:12px;display:flex}.legend i{border-radius:2px;width:8px;height:8px;margin-right:6px;display:inline-block}.auth{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100vh;display:grid}.auth-form{place-items:center;padding:40px 24px;display:grid}.auth-form>div{gap:22px;width:100%;max-width:380px;display:grid}.auth-form h1{letter-spacing:-.015em;font-size:24px;font-weight:600;line-height:32px}.auth-side{background:var(--surface-2);border-left:1px solid var(--line);position:relative;overflow:hidden}.auth-side .quote{color:#fff;z-index:2;gap:8px;display:grid;position:absolute;bottom:32px;left:32px;right:32px}.auth-side:after{content:"";background:linear-gradient(#0000 40%,#0c0c0dbf);position:absolute;inset:0}.divider{color:var(--text-3);align-items:center;gap:12px;font-size:12px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}@media (max-width:1100px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat:nth-child(3){border-left:0}.stat:nth-child(n+3){border-top:1px solid var(--line)}.grid-2,.split,.grid-2e{grid-template-columns:minmax(0,1fr)}.search.top{display:none}}@media (max-width:860px){.shell{grid-template-columns:1fr}.side{z-index:70;width:280px;transition:transform .2s var(--ease);box-shadow:var(--shadow-pop);position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.side.open{transform:none}.menu-btn{display:inline-grid}.topbar{padding:0 12px}.content{padding:20px 16px 48px}.grid-3,.form-grid,.auth{grid-template-columns:1fr}.auth-side{display:none}.toolbar .search{width:100%}}.tint-indigo{--t:var(--c-indigo);--ts:var(--c-indigo-soft)}.tint-coral{--t:var(--c-coral);--ts:var(--c-coral-soft)}.tint-yellow{--t:var(--c-yellow);--ts:var(--c-yellow-soft)}.tint-teal{--t:var(--c-teal);--ts:var(--c-teal-soft)}.avatar[class*=tint-]{background:var(--ts);color:var(--text);box-shadow:inset 0 0 0 1.5px var(--t)}.meter.tinted>i{background:var(--t)}.brand-row{align-items:center;gap:10px;display:flex}.stat .bar{background:var(--t,var(--line));border-radius:2px;width:24px;height:3px}.roster td{height:52px;padding:6px 8px}.cell-btn{border:1px solid var(--line);background:var(--surface);height:32px;color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:6px;max-width:100%;padding:0 8px 0 4px;font-size:12px;display:inline-flex;position:relative}.cell-btn:hover{border-color:var(--control)}.cell-btn.gap{border:1.5px dashed var(--bad-dot);color:var(--bad);background:var(--bad-soft);padding:0 12px;font-weight:550}.cell-btn .mark{width:8px;height:8px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:-2px;right:-2px}.mark.bad{background:var(--bad-dot)}.mark.warn{background:var(--warn-dot)}.skeleton{background:var(--surface-3);animation:skeleton-pulse 1.2s var(--ease) infinite alternate;border-radius:4px}@keyframes skeleton-pulse{0%{opacity:.55}to{opacity:1}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}
