:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f6f6f7;--surface:#fff;--surface-sunken:#eeeef0;--text:#15181e;--text-muted:#6b7280;--border:#e3e4e8;--accent:#15181e;--on-accent:#fff;--danger:#b42318;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-full:999px;--touch-min:48px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--text-sm:.85rem;--text-base:1rem;--text-lg:1.05rem;--text-xl:1.5rem}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0b0e14;--surface:#151a23;--surface-sunken:#0f131a;--text:#e6e8ec;--text-muted:#9aa3af;--border:#232a36;--accent:#e6e8ec;--on-accent:#0b0e14;--danger:#f97066}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font);margin:0;font-size:16px}body{padding-top:env(safe-area-inset-top,0px)}.app{flex-direction:column;min-height:100dvh;display:flex}.content{width:100%;max-width:640px;padding:var(--space-4) var(--space-4) calc(72px + env(safe-area-inset-bottom,0px));flex:1;margin:0 auto}h1{font-size:var(--text-xl);margin:var(--space-2) 0 var(--space-4)}h2{font-size:var(--text-lg);margin:0}.muted{color:var(--text-muted)}.error{color:var(--danger);font-size:var(--text-sm);margin:var(--space-1) 0 0}.grow{flex:1;min-width:0}.row{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-4)}.card-head{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.list{margin:0;padding:0;list-style:none}.list>li{align-items:center;gap:var(--space-3);min-height:var(--touch-min);padding:var(--space-2) 0;border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.list>li.archived{opacity:.5}.swatch{border-radius:var(--radius-full);flex-shrink:0;width:12px;height:12px}button{font:inherit;min-height:40px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);color:var(--on-accent);cursor:pointer}button:disabled{opacity:.4;cursor:default}button.ghost{color:var(--text);border-color:var(--border);min-height:36px;padding:var(--space-1) var(--space-3);font-size:var(--text-sm);background:0 0}.form{gap:var(--space-2);width:100%;padding:var(--space-2) 0;flex-wrap:wrap;align-items:center;display:flex}.form input:not([type]),.form input[type=text],.form input[type=number],.form select{font:inherit;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);min-width:0;min-height:40px}.form input:not([type]){flex:180px}.form label{font-size:var(--text-sm);color:var(--text-muted);flex-direction:column;gap:2px;display:flex}.form label input{width:110px}.form input[type=color]{background:0 0;border:none;width:40px;height:40px;padding:0}.tabbar{background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0px);display:flex;position:fixed;bottom:0;left:0;right:0}.tab{text-align:center;min-height:var(--touch-min);color:var(--text-muted);font-size:var(--text-sm);flex:1;place-items:center;text-decoration:none;display:grid}.tab.active{color:var(--text);font-weight:600}.date-line{margin:calc(-1 * var(--space-3)) 0 var(--space-4)}h2 .swatch{vertical-align:middle;margin-right:var(--space-1);display:inline-block}.goal-row{align-items:center}.goal-row .goal-name{font-size:var(--text-base)}.goal-row .goal-progress{font-size:var(--text-sm)}.goal-row.done .goal-name{color:var(--text-muted)}.check{width:var(--touch-min);height:var(--touch-min);min-height:var(--touch-min);border-radius:var(--radius-full);color:var(--on-accent);border:2px solid var(--swatch,var(--border));background:0 0;flex-shrink:0;padding:0;font-size:1.2rem;line-height:1}.check[aria-pressed=true]{background:var(--swatch,var(--accent));border-color:var(--swatch,var(--accent))}.week-nav{align-items:center;gap:var(--space-2);margin:calc(-1 * var(--space-2)) 0 var(--space-4);display:flex}.week-range{text-align:center;font-size:var(--text-sm);color:var(--text-muted)}.week-range a{color:var(--text)}a.btn{width:var(--touch-min);height:var(--touch-min);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);place-items:center;font-size:1.4rem;line-height:1;text-decoration:none;display:grid}.week-row{align-items:center}.week-row.done .goal-name{color:var(--text-muted)}.day-strip{gap:var(--space-1);flex-shrink:0;display:flex}.day-cell{border-radius:var(--radius-full);width:22px;height:22px;color:var(--text-muted);background:var(--surface-sunken);border:2px solid #0000;place-items:center;font-size:.65rem;display:grid}.day-cell.filled{background:var(--swatch,var(--accent));color:var(--on-accent)}.day-cell.today{border-color:var(--text)}.headline{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.headline .label{font-size:var(--text-sm)}.hero{margin:var(--space-1) 0;font-size:2rem;font-weight:600;line-height:1.1}.delta-line{margin:calc(-1 * var(--space-2)) 0 var(--space-4);font-size:var(--text-sm)}.legend{gap:var(--space-4);font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-2);display:flex}.legend>span{align-items:center;gap:var(--space-1);display:inline-flex}.legend-dot{--swatch:var(--text-muted);position:static!important;transform:none!important}.balance-row{display:block}.balance-head{align-items:center;gap:var(--space-2);display:flex}.balance-figures{font-variant-numeric:tabular-nums;font-size:var(--text-sm)}.dumbbell{height:20px;margin:var(--space-2) 0 var(--space-1);position:relative}.db-track{background:var(--border);border-radius:var(--radius-full);height:2px;position:absolute;top:9px;left:0;right:0}.db-span{background:var(--swatch);opacity:.5;height:2px;position:absolute;top:9px}.db-dot{border-radius:var(--radius-full);width:12px;height:12px;box-shadow:0 0 0 2px var(--surface);background:var(--swatch);position:absolute;top:4px;transform:translate(-50%)}.db-dot.last{background:color-mix(in oklab, var(--swatch) 40%, var(--surface))}.balance-row .goal-progress{font-size:var(--text-sm)}
