:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--accent:#2f6fed;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);margin:0}.app{max-width:40rem;margin:0 auto;padding:1.5rem 1rem}:root{--muted:#6b7280;--nav-active:#2f6fed;--danger:#c0352b;--border:color-mix(in srgb, currentColor 18%, transparent)}.auth{max-width:24rem}.form{gap:.9rem;margin:1rem 0;display:grid}.form label{gap:.3rem;font-weight:500;display:grid}input,select,button{font:inherit}input,select{border:1px solid var(--border);color:inherit;background:0 0;border-radius:.5rem;padding:.55rem .7rem}button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:.5rem;padding:.55rem 1rem}button:disabled{opacity:.6;cursor:default}button.secondary{color:var(--accent);border:1px solid var(--border);background:0 0}button.danger{color:var(--danger);border:1px solid var(--border);background:0 0}.hint{color:var(--muted);font-weight:400}.error,.field-error{color:var(--danger);font-weight:400}.install-hint{border:1px solid var(--border);border-radius:.75rem;align-items:center;gap:1rem;max-width:40rem;margin:.75rem auto;padding:.75rem 1rem;display:flex}.install-hint p{flex:1;margin:0}.list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.list li{border:1px solid var(--border);border-radius:.75rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem;display:flex}.link-box{border:1px dashed var(--accent);border-radius:.75rem;gap:.5rem;margin:.75rem 0;padding:.75rem;display:grid}.link-box input{box-sizing:border-box;width:100%}section+section{margin-top:2rem}.form>.hint,.form>.field-error{margin-top:-.6rem}a.button{background:var(--accent);color:#fff;border-radius:.5rem;padding:.55rem 1rem;text-decoration:none;display:inline-block}a.button.secondary{color:var(--accent);border:1px solid var(--border);background:0 0}textarea{font:inherit;border:1px solid var(--border);color:inherit;resize:vertical;background:0 0;border-radius:.5rem;padding:.55rem .7rem}.row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.actions{flex-wrap:wrap;gap:.5rem;display:flex}.form label.checkbox,.days label{align-items:center;gap:.4rem;font-weight:400;display:flex}.days{border:1px solid var(--border);border-radius:.5rem;flex-wrap:wrap;gap:.75rem;padding:.5rem .75rem;display:flex}.tabs,.segmented{flex-wrap:wrap;gap:.25rem;margin:1rem 0;display:flex}.tabs button,.segmented button{color:inherit;border:1px solid var(--border);background:0 0}.tabs button[aria-selected=true],.segmented button[aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent)}.list a{color:inherit;flex:1;text-decoration:none}.list li.past,.list li.done{opacity:.6}.list li.done strong,.agenda li.done a{text-decoration:line-through}.badge{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:.1rem .5rem;font-size:.8rem}.agenda time{font-variant-numeric:tabular-nums;margin-right:.5rem;font-weight:600}.notice{border:1px solid var(--border);border-radius:.75rem;margin:1rem 0;padding:.75rem 1rem}.offline-banner{background:color-mix(in srgb, var(--danger) 12%, transparent);border-radius:.5rem;margin:0 0 1rem;padding:.5rem .75rem}.list li.due{border-color:var(--accent)}.quick-done{padding:.3rem .7rem}.warn-banner{background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:.5rem;margin:0 0 1rem;padding:.5rem .75rem}.badge.warn{color:var(--danger)}.occurrence .notes{white-space:pre-wrap}.big-actions{gap:.75rem;max-width:24rem;margin:1.5rem 0;display:grid}.big-actions>button{padding:.9rem 1rem;font-size:1.1rem}.big-actions fieldset{border:1px solid var(--border);border-radius:.75rem;flex-wrap:wrap;gap:.5rem;margin:0;padding:.5rem .75rem .75rem;display:flex}.big-actions fieldset button{flex:1}.habit-stats{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.5rem;margin:1rem 0;padding:0;list-style:none;display:grid}.habit-stats li{border:1px solid var(--border);border-radius:.75rem;gap:.2rem;padding:.75rem;display:grid}.habit-stats strong{font-variant-numeric:tabular-nums;font-size:1.4rem}.habit-stats span{color:var(--muted);font-size:.9rem}.month-nav{justify-content:space-between;align-items:center;gap:1rem;max-width:24rem;display:flex}.month-nav h2{margin:0;font-size:1.1rem}.calendar{border-collapse:separate;border-spacing:.25rem;margin:.5rem 0}.calendar th{color:var(--muted);font-size:.85rem;font-weight:500}.calendar td{text-align:center;font-variant-numeric:tabular-nums;border-radius:.5rem;width:2.4rem;height:2.4rem}.day.done{color:#fff;background:#2e9d5b}.day.skipped{background:#d9a40059}.day.missed{background:color-mix(in srgb, var(--danger) 30%, transparent)}.day.pending{border:2px dashed var(--accent)}.day.future{color:var(--muted);border:1px solid var(--border)}.calendar td[aria-current=date]{outline:2px solid var(--accent);outline-offset:1px}.legend{color:var(--muted);flex-wrap:wrap;gap:.5rem 1rem;padding:0;font-size:.9rem;list-style:none;display:flex}.legend li{align-items:center;gap:.4rem;display:flex}.legend .day{box-sizing:border-box;border-radius:.25rem;width:1rem;height:1rem;display:inline-block}.streak{font-size:1.1rem;font-weight:600}.legend .day.empty{border:1px solid var(--border)}:root{--habit-text:#111827;--habit-mint:#e3f7ef;--habit-mint-fill:#a7e3c9;--habit-lavender:#eee6fb;--habit-lavender-fill:#cdb8f2;--habit-sky:#e2f0fa;--habit-sky-fill:#a9d2f0;--habit-sand:#f3eee7;--habit-sand-fill:#dccdb6;--habit-peach:#fdebe1;--habit-peach-fill:#f6be9f;--habit-pink:#fce4ee;--habit-pink-fill:#f3a9c6;--habit-yellow:#fdf5d6;--habit-yellow-fill:#f3dc80;--habit-lime:#edf7d9;--habit-lime-fill:#c6e38c;--habit-gray:#eef0f2;--habit-gray-fill:#c9ced4;--habit-red:#fde2e1;--habit-red-fill:#f4a3a0}@media (prefers-color-scheme:dark){:root{--muted:#9ca3af;--nav-active:#8fb0ff;--habit-text:#f9fafb;--habit-mint:#17332a;--habit-mint-fill:#1f5c47;--habit-lavender:#2a2340;--habit-lavender-fill:#4a3a78;--habit-sky:#172a3a;--habit-sky-fill:#1f4f73;--habit-sand:#2f2a22;--habit-sand-fill:#5a4c36;--habit-peach:#3a261c;--habit-peach-fill:#7a4528;--habit-pink:#3a1f2b;--habit-pink-fill:#7a3354;--habit-yellow:#332d14;--habit-yellow-fill:#6b5a14;--habit-lime:#26311a;--habit-lime-fill:#4a6324;--habit-gray:#26292d;--habit-gray-fill:#474d55;--habit-red:#3d1d1c;--habit-red-fill:#7f2b28}}.app{padding-bottom:calc(5.5rem + env(safe-area-inset-bottom))}.bottom-nav{z-index:10;padding:.4rem .5rem calc(.4rem + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:canvas;justify-content:space-around;gap:.25rem;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav a,.bottom-nav button{color:var(--muted);border-radius:.75rem;justify-items:center;gap:.15rem;min-width:3.5rem;padding:.3rem .6rem;font-size:.75rem;text-decoration:none;display:grid}.bottom-nav a.active{color:var(--nav-active);background:color-mix(in srgb, var(--accent) 10%, transparent)}.bottom-nav .create{color:#fff;background:var(--accent);font:inherit;cursor:pointer;border:0;font-size:.75rem}.bottom-nav svg{width:1.5rem;height:1.5rem}.habit-cards{gap:.6rem;margin:1rem 0;padding:0;list-style:none;display:grid}.habit-card{background:var(--card-bg);color:var(--habit-text);touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:1rem;align-items:center;gap:.75rem;padding:1rem;display:flex;position:relative;overflow:hidden}.habit-card .fill{background:var(--card-fill);transition:width .15s;position:absolute;inset:0 auto 0 0}.habit-card.dragging .fill{transition:none}.habit-card>:not(.fill){position:relative}.habit-card .icon{font-size:1.6rem}.habit-card .title{flex:1;font-size:1.05rem}.habit-card .value{font-variant-numeric:tabular-nums;text-align:right;font-weight:600}.habit-card .streak{font-size:.75rem;font-weight:400;display:block}.habit-card.done .value:after{content:" ✓"}.habit-card[aria-readonly=true]{cursor:default}.sheet-backdrop{z-index:20;background:#00000059;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{box-sizing:border-box;width:100%;max-width:40rem;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));background:canvas;border-radius:1rem 1rem 0 0;gap:.75rem;display:grid}.page-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.sheet-head{align-items:center;gap:.25rem;display:flex}.sheet-head h2{flex:1;margin:0}.icon-button{width:2.75rem;height:2.75rem;color:var(--accent);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button svg{width:1.4rem;height:1.4rem}.create-choice{border:1px solid var(--border);color:inherit;border-radius:.75rem;align-items:center;gap:.9rem;padding:.9rem 1rem;text-decoration:none;display:flex}.create-choice .icon{font-size:1.8rem}.create-choice strong{font-size:1.05rem;display:block}.create-choice small{display:block}.habit-name{align-items:end;gap:.75rem;display:flex}.habit-name>label:last-child{flex:1}.habit-icon{background:var(--card-bg);border-radius:.75rem;place-items:center;width:3.2rem;height:3.2rem;display:grid}.habit-icon input{text-align:center;background:0 0;border:0;width:100%;height:100%;padding:0;font-size:1.6rem}.sheet .stepper{align-items:center;gap:.5rem;display:flex}.sheet .stepper input{text-align:center;width:5rem;font-size:1.4rem}.week{align-items:center;gap:.25rem;margin:.5rem 0 1rem;display:flex}.week ol{flex:1;grid-template-columns:repeat(7,1fr);gap:.15rem;margin:0;padding:0;list-style:none;display:grid}.week button.day{width:100%;color:inherit;background:0 0;border:1px solid #0000;border-radius:1.5rem;justify-items:center;gap:.2rem;padding:.3rem 0;display:grid}.week button.day[aria-pressed=true]{border-color:var(--accent)}.week .ring{width:2.2rem;height:2.2rem}.week .ring circle{fill:none;stroke-width:3px}.week .ring .track{stroke:var(--border)}.week .ring .done{stroke:var(--accent);stroke-linecap:round;transform-origin:50%;transform:rotate(-90deg)}.week .shift{padding:.3rem .5rem}.day.partial{background:color-mix(in srgb, var(--accent) 18%, transparent)}.calendar .day-button{width:100%;height:100%;color:inherit;font:inherit;border-radius:inherit;background:0 0;padding:0}.calendar .day-button[aria-pressed=true]{outline:2px solid var(--accent)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.swatches{border:0;flex-wrap:wrap;gap:.5rem;padding:0;display:flex}.swatch{background:var(--card-fill);border-radius:50%;place-items:center;width:2rem;height:2rem;display:grid}.swatch input{appearance:none;cursor:pointer;border-radius:50%;width:100%;height:100%;margin:0}.swatch input:checked{box-shadow:inset 0 0 0 3px Canvas, inset 0 0 0 5px var(--accent)}.swatch input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
