:root{--ink:#15201e;--slate:#1d2a27;--slate2:#243330;--bone:#ece6d9;--shoot:#59c47a;--shoot-bright:#7adb98;--iris:#8e86c9;--gold:#d4af37;--gold-bright:#f0d78c;--gold-deep:#9a7b2f;--ember:var(--gold);--rose:#c96b6b;--muted:#67766f;--border:#2c3a36;--font-serif:"Source Serif 4", serif;--font-sans:"Inter", sans-serif;--font-mono:"Geist Mono", monospace;--text-screen:22px;--text-title:18px;--text-card:13px;--text-body:13px;--text-sub:12px;--text-meta:11px;--text-label:10px;--text-micro:9.5px;--leading-title:1.2;--leading-snug:1.35;--leading-body:1.45;--space-title-sub:6px;--space-content:12px;--shell-max:460px;--radius-tile:20px;--radius-card:18px;--radius-sheet:22px;--radius-btn:12px;--radius-pill:100px;--radius-chip:10px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--ink);color:var(--bone);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{cursor:pointer;font-family:inherit}input,textarea{font-family:inherit}.shell{max-width:var(--shell-max);background:var(--ink);min-height:100dvh;color:var(--bone);flex-direction:column;margin:0 auto;display:flex;position:relative}.hdr{border-bottom:1px solid var(--border);background:var(--ink);z-index:5;padding:16px 18px 14px;position:sticky;top:0}.hdrtop{grid-template-columns:58px 1fr 58px;align-items:center;column-gap:8px;min-height:58px;margin-bottom:12px;display:grid}.appmark{text-align:center;line-height:1.1;font-family:var(--font-serif);color:var(--bone);grid-column:2;justify-self:center;font-size:19px;font-weight:600}.ovtitle{font-family:var(--font-serif);font-size:var(--text-screen);font-weight:500;line-height:var(--leading-title)}.ovtitle.withend{justify-content:space-between;align-items:center;gap:10px;min-height:28px;display:flex}.ovtitlelbl{min-width:0;line-height:var(--leading-title);display:block}.ovtitle.withend .ovexport{align-self:center;margin-top:1.5px}.hdrsub{font-family:var(--font-sans);font-size:var(--text-sub);color:var(--muted);margin:var(--space-title-sub) 0 0;font-weight:400;line-height:var(--leading-body)}.content{gap:var(--space-content);flex-direction:column;flex:1;padding:14px 14px 96px;display:flex;overflow-y:auto}.tabbar{z-index:20;background:var(--slate);border-top:1px solid var(--border);padding:8px 8px calc(8px + env(safe-area-inset-bottom));display:flex;position:sticky;bottom:0}.tabbtn{color:var(--muted);border-radius:var(--radius-btn);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;min-height:48px;padding:8px 4px;font-size:10px;transition:color .15s,background .15s,transform .12s;display:flex}.tabbtn:active{transform:scale(.98)}.tabbtn.on{color:var(--shoot);background:#59c47a1a}.tabbtn:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--shoot);outline-offset:2px}.placeholder{background:var(--slate);border:1px solid var(--border);border-radius:var(--radius-card);text-align:center;padding:28px 20px}.placeholder p{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.placeholder strong{font-family:var(--font-serif);color:var(--bone);margin-bottom:8px;font-size:18px;font-weight:600;display:block}.previewribbon{z-index:10;text-align:center;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);background:#67766f24;padding:6px 12px;font-size:10px;position:sticky;top:0}.daynav{justify-content:space-between;align-items:center;gap:6px;display:flex}.navbtn{color:var(--muted);background:0 0;border:none;border-radius:10px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.navbtn:hover:not(:disabled){color:var(--bone);background:var(--slate)}.navbtn:disabled{opacity:.25}.daylabel{color:var(--bone);font-family:var(--font-serif);background:0 0;border:none;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:8px;padding:6px 8px;font-size:19px;font-weight:500;display:flex}.daylabel:hover{background:var(--slate)}.daylabel svg{color:var(--muted)}.todaytag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ink);background:var(--shoot);border-radius:6px;padding:2px 6px;font-size:9px}.todaychip{background:var(--slate);border:1px solid var(--border);color:var(--bone);border-radius:100px;align-items:center;gap:5px;margin:10px auto 0;padding:4px 12px;font-size:11.5px;display:flex}.streakchain{align-items:center;gap:7px;margin-top:12px;display:flex}.sprout{color:var(--shoot)}.riskico{color:var(--rose)}.streaknum{font-family:var(--font-serif);color:var(--shoot);font-size:18px;font-weight:600}.streakchain.at_risk .streaknum{color:var(--rose)}.streakchain.reset .streaknum{color:var(--muted)}.streaklbl{color:var(--muted);font-size:12px}.streakchain.at_risk .streaklbl{color:var(--rose)}.chaindots{gap:4px;margin-left:auto;display:flex}.cdot{background:var(--slate2);border-radius:50%;width:8px;height:8px}.cdot.on{background:var(--shoot)}.glance{margin-top:12px}.glancebar{gap:3px;display:flex}.gseg{background:#c96b6b8c;border-radius:3px;flex:1;height:5px;transition:background .25s}.gseg.status-in_progress{background:#d4af37bf}.gseg.status-done{background:var(--shoot)}.gseg.status-not_started{background:#c96b6b8c}.glancelbl{color:var(--muted);margin-top:6px;font-size:11px}.glancelbl strong{color:var(--bone)}.riskbanner{color:var(--bone);background:#c96b6b1a;border:1px solid #c96b6b66;border-radius:14px;flex-wrap:wrap;align-items:flex-start;gap:9px;padding:12px 14px;font-size:12.5px;display:flex}.riskbanner svg{color:var(--rose);flex:none}.riskbanner span{flex:1}.riskbanner strong{color:var(--rose)}.riskbtn{background:var(--rose);color:var(--ink);border-radius:var(--radius-btn);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:4px;width:100%;margin-top:2px;padding:8px 12px;font-size:11.5px;font-weight:600;display:flex}.card{background:var(--slate);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.card.open{border-color:#33453f}.hl{color:var(--shoot);text-underline-offset:2px;font-style:italic;font-weight:700;text-decoration:underline}.sectionlabel{font-family:var(--font-mono);font-size:var(--text-label);text-transform:uppercase;letter-spacing:.12em;color:var(--shoot);padding:0 4px;font-weight:500;line-height:1.3}.setcard{background:var(--slate);border:1px solid var(--border);border-radius:var(--radius-card);flex-direction:column;gap:14px;padding:16px;display:flex}.setnote{font-size:var(--text-meta);color:var(--muted);line-height:var(--leading-body);margin:0}.tilegrid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tilegrid.is-reordering{cursor:grabbing}.tile{text-align:left;background:var(--slate);border:1px solid var(--border);border-radius:var(--radius-tile);min-height:88px;color:var(--bone);touch-action:manipulation;-webkit-user-select:none;user-select:none;flex-direction:column;gap:8px;padding:14px 14px 16px;transition:border-color .2s,background .2s,color .2s,box-shadow .2s,opacity .15s;display:flex;position:relative;overflow:hidden}.tile:active:not(.is-dragging):not(.is-overlay){transform:scale(.975)}.tile.is-dragging{opacity:.35;z-index:1}.tile.is-overlay{cursor:grabbing;touch-action:none;border-color:#d4af3780;transform:scale(1.04);box-shadow:0 14px 36px #00000073}.tile.wide{grid-column:1/-1;min-height:0}@media (prefers-reduced-motion:reduce){.tile.is-overlay{transform:none}}.tile.status-not_started{background:#c96b6b1a;border-color:#c96b6b47}.tile.status-in_progress{background:#d4af371a;border-color:#d4af3747}.tile.status-done{background:linear-gradient(#59c47a29,#59c47a0f);border-color:#59c47a6b;box-shadow:inset 0 1px #59c47a1f}.tile.status-done.met{background:linear-gradient(#59c47a38,#59c47a1a);border-color:#59c47a8c}.tiletop{justify-content:space-between;align-items:center;gap:8px;display:flex}.tileicon{color:var(--muted);flex:none;display:flex}.tile.status-not_started .tileicon{color:var(--rose)}.tile.status-in_progress .tileicon{color:var(--gold)}.tile.status-done .tileicon{color:var(--shoot)}.tilename{font-size:var(--text-body);font-weight:500;line-height:var(--leading-snug);color:var(--bone);flex:1}.tile.wide .tilename{font-size:14px}.morningbadge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--iris);background:#8e86c929;border-radius:4px;padding:2px 5px;font-size:8px;line-height:1.2}.tile.status-done .morningbadge,.tile.status-in_progress .morningbadge{background:#8e86c933}.tilelabel{font-family:var(--font-mono);letter-spacing:.04em;margin-top:auto;font-size:10px;line-height:1.2}.tile.status-not_started .tilelabel{color:var(--rose)}.tile.status-in_progress .tilelabel{color:var(--gold)}.tile.status-done .tilelabel{color:var(--shoot)}.tilemorn{background:var(--iris);border-radius:50%;width:6px;height:6px;position:absolute;top:15px;right:15px}.mbackdrop{z-index:39;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;animation:.28s both backdropin;position:fixed;inset:0}@media (prefers-reduced-motion:reduce){.mbackdrop{animation:none}}@keyframes backdropin{0%{opacity:0}to{opacity:1}}.modal{width:100%;max-width:var(--shell-max);z-index:40;background:var(--slate);border:1px solid var(--border);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;flex-direction:column;max-height:min(92dvh,100dvh - 8px);margin:0 auto;padding:10px 6px 0 16px;animation:.34s cubic-bezier(.22,1,.36,1) both sheetup;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -16px 48px #0000008c}.modalhandle{background:var(--border);opacity:.85;border-radius:2px;width:32px;height:4px;margin:0 auto 14px}@media (prefers-reduced-motion:reduce){.modal{animation:none}}@keyframes sheetup{0%{transform:translateY(110%)}to{transform:translateY(0)}}.modalhead{flex:none;align-items:center;gap:10px;margin-bottom:12px;padding-right:10px;display:flex}.modalicon{color:var(--shoot);display:flex}.modaltitle{font-family:var(--font-serif);font-size:var(--text-title);font-weight:600;line-height:var(--leading-title);flex:1;min-width:0}.modalheadend{flex:none;align-items:center;gap:2px;display:flex}.modalsaved{width:28px;height:28px;color:var(--shoot);pointer-events:none;justify-content:center;align-items:center;display:flex}@media (prefers-reduced-motion:no-preference){.modalsaved{animation:1.2s both savedtick}}@keyframes savedtick{0%{opacity:0;transform:scale(.65)}18%{opacity:1;transform:scale(1)}72%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.modalx{color:var(--muted);background:0 0;border:none;border-radius:9px;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.modalx:hover{color:var(--bone);background:var(--ink)}.modalbody{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-direction:column;flex:auto;gap:16px;min-height:0;padding:2px 10px 12px 0;display:flex;overflow:hidden auto}.modalfoot{padding:8px 10px calc(14px + env(safe-area-inset-bottom)) 0;background:var(--slate);border-top:1px solid #2c3a36a6;flex:none}.modaldone{background:var(--shoot);width:100%;color:var(--ink);border-radius:var(--radius-btn);border:none;padding:13px;font-size:14px;font-weight:600}.steplabel{color:var(--bone);align-items:center;gap:7px;font-size:13px;display:flex}.steplabel.gold{color:var(--gold);font-weight:600}.rdot{border:1px solid var(--border);background:var(--ink);width:34px;height:34px;color:var(--muted);font-family:var(--font-mono);border-radius:50%;flex:none;font-size:12px;transition:transform .12s,background .12s}.rdot.on{background:var(--gold);color:var(--ink);border-color:var(--gold);font-weight:600;box-shadow:0 0 0 4px #d4af3721}.rdot:hover{border-color:var(--gold)}.spinehero{background:var(--slate);border:1px solid var(--border);text-align:center;border-radius:20px;padding:24px 20px 22px}.spinenum{font-family:var(--font-serif);color:var(--shoot);font-size:64px;font-weight:600;line-height:1}.spinelbl{color:var(--muted);margin-top:2px;font-size:13px}.spine{text-align:left;min-height:170px;margin:24px 0 6px;padding-left:calc(50% + 20px);position:relative}.spineline{background:var(--border);width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-1px)}.spinenode{background:var(--shoot);width:34px;height:34px;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:-6px;left:50%;transform:translate(-50%);box-shadow:0 0 0 6px #59c47a26}.spinemile{align-items:center;height:52px;padding-left:26px;display:flex;position:relative}.spinemile .milering{border:2px solid var(--border);background:var(--ink);border-radius:50%;width:14px;height:14px;position:absolute;left:-7px}.spinemile.reached .milering{background:var(--shoot);border-color:var(--shoot)}.milelabel{color:var(--muted);font-size:12px;font-family:var(--font-mono)}.spinemile.reached .milelabel{color:var(--bone)}.hilite{gap:10px;padding:4px 16px 14px;display:flex}.hicard{border:1px solid var(--border);background:var(--ink);border-radius:14px;flex-direction:column;flex:1;gap:3px;padding:12px;display:flex}.hicard.long{border-color:#59c47a59}.hicard.short{border-color:#c96b6b59}.hilbl{text-transform:uppercase;letter-spacing:.08em;font-size:9.5px;font-family:var(--font-mono);color:var(--muted)}.hicard.long .hilbl{color:var(--shoot)}.hicard.short .hilbl{color:var(--rose)}.hival{font-family:var(--font-serif);font-size:17px;font-weight:600}.hidays{color:var(--muted);font-size:11px;font-family:var(--font-mono)}.catstreaks{flex-direction:column;gap:11px;padding:0 16px 18px;display:flex}.csrow{align-items:center;gap:9px;display:flex}.csname{text-overflow:ellipsis;white-space:nowrap;flex:none;width:96px;font-size:12.5px;overflow:hidden}.csbar{background:var(--slate2);border-radius:4px;flex:1;height:7px;overflow:hidden}.csfill{background:var(--shoot);border-radius:4px;height:100%;display:block}.cscur{color:var(--shoot);font-size:10.5px;font-family:var(--font-mono);text-align:right;flex:none;width:52px}.csbest{color:var(--muted);font-size:10.5px;font-family:var(--font-mono);text-align:right;flex:none;width:48px}.chartitle{font-family:var(--font-serif);font-size:var(--text-card);line-height:var(--leading-snug);color:var(--muted);padding:15px 16px 4px;font-weight:500}.celebrate{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#15201edb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.celnum{font-family:var(--font-serif);color:var(--shoot);font-size:96px;font-weight:600;line-height:1}.celcopy{font-family:var(--font-serif);color:var(--bone);margin:18px 0 22px;font-size:20px}.authshell{flex-direction:column;min-height:100dvh;display:flex}.authmain{flex:1;justify-content:center;align-items:center;padding:24px 16px 48px;display:flex}.authcard{width:100%;max-width:360px}.authmark{font-family:var(--font-serif);color:var(--bone);margin-bottom:8px;font-size:28px;font-weight:500}.authsub{color:var(--muted);margin:0 0 20px;font-size:13px;line-height:1.45}.authform{flex-direction:column;gap:12px;display:flex}.authcode{letter-spacing:.35em;text-align:center;font-variant-numeric:tabular-nums;font-size:22px}.autherr{color:var(--rose);margin:14px 0 0;font-size:13px;line-height:1.4}.authconsent{color:var(--muted);cursor:pointer;align-items:flex-start;gap:10px;margin:0 0 16px;font-size:13px;line-height:1.45;display:flex}.authconsent input{accent-color:var(--gold);flex:none;margin-top:2px}.authconsent a{color:var(--bone);text-underline-offset:2px;text-decoration:underline}.savebtn.wide,.ghostbtn.wide{justify-content:center;width:100%}.textin{background:var(--ink);border:1px solid var(--border);width:100%;color:var(--bone);resize:none;border-radius:12px;padding:11px 13px;font-family:inherit;font-size:13.5px}.textin:focus{border-color:var(--shoot);outline:none}.textin.single{resize:none;min-height:0}.stepbtn{border:1px solid var(--border);background:var(--ink);width:29px;height:29px;color:var(--bone);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.stepbtn:active:not(:disabled){background:var(--shoot);color:var(--ink);border-color:var(--shoot)}.stepbtn:disabled{opacity:.3}.stepval{font-family:var(--font-mono);text-align:center;min-width:56px;font-size:15px;font-weight:600}.stepval.sm{min-width:38px;font-size:14px}.chips{flex-wrap:wrap;gap:7px;display:flex}.chip{border-radius:var(--radius-chip);border:1px solid var(--border);background:var(--ink);color:var(--muted);padding:6px 11px;font-size:12px;transition:transform .12s}.chip:active{transform:scale(.98)}.chip.on,.chip.gold{background:var(--gold);color:var(--ink);border-color:var(--gold);font-weight:600}.chip.sm{background:var(--slate2);border-radius:8px;padding:5px 9px;font-size:11px}.chips.tight{background:var(--ink);border:1px solid var(--border);border-radius:12px;gap:6px;padding:9px}.realized{color:var(--muted)}.setnote.pad{padding:0 4px}.setrow{justify-content:space-between;align-items:center;gap:10px;display:flex}.setlabel{font-size:var(--text-body);color:var(--bone);font-weight:500;line-height:var(--leading-snug)}.rangectl{align-items:center;gap:8px;display:flex}.unit{color:var(--muted);font-size:11px;font-family:var(--font-mono)}.ministep{align-items:center;gap:7px;display:flex}.wtargets{gap:10px;display:flex}.wtarget{background:var(--ink);border:1px solid var(--border);border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:8px;padding:12px 6px;display:flex}.wtstage{color:var(--muted);font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em}.lifegoal{align-items:flex-start;gap:8px;display:flex}.lifegoal .textin{flex:1}.somerow{align-items:center;gap:10px;display:flex}.somecheck{border:1.5px solid var(--border);background:var(--ink);width:22px;height:22px;color:var(--ink);border-radius:7px;flex:none;justify-content:center;align-items:center;display:flex}.somecheck.on{background:var(--shoot);border-color:var(--shoot)}.sometext{flex:1;font-size:13px}.somerow.done .sometext{color:var(--muted);text-decoration:line-through}.somedate{color:var(--shoot);font-size:10px;font-family:var(--font-mono);margin-left:8px;text-decoration:none}.addsome{align-items:center;gap:8px;display:flex}.addsome .textin{flex:1}.addbtn{background:var(--shoot);color:var(--ink);border:none;border-radius:10px;align-self:flex-start;align-items:center;gap:5px;padding:8px 13px;font-size:12.5px;font-weight:600;display:flex}.addbtn.ghost{border:1px dashed var(--border);color:var(--muted);background:0 0}.catrow{border-top:1px solid var(--border);align-items:center;gap:10px;padding:10px 0;display:flex}.caticon{color:var(--shoot);display:flex}.catname{font-size:13px}.catdesc{font-size:var(--text-meta);color:var(--muted);font-family:var(--font-mono);margin-left:auto;line-height:1.3}.delbtn{color:var(--muted);background:0 0;border:none;padding:4px;display:flex}.delbtn:hover{color:var(--rose)}.addform{border-top:1px solid var(--border);flex-direction:column;gap:12px;padding-top:14px;display:flex}.formlabel{font-size:var(--text-meta);color:var(--muted);font-weight:500;line-height:1.3}.formlabel.inline{align-items:center;gap:8px;display:flex}.formrow{flex-wrap:wrap;gap:16px;display:flex}.miniin{background:var(--ink);border:1px solid var(--border);width:64px;color:var(--bone);font-family:var(--font-mono);border-radius:9px;padding:6px 8px;font-size:12.5px}.iconrow{gap:8px;display:flex}.iconbtn{border:1px solid var(--border);background:var(--ink);width:38px;height:38px;color:var(--muted);border-radius:11px;justify-content:center;align-items:center;display:flex}.iconbtn.on{background:var(--shoot);color:var(--ink);border-color:var(--shoot)}.emojipick{flex-direction:column;gap:8px;display:flex}.emojigrid{grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;display:grid}.emojibtn{aspect-ratio:1;border:1px solid var(--border);background:var(--ink);border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;display:flex}.emojibtn.on{background:#59c47a29;border-color:#59c47a8c;box-shadow:0 0 0 1px #59c47a40}.emojicustom{flex-direction:column;gap:6px;display:flex}.emojicustom .formlabel{margin:0}.emojiin{font-size:16px}.categoryemoji{justify-content:center;align-items:center;font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;display:inline-flex}.formactions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.ghostbtn{border:1px solid var(--border);color:var(--bone);background:0 0;border-radius:10px;padding:9px 14px;font-size:13px}.ghostbtn.danger{color:var(--rose);border-color:#c96b6b59}.savebtn{background:var(--shoot);color:var(--ink);border:none;border-radius:10px;align-items:center;gap:6px;padding:9px 14px;font-size:13px;font-weight:600;display:flex}.savebtn.disabled{opacity:.4;pointer-events:none}.fieldstack{flex-direction:column;gap:6px;display:flex}.version{text-align:center;color:var(--muted);font-size:10.5px;font-family:var(--font-mono);padding:6px}.calbackdrop{z-index:20;background:#0006;position:fixed;inset:0}.calpop{z-index:21;background:var(--slate);border:1px solid var(--border);border-radius:18px;padding:16px;position:absolute;top:96px;left:14px;right:14px;box-shadow:0 12px 40px #00000080}.calhead{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.calmonth{font-family:var(--font-serif);font-size:16px;font-weight:600}.calgrid{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.calweekdays{margin-bottom:6px}.calwd{text-align:center;color:var(--muted);font-size:10px;font-family:var(--font-mono)}.calcell{aspect-ratio:1;font-size:12.5px;font-family:var(--font-mono);border:none;border-radius:9px;justify-content:center;align-items:center;display:flex}.calcell.empty{background:0 0}.calcell.status-future{background:var(--slate2);color:var(--muted)}.calcell.status-not_started{color:var(--bone);background:#c96b6b2e;border:1px solid #c96b6b52}.calcell.status-in_progress{color:var(--bone);background:#d4af3724;border:1px solid #d4af3752}.calcell.status-done{color:var(--bone);background:#59c47a38;border:1px solid #59c47a8c;font-weight:600}.calcell.today{box-shadow:0 0 0 2px var(--bone)}.calcell.sel{box-shadow:0 0 0 2px var(--iris)}.calcell.risk{box-shadow:0 0 0 2px var(--rose)}.calcell.future{opacity:.3}.calfoot{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.callegend{color:var(--muted);align-items:center;gap:6px;font-size:10.5px;display:flex}.callegend .dot{border-radius:3px;flex:none;width:10px;height:10px}.callegend .dot.status-not_started{background:#c96b6b8c}.callegend .dot.status-in_progress{background:#d4af37bf}.callegend .dot.status-done{background:var(--shoot)}.todaymini{background:var(--shoot);color:var(--ink);border:none;border-radius:100px;padding:5px 12px;font-size:11.5px;font-weight:600}.steprow{justify-content:space-between;align-items:center;display:flex}.stepctl{align-items:center;gap:9px;display:flex}.stepwrap,.hewrap{flex-direction:column;gap:12px;width:100%;display:flex}.heblock{background:var(--ink);border:1px solid var(--border);border-radius:12px;padding:12px 14px 14px}.hemain{grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;gap:10px 12px;display:grid}.hegrid-total-lbl{grid-area:1/1}.effring{flex:none;width:32px;height:32px;position:relative}.effring svg{display:block;transform:rotate(-90deg)}.effringtrack{fill:none;stroke:var(--slate2);stroke-width:3px}.effringfill{fill:none;stroke:var(--shoot);stroke-width:3px;stroke-linecap:round;transition:stroke-dashoffset .4s cubic-bezier(.2,.8,.2,1)}.effringpct{font-family:var(--font-mono);color:var(--bone);pointer-events:none;justify-content:center;align-items:center;font-size:7.5px;font-weight:600;display:flex;position:absolute;inset:0}.hegrid-total-ctl{grid-area:1/2;justify-self:end}.hegrid-eff-lbl{grid-area:2/1;align-items:center;min-width:0;display:flex}.hegrid-eff-ctl{grid-area:2/2;justify-self:end}.hechain{border-left:2px solid var(--border);align-items:center;margin-left:4px;padding-left:14px;display:flex}.hesubrow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.hesubrow .steplabel{color:var(--muted);font-size:12px;line-height:1.2}.hesubrow .goalpill{align-self:center}.goalpill{font-size:11px;font-family:var(--font-mono);color:var(--muted);border:1px solid var(--border);white-space:nowrap;border-radius:100px;flex:none;align-self:flex-start;padding:3px 10px;transition:all .2s}.goalpill.inline{padding:4px 9px;font-size:10px}.goalpill.hit{color:var(--shoot);background:#59c47a1a;border-color:#59c47a59}.hefocus .chip.sm.on{background:var(--gold);color:var(--ink);border-color:var(--gold);font-weight:600}@media (prefers-reduced-motion:reduce){.effringfill{transition:none}}.dlabel{color:var(--muted);margin-top:2px;font-size:11.5px}.togglerow{background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:0;display:flex}.yesnorow{justify-content:space-between;align-items:center;gap:10px;display:flex}.pill{background:var(--slate2);border:1px solid var(--border);border-radius:100px;flex:none;width:42px;height:24px;transition:background .15s;position:relative}.pill.on{background:var(--shoot);border-color:var(--shoot)}.knob{background:var(--bone);border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:2px;left:2px}.pill.on .knob{background:var(--ink);transform:translate(18px)}.timegrid{gap:10px;display:flex}.timefield{flex-direction:column;flex:1;gap:4px;display:flex}.tflabel{color:var(--muted);align-items:center;gap:4px;font-size:11.5px;display:flex}.timein{background:var(--ink);border:1px solid var(--border);color:var(--bone);font-family:var(--font-mono);border-radius:10px;padding:7px 8px;font-size:12.5px}.timein:focus{border-color:var(--shoot);outline:none}.tfhint{color:var(--muted);font-size:9.5px}.duration{justify-content:space-between;align-items:center;display:flex}.autotag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border:1px solid var(--border);border-radius:5px;padding:1px 5px;font-size:8.5px}.durval{font-family:var(--font-mono);color:var(--iris);font-size:16px;font-weight:600}.ratingwrap{justify-content:space-between;align-items:center;gap:10px;padding:2px 0;display:flex;overflow:visible}.ratingwrap .steplabel{flex:none}.ratingscale{flex:none;align-items:center;gap:8px;display:flex;overflow:visible}.ratingend{color:var(--muted);flex:none;font-size:10px;line-height:1}.dots{gap:7px;padding:5px 2px;display:flex;overflow:visible}.targetpath{font-family:var(--font-mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:2px;font-size:11px;display:flex}.tnode{align-items:center;gap:5px;display:flex}.tdot{border:2px solid var(--muted);border-radius:50%;width:9px;height:9px}.tnode.reached .tdot{background:var(--shoot);border-color:var(--shoot)}.tnode.reached{color:var(--shoot)}.tline{background:var(--border);width:18px;height:1px;margin:0 4px}.pills{gap:8px;margin-top:12px;display:flex}.pills.wrap{flex-wrap:wrap;align-items:center;gap:5px 6px}.pills.scroll{padding-bottom:2px;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000 100%)}.pills.scroll::-webkit-scrollbar{display:none}.pill2{border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--muted);white-space:nowrap;background:0 0;flex:none;padding:4px 9px;font-size:11px;line-height:1.2;transition:transform .12s,background .15s,color .15s}.pill2:active{transform:scale(.98)}.pill2.on{background:var(--bone);color:var(--ink);border-color:var(--bone);font-weight:600}.ovnote{font-size:var(--text-sub);color:var(--muted);line-height:var(--leading-body);padding:4px 6px}.lb{flex-direction:column;gap:10px;padding:6px 16px 18px;display:flex}.lbempty{color:var(--muted);font-size:12px}.lbrow{align-items:center;gap:9px;display:flex}.lbname{flex:none;width:88px;font-size:12px}.lbbar{background:var(--slate2);border-radius:5px;flex:1;height:9px;overflow:hidden}.lbfill{background:var(--shoot);border-radius:5px;height:100%;display:block}.lbfill.gold{background:var(--gold)}.lbn{color:var(--muted);font-size:11px;font-family:var(--font-mono);text-align:right;flex:none;width:28px}.sltl{padding:8px 16px 18px}.sltlaxis{height:14px;margin-left:36px;position:relative}.sltlaxis span{color:var(--muted);font-size:8.5px;font-family:var(--font-mono);position:absolute;transform:translate(-50%)}.sltlrow{align-items:center;gap:8px;height:16px;display:flex}.sltldate{width:28px;color:var(--muted);font-size:8.5px;font-family:var(--font-mono);text-align:right;flex:none}.sltltrack{background:var(--slate2);border-radius:4px;flex:1;height:9px;position:relative;overflow:hidden}.sltlgrid{background:var(--border);width:1px;position:absolute;top:0;bottom:0}.sltlband{background:var(--muted);border-radius:4px;position:absolute;top:0;bottom:0}.sltlband.met{background:var(--shoot)}.sltlcaf{background:var(--gold);border-radius:50%;width:7px;height:7px;position:absolute;top:1px;transform:translate(-50%)}.weekcard{padding-bottom:16px}.weektop{padding:8px 16px 4px}.weekbig{flex-direction:column;gap:2px;display:flex}.wbnum{font-family:var(--font-serif);color:var(--shoot);font-size:34px;font-weight:600}.wbnum em{color:var(--muted);font-size:18px;font-style:normal}.wblbl{color:var(--muted);font-size:12px}.weeklast{color:var(--muted);margin:6px 0 0;font-size:11px;line-height:1.4}.adhvalsub{font-size:9px}.delta{font-family:var(--font-mono);margin-left:4px;font-size:10.5px}.delta.up{color:var(--shoot)}.delta.down{color:var(--rose)}.delta.flat{color:var(--muted)}.weekadh{flex-direction:column;gap:9px;padding:10px 16px;display:flex}.adhrow{align-items:center;gap:9px;display:flex}.adhname{width:52px;color:var(--muted);flex:none;font-size:11px;line-height:1.2}.adhbar{flex:1;gap:3px;display:flex}.adhseg{background:var(--slate2);cursor:pointer;border:none;border-radius:2px;flex:1;height:8px;padding:0;transition:transform .12s}.adhseg:active{transform:scaleY(1.15)}.adhseg:disabled{cursor:default}.adhseg.status-not_started{background:#c96b6b8c}.adhseg.status-in_progress{background:#d4af37bf}.adhseg.status-done,.adhseg.on{background:var(--shoot)}.adhval{text-align:right;width:34px;color:var(--muted);font-size:10.5px;font-family:var(--font-mono)}.weekavgs{gap:10px;padding:6px 16px 0;display:flex}.avgcell{background:var(--ink);border:1px solid var(--border);border-radius:12px;flex-direction:column;flex:1;gap:3px;padding:11px 12px;display:flex}.avglbl{color:var(--muted);font-size:10.5px}.avgval{font-family:var(--font-mono);font-size:14px;font-weight:600}.celcard{text-align:center;z-index:2;padding:0 24px;position:relative}.cellabel{color:var(--muted);letter-spacing:.04em;font-size:14px}.leaves{z-index:1;pointer-events:none;position:absolute;inset:0}.leaf{color:var(--shoot);opacity:0;position:absolute;top:-30px}.daydial{isolation:isolate;background:radial-gradient(circle at 50% 42%,#243330f2,#1d2a27fa);border:1px solid #ffffff0f;border-radius:50%;flex:none;grid-column:3;justify-self:end;width:58px;height:58px;transition:box-shadow .45s,border-color .45s;position:relative;box-shadow:inset 0 1px #ffffff0d,0 4px 14px #00000047}.daydial:after{content:"";opacity:0;box-shadow:0 0 14px 2px var(--daydial-glow,transparent);pointer-events:none;z-index:-1;border-radius:50%;transition:opacity .45s;position:absolute;inset:-3px}.daydial.started{--daydial-glow:#59c47a38;border-color:#59c47a47}.daydial.started:after{opacity:1}.daydial.complete{--daydial-glow:#59c47a47;border-color:#59c47a6b;box-shadow:inset 0 0 14px #59c47a14,0 4px 14px #00000047}.daydial.complete:after{opacity:1}.daydialsvg{display:block;position:absolute;inset:0}.daydialtrack{fill:none;stroke:#ffffff0a;stroke-width:4.5px}.daydialseg{transition:stroke .45s cubic-bezier(.2,.8,.2,1)}.daydialseg.empty{stroke:#c96b6b61}.daydialseg.filled,.daydialseg.status-done{stroke:#59c47a8c}.daydialseg.status-in_progress{stroke:var(--gold)}.daydialseg.status-not_started{stroke:#c96b6b61}.daydial.complete .daydialseg.filled,.daydial.complete .daydialseg.status-done{stroke:#59c47a8c}.daydialinner{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.daydialpctrow{justify-content:center;align-items:center;gap:0;line-height:1;display:flex}.daydialnum,.daydialunit{font-family:var(--font-serif);font-size:13px;font-weight:600;line-height:1;transition:color .4s}.daydialnum{color:var(--bone);letter-spacing:-.02em}.daydial.complete .daydialnum{color:#59c47ad9}.daydialunit{color:var(--bone);letter-spacing:-.02em}.daydial.complete .daydialunit{color:#59c47ab3}@media (prefers-reduced-motion:reduce){.daydialseg,.daydial,.daydialnum,.daydialunit{transition:none}}.logstats{margin-top:12px}.weekglance{grid-template-columns:repeat(7,1fr);gap:6px;margin-top:12px;display:grid}.weekday{aspect-ratio:1;background:var(--slate2);width:100%;color:var(--bone);border:1px solid #0000;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:0;transition:transform .12s,border-color .2s,background .2s,box-shadow .2s;display:flex}.weekday:active{transform:scale(.96)}.weekday.status-not_started{background:#c96b6b24;border-color:#c96b6b52}.weekday.status-in_progress{background:#d4af3724;border-color:#d4af3752}.weekday.status-done{background:#59c47a38;border-color:#59c47a8c}.weekday.status-done .weekdaynum{color:var(--shoot)}.weekday.selected{box-shadow:0 0 0 2px var(--bone)}.weekday.today .weekdaynum{color:var(--shoot)}.weekdaywd{font-family:var(--font-mono);letter-spacing:.02em;text-transform:uppercase;color:var(--muted);margin-bottom:1px;font-size:7px;line-height:1}.weekdaynum{font-family:var(--font-mono);font-size:11px;font-weight:600;line-height:1}.chartframe.is-empty{opacity:.72}.chartempty{color:var(--muted);margin:0;padding:0 16px 8px;font-size:12px;line-height:1.45}.spineeyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-family:var(--font-mono);color:var(--muted);margin-bottom:2px}.hiliteempty{color:var(--muted);margin:0;padding:4px 16px 18px;font-size:12.5px;line-height:1.5}.pills-sep{color:var(--gold);-webkit-user-select:none;user-select:none;flex:none;padding:0 2px;font-size:16px;font-weight:700;line-height:1}.pills-divider{background:var(--border);flex:none;align-self:center;width:1px;height:20px;margin:0 2px}.sleepstack{flex-direction:column;gap:8px;display:flex}.sleepbridge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);text-align:center;margin:0;padding:2px 0;font-size:10px}.sltl.ghost .sltlband{background:var(--slate2)}.sltl.ghost .sltlcaf{background:var(--border)}.ovheader{flex-direction:column;gap:10px;margin-top:12px;display:flex}.ovheader .pills{margin-top:0}.ovtoolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ovexport{border:1px solid var(--border);color:var(--bone);font-family:var(--font-sans);background:#ece6d90f;border-radius:9px;flex:none;align-items:center;gap:5px;padding:5px 9px;font-size:11px;font-weight:500;line-height:1;display:inline-flex}.ovexport:disabled{opacity:.55}.ovexport:not(:disabled):active{background:#ece6d91f}.pdfstage{background:var(--ink);width:680px;color:var(--bone);pointer-events:none;position:fixed;top:0;left:-20000px}.pdfdoc{background:var(--ink);width:680px}.pdfsection{flex-direction:column;gap:12px;padding:8px 0 24px;display:flex}.pdfbody.content{gap:12px;padding:0;overflow:visible}.pdfcover{background:var(--slate);border:1px solid var(--border);border-radius:var(--radius-card);flex-direction:column;justify-content:space-between;gap:40px;min-height:960px;padding:56px 44px 44px;display:flex}.pdfmark{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-size:12px}.pdfcovertitle{font-family:var(--font-serif);color:var(--bone);margin:18px 0 0;font-size:46px;font-weight:500;line-height:1.05}.pdfcovername{font-family:var(--font-serif);color:var(--gold-bright);margin:14px 0 0;font-size:20px}.pdfcovermeta{font-family:var(--font-mono);color:var(--muted);margin:8px 0 0;font-size:12px}.pdfcoverlist{flex-direction:column;gap:12px;display:flex}.pdfcoverlabel{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:10.5px}.pdfcoverchips{flex-wrap:wrap;gap:8px;display:flex}.pdfcoverchip{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--slate2);color:var(--bone);padding:6px 12px;font-size:12.5px}.pdfcoverfoot{font-family:var(--font-mono);color:var(--muted);margin:0;font-size:10.5px}.pdfhead{border-bottom:1px solid var(--border);flex-direction:column;gap:4px;padding:0 2px 10px;display:flex}.pdfeyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-size:10px}.pdftitle{font-family:var(--font-serif);color:var(--bone);margin:0;font-size:26px;font-weight:500}.pdfsub{color:var(--muted);font-size:12px}.rangepills{border-radius:var(--radius-pill);border:1px solid var(--border);background:#ece6d90d;align-items:center;gap:2px;padding:3px;display:inline-flex}.rangepill{border-radius:var(--radius-pill);color:var(--muted);font-size:11px;font-family:var(--font-mono);background:0 0;border:none;padding:6px 12px;line-height:1;transition:background .15s,color .15s}.rangepill:active{transform:scale(.97)}.rangepill.on{background:var(--bone);color:var(--ink);font-weight:600}.chartlegend{flex-wrap:wrap;gap:10px 14px;padding:0 16px 8px;display:flex}.chartlegenditem{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:inline-flex}.chartlegendswatch{border-radius:2px;flex:none;width:10px;height:10px}.chartlegendswatch.dashed{border:1px dashed;border-radius:0;width:14px;height:0}.chartstat{color:var(--muted);margin:0;padding:0 16px 8px;font-size:12px;line-height:1.4}.charttip{padding:8px 10px}.charttiptitle{margin-bottom:4px;font-weight:600}.charttipmuted{opacity:.75;margin-top:2px}.consistency{gap:3px;padding:8px 16px 4px;display:flex}.consistencyseg{background:var(--slate2);cursor:pointer;border:none;border-radius:2px;flex:1;height:10px;padding:0}.consistencyseg.status-not_started{background:#c96b6b8c}.consistencyseg.status-in_progress{background:#d4af37bf}.consistencyseg.status-done{background:var(--shoot)}.consistencyseg:disabled{cursor:default}.consistency.ghost .consistencyseg{background:var(--slate2)}.stepconsistency{padding-bottom:8px}.stepfeed{flex-direction:column;gap:12px;padding:4px 16px 18px;display:flex}.stepfeedempty{color:var(--muted);padding:6px 16px 18px;font-size:12px;line-height:1.5}.stepentry{border:1px solid var(--border);background:var(--ink);border-radius:12px;overflow:hidden}.stepentryhead{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.stepentrydate{font-family:var(--font-mono);color:var(--muted);font-size:11px}.stepentrydot{border-radius:50%;flex:none;width:8px;height:8px}.stepentrydot.status-not_started{background:#c96b6bbf}.stepentrydot.status-in_progress{background:#d4af37e6}.stepentrydot.status-done{background:var(--shoot)}.stepentryblock{padding:0 12px 12px}.stepentryblock.tomorrow{border-top:1px solid var(--border);margin-top:-2px;padding-top:10px}.stepentrylbl{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px;font-size:10px;display:block}.stepentryblock p{color:var(--bone);margin:0;font-size:13px;line-height:1.45}.visionhero{padding-bottom:14px}.visionstats{grid-template-columns:repeat(4,1fr);gap:8px;padding:4px 16px 12px;display:grid}.visionstat{flex-direction:column;gap:2px;min-width:0;display:flex}.visionstatnum{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--bone);font-size:22px;font-weight:600;line-height:1}.visionstat.warn .visionstatnum{color:var(--rose)}.visionstatlbl{font-size:10px;font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.visionstack{background:var(--slate2);border-radius:100px;gap:2px;height:8px;margin:0 16px 8px;display:flex;overflow:hidden}.visionseg{border-radius:100px;min-width:4px}.visionseg.status-overdue{background:var(--rose)}.visionseg.status-upcoming{background:var(--iris)}.visionseg.status-undated{background:var(--muted)}.visionseg.status-done{background:var(--shoot)}.visionlist{flex-direction:column;gap:0;padding:0 8px 10px;display:flex}.visionitem{border-bottom:1px solid var(--border);grid-template-columns:10px minmax(0,1fr) auto;align-items:start;gap:10px;padding:10px 8px;display:grid}.visionitem:last-child{border-bottom:none}.visionitem.status-done .visionitemtitle{color:var(--muted);-webkit-text-decoration:line-through #67766f80;text-decoration:line-through #67766f80}.visiondot{background:var(--muted);border-radius:50%;width:8px;height:8px;margin-top:5px}.visiondot.status-overdue{background:var(--rose)}.visiondot.status-upcoming{background:var(--iris)}.visiondot.status-done{background:var(--shoot)}.visionitembody{flex-direction:column;gap:2px;min-width:0;display:flex}.visionitemtitle{color:var(--bone);margin:0;font-size:13px;line-height:1.35}.visionitemmeta{font-size:10.5px;font-family:var(--font-mono);color:var(--muted)}.visionbadge{font-size:9.5px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--muted);flex:none;margin-top:2px;padding:3px 7px;line-height:1}.visionbadge.status-overdue{color:var(--rose);background:#c96b6b1a;border-color:#c96b6b59}.visionbadge.status-upcoming{color:var(--iris);background:#8e86c91a;border-color:#8e86c959}.visionbadge.status-done{color:var(--shoot-bright);background:#59c47a1a;border-color:#59c47a59}.horizon{--horizon-lane:28px;--horizon-axis:20px;--horizon-gap:2px;grid-template-columns:minmax(72px,30%) minmax(0,1fr);align-items:start;gap:10px;padding:6px 10px 12px;display:grid}.horizonylabels{gap:var(--horizon-gap);flex-direction:column;min-width:0;padding-top:0;display:flex}.horizonylabelhead{height:var(--horizon-axis);flex-shrink:0}.horizonylabel{height:var(--horizon-lane);color:var(--bone);text-overflow:ellipsis;white-space:nowrap;align-items:center;font-size:11.5px;line-height:1.2;display:flex;overflow:hidden}.horizonplot{min-width:0;padding-inline:10px}.horizoncoords{gap:var(--horizon-gap);box-shadow:inset 0 0 0 1px var(--border);background:#2433308c;border-radius:10px;flex-direction:column;display:flex;position:relative;overflow:visible}.horizonoverlay{z-index:0;pointer-events:none;position:absolute;inset:0}.horizongridline{top:var(--horizon-axis);background:#ece6d90f;width:1px;position:absolute;bottom:0;transform:translate(-50%)}.horizontoday{background:var(--iris);opacity:.9;z-index:1;border-radius:1px;width:1.5px;position:absolute;top:2px;bottom:2px;transform:translate(-50%)}.horizonaxis{z-index:1;height:var(--horizon-axis);flex-shrink:0;position:relative}.horizontick{font-size:9px;font-family:var(--font-mono);color:var(--muted);white-space:nowrap;pointer-events:none;line-height:1;position:absolute;top:3px;transform:translate(-50%)}.horizonlanes{z-index:1;gap:var(--horizon-gap);flex-direction:column;padding-bottom:4px;display:flex;position:relative}.horizonlane{height:var(--horizon-lane);position:relative}.horizonbar{z-index:1;border-radius:100px;min-width:6px;height:10px;position:absolute;top:9px}.horizonbar.status-upcoming{background:linear-gradient(90deg,#d4af3759,#d4af37d9)}.horizonbar.status-overdue{background:linear-gradient(90deg,#c96b6b73,#c96b6be6)}.horizonbar.status-done{background:linear-gradient(90deg,#59c47a59,#59c47ae6)}.horizonmark{border:2px solid var(--ink);z-index:2;border-radius:50%;width:14px;height:14px;position:absolute;top:7px;transform:translate(-50%);box-shadow:0 0 0 1px #ece6d91f}.horizonmark.status-upcoming{background:var(--gold-bright)}.horizonmark.status-overdue{background:var(--rose)}.horizonmark.status-done{background:var(--shoot-bright)}.skeletonblock{flex-direction:column;gap:12px;display:flex}.skeletonline{background:linear-gradient(90deg, var(--slate2) 0%, var(--border) 50%, var(--slate2) 100%);background-size:200% 100%;border-radius:8px;height:14px;animation:1.2s ease-in-out infinite shimmer}.skeletonline.wide{width:72%}.skeletonline.medium{width:48%;margin:0 auto}.skeletongrid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.skeletontile{border-radius:var(--radius-tile);background:linear-gradient(90deg, var(--slate2) 0%, var(--border) 50%, var(--slate2) 100%);background-size:200% 100%;min-height:88px;animation:1.2s ease-in-out infinite shimmer}.goalssection{flex-direction:column;gap:11px;display:flex}.goalssections{flex-direction:column;gap:20px;display:flex}.goalsgroup{flex-direction:column;gap:8px;animation:.45s cubic-bezier(.22,1,.36,1) both goalsgroupin;display:flex}@media (prefers-reduced-motion:reduce){.goalsgroup,.goalssectionrow{animation:none}}@keyframes goalsgroupin{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.goalsgrouplabel{font-family:var(--font-mono);font-size:var(--text-label);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding:0 4px;font-weight:500;line-height:1.3}.goalsgroupcards{background:var(--slate);border:1px solid var(--border);border-radius:var(--radius-card);flex-direction:column;display:flex;overflow:hidden}.goalssectionrow{text-align:left;border:none;border-bottom:1px solid var(--border);width:100%;color:var(--bone);background:0 0;border-radius:0;align-items:center;gap:12px;padding:14px 14px 14px 12px;transition:background .18s,padding-left .18s;animation:.4s cubic-bezier(.22,1,.36,1) both goalsrowin;display:flex}.goalsgroupcards .goalssectionrow:last-child{border-bottom:none}@keyframes goalsrowin{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.goalssectionrow:active{background:#ffffff08;padding-left:14px}.goalssectionrow:active .goalssectionchev{opacity:1;color:var(--bone);transform:translate(3px)}.goalssectionicon{border-radius:11px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;transition:transform .18s;display:flex}.goalssectionrow:active .goalssectionicon{transform:scale(.94)}.goalssectionrow.accent-gold .goalssectionicon{color:var(--gold);background:#d4af371f;border:1px solid #d4af3738}.goalssectionrow.accent-iris .goalssectionicon{color:var(--iris);background:#8e86c924;border:1px solid #8e86c93d}.goalssectionrow.accent-shoot .goalssectionicon{color:var(--shoot-bright);background:#59c47a1f;border:1px solid #59c47a38}.goalssectionrow.accent-neutral .goalssectionicon{background:var(--slate2);color:var(--muted);border:1px solid var(--border)}.goalssectionbody{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.goalssectiontitle{font-size:var(--text-body);font-weight:600;line-height:var(--leading-snug);color:var(--bone)}.goalssectionmeta{font-size:var(--text-meta);color:var(--muted);line-height:var(--leading-snug);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.goalssectioncount{font-size:var(--text-label);font-family:var(--font-mono);background:var(--slate2);color:var(--muted);border-radius:var(--radius-pill);flex:none;padding:3px 8px;font-weight:600;line-height:1}.goalssectionchev{color:var(--muted);opacity:.45;flex:none;transition:transform .18s,opacity .18s,color .18s}.goalsmodal .modalbody{gap:0}.goalsmodal.gold .modalicon{color:var(--gold)}.goalsmodal.iris .modalicon{color:var(--iris)}.goalsmodal.shoot .modalicon{color:var(--shoot)}.goalsmodalcontent{flex-direction:column;gap:14px;padding-bottom:8px;display:flex}.goalsmodalcontent.compact,.goalsmodalcontent.tight{gap:10px}.goalsmodalcontent.tight .goalsempty{padding:18px 14px}.goalsmodalintro{color:var(--muted);margin:0;font-size:12px;line-height:1.55}.goalsmodalcontent.compact .goalsmodalintro{font-size:11.5px;line-height:1.4}.goallist{background:var(--ink);border:1px solid var(--border);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.goalrow{border-bottom:1px solid var(--border);grid-template-columns:22px minmax(0,1fr) 28px;align-items:start;gap:10px;padding:10px 10px 10px 12px;display:grid}.goalrow:last-child{border-bottom:none}.goalrow.done .goalrowtitle{color:var(--muted);-webkit-text-decoration:line-through #67766f8c;text-decoration:line-through #67766f8c}.goalrow .somecheck{margin-top:1px}.goalrowbody{flex-direction:column;gap:6px;min-width:0;display:flex}.goalrowtitle{width:100%;color:var(--bone);font:inherit;font-size:var(--text-body);font-weight:500;line-height:var(--leading-snug);resize:none;white-space:pre-wrap;word-break:break-word;field-sizing:content;background:0 0;border:none;min-height:1.35em;margin:0;padding:0;overflow:hidden}.goalrowtitle:focus{outline:none}.goalrowtitle.readonly{display:block}.goalrowchips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.datechip{flex:none;align-items:center;min-height:22px;display:inline-flex;position:relative}.datechipbtn{border:1px solid var(--border);background:var(--slate2);color:var(--muted);border-radius:var(--radius-pill);font-size:10.5px;font-family:var(--font-mono);padding:3px 9px;line-height:1.2;transition:border-color .15s,color .15s,background .15s}.datechip.set .datechipbtn{color:var(--bone)}.datechip.done.set .datechipbtn{color:var(--shoot-bright);background:#59c47a1a;border-color:#59c47a59}.datechip.aim.set .datechipbtn{color:var(--gold-bright);background:#d4af371a;border-color:#d4af3752}.datechippanel{align-items:center;gap:4px;animation:.16s both datechipin;display:inline-flex}@keyframes datechipin{0%{opacity:.4;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.datechippanel{animation:none}}.datechipsel{appearance:none;background:var(--slate2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2367766f' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 6px center;border:1px solid var(--border);color:var(--bone);border-radius:var(--radius-pill);font-size:10.5px;font-family:var(--font-mono);height:22px;padding:3px 18px 3px 8px;line-height:1.2}.datechip.aim.open .datechipsel{background-color:#d4af371a;border-color:#d4af3759}.datechip.done.open .datechipsel{background-color:#59c47a1a;border-color:#59c47a59}.datechipsel:focus{border-color:#d4af378c;outline:none}.goalsmodalheadrow{justify-content:space-between;align-items:center;gap:10px;display:flex}.goalsmodalgroup{flex-direction:column;gap:8px;display:flex}.goalsmodalgroup+.goalsmodalgroup{border-top:1px solid var(--border);padding-top:14px}.goalsmodalgrouplabel{font-family:var(--font-mono);font-size:var(--text-label);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding:0 2px;font-weight:500;line-height:1.3}.goalspanel{background:var(--ink);border:1px solid var(--border);border-radius:12px;flex-direction:column;padding:0 12px;display:flex}.goalspanel .setrow{border-bottom:1px solid var(--border);padding:12px 0}.goalspanel .setrow:last-child{border-bottom:none}.goalspanel .wtargets{padding:12px 0}.goalsitemlist,.goalslist,.goalscatlist{flex-direction:column;gap:8px;display:flex}.goalsmodalcontent.compact .goalsitemlist,.goalsmodalcontent.compact .goalslist{gap:6px}.goalsitemlist>*,.goalslist>*,.goalscatlist>*,.targetblock{animation:.38s cubic-bezier(.22,1,.36,1) both goalsrowin}.goalsitemlist>:first-child,.goalslist>:first-child,.goalscatlist>:first-child,.targetblock:first-of-type{animation-delay:20ms}.goalsitemlist>:nth-child(2),.goalslist>:nth-child(2),.goalscatlist>:nth-child(2){animation-delay:60ms}.goalsitemlist>:nth-child(3),.goalslist>:nth-child(3),.goalscatlist>:nth-child(3){animation-delay:.1s}.goalsitemlist>:nth-child(4),.goalslist>:nth-child(4),.goalscatlist>:nth-child(4){animation-delay:.14s}.goalsitemlist>:nth-child(5),.goalslist>:nth-child(5),.goalscatlist>:nth-child(5){animation-delay:.18s}.goalsitemlist>:nth-child(n+6),.goalslist>:nth-child(n+6),.goalscatlist>:nth-child(n+6){animation-delay:.22s}@media (prefers-reduced-motion:reduce){.goalsitemlist>*,.goalslist>*,.goalscatlist>*,.targetblock{animation:none}}.goalsitemcard{background:var(--ink);border:1px solid var(--border);border-radius:14px;align-items:flex-start;gap:8px;padding:12px;transition:border-color .15s;display:flex}.goalsitemcard.compact,.goalslistitem.compact{border-radius:12px;flex-direction:column;align-items:stretch;gap:8px;padding:10px}.goalsitemcard:focus-within{border-color:#59c47a73}.goalsitemcard .textin{resize:none;background:0 0;border:none;flex:1;min-height:44px;padding:2px 0}.goalsitemcard.compact .textin{min-height:36px;padding:0;font-size:13px;line-height:1.35}.goalslistitem{background:var(--ink);border:1px solid var(--border);border-radius:14px;align-items:center;gap:10px;padding:12px;transition:opacity .2s,border-color .2s,background .2s;display:flex}.goalslistitem.done,.goalsitemcard.done{background:#59c47a0d;border-color:#59c47a38}.goalslistitem .sometext{flex:1;min-width:0;font-size:13px;line-height:1.35}.goalslisttext{resize:none;flex:1;min-width:0;font-size:13px;line-height:1.35;background:0 0!important;border:none!important;min-height:36px!important;padding:0!important}.goalsaddbar,.goalsadd{z-index:2;background:linear-gradient(180deg, #1d2a2700 0%, var(--slate) 28%);padding:14px 0 4px;position:sticky;bottom:0}.goalsmodalcontent.compact .goalsadd,.goalsmodalcontent.compact .goalsaddbar,.goalsmodalcontent.tight .goalsadd,.goalsmodalcontent.tight .goalsaddbar{padding:10px 0 2px}.goalsaddbar{align-items:center;gap:8px;display:flex}.goalsaddbar .textin{flex:1}.goalsaddbtn{border-radius:10px;flex:none;justify-content:center;width:40px;height:40px;padding:0}.goalsadd{justify-content:center;align-self:stretch;width:100%}.goalsempty{text-align:center;color:var(--muted);background:var(--ink);border:1px dashed var(--border);border-radius:12px;margin:0;padding:22px 16px;font-size:12px;line-height:1.55}.goalscatrow{background:var(--ink);border:1px solid var(--border);border-radius:12px;align-items:flex-start;gap:10px;padding:11px 12px;display:flex}.goalscaticon{width:32px;height:32px;color:var(--shoot);background:#59c47a1a;border-radius:9px;flex:none;justify-content:center;align-items:center;display:flex}.goalscatbody{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.goalscatbody .catname{font-size:13px;font-weight:600;line-height:1.2}.goalscatbody .catdesc{color:var(--muted);margin-left:0;font-size:11px;line-height:1.3}.goalscatactions{flex:none;align-items:flex-start;gap:6px;display:flex}.goalseditbtn{justify-content:center;align-items:center;padding:7px 10px;display:inline-flex}.goalsdelbtn{align-self:flex-start}.setcard.compact{gap:12px;padding:12px}.monthyear{flex:1;grid-template-columns:1fr 1fr;gap:4px;min-width:0;display:grid}.monthyearsel{appearance:none;background:var(--slate2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2367766f' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 7px center;border:1px solid var(--border);color:var(--bone);border-radius:var(--radius-pill);font-size:10.5px;font-family:var(--font-mono);width:100%;min-width:0;padding:5px 22px 5px 10px;line-height:1.2}.monthyearsel:focus{border-color:#59c47a80;outline:none}.monthyearsel:disabled{opacity:.4}.goalsitemtop{align-items:flex-start;gap:8px;display:flex}.goalsitemtop .somecheck{margin-top:2px}.goalsitemtop .textin,.goalsitemtop .sometext,.goalsitemtop .goalslisttext{flex:1;min-width:0}.goalsmeta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.goalsmetagroup{align-items:center;gap:6px;min-width:0;display:flex}.goalsmetagroup.grow{flex:140px}.goalsmetagroup.done{flex:none;margin-left:auto}.goalsdatelbl{font-size:9.5px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);flex:none;line-height:1}.goalscomplete{color:var(--bone);align-items:center;gap:10px;min-width:0;font-size:12.5px;font-weight:600;display:flex}.goalsitemcard.done,.goalslistitem.done{opacity:1}.targetblock{background:var(--ink);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:8px;padding:12px;display:flex}.targetblock.off{opacity:.55}.targetblockhead{justify-content:space-between;align-items:center;gap:10px;font-size:13px;font-weight:600;line-height:1;display:flex}.targetblock .setrow{flex-wrap:wrap;gap:8px;padding:8px 0 0}.targetblock .setlabel{color:var(--muted);font-size:12px;font-weight:500}.targetblock .wtargets{flex-wrap:wrap;gap:8px;display:flex}.targetblock .wtarget{min-width:88px}.goalscatrow.off{opacity:.55}.goalscatrow.locked{background:#59c47a0a}.switch{border:1px solid var(--border);background:var(--slate2);border-radius:100px;flex:none;width:36px;height:22px;padding:2px;transition:background .18s,border-color .18s;position:relative}.switch.on{background:var(--shoot);border-color:var(--shoot)}.switch.locked{opacity:.7}.switchknob{background:var(--bone);border-radius:50%;width:16px;height:16px;transition:transform .18s;display:block;transform:translate(0)}.switch.on .switchknob{transform:translate(14px)}.subsectionlabel{font-size:var(--text-meta);color:var(--bone);padding:0 4px;font-weight:600;line-height:1.3}.savedflash{font-family:var(--font-mono);color:var(--shoot);flex:none;align-self:center;font-size:10px}.exportbtn{background:var(--ink);border:1px solid var(--border);width:100%;color:var(--bone);border-radius:var(--radius-btn);justify-content:center;align-items:center;gap:7px;padding:11px 14px;font-size:13px;display:flex}.exportbtn:disabled{opacity:.6}.accountcard{gap:10px}.textlink{color:var(--muted);text-align:center;background:0 0;border:none;width:100%;padding:6px 0;font-size:12.5px}.textlink.danger{color:var(--rose)}.tzhint{margin-top:-6px}.badgesummary{font-family:var(--font-sans);font-size:var(--text-sub);color:var(--muted);margin:var(--space-title-sub) 0 0;font-weight:400;line-height:var(--leading-body)}.badgehero{background:linear-gradient(170deg, #d4af371a 0%, var(--slate) 40%);border-radius:var(--radius-card);border:1px solid #d4af3738;padding:22px 20px 20px}.badgehero-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.badgehero-eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:var(--text-label);font-weight:500;font-family:var(--font-mono);color:var(--gold);line-height:1.3}.badgehero-risk{font-size:10px;font-family:var(--font-mono);color:var(--rose);border-radius:var(--radius-pill);background:#c96b6b1f;border:1px solid #c96b6b59;align-items:center;gap:4px;padding:3px 8px;line-height:1;display:inline-flex}.badgehero-main{align-items:baseline;gap:10px;display:flex}.badgehero-num{font-family:var(--font-serif);color:var(--gold-bright);letter-spacing:-.02em;font-size:52px;font-weight:600;line-height:1}.badgehero-unit{color:var(--muted);flex-direction:column;font-size:13px;line-height:1.4;display:flex}.badgehero-best{color:var(--muted);opacity:.7;font-size:11px}.milestonebar{justify-content:space-between;gap:8px;margin-top:18px;display:flex}.milestone{flex-direction:column;flex:1;align-items:center;gap:6px;display:flex}.milestone-ring{display:block}.milestone-label{flex-direction:column;align-items:center;gap:1px;display:flex}.milestone-days{font-size:12px;font-family:var(--font-mono);color:var(--muted);font-weight:600;line-height:1}.milestone.earned .milestone-days{color:var(--gold-bright)}.milestone-status{font-size:9px;font-family:var(--font-mono);color:var(--muted);opacity:.65;line-height:1}.milestone.earned .milestone-status{color:var(--gold);opacity:1}.badgesection{padding-bottom:16px}.badgesection-note{color:var(--muted);margin:0;padding:0 16px 12px;font-size:12px;line-height:1.45}.badgeempty{color:var(--muted);margin:0;padding:4px 16px 16px;font-size:12px;line-height:1.5}.badgeicongrid{grid-template-columns:repeat(auto-fill,46px);justify-content:start;gap:8px;padding:6px 16px 16px;display:grid}.badgeicon{border:1px solid var(--border);background:var(--slate2);width:46px;height:46px;color:var(--muted);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;transition:transform .12s,border-color .15s,background .15s;display:flex}.badgeicon:active{transform:scale(.96)}.badgeicon.earned{color:var(--gold-bright);background:linear-gradient(145deg,#f0d78c47 0%,#d4af372e 45%,#9a7b2f38 100%);border-color:#d4af37a6;box-shadow:inset 0 1px #f0d78c40,0 0 0 1px #d4af372e,0 4px 14px #d4af371f}.badgedetail-desc{color:var(--bone);margin:0 0 10px;font-size:14px;line-height:1.5}.badgedetail-meta{font-size:11px;font-family:var(--font-mono);color:var(--muted);margin:0}.badgemodal .modalicon{width:36px;height:36px;color:var(--gold-bright);background:linear-gradient(145deg,#f0d78c47 0%,#d4af372e 45%,#9a7b2f38 100%);border:1px solid #d4af37a6;border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex;box-shadow:inset 0 1px #f0d78c40,0 0 0 1px #d4af372e}.badgemodal .modaltitle{color:var(--gold-bright)}.badgemodal .badgedetail-meta{color:var(--gold)}.badgemodal .badgedetail-desc{color:var(--bone)}.badgegrid{grid-template-columns:1fr;gap:6px;padding:4px 16px 16px;display:grid}.badgetile{border:1px solid var(--border);background:var(--ink);border-radius:12px;align-items:center;gap:12px;padding:10px 12px;display:flex}.badgetile.almost{border-color:#d4af3759}.badgetile.earned{border-color:#d4af3773}.badgetile.locked{opacity:.65}.badgetile-icon{background:var(--slate2);width:34px;height:34px;color:var(--muted);border-radius:9px;flex:none;justify-content:center;align-items:center;display:flex}.badgetile.earned .badgetile-icon{color:var(--gold-bright);background:linear-gradient(145deg,#f0d78c47,#d4af3729);border:1px solid #d4af3759}.badgetile.almost .badgetile-icon{color:var(--gold);background:#d4af371f}.badgetile-body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.badgetile-title{font-size:12.5px;font-weight:600;line-height:1.3}.badgetile-desc{color:var(--muted);font-size:11px;line-height:1.35}.badgetile-progress{background:var(--slate2);border-radius:2px;height:3px;margin-top:3px;overflow:hidden}.badgetile-progressfill{background:var(--gold);border-radius:2px;height:100%;display:block}.badgetile-meta{color:var(--muted);font-size:10px;font-family:var(--font-mono);margin-top:1px;line-height:1}.catstreaklist{flex-direction:column;gap:8px;padding:4px 16px 16px;display:flex}.catstreakrow{grid-template-columns:80px minmax(0,2fr) 32px 48px;align-items:center;gap:8px;display:grid}.catstreakname{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1;overflow:hidden}.catstreakbar{background:var(--slate2);border-radius:3px;height:5px;overflow:hidden}.catstreakfill{background:var(--shoot);border-radius:3px;height:100%;display:block}.catstreakcur{color:var(--shoot);font-size:10px;font-family:var(--font-mono);text-align:right;line-height:1}.catstreakbest{color:var(--muted);font-size:10px;font-family:var(--font-mono);text-align:right;line-height:1}@media (width>=360px){.badgegrid{grid-template-columns:1fr 1fr}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:no-preference){.celnum{animation:.5s cubic-bezier(.2,.9,.3,1.4) both pop}.celcopy,.celcard .savebtn{animation:.5s .2s both fadeup}.leaf{animation:2.6s linear both fall}.spinenode.live{animation:.5s cubic-bezier(.2,.9,.3,1.4) both grow}@keyframes pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes fadeup{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes grow{0%{transform:translate(-50%)scale(0)}to{transform:translate(-50%)scale(1)}}@keyframes fall{0%{opacity:0;transform:translateY(0)rotate(0)}10%{opacity:.9}to{opacity:.9;transform:translateY(102vh)rotate(220deg)}}}
