:root{--bg:#fbf6f2;--surface:#fff;--text:#2b2523;--muted:#8c817c;--line:#ece3dd;--accent:#e0607e;--accent-soft:#fbe2e8;--good:#2f9463;--good-soft:#dff1e7;--warn:#c07a12;--warn-soft:#f9edd6;--tabbar-height:52px;--ease-out:cubic-bezier(.23, 1, .32, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#1c1918;--surface:#272321;--text:#f3ece8;--muted:#9d928c;--line:#37312e;--accent:#f07d97;--accent-soft:#46252d;--good:#5cc28d;--good-soft:#1f3a2b;--warn:#e0a33f;--warn-soft:#3e3020}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);min-height:100dvh;color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;margin:0;font-family:ui-rounded,SF Pro Rounded,-apple-system,BlinkMacSystemFont,system-ui,sans-serif}button{font:inherit;color:inherit;touch-action:manipulation;-webkit-user-select:none;user-select:none}.login{max-width:320px;padding:calc(env(safe-area-inset-top) + 18vh) 24px 24px;flex-direction:column;gap:10px;margin:0 auto;display:flex}.login h1{margin:0 0 16px;font-size:28px}.login label{color:var(--muted);font-size:14px}.login input{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;padding:12px 14px;font-size:17px}.login button{background:var(--accent);color:#fff;border:0;border-radius:12px;margin-top:6px;padding:13px;font-weight:600}.login [role=alert]{color:var(--accent);margin:4px 0 0}.app{min-height:100dvh;padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom))}.banner{padding:calc(env(safe-area-inset-top) + 10px) 20px 10px;background:var(--warn-soft);color:var(--warn);text-align:center;font-size:14px;text-decoration:none;display:block}.tabbar{padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(20px)saturate(1.6);backdrop-filter:blur(20px)saturate(1.6);border-top:.5px solid var(--line);justify-content:center;display:flex;position:fixed;inset:auto 0 0}.tab{height:var(--tabbar-height);color:var(--muted);background:0 0;border:0;flex-direction:column;flex:0 120px;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:500;display:flex}.tab[aria-current=page]{color:var(--accent)}.foot-icon{fill:currentColor}.kicks{max-width:520px;padding:calc(env(safe-area-inset-top) + 28px) 20px 32px;margin:0 auto}.banner+.kicks{padding-top:20px}.headline{text-align:center;min-height:88px}.headline h1{letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin:0;font-size:26px;font-weight:700}.headline p{max-width:300px;color:var(--muted);font-variant-numeric:tabular-nums;margin:6px auto 0;font-size:15px;line-height:1.4}.headline[data-status=reached] h1{color:var(--good)}.headline[data-status=missed] h1{color:var(--warn)}.kick-area{flex-direction:column;align-items:center;gap:12px;margin:20px 0 28px;display:flex}.kick-button{aspect-ratio:1;cursor:pointer;-webkit-touch-callout:none;background:0 0;border:0;border-radius:50%;width:min(68vw,260px);padding:0;position:relative}.ring{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.segment{fill:none;stroke:var(--line);stroke-width:9px;stroke-linecap:round;transition:stroke .3s var(--ease-out)}.ring[data-status=counting] .segment.on{stroke:var(--accent)}.ring[data-status=reached] .segment.on{stroke:var(--good)}.ring[data-status=missed] .segment.on{stroke:var(--warn)}.kick-face{background:var(--accent);color:#fff;box-shadow:0 10px 30px -10px color-mix(in srgb, var(--accent) 70%, transparent);transition:transform .16s var(--ease-out), background-color .3s var(--ease-out);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:absolute;inset:13%}.kick-button[data-status=reached] .kick-face{background:var(--good);box-shadow:0 10px 30px -10px color-mix(in srgb, var(--good) 70%, transparent)}.kick-button:active .kick-face{transform:scale(.95)}.kick-face svg{width:44px;height:44px}.kick-count{font-variant-numeric:tabular-nums;animation:pop .26s var(--ease-out);font-size:64px;font-weight:700;line-height:1}.kick-of,.kick-label{opacity:.92;font-size:17px;font-weight:600}@keyframes pop{0%{opacity:.4;transform:scale(.8)}}.undo{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:8px 14px;font-size:15px}.undo:active{background:var(--line)}.timeline h2{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:24px 4px 8px;font-size:13px;font-weight:600}.timeline ol{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.session{background:var(--surface);border-radius:16px;padding:14px 16px}.session-head{font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.session-time{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:600;overflow:hidden}.session-result{color:var(--muted);white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;font-size:15px;display:inline-flex}.session[data-status=reached] .session-result{color:var(--good)}.session[data-status=missed] .session-result{color:var(--warn)}.session[data-status=counting] .session-result{color:var(--accent)}.session-note{color:var(--muted);margin:10px 0 0;font-size:13px;line-height:1.4}.track{background:var(--bg);border-radius:7px;height:14px;margin-top:12px;position:relative;overflow:hidden}.track-fill{background:var(--accent-soft);border-radius:7px;position:absolute;inset:0 auto 0 0}.session[data-status=reached] .track-fill{background:var(--good-soft)}.session[data-status=missed] .track-fill{background:var(--warn-soft)}.track-hour{background:var(--line);width:1px;position:absolute;top:3px;bottom:3px;left:50%}.track-kick{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 1.5px var(--surface);border-radius:50%;margin-left:-4px;position:absolute;top:3px}.session[data-status=reached] .track-kick{background:var(--good)}.session[data-status=missed] .track-kick{background:var(--warn)}.track-now{background:var(--accent);opacity:.5;border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}@media (prefers-reduced-motion:reduce){.kick-count{animation:none}.kick-face,.segment{transition:none}}
