:root{--bg:#faf7f2;--surface:#fff;--surface-sunken:#f1ece2;--ink:#211d18;--ink-muted:#6e655a;--ink-faint:#a79c8c;--ember:#c1440e;--ember-strong:#a13a0c;--ember-soft:#f4ded0;--gold:#a8721b;--gold-soft:#f1e3c8;--moss:#2f6844;--moss-soft:#dde9e0;--brick:#b23a2e;--brick-soft:#f2ded9;--border:#211d181a;--border-strong:#211d1833;--shadow:#211d181a;--shadow-sm:0 1px 2px #211d180d;--shadow-md:0 1px 2px #211d180a, 0 10px 28px -14px #211d1847;--shadow-lg:0 4px 10px #211d180f, 0 24px 48px -20px #211d1852;--radius-sm:9px;--radius-md:13px;--radius-lg:18px;--radius-xl:24px;--tg-bg:var(--tg-theme-bg-color,var(--bg))}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#17140f;--surface:#221d16;--surface-sunken:#2b241a;--ink:#f3eee4;--ink-muted:#b6aa98;--ink-faint:#7e7364;--ember:#ff7a3d;--ember-strong:#ff9760;--ember-soft:#ff7a3d2e;--gold:#dba43f;--gold-soft:#dba43f2e;--moss:#5fb384;--moss-soft:#5fb38429;--brick:#e2685c;--brick-soft:#e2685c29;--border:#f3eee41f;--border-strong:#f3eee438;--shadow:#00000073;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 1px 2px #0000004d, 0 10px 28px -12px #0009;--shadow-lg:0 4px 10px #00000059, 0 24px 48px -18px #000000b3}}:root[data-theme=dark]{--bg:#17140f;--surface:#221d16;--surface-sunken:#2b241a;--ink:#f3eee4;--ink-muted:#b6aa98;--ink-faint:#7e7364;--ember:#ff7a3d;--ember-strong:#ff9760;--ember-soft:#ff7a3d2e;--gold:#dba43f;--gold-soft:#dba43f2e;--moss:#5fb384;--moss-soft:#5fb38429;--brick:#e2685c;--brick-soft:#e2685c29;--border:#f3eee41f;--border-strong:#f3eee438;--shadow:#00000073;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 1px 2px #0000004d, 0 10px 28px -12px #0009;--shadow-lg:0 4px 10px #00000059, 0 24px 48px -18px #000000b3}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}body{background:var(--tg-bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Golos Text,-apple-system,Segoe UI,sans-serif}h1,h2,h3{text-wrap:balance;margin:0;font-family:Unbounded,Golos Text,sans-serif}.mono{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,ui-monospace,monospace}button{font-family:inherit}.screen{background:var(--bg);min-height:100vh;padding:18px 16px 212px}.screen.center{min-height:60vh;color:var(--ink-muted);justify-content:center;align-items:center;font-size:15px;display:flex}.screen.center.error{color:var(--brick);text-align:center;padding:0 24px}.masthead{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.masthead-date{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);font-size:12px}.masthead-wordmark{color:var(--ink);align-items:center;gap:7px;margin-top:2px;font-family:Unbounded,sans-serif;font-size:15px;font-weight:700;display:flex}.masthead-avatar{object-fit:cover;border:1.5px solid var(--ember-soft);border-radius:50%;width:22px;height:22px}.streak-badge{background:var(--ember-soft);box-shadow:var(--shadow-sm);border:1px solid #0000;border-radius:999px;align-items:center;gap:7px;padding:7px 14px 7px 10px;display:flex}.streak-flame{font-size:16px;line-height:1}.streak-count{color:var(--ember-strong);font-family:Unbounded,sans-serif;font-size:15px;font-weight:700}.streak-label{color:var(--ember-strong);opacity:.85;font-size:11px}.ledger{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);margin-bottom:24px;padding:20px 20px 18px}.ledger-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.ledger-figure{flex-direction:column;gap:4px;display:flex}.ledger-figure.align-end{align-items:flex-end}button.ledger-figure{text-align:left;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}button.ledger-figure:active .ledger-value{opacity:.6}.ledger-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-size:11px}.ledger-value{color:var(--ink);letter-spacing:-.01em;font-size:24px;font-weight:600}.ledger-value.accent{color:var(--ember)}.ledger-currency{color:var(--ink-faint);margin-left:3px;font-size:13px}.ledger-track{background:var(--surface-sunken);border-radius:999px;height:8px;margin:14px 0 10px;position:relative;overflow:hidden}.ledger-track-fill{background:linear-gradient(90deg, var(--gold), var(--ember));border-radius:999px;width:0%;transition:width .5s cubic-bezier(.22,1,.36,1);position:absolute;inset:0}.ledger-footer{color:var(--ink-muted);justify-content:space-between;font-size:12px;display:flex}.ledger-footer strong{color:var(--ink);font-weight:600}.ledger-net{border-top:1px solid var(--border);gap:10px;margin-top:10px;padding-top:10px;font-family:JetBrains Mono,monospace;font-size:12px;display:flex}.net-item.income{color:var(--moss)}.net-item.expense{color:var(--brick)}.net-item.total{color:var(--ink-muted);margin-left:auto}.ledger-footer-edit{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:12px}.ledger-footer-edit strong{color:var(--ink);font-weight:600}.task-section{margin-bottom:22px}.task-section-head{align-items:baseline;gap:8px;margin-bottom:10px;padding-left:2px;display:flex}.task-section-rate{color:var(--moss);font-size:11px}.task-section-title{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-muted);font-size:12px;font-weight:600}.task-section-count{color:var(--ink-faint);margin-left:auto;font-family:JetBrains Mono,monospace;font-size:11px}.task-section--frog .task-section-title{color:var(--ember-strong)}.task-section--focus .task-section-title{color:var(--gold)}.task-tile-wrap{margin-bottom:7px}.task-tile{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);align-items:flex-start;gap:11px;padding:13px 14px;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.task-tile-wrap.expanded .task-tile{border-radius:var(--radius-md) var(--radius-md) 0 0;border-bottom:none}.task-tile-check{cursor:pointer;flex:1;align-items:flex-start;gap:11px;min-width:0;display:flex}.task-tile-check input[type=checkbox]{margin-top:1px}.outcome-toggle,.task-notes-toggle{margin-top:2px}.task-section--frog .task-tile{border-left-color:var(--ember)}.task-section--focus .task-tile{border-left-color:var(--gold)}.task-tile.done{background:var(--surface-sunken);box-shadow:none}.task-tile input[type=checkbox]{appearance:none;border:2px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:9px;place-content:center;width:30px;min-width:30px;height:30px;display:grid}.task-tile input[type=checkbox]:after{content:"";background:var(--ember);border-radius:5px;width:16px;height:16px;transition:transform .15s cubic-bezier(.34,1.56,.64,1);transform:scale(0)}.task-tile input[type=checkbox]:checked:after{transform:scale(1)}.task-tile span:first-of-type{cursor:text;flex:1;font-size:14.5px;line-height:1.35}.task-tile.done span:first-of-type{color:var(--ink-faint);text-decoration:line-through}.outcome-toggle{gap:6px;margin-top:1px;display:flex}.outcome-btn{background:var(--surface-sunken);width:32px;height:32px;color:var(--ink-faint);cursor:pointer;border:none;border-radius:10px;font-size:16px;font-weight:700;line-height:1;transition:background .15s,color .15s,transform .1s}.outcome-btn:active{transform:scale(.9)}.outcome-btn.success.active{background:var(--moss);color:#eefaf1;box-shadow:0 2px 6px -1px color-mix(in srgb, var(--moss) 60%, transparent)}.outcome-btn.fail.active{background:var(--brick);color:#fdecea;box-shadow:0 2px 6px -1px color-mix(in srgb, var(--brick) 60%, transparent)}.task-notes-toggle{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;width:32px;height:32px;padding:0;font-size:18px;line-height:1}.task-notes-toggle.has-notes{color:var(--ember)}.task-notes{background:var(--surface-sunken);border:1px solid var(--border);border-radius:0 0 var(--radius-md) var(--radius-md);box-shadow:var(--shadow-sm);border-top:none;flex-direction:column;gap:10px;padding:12px 14px 14px;display:flex}.task-title-edit{border:none;border-bottom:1.5px solid var(--ember);min-width:0;color:var(--ink);resize:none;background:0 0;outline:none;flex:1;padding:0 0 2px;font-family:inherit;font-size:14.5px;line-height:1.35;overflow:hidden}.task-delete{color:var(--brick);cursor:pointer;opacity:.75;background:0 0;border:none;margin-top:1px;padding:2px 4px;font-size:13px}.task-delete:hover{opacity:1}.task-notes label{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-size:11px;font-weight:600;display:block}.task-notes textarea{border:1px solid var(--border-strong);background:var(--surface);width:100%;color:var(--ink);resize:none;border-radius:8px;margin-top:6px;padding:9px 11px;font-family:Golos Text,sans-serif;font-size:13.5px;line-height:1.4;display:block;overflow:hidden}.progress-label{margin-top:2px}.progress-input{align-items:center;gap:8px;margin-top:6px;display:flex}.progress-input input{border:1px solid var(--border-strong);background:var(--surface);width:80px;color:var(--ink);border-radius:8px;padding:9px 11px;font-family:JetBrains Mono,monospace;font-size:14px}.progress-input span{color:var(--ink-faint);font-size:13px}.add-task{align-items:flex-end;gap:8px;margin-top:4px;display:flex}.add-task button{margin-bottom:1px}.add-task textarea{border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);resize:none;flex:1;max-height:140px;padding:11px 13px;font-family:inherit;font-size:14px;line-height:1.4;transition:box-shadow .15s,border-color .15s;overflow:hidden}.add-task textarea:focus{border-color:var(--ember);box-shadow:0 0 0 3px var(--ember-soft);outline:none}.add-task textarea::placeholder{color:var(--ink-faint)}.add-task button{border-radius:var(--radius-md);background:var(--ink);width:40px;height:40px;color:var(--bg);cursor:pointer;box-shadow:var(--shadow-sm);border:none;font-size:18px;line-height:1;transition:transform .1s}.add-task button:active{transform:scale(.92)}.bottom-actions{z-index:5;background:var(--bg);box-shadow:0 -8px 24px -12px var(--shadow);flex-direction:column;gap:8px;padding:14px 16px 10px;display:flex;position:fixed;bottom:78px;left:0;right:0}.bottom-actions-row{gap:10px;display:flex}button.secondary.income{color:var(--moss)}button.secondary.expense{color:var(--brick)}button.primary,button.secondary{border-radius:var(--radius-md);cursor:pointer;border:none;flex:1;padding:13px;font-size:14.5px;font-weight:600;transition:transform .1s,box-shadow .15s}button.primary:active,button.secondary:active{transform:scale(.98)}button.primary{background:var(--ink);color:var(--bg);box-shadow:var(--shadow-md)}button.secondary{background:var(--surface);color:var(--ink);border:1px solid var(--border-strong);box-shadow:var(--shadow-sm)}.tab-bar{height:78px;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:var(--surface);box-shadow:0 -8px 24px -12px var(--shadow);gap:6px;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-bar button{border-radius:var(--radius-md);color:var(--ink-faint);cursor:pointer;background:0 0;border:none;flex:1;font-size:14.5px;font-weight:600}.tab-bar button.active{color:var(--ember);background:var(--ember-soft);font-weight:700}.tab-bar button:active{transform:scale(.96)}.onboarding{flex-direction:column;justify-content:center;gap:28px;min-height:100vh;padding-bottom:40px;display:flex}.onboarding-mark{letter-spacing:.1em;text-transform:uppercase;color:var(--ember);align-items:center;gap:8px;margin-bottom:10px;font-family:Unbounded,sans-serif;font-size:12px;font-weight:700;display:flex}.onboarding-avatar{object-fit:cover;border:1.5px solid var(--ember);border-radius:50%;width:28px;height:28px}.onboarding h1{margin-bottom:8px;font-size:34px;line-height:1.1}.onboarding p.lede{color:var(--ink-muted);margin:0;font-size:15px}.onboarding label{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);font-size:12px;font-weight:600;display:block}.onboarding input,.onboarding select{border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface);width:100%;color:var(--ink);box-shadow:var(--shadow-sm);margin-top:8px;padding:14px 15px;font-family:JetBrains Mono,monospace;font-size:16px;transition:box-shadow .15s,border-color .15s;display:block}.onboarding input:focus,.onboarding select:focus{border-color:var(--ember);box-shadow:0 0 0 3px var(--ember-soft);outline:none}.onboarding select{font-family:Golos Text,sans-serif}.onboarding button[type=submit]{border-radius:var(--radius-md);background:var(--ember);color:#fff8f2;cursor:pointer;box-shadow:var(--shadow-md);border:none;padding:16px;font-size:15px;font-weight:700;transition:transform .1s}.onboarding button[type=submit]:active{transform:scale(.98)}.onboarding .error{color:var(--brick);margin:-10px 0 0;font-size:13px}.muted{color:var(--ink-faint);font-size:13.5px}.range-toggle{background:var(--surface-sunken);border-radius:11px;margin-bottom:20px;padding:3px;display:inline-flex}.range-toggle button{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 18px;font-size:13px;font-weight:600}.range-toggle button.primary{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:18px;padding:18px 18px 16px}.donut-row{align-items:center;gap:22px;display:flex}.donut-wrap{flex-shrink:0;width:128px;height:128px;position:relative}.donut-center{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.donut-value{color:var(--ink);font-family:Unbounded,sans-serif;font-size:22px;font-weight:700}.donut-caption{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-top:2px;font-size:10px}.donut-earned{color:var(--ember);margin-top:4px;font-size:11px}.donut-legend{flex-direction:column;flex:1;gap:10px;display:flex}.donut-legend-row{color:var(--ink);align-items:center;gap:8px;font-size:13px;display:flex}.donut-legend-row.muted-row{color:var(--ink-faint)}.donut-legend-row strong{margin-left:auto;font-weight:600}.donut-legend-row.earned-row{border-top:1px solid var(--border);color:var(--ember);margin-top:2px;padding-top:8px}.dot.earned{background:var(--ember)}.dot.gold{background:var(--gold)}.bars{border-bottom:1px solid var(--border);align-items:flex-end;gap:5px;height:130px;padding:8px 0 0;display:flex;overflow-x:auto}.bar-group{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:14px;height:100%;display:flex}.bar-pair{flex:1;justify-content:center;align-items:flex-end;gap:2px;width:100%;display:flex}.bar{border-radius:2px 2px 0 0;width:7px;min-height:2px}.bar.plan{background:var(--ink-faint);opacity:.5}.bar.fact.over{background:var(--moss)}.bar.fact.under{background:var(--brick)}.bar-label{color:var(--ink-faint);margin-top:6px;font-family:JetBrains Mono,monospace;font-size:9px}.legend{color:var(--ink-muted);gap:14px;margin-top:12px;font-size:11.5px;display:flex}.dot{border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}.dot.plan{background:var(--ink-faint)}.dot.over{background:var(--moss)}.dot.under{background:var(--brick)}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.calendar-cell{aspect-ratio:1;border-radius:7px;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:10.5px;font-weight:600;display:flex}.calendar-cell.success{background:var(--moss);color:#eefaf1}.calendar-cell.fail{background:var(--brick-soft);color:var(--brick)}section>h2,.admin-card>h2{letter-spacing:.04em;margin-bottom:12px;font-family:Unbounded,sans-serif;font-size:13px;font-weight:600}.modal-backdrop{z-index:10;background:#14100a80;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;padding:22px 20px calc(22px + env(safe-area-inset-bottom));border-top:1px solid var(--border);box-shadow:var(--shadow-lg)}.modal input:focus,.modal textarea:focus{border-color:var(--ember);box-shadow:0 0 0 3px var(--ember-soft);outline:none}.modal h2{margin-bottom:16px;font-size:17px}.modal label{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:14px;font-size:12px;font-weight:600;display:block}.modal input,.modal textarea{border:1px solid var(--border-strong);background:var(--bg);width:100%;color:var(--ink);resize:none;border-radius:10px;margin-top:7px;padding:12px 13px;font-family:Golos Text,sans-serif;font-size:15px;display:block}.modal input{font-family:JetBrains Mono,monospace}.modal-actions{gap:10px;margin-top:6px;display:flex}.ai-card h2{align-items:center;gap:6px;display:flex}.ai-text{color:var(--ink);white-space:pre-wrap;margin:0 0 12px;font-size:13.5px;line-height:1.55}.ai-plan{background:var(--surface-sunken);border-radius:var(--radius-sm);margin-bottom:12px;padding:12px 14px}.ai-mistake{background:var(--brick-soft)}.ai-mistake .ai-plan-label{color:var(--brick)}.ai-plan-label{letter-spacing:.06em;text-transform:uppercase;color:var(--gold);margin-bottom:6px;font-size:11px;font-weight:600;display:block}.ai-plan .ai-text{margin-bottom:0}.ai-timestamp{color:var(--ink-faint);margin:0 0 14px;font-size:11px}.ai-run{width:100%}.admin{padding-bottom:106px}.admin-card{flex-direction:column;gap:16px;display:flex}.admin-card label{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);font-size:12px;font-weight:600;display:block}.admin-card input,.admin-card select{border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface);width:100%;color:var(--ink);box-shadow:var(--shadow-sm);margin-top:8px;padding:12px 13px;font-family:Golos Text,sans-serif;font-size:14.5px;display:block}.admin-card input:focus,.admin-card select:focus{border-color:var(--ember);box-shadow:0 0 0 3px var(--ember-soft);outline:none}.admin-hint{color:var(--ink-faint);margin:-8px 0 0;font-size:12px;line-height:1.5}.admin-hint a{color:var(--ember)}.admin-status{border-radius:var(--radius-sm);padding:10px 12px;font-size:13px;font-weight:600}.admin-status.ok{background:var(--moss-soft);color:var(--moss)}.admin-status.off{background:var(--brick-soft);color:var(--brick)}.admin-saved{text-align:center;color:var(--moss);margin:0;font-size:12px}
