:root{--bg:#0e1412;--surface:#151d1a;--surface-2:#1b2521;--raised:#212d28;--line:#27332e;--text:#ece7dc;--muted:#94a199;--faint:#66746c;--accent:#86c49f;--accent-ink:#0e1412;--accent-soft:#86c49f24;--time:#e2b46e;--time-soft:#e2b46e26;--metric:#62c6c0;--metric-soft:#62c6c021;--warn:#e7a35b;--warn-soft:#e7a35b21;--bad:#ef8d80;--bad-soft:#ef8d8021;--b-howon:#86c49f;--b-lucas:#a9b3ff;--b-hub:#e2b46e;--b-me:#c9c3b6;--shadow:0 10px 30px #00000059;--display:"Sora", "Segoe UI", system-ui, sans-serif;--body:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;--tabbar-h:66px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root{--bg:#eef1ee;--surface:#fff;--surface-2:#f4f6f3;--raised:#fff;--line:#dde3de;--text:#18211d;--muted:#5d6b63;--faint:#8b978f;--accent:#2f7a55;--accent-ink:#fff;--accent-soft:#2f7a551c;--time:#9a6414;--time-soft:#9a64141f;--metric:#13807a;--metric-soft:#13807a1a;--warn:#a85f12;--warn-soft:#a85f121a;--bad:#b23b2c;--bad-soft:#b23b2c1a;--b-howon:#2f7a55;--b-lucas:#4553b0;--b-hub:#9a6414;--b-me:#6b665c;--shadow:0 10px 30px #14281e1f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:var(--body);font-size:15.5px;line-height:1.5}a{color:var(--accent);text-underline-offset:3px}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{max-width:460px;padding-inline:16px;padding-block:0 calc(var(--tabbar-h) + 72px + env(safe-area-inset-bottom,0px));margin:0 auto}@media (min-width:900px){.app.wide{max-width:780px}}h1,h2,h3{font-family:var(--display);letter-spacing:-.015em;text-wrap:balance;font-weight:600;line-height:1.2}h1{margin:8px 0 6px;font-size:24px}h2{margin:0 0 10px;font-size:17px}h3{margin:14px 0 6px;font-size:15px}p{margin:6px 0}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:13.5px}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:11.5px;font-weight:700}.pagehead{margin-top:6px}.pagehead p{color:var(--muted);font-size:14px}.head{top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);justify-content:space-between;align-items:center;margin-inline:-16px;padding-block:8px;padding-inline:16px;display:flex;position:sticky}.logo{font-family:var(--display);letter-spacing:-.01em;color:var(--text);align-items:center;gap:8px;min-height:44px;font-size:16px;font-weight:600;text-decoration:none;display:flex}.logo i{background:var(--accent);width:24px;height:24px;color:var(--accent-ink);border-radius:8px;place-items:center;display:grid}.logo i svg{width:14px;height:14px}.iconbtn{width:44px;height:44px;color:var(--muted);border-radius:14px;place-items:center;display:grid}.iconbtn:hover{background:var(--surface)}.avatar{background:var(--surface-2);border:1px solid var(--line);width:34px;height:34px;color:var(--text);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid}.greet small{color:var(--muted);font-size:13.5px;display:block}.datenav{align-items:center;gap:2px;margin-top:2px;margin-left:-10px;display:flex}.datenav h1{margin:0;font-size:21px}.datenav .arrow{width:44px;height:44px;color:var(--muted);border-radius:14px;place-items:center;text-decoration:none;display:grid}.datenav .arrow:hover{background:var(--surface)}.datenav .arrow.off{opacity:.25;pointer-events:none}.datebtn{text-align:left;align-items:center;gap:6px;min-height:44px;padding:0 4px;display:flex}.datebtn svg{width:16px;height:16px;color:var(--muted);flex:none}.chips{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.chip{background:var(--surface);border:1px solid var(--line);min-height:30px;color:var(--muted);border-radius:99px;align-items:center;gap:6px;padding:0 12px;font-size:12.5px;font-weight:600;text-decoration:none;display:inline-flex}.chip .dot{background:var(--accent);border-radius:50%;width:7px;height:7px;display:inline-block}.chip.metric .dot{background:var(--metric)}.chip.warm .dot{background:var(--time)}.chip.faint .dot{background:var(--faint)}a.chip{min-height:36px}a.chip:hover{color:var(--text)}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.summary{background:var(--surface);border:1px solid var(--line);border-radius:22px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;margin-top:16px;padding:16px;display:grid}.ring{width:92px;height:92px;position:relative}.ring svg{width:92px;height:92px;transform:rotate(-90deg)}.ring .track{stroke:var(--surface-2)}.ring .val{stroke:var(--accent);transition:stroke-dashoffset .5s cubic-bezier(.2,.8,.2,1)}.ring .num{text-align:center;place-items:center;display:grid;position:absolute;inset:0}.ring .num b{font-family:var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:22px;font-weight:600;line-height:1;display:block}.ring .num span{color:var(--muted);font-size:11px}.sumtxt .lbl{color:var(--muted);font-size:12.5px}.upnext{background:var(--accent-soft);border-radius:14px;margin-top:4px;padding:10px 12px}.upnext .k{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:700}.upnext .v{margin-top:2px;font-weight:600;line-height:1.3}.upnext .v em{color:var(--time);font-variant-numeric:tabular-nums;margin-right:6px;font-style:normal}.minis{border-top:1px solid var(--line);grid-column:1/-1;grid-template-columns:repeat(3,1fr);padding-top:12px;display:grid}.minis div{text-align:center}.minis div+div{border-left:1px solid var(--line)}.minis b{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:17px;font-weight:600;display:block}.minis span{color:var(--muted);font-size:12px}.minis .streak b{color:var(--time)}.warn{background:var(--warn-soft);color:var(--text);border-radius:14px;margin-top:10px;padding:10px 14px;font-size:13.5px}.warn:before{content:"!";background:var(--warn);width:18px;height:18px;color:var(--accent-ink);vertical-align:1px;border-radius:50%;place-items:center;margin-right:8px;font-size:11px;font-weight:800;display:inline-grid}.section{margin-top:18px}.sechead{justify-content:space-between;align-items:center;width:100%;min-height:44px;padding:0 2px;display:flex}.sechead .t{font-family:var(--display);letter-spacing:-.01em;align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.sechead .t svg{width:18px;height:18px;color:var(--muted)}.sechead .t .donepill{font-family:var(--body);color:var(--accent);background:var(--accent-soft);border-radius:99px;padding:3px 8px;font-size:11px;font-weight:700}.sechead .c{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:12.5px;display:flex}.sechead .c svg{width:16px;height:16px;transition:transform .2s}.section.closed .sechead .c svg{transform:rotate(-90deg)}.section.closed .rows{display:none}.rows{background:var(--surface);border:1px solid var(--line);border-radius:20px;margin:4px 0 0;padding:4px 0;list-style:none}.trow{grid-template-columns:44px 64px minmax(0,1fr) 34px;align-items:start;min-height:56px;padding:8px 8px 8px 4px;display:grid;position:relative}.trow:before{content:"";background:var(--line);width:2px;position:absolute;top:0;bottom:0;left:25px}.rows>.trow:first-child:before,.rows>.nowline:first-child+.trow:before{top:24px}.rows>.trow:last-child:before{bottom:calc(100% - 24px)}.rows>.trow:only-child:before{display:none}.check{z-index:1;place-items:center;width:44px;height:44px;margin-top:-2px;display:grid;position:relative}.check i{border:2px solid var(--faint);background:var(--surface);border-radius:50%;place-items:center;width:24px;height:24px;transition:background .2s,border-color .2s;display:grid}.check i svg{width:13px;height:13px;color:var(--accent-ink);opacity:0;transition:opacity .15s,transform .25s cubic-bezier(.3,1.6,.5,1);transform:scale(.4)}.trow.done .check i{background:var(--accent);border-color:var(--accent)}.trow.done .check i svg{opacity:1;transform:scale(1)}.trow.pop .check i{animation:.35s pop}@keyframes pop{40%{transform:scale(1.18)}}.trow.next .check i{border-color:var(--time);box-shadow:0 0 0 4px var(--time-soft)}.trow .time{font-variant-numeric:tabular-nums;color:var(--time);white-space:nowrap;padding-top:10px;font-size:13px;font-weight:600}.trow.done .time{color:var(--faint)}.trow .body{min-width:0;padding-top:8px}.trow .title{font-size:15px;font-weight:600;line-height:1.3}.trow.done .title{color:var(--muted)}.trow .meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:3px;font-size:12.5px;display:flex}.trow .meta svg{width:13px;height:13px;color:var(--faint);flex:none}.more{width:34px;height:44px;color:var(--faint);border-radius:10px;place-items:center;margin-top:-2px;display:grid}.more svg{width:16px;height:16px;transition:transform .2s}.trow.open .more svg{transform:rotate(180deg)}.detail{color:var(--muted);grid-column:3/5;padding:6px 8px 4px 0;font-size:13.5px;line-height:1.5}.trow:not(.open) .detail{display:none}.nowline{color:var(--time);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:8px;padding:2px 12px 2px 16px;font-size:11px;font-weight:700;list-style:none;display:flex}.nowline:after{content:"";background:var(--time);opacity:.5;flex:1;height:1px}.badge{opacity:.85;white-space:nowrap;vertical-align:1px;border:1px solid;border-radius:99px;padding:3px 7px;font-size:11px;font-weight:700;line-height:1;display:inline-block}.b-howon{color:var(--b-howon)}.b-lucas{color:var(--b-lucas)}.b-huberman{color:var(--b-hub)}.b-me{color:var(--b-me)}.b-warn{color:var(--warn)}.b-status{color:var(--muted)}.insight{background:var(--surface);border:1px solid var(--line);border-radius:18px;align-items:flex-start;gap:12px;margin-top:12px;padding:14px 16px;display:flex}.insight>svg{width:20px;height:20px;color:var(--metric);flex:none;margin-top:2px}.insight .k{letter-spacing:.06em;text-transform:uppercase;color:var(--metric);font-size:11px;font-weight:700}.insight p{margin:2px 0 0;font-weight:500}.insight.hero{background:var(--metric-soft);border-color:#0000;margin-top:18px}.insight.good>svg{color:var(--accent)}.insight.watch>svg{color:var(--warn)}.tabbar{z-index:30;background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);width:100%;max-width:460px;padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}@media (min-width:900px){.tabbar{border:1px solid var(--line);border-radius:22px 22px 0 0}}.tab{min-height:54px;color:var(--faint);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11.5px;font-weight:600;text-decoration:none;display:flex}.tab svg{width:22px;height:22px}.tab.on{color:var(--text)}.tab.on svg{color:var(--accent)}.fab{z-index:31;bottom:calc(var(--tabbar-h) + 14px + env(safe-area-inset-bottom,0px));background:var(--accent);width:56px;height:56px;color:var(--accent-ink);box-shadow:var(--shadow);border-radius:18px;place-items:center;transition:transform .15s;display:grid;position:fixed;right:max(16px,50vw - 214px)}.fab svg{width:24px;height:24px}.fab:active{transform:scale(.94)}.toast{left:50%;bottom:calc(var(--tabbar-h) + 86px + env(safe-area-inset-bottom,0px));opacity:0;z-index:32;background:var(--raised);border:1px solid var(--line);color:var(--text);box-shadow:var(--shadow);pointer-events:none;white-space:nowrap;border-radius:99px;padding:9px 14px;font-size:13.5px;font-weight:600;transition:opacity .25s,transform .25s;position:fixed;transform:translate(-50%)translateY(10px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.toast b{color:var(--accent)}.scrim{z-index:40;opacity:0;pointer-events:none;background:#00000073;transition:opacity .25s;position:fixed;inset:0}.scrim.on{opacity:1;pointer-events:auto}.sheet{z-index:41;background:var(--surface);border-top:1px solid var(--line);width:100%;max-width:460px;padding:8px 16px calc(20px + env(safe-area-inset-bottom,0px));visibility:hidden;border-radius:26px 26px 0 0;max-height:88%;transition:transform .32s cubic-bezier(.2,.8,.2,1);position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%,105%)}.sheet.on{visibility:visible;transform:translate(-50%)}.grab{background:var(--line);border-radius:9px;width:40px;height:5px;margin:4px auto 10px}.sheet h2{margin:0 0 12px;font-size:18px}.opts{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.opt{background:var(--surface-2);border:1px solid var(--line);border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:84px;font-size:13px;font-weight:600;display:flex}.opt svg{width:22px;height:22px;color:var(--metric)}.opt:hover{border-color:var(--accent)}.biginput{border:1px solid var(--line);background:var(--surface-2);width:100%;height:54px;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;border-radius:14px;padding:0 14px;font-size:20px;font-weight:600}.scale{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.scale label{position:relative}.scale input{opacity:0;position:absolute;inset:0}.scale span{background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:14px;place-items:center;height:52px;font-size:16px;font-weight:700;display:grid}.scale input:checked+span{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.scale input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.scale-l{color:var(--faint);justify-content:space-between;margin-top:6px;font-size:12px;display:flex}.list a,.list button{width:100%;min-height:54px;color:var(--text);border-radius:14px;align-items:center;gap:12px;padding:0 6px;font-weight:600;text-decoration:none;display:flex}.list a:hover,.list button:hover{background:var(--surface-2)}.list svg{width:20px;height:20px;color:var(--muted);flex:none}.list span{text-align:left;flex:1}.list small{color:var(--faint);font-weight:500}.cal{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal .dow{color:var(--faint);padding:4px 0;font-size:11.5px;font-weight:700}.cal a,.cal span.d{font-variant-numeric:tabular-nums;height:44px;color:var(--text);border-radius:12px;place-items:center;font-size:14px;font-weight:600;text-decoration:none;display:grid;position:relative}.cal a:hover{background:var(--surface-2)}.cal i{border-radius:50%;width:5px;height:5px;position:absolute;bottom:5px;left:50%;transform:translate(-50%)}.cal .hi i{background:var(--accent)}.cal .mid i{background:var(--time)}.cal .lo i{background:var(--faint)}.cal .sel{background:var(--accent-soft);color:var(--accent)}.cal span.d{color:var(--faint)}.legend{color:var(--muted);justify-content:center;gap:14px;margin-top:12px;font-size:12px;display:flex}.legend i{border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}.card{background:var(--surface);border:1px solid var(--line);border-radius:20px;margin-top:12px;padding:16px}.card>h2:first-child{margin-top:0}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:18px;min-width:0;padding:12px 14px}.stat b{font-family:var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:20px;font-weight:600;display:block}.stat span{color:var(--muted);font-size:12.5px;display:block}a.stat{color:var(--text);text-decoration:none}a.stat:hover{border-color:var(--accent)}.bar{background:var(--surface-2);border-radius:99px;height:8px;overflow:hidden}.bar i{background:var(--accent);border-radius:99px;height:100%;transition:width .3s;display:block}input[type=text],input[type=number],input[type=search],input[type=time],input[type=date],select,textarea{font:inherit;border:1px solid var(--line);background:var(--surface-2);min-height:46px;color:var(--text);border-radius:12px;width:100%;min-width:0;padding:10px 12px;font-size:16px}textarea{min-height:80px}label.f{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}label.f .hint{color:var(--faint);font-size:12px;font-weight:400}.fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.fields .full{grid-column:1/-1}.btn,form button:where(:not(.check,.more,.tab,.opt,.iconbtn,.sechead,.arrow,.datebtn)){font:inherit;cursor:pointer;background:var(--accent);min-height:46px;color:var(--accent-ink);border:0;border-radius:14px;justify-content:center;align-items:center;gap:6px;padding:0 18px;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex}.btn.ghost,form button.ghost{color:var(--text);border:1px solid var(--line);background:0 0}.btn.small,form button.small{border-radius:99px;min-height:36px;padding:0 12px;font-size:13px}.btn.block{width:100%}.daypick{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.daypick label{position:relative}.daypick input{opacity:0;position:absolute;inset:0}.daypick span{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;border-radius:12px;place-items:center;height:44px;padding:0 2px;font-size:13px;font-weight:700;display:grid}.daypick input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.daypick input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.switch{justify-content:space-between;align-items:center;gap:12px;min-height:48px;font-weight:600;display:flex}.switch input{appearance:none;background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:99px;flex:none;width:46px;height:28px;transition:background .2s;position:relative}.switch input:after{content:"";background:var(--muted);border-radius:50%;width:20px;height:20px;transition:transform .2s,background .2s;position:absolute;top:3px;left:3px}.switch input:checked{background:var(--accent);border-color:var(--accent)}.switch input:checked:after{background:var(--accent-ink);transform:translate(18px)}.cmd{gap:8px;display:flex}.cmd input{flex:1}.msg{border-radius:14px;margin-top:10px;padding:10px 14px;font-size:14px}.msg.ok{background:var(--accent-soft)}.msg.err{background:var(--bad-soft);color:var(--bad)}.tip{border-top:1px solid var(--line);padding:14px 0}.tip:first-child{border-top:0;padding-top:2px}.tip .txt{font-weight:600;line-height:1.4}.tip .why{color:var(--muted);margin-top:4px;font-size:14px}.tip .caution{background:var(--warn-soft);border-radius:12px;margin-top:8px;padding:8px 12px;font-size:13.5px}.tip .meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;font-size:12.5px;display:flex}.tip .meta a{color:var(--muted)}.tip .acts{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.tip .acts form{align-items:center;gap:6px;display:inline-flex}.tip details summary{cursor:pointer;list-style:none}.tip details summary::-webkit-details-marker{display:none}.addroutine{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.conflict{grid-template-columns:1fr;gap:8px;margin-top:8px;display:grid}@media (min-width:420px){.conflict{grid-template-columns:1fr 1fr}}.conflict>div{background:var(--surface-2);border-radius:14px;padding:10px 12px;font-size:14px}.conflict>div p{margin:6px 0 0}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:9px 8px}th{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11.5px}td.n{font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:0}.tw{margin-inline:-4px;overflow-x:auto}svg.spark{width:100%;height:56px;margin-top:6px;display:block}.kv{border-top:1px solid var(--line);justify-content:space-between;gap:12px;padding:10px 0;font-size:14.5px;display:flex}.kv:first-child{border-top:0}.kv b{font-variant-numeric:tabular-nums}.pager{justify-content:space-between;align-items:center;gap:8px;margin-top:12px;display:flex}.searchbar{top:calc(env(safe-area-inset-top,0px) + 60px);z-index:5;background:var(--bg);padding-block:6px;position:sticky}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.tip details>summary.btn{list-style:none}.tip details[open]>summary.btn{background:var(--surface-2);color:var(--text)}
