@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=Crimson+Pro:ital,wght@0,300;0,400;0,600;1,300&display=swap";:root{--color-primary: #1b2a3b;--color-surface: #f5f0e8;--color-surface-alt: #fdfcf9;--color-accent: #c9a84c;--color-neutral: #606978;--color-positive: #3a7d5a;--color-positive-subtle: #eaf4ee;--color-negative: #b94040;--color-negative-subtle: #faeaea;--color-warning: #7a5500;--color-warning-subtle: #fdf5e0;--color-neutral-subtle: #f0eee9;--color-paycheck-subtle: rgba(201, 168, 76, .13);--color-pay-linked-subtle: rgba(201, 168, 76, .06);--color-dark-background: #0f1c2a;--color-dark-surface: #1b2a3b;--color-dark-surface-raised: #223145;--color-dark-text: #e8e2d6;--color-dark-text-muted: rgba(232, 226, 214, .7);--color-dark-accent: #c9a84c;--color-dark-border: rgba(201, 168, 76, .15);--color-dark-positive: #5baf85;--color-dark-negative: #d96060;--color-border: rgba(27, 42, 59, .1);--color-border-strong: rgba(27, 42, 59, .22);--color-border-accent: rgba(201, 168, 76, .4);--color-divider: rgba(27, 42, 59, .07);--font-display: "Playfair Display", Georgia, "Times New Roman", serif;--font-body: "Crimson Pro", Georgia, "Times New Roman", serif;--font-mono: "JetBrains Mono", "Fira Code", "Courier New", monospace;--font-size-xs: .8rem;--font-size-sm: .9rem;--font-size-base: 1.125rem;--font-size-md: 1.25rem;--font-size-lg: 1.438rem;--font-size-xl: 1.75rem;--font-size-2xl: 2.188rem;--font-size-3xl: 2.75rem;--font-size-4xl: 3.438rem;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-snug: 1.4;--line-height-normal: 1.65;--line-height-relaxed: 1.8;--letter-spacing-tight: -.01em;--letter-spacing-normal: 0em;--letter-spacing-wide: .03em;--letter-spacing-wider: .06em;--letter-spacing-widest: .16em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-xl: 16px;--radius-pill: 9999px;--shadow-xs: 0 1px 3px rgba(15, 28, 42, .08);--shadow-sm: 0 2px 8px rgba(15, 28, 42, .12);--shadow-md: 0 4px 16px rgba(15, 28, 42, .14);--shadow-lg: 0 8px 32px rgba(15, 28, 42, .18);--shadow-accent: 0 4px 20px rgba(201, 168, 76, .2);--shadow-dark-sm: 0 2px 12px rgba(0, 0, 0, .3);--shadow-dark-md: 0 4px 24px rgba(0, 0, 0, .4);--transition-fast: .1s ease;--transition-base: .2s ease;--transition-slow: .35s ease;--z-below: -1;--z-base: 0;--z-raised: 10;--z-dropdown: 100;--z-sticky: 200;--z-overlay: 300;--z-modal: 400;--z-tour: 450;--z-toast: 500;--max-width-content: 720px;--max-width-wide: 1100px;--sidebar-width: 260px}.dark{--color-primary: var(--color-dark-text);--color-surface: var(--color-dark-background);--color-surface-alt: var(--color-dark-surface);--color-border: var(--color-dark-border);--color-border-strong: rgba(201, 168, 76, .3);--color-divider: rgba(201, 168, 76, .08);--color-neutral: var(--color-dark-text-muted);--color-positive: var(--color-dark-positive);--color-negative: var(--color-dark-negative);--color-positive-subtle: rgba(91, 175, 133, .12);--color-negative-subtle: rgba(217, 96, 96, .12);--color-warning: #c9a84c;--color-warning-subtle: rgba(201, 168, 76, .12);--color-neutral-subtle: rgba(232, 226, 214, .06);--color-paycheck-subtle: rgba(201, 168, 76, .17);--color-pay-linked-subtle: rgba(201, 168, 76, .085);--shadow-sm: var(--shadow-dark-sm);--shadow-md: var(--shadow-dark-md)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:18px;-webkit-text-size-adjust:100%}@media (max-width: 400px){html{font-size:16px}}body{font-family:var(--font-body);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-primary);background-color:var(--color-surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-primary)}code,pre,kbd{font-family:var(--font-mono);font-size:.9em}body{font-family:var(--font-body);background:var(--color-surface);color:var(--color-primary);min-height:100vh;padding:var(--space-8) var(--space-4)}a,a:visited{color:var(--color-positive)}h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-wide);margin-bottom:var(--space-1)}.tagline{font-size:var(--font-size-base);color:var(--color-neutral);font-style:italic;letter-spacing:var(--letter-spacing-wide);margin-bottom:var(--space-6)}.app{max-width:780px;margin:0 auto}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.tab-nav{display:flex;gap:0;margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.tab-nav button.tab{border-radius:var(--radius-md) var(--radius-md) 0 0;border:.5px solid transparent;border-bottom:none;background:transparent;color:var(--color-neutral);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);font-size:var(--font-size-sm);height:36px;padding:0 var(--space-5);transition:color var(--transition-base),background var(--transition-base)}.tab-nav button.tab:hover{color:var(--color-primary);background:var(--color-neutral-subtle)}.tab-nav button.tab.active{color:var(--color-primary);background:var(--color-surface-alt);border-color:var(--color-border);position:relative;bottom:-1px}.app-header .tagline{margin-bottom:0}.beta-tag{font-family:var(--font-body);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:var(--color-accent);opacity:.7}.section{background:var(--color-surface-alt);border:.5px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-4);box-shadow:var(--shadow-sm)}.section:before{content:"";display:block;width:32px;height:3px;background:var(--color-accent);border-radius:var(--radius-sm);margin-bottom:var(--space-3)}.section-title{font-family:var(--font-display);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-neutral);text-transform:uppercase;letter-spacing:var(--letter-spacing-widest);margin-bottom:var(--space-3)}.hint{font-size:var(--font-size-sm);color:var(--color-neutral)}.row{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2);flex-wrap:wrap}label{font-size:var(--font-size-sm);color:var(--color-neutral);min-width:90px}label:has(+input[required]):after,label:has(+select[required]):after{content:" *";color:var(--color-negative);font-style:normal}input[type=text],input[type=email],input[type=number],input[type=date],select{font-family:var(--font-body);font-size:var(--font-size-sm);height:36px;padding:0 var(--space-2);border:.5px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-alt);color:var(--color-primary);outline:none}input:focus,select:focus{border-color:var(--color-border-accent);outline:2px solid var(--color-accent);outline-offset:1px}button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}input[type=number]{width:130px}input[type=date]{width:160px}input[type=text]{min-width:140px}select{width:110px}select.wide{width:240px}button{font-family:var(--font-body);font-size:var(--font-size-sm);height:34px;padding:0 var(--space-4);border:.5px solid var(--color-border-strong);border-radius:var(--radius-md);background:transparent;color:var(--color-primary);cursor:pointer;white-space:nowrap;text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);transition:background var(--transition-base),color var(--transition-base),border-color var(--transition-base)}button:hover{background:var(--color-neutral-subtle)}button.primary{background:var(--color-primary);color:var(--color-accent);border-color:var(--color-primary)}button.primary:hover{background:var(--color-dark-surface-raised);border-color:var(--color-dark-surface-raised)}button.accent{background:transparent;color:var(--color-primary);border:1.5px solid var(--color-accent)}button.accent:hover{background:var(--color-neutral-subtle)}button.danger{color:var(--color-negative);border-color:var(--color-border)}button.google{display:flex;align-items:center;gap:var(--space-2);background:var(--color-surface-alt);border:.5px solid var(--color-border-strong);border-radius:var(--radius-md);padding:0 var(--space-4);height:36px;cursor:pointer;font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--color-primary);text-transform:none;letter-spacing:var(--letter-spacing-normal)}button.google:hover{background:var(--color-neutral-subtle)}button:disabled{opacity:.45;cursor:not-allowed}button.btn-theme{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;border:.5px solid var(--color-border-strong);color:var(--color-neutral);text-transform:none;letter-spacing:0;flex-shrink:0;transition:color var(--transition-base),border-color var(--transition-base),background var(--transition-base)}button.btn-theme:hover{color:var(--color-accent);border-color:var(--color-border-accent);background:transparent}.app-header-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}button.btn-learn{height:32px;padding:0 var(--space-3);border-radius:var(--radius-pill);border:.5px solid var(--color-border-strong);color:var(--color-neutral);font-size:var(--font-size-xs)}button.btn-learn:hover{color:var(--color-accent);border-color:var(--color-border-accent);background:transparent}.auth-bar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--color-surface-alt);border:.5px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-4);box-shadow:var(--shadow-xs)}.auth-bar .user-info{flex:1}.auth-bar .user-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.auth-bar .user-email{font-size:var(--font-size-sm);color:var(--color-neutral)}.auth-bar .user-member-since{font-size:var(--font-size-xs);color:var(--color-accent);margin-top:1px}.auth-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.auth-placeholder{width:32px;height:32px;border-radius:50%;background:var(--color-neutral-subtle);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-neutral)}.items-list{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3)}.item-row{display:flex;gap:var(--space-2);align-items:center;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-2);border:.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.item-row .name{flex:1}.item-row .day{width:48px;color:var(--color-neutral);text-align:center;font-size:var(--font-size-xs)}.item-row .amt{width:90px;text-align:right;font-weight:var(--font-weight-semibold)}.credit-text{color:var(--color-positive)}.debit-text{color:var(--color-negative)}.metrics{position:sticky;top:0;z-index:10;background:var(--color-surface-alt);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-4);display:flex;gap:var(--space-6);flex-wrap:wrap;align-items:center;box-shadow:var(--shadow-md)}.metric{flex:1;min-width:120px}.metric .mlabel{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-widest);color:var(--color-neutral);margin-bottom:var(--space-1)}.metric .mval{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-primary)}.metric .mval.pos{color:var(--color-positive)}.metric .mval.neg{color:var(--color-negative)}table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}th{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-neutral);text-align:left;padding:var(--space-1) var(--space-2);border-bottom:.5px solid var(--color-border)}td{padding:var(--space-2);border-bottom:.5px solid var(--color-divider);vertical-align:baseline}tr:last-child td{border-bottom:none}.tag{font-size:var(--font-size-xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill)}.tag.pay,.tag.credit{background:var(--color-positive-subtle);color:var(--color-positive)}.tag.debit{background:var(--color-negative-subtle);color:var(--color-negative)}.bal-warn{color:var(--color-warning);font-weight:var(--font-weight-semibold);font-style:italic}.bal-neg{color:var(--color-negative);font-weight:var(--font-weight-semibold)}.bal-high{color:var(--color-positive);font-weight:var(--font-weight-semibold)}.bal-real-marker{font-size:var(--font-size-xs);color:var(--color-accent);opacity:.8}.bal-clickable{cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px;white-space:nowrap}.bal-clickable:hover{opacity:.75}.amt-override-marker{font-size:var(--font-size-xs);color:var(--color-accent);opacity:.8}.amt-clickable{cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px;white-space:nowrap}.amt-clickable:hover{opacity:.75}.bal-edit-row{display:inline-flex;align-items:center;gap:var(--space-1);max-width:100%;overflow:hidden}.bal-edit-input{width:9ch!important;min-width:0;height:24px;font-size:var(--font-size-sm);padding:0 var(--space-1);text-align:right;border:1px solid var(--color-border-accent);border-radius:var(--radius-sm);background:var(--color-surface-alt);color:var(--color-primary);outline:none}.bal-delete-btn{height:20px;width:20px;padding:0;display:flex;align-items:center;justify-content:center;border:none;color:var(--color-negative);background:transparent;font-size:var(--font-size-base);font-weight:var(--font-weight-bold);line-height:1;cursor:pointer;text-transform:none;letter-spacing:0;flex-shrink:0}.bal-delete-btn:hover{opacity:.7;background:transparent}.bal-saving{color:var(--color-neutral);font-size:var(--font-size-xs);font-style:italic}.bal-edit-hint{position:absolute;right:0;top:100%;font-size:.7rem;color:var(--color-neutral);white-space:nowrap;pointer-events:none}.surplus-alert{background:var(--color-positive-subtle);border:.5px solid var(--color-positive);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-4);display:flex;align-items:flex-start;gap:var(--space-3);box-shadow:var(--shadow-sm)}.surplus-alert .alert-icon{font-size:var(--font-size-lg);flex-shrink:0;line-height:1;color:var(--color-positive)}.surplus-alert .alert-body{flex:1}.surplus-alert .alert-title{font-family:var(--font-display);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-positive);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);margin-bottom:var(--space-1)}.surplus-alert .alert-detail{font-size:var(--font-size-sm);color:var(--color-positive);opacity:.85}.deficit-alert{background:var(--color-warning-subtle);border:.5px solid var(--color-warning);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-4);display:flex;align-items:flex-start;gap:var(--space-3);box-shadow:var(--shadow-sm)}.deficit-alert .alert-icon{font-size:var(--font-size-lg);flex-shrink:0;line-height:1}.deficit-alert .alert-body{flex:1}.deficit-alert .alert-title{font-family:var(--font-display);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-warning);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);margin-bottom:var(--space-1)}.deficit-alert .alert-detail{font-size:var(--font-size-sm);color:var(--color-warning);opacity:.85}.deficit-alert.deficit-alert--negative{background:var(--color-negative-subtle);border-color:var(--color-negative)}.deficit-alert.deficit-alert--negative .alert-title,.deficit-alert.deficit-alert--negative .alert-detail{color:var(--color-negative)}.row-paycheck td{background:var(--color-paycheck-subtle)}.row-pay-linked td{background:var(--color-pay-linked-subtle)}.month-group-header td{font-family:var(--font-display);font-size:var(--font-size-sm);color:var(--color-neutral);padding:var(--space-2) var(--space-2) var(--space-1)}.month-group-separator td{border-top:2px solid var(--color-accent);padding-top:var(--space-4)}.today-marker{scroll-margin-top:250px}.today-marker td{font-family:var(--font-display);font-size:var(--font-size-xs);color:var(--color-accent);padding:var(--space-1) var(--space-2);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;border-top:1px solid var(--color-border-accent)}.row-today td:first-child{border-left:3px solid var(--color-accent)}.empty{font-size:var(--font-size-sm);color:var(--color-neutral);padding:var(--space-1) 0}.help-tip{position:relative;display:inline-flex;vertical-align:middle}.help-tip-btn{height:18px;width:18px;min-width:18px;padding:0;border-radius:var(--radius-pill);border:.5px solid var(--color-border-strong);background:transparent;color:var(--color-neutral);font-family:var(--font-body);font-size:var(--font-size-xs);line-height:1;font-weight:var(--font-weight-bold);text-transform:none;letter-spacing:var(--letter-spacing-normal);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.help-tip-btn:hover{background:var(--color-neutral-subtle);color:var(--color-primary)}.help-tip-popover{position:absolute;top:calc(100% + var(--space-1));left:0;z-index:var(--z-dropdown);width:max-content;max-width:min(260px,80vw);padding:var(--space-2) var(--space-3);background:var(--color-surface-alt);color:var(--color-primary);border:.5px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);font-style:normal;line-height:var(--line-height-normal);text-transform:none;letter-spacing:var(--letter-spacing-normal);white-space:normal}.help-tip-link{display:inline;height:auto;min-width:0;padding:0;margin:0;border:none;background:none;color:var(--color-positive);font:inherit;text-transform:none;letter-spacing:inherit;text-decoration:underline;cursor:pointer}.help-tip-link:hover{background:none;text-decoration:none}.section-flash{animation:section-flash 1.6s ease}@keyframes section-flash{0%,to{box-shadow:var(--shadow-sm)}15%{box-shadow:var(--shadow-accent);border-color:var(--color-border-accent)}}.help-panel{background:var(--color-surface-alt);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-5) var(--space-6);width:100%;max-width:540px;max-height:85vh;overflow-y:auto}.help-panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.help-panel-back{height:28px;padding:0 var(--space-2);border:none;background:none;color:var(--color-positive);text-transform:none;letter-spacing:var(--letter-spacing-normal);font-size:var(--font-size-sm)}.help-panel-back:hover{background:var(--color-neutral-subtle)}.help-panel-close{width:30px;height:30px;min-width:30px;padding:0;border-radius:var(--radius-pill);border:.5px solid var(--color-border-strong);color:var(--color-neutral);font-size:var(--font-size-md);line-height:1;text-transform:none}.help-panel-close:hover{color:var(--color-accent);border-color:var(--color-border-accent);background:transparent}.help-article-index{list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}.help-index-item{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);width:100%;height:auto;padding:var(--space-3) var(--space-4);border:.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);text-transform:none;letter-spacing:var(--letter-spacing-normal);white-space:normal;text-align:left}.help-index-item:hover{border-color:var(--color-border-accent);background:var(--color-neutral-subtle)}.help-index-title{font-family:var(--font-display);font-size:var(--font-size-base);color:var(--color-primary)}.help-index-summary{font-size:var(--font-size-sm);color:var(--color-neutral)}.help-article-title{font-size:var(--font-size-lg);margin-bottom:var(--space-3)}.help-article-heading{font-family:var(--font-display);font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-top:var(--space-4);margin-bottom:var(--space-2)}.help-article-paragraph{font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-primary);margin-bottom:var(--space-3)}.help-article-list{margin:0 0 var(--space-3) var(--space-5)}.help-article-list li{font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-primary);margin-bottom:var(--space-1)}.tour-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-tour);pointer-events:none}.tour-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;pointer-events:auto}.tour-spotlight{position:fixed;border-radius:var(--radius-md);box-shadow:0 0 0 9999px #00000080;outline:2px solid var(--color-border-accent);outline-offset:0;pointer-events:none;transition:top .2s ease,left .2s ease,width .2s ease,height .2s ease}.tour-card{pointer-events:auto;background:var(--color-surface-alt);border:.5px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-4) var(--space-5);max-height:calc(100vh - 24px);overflow-y:auto}.tour-card-step{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--color-neutral);margin-bottom:var(--space-1)}.tour-card-title{font-family:var(--font-display);font-size:var(--font-size-lg);color:var(--color-primary);margin-bottom:var(--space-2)}.tour-card-body{font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-primary);margin-bottom:var(--space-3)}.tour-question{margin-bottom:var(--space-3)}.tour-question-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--space-2)}.tour-chips{display:flex;flex-wrap:wrap;gap:var(--space-1)}.tour-chip{height:30px;padding:0 var(--space-3);border:.5px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-primary);text-transform:none;letter-spacing:var(--letter-spacing-normal);font-size:var(--font-size-sm)}.tour-chip:hover{border-color:var(--color-border-accent);background:var(--color-neutral-subtle)}.tour-chip.active{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-accent)}.tour-suggestion-detail{font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-primary);margin-top:var(--space-2)}.tour-suggestions{list-style:none;display:flex;flex-direction:column;gap:var(--space-1);margin:0 0 var(--space-3)}.tour-suggestions li{position:relative;padding-left:var(--space-4);font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-primary)}.tour-suggestions li:before{content:"✓";position:absolute;left:0;color:var(--color-positive);font-weight:var(--font-weight-bold)}.tour-card-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);flex-wrap:wrap}.tour-card-nav{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;margin-left:auto}.tour-skip{height:30px;padding:0 var(--space-2);border:none;background:none;color:var(--color-neutral);text-transform:none;letter-spacing:var(--letter-spacing-normal);font-size:var(--font-size-sm)}.tour-skip:hover{background:var(--color-neutral-subtle);color:var(--color-primary)}.actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.status-line{font-size:var(--font-size-sm);margin-top:var(--space-1);min-height:18px}.ok{color:var(--color-positive)}.err{color:var(--color-negative)}.info{color:var(--color-neutral)}.sheet-note{font-size:var(--font-size-sm);color:var(--color-neutral);margin-bottom:var(--space-3);line-height:var(--line-height-relaxed)}.sheet-note code{font-family:var(--font-mono);font-size:var(--font-size-xs);background:var(--color-neutral-subtle);padding:0 var(--space-1);border-radius:var(--radius-sm)}.dark .metrics{background:var(--color-dark-surface);border-color:var(--color-dark-border)}.dark button.primary{background:var(--color-accent);color:var(--color-dark-background);border-color:var(--color-accent)}.dark button.primary:hover{background:var(--color-dark-surface-raised);border-color:var(--color-dark-surface-raised);color:var(--color-accent)}.dark .tour-chip.active{background:var(--color-accent);color:var(--color-dark-background);border-color:var(--color-accent)}.what-if-banner{background:#c9a84c14;border:1px solid var(--color-border-accent);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-5);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-sm)}.what-if-banner-icon{font-size:var(--font-size-lg);flex-shrink:0;line-height:1;color:var(--color-accent)}.what-if-banner-body{flex:1;display:flex;flex-direction:column;gap:2px}.what-if-banner-name{color:var(--color-primary)}.what-if-banner-note{font-size:var(--font-size-xs);color:var(--color-neutral)}.what-if-result-badge{background:#c9a84c14;border:.5px solid var(--color-border-accent);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-5);margin-bottom:var(--space-4);font-size:var(--font-size-sm);color:var(--color-accent);display:flex;align-items:center;gap:var(--space-2)}.forecast-disclaimer{font-size:var(--font-size-xs);color:var(--color-neutral);text-align:center;margin:0 0 var(--space-4)}.bal-range{display:inline}.bal-range-sep{color:var(--color-neutral);font-weight:400}.app-footer{display:flex;gap:var(--space-4);align-items:center;flex-wrap:wrap;margin-top:var(--space-10);padding-top:var(--space-4);border-top:.5px solid var(--color-border);font-size:var(--font-size-xs);color:var(--color-neutral)}.app-footer a{color:var(--color-neutral);text-decoration:none}.app-footer a:hover{color:var(--color-primary)}.app-footer a:visited{color:var(--color-neutral)}@media (max-width: 560px){body{padding:var(--space-4) var(--space-2)}.metrics{gap:var(--space-4);padding:var(--space-4)}.metric{min-width:calc(50% - var(--space-4))}.metric .mval{font-size:1.4rem}.section{padding:var(--space-3) var(--space-3)}.day-weekday{display:none}.bal-range{display:inline-flex;flex-direction:column;align-items:flex-end}.bal-range-sep{display:none}.today-marker{scroll-margin-top:300px}}body.landing-mode{padding:0}.landing{min-height:100vh;display:flex;flex-direction:column}.landing-nav{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-8);background:var(--color-primary);border-bottom:1px solid rgba(201,168,76,.2)}.dark .landing-nav{background:var(--color-dark-surface)}.landing-logo{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-accent);letter-spacing:var(--letter-spacing-wide)}.landing-nav-actions{display:flex;align-items:center;gap:var(--space-3)}.landing-nav .btn-theme{border-color:#c9a84c4d;color:#e8e2d6b3}.landing-nav .btn-theme:hover{color:var(--color-accent);border-color:var(--color-accent);background:#c9a84c14}.landing-nav-signin{display:inline-flex;align-items:center;gap:var(--space-2);background:#ffffff12;border:.5px solid rgba(201,168,76,.3);color:#e8e2d6;text-transform:none;letter-spacing:var(--letter-spacing-normal)}.landing-nav-signin:hover{background:#c9a84c1a;color:#e8e2d6}.landing-hero{background:var(--color-primary);padding:var(--space-20) var(--space-8) var(--space-16);text-align:center}.dark .landing-hero{background:var(--color-dark-background)}.landing-hero-inner{max-width:680px;margin:0 auto}.landing-hero-title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:#e8e2d6;margin-bottom:var(--space-6);letter-spacing:var(--letter-spacing-tight)}.landing-hero-title em{color:var(--color-accent);font-style:normal}.landing-hero-sub{font-size:var(--font-size-md);color:#e8e2d6a6;line-height:var(--line-height-relaxed);margin-bottom:var(--space-10);max-width:560px;margin-left:auto;margin-right:auto}.landing-cta{display:inline-flex;align-items:center;gap:var(--space-3);height:52px;padding:0 var(--space-8);background:var(--color-accent);border:none;border-radius:var(--radius-lg);color:#0f1c2a;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);text-transform:none;letter-spacing:0;box-shadow:var(--shadow-accent);transition:opacity var(--transition-base),transform var(--transition-base);cursor:pointer}.landing-cta:hover{opacity:.9;transform:translateY(-1px);background:var(--color-accent);color:#0f1c2a}.landing-cta:disabled{opacity:.45;cursor:not-allowed;transform:none}.landing-hero-error{margin-top:var(--space-4);font-size:var(--font-size-sm);color:#d96060}.landing-video-section{padding:var(--space-16) var(--space-8);background:var(--color-surface);display:flex;flex-direction:column;align-items:center}.landing-video-placeholder{width:100%;max-width:760px;aspect-ratio:16 / 9;background:var(--color-primary);border-radius:var(--radius-xl);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);border:.5px solid var(--color-border-accent);box-shadow:var(--shadow-lg);cursor:pointer;transition:opacity var(--transition-base)}.dark .landing-video-placeholder{background:var(--color-dark-surface)}.landing-video-placeholder:hover{opacity:.88}.landing-video-play{width:72px;height:72px;border-radius:50%;background:var(--color-accent);display:flex;align-items:center;justify-content:center;color:#0f1c2a;box-shadow:var(--shadow-accent);padding-left:4px}.landing-video-label{color:#e8e2d699;font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-wide)}.landing-features{padding:var(--space-16) var(--space-8);background:var(--color-surface);flex:1}.landing-section-heading{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);text-align:center;margin-bottom:var(--space-10);letter-spacing:var(--letter-spacing-tight);color:var(--color-primary)}.landing-features-grid{max-width:var(--max-width-wide);margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-5)}.landing-feature-card{background:var(--color-surface-alt);border:.5px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.landing-feature-card:before{content:"";display:block;width:32px;height:3px;background:var(--color-accent);border-radius:var(--radius-sm);margin-bottom:var(--space-4)}.landing-feature-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin-bottom:var(--space-3);line-height:var(--line-height-snug);color:var(--color-primary)}.landing-feature-body{font-size:var(--font-size-base);color:var(--color-neutral);line-height:var(--line-height-relaxed)}.landing-footer{display:flex;gap:var(--space-4);align-items:center;flex-wrap:wrap;padding:var(--space-6) var(--space-8);border-top:.5px solid var(--color-border);background:var(--color-surface);font-size:var(--font-size-xs);color:var(--color-neutral)}.landing-footer a{color:var(--color-neutral);text-decoration:none}.landing-footer a:hover{color:var(--color-primary)}.landing-footer a:visited{color:var(--color-neutral)}.iab-block{min-height:100vh;background:var(--color-primary);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-6);text-align:center;gap:var(--space-5)}.dark .iab-block{background:var(--color-dark-background)}.iab-logo{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-accent);letter-spacing:var(--letter-spacing-wide)}.iab-icon-wrap{color:var(--color-accent);margin:var(--space-2) 0}.iab-title{font-size:var(--font-size-2xl);color:#e8e2d6;max-width:460px;line-height:var(--line-height-snug)}.iab-body{font-size:var(--font-size-base);color:#e8e2d6a6;max-width:420px;line-height:var(--line-height-relaxed)}.iab-instructions{font-size:var(--font-size-sm);color:var(--color-accent);max-width:380px;line-height:var(--line-height-relaxed);background:#c9a84c14;border:.5px solid rgba(201,168,76,.3);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5)}.iab-copy-btn{display:inline-flex;align-items:center;height:44px;padding:0 var(--space-6);background:transparent;border:1.5px solid var(--color-accent);border-radius:var(--radius-lg);color:var(--color-accent);font-family:var(--font-body);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);cursor:pointer;transition:background var(--transition-base)}.iab-copy-btn:hover{background:#c9a84c1a}.share-btn-wrap{position:relative}.share-popover{position:absolute;top:calc(100% + var(--space-2));right:0;background:#fff;border:.5px solid rgba(27,42,59,.18);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.share-popover-label{font-size:var(--font-size-xs);color:#606978;text-align:center;letter-spacing:var(--letter-spacing-wide)}.share-popover-actions{display:flex;gap:var(--space-2);width:100%;padding-top:var(--space-2);border-top:.5px solid rgba(27,42,59,.1)}.share-action-btn{flex:1;height:30px;font-family:var(--font-body);font-size:var(--font-size-xs);padding:0;border:.5px solid rgba(27,42,59,.22);border-radius:var(--radius-md);background:transparent;color:#1b2a3b;cursor:pointer;letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;transition:background var(--transition-base);white-space:nowrap}.share-action-btn:hover{background:#1b2a3b0f}@media (max-width: 700px){.landing-nav{padding:var(--space-3) var(--space-4)}.landing-hero{padding:var(--space-12) var(--space-4) var(--space-10)}.landing-hero-title{font-size:var(--font-size-2xl)}.landing-hero-sub{font-size:var(--font-size-base)}.landing-cta{height:48px;padding:0 var(--space-6);font-size:var(--font-size-sm)}.landing-video-section,.landing-features{padding:var(--space-10) var(--space-4)}.landing-features-grid{grid-template-columns:1fr}.landing-footer{padding:var(--space-4)}.landing-nav-signin span{display:none}}.analytics-notice{position:fixed;bottom:0;left:0;right:0;background:var(--color-surface-alt);border-top:.5px solid var(--color-border);padding:var(--space-2) var(--space-4);display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-sm);color:var(--color-neutral);z-index:200;flex-wrap:wrap}.analytics-notice-actions{margin-left:auto;display:flex;gap:var(--space-2)}.analytics-notice button{padding:0 var(--space-3);height:28px;font-size:var(--font-size-xs)}
