.shell{max-width:480px;padding:20px 20px calc(32px + env(safe-area-inset-bottom));min-height:100dvh;margin:0 auto}.shell-top{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:.14em;color:var(--text-2);font-size:14px;font-weight:800}.back-link{color:var(--text-2);padding:8px 0;font-size:14px;font-weight:600;transition:color .15s}@media (hover:hover) and (pointer:fine){.back-link:hover{color:var(--text)}}.sync-chip{color:var(--text-2);border:1px solid var(--border);background:var(--surface);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;display:flex}.sync-chip .dot{background:var(--text-3);border-radius:50%;width:7px;height:7px}.sync-chip .dot.on{background:var(--good)}.onboarding{flex-direction:column;justify-content:center;max-width:440px;min-height:100dvh;margin:0 auto;padding:32px 24px;display:flex}.onboarding .kicker{letter-spacing:.18em;color:var(--phase-1);margin-bottom:12px;font-size:13px;font-weight:700}.onboarding h1{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:16px;font-size:44px;line-height:1.05}.onboarding p{color:var(--text-2);margin-bottom:8px;font-size:16px}.onboarding .date-row{margin:28px 0 16px}.onboarding label{color:var(--text-2);margin-bottom:8px;font-size:13px;font-weight:600;display:block}.onboarding input[type=date]{appearance:none;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-m);text-align:left;width:100%;min-width:0;max-width:100%;min-height:52px;padding:14px 16px;font-size:17px;display:block}.onboarding input[type=date]::-webkit-date-and-time-value{text-align:left}.btn-primary{text-align:center;background:var(--text);width:100%;color:var(--bg);border-radius:var(--radius-m);transition:transform .14s var(--ease-out), opacity .15s ease;padding:16px;font-size:16px;font-weight:700;display:block}.btn-primary:active{transform:scale(.97)}.btn-primary:disabled{opacity:.4}.hero{margin-bottom:24px}.hero .day-count{font-family:var(--font-display);letter-spacing:-.03em;font-size:76px;font-weight:800;line-height:1}.hero .day-count small{color:var(--text-3);letter-spacing:0;font-size:26px;font-weight:700}.hero .sub{color:var(--text-2);align-items:center;gap:10px;margin-top:10px;font-size:15px;display:flex}.phase-chip{color:var(--bg);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.today-cta{border-radius:var(--radius-l);background:var(--surface);border:1px solid var(--border-strong);transition:transform .14s var(--ease-out), border-color .15s ease;margin-top:20px;padding:18px 20px;display:block}.today-cta:active{transform:scale(.98)}.today-cta .cta-label{letter-spacing:.12em;color:var(--text-3);margin-bottom:4px;font-size:12px;font-weight:700}.today-cta .cta-title{font-size:19px;font-weight:700}.today-cta .cta-sub{color:var(--text-2);margin-top:2px;font-size:14px}.today-cta.pending{border-style:dashed}.stats-row{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px;display:grid}.stat{text-align:center;padding:14px 8px 12px}.stat .num{font-family:var(--font-display);font-size:26px;font-weight:800}.stat .lbl{letter-spacing:.08em;color:var(--text-3);text-transform:uppercase;margin-top:2px;font-size:11px;font-weight:600}.phase-bar{gap:4px;height:8px;margin:8px 0 6px;display:flex}.phase-bar .seg{background:var(--surface-2);border-radius:4px;position:relative;overflow:hidden}.phase-bar .seg .fill{transform-origin:0;border-radius:4px;position:absolute;inset:0}.phase-legend{color:var(--text-3);justify-content:space-between;margin-bottom:24px;font-size:11px;display:flex}.grid-100{grid-template-columns:repeat(10,1fr);gap:6px;margin-bottom:8px;display:grid}.cell{aspect-ratio:1;background:var(--surface-2);transition:transform .14s var(--ease-out);border-radius:6px;position:relative}a.cell:active{transform:scale(.9)}.cell.done{opacity:1}.cell.future{opacity:.45}.cell.missed{background:var(--surface);border:1px solid var(--border)}.cell.today:after{content:"";border:2px solid var(--text);border-radius:8px;position:absolute;inset:-3px}.grid-caption{color:var(--text-3);margin-bottom:24px;font-size:12px}.nav-cards{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:24px;display:grid}.nav-card{transition:transform .14s var(--ease-out);padding:16px}.nav-card:active{transform:scale(.97)}.nav-card .t{font-size:15px;font-weight:700}.nav-card .d{color:var(--text-2);margin-top:2px;font-size:12.5px}.guide h1,.measure h1{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:6px;font-size:32px}.guide .lede,.measure .lede{color:var(--text-2);margin-bottom:28px}.guide-phase{border-left:3px solid var(--border-strong);margin-bottom:12px;padding:18px}.guide-phase h2{align-items:baseline;gap:8px;font-size:17px;display:flex}.guide-phase .range{color:var(--text-3);font-size:12px;font-weight:600}.guide-phase p{color:var(--text-2);margin-top:6px;font-size:14.5px}.guide-section{margin-top:28px}.guide-section h3{letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-bottom:10px;font-size:13px}.guide-section table{border-collapse:collapse;width:100%;font-size:14px}.guide-section td{border-bottom:1px solid var(--border);padding:8px 6px}.guide-section td:first-child{color:var(--text-2);white-space:nowrap}.measure-form{margin-bottom:20px;padding:18px}.measure-form h2{margin-bottom:12px;font-size:16px}.measure-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.measure-grid label{color:var(--text-2);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.measure-grid input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-s);width:100%;padding:10px 12px;font-size:16px}.measure-grid input:focus{border-color:var(--border-strong);outline:none}.measure-save{margin-top:14px}.chart-card{margin-bottom:16px;padding:18px}.chart-card h2{margin-bottom:4px;font-size:15px}.chart-card .cap{color:var(--text-3);margin-bottom:10px;font-size:12px}.history-row{border-bottom:1px solid var(--border);justify-content:space-between;padding:10px 2px;font-size:14px;display:flex}.history-row .d{color:var(--text-2)}.not-crafted{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:70dvh;padding:32px;display:flex}.not-crafted .big{font-family:var(--font-display);color:var(--text-3);font-size:56px;font-weight:800}.not-crafted h1{margin:8px 0;font-size:22px}.not-crafted p{color:var(--text-2);max-width:300px;font-size:15px}.rise{opacity:0;animation:rise .42s var(--ease-out) forwards;transform:translateY(10px)}@keyframes rise{to{opacity:1;transform:translateY(0)}}.rise-1{animation-delay:40ms}.rise-2{animation-delay:90ms}.rise-3{animation-delay:.14s}.rise-4{animation-delay:.19s}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;line-height:1.5}img,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}a{color:inherit;text-decoration:none}:root{--bg:#0c0d10;--surface:#15171c;--surface-2:#1d2026;--border:#ffffff12;--border-strong:#ffffff24;--text:#f4f5f7;--text-2:#a2a8b3;--text-3:#61666f;--phase-1:#45c4ab;--phase-2:#f0b23e;--phase-3:#f0685a;--phase-4:#9b79f2;--good:#45c479;--danger:#ef5350;--radius-s:10px;--radius-m:14px;--radius-l:20px;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--font-display:ui-rounded, "SF Pro Rounded", system-ui, -apple-system, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--bg);color:var(--text);min-height:100dvh;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.press{transition:transform .14s var(--ease-out)}.press:active{transform:scale(.97)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m)}.tabular{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:80ms!important;animation-duration:.01ms!important}}
