:root{--bg:#0b1222;--bg-2:#0f182d;--surface:#131d35;--surface-2:#19253f;--line:#22304d;--line-2:#2f3f61;--fg:#eef3fb;--fg-2:#a3b1cc;--fg-3:#6b7a99;--cyan:#4fd1ff;--cyan-deep:#1aa7e0;--amber:#ffb43a;--mint:#4ade80;--rose:#fb6f8f;--glow:0 0 0 1px rgba(79,209,255,0.08),0 20px 60px -30px rgba(79,209,255,0.35);--shadow:0 1px 0 rgba(255,255,255,0.03) inset,0 12px 40px -24px rgba(0,0,0,0.8);--c-Verde:#4ade80;--c-Azul:#4fd1ff;--c-Morado:#b388ff;--c-Naranja:#ff9f45;--c-Rosa:#fb6f8f;--c-Amarillo:#ffd74a;--c-Rojo:#ff5c5c;--c-Gris:#9aa6bf;--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-in-out:cubic-bezier(0.77,0,0.175,1);--ease-drawer:cubic-bezier(0.32,0.72,0,1);--r-lg:22px;--r:16px;--r-sm:11px;--font:"Manrope",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}:root[data-theme=light]{--bg:#f3f5f9;--bg-2:#eaeef5;--surface:#ffffff;--surface-2:#f3f6fb;--line:#e1e6ef;--line-2:#cfd7e5;--fg:#0f1a2e;--fg-2:#4e5c78;--fg-3:#8a97b2;--cyan:#0ea5e9;--cyan-deep:#0284c7;--amber:#d97706;--mint:#16a34a;--rose:#e11d48;--glow:0 0 0 1px rgba(14,165,233,0.08),0 20px 50px -30px rgba(14,165,233,0.3);--shadow:0 1px 2px rgba(15,26,46,0.04),0 12px 32px -24px rgba(15,26,46,0.25);--c-Azul:#0ea5e9;--c-Verde:#16a34a;--c-Morado:#7c3aed;--c-Naranja:#ea580c;--c-Rosa:#db2777;--c-Amarillo:#ca8a04;--c-Rojo:#dc2626;--c-Gris:#64748b}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;background:radial-gradient(1200px 600px at 80% -10%,color-mix(in srgb,var(--cyan) 12%,transparent),transparent 60%),var(--bg);color:var(--fg);font-family:var(--font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;font-feature-settings:"tnum","cv01";transition:background-color .25s var(--ease-out),color .25s var(--ease-out)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;padding:0}h1,h2,h3{margin:0;letter-spacing:-.02em}h1{font-size:30px;font-weight:800;line-height:1.1}h2{font-size:15px;font-weight:700}.muted{color:var(--fg-2)}.faint{color:var(--fg-3)}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.big{font-size:42px;font-weight:800;letter-spacing:-.04em;line-height:1}@media (max-width:719px){h1{font-size:24px}.big{font-size:34px}}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:6px}.shell{max-width:1080px;margin:0 auto;padding:16px 16px 100px}@media (min-width:720px){.shell{padding:24px 24px 64px}}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:4px;padding:12px 16px;margin:0 auto;max-width:1080px}.nav:before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--bg) 70%,transparent);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);z-index:-1}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.02em;margin-right:auto}.brand i{width:26px;height:26px;border-radius:8px;background:conic-gradient(from 200deg,var(--cyan),var(--amber),var(--cyan));display:grid;place-items:center}.brand i:after{content:"";width:10px;height:10px;border-radius:50%;background:var(--bg)}.nav a{padding:8px 14px;border-radius:999px;color:var(--fg-2);font-weight:600;font-size:14px;transition:background-color .15s var(--ease-out),color .15s var(--ease-out)}.nav a[data-active=true]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow)}@media (hover:hover) and (pointer:fine){.nav a:hover{color:var(--fg)}}.theme-btn{width:34px;height:34px;border-radius:999px;display:grid;place-items:center;color:var(--fg-2);margin-left:6px;transition:transform .16s var(--ease-out),background-color .15s var(--ease-out)}.theme-btn:active{transform:scale(.94)}@media (hover:hover) and (pointer:fine){.theme-btn:hover{background:var(--surface);color:var(--fg)}}@media (max-width:719px){.nav{position:fixed;bottom:0;top:auto;left:0;right:0;max-width:none;justify-content:space-around;padding:8px 6px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.nav:before{background:color-mix(in srgb,var(--bg) 85%,transparent)}.brand{display:none}.nav a{font-size:13px;padding:8px 12px}}.grid{display:grid;grid-gap:14px;gap:14px}.cols-12,.cols-2,.cols-3{grid-template-columns:1fr}@media (min-width:720px){.cols-2{grid-template-columns:1fr 1fr}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-12{grid-template-columns:repeat(12,1fr)}.span-7{grid-column:span 7}.span-5{grid-column:span 5}.span-8{grid-column:span 8}.span-4{grid-column:span 4}.span-12{grid-column:span 12}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--shadow)}.card.hero{border-radius:var(--r-lg);box-shadow:var(--glow),var(--shadow);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 92%,var(--cyan)) 0,var(--surface) 55%)}.card-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px;gap:10px}.card-head small{color:var(--fg-3);font-size:12.5px;text-align:right}@media (max-width:719px){.card-head .hint{display:none}}.enter{animation:enter .42s var(--ease-out) both}.enter[data-i="1"]{animation-delay:50ms}.enter[data-i="2"]{animation-delay:.1s}.enter[data-i="3"]{animation-delay:.15s}.enter[data-i="4"]{animation-delay:.2s}@keyframes enter{0%{opacity:0;transform:translateY(8px)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:999px;background:var(--cyan);color:#06111f;font-weight:700;font-size:14px;white-space:nowrap;transition:transform .16s var(--ease-out),filter .16s var(--ease-out),opacity .16s var(--ease-out)}.btn:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.btn:hover{filter:brightness(1.08)}}.btn[disabled]{opacity:.45;cursor:default}.btn.soft{background:var(--surface-2);color:var(--fg);border:1px solid var(--line)}.btn.ghost{background:transparent;color:var(--fg-2)}.btn.sm{height:34px;padding:0 13px;font-size:13px}.btn.danger{color:var(--rose)}.input,.textarea{width:100%;height:42px;padding:0 13px;border-radius:var(--r-sm);background:var(--bg-2);border:1px solid var(--line);transition:border-color .15s var(--ease-out),box-shadow .15s var(--ease-out)}.textarea{height:auto;padding:11px 13px;resize:vertical;min-height:84px;line-height:1.45}.input:focus,.textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px color-mix(in srgb,var(--cyan) 22%,transparent)}.field{display:grid;grid-gap:6px;gap:6px}.field label{font-size:13px;color:var(--fg-2);font-weight:600}.seg{display:inline-flex;background:var(--bg-2);border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px}.seg a,.seg button{padding:6px 12px;border-radius:999px;font-size:13px;color:var(--fg-2);font-weight:600;transition:background-color .15s var(--ease-out),color .15s var(--ease-out),transform .12s var(--ease-out)}.seg a[data-on=true],.seg button[data-on=true]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow)}.seg button:active{transform:scale(.97)}.seg button[disabled]{opacity:.4;cursor:default}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{height:32px;min-width:32px;padding:0 10px;border-radius:999px;border:1px solid var(--line);background:var(--bg-2);font-size:13px;font-weight:600;color:var(--fg-2);display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:transform .12s var(--ease-out),border-color .15s var(--ease-out),background-color .15s var(--ease-out),color .15s var(--ease-out)}.chip:active{transform:scale(.95)}.chip[data-on=true]{border-color:var(--cyan);background:color-mix(in srgb,var(--cyan) 14%,var(--bg-2));color:var(--fg)}.dot{width:12px;height:12px;border-radius:50%;display:inline-block}.pill{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:12.5px;color:var(--fg-2);font-weight:600}.pill b{color:var(--fg)}.ring{position:relative;display:grid;place-items:center}.ring svg{transform:rotate(-90deg);overflow:visible}.ring circle{fill:none;stroke-linecap:round}.ring .track{stroke:var(--line)}.ring .bar{stroke:var(--cyan);transition:stroke-dashoffset .6s var(--ease-out),stroke .3s var(--ease-out);filter:drop-shadow(0 0 10px color-mix(in srgb,var(--cyan) 55%,transparent))}.ring .label{position:absolute;inset:0;display:grid;place-items:center;text-align:center}.week{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px}.week .d{display:grid;justify-items:center;grid-gap:5px;gap:5px;font-size:11px;color:var(--fg-3);font-weight:600}.week .d[data-today=true]{color:var(--fg)}.habit-row{display:grid;grid-template-columns:44px 1fr auto;align-items:center;grid-gap:12px;gap:12px;padding:12px 10px;border-radius:14px;-moz-user-select:none;user-select:none;-webkit-user-select:none;cursor:pointer;transition:background-color .15s var(--ease-out)}@media (hover:hover) and (pointer:fine){.habit-row:hover{background:var(--surface-2)}}.habit-row:active .check{transform:scale(.92)}.habit-row .emoji{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:var(--bg-2);font-size:21px;border:1px solid var(--line)}.habit-row .meta{min-width:0;display:grid;grid-gap:4px;gap:4px}.habit-row .meta b{font-weight:700;transition:color .18s var(--ease-out);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.habit-row[data-done=true] .meta b{color:var(--fg-2)}.habit-row .meta small{color:var(--fg-3);font-size:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.streak{color:var(--amber);font-weight:700}.log{display:inline-flex;gap:3px;align-items:center}.log i{width:7px;height:7px;border-radius:2px;background:var(--line-2);display:block}.log i[data-s=done]{background:var(--hc,var(--cyan))}.log i[data-s=missed]{background:color-mix(in srgb,var(--rose) 55%,var(--line))}.log i[data-s=off]{background:var(--line);opacity:.5}.log i[data-s=future]{background:transparent;border:1px dashed var(--line-2)}.check{width:34px;height:34px;border-radius:12px;border:1.5px solid var(--line-2);display:grid;place-items:center;background:transparent;position:relative;transition:transform .16s var(--ease-out),background-color .16s var(--ease-out),border-color .16s var(--ease-out),box-shadow .2s var(--ease-out)}.check svg{width:18px;height:18px}.check path{stroke:#06111f;stroke-width:2.6;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .22s var(--ease-out)}.check[data-done=true]{background:var(--hc,var(--cyan));border-color:var(--hc,var(--cyan));box-shadow:0 0 18px -4px var(--hc,var(--cyan))}.check[data-done=true] path{stroke-dashoffset:0}.heat{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:5px;gap:5px}.heat .h{aspect-ratio:1;border-radius:9px;background:var(--bg-2);border:1px solid var(--line);display:grid;place-items:center;font-size:12px;font-weight:600;color:var(--fg-3);transition:transform .15s var(--ease-out),border-color .15s var(--ease-out)}@media (hover:hover) and (pointer:fine){.heat .h:hover{transform:scale(1.06);border-color:var(--line-2)}}.heat .h[data-today=true]{box-shadow:0 0 0 2px var(--cyan)}.heat .h[data-picked=true]{box-shadow:0 0 0 2px var(--amber)}.heat .wd{font-size:11px;color:var(--fg-3);text-align:center;font-weight:700}.hbar{height:8px;border-radius:999px;background:var(--bg-2);overflow:hidden;border:1px solid var(--line)}.hbar i{display:block;height:100%;border-radius:999px;background:var(--cyan);transform-origin:left;transition:transform .6s var(--ease-out)}.stat{display:grid;grid-gap:4px;gap:4px}.stat .k{font-size:13px;color:var(--fg-2);font-weight:600}.ai{background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 80%,var(--cyan)) 0,var(--surface) 70%);border:1px solid color-mix(in srgb,var(--cyan) 35%,var(--line));box-shadow:var(--glow),var(--shadow)}.ai p{margin:8px 0;line-height:1.6}.ai .lead{font-size:17px;font-weight:600}.overlay{position:fixed;inset:0;background:rgba(3,8,18,.55);z-index:40;animation:fade .2s var(--ease-out) both;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sheet{position:fixed;z-index:41;background:var(--surface);border:1px solid var(--line);left:0;right:0;bottom:0;border-radius:22px 22px 0 0;padding:20px 18px calc(20px + env(safe-area-inset-bottom));max-height:92dvh;overflow:auto;animation:up .34s var(--ease-drawer) both}@media (min-width:720px){.sheet{left:50%;top:50%;bottom:auto;right:auto;width:540px;transform:translate(-50%,-50%);border-radius:22px;animation:pop .22s var(--ease-out) both}}@keyframes fade{0%{opacity:0}}@keyframes up{0%{transform:translateY(100%)}}@keyframes pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.96)}}.toast{position:fixed;left:50%;bottom:88px;transform:translateX(-50%);background:var(--fg);color:var(--bg);padding:11px 16px;border-radius:999px;font-size:13.5px;font-weight:600;z-index:50;box-shadow:var(--shadow);transition:opacity .2s var(--ease-out),transform .2s var(--ease-out);white-space:nowrap}.toast[data-show=false]{opacity:0;transform:translate(-50%,8px);pointer-events:none}@media (min-width:720px){.toast{bottom:28px}}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid;border-right:2px solid transparent;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.confetti{position:fixed;inset:0;pointer-events:none;z-index:60;overflow:hidden}.confetti i{position:absolute;top:-12px;width:8px;height:14px;border-radius:2px;animation:drop 1.6s var(--ease-in-out) forwards}@keyframes drop{to{transform:translateY(110vh) rotate(540deg);opacity:0}}@media (prefers-reduced-motion:reduce){.enter,.overlay,.sheet{animation:fade .2s ease both}.hbar i,.ring .bar{transition-duration:1ms}.heat .h:hover{transform:none}.confetti{display:none}}