:root{--color-bg:#fff;--color-surface:#fafafa;--color-surface-hover:#f5f5f5;--color-surface-active:#f0f0f0;--color-border:#e5e5e5;--color-border-strong:#d4d4d4;--color-border-focus:#171717;--color-text-muted:#737373;--color-text-body:#404040;--color-text-heading:#171717;--color-primary:#1f4d3a;--color-primary-hover:#173a2c;--color-primary-active:#112b20;--color-primary-soft:#1f4d3a14;--color-primary-on:#fff;--color-positive:#15803d;--color-positive-bg:#dcfce7;--color-positive-soft:#f0fdf4;--color-negative:#b91c1c;--color-negative-bg:#fee2e2;--color-negative-soft:#fef2f2;--color-warning:#b45309;--color-warning-bg:#fef3c7;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Consolas, monospace;--text-xs:11px;--text-sm:13px;--text-base:14px;--text-md:16px;--text-lg:18px;--text-xl:24px;--text-2xl:32px;--text-3xl:36px;--text-4xl:48px;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.2;--leading-snug:1.35;--leading-normal:1.5;--leading-relaxed:1.6;--tracking-tighter:-.02em;--tracking-tight:-.01em;--tracking-normal:0;--tracking-wide:.06em;--tracking-wider:.12em;--tracking-widest:.18em;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-2xl:16px;--radius-full:999px;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 12px 28px #00000014;--ring:0 0 0 3px #1717171a;--ring-primary:0 0 0 3px #1f4d3a33;--sidebar-width:240px;--sidebar-width-collapsed:56px;--topbar-height:56px;--content-max:1200px;--content-pad-x:40px;--content-pad-y:40px;--transition-fast:.12s ease;--transition-base:.16s ease;--transition-slow:.24s ease}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-body);background:var(--color-bg);font-feature-settings:"tnum", "cv11";font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}h1,h2,h3,h4,h5,h6{font-weight:var(--weight-semibold);color:var(--color-text-heading);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);margin:0}p{margin:0}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-hover)}button{font-family:inherit;font-size:inherit;cursor:pointer;color:inherit;background:0 0;border:none;padding:0}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}.numerals-proportional{font-variant-numeric:proportional-nums}.numerals-tabular{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{background:var(--color-bg);min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);border-right:1px solid var(--color-border);background:var(--color-surface);padding:var(--space-5) var(--space-3);transition:width var(--transition-base);flex-direction:column;flex-shrink:0;display:flex}.sidebar--collapsed{width:var(--sidebar-width-collapsed);padding-left:var(--space-2);padding-right:var(--space-2)}.sidebar__brand{padding:0 var(--space-3) var(--space-6)}.sidebar--collapsed .sidebar__brand{padding:0 0 var(--space-5);justify-content:center;display:flex}.sidebar__brand-eyebrow{font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-text-muted)}.sidebar__brand-name{margin-top:var(--space-1);font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text-heading)}.sidebar__brand-mark{border-radius:var(--radius-md);background:var(--color-primary);width:28px;height:28px;color:var(--color-primary-on);font-size:var(--text-sm);font-weight:var(--weight-semibold);justify-content:center;align-items:center;display:flex}.sidebar__nav{flex:1}.sidebar__collapse{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);margin-top:var(--space-2);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast);display:flex}.sidebar__collapse:hover{background:var(--color-surface-hover)}.sidebar--collapsed .sidebar__collapse{padding:var(--space-2);justify-content:center}.main{min-width:0;padding:var(--content-pad-y) var(--content-pad-x);flex:1}.nav-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--color-text-body);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);display:flex}.nav-item:hover{background:var(--color-surface-hover)}.nav-item--active{background:var(--color-bg);color:var(--color-text-heading);font-weight:var(--weight-medium);box-shadow:var(--shadow-xs)}.nav-item__icon{color:var(--color-text-muted);flex-shrink:0}.nav-item--active .nav-item__icon{color:var(--color-primary)}.nav-item__label{white-space:nowrap}.sidebar--collapsed .nav-item{padding:var(--space-2);justify-content:center}.nav-item__dot{border-radius:var(--radius-full);background:0 0;width:6px;height:6px;display:inline-block}.nav-item--active .nav-item__dot{background:var(--color-primary)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:var(--weight-medium);cursor:pointer;height:36px;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);white-space:nowrap;border:1px solid #0000;line-height:1;display:inline-flex}.btn:focus-visible{box-shadow:var(--ring);outline:none}.btn--primary{background:var(--color-primary);color:var(--color-primary-on)}.btn--primary:hover{background:var(--color-primary-hover)}.btn--primary:active{background:var(--color-primary-active)}.btn--primary:focus-visible{box-shadow:var(--ring-primary)}.btn--secondary{background:var(--color-bg);border-color:var(--color-border-strong);color:var(--color-text-heading)}.btn--secondary:hover{background:var(--color-surface-hover)}.btn--ghost{color:var(--color-text-body);background:0 0}.btn--ghost:hover{background:var(--color-surface-hover)}.btn--destructive{background:var(--color-negative-bg);border-color:var(--color-negative-bg);color:var(--color-negative)}.btn--destructive:hover{background:#fecaca}.btn--sm{height:28px;padding:0 var(--space-3);font-size:var(--text-sm)}.btn--lg{height:44px;padding:0 var(--space-5);font-size:var(--text-md)}.input{width:100%;height:36px;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-bg);color:var(--color-text-heading);font-size:var(--text-base);transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.input:focus{border-color:var(--color-border-focus);box-shadow:var(--ring);outline:none}.input::placeholder{color:var(--color-text-muted)}.card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-5)}.card--surface{background:var(--color-surface)}.card--flush{padding:0}.kpi{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-5)}.kpi__label{font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-muted)}.kpi__value{margin-top:var(--space-2);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);color:var(--color-text-heading);font-variant-numeric:tabular-nums}.kpi__delta{margin-top:var(--space-1);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.kpi__delta--up{color:var(--color-positive)}.kpi__delta--down{color:var(--color-negative)}.segmented{border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);height:36px;display:inline-flex;overflow:hidden}.segmented button{padding:0 var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-body);background:var(--color-bg);border-right:1px solid var(--color-border)}.segmented button:last-child{border-right:none}.segmented button:hover{background:var(--color-surface-hover)}.segmented .segmented__on{background:var(--color-primary);color:var(--color-primary-on)}.pl-grid-wrap{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-bg);overflow-x:auto}.pl-grid{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.pl-grid th,.pl-grid td{padding:var(--space-2) var(--space-3);white-space:nowrap}.pl-grid thead th{background:var(--color-surface);border-bottom:1px solid var(--color-border);font-size:var(--text-xs);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-text-muted);z-index:2;position:sticky;top:0}.pl-grid__num{text-align:right}.pl-grid__name{text-align:left;min-width:220px}.pl-grid__name--indent{padding-left:var(--space-6)}.pl-grid__code{font-size:var(--text-xs);color:var(--color-text-muted)}.pl-grid__sticky{z-index:3;background:var(--color-bg);border-right:1px solid var(--color-border);position:sticky;left:0}.pl-grid thead .pl-grid__sticky{background:var(--color-surface);z-index:4}.pl-grid__row td{color:var(--color-text-body);border-bottom:1px solid var(--color-border)}.pl-grid__row:hover td,.pl-grid__row:hover .pl-grid__sticky{background:var(--color-surface)}.pl-grid__section td{background:var(--color-surface-hover);font-weight:var(--weight-semibold);color:var(--color-text-heading);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.pl-grid__section .pl-grid__sticky{background:var(--color-surface-hover);align-items:center;gap:var(--space-2);display:flex}.pl-grid__section--muted td,.pl-grid__section--muted .pl-grid__sticky{color:var(--color-text-muted)}.pl-grid__subtotal td{font-weight:var(--weight-semibold);color:var(--color-text-heading);border-bottom:2px solid var(--color-border-strong);background:var(--color-bg)}.pl-grid__subtotal .pl-grid__sticky{background:var(--color-bg)}.pl-grid__net td{font-weight:var(--weight-semibold);color:var(--color-text-heading);border-top:2px solid var(--color-text-heading);border-bottom:2px solid var(--color-text-heading);background:var(--color-bg)}.pl-grid__net .pl-grid__sticky{background:var(--color-bg)}.pl-grid__total-col{border-left:1px solid var(--color-border);font-weight:var(--weight-medium);color:var(--color-text-heading)}.pl-grid__neg{color:var(--color-negative)}.pl-grid__pos{color:var(--color-positive)}.pl-grid__spacer td{height:var(--space-4);background:var(--color-bg);border:none}.pl-grid__chart-btn{border-radius:var(--radius-sm);width:18px;height:18px;color:var(--color-text-muted);opacity:0;transition:opacity var(--transition-fast), background var(--transition-fast), color var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.pl-grid__row:hover .pl-grid__chart-btn,.pl-grid__subtotal:hover .pl-grid__chart-btn,.pl-grid__net:hover .pl-grid__chart-btn{opacity:1}.pl-grid__chart-btn:hover{background:var(--color-primary-soft);color:var(--color-primary)}.acct-picker{position:relative}.acct-picker .btn{gap:var(--space-2)}.acct-picker__menu{top:calc(100% + var(--space-1));z-index:20;background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);min-width:260px;max-height:360px;box-shadow:var(--shadow-md);padding:var(--space-2);position:absolute;right:0;overflow-y:auto}.acct-picker__actions{gap:var(--space-1);padding:var(--space-1) var(--space-2) var(--space-2);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-2);display:flex}.acct-picker__actions button{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-primary);padding:2px var(--space-2);border-radius:var(--radius-sm)}.acct-picker__actions button:hover{background:var(--color-surface-hover)}.acct-picker__group{margin-bottom:var(--space-2)}.acct-picker__group-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--color-text-muted);padding:var(--space-1) var(--space-2)}.acct-picker__item{align-items:center;gap:var(--space-2);text-align:left;width:100%;padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-body);display:flex}.acct-picker__item:hover{background:var(--color-surface-hover)}.acct-picker__check{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);width:16px;height:16px;color:var(--color-primary-on);flex-shrink:0;justify-content:center;align-items:center;display:flex}.acct-picker__check--on{background:var(--color-primary);border-color:var(--color-primary)}.acct-picker__name{color:var(--color-text-heading)}.acct-picker__mask{color:var(--color-text-muted)}.badge{padding:2px var(--space-2);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--weight-medium);background:var(--color-surface-hover);color:var(--color-text-body);align-items:center;display:inline-flex}.badge--income{background:var(--color-positive-bg);color:var(--color-positive)}.badge--expense{background:var(--color-surface-hover);color:var(--color-text-body)}.badge--warning{background:var(--color-warning-bg);color:var(--color-warning)}.table{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;overflow:hidden}.table__head{gap:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border);font-size:var(--text-xs);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--color-text-muted);grid-template-columns:1fr 2fr 1.5fr 1fr;display:grid}.table__row{gap:var(--space-4);padding:var(--space-3) var(--space-5);font-size:var(--text-base);border-bottom:1px solid var(--color-border);transition:background var(--transition-fast);grid-template-columns:1fr 2fr 1.5fr 1fr;align-items:center;display:grid}.table__row:last-child{border-bottom:none}.table__row:hover{background:var(--color-surface)}.table__date{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.table__description{color:var(--color-text-heading)}.table__amount{text-align:right;font-weight:var(--weight-medium);font-variant-numeric:tabular-nums}.table__amount--in{color:var(--color-positive)}.page-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:flex-end;display:flex}.page-header__eyebrow{font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-text-muted)}.page-header__title{margin-top:var(--space-1);font-size:var(--text-xl);letter-spacing:var(--tracking-tight);color:var(--color-text-heading)}.deck{background:var(--color-bg);min-height:100vh}.deck__inner{max-width:var(--content-max);padding:var(--space-16) var(--content-pad-x);margin:0 auto}.deck__header{margin-bottom:var(--space-16);padding-bottom:var(--space-10);border-bottom:1px solid var(--color-border)}.deck__eyebrow{font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-text-muted)}.deck__title{margin-top:var(--space-3);font-size:var(--text-3xl);letter-spacing:var(--tracking-tight);color:var(--color-text-heading)}.deck__lede{margin-top:var(--space-3);max-width:640px;font-size:var(--text-base);color:var(--color-text-muted)}.deck__section{margin-bottom:var(--space-20)}.deck__section-title{font-size:var(--text-lg);letter-spacing:var(--tracking-tight);color:var(--color-text-heading)}.deck__section-sub{margin-top:var(--space-1);margin-bottom:var(--space-6);font-size:var(--text-sm);color:var(--color-text-muted)}.deck__sublabel{margin-bottom:var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-muted)}.deck__note{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted)}.swatch-grid{gap:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=720px){.swatch-grid{grid-template-columns:repeat(2,1fr)}}.swatch{text-align:left;border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-4);background:var(--color-bg);cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.swatch:hover{border-color:var(--color-border-strong)}.swatch--active{border-color:var(--color-text-heading);box-shadow:var(--ring)}.swatch__chip{border-radius:var(--radius-lg);height:80px}.swatch__meta{margin-top:var(--space-3);justify-content:space-between;align-items:baseline;display:flex}.swatch__name{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text-heading)}.swatch__hex{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.swatch__desc{margin-top:var(--space-1);font-size:var(--text-xs);line-height:var(--leading-snug);color:var(--color-text-muted)}.ramp{border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden}.ramp__row{align-items:center;gap:var(--space-5);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border);display:flex}.ramp__row:last-child{border-bottom:none}.ramp__chip{border-radius:var(--radius-md);border:1px solid var(--color-border);width:40px;height:40px}.ramp__info{flex:1}.ramp__name{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text-heading)}.ramp__role{font-size:var(--text-xs);color:var(--color-text-muted)}.ramp__hex{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.specimen-card{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-bg);padding:var(--space-8)}.specimen{margin-bottom:var(--space-6)}.specimen:last-child{margin-bottom:0}.specimen__label{font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-muted)}.specimen__sample{margin-top:var(--space-1);color:var(--color-text-heading)}.specimen__sample--display{font-size:var(--text-3xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight)}.specimen__sample--heading{font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight)}.specimen__sample--subhead{font-size:var(--text-md);font-weight:var(--weight-medium)}.specimen__sample--body{font-size:var(--text-base);color:var(--color-text-body)}.specimen__sample--caption{font-size:var(--text-xs);color:var(--color-text-muted)}.numeric-grid{gap:var(--space-5);margin-top:var(--space-6);grid-template-columns:1fr 1fr;display:grid}.numeric-demo{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-bg);padding:var(--space-5)}.numeric-demo__title{font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-3)}.numeric-demo__list{text-align:right;font-family:var(--font-mono);font-size:var(--text-base);color:var(--color-text-heading)}.numeric-demo__list>div{padding:2px 0}.numeric-demo--tabular .numeric-demo__list{font-variant-numeric:tabular-nums}.numeric-demo--proportional .numeric-demo__list{font-variant-numeric:proportional-nums}.row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.stack-gap-10>*+*{margin-top:var(--space-10)}.kpi-grid{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}@media (width<=720px){.kpi-grid{grid-template-columns:1fr}}.mock{border:1px solid var(--color-border);border-radius:var(--radius-2xl);background:var(--color-surface);overflow:hidden}.mock__shell{display:flex}.mock__sidebar{border-right:1px solid var(--color-border);background:var(--color-bg);width:220px;padding:var(--space-4);flex-shrink:0}.mock__main{padding:var(--space-8);flex:1}.mock__header{margin-bottom:var(--space-6);justify-content:space-between;align-items:flex-end;display:flex}.mock__chip{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:var(--text-xs);background:var(--color-bg);color:var(--color-text-body)}.mock__txn-list{margin-top:var(--space-4)}.mock__txn{padding:var(--space-2) 0;font-size:var(--text-base);justify-content:space-between;align-items:center;display:flex}.mock__txn-desc{color:var(--color-text-heading)}.mock__txn-meta{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:2px;display:block}.mock__txn-amt{font-weight:var(--weight-medium);font-variant-numeric:tabular-nums}.mock__txn-amt--in{color:var(--color-positive)}.deck__footer{margin-top:var(--space-20);padding-top:var(--space-6);border-top:1px solid var(--color-border);font-size:var(--text-xs);color:var(--color-text-muted)}.deck__footer strong{color:var(--color-text-body);font-weight:var(--weight-medium)}
