:root{--color-bg:#faf8f5;--color-surface:#fff;--color-border:#e8e3dc;--color-text:#2b2723;--color-text-muted:#716a62;--color-on-dark:#faf8f5;--color-bead-neutral:#8f877e;--shadow-pop:0 6px 18px #2b27231f;--color-accent:#3f7d6b;--color-accent-text:#fff;--color-ring-track:#ece7e0;--palette-1:#8b6bb8;--palette-2:#d9774a;--palette-3:#4a7fb5;--palette-4:#2a9d78;--palette-5:#b58a1f;--palette-6:#c2527f;--palette-7:#1f93b8;--heat-0:#ece7e0;--heat-1:#cfe6dc;--heat-2:#9fd0bd;--heat-3:#5fae93;--heat-4:#2f7f67;--radius:14px;--space:16px}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);-webkit-text-size-adjust:100%;margin:0;font-family:system-ui,-apple-system,sans-serif;line-height:1.4}h1,h2{margin:0}button{font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}input[type=checkbox]{width:22px;height:22px;accent-color:var(--color-accent);flex:none}.home{max-width:480px;padding:calc(var(--space) + env(safe-area-inset-top)) max(var(--space), env(safe-area-inset-right)) var(--space) max(var(--space), env(safe-area-inset-left));gap:var(--space);flex-direction:column;margin:0 auto;display:flex}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space)}.card h2{margin-bottom:8px;font-size:1rem}.muted{color:var(--color-text-muted);font-size:.85rem}.rings{text-align:center;flex-wrap:wrap;justify-content:space-around;gap:16px 8px;display:flex}.ring{max-width:96px}.ring-title{font-weight:600}.did-something{background:var(--color-accent);color:var(--color-accent-text);border-radius:var(--radius);border:none;padding:20px;font-size:1.2rem;font-weight:600}.list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.list li{align-items:center;gap:8px;display:flex}.list li.done{color:var(--color-text-muted);text-decoration:line-through}.dot{border-radius:50%;flex:none;width:10px;height:10px}.form{flex-direction:column;gap:8px;display:flex}.form input,.form select{font:inherit;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);border-radius:8px;padding:10px}.form-buttons{gap:8px;display:flex}.form-buttons button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:8px;padding:10px 16px}.form-buttons .primary{background:var(--color-accent);color:var(--color-accent-text);border-color:var(--color-accent)}.home{padding-bottom:calc(88px + env(safe-area-inset-bottom))}.navbar{max-width:480px;padding-bottom:env(safe-area-inset-bottom);background:var(--color-surface);border-top:1px solid var(--color-border);margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.navbar button{color:var(--color-text-muted);background:0 0;border:none;flex:1;padding:16px;font-weight:600}.navbar button.active{color:var(--color-accent)}.tabs{background:var(--color-ring-track);border-radius:var(--radius);gap:4px;padding:4px;display:flex}.tab{color:var(--color-text-muted);background:0 0;border:none;border-radius:10px;flex:1;padding:8px}.tab.active{background:var(--color-surface);color:var(--color-text);font-weight:600}.range-nav,.range-picker{justify-content:space-between;align-items:center;gap:8px;display:flex}.range-nav button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:8px;width:40px;height:36px;font-size:1.2rem}.range-picker input{font:inherit;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:8px;padding:8px}.stats{grid-template-columns:1fr 1fr;gap:8px;display:grid}.stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:12px}.stat-value{font-size:1.4rem;font-weight:600}.heatmap{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.heatmap-scroll{padding-bottom:8px;overflow-x:auto}.heatmap-compact{gap:3px;width:max-content;display:flex}.heat-column{grid-template-rows:14px repeat(7,18px);gap:3px;display:grid}.month-label{color:var(--color-text-muted);white-space:nowrap;font-size:.7rem;line-height:14px;overflow:visible}.heat-cell{aspect-ratio:1;color:var(--color-text);border:none;border-radius:6px;padding:0;font-size:.8rem}.heatmap-compact .heat-cell{aspect-ratio:auto;border-radius:4px;width:18px;height:18px}.heat-cell.selected{outline:2px solid var(--color-text);outline-offset:1px}.goal-chart+.goal-chart{margin-top:8px}.goal-chart-title{align-items:center;gap:8px;font-weight:600;display:flex}.tooltip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:8px 10px;font-size:.85rem}.link{color:var(--color-accent);background:0 0;border:none;align-self:flex-start;padding:8px 6px}.grow{flex:1;min-width:0}.children{border:1px solid var(--color-border);border-radius:8px;flex-direction:column;gap:6px;display:flex}.children label{align-items:center;gap:8px;display:flex}.form-buttons button:disabled{opacity:.5;cursor:default}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:999px;padding:8px 14px}.chip.on{color:var(--color-text)}.check-row{align-items:center;gap:8px;display:flex}.session-form{gap:8px;margin-top:6px;display:flex}.session-form input{font:inherit;border:1px solid var(--color-border);background:var(--color-bg);width:140px;color:var(--color-text);border-radius:8px;padding:6px 8px}.todo-footer{justify-content:space-between;margin-top:12px;display:flex}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{border:2px solid var(--color-surface);border-radius:50%;width:32px;height:32px;padding:0}.swatch.on{outline:2px solid var(--color-text)}.chip.on.neutral{background:var(--color-text);border-color:var(--color-text);color:var(--color-bg)}.dot.small{width:8px;height:8px;margin-right:4px;display:inline-block}.task-meta{flex-wrap:wrap;align-items:center;display:flex}.actions{flex-wrap:wrap;gap:4px 16px;margin-top:6px;display:flex}.file-button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:8px;padding:10px 16px;display:inline-block}.file-button input{display:none}.pending{border-top:1px solid var(--color-border);margin-top:12px;padding-top:12px}.chip.quick{border-color:var(--color-accent);color:var(--color-accent)}.chip.more{color:var(--color-text-muted);border-style:dashed}.section-toggle{width:100%;color:var(--color-text);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:0;display:flex}.section-toggle h2{margin:0}.two-up{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:8px;display:grid}.two-up input{min-width:0}.card .card{background:0 0;border:none;padding:0}.toast{max-width:448px;left:16px;right:16px;bottom:calc(72px + env(safe-area-inset-bottom));background:var(--color-text);color:var(--color-bg);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;margin:0 auto;padding:12px 16px;font-size:.9rem;display:flex;position:fixed}.toast button{color:var(--color-bg);background:0 0;border:none;padding:8px 4px;font-weight:700;text-decoration:underline}.secondary{border:1px solid var(--color-accent);border-radius:var(--radius);background:var(--color-surface);color:var(--color-accent);padding:14px;font-weight:600}.timer-card{text-align:center;border-color:var(--color-accent)}.timer-head{justify-content:center;align-items:center;gap:8px;display:flex}.timer-title{font-weight:600}.timer-time{font-variant-numeric:tabular-nums;margin:4px 0 12px;font-size:2.6rem;font-weight:700}.timer-card .form-buttons{justify-content:center}.field{flex-direction:column;gap:4px;display:flex}.field input{font:inherit;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);border-radius:8px;max-width:100%;padding:10px}.back{padding-left:0}.period{font-size:.75rem}.overall-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.segments{gap:4px;display:flex}.segment{background:var(--color-ring-track);border-radius:6px;flex:1;height:12px;overflow:hidden}.segment-fill{border-radius:6px;height:100%;display:block}.ring,.ring-title,.timer-title,.list li .grow,.overall-head strong,.children label,.goal-chart-title{overflow-wrap:anywhere;min-width:0}.heat-cell[data-level="4"]{color:var(--color-on-dark)}.list li>input[type=checkbox]{width:26px;height:26px;margin:4px}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.notice{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:calc(100% - 32px);max-width:448px;margin:16px auto 0;padding:12px 16px;font-size:.9rem}.toast span{overflow-wrap:anywhere;min-width:0}.toast button{flex:none}.header-card{flex-direction:column;gap:12px;display:flex}.beads-strip{border-top:1px solid var(--color-border);padding-top:12px}.beads{flex-wrap:wrap;gap:4px;margin:0 0 8px;padding:0;list-style:none;display:flex}.bead{border:3px solid var(--color-surface);background-clip:padding-box;border-radius:50%;width:22px;height:22px;padding:0;display:block}.bead.selected{outline:2px solid var(--color-text);outline-offset:1px}.beads-caption{min-height:1.2em}.suggest{position:relative}.suggest>input{width:100%}.suggest-list{z-index:20;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-pop);border-radius:10px;margin:4px 0 0;padding:4px;list-style:none;position:absolute;top:100%;left:0;right:0}.suggest-list li{min-height:44px;color:var(--color-text);overflow-wrap:anywhere;cursor:pointer;border-radius:8px;align-items:center;padding:8px 10px;display:flex}.suggest-list li.active,.suggest-list li:hover{background:var(--color-bg)}.offer{border:1px solid var(--color-border);background:var(--color-bg);border-radius:10px;margin:12px 0;padding:12px}.offer p{margin:0 0 8px}.beads-caption .link{margin-left:8px;padding:2px 6px}.list li.done button{text-decoration:none}.bead{position:relative}.bead:after{content:"";position:absolute;inset:-11px}.beads-caption .link{margin:-8px 0;padding:10px 8px}
