:root{--font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",system-ui,sans-serif;color-scheme:dark;--bg:#000;--card:#1c1c1e;--card2:#2c2c2e;--line:rgba(255,255,255,0.1);--text:#fff;--muted:rgba(235,235,245,0.6);--faint:rgba(235,235,245,0.28);--good:#30d158;--bad:#ff453a;--accent:#0a84ff;--on-accent:#fff;--accent-soft:color-mix(in srgb,var(--accent) 18%,transparent)}:root[data-theme=light]{color-scheme:light;--bg:#f2f2f7;--card:#fff;--card2:#f2f2f7;--line:rgba(60,60,67,0.16);--text:#000;--muted:rgba(60,60,67,0.6);--faint:rgba(60,60,67,0.3)}@media (prefers-color-scheme:light){:root:not([data-theme]){color-scheme:light;--bg:#f2f2f7;--card:#fff;--card2:#f2f2f7;--line:rgba(60,60,67,0.16);--text:#000;--muted:rgba(60,60,67,0.6);--faint:rgba(60,60,67,0.3)}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;background:var(--bg);color:var(--text)}body{font-family:var(--font);font-size:17px;line-height:1.35;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}main{max-width:640px;margin:0 auto;padding:calc(20px + env(safe-area-inset-top)) 16px calc(120px + env(safe-area-inset-bottom))}h1{font-size:34px;letter-spacing:-.02em;margin:6px 0 2px}h1,h2{font-weight:700}h2{font-size:20px;letter-spacing:-.01em;margin:26px 4px 10px}.card h2{font-size:13px;font-weight:600;margin:0 0 10px;text-transform:uppercase;letter-spacing:.04em}.card h2,.sub{color:var(--muted)}.sub{font-size:15px;margin:0 0 18px}p{margin:0 0 10px}code{background:var(--card2);padding:1px 6px;border-radius:6px;font-size:.85em}.card{padding:16px}.card,.list{background:var(--card);border-radius:20px;margin-bottom:14px}.list{overflow:hidden}.row{display:flex;align-items:center;gap:12px}.spread{justify-content:space-between}.grow{flex:1 1;min-width:0}.item{padding:13px 16px}.list>.item+.item,.list>div+div{border-top:.5px solid var(--line)}.row-title{font-size:17px;font-weight:500}.row-sub{font-size:13px;margin-top:1px}.pts,.row-sub{color:var(--muted)}.pts{font-size:14px;white-space:nowrap}.kicker{font-size:13px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.big{font-size:34px;font-weight:700;letter-spacing:-.02em}.big small{font-size:15px;font-weight:600;color:var(--muted)}.bar{height:8px;background:var(--card2);overflow:hidden}.bar,.bar>div{border-radius:99px}.bar>div{height:100%;background:var(--accent);transition:width .35s ease}.core{font-size:11px;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:99px;padding:2px 8px;margin-left:8px;vertical-align:2px}.msg{color:var(--bad);font-size:14px;margin:8px 0 0}.ok{color:var(--good)}button{font:inherit;font-size:16px;font-weight:500;cursor:pointer;border:none;border-radius:12px;background:var(--card2);color:var(--text);padding:0 16px;min-height:44px}button:active{opacity:.7}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);color:var(--on-accent);font-weight:600;width:100%}button.link{background:none;color:var(--accent);padding:0 8px;min-height:40px}input,select{width:100%;padding:12px 14px;font:inherit;font-size:16px;border-radius:12px;border:none;background:var(--card2);color:var(--text);margin-bottom:10px;outline:none}input:focus,select:focus{box-shadow:0 0 0 2px var(--accent)}input::placeholder{color:var(--faint)}input[type=checkbox].switch{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:51px;height:31px;border-radius:99px;margin:0;flex:none;background:var(--card2);position:relative;transition:background .2s;cursor:pointer;box-shadow:none}input.switch:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.3);transition:transform .2s}input.switch:checked{background:var(--good)}input.switch:checked:after{transform:translateX(20px)}input[type=checkbox]:not(.switch){width:22px;height:22px;margin:0;flex:none;accent-color:var(--accent)}.lbl{display:block;font-size:13px;color:var(--muted);margin:6px 0 6px 2px}.check-row{gap:10px;margin-top:6px}.check-row,.chips{display:flex;align-items:center}.chips{gap:6px;flex-wrap:wrap;margin-bottom:12px}.chip{width:40px;height:40px;min-height:0;padding:0;border-radius:50%;font-weight:600;color:var(--muted)}.chip.on{background:var(--accent);color:var(--on-accent)}.seg{display:flex;background:var(--card2);border-radius:10px;padding:2px}.seg button{flex:1 1;min-height:34px;background:transparent;border-radius:8px;font-size:14px;color:var(--muted)}.seg button.on{background:var(--card);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.25)}.swatches{display:flex;gap:12px;flex-wrap:wrap}.swatch{width:38px;height:38px;min-height:0;padding:0;border-radius:50%;border:3px solid transparent;background-clip:padding-box}.swatch.on{box-shadow:0 0 0 2px var(--text)}.check{position:relative;width:30px;height:30px;min-height:0;padding:0;border-radius:50%;flex:none;border:2px solid var(--faint);background:transparent;display:grid;place-items:center;color:var(--on-accent)}.check:after{content:"";position:absolute;inset:-9px}.check.done{background:var(--accent);border-color:var(--accent)}.tap{cursor:pointer}.strip{display:flex;align-items:center;gap:6px;padding-top:12px}.dot{width:34px;height:34px;min-height:0;padding:0;border-radius:50%;font-size:12px;font-weight:600;color:var(--muted);background:var(--card2)}.dot.on{background:var(--accent);color:var(--on-accent)}.dot.off{background:transparent;border:1px dashed var(--faint);opacity:.6}.dot.today{box-shadow:0 0 0 2px var(--accent)}.dot:disabled{cursor:default}.week-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.week-nav button{width:44px;padding:0;font-size:20px}.progress{display:flex;align-items:center;gap:18px}.ring{position:relative;flex:none}.ring-label{position:absolute;inset:0;display:grid;place-content:center;text-align:center;line-height:1}.ring-label b{font-size:26px;font-weight:700}.ring-label span{font-size:13px;color:var(--muted);margin-top:2px}.stat-ok{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--card2);color:var(--muted);flex:none;font-weight:700}.stat-ok.on{background:var(--good);color:#000}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:color-mix(in srgb,var(--card) 78%,transparent);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);border-top:.5px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabbar-inner{max-width:640px;margin:0 auto;padding:6px 8px 4px}.tab{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0;color:var(--faint);text-decoration:none;font-size:10.5px;font-weight:600;-webkit-user-drag:none}.tab.active{color:var(--accent)}@keyframes jiggle{0%{transform:rotate(-.9deg)}50%{transform:rotate(.9deg)}to{transform:rotate(-.9deg)}}.jiggle{animation:jiggle .26s ease-in-out infinite}.hide-badge{position:absolute;top:-4px;left:6px;width:22px;height:22px;border-radius:50%;z-index:5;background:#636366;color:#fff;display:grid;place-items:center;font-weight:700;font-size:16px;line-height:1}.tab .hide-badge{left:calc(50% - 38px);top:-4px}.edit-banner{position:fixed;top:0;left:0;right:0;z-index:40;padding:calc(8px + env(safe-area-inset-top)) 14px 10px;background:color-mix(in srgb,var(--card) 85%,transparent);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);border-bottom:.5px solid var(--line)}.edit-top{margin:0 auto;justify-content:space-between;font-weight:600}.edit-top,.edit-tray{max-width:640px;display:flex;align-items:center}.edit-tray{margin:8px auto 0;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--muted)}.edit-tray button{min-height:32px;font-size:13px;padding:0 12px;color:var(--accent)}.sec{margin-bottom:14px}.sec>div>.card,.sec>div>.list{margin-bottom:0}main.wide{max-width:1500px}.grid-wrap{background:var(--card);border-radius:20px;overflow-x:auto;padding:6px 0 10px}.mgrid{border-collapse:separate;border-spacing:0;min-width:100%}.mgrid td,.mgrid th{padding:3px 2px;text-align:center;font-size:12px;font-weight:500}.mgrid thead th{color:var(--muted);padding-top:10px}.mgrid .name{position:-webkit-sticky;position:sticky;left:0;z-index:2;background:var(--card);text-align:left;white-space:nowrap;padding:6px 14px;min-width:230px;font-size:15px;font-weight:500;color:var(--text)}.mgrid .num{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;font-size:13px;color:var(--text);margin-top:2px}.mgrid th.today-col .num{background:var(--accent);color:var(--on-accent);font-weight:700}.mgrid .wkend{background:color-mix(in srgb,var(--text) 4%,transparent)}.mgrid .sechead td{padding-top:14px;padding-bottom:2px;font-size:13px;font-weight:700;color:var(--muted)}.mgrid .sechead .name,.mgrid .stat{font-size:13px}.mgrid .stat{padding:0 12px;color:var(--muted);white-space:nowrap}.mgrid .totals td{color:var(--muted);font-size:12px;border-top:.5px solid var(--line);padding-top:8px}.mgrid .totals .name{font-size:13px;color:var(--muted)}.cell{width:30px;height:30px;min-height:0;padding:0;border-radius:9px;display:grid;place-items:center;background:var(--card2);color:var(--on-accent)}.cell.on{background:var(--accent)}.cell.off{background:transparent;border:1px dashed var(--faint);opacity:.5}.cell.future{opacity:.3;cursor:default}.cell.today{box-shadow:0 0 0 2px var(--accent)}.cell:disabled{cursor:default}.check.tiny{border-color:var(--accent)}.check.tiny,.tinybtn{background:var(--accent-soft);color:var(--accent)}.tinybtn{min-height:30px;padding:0 12px;font-size:13px;font-weight:600;border-radius:99px}.pill-gray{color:var(--muted);background:var(--card2)}.cell.tiny,.dot.tiny{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent);color:var(--accent)}.review{border-left:4px solid var(--accent)}.review .row{flex-wrap:wrap;gap:8px;margin-top:10px}.stats4{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:10px;gap:10px;margin-bottom:14px}@media (min-width:700px){.stats4{grid-template-columns:repeat(4,1fr)}}.stat-card{background:var(--card);border-radius:18px;padding:14px 16px}.stat-card b{display:block;font-size:28px;letter-spacing:-.02em}.stat-card span{font-size:13px;color:var(--muted)}.cal{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px}.cal .wd{text-align:center;font-size:12px;padding-bottom:2px}.cal .wd,.calday{color:var(--muted)}.calday{aspect-ratio:1;min-height:0;width:100%;padding:0;border-radius:12px;font-size:14px;font-weight:600;background:var(--card2)}.calday.on{background:var(--accent);color:var(--on-accent)}.calday.tiny{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent);color:var(--accent)}.calday.off{background:transparent;border:1px dashed var(--faint);opacity:.55}.calday.future{opacity:.3}.calday.sel{box-shadow:0 0 0 2px var(--text)}.calday:disabled{cursor:default}.calday.paused{background:repeating-linear-gradient(45deg,var(--card2),var(--card2) 4px,transparent 4px,transparent 8px)}textarea{width:100%;padding:12px 14px;font:inherit;font-size:16px;border-radius:12px;border:none;resize:vertical;background:var(--card2);color:var(--text);margin-bottom:10px;outline:none;min-height:80px}textarea:focus{box-shadow:0 0 0 2px var(--accent)}.back{display:inline-block;color:var(--accent);margin-bottom:4px;font-size:17px}.back,.namelink{text-decoration:none}.namelink{color:inherit}.namelink:hover{color:var(--accent)}.seg button{padding:0 16px}.cell{margin:0 auto}.mgrid.weekly{table-layout:fixed;width:100%}.mgrid.weekly td,.mgrid.weekly th{padding:6px 4px}.mgrid.weekly .cell{width:44px;height:44px;border-radius:13px}.mgrid.weekly .name{width:280px;min-width:0;font-size:15px;white-space:normal}.mgrid.weekly .stat{width:76px;padding:0 8px}.mgrid.weekly .sechead td{padding-top:18px}@media (max-width:700px){.mgrid.weekly{table-layout:auto;width:auto;min-width:100%}.mgrid.weekly .name{width:130px;min-width:130px;font-size:14px;padding:6px 8px}.mgrid.weekly .cell{width:34px;height:34px;border-radius:10px}.mgrid.weekly .stat{padding:0 6px}}.row>button.primary{width:auto;flex:none;padding-left:18px;padding-right:18px}.row>input{min-width:0}main.mid{max-width:1200px}.widget-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px;align-items:start}.widget-slot{min-width:0}.widget-slot:nth-child(odd):last-child{grid-column:1/-1}.widget{background:var(--card);border-radius:22px;padding:18px}.widget>.row>h2,.widget>h2{font-size:20px;font-weight:700;margin:0 0 4px}.widget .card,.widget .list{background:var(--card2);border-radius:16px}.widget .list>.item+.item,.widget .list>div+div{border-top:.5px solid var(--line)}.widget .item.tap{background:transparent}.widget .row+.sub,.widget h2+.sub{margin-top:2px}@media (max-width:760px){.widget-grid{grid-template-columns:1fr}}.focus-top{border-left:4px solid var(--accent)}.big-title{font-size:20px;font-weight:700;line-height:1.25}.widget-title{color:inherit;text-decoration:none}.widget-title span{color:var(--faint);font-weight:400}.widget-title:hover span{color:var(--accent)}.celebrate{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadein .2s ease}.celebrate-card{position:relative;z-index:2;width:min(380px,100%);text-align:center;background:var(--card);border-radius:28px;padding:28px 22px 22px;animation:popin .45s cubic-bezier(.2,1.4,.4,1);box-shadow:0 20px 60px rgba(0,0,0,.5)}.celebrate-emoji{font-size:64px;line-height:1;margin-bottom:10px;animation:bounce .9s ease .3s 2}.celebrate-title{font-size:24px;font-weight:800;margin:6px 0 8px;color:var(--text);text-transform:none;letter-spacing:0}.celebrate-body{color:var(--muted);margin:0 0 10px;font-size:16px}.celebrate-prize{font-size:26px;font-weight:800;color:var(--accent);margin:6px 0 10px;line-height:1.2}.confetti{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:1}.confetti span{position:absolute;top:-20px;border-radius:2px;animation:confetti-fall linear forwards}@keyframes confetti-fall{to{top:105%;transform:translateX(30px) rotate(2turn)}}@keyframes popin{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-14px)}}@media (prefers-reduced-motion:reduce){.confetti{display:none}.celebrate-card,.celebrate-emoji{animation:none}}.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));grid-gap:10px;gap:10px}.badge{background:var(--card2);border-radius:16px;padding:12px 8px;text-align:center;opacity:.5}.badge.on{opacity:1;box-shadow:inset 0 0 0 1.5px var(--accent)}.badge-emoji{font-size:28px;line-height:1.1}.badge-name{font-size:13px;font-weight:700;margin-top:4px}.badge-desc{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.25}.daygrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;align-items:start}@media (min-width:1180px){.daygrid{grid-template-columns:repeat(7,minmax(0,1fr))}}.daycard{background:var(--card);border-radius:20px;padding:14px;min-width:0}.daycard.today{box-shadow:inset 0 0 0 2px var(--accent)}.daycard.past{opacity:.8}.plan-task{padding:8px 0}.plan-task+.plan-task{border-top:.5px solid var(--line)}.plan-task.top{background:var(--accent-soft);border-radius:14px;padding:10px}.plan-act{padding:0}.movesel,.plan-act{min-height:0;font-size:13px}.movesel{width:84px;height:28px;padding:0 6px;margin:0;background:var(--card2);border-radius:8px;color:var(--accent)}.plan-picker{margin-top:8px}@media (max-width:760px){.daygrid{grid-template-columns:1fr}}.plan-actions{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:nowrap}.daycard .row-title{font-size:15px;overflow-wrap:anywhere}