:root{--bg: #121212;--surface: #1c1c1e;--surface-2: #242426;--surface-3: #2c2c2e;--border: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .12);--lime: #b6ff3c;--lime-dim: #8fce2e;--lime-glow: rgba(182, 255, 60, .22);--on-lime: #0e1500;--text: #f5f5f5;--text-dim: #9a9a9a;--text-faint: #8a8a90;--red: #ff6b5e;--red-dim: rgba(255, 107, 94, .16);--rest: #4a4a52;--amber: #ffce4a;--radius: 16px;--radius-sm: 12px;--radius-lg: 24px;--pad: 16px;--maxw: 560px;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Space Grotesk", "Inter", system-ui, sans-serif;--shadow: 0 8px 24px rgba(0, 0, 0, .35);--shadow-lime: 0 6px 22px var(--lime-glow)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior-y:none}#root{min-height:100dvh}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}h1,h2,h3{font-family:var(--font-display);margin:0;letter-spacing:-.01em}:focus-visible{outline:3px solid var(--lime);outline-offset:2px;border-radius:6px}.display{font-family:var(--font-display);font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.app{max-width:var(--maxw);margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.scroll{flex:1;padding:max(env(safe-area-inset-top),14px) var(--pad) 96px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.topbar .brand{display:flex;align-items:center;gap:9px;font-family:var(--font-display);font-weight:700;font-size:18px}.brand .mark{color:var(--lime);display:flex;align-items:center}.iconbtn{width:44px;height:44px;border-radius:50%;background:var(--surface);display:grid;place-items:center;color:var(--text-dim);border:1px solid var(--border)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--pad)}.section-title{font-size:15px;font-weight:600;margin:22px 4px 12px;display:flex;align-items:center;justify-content:space-between}.today{border-radius:var(--radius-lg);padding:22px;position:relative;overflow:hidden;background:linear-gradient(160deg,var(--surface-2),var(--surface));border:1px solid var(--border-strong)}.today.rest{background:linear-gradient(160deg,#20242a,var(--surface))}.today .date{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.today .ptype{display:flex;align-items:center;gap:14px;margin-bottom:4px}.today .ptype .emoji{display:flex;align-items:center;color:var(--lime)}.today h1{font-size:30px;font-weight:700}.today .blurb{color:var(--text-dim);font-size:14px;margin-top:2px}.pill{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:999px;background:var(--surface-3);color:var(--text-dim)}.pill.week{background:var(--lime-glow);color:var(--lime)}.bigcheck{margin-top:20px;width:100%;min-height:64px;border-radius:18px;background:var(--lime);color:var(--on-lime);font-family:var(--font-display);font-weight:700;font-size:19px;display:flex;align-items:center;justify-content:center;gap:12px;box-shadow:var(--shadow-lime);transition:transform .12s ease,filter .12s ease;touch-action:manipulation}.bigcheck:active{transform:scale(.97);filter:brightness(.95)}.bigcheck.done{background:var(--surface-3);color:var(--lime);box-shadow:none;border:1px solid var(--border-strong)}.bigcheck.secondary{background:var(--surface-3);color:var(--text);box-shadow:none;border:1px solid var(--border-strong);min-height:54px;font-size:16px}.bigcheck:disabled{opacity:.6;cursor:default}.othertypes{display:flex;gap:8px;margin-top:10px}.chip{flex:1;padding:11px 8px;border-radius:12px;background:var(--surface);border:1px solid var(--border);color:var(--text-dim);font-size:13px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:4px;transition:border-color .12s,color .12s}.chip .emoji{display:flex;align-items:center}.chip.on{border-color:var(--lime);color:var(--lime);background:var(--lime-glow)}.stat-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.stat .num{font-family:var(--font-display);font-weight:700;font-size:46px;line-height:1;font-variant-numeric:tabular-nums}.stat.accent .num{color:var(--lime)}.stat .label{margin-top:6px;font-size:13px;color:var(--text-dim)}.stat .flame{display:inline-flex;vertical-align:middle;color:var(--lime);margin-left:4px}.weekstrip{display:flex;justify-content:space-between;gap:6px}.weekstrip .day{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;padding:2px 0;cursor:pointer}.weekstrip .dot{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1;background:transparent;border:1px solid transparent;font-size:15px;font-weight:700;color:var(--on-lime);transition:background .15s ease,box-shadow .15s ease}.weekstrip .dot .demoji{display:flex;color:var(--text-dim);opacity:.85}.weekstrip .dot.done{background:var(--lime-glow);box-shadow:inset 0 0 0 2px var(--lime);color:var(--lime)}.weekstrip .dot.today{background:var(--surface-2);box-shadow:0 0 0 2px var(--lime)}.weekstrip .dot.today .demoji{color:var(--text);opacity:1}.weekstrip .dot.rest .demoji{opacity:.45}.weekstrip .dot.missed{background:var(--red-dim);box-shadow:inset 0 0 0 1px #ff6b5e59}.weekstrip .dot.missed .demoji{color:var(--red);opacity:.9}.weekstrip .wd{font-size:11px;color:var(--text-faint);font-weight:600}.weekstrip .wd.wdnow{color:var(--lime)}.goalbar{margin-top:12px}.goalbar .track{height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden}.goalbar .fill{height:100%;background:var(--lime);border-radius:999px;transition:width .5s cubic-bezier(.2,.8,.2,1)}.goalbar .cap{display:flex;justify-content:space-between;margin-top:8px;font-size:13px;color:var(--text-dim)}.card.partner{display:flex;align-items:center;gap:14px}.avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:18px;background:var(--surface-3);color:var(--text);flex-shrink:0}.avatar.me{background:var(--lime);color:var(--on-lime)}.partner .txt{flex:1}.partner .name{font-weight:600}.partner .status{font-size:13px;color:var(--text-dim)}.partner .status.trained{color:var(--lime)}.versus{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}.versus .side{text-align:center}.versus .side .big{font-family:var(--font-display);font-weight:700;font-size:34px;line-height:1}.versus .side .nm{font-size:13px;color:var(--text-dim);margin-top:4px}.versus .mid{font-size:13px;color:var(--text-faint);font-weight:600}.versus .side.lead .big{color:var(--lime)}.cheer{text-align:center;margin-top:12px;font-size:13px;color:var(--text-dim)}.bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;justify-content:space-around;background:#121212eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);padding:8px 4px calc(8px + env(safe-area-inset-bottom))}.bottomnav button{flex:1;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 0;color:var(--text-faint);font-size:11px;font-weight:600}.bottomnav button .ic{display:flex;align-items:center;position:relative}.bottomnav button.on{color:var(--lime)}.navbadge{position:absolute;top:-6px;right:-9px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--lime);color:var(--on-lime);font-family:var(--font-display);font-size:10px;font-weight:700;line-height:16px;text-align:center;box-shadow:0 0 0 2px var(--bg)}.session{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:var(--bg);display:flex;flex-direction:column;max-width:var(--maxw);margin:0 auto}.session:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:-1}.session .head{display:flex;align-items:center;justify-content:space-between;padding:16px var(--pad);border-bottom:1px solid var(--border)}.session .progress{flex:1;margin:0 14px;height:6px;background:var(--surface-3);border-radius:999px;overflow:hidden}.session .progress .fill{height:100%;background:var(--lime);transition:width .4s ease}.session .body{flex:1;overflow-y:auto;padding:22px var(--pad) 120px;text-align:center}.session .exno{color:var(--text-faint);font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase}.session h2{font-size:30px;margin:10px 0 6px}.session .target{color:var(--lime);font-family:var(--font-display);font-weight:600;font-size:18px}.session .cue{color:var(--text-dim);font-size:14px;margin:14px auto 0;max-width:320px}.ex-demo{display:block;width:100%;max-width:260px;margin:18px auto 2px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2)}.sets{display:flex;justify-content:center;gap:12px;margin:26px 0}.setdot{width:58px;height:58px;border-radius:16px;background:var(--surface-2);border:1px solid var(--border);display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--text-dim);transition:transform .12s,background .18s,color .18s}.setdot.done{background:var(--lime);color:var(--on-lime);border-color:var(--lime)}.setdot:active{transform:scale(.92)}.timer{margin:22px auto;width:220px;height:220px;position:relative}.timer svg{transform:rotate(-90deg)}.timer .val{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:56px;font-variant-numeric:tabular-nums}.timer .sub{position:absolute;bottom:44px;left:0;right:0;text-align:center;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}.session .foot{position:fixed;bottom:0;left:0;right:0;max-width:var(--maxw);margin:0 auto;padding:14px var(--pad) calc(14px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg) 70%,transparent);display:flex;flex-wrap:wrap;gap:10px}.foot-err{flex-basis:100%;margin:0 0 6px}.btn:disabled{opacity:.55;cursor:default}.btn{flex:1;min-height:56px;border-radius:16px;font-family:var(--font-display);font-weight:700;font-size:17px;display:grid;place-items:center;transition:transform .12s,filter .12s}.btn:active{transform:scale(.97)}.btn.primary{background:var(--lime);color:var(--on-lime);box-shadow:var(--shadow-lime)}.btn.ghost{background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);flex:0 0 auto;padding:0 20px}.btn.wide{flex:1}.link{color:var(--text-dim);font-size:14px;text-decoration:underline;text-underline-offset:3px}.ach-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ach{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 14px;text-align:center;position:relative;overflow:hidden}.ach.locked{opacity:.5}.ach.unlocked{border-color:var(--border-strong)}.ach.unlocked.big{border-color:var(--lime);box-shadow:inset 0 0 0 1px var(--lime-glow)}.ach .emoji{font-size:38px;line-height:1;display:block;margin-bottom:8px;filter:grayscale(0)}.ach.locked .emoji{filter:grayscale(1) brightness(.7)}.ach .t{font-family:var(--font-display);font-weight:600;font-size:15px}.ach .d{font-size:12px;color:var(--text-dim);margin-top:4px;min-height:30px}.ach .when{font-size:11px;color:var(--lime);margin-top:8px;font-weight:600}.ach .lockico{position:absolute;top:10px;right:12px;display:flex;color:var(--text-faint);opacity:.7}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.cal-head .mname{font-family:var(--font-display);font-weight:700;font-size:19px;text-transform:capitalize}.cal-nav{display:flex;gap:8px}.userswitch{display:flex;gap:8px;margin-bottom:16px}.userswitch button{flex:1;padding:10px;border-radius:12px;background:var(--surface);border:1px solid var(--border);color:var(--text-dim);font-weight:600;font-size:14px}.userswitch button.on{background:var(--lime-glow);border-color:var(--lime);color:var(--lime)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-grid .wdh{text-align:center;font-size:11px;color:var(--text-faint);font-weight:600;padding-bottom:4px}.cal-cell{aspect-ratio:1;border-radius:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:13px;background:var(--surface);border:1px solid var(--border);color:var(--text-dim);position:relative}.cal-cell.blank{background:transparent;border:none}.cal-cell.done{background:var(--lime);color:var(--on-lime);border-color:var(--lime);font-weight:700}.cal-cell.rest{border-style:dashed;border-color:var(--rest);color:var(--text-faint)}.cal-cell.missed{background:var(--red-dim);border-color:#ff6b5e66;color:var(--red)}.cal-cell.today{box-shadow:0 0 0 2px var(--lime)}.cal-cell.off{opacity:.4}.cal-cell .marks{position:absolute;bottom:5px;display:flex;gap:2px}.cal-cell .marks i{width:4px;height:4px;border-radius:50%;background:var(--on-lime);opacity:.7}.legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;font-size:12px;color:var(--text-dim)}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:12px;height:12px;border-radius:4px;display:inline-block}.statline{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--border)}.statline:last-child{border-bottom:none}.statline .v{font-family:var(--font-display);font-weight:700;font-size:20px;font-variant-numeric:tabular-nums}.login{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:24px;max-width:420px;margin:0 auto}.login .logo{text-align:center;margin-bottom:32px}.login .logo .mark{display:flex;justify-content:center;color:var(--lime)}.login h1{font-size:34px;margin-top:8px}.login .tag{color:var(--text-dim);margin-top:6px}.pickrow{display:flex;gap:12px;margin-bottom:18px}.pickrow button{flex:1;padding:18px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--text)}.pickrow button.on{border-color:var(--lime);background:var(--lime-glow);color:var(--lime)}.field{margin-bottom:14px}.field input{width:100%;padding:16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border-strong);color:var(--text);font-size:16px}.field input::placeholder{color:var(--text-faint)}.err{color:var(--red);font-size:14px;margin-bottom:12px;text-align:center}.remember{display:flex;align-items:center;gap:10px;margin-bottom:18px;color:var(--text-dim);font-size:14px;cursor:pointer;-webkit-user-select:none;user-select:none}.remember input{width:18px;height:18px;accent-color:var(--lime);cursor:pointer}.celebrate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;background:#080808b8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:24px;text-align:center;animation:fadein .25s ease}.celebrate .badge{font-size:80px;animation:pop .5s cubic-bezier(.2,1.4,.4,1)}.celebrate h2{font-size:28px;margin:14px 0 6px;color:var(--lime)}.celebrate p{color:var(--text-dim);max-width:300px}.celebrate .go{margin-top:24px;padding:14px 36px;border-radius:14px;background:var(--lime);color:var(--on-lime);font-family:var(--font-display);font-weight:700;font-size:16px}.tick-pop{position:fixed;z-index:55;top:50%;left:50%;transform:translate(-50%,-50%);width:96px;height:96px;border-radius:50%;background:var(--lime);color:var(--on-lime);display:grid;place-items:center;font-size:50px;box-shadow:var(--shadow-lime);pointer-events:none;animation:tickpop .45s cubic-bezier(.2,1.5,.4,1) forwards}@keyframes tickpop{0%{transform:translate(-50%,-50%) scale(.2);opacity:0}40%{transform:translate(-50%,-50%) scale(1.1);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:0}}@keyframes pop{0%{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes slidein{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.view{animation:slidein .25s ease}.center-empty{text-align:center;color:var(--text-dim);padding:60px 20px}.spinner{width:34px;height:34px;border:3px solid var(--surface-3);border-top-color:var(--lime);border-radius:50%;margin:80px auto;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}button.card{display:block;width:100%;text-align:left}.levelcard{cursor:pointer}.lc-top{display:flex;align-items:center;gap:14px;margin-bottom:14px}.lc-icon{font-size:38px;line-height:1}.lc-meta{flex:1}.lc-name{font-family:var(--font-display);font-weight:700;font-size:20px}.lc-arrow{color:var(--text-faint);font-size:26px;font-weight:400}.divider{height:1px;background:var(--border);margin:16px 0}.joint-head{display:flex;align-items:center;justify-content:space-between}.cheer.small{font-size:12px}.toast{position:fixed;top:max(env(safe-area-inset-top),16px);left:50%;transform:translate(-50%);z-index:58;width:calc(100% - 32px);max-width:420px;display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:16px;background:linear-gradient(135deg,var(--surface-2),var(--surface));border:1px solid var(--lime);box-shadow:var(--shadow),0 0 0 1px var(--lime-glow);animation:toastin .4s cubic-bezier(.2,1.2,.4,1)}.toast .ic{font-size:30px;line-height:1}.toast .tt{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--lime)}.toast .ts{font-size:13px;color:var(--text-dim)}@keyframes toastin{0%{opacity:0;transform:translate(-50%,-16px)}to{opacity:1;transform:translate(-50%)}}.feed{display:flex;flex-direction:column;gap:10px}.feeditem{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.feeditem .txt{flex:1}.feeditem .line{font-size:15px}.feeditem .when{font-size:12px;color:var(--text-faint);margin-top:2px}.feeditem .temoji{display:flex;align-items:center;color:var(--text-dim)}.playercard{background:linear-gradient(160deg,var(--surface-2),var(--surface));border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:20px}.phead{display:flex;align-items:center;gap:14px}.avatar.lg{width:60px;height:60px;font-size:22px}.phead h2{font-size:24px}.phead .lvl{display:flex;align-items:center;gap:6px;color:var(--text-dim);font-size:14px;margin-top:4px}.phead .lvlicon{font-size:18px}.phead .xp{margin-left:auto;text-align:right}.phead .xpnum{font-family:var(--font-display);font-weight:700;font-size:30px;line-height:1;color:var(--lime)}.phead .xplabel{font-size:11px;letter-spacing:.12em;color:var(--text-faint);text-transform:uppercase}.badgerow{display:flex;flex-wrap:wrap;gap:10px}.badge-mini{background:var(--surface);border:1px solid var(--border-strong);border-radius:14px;padding:10px 12px;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600}.badge-mini .be{font-size:20px}.chip .chiphint{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);margin-top:2px}.chip.on .chiphint{color:var(--lime)}.detail .body{padding-bottom:130px}.detail h2{margin-top:8px}.dh{font-family:var(--font-display);font-size:16px;font-weight:600;margin:24px 0 12px}.steps-list{margin:0;padding-left:22px}.steps-list li{margin-bottom:10px;line-height:1.5}.steps-list li::marker{color:var(--lime);font-family:var(--font-display);font-weight:700}.tipbox{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:13px 15px;font-size:14px;color:var(--text-dim);line-height:1.5;margin-top:6px}.infobox{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:15px;cursor:pointer}.infobox .loc{font-weight:600;font-size:16px}.infobox .note{color:var(--text-dim);font-size:14px;margin-top:6px;white-space:pre-wrap;line-height:1.5}.infobox .by{color:var(--text-faint);font-size:12px;margin-top:10px}.infobox .editlink{display:inline-block;margin-top:10px}.editbox input,.editbox textarea{width:100%;padding:13px 15px;border-radius:12px;background:var(--surface);border:1px solid var(--border-strong);color:var(--text);font-size:15px;font-family:inherit;margin-bottom:10px;resize:vertical}.editbox input::placeholder,.editbox textarea::placeholder{color:var(--text-faint)}.editbtns{display:flex;align-items:center;justify-content:space-between;gap:12px}.btn.save{min-height:46px;flex:0 0 auto;padding:0 26px}.celebrate.ladder{align-items:flex-start;padding:0}.ladder-card{background:var(--surface);border:1px solid var(--border-strong);border-radius:0 0 var(--radius-lg) var(--radius-lg);width:100%;max-width:var(--maxw);margin:0 auto;padding:max(env(safe-area-inset-top),18px) 18px 24px;max-height:90dvh;overflow-y:auto;text-align:left;animation:slidedown .3s cubic-bezier(.2,.9,.3,1)}@keyframes slidedown{0%{transform:translateY(-12px);opacity:0}to{transform:translateY(0);opacity:1}}.ladder-head{display:flex;align-items:center;justify-content:space-between}.ladder-head h2{font-size:24px}.ladder-intro{font-size:13px;margin:6px 0 16px}.ladder-list{display:flex;flex-direction:column;gap:8px}.ladder-row{display:flex;align-items:center;gap:14px;padding:13px 14px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);opacity:.62}.ladder-row.reached{opacity:1}.ladder-row.current{opacity:1;border-color:var(--lime);background:var(--lime-glow)}.ladder-row .lr-icon{font-size:28px;line-height:1;width:34px;text-align:center}.ladder-row .lr-meta{flex:1}.ladder-row .lr-name{font-family:var(--font-display);font-weight:700;font-size:17px}.ladder-row .lr-sub{font-size:12px;color:var(--text-dim);margin-top:1px}.ladder-row .lr-status{font-size:12px;font-weight:700;text-align:right;color:var(--text-faint);flex-shrink:0}.ladder-row.reached .lr-status,.ladder-row.current .lr-status{color:var(--lime)}.lbl-ic{display:inline-flex;align-items:center;gap:8px}.link-ic{display:inline-flex;align-items:center;gap:6px}.btn-ic{display:flex;align-items:center;justify-content:center;gap:8px}.dh-ic{display:flex;align-items:center;gap:8px}.tipbox{display:flex;align-items:flex-start;gap:10px}.tipbox>svg{color:var(--amber);margin-top:1px}.detail-typeicon{display:flex;justify-content:center;color:var(--lime);margin-bottom:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.countdown{display:flex;align-items:center;gap:16px;margin-bottom:16px;padding:14px 18px;border-radius:var(--radius);background:linear-gradient(135deg,var(--surface-2),var(--surface));border:1px solid var(--border-strong)}.countdown .cd-num{font-family:var(--font-display);font-weight:700;font-size:42px;line-height:1;color:var(--lime);font-variant-numeric:tabular-nums}.countdown .cd-lead{font-family:var(--font-display);font-weight:700;font-size:15px}.countdown .cd-sub{font-size:12px;color:var(--text-dim);margin-top:2px}.countdown.charged{border-color:var(--lime);animation:cdpulse 2.6s ease-in-out infinite}.countdown.charged .cd-sub{color:var(--lime)}@keyframes cdpulse{0%,to{box-shadow:0 0 #b6ff3c00}50%{box-shadow:0 0 22px 1px var(--lime-glow)}}.card.recap-cta{display:flex;align-items:center;gap:14px;margin-top:14px;border-color:var(--lime);background:var(--lime-glow)}.recap-cta .rc-txt{flex:1}.recap-cta .rc-title{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--lime)}.recap-cta .rc-sub{font-size:13px;color:var(--text-dim)}.recap-card{text-align:left}.recap-week{display:flex;align-items:center;justify-content:space-between;margin:6px 0 14px}.recap-range{font-family:var(--font-display);font-weight:700;font-size:17px;text-transform:capitalize}.recap-hero{font-size:15px;margin:0 0 16px}.recap-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.recap-stat{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;text-align:center}.recap-stat .rs-num{font-family:var(--font-display);font-weight:700;font-size:34px;line-height:1;font-variant-numeric:tabular-nums}.recap-stat.accent .rs-num{color:var(--lime)}.recap-stat .rs-lbl{font-size:12px;color:var(--text-dim);margin-top:6px}.recap-badge{background:var(--lime-glow);border:1px solid var(--lime);color:var(--lime);border-radius:var(--radius-sm);padding:10px 14px;font-size:13px;font-weight:600;margin-bottom:10px}.iconbtn:disabled{opacity:.4;cursor:default}.trailcard{padding:12px 8px 8px}.trail-svg{display:block;width:100%;height:auto}.trail-track{fill:none;stroke:var(--surface-3);stroke-width:7;stroke-linecap:round}.trail-fill{fill:none;stroke:var(--lime);stroke-width:7;stroke-linecap:round;transition:stroke-dashoffset 1.2s cubic-bezier(.2,.8,.2,1)}.trail-node{fill:var(--surface-2);stroke:var(--border-strong);stroke-width:2}.trail-level.on .trail-node{stroke:var(--lime);stroke-width:2.5}.trail-level.summit .trail-node{fill:var(--surface)}.trail-level.summit.on .trail-node{filter:drop-shadow(0 0 7px var(--lime-glow))}.trail-nodeicon{font-size:15px;opacity:.4}.trail-level.on .trail-nodeicon{opacity:1}.trail-level.summit .trail-nodeicon{font-size:18px}.trail-name{font-family:var(--font-display);font-weight:700;font-size:12.5px;fill:var(--text-faint)}.trail-level.on .trail-name{fill:var(--text)}.trail-req{font-size:10.5px;fill:var(--text-faint)}.trail-level.on .trail-req{fill:var(--text-dim)}.trail-goalglow{animation:goalpulse 3.2s ease-in-out infinite}@keyframes goalpulse{0%,to{opacity:.5}50%{opacity:1}}.trail-pin{fill:var(--surface-3);stroke:var(--bg);stroke-width:3}.trail-figure.me .trail-pin{fill:var(--lime)}.trail-init{font-family:var(--font-display);font-weight:700;font-size:12px;fill:var(--text)}.trail-figure.me .trail-init{fill:var(--on-lime)}.trail-bob{animation:trailbob 3s ease-in-out infinite}@keyframes trailbob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.trail-legend{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin:2px 0 4px}.trail-leg{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-dim)}.trail-leg i{width:10px;height:10px;border-radius:50%;background:var(--surface-3);border:2px solid var(--bg)}.trail-leg.me i{background:var(--lime)}@media (min-width: 640px){.scroll{padding-top:24px}.today h1{font-size:34px}}.peppa-btn{width:100%;margin-top:10px;min-height:48px;font-size:15px;color:var(--lime)}.peppa-btn>svg{color:var(--lime)}.cheer-presets{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 18px}.cheer-chip{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text);border-radius:999px;padding:10px 14px;font-size:14px;font-weight:500;transition:transform .12s,border-color .12s}.cheer-chip:active{transform:scale(.96)}.cheer-chip:disabled{opacity:.5}.cheer-custom{display:flex;gap:10px}.cheer-custom input{flex:1;min-width:0;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);font-family:inherit;font-size:15px;padding:0 14px}.cheer-custom input::placeholder{color:var(--text-faint)}.cheer-custom .btn{flex:0 0 auto;min-height:48px;padding:0 20px;font-size:15px}.feeditem .cheer-ic{color:var(--lime)}.feeditem .cheermsg{color:var(--text);font-style:italic}.feedentry{display:flex;flex-direction:column;gap:6px}.reactions{display:flex;gap:8px;padding:0 6px 2px}.reaction-btn,.reaction-pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;line-height:1}.reaction-btn{padding:7px 11px;background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text-dim);transition:transform .1s,border-color .1s,background .1s}.reaction-btn:active{transform:scale(.92)}.reaction-btn.on{background:var(--lime-glow);border-color:var(--lime);color:var(--lime)}.reaction-pill{padding:4px 9px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim)}.re-emoji{font-size:15px;line-height:1}.re-count{font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.cheer-to{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.cheer-to-chip{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text-dim);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600}.cheer-to-chip.on{background:var(--lime);border-color:var(--lime);color:var(--on-lime)}.league{display:flex;flex-direction:column;gap:8px}.league-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border)}.league-row.me{border-color:var(--lime);background:var(--lime-glow)}.league-row .lg-rank{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--text-dim);width:20px;text-align:center;font-variant-numeric:tabular-nums}.league-row.me .lg-rank{color:var(--lime)}.league-row .lg-name{flex:1;font-weight:600}.league-row .lg-done{font-family:var(--font-display);font-weight:700;font-variant-numeric:tabular-nums}.league-row .lg-unit{color:var(--text-dim);font-weight:400;font-size:13px}.setupcard{display:flex;flex-direction:column;gap:12px}.setup-install{width:100%}.setup-status{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px}.setup-status.on{color:var(--lime)}.setup-actions{display:flex;gap:10px}.setup-actions .btn{flex:1;min-height:48px;font-size:15px}.btn.ghost.danger{color:var(--red);border-color:var(--red-dim)}
