:root{color-scheme:light dark;--bg: #f3f6fa;--bg-tint-a: rgba(255, 122, 41, .07);--bg-tint-b: rgba(0, 179, 214, .07);--surface: #ffffff;--surface-2: #eef2f8;--sunken: #e8eef6;--line: rgba(18, 26, 38, .09);--line-strong: rgba(18, 26, 38, .17);--ink: #131a25;--muted: #5b6678;--faint: #8a95a7;--sport: #f2681a;--social: #0093b8;--sex: #e0326f;--coach: #5a4be0;--good: #0f9d63;--warn: #b3730a;--danger: #d1435b;--on-accent: #ffffff;--shadow-sm: 0 1px 2px rgba(18, 26, 38, .06), 0 2px 6px rgba(18, 26, 38, .05);--shadow-md: 0 2px 4px rgba(18, 26, 38, .05), 0 10px 24px rgba(18, 26, 38, .08);--shadow-lg: 0 8px 20px rgba(18, 26, 38, .1), 0 24px 60px rgba(18, 26, 38, .14);--display: "Outfit", "Avenir Next", "Segoe UI", sans-serif;--body: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--tabbar: 72px;--radius: 22px;--radius-sm: 14px}@media(prefers-color-scheme:dark){:root{--bg: #0f141c;--bg-tint-a: rgba(255, 138, 60, .07);--bg-tint-b: rgba(0, 179, 214, .06);--surface: #171e29;--surface-2: #202936;--sunken: #0b1017;--line: rgba(232, 240, 250, .1);--line-strong: rgba(232, 240, 250, .2);--ink: #eef3fa;--muted: #9aa5b8;--faint: #6e7a8d;--sport: #ff9147;--social: #35c4e8;--sex: #ff5e93;--coach: #9b8cff;--good: #34d399;--warn: #fbbf24;--danger: #ff7085;--on-accent: #10141b;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 2px 6px rgba(0, 0, 0, .3), 0 12px 28px rgba(0, 0, 0, .34);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .42), 0 30px 70px rgba(0, 0, 0, .5)}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}body{min-height:100dvh;background-image:radial-gradient(900px 460px at 92% -12%,var(--bg-tint-a),transparent 62%),radial-gradient(760px 420px at -12% 6%,var(--bg-tint-b),transparent 58%);background-attachment:fixed}button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font:inherit;color:inherit}:focus-visible{outline:2.5px solid var(--coach);outline-offset:2px;border-radius:8px}::selection{background:color-mix(in srgb,var(--coach) 26%,transparent)}.app{max-width:520px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding-bottom:calc(var(--tabbar) + env(safe-area-inset-bottom,0px))}.screen{flex:1;padding:max(env(safe-area-inset-top,0px),20px) 18px 30px;display:flex;flex-direction:column;gap:18px;animation:screen-in .26s cubic-bezier(.2,.7,.2,1) backwards}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}}.topline{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.02em}.brand .a{color:var(--sport)}.brand .b{color:var(--social)}.brand .c{color:var(--sex)}.screen-title{font-family:var(--display);font-weight:700;font-size:28px;margin:0;letter-spacing:-.025em;line-height:1.15;text-wrap:balance}.eyebrow{font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin:0}.muted{color:var(--muted)}.small{font-size:13.5px}.dim-sport{--accent: var(--sport)}.dim-social{--accent: var(--social)}.dim-sex{--accent: var(--sex)}.dim-banner{display:flex;align-items:center;justify-content:space-between;gap:14px}.dim-banner .label{font-family:var(--display);font-weight:800;font-size:30px;letter-spacing:-.03em;color:var(--accent);line-height:1.05}.dim-banner .sub{font-size:13px;color:var(--muted);font-weight:500}.flame{display:flex;align-items:center;gap:7px;padding:8px 14px 8px 11px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-sm);font-weight:600;font-size:13px;color:var(--muted);white-space:nowrap}.flame .n{font-family:var(--display);font-size:19px;font-weight:800;color:var(--sport);font-variant-numeric:tabular-nums}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:20px;display:flex;flex-direction:column;gap:16px}.spark-card{padding:0;overflow:hidden}.spark-body{padding:20px;display:flex;flex-direction:column;gap:15px}.spark-text{font-family:var(--display);font-weight:600;font-size:23px;line-height:1.28;letter-spacing:-.02em;margin:0;text-wrap:balance}.spark-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.art{display:block;width:100%;height:auto;flex:0 0 auto}.art-sm{border-radius:var(--radius-sm);overflow:hidden}.chip{font-size:11.5px;font-weight:600;letter-spacing:.01em;padding:5px 11px;border-radius:999px;background:var(--surface-2);color:var(--muted);white-space:nowrap}.chip.accent{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:14px;background:var(--surface-2);color:var(--ink);font-weight:600;font-size:15px;font-family:var(--body);transition:transform .12s ease,background .15s ease,opacity .15s ease,box-shadow .15s ease}.btn:active{transform:scale(.975)}.btn:disabled{opacity:.42;cursor:not-allowed}.btn-primary{background:var(--accent, var(--coach));color:var(--on-accent);font-weight:700;box-shadow:0 4px 14px color-mix(in srgb,var(--accent, var(--coach)) 34%,transparent)}.btn-ghost{background:transparent;box-shadow:inset 0 0 0 1.5px var(--line-strong);color:var(--muted)}.btn-ghost:hover:not(:disabled){color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--faint)}.btn-block{width:100%}.btn-lg{min-height:56px;font-size:17px;border-radius:16px}.btn-row{display:flex;gap:10px}.btn-row>*{flex:1}.btn-done{background:var(--good);color:#fff;font-weight:700;box-shadow:0 4px 14px color-mix(in srgb,var(--good) 34%,transparent)}.link-btn{color:var(--accent, var(--social));text-decoration:none;font-size:13px;font-weight:600}.link-btn:hover{text-decoration:underline}.done-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px 0 2px;text-align:center}.done-mark{width:66px;height:66px;border-radius:50%;background:var(--good);display:grid;place-items:center;color:#fff;font-size:30px;box-shadow:0 6px 20px color-mix(in srgb,var(--good) 40%,transparent);animation:pop .42s cubic-bezier(.2,1.4,.4,1) both}@keyframes pop{0%{transform:scale(.3);opacity:0}}.done-title{font-family:var(--display);font-weight:700;font-size:22px;letter-spacing:-.02em;margin:0}.powerups{display:flex;gap:10px}.powerup{flex:1;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-sm);font-size:12.5px;color:var(--muted);text-align:left}.powerup strong{color:var(--ink);font-weight:700;display:block;font-size:13.5px}.powerup.spent{opacity:.45;box-shadow:none;background:var(--surface-2)}.powerup .glyph{font-size:18px;line-height:1}.tabbar{position:fixed;bottom:0;left:0;right:0;height:calc(var(--tabbar) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);border-top:1px solid var(--line);display:flex;z-index:20}.tabbar-inner{max-width:520px;margin:0 auto;width:100%;display:grid;grid-template-columns:repeat(5,1fr)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--faint);font-size:10.5px;font-weight:600;letter-spacing:.01em;position:relative;transition:color .15s ease}.tab svg{width:22px;height:22px}.tab[aria-current=page]{color:var(--tab-accent, var(--ink))}.tab .badge{position:absolute;top:11px;right:50%;transform:translate(16px);min-width:8px;height:8px;border-radius:999px;background:var(--sex);box-shadow:0 0 0 2px var(--surface)}.onboard{min-height:100dvh;display:flex;flex-direction:column;max-width:520px;margin:0 auto;padding:max(env(safe-area-inset-top,0px),24px) 18px calc(20px + env(safe-area-inset-bottom,0px));gap:20px}.onboard-body{flex:1;display:flex;flex-direction:column;gap:16px;animation:screen-in .28s cubic-bezier(.2,.7,.2,1) backwards}.progress{display:flex;gap:5px}.progress span{flex:1;height:4px;border-radius:3px;background:var(--line-strong);transition:background .3s ease}.progress span.on{background:var(--accent, var(--coach))}.hero-3s{display:flex;flex-direction:column;line-height:.94;margin:6px 0 2px}.hero-3s span{font-family:var(--display);font-weight:800;font-size:clamp(42px,14vw,58px);letter-spacing:-.04em}.group-label{display:flex;flex-direction:column;gap:2px;margin-top:6px}.group-label .t{font-family:var(--display);font-weight:700;font-size:17px;letter-spacing:-.015em}.group-label .h{font-size:13px;color:var(--muted);line-height:1.4}.tag-grid{display:flex;flex-wrap:wrap;gap:8px}.tag{padding:10px 15px;border-radius:999px;background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--line-strong);color:var(--muted);font-size:14px;font-weight:500;transition:all .14s ease}.tag[aria-pressed=true]{background:var(--accent);box-shadow:0 3px 10px color-mix(in srgb,var(--accent) 32%,transparent);color:var(--on-accent);font-weight:600}.dial{display:flex;flex-direction:column;gap:10px}.dial-notches{display:flex;gap:8px}.notch{flex:1;height:48px;border-radius:var(--radius-sm);background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--line-strong);font-family:var(--display);font-weight:700;font-size:16px;color:var(--faint);transition:all .14s ease}.notch.filled{background:color-mix(in srgb,var(--accent) 16%,var(--surface));box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent)}.notch[aria-pressed=true]{background:var(--accent);box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 34%,transparent);color:var(--on-accent)}.dial-label{font-family:var(--display);font-weight:700;font-size:16px;color:var(--accent)}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 17px;border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-sm);width:100%;text-align:left}.toggle-row .name{font-family:var(--display);font-weight:700;font-size:17px;letter-spacing:-.015em;color:var(--accent)}.switch{width:52px;height:31px;border-radius:999px;background:var(--surface-2);box-shadow:inset 0 0 0 1.5px var(--line-strong);position:relative;transition:background .2s ease,box-shadow .2s ease;flex:0 0 auto}.switch:after{content:"";position:absolute;top:3.5px;left:3.5px;width:24px;height:24px;border-radius:50%;background:var(--faint);transition:transform .2s cubic-bezier(.2,.8,.3,1),background .2s ease}.switch[aria-pressed=true]{background:var(--accent);box-shadow:none}.switch[aria-pressed=true]:after{transform:translate(21px);background:#fff}.slot{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-md);overflow:hidden}.slot-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px}.slot-head .name{font-family:var(--display);font-weight:700;font-size:18px;letter-spacing:-.02em;color:var(--accent)}.slot-body{padding:0 18px 18px;display:flex;flex-direction:column;gap:14px}.slot-title{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:-.02em;margin:0;line-height:1.22;text-wrap:balance}.pill{font-size:11px;font-weight:700;letter-spacing:.03em;padding:5px 11px;border-radius:999px;white-space:nowrap}.pill-empty{background:var(--surface-2);color:var(--faint)}.pill-picked{background:color-mix(in srgb,var(--coach) 15%,transparent);color:var(--coach)}.pill-planned{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}.pill-done{background:color-mix(in srgb,var(--good) 15%,transparent);color:var(--good)}.pill-missed{background:var(--surface-2);color:var(--faint)}.checklist{display:flex;flex-direction:column;gap:2px}.check{display:flex;align-items:flex-start;gap:11px;padding:9px 4px;text-align:left;border-radius:9px;font-size:14.5px;color:var(--muted);line-height:1.4;width:100%}.check .box{width:21px;height:21px;border-radius:7px;box-shadow:inset 0 0 0 1.8px var(--line-strong);flex:0 0 auto;margin-top:1px;display:grid;place-items:center;font-size:12px;color:transparent;transition:all .15s ease}.check[aria-pressed=true] .box{background:var(--good);box-shadow:none;color:#fff}.check[aria-pressed=true]{color:var(--faint);text-decoration:line-through}.candidate{text-align:left;padding:0;border-radius:var(--radius-sm);background:var(--surface-2);box-shadow:inset 0 0 0 2px transparent;display:flex;flex-direction:column;transition:box-shadow .15s ease,transform .12s ease;width:100%;overflow:hidden}.candidate:active{transform:scale(.99)}.candidate[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface-2))}.candidate-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px}.candidate h4{font-family:var(--display);font-weight:700;font-size:17px;letter-spacing:-.02em;margin:0;line-height:1.25}.candidate p{margin:0;font-size:14px;color:var(--muted);line-height:1.45}.date-input,.text-input{background:var(--surface-2);border:none;box-shadow:inset 0 0 0 1.5px var(--line-strong);border-radius:var(--radius-sm);padding:13px 15px;color:var(--ink);font-size:15.5px;width:100%;font-family:inherit}.date-input{font-variant-numeric:tabular-nums}.text-input{resize:vertical}.text-input::placeholder{color:var(--faint)}.triangle-wrap{display:grid;place-items:center;padding:4px 0 0}.life-level{display:flex;flex-direction:column;align-items:center;gap:1px;text-align:center}.life-level .n{font-family:var(--display);font-weight:800;font-size:60px;line-height:1;letter-spacing:-.05em}.life-level .t{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:-.02em;color:var(--coach)}.stat-rows{display:flex;flex-direction:column;gap:12px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:18px}.stat-row{display:grid;grid-template-columns:66px 1fr auto;align-items:center;gap:12px}.stat-row .name{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--accent)}.bar{height:9px;border-radius:999px;background:var(--sunken);overflow:hidden}.bar span{display:block;height:100%;border-radius:999px;background:var(--accent);transition:width .6s cubic-bezier(.2,.8,.2,1)}.stat-row .lv{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--muted);min-width:48px;text-align:right}.history{display:flex;gap:4px;flex-wrap:wrap}.hist-cell{width:16px;height:16px;border-radius:5px;background:var(--sunken)}.hist-cell.shielded{background:var(--surface-2);box-shadow:inset 0 0 0 1.5px var(--faint)}.totals{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.total{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);padding:14px 12px;text-align:center}.total .n{font-family:var(--display);font-weight:800;font-size:25px;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.total .l{font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}.section{display:flex;flex-direction:column;gap:11px}.section-title{font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:-.02em;margin:0}.danger{color:var(--danger);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--danger) 40%,transparent)}.code-box{display:flex;flex-direction:column;align-items:center;gap:6px;padding:22px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-md)}.code-box .code{font-family:var(--display);font-weight:800;font-size:40px;letter-spacing:.14em;color:var(--coach);text-indent:.14em}.partner-card{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-md)}.avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:19px;color:var(--on-accent);background:linear-gradient(135deg,var(--coach),var(--sex));flex:0 0 auto}.share-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-sm)}.share-row .left{display:flex;flex-direction:column;gap:2px;min-width:0}.share-row .name{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:-.015em;color:var(--accent)}.share-row .detail{font-size:12.5px;color:var(--muted)}.btn-xs{min-height:36px;padding:0 13px;font-size:13px;border-radius:11px;flex:0 0 auto}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:color-mix(in srgb,var(--ink) 42%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;padding:20px;animation:fade-in .18s ease backwards}@keyframes fade-in{0%{opacity:0}}.sheet{background:var(--surface);border-radius:26px;box-shadow:var(--shadow-lg);padding:22px;width:100%;max-width:440px;max-height:88dvh;overflow-y:auto;display:flex;flex-direction:column;gap:14px;animation:sheet-in .26s cubic-bezier(.2,.9,.3,1) backwards}.sheet>*{flex-shrink:0}@keyframes sheet-in{0%{opacity:0;transform:translateY(18px) scale(.97)}}.levelup{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.levelup .badge{font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.levelup .num{font-family:var(--display);font-weight:800;font-size:80px;line-height:1;letter-spacing:-.05em;color:var(--accent);animation:pop .5s cubic-bezier(.2,1.5,.4,1) both}.levelup .title{font-family:var(--display);font-weight:700;font-size:26px;letter-spacing:-.03em}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--tabbar) + 18px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:14px;font-size:14px;font-weight:500;z-index:80;max-width:min(440px,calc(100vw - 36px));text-align:center;box-shadow:var(--shadow-lg);animation:toast-in .2s ease backwards}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}}.center-state{flex:1;display:grid;place-items:center;text-align:center;padding:40px 20px;color:var(--muted);gap:14px}.spinner{width:26px;height:26px;border-radius:50%;border:2.5px solid var(--line-strong);border-top-color:var(--coach);animation:spin .7s linear infinite;margin:0 auto}@keyframes spin{to{transform:rotate(360deg)}}.empty-note{color:var(--faint);font-size:13.5px;line-height:1.5}.auth{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;max-width:460px;margin:0 auto;padding:32px 20px calc(28px + env(safe-area-inset-bottom,0px));gap:18px}.auth-form{display:flex;flex-direction:column;gap:11px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12.5px;font-weight:700;letter-spacing:.03em;color:var(--muted)}.auth-error{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);padding:11px 14px;border-radius:var(--radius-sm);font-size:14px;font-weight:500}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
