*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}ul[role=list],ol[role=list]{list-style:none;padding:0;margin:0}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{background:none;border:0;padding:0;cursor:pointer}:focus{outline:none}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}:root{--brand-50: #FFE8DF;--brand-100: #FFD1C0;--brand-200: #FFB092;--brand-300: #FF8E64;--brand-400: #FF6B36;--brand-500: #FF4500;--brand-600: #E03E00;--brand-700: #B83200;--brand-800: #8F2900;--brand-900: #6B1E00;--gray-0: #0A0D14;--gray-50: #0E121A;--gray-100: #131927;--gray-200: #182035;--gray-300: #1F2944;--gray-400: #2A3556;--gray-500: #3A466C;--gray-600: #5D6A8F;--gray-700: #8B95AD;--gray-800: #C1C8D6;--gray-900: #E8EBF2;--white: #FFFFFF;--surface: var(--gray-50);--surface-elev-1: #0B0F18;--surface-elev-2: #0A0E16;--border: #233049;--text-strong: var(--gray-900);--text: #D6DDEA;--text-muted: #9EA9BF;--text-inverse: #0D1118;--success-500: #22C55E;--warning-500: #F59E0B;--danger-500: #EF4444;--info-500: #3B82F6;--focus-ring: #60A5FA;--selection-bg: rgba(96,165,250,.25);--font-sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;--font-display: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--fs-xxl: clamp(2.5rem, 4vw, 3rem);--fs-xl: clamp(2rem, 3vw, 2.25rem);--fs-lg: clamp(1.5rem, 2.4vw, 1.75rem);--fs-md: 1.125rem;--fs-base:1rem;--fs-sm: .875rem;--fs-xs: .8125rem;--lh-tight: 1.15;--lh-snug: 1.25;--lh-normal:1.5;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 40px;--sp-8: 48px;--sp-9: 64px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-card: 0 1px 0 rgba(255,255,255,.04), 0 6px 20px rgba(0,0,0,.35);--control-h: 40px;--control-h-lg: 48px;--control-pad-x: 14px;--content-max: 1200px;--terminal-green: #C3F0C8}html{color-scheme:light dark;background:var(--surface)}::selection{background:var(--selection-bg)}html[data-theme=light]{--surface: #FFFFFF;--surface-elev-1: #F7F8FA;--surface-elev-2: #EEF1F6;--border: #D9DFEA;--text-strong: #0E1014;--text: #1A2233;--text-muted: #63708A;--text-inverse: #FFFFFF;--gray-900: #0E1014}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--text);background:var(--surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,.h1{font-family:var(--font-display);font-size:var(--fs-xxl);line-height:var(--lh-tight);color:var(--text-strong);letter-spacing:-.02em}h2,.h2{font-family:var(--font-display);font-size:var(--fs-xl);line-height:var(--lh-tight);color:var(--text-strong)}h3,.h3{font-family:var(--font-display);font-size:var(--fs-lg);line-height:var(--lh-snug);color:var(--text-strong)}.lead{font-size:var(--fs-md);color:var(--text);opacity:.9}.muted{color:var(--text-muted)}.mono{font-family:var(--font-display)}main{max-width:var(--content-max);margin-inline:auto;padding:var(--sp-7) var(--sp-5) var(--sp-9)}.app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-6)}.app-brand{display:inline-flex;align-items:center;gap:var(--sp-3)}.app-brand h1{margin:0}.app-logo{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.35))}.auth-controls{display:flex;align-items:center;gap:var(--sp-3)}.blurred-when-signed-out{transition:filter .3s ease}main.auth-signed-out .blurred-when-signed-out{filter:blur(12px);pointer-events:none;-webkit-user-select:none;user-select:none}main.auth-signed-out .chart-card canvas,main.auth-signed-out .chart-card img,main.auth-signed-out .chart-card embed,main.auth-signed-out .chart-card object,main.auth-signed-out .chart-card svg{visibility:hidden}.auth-google{min-height:var(--control-h);display:flex;align-items:center}.auth-google--placeholder,.auth-google--error{font-size:var(--fs-xs);color:var(--text-muted);padding:0 var(--sp-3)}.auth-google--error{color:var(--danger-500)}.user-info{display:inline-flex;align-items:center;gap:var(--sp-3);padding:4px var(--sp-3);border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface-elev-1)}.user-info[hidden]{display:none!important}.user-meta{display:flex;flex-direction:column;line-height:1.2}.user-name{font-weight:600}.user-email{font-size:var(--fs-xs);color:var(--text-muted)}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1px solid var(--border);background:var(--surface-elev-2)}.user-avatar[hidden]{display:none!important}.user-avatar--fallback{display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:600;color:var(--text);background:linear-gradient(135deg,var(--brand-500),var(--brand-300));border:none;text-transform:uppercase}.auth-button{padding:0 var(--sp-4);height:var(--control-h);border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface-elev-1);color:var(--text);transition:background .2s ease,color .2s ease,border-color .2s ease}.auth-button:hover,.auth-button:focus-visible{background:color-mix(in oklab,var(--surface-elev-1),var(--text) 6%);border-color:color-mix(in oklab,var(--border),var(--info-500) 24%)}.view-tabs{display:inline-flex;gap:var(--sp-3);margin-bottom:var(--sp-5);flex-wrap:wrap}.view-tab{display:inline-flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-4);height:var(--control-h);font-weight:600;font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;border:1px solid var(--border);background:var(--surface-elev-1);color:var(--text-muted);transition:transform .08s ease,background .2s ease,color .2s ease,border-color .2s ease}.view-tab:hover{color:var(--text);border-color:color-mix(in oklab,var(--brand-500),transparent 60%)}.view-tab.active{background:var(--brand-500);border-color:color-mix(in oklab,var(--brand-500),black 15%);color:var(--text-inverse);box-shadow:0 6px 20px #ff450059}.view-panel{display:none;margin-bottom:var(--sp-7)}.view-panel.active{display:block}.summary-container{display:grid;gap:var(--sp-5)}.summary-intro{display:grid;gap:var(--sp-2)}.summary-intro h2{font-family:var(--font-display);font-size:var(--fs-lg);letter-spacing:-.01em;color:var(--text)}.summary-intro p{margin-top:var(--sp-2);color:var(--text-muted);font-size:var(--fs-sm)}.tabs{display:inline-flex;flex-wrap:nowrap;gap:var(--sp-3);margin-bottom:var(--sp-5);overflow-x:auto;padding-bottom:var(--sp-2);scrollbar-width:thin}.tab-button{display:inline-flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-4);height:var(--control-h);font-weight:600;font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--text-muted);transition:transform .08s ease,border-color .2s ease,color .2s ease}.tab-button:hover{color:var(--text);border-color:color-mix(in oklab,var(--brand-500),transparent 70%)}.tab-button.active{border-color:var(--brand-500);color:var(--text)}.tab-panel{background:var(--surface-elev-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--sp-6)}.tab-panel[hidden]{display:none}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-5);margin-bottom:var(--sp-6)}.summary-card{background:linear-gradient(170deg,#ff450029,#0a0e16d9);border-radius:var(--radius-md);border:1px solid color-mix(in oklab,var(--brand-500),transparent 70%);padding:var(--sp-5);display:grid;gap:var(--sp-2)}.summary-card h3{font-family:var(--font-display);font-size:var(--fs-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.summary-card .value{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--text)}.summary-card.treasury-card .value,.summary-card.runway-card .value{display:grid;gap:var(--sp-2);font-size:var(--fs-base)}.metric-paired-line{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3)}.metric-paired-line .metric-value-label{flex:1}.metric-paired-value{flex:0 0 auto;text-align:right;font-size:var(--fs-base);color:var(--text)}.metric-paired-value .metric-value-amount{font-size:inherit}.summary-card.treasury-card .metric-value-label,.summary-card.runway-card .metric-value-label{font-size:.75rem;letter-spacing:.06em}.summary-card.net-positive{background:linear-gradient(170deg,#22c55e2e,#0a0e16d9);border-color:color-mix(in oklab,var(--success-500),transparent 60%)}.summary-card.net-negative{background:linear-gradient(170deg,#ef44442e,#0a0e16d9);border-color:color-mix(in oklab,var(--danger-500),transparent 55%)}.summary-card .value.value--has-simulation{display:grid;gap:var(--sp-2);font-size:var(--fs-sm)}.summary-card.treasury-card .metric-paired-value.value--has-simulation,.summary-card.runway-card .metric-paired-value.value--has-simulation{display:grid;gap:var(--sp-2);font-size:var(--fs-base)}.metric-value-line{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3)}.metric-value-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.metric-value-line--sim .metric-value-label{color:var(--brand-400)}.metric-value-line--sim .metric-value-amount{color:var(--brand-200)}.simulation-card{background:var(--surface-elev-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-5);box-shadow:var(--shadow-card);display:grid;gap:var(--sp-5)}.simulation-card__header h3{font-size:var(--fs-md);font-family:var(--font-display);color:var(--text)}.simulation-card__header p{color:var(--text-muted);font-size:var(--fs-sm)}.simulation-form{display:grid;gap:var(--sp-4)}.simulation-field{display:grid;gap:var(--sp-1)}.simulation-field__label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.simulation-field input,.simulation-field select{background:var(--surface-elev-1);border:1px solid color-mix(in oklab,var(--border),transparent 20%);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);color:var(--text);font-size:var(--fs-sm)}.simulation-field input:disabled,.simulation-field select:disabled{opacity:.55;cursor:not-allowed}.simulation-field select{background-image:url(/arrow-right.svg);background-repeat:no-repeat;background-position:right var(--sp-3) center;background-size:12px;padding-right:calc(var(--sp-3) * 3);-webkit-appearance:none;-moz-appearance:none;appearance:none}.simulation-field select::-ms-expand{display:none}.simulation-checkbox{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text)}.simulation-checkbox input{width:1.2rem;height:1.2rem;accent-color:var(--brand-500)}.simulation-subgroup{display:grid;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--radius-md);background:var(--surface-elev-1);border:1px solid color-mix(in oklab,var(--border),transparent 30%)}.simulation-subgroup--disabled{opacity:.55}.simulation-subgroup__header{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:baseline;justify-content:space-between}.simulation-subgroup__title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.simulation-subgroup__hint{font-size:var(--fs-xs);color:var(--text-muted)}.simulation-injection-list{display:grid;gap:var(--sp-3)}.simulation-injection-row{display:grid;gap:var(--sp-3);align-items:end;grid-template-columns:repeat(auto-fit,minmax(180px,1fr)) auto}.simulation-remove{align-self:center;background:none;border:none;color:var(--brand-500);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;padding:var(--sp-1) var(--sp-2)}.simulation-remove:hover,.simulation-remove:focus{color:var(--brand-300)}.simulation-add{justify-self:start;background:none;border:1px dashed color-mix(in oklab,var(--border),transparent 20%);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);color:var(--brand-400);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.simulation-add:hover,.simulation-add:focus{border-color:var(--brand-400);color:var(--brand-300)}.simulation-total{font-size:var(--fs-sm);font-family:var(--font-display);color:var(--text-muted)}@media(max-width:1024px){.summary-container{gap:var(--sp-4)}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.simulation-card{padding:var(--sp-4)}.simulation-form{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-3)}.chart-card__canvas--summary{height:320px}}@media(max-width:768px){.summary-grid,.simulation-form{grid-template-columns:1fr}.simulation-card{gap:var(--sp-4)}.chart-card__canvas--summary{height:280px}}.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--sp-5);margin-bottom:var(--sp-6)}.summary-card-deck{display:grid;gap:var(--sp-5)}.chart-card{background:var(--surface-elev-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-5);box-shadow:var(--shadow-card);display:grid;gap:var(--sp-4);align-content:start}.chart-card h3{font-size:var(--fs-md);font-family:var(--font-display);color:var(--text)}.chart-card__canvas{position:relative;display:flex;justify-content:center;padding:var(--sp-3) 0;align-self:start}.chart-card__canvas--pie{align-items:flex-start}.chart-card__canvas--pie canvas{display:block;width:min(100%,320px);aspect-ratio:1 / 1}.chart-card__canvas--summary{height:360px;padding:0;align-items:stretch;justify-content:stretch}.chart-card__canvas--summary canvas{width:100%;height:100%!important}.chart-legend{list-style:none;display:grid;gap:var(--sp-3);margin:0;padding:0}.chart-legend__item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-sm);background:#ffffff08;border:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background .2s ease,border-color .2s ease,opacity .2s ease}.chart-legend__item:hover{background:#ffffff14;border-color:color-mix(in oklab,var(--brand-500),transparent 70%)}.chart-legend__item.is-dimmed{opacity:.45}.chart-legend__item.is-dimmed .chart-legend__label,.chart-legend__item.is-dimmed .chart-legend__value span:first-child,.chart-legend__item.is-dimmed .chart-legend__percentage{color:var(--text-muted)}.chart-legend__swatch{width:14px;height:14px;border-radius:4px;background:var(--swatch-color);box-shadow:inset 0 0 0 1px #0006}.chart-legend__label{font-family:var(--font-display);font-size:var(--fs-sm);color:var(--text)}.chart-legend__value{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-family:var(--font-display)}.chart-legend__value span:first-child{color:var(--text)}.chart-legend__percentage{font-size:var(--fs-xs);color:var(--text-muted)}.table-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--sp-5);margin-bottom:var(--sp-6)}.table-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-elev-1);overflow:hidden;box-shadow:var(--shadow-card)}.table-card h3{margin:0;padding:var(--sp-4) var(--sp-5);font-family:var(--font-display);font-size:var(--fs-md);border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(255,255,255,.05),transparent);text-align:left}.table-card__title{text-align:left}.table-card table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);text-align:left}.table-card th,.table-card td{padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border);text-align:left}.table-card tbody tr:nth-child(2n){background:#ffffff05}.amount-positive{color:var(--success-500);font-family:var(--font-display)}.amount-negative{color:var(--danger-500);font-family:var(--font-display)}.no-data{padding:var(--sp-3) var(--sp-5);color:var(--text-muted);font-style:italic}.transactions{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-elev-2);box-shadow:var(--shadow-card);overflow-x:auto}.transactions table{width:100%;min-width:780px;border-collapse:collapse;font-size:var(--fs-sm)}.transactions th,.transactions td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);text-align:left}.transactions thead th{font-family:var(--font-display);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-elev-1)}.transactions tbody tr:hover{background:#60a5fa14}.note{font-family:var(--font-display);color:var(--text-muted)}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:var(--fs-xs);font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--border);background:var(--surface-elev-1);color:var(--text-muted)}.badge.revenu{border-color:color-mix(in oklab,var(--success-500),transparent 35%);color:var(--success-500)}.badge.depense{border-color:color-mix(in oklab,var(--danger-500),transparent 40%);color:var(--danger-500)}.badge.transfer{border-color:var(--border);color:var(--text-muted);background:#94a3b814}.badge.financement{border-color:color-mix(in oklab,var(--brand-500),transparent 55%);color:var(--brand-500);background:#ff6b3614}.amount-neutral{color:var(--text-muted);font-family:var(--font-display)}.center{text-align:center}.right{text-align:right}.nowrap{white-space:nowrap}@media(max-width:640px){main{padding:var(--sp-6) var(--sp-4) var(--sp-7)}.tab-panel{padding:var(--sp-5) var(--sp-4)}.tabs{flex-wrap:wrap}.tab-button,.view-tab{width:100%;justify-content:center}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.summary-label{display:flex;align-items:center;gap:var(--sp-3)}.summary-label__swatch{width:12px;height:12px;border-radius:999px;background:var(--swatch-color);box-shadow:inset 0 0 0 1px #00000073}.summary-value{font-family:var(--font-display)}.summary-share{color:var(--text-muted);font-size:var(--fs-xs);font-family:var(--font-display);text-transform:uppercase}.site-footer{max-width:var(--content-max);margin:0 auto var(--sp-8);padding:var(--sp-4) var(--sp-5);display:flex;justify-content:center;gap:var(--sp-3);border-top:1px solid var(--border);color:var(--text-muted);font-size:var(--fs-sm)}.site-footer a{color:inherit;text-decoration:none;font-weight:600}.site-footer a:hover{color:var(--text);text-decoration:underline}
