:root{--ground:#f2f5f1;--surface:#fff;--surface-2:#e9eee8;--ink:#16261f;--muted:#5e6f66;--faint:#93a29a;--line:#dce4db;--accent:#0f7a5a;--on-accent:#fff;--accent-soft:#d7ebe2;--gold:#c8912e;--gold-soft:#f5e9cf;--shadow:0 1px 2px #16261f0d, 0 8px 24px -12px #16261f2e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#0d1512;--surface:#15211c;--surface-2:#1d2b25;--ink:#e6efe9;--muted:#9aaea4;--faint:#6b7e75;--line:#26352e;--accent:#3dbb92;--on-accent:#0d1512;--accent-soft:#17332a;--gold:#e5b75a;--gold-soft:#2e2718;--shadow:0 1px 2px #0000004d, 0 8px 24px -12px #0009}}:root[data-theme=dark]{--ground:#0d1512;--surface:#15211c;--surface-2:#1d2b25;--ink:#e6efe9;--muted:#9aaea4;--faint:#6b7e75;--line:#26352e;--accent:#3dbb92;--on-accent:#0d1512;--accent-soft:#17332a;--gold:#e5b75a;--gold-soft:#2e2718;--shadow:0 1px 2px #0000004d, 0 8px 24px -12px #0009}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--ground);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5}#app{max-width:460px;padding:22px 20px calc(48px + env(safe-area-inset-bottom));margin:0 auto}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-size:11px;font-weight:700}.serif{letter-spacing:-.01em;font-family:Instrument Serif,Georgia,serif;font-weight:400}.num{font-variant-numeric:tabular-nums}.top{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:26px;display:flex}.dot{background:var(--faint);border-radius:50%;flex:none;width:7px;height:7px;transition:background .3s}.dot.saving{background:var(--gold)}.dot.saved{background:var(--accent)}.hero{text-wrap:balance;margin:0 0 4px;font-size:40px;line-height:1.05}.hero-sub{color:var(--muted);max-width:34ch;margin:0 0 26px;font-size:15px}.dial-wrap{justify-content:center;margin:6px 0 10px;display:flex}.dial{width:224px;height:224px;position:relative}.dial svg{width:100%;height:100%;transform:rotate(-90deg)}.track{fill:none;stroke:var(--surface-2)}.arc{fill:none;stroke-linecap:round;transition:stroke-dashoffset .7s cubic-bezier(.2,.8,.25,1)}.arc-day{stroke:var(--accent)}.arc-win{stroke:var(--gold)}.dial-mid{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;inset:0}.dial-count{font-family:Instrument Serif,Georgia,serif;font-size:52px;line-height:1}.dial-label{letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-size:11px;font-weight:700}.dial-done{color:var(--accent);text-wrap:balance;padding:0 34px;font-family:Instrument Serif,Georgia,serif;font-size:21px;line-height:1.25}.window-line{text-align:center;color:var(--muted);margin:0 0 24px;font-size:13px}.window-line b{color:var(--ink);font-weight:500}.card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;margin-bottom:14px;padding:16px 18px}.card-note{background:var(--accent-soft);border-color:#0000}.card-gold{background:var(--gold-soft);border-color:#0000}.card h3{letter-spacing:.01em;margin:0 0 5px;font-size:14px;font-weight:700}.card p{color:var(--muted);margin:0;font-size:14px;line-height:1.55}.health-card{text-align:left;flex-direction:column;align-items:stretch;gap:14px;width:100%;display:flex}.health-card.on{background:var(--accent-soft)}.health-copy{min-width:0;color:var(--muted);flex-direction:column;flex:1;font-size:13px;line-height:1.45;display:flex}.health-kicker,.upcoming>span{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:5px;font-size:10px;font-weight:700}.health-card.on .health-kicker{color:var(--accent)}.health-title{color:var(--ink);margin-bottom:3px;font-size:15px;font-weight:700;line-height:1.3}.health-done{border:1px solid color-mix(in srgb,var(--gold) 65%,transparent);color:var(--gold);letter-spacing:.01em;background:0 0;border-radius:999px;align-self:flex-start;padding:9px 13px;font-size:12px;font-weight:700;transition:background .2s,color .2s,transform .16s}.health-done:active{transform:scale(.96)}.health-card.on .health-done{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.ritual-card{background:var(--accent-soft);color:var(--ink);border-color:#0000;align-items:center;gap:14px;text-decoration:none;transition:transform .16s,box-shadow .2s;display:flex}.ritual-card:active{transform:scale(.985)}.ritual-copy{flex-direction:column;flex:1;min-width:0;display:flex}.ritual-kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:5px;font-size:10px;font-weight:700}.ritual-title{margin-bottom:4px;font-size:15px;font-weight:700;line-height:1.3}.ritual-detail{color:var(--muted);font-size:13px;line-height:1.45}.ritual-action{color:var(--accent);flex:none;align-items:center;gap:5px;font-size:12px;font-weight:700;display:flex}.list{flex-direction:column;gap:10px;margin:0 0 20px;padding:0;list-style:none;display:flex}.task{text-align:left;background:var(--surface);border:1px solid var(--line);width:100%;min-height:62px;box-shadow:var(--shadow);border-radius:16px;align-items:center;gap:14px;padding:15px 16px;transition:transform .16s cubic-bezier(.2,.8,.25,1),border-color .2s,background .2s;display:flex}.task:active{transform:scale(.985)}.task.on{border-color:var(--accent);background:var(--accent-soft)}.box{border:2px solid var(--line);border-radius:9px;flex:none;place-items:center;width:26px;height:26px;transition:background .2s,border-color .2s;display:grid}.task.on .box,.water.on .box{background:var(--accent);border-color:var(--accent)}.box svg{width:14px;height:14px;stroke:var(--surface);stroke-width:3px;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20px}.task.on .box svg,.water.on .box svg{stroke-dashoffset:0;transition:stroke-dashoffset .32s 40ms}.task-txt{flex:1;min-width:0}.task-name,.task-hint{display:block}.task-name{font-size:15px;font-weight:500;line-height:1.3}.task.on .task-name{color:var(--accent)}.task-hint{color:var(--muted);margin-top:2px;font-size:12.5px}.task-gym{background:linear-gradient(135deg,var(--accent-soft),var(--surface));border-color:color-mix(in srgb,var(--accent) 34%,var(--line))}.task-gym .task-name:after{content:" TODAY";letter-spacing:.12em;color:var(--accent);vertical-align:middle;margin-left:7px;font-size:9px}.water{background:var(--surface);border:1px solid var(--line);width:100%;box-shadow:var(--shadow);border-radius:16px;align-items:center;gap:14px;padding:15px 16px;display:flex}.water.on{border-color:var(--accent);background:var(--accent-soft)}.bottles{gap:7px;margin-top:9px;display:flex}.bottle{background:var(--surface-2);border:none;border-radius:99px;flex:1;height:9px;padding:0;transition:background .25s cubic-bezier(.2,.8,.25,1)}.bottle.full{background:var(--accent)}.water-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.water-count{color:var(--muted);font-size:13px}.upcoming{border-left:2px solid var(--gold);background:color-mix(in srgb,var(--gold-soft) 55%,transparent);border-radius:0 12px 12px 0;margin:-4px 0 20px;padding:13px 16px}.upcoming>span{margin-bottom:4px;display:block}.upcoming b{font-size:13px;font-weight:700;line-height:1.35;display:block}.upcoming p{color:var(--muted);margin:3px 0 0;font-size:12.5px;line-height:1.45}.day-plan{margin:4px 0 20px}.plan-heading{justify-content:space-between;align-items:baseline;gap:12px;margin:0 2px 10px;display:flex}.plan-heading span{letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-size:10px;font-weight:700}.plan-heading b{color:var(--muted);font-size:12px;font-weight:500}.plan-rows{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;overflow:hidden}.plan-row{border-bottom:1px solid var(--line);grid-template-columns:47px 1fr;gap:12px;padding:13px 14px;display:grid}.plan-row:last-child{border-bottom:0}.plan-row.featured{background:var(--accent-soft)}.plan-time{color:var(--accent);font-variant-numeric:tabular-nums;padding-top:1px;font-size:12px;font-weight:700}.plan-row b,.plan-row small{display:block}.plan-row b{font-size:13.5px;font-weight:700;line-height:1.35}.plan-row small{color:var(--muted);margin-top:2px;font-size:12px;line-height:1.45}.plan-note{border-left:2px solid var(--gold);background:var(--gold-soft);color:var(--muted);border-radius:0 12px 12px 0;flex-direction:column;gap:3px;margin-top:10px;padding:13px 15px;font-size:12.5px;line-height:1.45;display:flex}.plan-note b{color:var(--ink);font-size:13px}.note-field{background:var(--surface);border:1px solid var(--line);width:100%;font:inherit;color:var(--ink);resize:none;min-height:56px;box-shadow:var(--shadow);border-radius:16px;padding:14px 16px;font-size:14.5px}.note-field::placeholder{color:var(--faint)}.rough{text-align:center;width:100%;color:var(--muted);border:1px dashed var(--line);border-radius:16px;margin-bottom:18px;padding:14px;font-size:14px;transition:border-color .2s,color .2s;display:block}.rough:hover{border-color:var(--accent);color:var(--accent)}.rough.on{border-style:solid;border-color:var(--gold);color:var(--gold);background:var(--gold-soft)}.quote{border-left:2px solid var(--accent);margin:26px 0 22px;padding:2px 0 2px 15px}.quote p{margin:0;font-family:Instrument Serif,Georgia,serif;font-size:20px;font-style:italic;line-height:1.35}.quote span{letter-spacing:.13em;text-transform:uppercase;color:var(--faint);margin-top:7px;font-size:11px;font-style:normal;font-weight:700;display:block}.streak{text-align:center;color:var(--muted);border-top:1px solid var(--line);padding-top:20px;font-size:13px}.streak b{color:var(--ink);font-weight:500}.gate{flex-direction:column;justify-content:center;gap:26px;min-height:88vh;display:flex}.mark{font-family:Instrument Serif,Georgia,serif;font-size:46px;line-height:1}.mark em{color:var(--accent);font-style:italic}.who{flex-direction:column;gap:11px;display:flex}.who button{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:19px 20px;font-size:17px;font-weight:500;transition:transform .16s,border-color .2s;display:flex}.who button:active{transform:scale(.985)}.who button:hover:not(:disabled){border-color:var(--accent)}.who button:disabled{opacity:.45;cursor:default;box-shadow:none}.who small{color:var(--faint);font-size:12px;font-weight:400}.pins{justify-content:center;gap:9px;margin:4px 0;display:flex}.pins input{text-align:center;background:var(--surface);border:1px solid var(--line);width:52px;height:62px;color:var(--ink);border-radius:14px;font-family:DM Sans,sans-serif;font-size:24px}.link{text-align:center;width:100%;color:var(--muted);text-underline-offset:3px;padding:10px;font-size:14px;text-decoration:underline;display:block}.burst{pointer-events:none;z-index:9;position:fixed;inset:0}.pvbar{background:var(--gold-soft);border:1px solid var(--gold);color:var(--gold);border-radius:12px;align-items:center;gap:10px;margin-bottom:16px;padding:9px 12px;font-size:12.5px;display:flex}.pvbar span{flex:1;min-width:0}.pvbar button{color:var(--gold);text-underline-offset:3px;font-size:12.5px;font-weight:700;text-decoration:underline}.pvsheet{z-index:20;background:#0d15128c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.pvcard{background:var(--surface);width:100%;max-width:460px;padding:20px 20px calc(24px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;flex-direction:column;gap:14px;display:flex}.pvcard h2{margin:0;font-size:17px}.pvrow{gap:10px;display:flex}.pvrow input{background:var(--ground);border:1px solid var(--line);font:inherit;color:var(--ink);border-radius:12px;flex:1;padding:12px;font-size:15px}.pvjump{flex-wrap:wrap;gap:8px;display:flex}.pvjump button{border:1px solid var(--line);color:var(--muted);border-radius:99px;padding:8px 13px;font-size:13px}.pvjump button:hover{border-color:var(--accent);color:var(--accent)}.pvgo{background:var(--accent);color:var(--on-accent);border-radius:12px;padding:14px;font-size:15px;font-weight:700}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.fade{animation:.45s cubic-bezier(.2,.8,.25,1) both fade}@keyframes fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.field{background:var(--surface);border:1px solid var(--line);font:inherit;color:var(--ink);width:100%;box-shadow:var(--shadow);border-radius:16px;padding:18px 20px;font-size:16px}.field::placeholder{color:var(--faint)}.pvgo[disabled]{opacity:.6}.mfield{text-align:right;background:var(--ground);border:1px solid var(--line);width:72px;font:inherit;color:var(--ink);border-radius:10px;padding:9px 10px;font-size:16px}.mfield:focus{border-color:var(--accent);outline:none}.sect{letter-spacing:.13em;text-transform:uppercase;color:var(--faint);margin:28px 0 12px;font-size:13px;font-weight:700}.grid14{grid-template-columns:repeat(7,1fr);gap:7px;display:grid}.cell{aspect-ratio:1;background:var(--surface-2);color:var(--faint);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex}.cell b{font-variant-numeric:tabular-nums;font-size:14px;font-weight:500}.cell i{letter-spacing:.08em;font-size:9px;font-style:normal}.cell.part{background:var(--accent-soft);color:var(--accent)}.cell.full{background:var(--accent);color:var(--on-accent)}.scrollx{overflow-x:auto}.mtable{border-collapse:collapse;width:100%;font-size:13px}.mtable th{text-align:left;color:var(--faint);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;padding:0 12px 8px 0;font-size:10px;font-weight:700}.mtable td{border-top:1px solid var(--line);white-space:nowrap;padding:7px 12px 7px 0}
