.app-shell{background:var(--color-background);color:var(--color-ink)}.app-shell .mobile-nav{background:var(--color-surface)}.appearance-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;display:grid}.appearance-option{border:1px solid var(--color-border);background:var(--color-surface);min-width:0;min-height:6.3rem;color:var(--color-ink);cursor:pointer;border-radius:7px;align-content:center;justify-items:start;gap:.7rem;padding:.85rem;display:grid}.appearance-option:hover{border-color:var(--color-accent)}.appearance-option:has(input:focus-visible){border-color:var(--color-accent)}.appearance-option.selected{border-color:var(--color-accent);background:var(--color-accent-wash);box-shadow:inset 0 0 0 1px var(--color-accent)}.appearance-option input{width:1.1rem;height:1.1rem;accent-color:var(--color-accent);margin:0}.appearance-swatch{border:1px solid var(--color-border);border-radius:4px;grid-template-columns:repeat(3,1fr);width:100%;height:1.2rem;display:grid;overflow:hidden}.appearance-swatch span{min-width:0}.appearance-label{font-size:.82rem;font-weight:750}@media (width<=640px){.appearance-options{grid-template-columns:repeat(2,minmax(0,1fr))}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-background:#eef2f0;--color-surface:#fff;--color-surface-soft:#f6f8f7;--color-ink:#1e2925;--color-muted:#636f69;--color-border:#d8e1dc;--color-accent:#176b52;--color-accent-strong:#0e513e;--color-accent-wash:#e2f0e9;--color-warm:#9b5a2e;--color-danger:#a33e36;--color-neutral-cell:#d7dce4;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--shadow-soft:0 12px 30px #1c302812}.app-shell[data-theme=forest]{--color-background:#edf1ec;--color-surface:#fff;--color-surface-soft:#f4f7f2;--color-ink:#202920;--color-muted:#667064;--color-border:#d6dfd2;--color-accent:#3f6f4d;--color-accent-strong:#2c5638;--color-accent-wash:#e1eee4;--color-warm:#9a5f32;--color-danger:#a13f3a}.app-shell[data-theme=harbor]{--color-background:#edf1f3;--color-surface:#fff;--color-surface-soft:#f4f7f8;--color-ink:#20282d;--color-muted:#616d75;--color-border:#d5dee2;--color-accent:#176b78;--color-accent-strong:#0f515c;--color-accent-wash:#dfeef0;--color-warm:#a25735;--color-danger:#a33e46}.app-shell[data-theme=sunrise]{--color-background:#f2f0ed;--color-surface:#fff;--color-surface-soft:#f8f6f2;--color-ink:#2d2825;--color-muted:#756a64;--color-border:#e1d9d2;--color-accent:#9a4f3c;--color-accent-strong:#74382a;--color-accent-wash:#f3e5df;--color-warm:#99601e;--color-danger:#a23131}*{box-sizing:border-box}html{background:var(--color-background);min-width:320px}body{background:var(--color-background);min-width:320px;min-height:100vh;color:var(--color-ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app-shell{min-height:100vh}.app-header{border-bottom:1px solid var(--color-border);align-items:center;gap:2rem;width:min(100% - 3rem,78rem);min-height:4.75rem;margin:0 auto;display:flex}.brand{color:var(--color-ink);align-items:center;gap:.65rem;font-size:1.05rem;font-weight:750;text-decoration:none;display:inline-flex}.brand-mark{background:var(--color-accent);color:#fff;letter-spacing:.03em;border-radius:7px;place-items:center;width:2rem;height:2rem;font-size:.68rem;display:grid}.desktop-nav{align-items:stretch;gap:.2rem;height:4.75rem;display:flex}.desktop-nav a,.settings-link{color:var(--color-muted);border-bottom:2px solid #0000;align-items:center;gap:.45rem;font-size:.9rem;font-weight:650;text-decoration:none;display:inline-flex}.desktop-nav a{padding:0 .8rem}.desktop-nav a:hover,.desktop-nav a.active,.settings-link:hover,.settings-link.active{border-color:var(--color-accent);color:var(--color-accent-strong)}.settings-link{margin-left:auto;padding:.5rem 0}.app-main{width:min(100% - 3rem,78rem);margin:0 auto;padding:3.5rem 0 5rem}.page-content{max-width:67rem;margin:0 auto}.page-heading{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem;display:flex}.eyebrow{color:var(--color-warm);letter-spacing:.09em;text-transform:uppercase;margin:0 0 .45rem;font-size:.72rem;font-weight:800}h1,h2,h3,p{letter-spacing:0}h1{margin:0;font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.12}h2{margin:0;font-size:1.1rem;line-height:1.3}h3{margin:0;font-size:1rem}.page-mark{border:1px solid var(--color-border);background:var(--color-surface);width:2.6rem;height:2.6rem;color:var(--color-accent);border-radius:8px;place-items:center;display:grid}.foundation-notice{border-left:3px solid var(--color-accent);background:var(--color-accent-wash);max-width:46rem;padding:1.15rem 1.25rem}.foundation-notice strong{font-size:.95rem}.foundation-notice p{color:var(--color-muted);margin:.35rem 0 0;line-height:1.55}.quiet-summary{color:var(--color-muted);flex-wrap:wrap;gap:.75rem 2rem;margin-top:1.5rem;font-size:.88rem;display:flex}.page-date{color:var(--color-muted);margin:.45rem 0 0;font-size:.9rem;font-weight:650}.planning-page{gap:1.75rem;display:grid}.planning-page>.page-heading{margin-bottom:0}.planning-message{border-left:3px solid var(--color-accent);background:var(--color-accent-wash);min-height:3rem;color:var(--color-muted);align-items:center;gap:.45rem;padding:.75rem 1rem;font-size:.86rem;display:flex}.planning-message-error{border-color:var(--color-danger);color:var(--color-danger);flex-direction:column;align-items:flex-start}.planning-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:0;display:grid}.planning-metric-grid-wide{grid-template-columns:repeat(5,minmax(0,1fr))}.planning-metric{border:1px solid var(--color-border);background:var(--color-surface);min-width:0;min-height:6rem;box-shadow:var(--shadow-soft);border-radius:8px;align-content:space-between;padding:1rem;display:grid}.planning-metric dt,.planning-strip dt{color:var(--color-muted);font-size:.73rem;font-weight:750}.planning-metric dd{overflow-wrap:anywhere;margin:.5rem 0 0;font-size:clamp(1.15rem,2vw,1.55rem);font-weight:800;line-height:1.15}.planning-metric-good dd,.value-good{color:var(--color-accent-strong)}.planning-metric-danger dd,.value-danger{color:var(--color-danger)}.planning-baseline{color:var(--color-muted);flex-wrap:wrap;justify-content:space-between;gap:.75rem 2rem;margin-top:-.8rem;font-size:.82rem;display:flex}.planning-baseline strong{color:var(--color-ink)}.planning-subsection{border-top:1px solid var(--color-border);min-width:0;padding-top:1.25rem}.planning-section-heading{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.85rem;display:flex}.planning-section-heading>span{color:var(--color-muted);text-align:right;font-size:.78rem}.planning-strip{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:0;display:grid}.planning-strip-four{grid-template-columns:repeat(4,minmax(0,1fr))}.planning-strip>div{border-right:1px solid var(--color-border);min-width:0;min-height:4.5rem;padding:.85rem}.planning-strip>div:last-child{border-right:0}.planning-strip dd{overflow-wrap:anywhere;margin:.4rem 0 0;font-size:.94rem;font-weight:800}.planning-table-scroll{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;width:100%;overflow-x:auto}.planning-days-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;min-width:46rem}.planning-days-table th,.planning-days-table td{border-bottom:1px solid var(--color-border);text-align:right;white-space:nowrap;height:3.3rem;padding:.7rem .8rem;font-size:.82rem}.planning-days-table th:first-child{text-align:left}.planning-days-table thead th{height:2.75rem;color:var(--color-muted);text-transform:uppercase;font-size:.7rem}.planning-days-table tbody tr:last-child th,.planning-days-table tbody tr:last-child td{border-bottom:0}.planning-summary-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;display:grid}.coverage-list{border-top:1px solid var(--color-border)}.coverage-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;min-height:2.75rem;font-size:.84rem;display:flex}.coverage-row span{overflow-wrap:anywhere;min-width:0;color:var(--color-muted)}.coverage-row strong{font-variant-numeric:tabular-nums;flex:none}.planning-setup{gap:1rem;display:grid}.setup-tabs{border:1px solid var(--color-border);background:var(--color-surface-soft);border-radius:7px;grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,28rem);padding:.2rem;display:inline-grid}.setup-tabs button{min-height:2.4rem;color:var(--color-muted);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:.45rem .65rem;font-size:.8rem;font-weight:750}.setup-tabs button.active{background:var(--color-surface);color:var(--color-accent-strong);box-shadow:0 1px 4px #1c30281f}.setup-editor{gap:1rem;display:grid}.setup-toolbar{justify-content:space-between;align-items:center;gap:1rem;min-height:2.5rem;display:flex}.setup-record-list{border-top:1px solid var(--color-border);display:grid}.setup-record{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;min-height:3.8rem;padding:.55rem 0;display:flex}.setup-record>div:first-child{gap:.2rem;min-width:0;display:grid}.setup-record strong{overflow-wrap:anywhere;font-size:.86rem}.setup-record span{color:var(--color-muted);text-transform:capitalize;font-size:.74rem}.record-actions,.form-actions{flex:none;gap:.45rem;display:flex}.icon-button-danger,.button-danger{color:var(--color-danger)}.setup-form{border:1px solid var(--color-border);background:var(--color-surface-soft);border-radius:8px;gap:1rem;padding:1rem;display:grid}.setup-form-visible{margin-top:0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.form-grid label,.weekday-row>label:not(.check-control){min-width:0;color:var(--color-muted);gap:.35rem;font-size:.72rem;font-weight:700;display:grid}.form-grid input,.form-grid select,.weekday-row input{border:1px solid var(--color-border);background:var(--color-surface);width:100%;min-width:0;min-height:2.55rem;color:var(--color-ink);border-radius:6px;padding:.55rem .65rem}.form-span{grid-column:1/-1}.check-control{min-height:2.4rem;color:var(--color-ink);align-items:center;gap:.5rem;font-size:.8rem;font-weight:700;display:inline-flex}.check-control input{width:1.1rem;height:1.1rem;accent-color:var(--color-accent)}.weekday-editor{gap:.45rem;display:grid}.weekday-row{border-top:1px solid var(--color-border);grid-template-columns:minmax(7rem,1.2fr) repeat(3,minmax(6.5rem,1fr));align-items:end;gap:.65rem;padding:.55rem 0;display:grid}.weekday-row-delivery{grid-template-columns:minmax(7rem,1.2fr) minmax(8rem,1fr)}.weekday-toggle{align-self:center}.entry-section{border-top:1px solid var(--color-border);gap:1rem;padding-top:1.25rem;display:grid}.entry-tabs{border:1px solid var(--color-border);background:var(--color-surface-soft);border-radius:7px;grid-template-columns:repeat(3,minmax(0,1fr));padding:.22rem;display:grid}.entry-tabs button{min-height:2.7rem;color:var(--color-muted);cursor:pointer;background:0 0;border:0;border-radius:5px;font-size:.82rem;font-weight:750}.entry-tabs button.active{background:var(--color-ink);color:var(--color-surface)}.entry-form{gap:1rem;display:grid}.entry-form>.button{justify-self:start;min-width:11rem}.form-grid-four{grid-template-columns:repeat(4,minmax(0,1fr))}.hours-mode{border:1px solid var(--color-border);background:var(--color-surface-soft);border-radius:7px;align-items:center;gap:.35rem;width:fit-content;min-height:2.5rem;padding:.22rem;display:inline-flex}.hours-mode label{min-height:2rem;color:var(--color-muted);border-radius:5px;align-items:center;gap:.4rem;padding:.35rem .6rem;font-size:.75rem;font-weight:750;display:inline-flex}.hours-mode label:has(input:checked){background:var(--color-surface);color:var(--color-accent-strong)}.entry-note{color:var(--color-muted);gap:.35rem;font-size:.72rem;font-weight:700;display:grid}.entry-note textarea{resize:vertical;border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-ink);border-radius:6px;padding:.65rem}.entry-preview{color:var(--color-accent-strong);margin:-.35rem 0 0;font-size:.82rem;font-weight:800}.note-suggestions{color:var(--color-muted);align-items:center;gap:.5rem;margin-top:-.65rem;font-size:.7rem;display:flex}.note-suggestions button{border:1px solid var(--color-border);background:var(--color-surface-soft);color:var(--color-accent-strong);cursor:pointer;border-radius:5px;padding:.25rem .45rem;font-size:.72rem}.recent-entries{border-top:1px solid var(--color-border);gap:.85rem;padding-top:1.25rem;display:grid}.daily-groups{gap:.55rem;display:grid}.daily-group{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;overflow:hidden}.daily-group summary{cursor:pointer;grid-template-columns:minmax(7rem,1fr) auto minmax(13rem,auto);align-items:center;gap:1rem;min-height:3.5rem;padding:.7rem .9rem;font-size:.78rem;list-style-position:inside;display:grid}.daily-group summary::marker{color:var(--color-accent)}.daily-group summary>span:not(.daily-date){color:var(--color-muted)}.daily-group summary strong{font-variant-numeric:tabular-nums;justify-self:end;font-size:.84rem}.daily-date{font-size:.86rem;font-weight:800}.daily-entry-list{border-top:1px solid var(--color-border)}.daily-entry{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.8rem .9rem;display:grid}.daily-entry:last-child{border-bottom:0}.daily-entry-main{justify-content:space-between;align-items:center;gap:1rem;min-width:0;display:flex}.daily-entry-main>div:first-child,.entry-amount{gap:.2rem;min-width:0;display:grid}.daily-entry-main span{color:var(--color-muted);font-size:.72rem}.entry-amount{flex:none;justify-items:end}.entry-amount strong{font-size:.86rem}.status-badge{text-transform:uppercase;font-size:.64rem;font-weight:800}.status-planned{color:var(--color-warm)}.status-actual{color:var(--color-accent)}.daily-entry-actions{align-items:center;gap:.4rem;display:flex}.daily-entry-actions .button{min-height:2.2rem;padding:.45rem .6rem;font-size:.74rem}.expense-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.cashflow-period-label{color:var(--color-muted);margin-top:.3rem;font-size:.75rem;display:block}.cashflow-controls{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem;display:flex}.cashflow-controls label{color:var(--color-muted);gap:.3rem;font-size:.7rem;font-weight:700;display:grid}.cashflow-controls input{border:1px solid var(--color-border);background:var(--color-surface);min-height:2.55rem;color:var(--color-ink);border-radius:6px;padding:.5rem .65rem}.cashflow-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.cashflow-columns>section{min-width:0}.cashflow-columns h3{margin-bottom:.6rem}.cashflow-columns .planning-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.cashflow-columns .planning-strip>div:nth-child(2){border-right:0}.cashflow-columns .planning-strip>div:nth-child(-n+2){border-bottom:1px solid var(--color-border)}.cashflow-result{border:1px solid var(--color-border);border-top:0;justify-content:space-between;gap:1rem;margin:0;padding:.75rem .85rem;font-size:.8rem;display:flex}.expense-records{border-top:1px solid var(--color-border);display:grid}.expense-record{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:1rem;min-height:4rem;padding:.7rem 0;display:grid}.expense-record>div:first-child,.expense-record-value{gap:.2rem;min-width:0;display:grid}.expense-record>div:first-child span{color:var(--color-muted);overflow-wrap:anywhere;font-size:.74rem}.expense-record-value{font-variant-numeric:tabular-nums;justify-items:end}.expense-category-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.7rem;max-width:32rem;display:grid}.expense-category-form label{color:var(--color-muted);gap:.35rem;font-size:.72rem;font-weight:700;display:grid}.expense-category-form input{border:1px solid var(--color-border);background:var(--color-surface);min-height:2.55rem;color:var(--color-ink);border-radius:6px;padding:.55rem .65rem}.expense-category-list{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.expense-category-list>div{border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;align-items:center;gap:.25rem;min-height:2.4rem;padding-left:.7rem;font-size:.78rem;font-weight:700;display:inline-flex}.paycheck-section{gap:1rem;display:grid}.paycheck-shifts{border:1px solid var(--color-border);border-radius:6px;gap:0;margin:0;padding:.75rem;display:grid}.paycheck-shifts legend{color:var(--color-muted);padding:0 .35rem;font-size:.72rem;font-weight:750}.paycheck-shifts label{border-bottom:1px solid var(--color-border);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;min-height:2.4rem;font-size:.78rem;display:grid}.paycheck-shifts label:last-child{border-bottom:0}.paycheck-shifts p{color:var(--color-muted);margin:.25rem;font-size:.78rem}.paycheck-preview{color:var(--color-muted);flex-wrap:wrap;gap:.6rem 1.5rem;font-size:.78rem;display:flex}.paycheck-preview strong{color:var(--color-ink);margin-left:.25rem}.progress-overview{gap:.85rem;display:grid}.contribution-section,.contribution-summary{gap:1.25rem;min-width:0;display:grid}.progress-scope{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:.25rem;display:flex}.progress-scope button{min-height:2.75rem;color:var(--color-muted);cursor:pointer;overflow-wrap:anywhere;background:0 0;border:0;border-bottom:3px solid #0000;max-width:100%;padding:.65rem 1rem;font-size:.85rem;font-weight:700}.progress-scope button[aria-selected=true]{border-bottom-color:var(--color-accent);color:var(--color-accent-strong)}.contribution-table-wrap{min-width:0;overflow-x:auto}.contribution-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.contribution-table th,.contribution-table td{border-bottom:1px solid var(--color-border);text-align:right;padding:.7rem .75rem;font-size:.82rem}.contribution-table th:first-child{text-align:left;overflow-wrap:anywhere;padding-left:0}.contribution-table th:last-child,.contribution-table td:last-child{padding-right:0}.contribution-table thead th{color:var(--color-muted);font-size:.72rem}.contribution-table small{color:var(--color-muted);text-transform:capitalize;margin-top:.2rem;font-size:.7rem;font-weight:400;display:block}.contribution-sources{margin-top:1rem}.contribution-comparison{border-top:1px solid var(--color-border);padding-top:1rem}.contribution-shares{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:.75rem 1.5rem;display:grid}.contribution-share-label{justify-content:space-between;align-items:baseline;gap:.75rem;font-size:.8rem;display:flex}.contribution-share-label strong{overflow-wrap:anywhere;min-width:0}.contribution-share-label span{font-variant-numeric:tabular-nums;flex-shrink:0}.contribution-share-label b{color:var(--color-accent-strong);margin-left:.7rem;display:inline-block}.contribution-share-track{background:var(--color-border);height:.35rem;margin-top:.5rem}.contribution-share-track span{background:var(--color-accent);height:100%;display:block}.contribution-caption,.contribution-empty{color:var(--color-muted);margin:.8rem 0 0;font-size:.76rem;line-height:1.5}@media (width<=640px){.expense-summary{grid-template-columns:1fr}.cashflow-controls{flex-direction:column;align-items:stretch}.cashflow-controls .progress-tabs{width:100%}.cashflow-columns{grid-template-columns:1fr}.expense-summary .planning-metric{min-height:4.7rem}.expense-record{grid-template-columns:minmax(0,1fr) auto;gap:.65rem}.expense-record .record-actions{grid-column:1/-1;justify-content:flex-end}.expense-category-form{grid-template-columns:1fr}.contribution-table th,.contribution-table td{padding:.7rem .3rem;font-size:.72rem}.contribution-table thead th{font-size:.65rem}.contribution-section .planning-section-heading{flex-direction:column;gap:.3rem}.contribution-section .planning-section-heading>span{text-align:left}.progress-scope button{flex:auto}}.progress-work-equivalent{color:var(--color-muted);flex-wrap:wrap;align-items:baseline;gap:.35rem 1.25rem;font-size:.76rem;display:flex}.progress-work-equivalent strong{color:var(--color-ink);font-size:.8rem}.month-progress{gap:.9rem;display:grid}.month-toolbar{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.month-toolbar .eyebrow{margin-bottom:.25rem}.month-actions{gap:.4rem;display:flex}.month-actions .icon-button:disabled{cursor:not-allowed;opacity:.35}.month-progress-table .future-day-row{color:var(--color-muted)}.month-progress-table .current-day-row{background:var(--color-accent-wash)}.progress-views{gap:1rem;display:grid}.progress-tabs,.graph-mode{border:1px solid var(--color-border);background:var(--color-surface-soft);border-radius:7px;grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,24rem);padding:.2rem;display:inline-grid}.progress-tabs button,.graph-mode button{min-height:2.4rem;color:var(--color-muted);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:.45rem .65rem;font-size:.78rem;font-weight:750}.progress-tabs button.active,.graph-mode button.active{background:var(--color-surface);color:var(--color-accent-strong);box-shadow:0 1px 4px #1c30281f}.progress-tabpanel{min-width:0}.progress-tabpanel>.planning-subsection{border-top:0;padding-top:0}.progress-insight{gap:.9rem;min-width:0;display:grid}.heatmap-legend,.graph-legend{color:var(--color-muted);flex-wrap:wrap;gap:.5rem 1rem;font-size:.7rem;display:flex}.heatmap-legend span,.graph-legend span{align-items:center;gap:.35rem;display:inline-flex}.heatmap-legend i,.graph-legend i{background:var(--legend-color);border-radius:2px;width:.72rem;height:.72rem;display:inline-block}.legend-purple{--legend-color:#7c3aed}.legend-red{--legend-color:#d92d20}.legend-yellow{--legend-color:#facc15}.legend-green{--legend-color:#188a5a}.legend-dark-green{--legend-color:#0b5d3b}.legend-future{--legend-color:var(--color-neutral-cell)}.year-heatmap-scroll{scrollbar-color:var(--color-muted) transparent;max-width:100%;padding:.3rem 0 .75rem;overflow-x:auto}.heatmap-month-row{grid-template-columns:repeat(var(--week-count), 1.42rem);gap:.2rem;width:max-content;min-height:1.1rem;margin-left:2.65rem;display:grid}.heatmap-month-row span{color:var(--color-muted);white-space:nowrap;font-size:.62rem;font-weight:750;overflow:visible}.heatmap-body{gap:.45rem;width:max-content;display:flex}.heatmap-weekdays{z-index:2;background:var(--color-background);box-shadow:.35rem 0 0 var(--color-background);color:var(--color-muted);flex:0 0 2.2rem;grid-template-rows:repeat(7,1.05rem);align-items:center;gap:.2rem;padding-right:.2rem;font-size:.58rem;font-weight:750;display:grid;position:sticky;left:0}.heatmap-weeks{gap:.2rem;display:flex}.heatmap-week-column{border:1px solid color-mix(in srgb, var(--week-color) 38%, var(--color-border));background:color-mix(in srgb, var(--week-color) 9%, transparent);border-radius:4px;grid-template-rows:repeat(7,1.05rem);gap:.2rem;padding:.16rem;display:grid}.heatmap-cell,.heatmap-placeholder{border-radius:3px;width:1.05rem;height:1.05rem}.heatmap-cell{border:1px solid color-mix(in srgb, var(--cell-color) 82%, #0000);background:var(--cell-color);cursor:pointer;padding:0}.heatmap-cell.has-plan{box-shadow:inset 0 0 0 2px #ffffffb8}.heatmap-cell:hover{transform:translateY(-1px)}.heatmap-cell:focus-visible,.heatmap-cell.selected{outline:2px solid var(--color-ink);outline-offset:2px}.heatmap-placeholder{display:block}.progress-day-detail{border-top:1px solid var(--color-border);gap:.9rem;padding-top:1rem;display:grid}.progress-day-facts{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;grid-template-columns:repeat(6,minmax(0,1fr));margin:0;display:grid}.progress-day-facts>div{border-right:1px solid var(--color-border);min-width:0;padding:.75rem}.progress-day-facts>div:last-child{border-right:0}.progress-day-facts dt,.progress-context-block dt{color:var(--color-muted);font-size:.66rem;font-weight:750}.progress-day-facts dd,.progress-context-block dd{overflow-wrap:anywhere;margin:.35rem 0 0;font-size:.82rem;font-weight:800}.progress-context-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.progress-context-block h4{margin:0 0 .55rem;font-size:.8rem}.progress-context-block dl{border-top:1px solid var(--color-border);grid-template-columns:repeat(5,minmax(0,1fr));margin:0;display:grid}.progress-context-block dl>div{min-width:0;padding:.6rem .45rem .3rem 0}.graph-toolbar{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.graph-toolbar>div:first-child{gap:.25rem;display:grid}.graph-toolbar>div:first-child span{color:var(--color-muted);font-size:.72rem}.graph-controls{align-items:center;gap:.45rem;display:flex}.graph-mode{grid-template-columns:repeat(2,minmax(0,1fr));width:12rem}.graph-zoom-label{min-width:4.8rem;color:var(--color-muted);text-align:center;font-size:.7rem;font-weight:750}.legend-actual{--legend-color:var(--color-accent)}.legend-planned{--legend-color:#74b899;opacity:.55}.legend-adaptive-line{--legend-color:#7c3aed;border-radius:1px!important;height:.18rem!important}.legend-baseline-line{--legend-color:#b7791f;border-radius:1px!important;height:.18rem!important}.goal-graph-frame{aspect-ratio:1000/360;border:1px solid var(--color-border);background:var(--color-surface);overscroll-behavior:contain;touch-action:pan-y;border-radius:8px;width:100%;min-height:18rem}.goal-graph-svg{width:100%;height:100%;display:block}.graph-gridline line{stroke:var(--color-border);stroke-width:1px}.graph-gridline text,.graph-x-label{fill:var(--color-muted);font-size:10px}.graph-hit-area{fill:#0000;cursor:pointer}.graph-bar-actual{pointer-events:none}.graph-bar-planned{pointer-events:none;opacity:.48;stroke:currentColor;stroke-width:.4px}.graph-line{fill:none;pointer-events:none;vector-effect:non-scaling-stroke}.graph-line-baseline{stroke:#b7791f;stroke-width:1.8px;stroke-dasharray:6 5}.graph-line-adaptive{stroke:#7c3aed;stroke-width:1.25px}.history-review,.history-filters,.history-results{border-top:1px solid var(--color-border);gap:.85rem;padding-top:1.25rem;display:grid}.history-review>.planning-section-heading,.history-filters>.planning-section-heading,.history-results>.planning-section-heading{margin-bottom:0}.history-view-control{border:1px solid var(--color-border);background:var(--color-surface-soft);border-radius:7px;grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,25rem);padding:.2rem;display:inline-grid}.history-view-control button{min-height:2.4rem;color:var(--color-muted);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:.45rem .65rem;font-size:.76rem;font-weight:750}.history-view-control button.active{background:var(--color-surface);color:var(--color-accent-strong);box-shadow:0 1px 4px #1c30281f}.history-clear{min-height:2.2rem;padding:.4rem .7rem}.history-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.history-filter-grid label{min-width:0;color:var(--color-muted);gap:.35rem;font-size:.7rem;font-weight:750;display:grid}.history-filter-grid input,.history-filter-grid select{border:1px solid var(--color-border);background:var(--color-surface);width:100%;min-width:0;min-height:2.55rem;color:var(--color-ink);border-radius:6px;padding:.55rem .65rem}.history-note-filter{grid-column:span 2}.history-entry-groups{min-width:0}.settings-grid{grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr);align-items:start;gap:1rem;display:grid}.settings-section{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-soft);border-radius:8px;padding:1.4rem}.section-heading{margin-bottom:1.15rem}.section-heading p{color:var(--color-muted);margin:.4rem 0 0;font-size:.88rem;line-height:1.5}.goal-settings-form{gap:1rem;display:grid}.goal-settings-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.goal-settings-fields label{min-width:0;color:var(--color-muted);gap:.35rem;font-size:.72rem;font-weight:700;display:grid}.goal-settings-fields input{border:1px solid var(--color-border);background:var(--color-surface);width:100%;min-width:0;min-height:2.55rem;color:var(--color-ink);border-radius:6px;padding:.55rem .65rem}.settings-help{color:var(--color-muted);margin:0;font-size:.82rem;line-height:1.45}.control-row{flex-wrap:wrap;gap:.65rem;display:flex}.button{cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:.5rem;min-height:2.5rem;padding:.6rem .85rem;font-size:.86rem;font-weight:700;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.button:focus-visible,.icon-button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #176b524d}.button:disabled{cursor:not-allowed;opacity:.48}.button-primary{background:var(--color-accent);color:#fff}.button-primary:hover:not(:disabled){background:var(--color-accent-strong)}.button-secondary{border-color:var(--color-border);background:var(--color-surface);color:var(--color-ink)}.button-secondary:hover{border-color:var(--color-accent);color:var(--color-accent-strong)}.file-button{position:relative;overflow:hidden}.file-button input{opacity:0;width:1px;height:1px;position:absolute}.inline-error,.inline-success{align-items:flex-start;gap:.45rem;margin:1rem 0 0;font-size:.86rem;line-height:1.45;display:flex}.inline-error{color:var(--color-danger)}.inline-success{color:var(--color-accent-strong)}.cloud-sync-heading{align-items:flex-start}.sync-status{min-height:2rem;color:var(--color-muted);white-space:nowrap;align-items:center;gap:.45rem;font-size:.78rem;font-weight:750;display:inline-flex}.sync-status:before{background:var(--color-border);content:"";border-radius:50%;width:.5rem;height:.5rem}.sync-synced{color:var(--color-accent-strong)}.sync-synced:before{background:var(--color-accent)}.sync-connecting:before,.sync-syncing:before{background:var(--color-warm)}.sync-conflict,.sync-sync-error{color:var(--color-danger)}.sync-conflict:before,.sync-sync-error:before{background:var(--color-danger)}.cloud-connect{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.75rem;display:grid}.cloud-connect label{color:var(--color-muted);gap:.35rem;font-size:.72rem;font-weight:700;display:grid}.cloud-connect input{border:1px solid var(--color-border);background:var(--color-surface);min-height:2.55rem;color:var(--color-ink);border-radius:6px;padding:.55rem .65rem}.cloud-connected{color:var(--color-muted);justify-content:space-between;align-items:center;gap:1rem;font-size:.8rem;display:flex}.sync-conflict{border:1px solid var(--color-danger);background:var(--color-surface-soft);color:var(--color-ink);border-radius:7px;margin-top:1rem;padding:1rem}.sync-conflict p{color:var(--color-muted);font-size:.82rem}.preview-panel{border:1px solid var(--color-border);background:var(--color-surface-soft);border-radius:6px;margin-top:1.25rem;padding:1rem}.preview-heading{color:var(--color-accent);justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.preview-panel>p{color:var(--color-muted);margin:.65rem 0 1rem;font-size:.88rem}.preview-facts{margin:.9rem 0 1rem}.preview-facts dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1rem;margin:0;display:grid}.preview-facts dl>div{border-top:1px solid var(--color-border);min-width:0;padding-top:.55rem}.preview-facts dt{color:var(--color-muted);font-size:.74rem;font-weight:700}.preview-facts dd{overflow-wrap:anywhere;margin:.18rem 0 0;font-size:.86rem;font-weight:700}.preview-counts{color:var(--color-muted);gap:.25rem;margin-top:.9rem;font-size:.82rem;display:grid}.preview-counts p{margin:0}.preview-counts strong{color:var(--color-ink)}.issue-list{color:var(--color-danger);margin:0 0 1rem;padding-left:1.2rem;font-size:.82rem;line-height:1.5}.diagnostic-panel{border-left:3px solid var(--color-danger);background:var(--color-surface-soft);margin-top:1.25rem;padding:1rem}.diagnostic-panel>p{color:var(--color-muted);margin:.65rem 0 .85rem;font-size:.84rem;line-height:1.5}.recovery-list{gap:.45rem;display:grid}.recovery-row{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem 0;display:flex}.recovery-row>div{gap:.2rem;min-width:0;display:grid}.recovery-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.recovery-row span{color:var(--color-muted);font-size:.76rem}.recovery-actions{gap:.4rem;display:flex}.icon-button{border:1px solid var(--color-border);background:var(--color-surface);width:2.2rem;height:2.2rem;color:var(--color-accent);cursor:pointer;border-radius:6px;flex:none;place-items:center;display:grid}.icon-button:hover{border-color:var(--color-accent)}.empty-state{color:var(--color-muted);font-size:.88rem}.mobile-nav{display:none}.error-shell{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.error-panel{border:1px solid var(--color-border);background:var(--color-surface);width:min(100%,34rem);box-shadow:var(--shadow-soft);border-radius:8px;padding:2rem}.error-panel p:not(.eyebrow){color:var(--color-muted);line-height:1.55}.error-panel pre{background:var(--color-surface-soft);max-height:8rem;color:var(--color-danger);white-space:pre-wrap;padding:.75rem;font-size:.78rem;overflow:auto}@media (width<=760px){.app-header{gap:.75rem;width:min(100% - 2rem,78rem);min-height:4.25rem}.brand span:last-child,.desktop-nav{display:none}.settings-link{border:1px solid var(--color-border);border-radius:6px;min-height:2.5rem;padding:.5rem}.settings-link span{display:none}.app-main{width:min(100% - 2rem,78rem);padding:2.25rem 0 6.25rem}.settings-grid{grid-template-columns:1fr}.planning-metric-grid,.planning-metric-grid-wide{grid-template-columns:repeat(2,minmax(0,1fr))}.planning-metric{min-height:5.25rem}.planning-strip,.planning-strip-four{grid-template-columns:repeat(2,minmax(0,1fr))}.planning-strip>div{border-right:0;border-bottom:1px solid var(--color-border);min-height:4rem}.planning-strip>div:nth-child(odd){border-right:1px solid var(--color-border)}.planning-strip>div:last-child{border-bottom:0}.planning-summary-columns{grid-template-columns:1fr}.weekday-row{grid-template-columns:minmax(7rem,1fr) repeat(3,minmax(0,1fr))}.planning-table-scroll{background:0 0;border:0;overflow:visible}.planning-days-table{border-collapse:separate;border-spacing:0 .55rem;min-width:0}.planning-days-table thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.planning-days-table tbody,.planning-days-table tr{display:block}.planning-days-table tr{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));padding:.75rem;display:grid}.planning-days-table th,.planning-days-table td{text-align:left;white-space:normal;border:0;align-content:center;height:auto;min-height:2.6rem;padding:.35rem;display:grid}.planning-days-table th:first-child{border-bottom:1px solid var(--color-border);grid-column:1/-1;min-height:2rem;padding-bottom:.5rem}.planning-days-table td:before{content:attr(data-label);color:var(--color-muted);text-transform:uppercase;font-size:.64rem;font-weight:750}.progress-day-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-day-facts>div{border-right:0;border-bottom:1px solid var(--color-border)}.progress-day-facts>div:nth-child(odd){border-right:1px solid var(--color-border)}.progress-day-facts>div:nth-last-child(-n+2){border-bottom:0}.progress-context-grid{grid-template-columns:1fr}.graph-toolbar{flex-direction:column;align-items:stretch}.graph-controls{flex-wrap:wrap}.goal-graph-frame{aspect-ratio:auto;min-height:14rem}.history-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-nav{z-index:10;padding:.35rem .25rem calc(.35rem + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);background:#fffffff5;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 20px #1c30280f}.mobile-nav a{min-height:3.2rem;color:var(--color-muted);place-items:center;gap:.15rem;font-size:.68rem;font-weight:700;text-decoration:none;display:grid}.mobile-nav a.active{color:var(--color-accent)}}@media (width<=640px){.goal-settings-fields{grid-template-columns:1fr}}@media (width<=420px){.settings-section{padding:1rem}.preview-facts dl{grid-template-columns:1fr}.control-row{grid-template-columns:1fr;display:grid}.button{width:100%}.setup-toolbar{flex-direction:column;align-items:stretch}.setup-toolbar .button{width:100%}.form-grid{grid-template-columns:1fr}.form-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}.form-span{grid-column:auto}.form-actions{grid-template-columns:1fr;display:grid}.weekday-row,.weekday-row-delivery{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.weekday-toggle{grid-column:1/-1}.entry-form>.button{width:100%}.daily-group summary{grid-template-columns:1fr auto;gap:.35rem .75rem}.daily-group summary strong{grid-column:1/-1;justify-self:start;padding-left:1.05rem}.daily-entry{grid-template-columns:1fr}.daily-entry-actions{flex-wrap:wrap}.planning-section-heading{flex-direction:column;align-items:flex-start;gap:.25rem}.planning-section-heading>span{text-align:left}.progress-tabs{width:100%}.graph-controls{grid-template-columns:auto minmax(0,1fr) auto;display:grid}.graph-mode{grid-column:1/-1;width:100%}.graph-zoom-label{min-width:0}.history-filter-grid{grid-template-columns:1fr}.history-note-filter{grid-column:auto}.history-view-control{width:100%}.history-view-control button{padding-inline:.35rem;font-size:.7rem}}
