@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--canvas:#fafafa;--card:#fff;--ink:#111113;--ink-2:#55555c;--ink-3:#8a8a91;--ink-4:#b9b9c0;--hair:#0000000f;--hair-strong:#0000001a;--accent:#0a6cff;--accent-soft:#0a6cff1a;--accent-mid:#0a6cff47;--c-blue:#0a6cff;--c-indigo:#5b5bd6;--c-teal:#12a5a5;--c-orange:#f0762c;--c-purple:#8b5cf6;--c-green:#17a866;--c-red:#e5484d;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-xl:28px;--sh-1:0 1px 2px #1018280a, 0 1px 3px #1018280a;--sh-2:0 4px 16px #1018280f, 0 1px 3px #1018280a;--sh-3:0 18px 48px #10182824, 0 2px 8px #1018280f;--spring:cubic-bezier(.32, .72, 0, 1);--ease:cubic-bezier(.4, 0, .2, 1);--topbar-h:52px;--tabbar-h:62px;--pad:16px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;letter-spacing:-.011em;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Inter,Segoe UI,system-ui,sans-serif;font-size:15px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}input,select,textarea{background:0 0;border:0;outline:none}a{color:var(--accent);text-decoration:none}::selection{background:var(--accent-soft)}.app{flex-direction:column;min-height:100%;display:flex}.topbar{z-index:30;height:var(--topbar-h);padding:0 var(--pad);-webkit-backdrop-filter:saturate(180%)blur(20px);border-bottom:1px solid var(--hair);background:#fafafab8;align-items:center;gap:10px;display:flex;position:sticky;top:0}.topbar h1{letter-spacing:-.02em;margin:0;font-size:19px;font-weight:700}.topbar .sub{color:var(--ink-3);font-size:12px;font-weight:500}.topbar-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.content{padding:14px var(--pad) calc(var(--tabbar-h) + 28px);flex:1;width:100%;max-width:780px;margin:0 auto}.tabbar{z-index:40;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);-webkit-backdrop-filter:saturate(180%)blur(24px);border-top:1px solid var(--hair);background:#ffffffd1;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar button{color:var(--ink-4);letter-spacing:0;transition:color .18s var(--ease), transform .3s var(--spring);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:10.5px;font-weight:550;display:flex}.tabbar button.on{color:var(--accent)}.tabbar button:active{transform:scale(.92)}@media (width>=1024px){.app{flex-direction:row}.rail{border-right:1px solid var(--hair);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fff9;flex-direction:column;flex:0 0 232px;gap:4px;width:232px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.rail .brand{align-items:center;gap:10px;padding:4px 8px 20px;display:flex}.rail button{border-radius:var(--r-md);color:var(--ink-2);transition:background .16s var(--ease), color .16s;align-items:center;gap:11px;padding:9px 11px;font-size:14.5px;font-weight:550;display:flex}.rail button:hover{background:#00000009}.rail button.on{background:var(--accent-soft);color:var(--accent)}.main{flex-direction:column;flex:1;min-width:0;display:flex}.content{max-width:1000px;padding-bottom:48px}.tabbar{display:none}}.rail{display:none}@media (width>=1024px){.rail{display:flex}}.card{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh-1);padding:16px}.card.tight{padding:12px 14px}.section-title{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);margin:22px 4px 9px;font-size:12px;font-weight:650}.h-big{letter-spacing:-.03em;margin:2px 0;font-size:28px;font-weight:700}.muted{color:var(--ink-3)}.tiny{font-size:12px}.row{align-items:center;gap:10px;display:flex}.spread{justify-content:space-between;align-items:center;gap:10px;display:flex}.stack{flex-direction:column;gap:10px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grid2>*{min-width:0}.pill{color:var(--ink-2);background:#0000000b;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.pill.accent{background:var(--accent-soft);color:var(--accent)}.pill.warn{color:#c2570f;background:#f0762c1f}.pill.high{color:#c1272c;background:#e5484d1f}.btn{white-space:nowrap;background:var(--card);color:var(--ink);box-shadow:var(--sh-1);transition:transform .25s var(--spring), background .16s, opacity .16s;border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:10px 16px;font-size:14.5px;font-weight:600;display:inline-flex}.btn:active{transform:scale(.96)}.btn.primary{background:var(--accent);color:#fff;box-shadow:0 6px 18px #0a6cff47}.btn.ghost{box-shadow:none;background:#0000000a}.btn.sm{padding:7px 12px;font-size:13px}.btn[disabled]{opacity:.45;pointer-events:none}.iconbtn{width:34px;height:34px;color:var(--ink-2);transition:background .16s, transform .25s var(--spring);border-radius:999px;place-items:center;display:grid}.iconbtn:hover{background:#0000000d}.iconbtn:active{transform:scale(.9)}.segmented{background:#0000000d;border-radius:999px;padding:2px;display:inline-flex;position:relative}.segmented button{color:var(--ink-2);transition:color .18s var(--ease);border-radius:999px;padding:6px 15px;font-size:13.5px;font-weight:600}.segmented button.on{color:var(--ink);box-shadow:var(--sh-1);background:#fff}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--ink-2);font-size:12.5px;font-weight:600}.input{border-radius:var(--r-md);transition:box-shadow .18s var(--ease), background .18s;box-sizing:border-box;background:#00000009;width:100%;min-width:0;padding:11px 13px;font-size:15px}input[type=time].input,input[type=date].input,input[type=datetime-local].input{appearance:none;max-width:100%}.input:focus{box-shadow:0 0 0 3px var(--accent-soft), inset 0 0 0 1px var(--accent-mid);background:#fff}.switch{width:46px;height:28px;transition:background .28s var(--spring);background:#0000001a;border-radius:999px;flex:none;position:relative}.switch.on{background:#30d158}.switch i{width:24px;height:24px;transition:transform .32s var(--spring);background:#fff;border-radius:999px;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.switch.on i{transform:translate(18px)}.check{width:25px;height:25px;box-shadow:inset 0 0 0 1.6px var(--ink-4);color:#0000;transition:box-shadow .2s var(--ease), background .2s var(--ease), transform .34s var(--spring);border-radius:999px;flex:none;place-items:center;display:grid}.check:active{transform:scale(.86)}.check.on{background:var(--accent);box-shadow:inset 0 0 0 1.6px var(--accent);color:#fff}.check.on svg{animation:pop .42s var(--spring)}@keyframes pop{0%{opacity:0;transform:scale(.3)}60%{opacity:1;transform:scale(1.18)}to{transform:scale(1)}}.tasklist{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden}.taskrow{align-items:flex-start;gap:12px;padding:12px 14px;display:flex;position:relative}.taskrow+.taskrow:before{content:"";background:var(--hair);height:1px;position:absolute;top:0;left:51px;right:0}.taskrow .title{letter-spacing:-.012em;font-weight:550}.taskrow.done .title{color:var(--ink-4);text-decoration:line-through}.taskrow .meta{flex-wrap:wrap;gap:6px;margin-top:5px;display:flex}.drag{color:var(--ink-4);cursor:grab;align-self:center}.taskrow.dragover{background:var(--accent-soft)}.quickadd{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh-2);align-items:center;gap:8px;padding:6px 6px 6px 14px;display:flex}.quickadd input{flex:1;padding:10px 0;font-size:15.5px}.quickadd input::placeholder{color:var(--ink-4)}.qa-preview{flex-wrap:wrap;gap:6px;padding:8px 6px 2px;display:flex}.cal-head{align-items:center;gap:8px;margin-bottom:12px;display:flex}.daystrip{scrollbar-width:none;gap:6px;padding:2px 0 8px;display:flex;overflow-x:auto}.daystrip::-webkit-scrollbar{display:none}.daycell{border-radius:var(--r-md);text-align:center;background:var(--card);width:46px;box-shadow:var(--sh-1);transition:transform .3s var(--spring), background .2s;flex:none;padding:7px 0 8px}.daycell .dw{color:var(--ink-3);text-transform:uppercase;font-size:10.5px;font-weight:600}.daycell .dn{letter-spacing:-.02em;font-size:17px;font-weight:650}.daycell.on{background:var(--accent);color:#fff}.daycell.on .dw{color:#fffc}.daycell:active{transform:scale(.94)}.daycell .dots{justify-content:center;gap:2px;height:4px;margin-top:3px;display:flex}.daycell .dots i{background:var(--ink-4);border-radius:999px;width:4px;height:4px}.daycell.on .dots i{background:#ffffffd9}.timeline{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh-1);position:relative;overflow:hidden}.tl-inner{position:relative}.tl-hour{border-top:1px solid var(--hair);position:absolute;left:0;right:0}.tl-hour span{color:var(--ink-4);background:var(--card);padding:0 3px;font-size:10.5px;font-weight:600;position:absolute;top:-8px;left:8px}.tl-now{z-index:5;height:0;position:absolute;left:0;right:0}.tl-now:before{content:"";background:var(--c-red);height:2px;position:absolute;top:-1px;left:46px;right:0}.tl-now:after{content:"";background:var(--c-red);border-radius:999px;width:9px;height:9px;position:absolute;top:-4px;left:42px;box-shadow:0 0 0 4px #e5484d24}.ev{color:#fff;transition:transform .3s var(--spring);cursor:pointer;border-radius:11px;padding:6px 9px;font-size:12.5px;font-weight:600;position:absolute;left:52px;right:8px;overflow:hidden;box-shadow:0 4px 12px #1018281f}.ev:active{transform:scale(.985)}.ev .when{opacity:.86;font-size:11px;font-weight:500}.ev.habitmark{color:var(--ink-2);box-shadow:none;border-left:2.5px dashed var(--ink-4);border-radius:6px;font-weight:600;background:#00000008!important}.weekgrid{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden}.weekgrid-head{border-bottom:1px solid var(--hair);top:var(--topbar-h);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:6;background:#ffffffe6;display:grid;position:sticky}.weekgrid-head div{text-align:center;color:var(--ink-3);padding:7px 4px;font-size:11px;font-weight:650}.weekgrid-head div.today{color:var(--accent)}.weekgrid-head div b{color:var(--ink);font-size:15.5px;font-weight:650;display:block}.weekgrid-head div.today b{color:var(--accent)}.weekbody{display:grid;position:relative}.weekcol{border-left:1px solid var(--hair);position:relative}.weekcol:first-child{border-left:0}.weekcol .ev{border-radius:8px;padding:4px 6px;font-size:11px;left:2px;right:2px}.gutter{position:relative}.gutter span{color:var(--ink-4);font-size:10px;font-weight:600;position:absolute;right:6px;transform:translateY(-50%)}.month{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh-1);padding:10px 8px 12px}.month-dow{grid-template-columns:repeat(7,1fr);display:grid}.month-dow div{text-align:center;color:var(--ink-3);text-transform:uppercase;padding-bottom:6px;font-size:10.5px;font-weight:650}.month-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.mday{aspect-ratio:1/1.12;transition:background .18s var(--ease), transform .3s var(--spring);border-radius:11px;flex-direction:column;align-items:center;gap:3px;padding:5px 4px 3px;display:flex}.mday:hover{background:#00000008}.mday:active{transform:scale(.94)}.mday .n{font-size:13.5px;font-weight:550}.mday.out .n{color:var(--ink-4)}.mday.today .n{background:var(--accent);color:#fff;border-radius:999px;place-items:center;width:24px;height:24px;font-weight:650;display:grid}.mday.sel{background:var(--accent-soft)}.mday .dots{flex-wrap:wrap;justify-content:center;gap:2.5px;display:flex}.mday .dots i{border-radius:999px;width:5px;height:5px}.mday .bar{border-radius:2px;width:78%;height:3px}.sheet-backdrop{z-index:60;animation:fade .24s var(--ease);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#14141847;position:fixed;inset:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet{z-index:61;background:var(--card);box-shadow:var(--sh-3);max-height:88vh;padding:8px 18px calc(26px + env(safe-area-inset-bottom));animation:slideup .42s var(--spring);border-radius:22px 22px 0 0;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}@keyframes slideup{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet .grabber{background:var(--ink-4);opacity:.5;border-radius:999px;width:38px;height:5px;margin:6px auto 12px}.sheet h2{letter-spacing:-.025em;margin:0 0 2px;font-size:21px;font-weight:700}@media (width>=1024px){.sheet{width:520px;animation:zoom .34s var(--spring);border-radius:20px;max-height:84vh;padding:18px 22px 24px;inset:50% auto auto 50%;transform:translate(-50%,-50%)}@keyframes zoom{0%{opacity:0;transform:translate(-50%,-46%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}}.ring{display:block}.habitcard{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh-1);padding:14px}.habitcard .top{align-items:center;gap:12px;display:flex}.hicon{border-radius:12px;flex:none;place-items:center;width:38px;height:38px;display:grid}.stats3{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;display:grid}.stat{border-radius:var(--r-md);background:#00000007;padding:8px 10px}.stat .k{color:var(--ink-3);text-transform:uppercase;letter-spacing:.03em;font-size:10.5px;font-weight:650}.stat .v{letter-spacing:-.02em;font-size:17px;font-weight:700}.heat{grid-auto-columns:1fr;grid-auto-flow:column;gap:2.5px;width:100%;padding:2px;display:grid}.heat::-webkit-scrollbar{display:none}.heat .wk{grid-template-rows:repeat(7,1fr);gap:2.5px;display:grid}.heat i{aspect-ratio:1;background:#0000000d;border-radius:2.5px;width:100%;display:block}.sparkline{width:100%;height:34px;display:block}.logrow{color:var(--ink-2);border-bottom:1px solid var(--hair);white-space:pre-wrap;word-break:break-word;padding:7px 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}.logrow:last-child{border-bottom:0}.badge-dry{color:#b8560c;background:#f0762c1f;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:650}.empty{text-align:center;color:var(--ink-3);padding:34px 20px}.empty .big{color:var(--ink-2);margin-top:8px;font-size:15px;font-weight:600}.skel{background:linear-gradient(90deg,#0000000b,#00000013,#0000000b) 0 0/200% 100%;border-radius:8px;animation:1.3s linear infinite shim}@keyframes shim{0%{background-position:200% 0}to{background-position:-200% 0}}.fadein{animation:fadein .34s var(--spring)}@keyframes fadein{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.toast{left:50%;bottom:calc(var(--tabbar-h) + 18px);z-index:80;color:#fff;box-shadow:var(--sh-3);animation:slideup .34s var(--spring);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#18181beb;border-radius:999px;padding:10px 16px;font-size:13.5px;font-weight:550;position:fixed;transform:translate(-50%)}@media (width>=1024px){.only-mobile{display:none!important}}.hero{flex-direction:column;gap:14px;display:flex}.hero-rings{justify-content:space-between;gap:6px;display:flex}@media (width>=560px){.hero{flex-direction:row-reverse;justify-content:space-between;align-items:center}.hero-rings{gap:10px}}.cal-head{flex-direction:column;gap:10px;padding:2px 2px 12px;display:flex}.cal-nav{align-items:center;gap:6px;display:flex}.cal-label{flex:1;align-items:baseline;gap:10px;min-width:0;display:flex}.cal-label>div{letter-spacing:-.022em;white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:680;overflow:hidden}@media (width>=620px){.cal-head{flex-direction:row;justify-content:space-between;align-items:center}.cal-nav{flex:0 auto}}.leadpick{transition:box-shadow .3s var(--spring), background .3s;border-radius:14px;position:relative}.leadpick .req{color:var(--accent);letter-spacing:0;text-transform:none;font-weight:650}.leadpick.ask{box-shadow:0 0 0 2px var(--accent) inset;animation:leadNudge .42s var(--spring);background:#0a6cff0d;margin:-2px;padding:10px}@keyframes leadNudge{0%{transform:translate(0)}25%{transform:translate(-5px)}55%{transform:translate(4px)}to{transform:translate(0)}}.leadpick .askline{color:var(--accent);margin:2px 0 8px;font-size:13px;font-weight:620}.leadpick .preview{color:var(--ink-2);font-variant-numeric:tabular-nums;background:#00000009;border-radius:11px;margin-top:8px;padding:8px 10px;font-size:12.5px;font-weight:600}.att{letter-spacing:.01em;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:10.5px;font-weight:700;display:inline-flex}.att-yes{color:#0d7a49;background:#17a86621}.att-no{color:#c1272c;background:#e5484d1f}.att-unk{color:var(--ink-2);background:#0000000e}.att-need{color:#b8560d;background:#f0762c24}.msgbtns{flex-wrap:wrap;gap:6px;margin-top:7px;display:flex}.msgbtns .pill{cursor:pointer}.capask{background:var(--card);box-shadow:var(--sh-1);animation:fadein .3s var(--spring);border-radius:14px;margin-top:10px;padding:12px}.capask .q{margin:8px 0;font-size:13.5px;font-weight:650}.bootfail{background:var(--canvas);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.bootfail-card{background:var(--card);width:100%;max-width:420px;box-shadow:var(--sh-2);text-align:center;border-radius:22px;padding:26px}.bootfail-mark{font-size:30px}.bootfail-card h1{letter-spacing:-.02em;margin:10px 0 6px;font-size:19px}.bootfail-card p{color:var(--ink-2);margin:0 0 16px;font-size:14px}.bootfail-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.bootfail-detail{color:var(--ink-2);text-align:left;white-space:pre-wrap;background:#0000000a;border-radius:12px;max-height:140px;margin:16px 0 0;padding:10px;font-size:11.5px;overflow:auto}.loadhint{text-align:center;color:var(--ink-3);margin-top:12px;font-size:12.5px;font-weight:550}
