:root{--bg: #14121f;--bg2: #1b1830;--card: #221d36;--card2: #2b2547;--line: #353052;--text: #ece8f4;--muted: #9b94b3;--gold: #ffc96b;--gold-dim: #8a6c39;--green: #5fd68a;--green-dim: #234634;--blue: #8fb4ff;--blue-dim: #25315a;--grey: #6f6a85;--radius: 16px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45;overscroll-behavior-y:contain}#root{min-height:100dvh}h1{font-size:1.45rem;margin:0;font-weight:700;letter-spacing:-.02em}h2{font-size:1.15rem;margin:0 0 4px}h3{font-size:1.05rem;margin:0}.app{display:flex;flex-direction:column;min-height:100dvh}.content{flex:1;width:100%;max-width:560px;margin:0 auto;padding:calc(14px + env(safe-area-inset-top)) 16px calc(86px + env(safe-area-inset-bottom))}.screen{display:flex;flex-direction:column;gap:12px;animation:fadein .25s ease}@keyframes fadein{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.screen-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px}.card-title{font-weight:650;margin-bottom:8px}.section-label{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;margin:10px 2px 6px}section{display:flex;flex-direction:column;gap:10px}.muted{color:var(--muted)}.small{font-size:.88rem}.tiny{font-size:.78rem}.block{display:block}.center{text-align:center}.row{display:flex;align-items:center}.row.between{justify-content:space-between}.row.gap{gap:8px}.row.wrap{flex-wrap:wrap}.col{display:flex;flex-direction:column}.col.end{align-items:flex-end}.pointer{cursor:pointer}.error{color:#f0a6c0;font-size:.88rem}button{font:inherit;color:inherit;cursor:pointer}.btn{background:var(--card2);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:11px 16px;font-weight:600;transition:transform .08s ease,background .15s ease;min-height:44px}.btn:active{transform:scale(.96)}.btn.gold{background:var(--gold);color:#261d08;border-color:var(--gold)}.btn.small{padding:7px 12px;min-height:36px;font-size:.88rem}.btn.wide{width:100%}.btn.danger{color:#f0a6c0}.btn:disabled{opacity:.45;cursor:default}.linkbtn{background:none;border:none;color:var(--muted);text-decoration:underline;padding:8px 4px;font-size:.88rem}a.btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.habit-actions{display:flex;gap:8px;margin-top:10px}.chip{flex:1;background:var(--card2);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:9px 10px;font-weight:600;font-size:.88rem;min-height:40px;transition:transform .08s ease,background .15s ease,color .15s ease;white-space:nowrap}.chip:active{transform:scale(.94)}.chip.done.on{background:var(--green-dim);border-color:var(--green);color:var(--green);animation:pop .25s ease}.chip.min.on{background:var(--blue-dim);border-color:var(--blue);color:var(--blue);animation:pop .25s ease}.chip.miss.on{background:#2e2b3d;border-color:var(--grey);color:var(--text)}.chip.gold-chip.on{background:var(--gold);border-color:var(--gold);color:#261d08}.habit-actions.compact .chip{padding:7px 8px;min-height:34px;font-size:.8rem}@keyframes pop{0%{transform:scale(.9)}55%{transform:scale(1.06)}to{transform:scale(1)}}.streak{color:var(--muted);font-weight:700;white-space:nowrap}.streak.lit{color:var(--gold);animation:pop .3s ease}.streak.big{font-size:1.15rem}.streak-flame{filter:saturate(.4)}.streak.lit .streak-flame{filter:none}.habit-card{transition:border-color .2s ease}.habit-name{font-weight:650}.identity{color:var(--gold);opacity:.75;font-size:.82rem;font-style:italic}.weekstrip{display:flex;gap:6px;margin-top:8px}.ws-dot{width:12px;height:12px;border-radius:50%;background:var(--card2)}.ws-dot.done{background:var(--green)}.ws-dot.min{background:var(--blue)}.ws-dot.miss{background:var(--grey);opacity:.55}.ws-dot.notdue{opacity:.25}.ws-dot.open{border:1px solid var(--line)}.nowcard{background:linear-gradient(160deg,#2a2347,var(--card));border-color:#423a6b}.now-label{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.now-purpose{font-size:1.35rem;font-weight:700;margin:4px 0 10px;letter-spacing:-.01em}.progress{height:8px;border-radius:999px;background:#161325;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--gold-dim),var(--gold));transition:width .6s ease}.timeline{display:flex;flex-direction:column}.tl-row{display:flex;align-items:baseline;gap:10px;padding:5px 0}.tl-time{color:var(--muted);font-size:.8rem;min-width:52px;text-align:right;font-variant-numeric:tabular-nums}.tl-dot{width:7px;height:7px;border-radius:50%;background:var(--line);flex-shrink:0;align-self:center}.tl-row.now .tl-dot{background:var(--gold);box-shadow:0 0 8px var(--gold)}.tl-row.now .tl-purpose{color:var(--gold);font-weight:650}.tl-row.past{opacity:.45}.tl-purpose{font-size:.95rem}.banner{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;text-align:left;background:linear-gradient(135deg,#3a2f57,#2b2547);border:1px solid #54487e;border-radius:var(--radius);color:var(--text);font-weight:600;padding:14px}.banner-go{color:var(--gold);font-size:1.2rem}.card.gym{border-color:var(--gold-dim)}.card.gym.done{border-color:var(--green)}.gym-done{color:var(--green);font-weight:650;text-align:center;padding:8px 0;animation:pop .35s ease}.card.partner{background:var(--bg2)}.card.money{border-color:var(--gold-dim)}.kitchen{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:none;border:none;padding:2px}.kitchen-check{width:34px;height:34px;border-radius:10px;flex-shrink:0;border:2px solid var(--line);background:var(--card2);display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:800;color:#102417;transition:background .15s ease,border-color .15s ease}.kitchen.on .kitchen-check{background:var(--green);border-color:var(--green);animation:pop .25s ease}.kitchen.big .kitchen-check{width:44px;height:44px;border-radius:13px;font-size:1.4rem}.laundry-load{padding:6px 0}.laundry-load+.laundry-load{border-top:1px solid var(--line)}.nudge{color:var(--gold)}.dots{display:flex;gap:8px;padding-top:8px}.dot{width:10px;height:10px;border-radius:50%;border:none;background:var(--card2);padding:0;transition:background .2s ease,transform .2s ease}.dot.on{background:var(--gold);transform:scale(1.25)}.dot.past{background:var(--gold-dim)}.step{display:flex;flex-direction:column;gap:10px;animation:stepin .22s ease}@keyframes stepin{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}.step-title{margin-top:4px}.wizard-nav{position:fixed;bottom:calc(64px + env(safe-area-inset-bottom));left:0;right:0;display:flex;justify-content:space-between;gap:10px;max-width:560px;margin:0 auto;padding:10px 16px;background:linear-gradient(transparent,var(--bg) 35%)}.wizard-nav .btn{min-width:110px}.win-input{width:100%;background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);padding:12px;font:inherit;resize:none}.tmrw-row{display:flex;align-items:baseline;gap:10px;padding:4px 0}.tmrw-purpose{background:none;border:none;text-align:left;padding:4px 0;color:var(--muted);font-size:.95rem;flex:1}.tmrw-row.flex .tmrw-purpose{color:var(--text);font-weight:550}.edit-hint{color:var(--gold-dim);margin-left:4px}.planchip{font-size:.66rem;color:var(--blue);border:1px solid var(--blue-dim);background:var(--blue-dim);border-radius:999px;padding:1px 7px;margin-left:7px;vertical-align:middle;white-space:nowrap}.planchip.changed{color:var(--gold);background:#3a2f1a;border-color:#5b4a26}.tmrw-edit{flex:1;display:flex;flex-direction:column;gap:6px}.done-state{text-align:center;padding:32px 8px;display:flex;flex-direction:column;align-items:center;gap:10px}.done-check svg{width:86px;height:86px}.done-check circle{fill:none;stroke:var(--green);stroke-width:2.5;stroke-dasharray:151;stroke-dashoffset:151;animation:draw .7s ease forwards}.done-check path{fill:none;stroke:var(--green);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:36;stroke-dashoffset:36;animation:draw .45s ease .5s forwards}@keyframes draw{to{stroke-dashoffset:0}}.team-streak{font-size:1.1rem}.win-quote{color:var(--gold);font-style:italic;margin:6px 0}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:50}.confetti span{position:absolute;top:-12px;width:8px;height:12px;border-radius:2px;animation:fall linear forwards}@keyframes fall{to{transform:translateY(105vh) rotate(540deg);opacity:.6}}label{display:block;font-size:.88rem;color:var(--muted);margin-top:10px}label:first-child{margin-top:0}input,textarea{width:100%;margin-top:5px;background:var(--bg2);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:11px 12px;font:inherit}input:focus,textarea:focus{outline:none;border-color:var(--gold-dim)}input[type=checkbox]{width:auto;margin:0 4px 0 0;accent-color:var(--gold)}.daypicker{display:flex;gap:6px;margin-top:6px}.daypicker .day{flex:1;aspect-ratio:1;max-width:44px;border-radius:50%;background:var(--card2);border:1px solid var(--line);color:var(--muted);font-weight:700;transition:all .12s ease}.daypicker .day.on{background:var(--gold);border-color:var(--gold);color:#261d08}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#080610b3;z-index:100;display:flex;align-items:flex-end;animation:fadein .2s ease}.sheet{background:var(--card);width:100%;max-width:560px;margin:0 auto;border-radius:22px 22px 0 0;padding:8px 18px calc(20px + env(safe-area-inset-bottom));max-height:88dvh;overflow-y:auto;animation:sheetup .25s cubic-bezier(.2,.9,.3,1)}@keyframes sheetup{0%{transform:translateY(40%)}to{transform:none}}.sheet-grab{width:40px;height:4px;border-radius:4px;background:var(--line);margin:6px auto 10px}.sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.sheet-close{background:var(--card2);border:none;border-radius:50%;width:32px;height:32px;color:var(--muted)}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:40;display:flex;justify-content:space-around;background:#141121eb;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.tab{background:none;border:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.68rem;font-weight:600;padding:4px 14px;border-radius:12px;transition:color .15s ease}.tab.active{color:var(--gold)}.tab-icon{position:relative;display:flex}.badge{position:absolute;top:-2px;right:-5px;width:8px;height:8px;border-radius:50%;background:var(--gold);animation:pop .3s ease}.splash{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--gold);font-weight:700;letter-spacing:.04em;animation:fadein .4s ease}.login{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:24px}.login-brand{text-align:center;color:var(--gold)}.login-brand h1{color:var(--text);margin-top:10px}.login-form{width:100%;max-width:340px;display:flex;flex-direction:column;gap:12px}.who{display:flex;gap:10px}.who-btn{flex:1;padding:14px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);color:var(--muted);font-weight:700;font-size:1rem;transition:all .15s ease}.who-btn.on{background:var(--card2);border-color:var(--gold);color:var(--gold)}.settings{margin-top:18px}@media (min-width: 640px){body{font-size:17px}}
