@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Marcellus&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg:#f6f3ec;--surface:#fff;--surface-muted:#fffffff0;--primary:#2c3440;--accent:#5c7fa3;--border:#d7d1c5;--text-primary:#1f2933;--text-secondary:#66707a;--income:#4f7a5a;--expense:#be4f4f;--neutral:#8a7e6a;--shadow:0 24px 60px #1f293314;color:var(--text-primary);background:radial-gradient(circle at 0 0,#5c7fa324,#0000 28%),radial-gradient(circle at 90% 10%,#8a7e6a1f,#0000 24%),linear-gradient(#faf7f1 0%,#f6f3ec 100%);font-family:DM Sans,sans-serif;font-weight:400;line-height:1.4}*{box-sizing:border-box}html{background:var(--bg)}body{min-width:320px;min-height:100vh;color:var(--text-primary);background:0 0;margin:0}img{max-width:100%;display:block}button,input,select{font:inherit}button{cursor:pointer}#app{min-height:100vh}.landing-page{place-items:center;width:min(1380px,100vw - 32px);min-height:100vh;margin:0 auto;padding:48px 0 80px;display:grid;position:relative}.landing-hero{justify-content:center;width:100%;display:flex}.landing-copy,.topbar,.panel,.modal-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}.landing-copy{text-align:center;border-radius:34px;width:min(760px,100%);padding:48px 52px 36px;position:relative;overflow:hidden}.landing-copy:before{content:"";pointer-events:none;background:radial-gradient(circle at top,#5c7fa31f,#0000 35%),linear-gradient(#fff9,#0000 40%);position:absolute;inset:0}.brand-lockup,.landing-text,.landing-signature{z-index:1;position:relative}.brand-lockup{justify-content:center;display:flex}.brand-logo{filter:drop-shadow(0 18px 34px #2c344014);width:min(420px,72%)}.brand-subtitle,.topbar-brand,.topbar h1,.panel-header h2,.modal-header h2{letter-spacing:.02em}.topbar-brand,.topbar h1,.panel-header h2,.modal-header h2{font-family:Marcellus,serif}.brand-subtitle{max-width:32rem;color:var(--primary);text-align:center;margin:18px auto 0;font-size:1.18rem;font-weight:500;line-height:1.5}.landing-text{max-width:42rem;color:var(--text-secondary);text-align:left;gap:14px;margin:26px 0 0;font-size:1.04rem;line-height:1.72;display:grid}.landing-text p{margin:0}.landing-list{color:var(--text-secondary);gap:2px;margin:0;padding-left:1.2rem;display:grid}.landing-list li{line-height:1.35}.landing-list li::marker{color:var(--accent)}.landing-actions{z-index:1;justify-content:center;gap:14px;margin-top:28px;display:flex;position:relative}.landing-signature{color:var(--text-secondary);flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:10px;margin-top:26px;font-size:.95rem;display:inline-flex}.privacy-note{border:1px solid color-mix(in srgb, var(--accent) 20%, var(--border));text-align:left;background:linear-gradient(#f6f9fcfa,#faf7f1f5);border-radius:24px;gap:10px;margin:22px 0 6px;padding:18px 20px;display:grid}.privacy-note p{color:var(--text-secondary);margin:0;line-height:1.6}.valyr-logo{object-fit:contain;width:min(90px,24vw);max-width:100%;height:auto}.cookie-panel{border:1px solid var(--border);z-index:15;background:#fffffff7;border-radius:24px;width:min(430px,100vw - 32px);padding:18px;position:fixed;bottom:16px;left:16px;box-shadow:0 30px 70px #1f293324}.cookie-panel-header h2{color:var(--primary);margin:0;font-size:1.05rem}.cookie-panel-header p{color:var(--text-secondary);margin:8px 0 0;font-size:.92rem;line-height:1.55}.cookie-group{gap:10px;margin-top:16px;display:grid}.cookie-toggle-row{border-top:1px solid #d7d1c5b3;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;display:flex}.cookie-toggle-row:first-child{border-top:0;padding-top:0}.cookie-toggle-copy{gap:4px;display:grid}.cookie-toggle-copy strong{color:var(--text-primary);font-size:1rem}.cookie-toggle-copy span{color:var(--text-secondary);font-size:.9rem;line-height:1.45}.cookie-switch{flex:none;width:48px;height:28px;position:relative}.cookie-switch input{opacity:0;position:absolute;inset:0}.cookie-slider{background:#cfd7df;border-radius:999px;transition:background .14s;position:absolute;inset:0}.cookie-slider:before{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .14s;position:absolute;top:4px;left:4px;box-shadow:0 2px 8px #1f29332e}.cookie-switch input:checked+.cookie-slider{background:var(--accent)}.cookie-switch input:checked+.cookie-slider:before{transform:translate(20px)}.cookie-switch input:disabled+.cookie-slider{background:color-mix(in srgb, var(--accent) 84%, white)}.cookie-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.summary-label,.auth-user,.empty-state,.cell-empty{color:var(--text-secondary)}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--neutral);margin:0 0 10px;font-size:.76rem;font-weight:500}.app-shell{width:calc(100vw - 24px);margin:0 auto;padding:18px 0 36px}.topbar{border-radius:28px;justify-content:space-between;align-items:flex-start;gap:24px;padding:24px;display:flex}.topbar-identity{gap:12px;display:grid}.title-row{align-items:center;gap:14px;display:flex}.topbar-icon{object-fit:contain;width:54px;height:54px}.title-group{gap:2px;display:grid}.topbar-brand{color:var(--text-secondary);margin:0;font-size:.9rem}.topbar h1,.panel-header h2,.modal-header h2{color:var(--primary);margin:0;font-size:clamp(1.35rem,2vw,1.85rem);line-height:1.14}.topbar-actions,.form-actions,.toggles,.checkbox-grid,.auth-meta{flex-wrap:wrap;gap:12px;display:flex}button{border:1px solid #0000;border-radius:18px;padding:.88rem 1.2rem;transition:transform .14s,background .14s,border-color .14s,box-shadow .14s}button:hover{transform:translateY(-1px)}button.primary,button.secondary,button.danger{color:#fff}button.primary{background:var(--accent);box-shadow:0 14px 30px #5c7fa338}button.secondary{background:var(--income);box-shadow:0 14px 30px #4f7a5a38}button.danger{background:var(--expense);box-shadow:0 14px 30px #be4f4f38}button.ghost,.segmented button,.icon-button,.view-as-banner-button{background:var(--surface);color:var(--text-primary);border-color:var(--border)}.segmented{grid-template-columns:repeat(4,minmax(10.5rem,1fr));gap:12px;display:grid}.segmented button.active{background:var(--primary);color:var(--bg);border-color:var(--primary)}.icon-button{border-radius:999px;width:44px;height:44px;padding:0;font-size:1.6rem}.icon-button.subtle{width:36px;height:36px;color:var(--text-secondary);margin-left:auto;font-size:1rem}.icon-button svg{stroke:currentColor;stroke-width:2px;fill:none;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.auth-user{align-items:center;min-height:42px;display:inline-flex}.view-as-pill{background:color-mix(in srgb, var(--accent) 14%, var(--surface));border:1px solid var(--border);color:var(--primary);border-radius:999px;align-items:center;padding:.45rem .8rem;font-weight:500;display:inline-flex}.view-as-banner{z-index:12;background:color-mix(in srgb, var(--neutral) 18%, var(--surface));border:1px solid var(--border);width:fit-content;max-width:calc(100vw - 32px);box-shadow:var(--shadow);border-radius:999px;justify-content:center;align-items:center;gap:12px;margin:0 auto 14px;padding:12px 16px;display:flex;position:sticky;top:10px}.layout{grid-template-columns:max-content minmax(0,1fr);grid-template-areas:"summary summary""controls income""expenses expenses";gap:18px;margin-top:18px;display:grid}.summary-panel{grid-area:summary}.controls-panel{grid-area:controls;width:fit-content}.income-panel{grid-area:income;align-self:start}.expenses-panel{grid-area:expenses}.top-panels{display:contents}.panel{border-radius:28px;padding:22px}.panel-header{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.summary-grid{grid-template-columns:repeat(4,minmax(220px,1fr));gap:14px;display:grid}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:18px}.summary-card strong{margin-top:10px;font-size:1.2rem;font-weight:700;display:block}.summary-card.balance{background:color-mix(in srgb, var(--income) 10%, var(--surface))}.summary-card.balance.negative{background:color-mix(in srgb, var(--expense) 12%, var(--surface))}.summary-card.overall{background:linear-gradient(135deg, color-mix(in srgb, var(--surface) 92%, var(--accent)), var(--surface))}.summary-clickable{cursor:pointer}.summary-category-list{border-top:1px dashed var(--border);gap:8px;margin-top:12px;padding-top:12px;display:grid}.summary-category-row{border-bottom:1px dashed var(--border);justify-content:space-between;gap:12px;padding-bottom:8px;display:flex}.summary-category-row:last-child{border-bottom:0;padding-bottom:0}.period-button,.column-sort,.expense-item-button{color:inherit}.period-button{text-align:left;background:0 0;border:0;margin-top:8px;padding:0;font-size:1.1rem;font-weight:700}.month-picker,.entry-form label,.view-as-body,.view-as-field{gap:8px;display:grid}.control-group+.control-group{margin-top:14px}.toggle{background:var(--surface);border:1px solid var(--border);border-radius:16px;align-items:center;gap:10px;padding:12px 14px;display:inline-flex}.checkbox-item{min-width:170px}.expense-category-panel{margin-bottom:14px}.column-sort{text-align:left;background:0 0;border:0;width:100%;padding:0;font-weight:500}.column-sort.active{color:var(--accent);text-underline-offset:.18em;text-decoration:underline}.income-list,.expense-table-wrap{overflow:auto}.income-table,.expense-table{border-collapse:collapse;width:100%}.income-table th,.income-table td,.expense-table th,.expense-table td{border:1px solid var(--border);vertical-align:top;padding:11px 12px}.income-table thead th,.expense-table thead th{background:color-mix(in srgb, var(--accent) 10%, var(--surface));z-index:1;position:sticky;top:0}.expense-table th:first-child,.expense-table td:first-child{z-index:1;position:sticky;left:0}.expense-table thead th:first-child,.expense-table tfoot th:first-child,.date-cell{background:color-mix(in srgb, var(--neutral) 10%, var(--surface))}.expense-table tfoot th{background:var(--primary);color:var(--bg)}.date-cell{text-align:left;min-width:155px}.expense-table td{background:var(--surface);min-width:210px}.amount-cell{text-align:right;white-space:nowrap;font-weight:700}.expense-items{gap:8px;display:grid}.expense-item{border-bottom:1px dashed var(--border);justify-content:space-between;gap:12px;padding-bottom:8px;display:flex}.expense-item:last-child{border-bottom:0;padding-bottom:0}.expense-item-button{text-align:left;background:0 0;border:0;justify-content:space-between;gap:12px;width:100%;padding:0;display:flex}.expense-item-button:hover{color:var(--expense);transform:none}.expense-item strong{white-space:nowrap}.clickable-row{cursor:pointer}.clickable-row:hover td{background:color-mix(in srgb, var(--accent) 8%, var(--surface))}.empty-state{padding:18px}.modal-backdrop{z-index:20;background:#171b1f6b;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal-card{border-radius:28px;width:min(560px,100%);padding:24px}.view-as-card{width:min(520px,100%)}.modal-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.entry-form{gap:14px;display:grid}.month-picker input,.entry-form input,.entry-form select,.view-as-field select{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-primary);border-radius:16px;padding:.9rem 1rem}.admin-meta{align-items:flex-end}.admin-account-picker{min-width:280px}.admin-account-picker span{color:var(--text-secondary);font-size:.82rem}#delete-entry-button{margin-right:auto}button:disabled{opacity:.55;cursor:not-allowed;transform:none}.hidden{display:none!important}@media (width<=1100px){.layout{grid-template-columns:1fr;grid-template-areas:"summary""controls""income""expenses"}.controls-panel,.income-panel{width:100%}.summary-grid,.segmented{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.landing-page{width:min(100vw - 16px,100%);padding:16px 0 120px}.landing-copy,.topbar,.panel{border-radius:24px;padding:20px 18px}.brand-logo{width:min(240px,72vw)}.landing-signature{flex-direction:column;gap:8px}.cookie-panel{width:auto;bottom:8px;left:8px;right:8px}.cookie-actions{justify-content:stretch}.cookie-actions>*{flex:100%}.app-shell{width:min(100vw - 16px,100%);padding-top:8px}.topbar{flex-direction:column}.topbar-actions{flex-direction:column;width:100%}.topbar-actions>*{width:100%}.summary-grid,.segmented{grid-template-columns:1fr}.checkbox-grid{flex-direction:column}.checkbox-item{width:100%;min-width:0}.expense-table td{min-width:180px}.modal-backdrop{align-items:end;padding:0}.modal-card{border-radius:24px 24px 0 0;width:100%;min-height:100dvh;padding:20px 16px 28px}}.auth-page,.onboarding-page,.loading-page,.privacy-page{place-items:center;width:min(980px,100vw - 32px);min-height:100vh;margin:0 auto;padding:40px 0 80px;display:grid}.privacy-page{width:100%;max-width:none;padding:40px 32px 110px;display:block}.auth-card,.onboarding-card,.loading-card,.privacy-card{background:var(--surface);border:1px solid var(--border);width:min(640px,100%);box-shadow:var(--shadow);border-radius:32px;padding:32px}.privacy-card{width:min(1120px,100%);box-shadow:none;background:0 0;border:0;border-radius:0;gap:22px;margin:0 auto;padding:0;display:grid}.privacy-hero{gap:10px;display:grid}.privacy-hero h1{color:var(--primary);margin:0;font-family:Marcellus,serif}.privacy-hero p{color:var(--text-secondary);margin:0}.privacy-sections{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:32px;gap:0;display:grid;overflow:hidden}.privacy-section{background:var(--surface);border-top:1px solid #d7d1c5b3;padding:24px 28px}.privacy-section:first-child{border-top:0}.privacy-section h2{color:var(--primary);margin:0 0 12px;font-family:Marcellus,serif;font-size:1.2rem}.privacy-section p,.privacy-section li{color:var(--text-secondary);line-height:1.7}.privacy-section p{margin:0 0 12px}.privacy-section p:last-child{margin-bottom:0}.privacy-section ul{gap:6px;margin:0 0 12px;padding-left:1.2rem;display:grid}.privacy-actions{justify-content:flex-start;display:flex}.site-footer{z-index:25;justify-content:flex-end;padding:0 24px;display:flex;position:fixed;bottom:16px;left:0;right:0}.footer-link{border:1px solid var(--border);color:var(--primary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;border-radius:999px;padding:.85rem 1.2rem;box-shadow:0 18px 42px #1f293324}.auth-copy,.onboarding-copy,.auth-form,.onboarding-form{gap:14px;display:grid}.auth-copy h1,.onboarding-copy h1,.loading-card h1{color:var(--primary);margin:0;font-family:Marcellus,serif}.auth-copy p,.onboarding-copy p,.loading-card p,.auth-form span,.onboarding-form span,.onboarding-form small{color:var(--text-secondary);margin:0}.auth-provider-list{gap:12px;margin:22px 0;display:grid}.provider-button{border:1px solid var(--border);background:var(--surface);border-radius:22px;justify-content:center;align-items:center;gap:14px;width:100%;min-height:64px;font-size:1.02rem;font-weight:500;display:flex;position:relative}.provider-button span{line-height:1.2}.provider-logo{object-fit:contain;flex:none;width:24px;height:24px}.auth-form{gap:16px}.auth-field{gap:8px;display:grid}.auth-field span{color:var(--primary);font-size:.96rem}.auth-help{color:var(--text-secondary);font-size:.88rem;line-height:1.45}.auth-field input{border:1px solid color-mix(in srgb, var(--border) 92%, var(--accent));background:color-mix(in srgb, var(--surface) 92%, #f8f4ec);width:100%;min-height:56px;color:var(--text-primary);border-radius:18px;padding:.9rem 1rem;font-size:1rem;transition:border-color .14s,box-shadow .14s,background .14s}.auth-field input::placeholder{color:color-mix(in srgb, var(--text-secondary) 82%, white)}.auth-field input:focus{border-color:var(--accent);background:var(--surface);outline:none;box-shadow:0 0 0 4px #5c7fa31f}.auth-submit{justify-content:center;width:100%;min-height:56px}.auth-divider{color:var(--text-secondary);align-items:center;gap:12px;margin:18px 0;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-footer{justify-content:space-between;gap:12px;margin-top:18px;display:flex}.auth-feedback{color:var(--expense);margin-top:12px}.auth-account{background:color-mix(in srgb, var(--accent) 14%, var(--surface));border:1px solid var(--border);border-radius:999px;align-items:center;padding:.45rem .8rem;display:inline-flex}.category-builder{border:1px solid var(--border);background:linear-gradient(#fffffffa,#f8f4eceb);border-radius:24px;gap:14px;padding:18px;display:grid}.category-builder-head{justify-content:space-between;align-items:start;gap:16px;display:flex}.category-builder-head strong{color:var(--primary);font-size:1rem;display:block}.category-builder-head p{color:var(--text-secondary);margin-top:6px}.category-entry-row{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.category-entry-row input{border:1px solid color-mix(in srgb, var(--border) 92%, var(--accent));background:var(--surface);border-radius:16px;width:100%;min-height:52px;padding:.85rem 1rem}.category-chip-grid{flex-wrap:wrap;gap:10px;display:flex}.category-chip{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--border));background:color-mix(in srgb, var(--surface) 84%, #eef3f8);color:var(--primary);border-radius:18px;align-items:center;gap:10px;padding:.8rem 1rem;display:inline-flex;box-shadow:0 10px 20px #1f29330f}.category-chip strong{color:var(--accent);font-size:1rem;line-height:1}textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-primary);resize:vertical;border-radius:16px;min-height:120px;padding:.9rem 1rem}@media (width<=720px){.auth-page,.onboarding-page,.loading-page,.privacy-page{width:min(100vw - 16px,100%);padding:16px 0 32px}.privacy-page{width:100%;padding:16px 16px 96px}.auth-card,.onboarding-card,.loading-card,.privacy-card{border-radius:24px;padding:20px 18px}.auth-footer{flex-direction:column}.category-entry-row{grid-template-columns:1fr}.site-footer{justify-content:stretch;padding:0 12px}.footer-link{justify-content:center;width:100%}}
