@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/438aa629764e75f3-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/875ae681bfde4580-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/51251f8b9793cdb3-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/e857b654a2caa584-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/cc978ac5ee68c2b6-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/4c9affa5bc8f420e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Manrope Fallback;src:local("Arial");ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.00%;size-adjust:103.19%}.__className_73ee6c{font-family:Manrope,Manrope Fallback;font-style:normal}.__variable_73ee6c{--font-sans:"Manrope","Manrope Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_f9e569{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_f9e569{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}*{box-sizing:border-box}:root{--canvas:#edebe5;--bg:#f7f6f2;--surface:#ffffff;--tint:#f1efea;--text-primary:#101413;--text-secondary:rgba(16,20,19,0.66);--text-tertiary:rgba(16,20,19,0.6);--border-subtle:rgba(16,20,19,0.07);--card-border:rgba(16,20,19,0.09);--border:rgba(16,20,19,0.12);--border-strong:rgba(16,20,19,0.14);--chevron:rgba(16,20,19,0.28);--primary:#0f5d46;--primary-strong:#0b4535;--primary-tint:#e4ede9;--primary-tint-border:rgba(15,93,70,0.2);--mint:#8fd3b8;--on-primary:#f7f6f2;--ink-card:#101413;--on-ink:#f7f6f2;--on-ink-muted:rgba(247,246,242,0.55);--ink-card-divider:rgba(247,246,242,0.14);--warn-bg:#fbeedc;--warn-border:rgba(176,106,18,0.22);--warn-text:#8a5310;--warn-accent:#b06a12;--warn-deep:rgba(90,54,10,0.85);--danger:#9e2b25;--danger-bg:#f7e7e6;--danger-border:rgba(158,43,37,0.25);--success-text:#0f5d46;--success-soft:#e4ede9;--r-input:11px;--r-control:12px;--r-card:15px;--r-lg:18px;--r-chip:9px;--r-badge:6px;--r-pill:9999px;--shadow-card:0 1px 2px rgba(16,20,19,0.04);--shadow-pop:0 18px 40px -18px rgba(16,20,19,0.35);--ease-out:cubic-bezier(0.2,0.7,0.3,1);--dur-fast:150ms;--dur-base:220ms;--h-emerald:#0f6a4d;--h-emerald-bg:#e2ede7;--h-teal:#0f6464;--h-teal-bg:#e0ebea;--h-cyan:#206276;--h-cyan-bg:#e2ebee;--h-sky:#2a5a80;--h-sky-bg:#e3eaef;--h-violet:#4f5388;--h-violet-bg:#e8e8f0;--h-fuchsia:#7a4478;--h-fuchsia-bg:#efe6ee;--h-pink:#8f3f63;--h-pink-bg:#f2e6ec;--h-rose:#963e4b;--h-rose-bg:#f3e6e7;--h-red:#9e2b25;--h-red-bg:#f7e7e6;--h-orange:#92511c;--h-orange-bg:#f5ebdf;--h-amber:#8a5310;--h-amber-bg:#fbeedc;--h-slate:#4c5450;--h-slate-bg:#eceeec}:root[data-theme=dark]{--canvas:#0b0d0c;--bg:#121514;--surface:#1a1e1c;--tint:#232826;--text-primary:#f0f2ef;--text-secondary:rgba(240,242,239,0.72);--text-tertiary:rgba(240,242,239,0.62);--border-subtle:rgba(240,242,239,0.07);--card-border:rgba(240,242,239,0.1);--border:rgba(240,242,239,0.14);--border-strong:rgba(240,242,239,0.18);--chevron:rgba(240,242,239,0.3);--primary:#2f9270;--primary-strong:#37a37e;--primary-tint:rgba(143,211,184,0.14);--primary-tint-border:rgba(143,211,184,0.25);--mint:#8fd3b8;--on-primary:#0b0d0c;--ink-card:#1d2220;--on-ink:#f0f2ef;--on-ink-muted:rgba(240,242,239,0.55);--ink-card-divider:rgba(240,242,239,0.12);--warn-bg:rgba(227,166,90,0.14);--warn-border:rgba(227,166,90,0.3);--warn-text:#e3a65a;--warn-accent:#e3a65a;--warn-deep:rgba(235,199,150,0.9);--danger:#e0776f;--danger-bg:rgba(224,119,111,0.13);--danger-border:rgba(224,119,111,0.3);--success-text:#8fd3b8;--success-soft:rgba(143,211,184,0.14);--shadow-card:none;--shadow-pop:0 18px 40px -18px rgba(0,0,0,0.6);--h-emerald:#7fc9a8;--h-emerald-bg:rgba(127,201,168,0.13);--h-teal:#79c4c0;--h-teal-bg:rgba(121,196,192,0.13);--h-cyan:#7fbdd2;--h-cyan-bg:rgba(127,189,210,0.13);--h-sky:#8ab8dd;--h-sky-bg:rgba(138,184,221,0.13);--h-violet:#a9ade0;--h-violet-bg:rgba(169,173,224,0.13);--h-fuchsia:#cf9fcc;--h-fuchsia-bg:rgba(207,159,204,0.13);--h-pink:#d99bb6;--h-pink-bg:rgba(217,155,182,0.13);--h-rose:#dc9aa2;--h-rose-bg:rgba(220,154,162,0.13);--h-red:#e0776f;--h-red-bg:rgba(224,119,111,0.13);--h-orange:#ddab72;--h-orange-bg:rgba(221,171,114,0.13);--h-amber:#e3b87a;--h-amber-bg:rgba(227,184,122,0.13);--h-slate:#aab3ae;--h-slate-bg:rgba(170,179,174,0.13)}html{overflow-x:hidden}body,html{margin:0;padding:0;background:var(--canvas);color:var(--text-primary);font-family:var(--font-sans),"Manrope",system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-strong)}@keyframes pv-spin{to{transform:rotate(1turn)}}@keyframes pv-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pv-shimmer{0%{background-position:-320px 0}to{background-position:320px 0}}@keyframes pv-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.phone-frame{max-width:480px;min-height:100dvh;margin:0 auto;background:var(--bg);display:flex;flex-direction:column;position:relative;border-left:1px solid var(--card-border);border-right:1px solid var(--card-border)}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top)) 20px 10px;background:transparent;border-bottom:1px solid transparent;transition:background var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out)}.topbar.scrolled{background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom-color:var(--card-border)}.topbar-brand{font-weight:800;font-size:15px;letter-spacing:-.02em;color:var(--text-primary)}.content{flex:1 1;padding:4px 20px calc(96px + env(safe-area-inset-bottom));position:relative;z-index:1;animation:pv-rise .26s var(--ease-out)}.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;z-index:50;display:grid;grid-template-columns:1fr 1fr 92px 1fr 1fr;grid-gap:2px;gap:2px;padding:9px 10px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--card-border)}.tab,.tabbar{align-items:center}.tab{display:flex;flex-direction:column;gap:3px;padding:6px 0;border-radius:8px;font-size:10.5px;font-weight:500;transition:color var(--dur-fast) var(--ease-out)}.tab,.tab:hover{color:var(--text-secondary)}.tab.active{color:var(--text-primary);font-weight:700}.tab-add,.tab-icon{display:flex}.tab-add{justify-self:center;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:var(--r-pill);background:var(--primary);font-weight:700;font-size:11.5px;letter-spacing:.02em;white-space:nowrap;transition:transform var(--dur-fast) var(--ease-out)}.tab-add,.tab-add:hover{color:var(--on-primary)}.tab-add:active{transform:scale(.96)}.offline-banner{position:-webkit-sticky;position:sticky;top:0;z-index:45;display:flex;align-items:center;justify-content:center;gap:8px;padding:7px 18px;background:#2a2e2c;color:#f7f6f2;font-size:11.5px;font-weight:600}h1{font-size:22px;line-height:1.15;letter-spacing:-.03em}h1,h2{margin:0;font-weight:800}h2{font-size:17px;line-height:1.25;letter-spacing:-.02em}h3{margin:0;font-size:14px;line-height:1.3;font-weight:700;letter-spacing:-.01em}.text-sm{font-size:12.5px}.text-secondary{color:var(--text-secondary)}.caption{font-size:11.5px;color:var(--text-tertiary)}.greeting-kicker,.overline,.section-label{font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:10.5px;font-weight:600;line-height:1.3;letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary)}.section-label{display:block;margin:24px 0 9px}.money,.mono{font-family:var(--font-mono),"JetBrains Mono",monospace}.money{font-weight:600;white-space:nowrap}.money-cents{font-size:.62em;color:var(--text-tertiary);font-weight:500}.row,.row-between{display:flex;align-items:center;gap:10px}.row-between{justify-content:space-between}.row-chevron{color:var(--chevron);font-weight:600;flex:none}.stack{display:flex;flex-direction:column;gap:10px}.grid-stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:9px;gap:9px}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.card{background:var(--surface);border:1px solid var(--card-border);border-radius:var(--r-card);padding:15px}.card,.hero{box-shadow:var(--shadow-card)}.hero{padding:20px;border-radius:var(--r-lg);background:var(--ink-card);color:var(--on-ink)}.hero-label{font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:10.5px;font-weight:500;line-height:1;letter-spacing:.1em;text-transform:uppercase;color:var(--on-ink-muted)}.hero-value{margin-top:10px;font-size:38px;line-height:1;font-weight:800;letter-spacing:-.035em;color:var(--on-ink)}.hero-sub,.hero-value .money-cents{color:var(--on-ink-muted)}.hero-sub{margin-top:14px;padding-top:14px;border-top:1px solid var(--ink-card-divider);display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.hero a,.hero-link{color:var(--mint);font-weight:600;font-size:11.5px;cursor:pointer}.hero .money{color:var(--on-ink)}.stat-tinted{padding:13px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--card-border);display:flex;flex-direction:column;gap:3px;box-shadow:var(--shadow-card)}.stat-value{font-size:21px;line-height:1;font-weight:700;letter-spacing:-.02em}.tile{color:var(--tile-fg,var(--text-secondary))}.avatar,.tile{width:38px;height:38px;flex:none;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--tile-bg,var(--tint))}.avatar{font-weight:700;font-size:13px;color:var(--tile-fg,var(--text-primary))}.cat-dot{width:8px;height:8px;flex:none;border-radius:50%;background:var(--tile-fg,var(--text-tertiary))}.cat-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border-radius:var(--r-chip);background:var(--tile-bg,var(--tint));color:var(--tile-fg,var(--text-primary));font-weight:600;font-size:11.5px}.list-row{display:flex;align-items:center;gap:12px;padding:13px 15px;border-bottom:1px solid var(--border-subtle)}.list-row:last-child{border-bottom:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:14px 18px;border-radius:14px;border:1.5px solid transparent;font-family:inherit;font-size:13.5px;font-weight:700;line-height:1;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.btn:active{transform:scale(.97)}.btn:disabled{cursor:not-allowed;transform:none;background:var(--border);border-color:transparent;color:var(--text-tertiary)}.btn-accent,.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-accent:hover:not(:disabled),.btn-primary:hover:not(:disabled){background:var(--primary-strong)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text-primary);font-weight:600}.btn-secondary:hover:not(:disabled){border-color:var(--text-tertiary)}.btn-danger{background:transparent;border-color:var(--danger-border);color:var(--danger);font-weight:600}.btn-danger:hover:not(:disabled){background:var(--danger-bg)}.btn-sm{padding:8px 13px;border-radius:var(--r-chip);font-size:11.5px}.btn-block{width:100%}.label{display:block;margin-bottom:7px;font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:10.5px;font-weight:600;line-height:1;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.input,.select,.textarea{width:100%;padding:12px 13px;border-radius:var(--r-input);border:1.5px solid var(--border);background:var(--surface);color:var(--text-primary);font-family:inherit;font-size:14px;font-weight:600;outline:none;transition:border-color var(--dur-fast) var(--ease-out)}.input::placeholder,.textarea::placeholder{color:var(--text-tertiary);font-weight:500}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary)}.textarea{resize:vertical;min-height:96px;line-height:1.45}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23707773' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.input-wrap{position:relative}.input-wrap .input{padding-right:64px}.input-affix{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:var(--primary);font-family:inherit;font-size:11.5px;font-weight:700;padding:8px 10px;cursor:pointer;border-radius:8px}.field-error{margin-top:6px;font-size:12px;font-weight:600;color:var(--danger)}input[type=checkbox]{width:18px;height:18px;flex:none;accent-color:var(--primary)}.chip-row{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;-ms-overflow-style:none}.chip-row::-webkit-scrollbar{display:none}.chip{flex:none;padding:7px 12px;border-radius:var(--r-chip);border:1.5px solid var(--border);background:var(--surface);color:var(--text-secondary);font-family:inherit;font-size:11.5px;font-weight:600;line-height:1.2;white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.chip:hover{border-color:var(--text-tertiary)}.chip.active{background:var(--ink-card);border-color:var(--ink-card);color:var(--on-ink)}.seg{display:flex;gap:3px;padding:4px;border-radius:var(--r-input);background:var(--tint)}.seg-item{flex:1 1;text-align:center;padding:8px 4px;border-radius:8px;border:none;background:transparent;color:var(--text-secondary);font-family:inherit;font-size:11.5px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.seg-item.active{background:var(--ink-card);color:var(--on-ink)}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--r-badge);font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:9.5px;font-weight:700;line-height:1.7;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.pill-info,.pill-success{background:var(--success-soft);color:var(--success-text)}.pill-warning{background:var(--warn-bg);color:var(--warn-text)}.pill-danger{background:var(--danger-bg);color:var(--danger)}.callout,.pill-neutral{background:var(--tint);color:var(--text-secondary)}.callout{padding:14px 15px;border-radius:14px;font-size:12px;line-height:1.45;border:1px solid var(--card-border)}.callout h3,.callout strong{color:var(--text-primary)}.callout-warning{background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn-deep)}.callout-warning h3,.callout-warning strong{color:var(--warn-text)}.callout-danger{background:var(--danger-bg);border-color:var(--danger-border)}.callout-danger,.callout-danger h3,.callout-danger strong{color:var(--danger)}.callout-info{background:var(--success-soft);border-color:var(--primary-tint-border)}.callout-info,.callout-info h3,.callout-info strong{color:var(--success-text)}.skeleton{border-radius:14px;background:linear-gradient(90deg,var(--tint) 8%,var(--surface) 18%,var(--tint) 33%);background-size:320px 100%;animation:pv-shimmer 1.4s linear infinite}.bar-track{height:6px;border-radius:3px;background:rgba(16,20,19,.07);overflow:hidden}.bar-fill{height:100%;border-radius:3px;background:var(--primary);transition:width var(--dur-base) var(--ease-out)}.bar-grow{transform-origin:left;animation:pv-grow .48s var(--ease-out) backwards}:root[data-theme=dark] .bar-track{background:rgba(240,242,239,.09)}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--surface);padding:26px 20px;text-align:center;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.dropzone.dragging,.dropzone:hover{border-color:var(--primary);background:var(--primary-tint)}table.data{width:100%;border-collapse:collapse;font-size:12.5px}table.data th{text-align:left;padding:8px 10px;font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);border-bottom:1px solid var(--card-border)}table.data td{padding:9px 10px;border-bottom:1px solid var(--border-subtle)}table.data td.num{font-family:var(--font-mono),"JetBrains Mono",monospace;font-weight:600;text-align:right;white-space:nowrap}table.data tr:last-child td{border-bottom:none}.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}.checklist li{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:500;color:var(--text-tertiary)}.checklist li.done{color:var(--text-primary)}.checklist li.done:before{content:"✓";color:var(--primary);font-weight:700}.checklist li:not(.done):before{content:"·"}.auth-page{min-height:100dvh;display:flex;align-items:stretch;justify-content:center;background:var(--canvas);padding:0}.auth-card{width:100%;max-width:480px;background:var(--bg);border-left:1px solid var(--card-border);border-right:1px solid var(--card-border);padding:calc(24px + env(safe-area-inset-top)) 24px 26px;display:flex;flex-direction:column;animation:pv-rise .26s var(--ease-out)}.auth-card h1{font-size:26px;line-height:1.12}.or-divider{display:flex;align-items:center;gap:12px;margin:20px 0}.or-divider:after,.or-divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.or-divider span{font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:10.5px;font-weight:500;letter-spacing:.08em;color:var(--text-tertiary)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}