/* Saiyan Gym FITT — thin layer on top of the ASC v6 "Hanssen" system (css/asc.css).
   Only ASC tokens are used here, so both light and dark themes follow automatically. */

/* ---------- chrome ---------- */
.brandlink{display:flex;align-items:center;text-decoration:none;flex:none}
.wordmark{height:30px;width:auto;overflow:visible;filter:drop-shadow(0 3px 8px rgba(255,174,26,.28))}
.wm-fitt{fill:var(--ink)}
.auth-logo.wordmark{height:28px}
.lang-chip{border:0;background:transparent;color:#f4f5f7;opacity:.62;font:650 11px Inter;letter-spacing:.08em;
  padding:7px 9px;border-radius:13px;cursor:pointer;transition:opacity 150ms var(--snap),background 150ms var(--snap)}
@media(any-hover:hover){ .lang-chip:hover{opacity:1;background:rgba(244,245,247,.10)} }
.pill .mode{width:28px;height:28px;margin-left:2px;background:rgba(244,245,247,.14)}
.pill .mode i{width:10px;height:10px;background:#f4f5f7}
html.dark .pill .mode i{background:transparent;box-shadow:inset 0 0 0 2px #f4f5f7}
@media(max-width:1020px){
  .lang-chip{color:var(--ink);opacity:.7}
  .pill .mode{width:38px;height:38px;background:var(--panel)}
  .pill .mode i{width:12px;height:12px;background:var(--ink)}
  html.dark .pill .mode i{box-shadow:inset 0 0 0 2.5px #f4f5f7;background:transparent}
}
/* ASC hides the pill when the sidebar is present; we keep it for language + theme. */
@media(min-width:1021px){ html.has-side .pill{display:flex} html.has-side .pill-links{display:none} }
body.is-auth .shell{display:none}
#auth-root:empty{display:none}

/* Gold is light: text sitting ON the accent is dark ink, never white. */
.btn-amber,.count-badge,.pavatar,.notes-add,.sm-print{color:#1b1204!important}
.btn-amber{background:linear-gradient(158deg,var(--lava-2),var(--lava) 52%,#d98600)}

/* ---------- page scaffolding ---------- */
.page{display:flex;flex-direction:column;gap:var(--gap)}
.phead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:4px 6px 2px}
.phead h1{font:600 clamp(22px,3vw,28px)/1.1 Sora;letter-spacing:-.02em}
.phead p{color:var(--muted);font-size:13.5px;margin-top:6px;max-width:62ch}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap)}
.span-12{grid-column:span 12}.span-8{grid-column:span 8}.span-7{grid-column:span 7}.span-6{grid-column:span 6}
.span-5{grid-column:span 5}.span-4{grid-column:span 4}
@media(max-width:900px){ .grid>[class*="span-"]{grid-column:1 / -1} }
.card h2{font:600 15px Sora;margin-bottom:10px;letter-spacing:-.005em}
.card h3{margin-bottom:10px}
.card>p,.card .muted+*{line-height:1.5}
.card>*+.btn,.card>*+label.btn{margin-top:12px;align-self:flex-start}
.muted{color:var(--muted)} .small{font-size:12.5px}
.card.dark .muted{color:var(--on-stage-2)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.loading{padding:40px;text-align:center;color:var(--muted)}
.foot{font:500 11.5px Inter;color:var(--muted);text-align:right;padding:6px 6px 0}
.foot a{color:inherit}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:14px;border:0;
  cursor:pointer;font:650 14px Inter;text-decoration:none;white-space:nowrap;transition:transform 150ms var(--snap),filter 150ms var(--snap),background 150ms var(--snap)}
.btn:active{transform:scale(.97)}
.btn[disabled]{opacity:.55;cursor:progress}
.btn-primary{background:linear-gradient(158deg,var(--lava-2),var(--lava) 52%,#d98600);color:#1b1204;
  box-shadow:0 10px 22px -10px rgba(255,174,26,.75),inset 0 1px 0 rgba(255,255,255,.35)}
@media(any-hover:hover){ .btn-primary:hover{filter:brightness(1.04)} .btn-ghost:hover{background:var(--panel)} }
.btn-ghost{background:var(--panel-2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
html.dark .btn-ghost{background:rgba(244,245,247,.06)}
.card.dark .btn-ghost,.stage .btn-ghost{background:rgba(244,245,247,.10);color:#f4f5f7;box-shadow:inset 0 0 0 1px rgba(244,245,247,.16)}
.btn-sm{min-height:36px;padding:0 13px;font-size:13px;border-radius:11px}
.icon-btn{flex:none;width:36px;height:36px;border-radius:10px;border:0;background:var(--panel-2);box-shadow:inset 0 0 0 1px var(--line);
  color:var(--ink);cursor:pointer;display:grid;place-items:center;font:600 14px Inter}
html.dark .icon-btn{background:rgba(244,245,247,.06)}

/* ---------- form controls (ASC field language) ---------- */
.page label{display:block;font:600 10.5px Inter;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.page input:not([type=checkbox]):not([type=file]):not(.tb-input),.page select,.page textarea{
  width:100%;min-height:46px;border-radius:13px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);
  font:500 14px Inter;padding:0 14px;outline:none;transition:border-color .2s var(--smooth),box-shadow .2s var(--smooth)}
.page textarea{padding:11px 14px;resize:vertical;line-height:1.45}
html.dark .page input:not([type=checkbox]):not([type=file]):not(.tb-input),html.dark .page select,html.dark .page textarea{background:rgba(244,245,247,.05)}
.page input:focus,.page select:focus,.page textarea:focus{border-color:var(--lava-ring);box-shadow:0 0 0 3px var(--lava-tint)}
.page input::placeholder,.page textarea::placeholder{color:var(--muted)}
.page input[type=checkbox]{width:20px;height:20px;accent-color:var(--lava);flex:none;margin-top:1px}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:end}
.toggle-row{display:flex;gap:10px;align-items:flex-start;text-transform:none!important;letter-spacing:0!important;font:500 13.5px/1.45 Inter!important;color:var(--ink)!important}
.inline-form{display:flex;gap:8px}
.inline-form input{flex:1;min-width:0}

/* ---------- rows ---------- */
.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 2px;border-top:1px solid var(--hairline);font:500 13.5px Inter}
.row:first-of-type{border-top:0}
.row b{font:600 14px Sora}
.card.dark .row{border-top-color:rgba(244,245,247,.09)}
.target{display:grid;grid-template-columns:1fr auto;gap:3px 12px;padding:12px 2px;border-top:1px solid var(--hairline)}
.target:first-of-type{border-top:0}
.target .nm{font:600 14px Inter}
.target .nx{font:600 16px Sora;color:var(--lava-ink);text-align:right}
.target .why{grid-column:1 / -1;font-size:12px;color:var(--muted)}
.trend-up{color:var(--green-ink)} .trend-down{color:#b3261e}
html.dark .trend-down{color:#ff8a80}
.risk{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px;border-top:1px solid var(--hairline)}
.risk .score{font:700 12px Inter;min-width:34px;height:26px;border-radius:999px;display:grid;place-items:center;padding:0 9px;background:rgba(99,103,111,.14);color:var(--muted)}
.risk.high .score{background:rgba(212,69,59,.14);color:#9f2019}
html.dark .risk.high .score{color:#ff9b92}
.risk.medium .score{background:var(--lava-tint);color:var(--lava-ink)}
.badge{display:inline-flex;align-items:center;gap:6px;font:700 10.5px Inter;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:999px;background:var(--lava-tint);color:var(--lava-ink)}
.notice{margin-top:12px;font:500 13px/1.45 Inter;padding:10px 12px;border-radius:12px;background:rgba(47,191,91,.12);color:var(--green-ink)}
.notice.err{background:rgba(212,69,59,.12);color:#c13a31}

/* ---------- workout logger ---------- */
.ex-block{background:var(--panel-2);border-radius:18px;padding:14px;margin-bottom:12px;box-shadow:inset 0 0 0 1px var(--hairline)}
html.dark .ex-block{background:rgba(244,245,247,.04)}
.ex-block header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.ex-block h3,.ex-block .ex-name{font:600 15px Sora;margin:0}
.hint{font:500 12.5px/1.45 Inter;color:var(--lava-ink);background:var(--lava-tint);border-radius:11px;padding:8px 11px;margin:6px 0 10px}
.set-row{display:grid;grid-template-columns:26px 1fr 1fr 1fr 36px;gap:8px;align-items:center;margin-bottom:8px}
.set-row.lbl{font:600 10px Inter;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.set-no{font:600 13px Sora;color:var(--muted);text-align:center}
.page .set-row input{min-height:42px!important;text-align:center;padding:0 6px!important}

/* ---------- progress chart ---------- */
.chart{width:100%;height:auto;display:block}
.chart .line{fill:none;stroke:var(--lava);stroke-width:3;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 4px 8px rgba(255,174,26,.35))}
.chart .dot{fill:var(--panel);stroke:var(--lava);stroke-width:3}
.chart .axis{stroke:var(--line)}
.chart text{fill:var(--muted);font:500 11px Inter}
.bigstat{font:500 clamp(38px,5vw,56px)/1 Sora;letter-spacing:-.03em;margin:6px 0 2px}
.bigstat em{font:600 12px Inter;font-style:normal;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-left:6px}

/* ---------- admin ---------- */
.admin-row{padding:16px 0;border-top:1px solid var(--hairline)}
.admin-row:first-of-type{border-top:0;padding-top:4px}
.admin-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}
.admin-actions .toggle-row{margin-right:auto}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:14px}
.gallery figure{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/3;background:var(--panel-2)}
.gallery img{width:100%;height:100%;object-fit:cover;display:block}
.gallery .icon-btn{position:absolute;top:6px;right:6px;width:30px;height:30px;background:rgba(2,3,5,.6);color:#fff;box-shadow:none}

/* ---------- hero extensions (dashboard + landing) ---------- */
.greet-line{font:600 clamp(26px,3.6vw,40px)/1.08 Sora;letter-spacing:-.025em;margin-top:10px;max-width:16ch}
.greet-sub{font:500 13px Inter;color:var(--on-stage-2);margin-top:6px;display:flex;gap:8px}
.stage .hero-num{margin-top:18px}
.stage .ctas{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.act .desc{max-width:34ch}
.act.gold .eyebrow .led{background:var(--lava);box-shadow:0 0 8px 1px var(--lava-ring)}
@media(any-hover:hover){ .act.gold:hover .go{background:var(--lava);color:#1b1204} }
.hero .slot-a{grid-column:1;grid-row:3}
.hero .slot-b{grid-column:2;grid-row:3}
@media(max-width:900px){ .hero .slot-a,.hero .slot-b{grid-column:auto;grid-row:auto} }
.hero .slot-b.card{height:100%}
.plan-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 2px;border-top:1px solid rgba(244,245,247,.09);font:500 13.5px Inter}
.plan-row:first-of-type{border-top:0}
.plan-row b{font:600 14px Sora;color:var(--lava-2);white-space:nowrap}
.plan-meta{font:500 12.5px/1.5 Inter;color:var(--on-stage-2);margin:-2px 0 10px}
.card:not(.dark) .plan-meta{color:var(--muted)}
.agent-card .tb-reply{max-height:150px}
.quote-line{font:500 13px/1.5 Inter;color:var(--muted);font-style:italic}
.card.dark .quote-line{color:var(--on-stage-2)}
.stream .slide .meta .who{color:var(--ink);font-weight:600}
.map-frame{width:100%;height:170px;border:0;border-radius:14px;margin-top:12px;filter:grayscale(.3)}
html.dark .map-frame{filter:invert(.9) hue-rotate(180deg) saturate(.5)}

/* ---------- member pass dialog ---------- */
.pass-dialog{border:0;padding:0;background:transparent;margin:auto;max-width:min(360px,92vw)}
.pass-dialog::backdrop{background:rgba(6,7,10,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.pass-card{position:relative;border-radius:28px;padding:34px 26px 24px;text-align:center;color:var(--on-stage);
  background:radial-gradient(120% 90% at 85% -10%,rgba(255,174,26,.28),transparent 55%),linear-gradient(175deg,var(--stage-1),var(--stage-2));
  box-shadow:0 30px 60px -20px rgba(0,0,0,.6)}
.pass-card .qr{background:#fff;border-radius:18px;padding:16px;margin:14px auto 12px;width:220px}
.pass-card .qr svg{display:block;width:100%;height:auto}
.pass-card code{font:600 18px Sora;letter-spacing:.14em;color:var(--lava-2)}
.pass-card .x{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;border:0;cursor:pointer;background:rgba(244,245,247,.12);color:#fff;font:500 16px Inter}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:300;
  background:rgba(2,3,5,.9);color:#f4f5f7;padding:12px 18px;border-radius:14px;font:500 13.5px Inter;max-width:min(520px,92vw);
  box-shadow:0 16px 36px -14px rgba(0,0,0,.6);animation:rise .35s var(--smooth) both}
html.dark .toast{background:rgba(244,245,247,.94);color:#0a0c11}

/* ---------- review fixes (design pass 1) ---------- */
.top #mode{display:grid}                 /* ASC moved theme into its account menu; visitors need it here */
#view:focus,#view:focus-visible{outline:none}
a.spill,a.hstat,a.mini,.hstat b{text-decoration:none;color:inherit}
a.hstat b{color:var(--ink)} a.hstat b.g{color:var(--green-ink)}
.row b{white-space:nowrap}
.hero .act.top{grid-column:2;grid-row:1}
.hero .act.bottom{grid-column:2;grid-row:2}
@media(max-width:900px){ .hero .act.top,.hero .act.bottom{grid-column:auto;grid-row:auto}
  .hero .act.top{order:1} .hero .slot-a{order:2} .hero .act.bottom{order:3} .hero .stage{order:4} .hero .slot-b{order:5} }
.wm.is-idle{display:none}

/* Real training photos stay. Motion is the entrance, the back step, and the Saiyan controls. */
.reveal{animation:card-fall .62s cubic-bezier(.16,.84,.32,1) both}
@keyframes card-fall{from{opacity:0;transform:translateY(-22px) scale(.985)}to{opacity:1;transform:none}}
html[data-nav="fwd"] #view{animation:step-fwd .42s cubic-bezier(.2,.7,.2,1) both}
html[data-nav="back"] #view{animation:step-back .42s cubic-bezier(.2,.7,.2,1) both}
@keyframes step-fwd{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
@keyframes step-back{from{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:none}}
.photo-dlg{border:0;padding:0;background:var(--panel);color:var(--ink);border-radius:24px;width:min(620px,92vw);max-height:88dvh;margin:auto;overflow:auto}
.photo-dlg img{display:block;width:100%;max-height:74vh;object-fit:cover}
.photo-dlg p,.photo-dlg form{margin:0;padding:10px 14px}
.photo-dlg::backdrop{background:rgba(2,3,5,.72)}
.meter i{background:linear-gradient(90deg,#fff6d0,#ffae1a 55%,#7ef0ff);box-shadow:0 0 14px rgba(255,174,26,.7)}
#mode i, .auth-theme i{border-radius:50%;background:#ffd566;box-shadow:0 0 10px #ffae1a;transition:background .45s ease, box-shadow .45s ease, transform .45s cubic-bezier(.2,.8,.2,1)}
html.dark #mode i, html.dark .auth-theme i{background:#7ef0ff;box-shadow:0 0 12px #7ef0ff}
#mode.kick, .auth-theme.kick{animation:ki-pop .55s ease}
@keyframes ki-pop{0%{transform:scale(1)}35%{transform:scale(1.18)}100%{transform:scale(1)}}
.ki-burst{position:fixed;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:80}
.ki-burst.gold{background:radial-gradient(circle,#fff 0,#ffd566 28%,transparent 70%);animation:ki-flash .7s ease forwards}
.ki-burst.cyan{background:radial-gradient(circle,#fff 0,#7ef0ff 30%,transparent 70%);animation:ki-flash .7s ease forwards}
@keyframes ki-flash{from{opacity:1;width:12px;height:12px}to{opacity:0;width:280px;height:280px}}
.splash[hidden]{display:none}
.splash{position:fixed;inset:0;z-index:90;background:#05060a;overflow:hidden}
.splash video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 18%;opacity:0;animation:sp-pic 1.1s ease .15s forwards}
.sp-veil{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(5,6,10,.2),transparent 30% 62%,rgba(5,6,10,.82)),
  radial-gradient(ellipse at 50% 42%,transparent 20%,rgba(5,6,10,.55) 72%);
  animation:sp-veil 5.4s ease both}
.sp-mark{position:absolute;left:0;right:0;bottom:11vh;z-index:2;text-align:center;opacity:0;animation:sp-mark 1s ease 2.4s forwards}
.sp-mark b{display:block;font:800 40px Sora;letter-spacing:.22em;color:#fff6d0;text-shadow:0 0 28px rgba(255,174,26,.85)}
.sp-mark i{display:block;margin-top:6px;font:600 13px Sora;font-style:normal;letter-spacing:.42em;color:#7ef0ff}
.splash.lift{background:transparent;pointer-events:none}
.splash.lift .sp-veil,.splash.lift .sp-mark{opacity:0;transition:opacity .55s ease}
.auth-rise{height:196px;border-radius:22px;overflow:hidden;margin:0 0 16px;background:#101114}
.auth-rise[hidden]{display:none}
.auth-rise video,.auth-rise img{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block}
.splash.out{animation:splash-out .7s ease forwards;pointer-events:none}
@keyframes sp-pic{from{opacity:0;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}
@keyframes sp-veil{0%{opacity:1}40%{opacity:.72}100%{opacity:.35}}
@keyframes sp-mark{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes splash-out{to{opacity:0;visibility:hidden}}
@media (prefers-reduced-motion:reduce){
  .reveal,#view,.splash img,.meter i{animation:none}
  .splash{display:none}
}
.toggle-row label{text-transform:none;letter-spacing:0;font:500 13.5px/1.45 Inter;color:var(--ink);margin:0}

/* ---------- review fixes (accessibility pass 1) ---------- */
:root{--green-ink:#146b38;--lava-ink:#874b00}      /* light theme inks → ≥4.5:1 on panels and tints */
html.dark{--green-ink:#57d484;--lava-ink:#ffd566}
.risk .score{color:var(--ink-2)}
.profile .pname{font:600 18px Sora;letter-spacing:-.01em}
.sb-user{cursor:default}
.sb-me{display:flex;align-items:center;gap:10px;flex:1;min-width:0;color:inherit;text-decoration:none;border-radius:10px}
html[data-side="rail"] .sb-me{justify-content:center}
.page h2.bigstat{font:500 clamp(34px,4.5vw,48px)/1 Sora;margin:18px 0 8px}
.auth-card{display:block}
.auth-legal{font:500 11.5px/1.45 Inter;color:var(--muted);text-align:center;margin:14px 4px 0}
.tb-hint{display:block;margin-top:8px;font:500 11px/1.4 Inter;color:rgba(233,224,255,.55)}
.recent-sub{margin:-4px 4px 12px;font:500 12.5px/1.5 Inter;color:var(--muted);max-width:80ch}

/* Pinch zoom stays available (WCAG 1.4.4); "manipulation" only removes double-tap zoom, so fast taps
   never zoom. 16px form text stops iOS auto-zooming into a field on focus. */
html,body{touch-action:manipulation;-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (max-width:820px){input,select,textarea{font-size:16px!important}}

/* Ideas lab */
.idea-log{display:flex;flex-direction:column;gap:8px;max-height:min(56vh,520px);overflow-y:auto;overscroll-behavior:contain;padding:4px 2px;margin:10px 0}
.idea-msg{max-width:85%;padding:10px 13px;border-radius:14px;font:500 14px/1.5 Inter;white-space:pre-wrap;overflow-wrap:anywhere}
.idea-msg.assistant{align-self:flex-start;background:var(--surface-2,rgba(127,127,127,.12))}
.idea-msg.user{align-self:flex-end;background:var(--accent,#ffae1a);color:#1a1405}
.idea-msg.typing{opacity:.6}
.idea-form{display:flex;flex-direction:column;gap:8px;align-items:stretch}.idea-form textarea{width:100%;min-height:76px;resize:vertical}
.talk-row{display:flex;gap:10px;align-items:center}
.ptt{flex:none;min-height:52px;padding:0 18px;border:0;border-radius:999px;cursor:pointer;font:700 14px Inter;
  background:#ffae1a;color:#1a1405;touch-action:none;user-select:none}
.ptt.on{background:#c13a31;color:#fff}
.ptt-live{min-height:1.2em}
.talk-tools{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.idea-brief pre{white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.5 ui-monospace,monospace;max-height:320px;overflow:auto}

/* ---------- Studio ---------- */
.studio-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);margin:0 0 var(--gap)}
.studio-tab{display:flex;flex-direction:column;gap:3px;padding:14px 16px;border-radius:18px;background:var(--panel);
  color:var(--ink);text-decoration:none;box-shadow:inset 0 0 0 1px var(--hairline);transition:background 200ms var(--smooth),box-shadow 200ms var(--smooth)}
.studio-tab b{font:650 15px Sora;letter-spacing:-.01em}
.studio-tab span{font:500 12px/1.35 Inter;color:var(--muted)}
.studio-tab.on{background:var(--lava-tint);box-shadow:inset 0 0 0 1.5px var(--lava-ring)}
@media(any-hover:hover){ .studio-tab:not(.on):hover{background:var(--panel-2)} }
@media(max-width:560px){ .studio-tab span{display:none} .studio-tab{align-items:center;padding:12px 8px} }

.post-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--gap);align-items:start}
.post-editor{display:grid;gap:var(--gap);min-width:0}
.post-preview{position:sticky;top:18px}
@media(max-width:1020px){ .post-grid{grid-template-columns:minmax(0,1fr)} .post-preview{position:static;order:-1} }
.post-list{margin-top:var(--gap)}
.post-list .btn{margin:0 0 10px}

.seg{display:flex;gap:6px;padding:4px;border-radius:14px;background:var(--panel);width:max-content;max-width:100%;margin:4px 0 14px}
.seg button{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--ink-2);font:600 13px Inter;
  min-height:38px;padding:0 12px;border-radius:10px;cursor:pointer}
.seg button[aria-checked="true"]{background:var(--panel-2);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.ar{display:inline-block;border:1.8px solid currentColor;border-radius:3px}
.ar-11{width:13px;height:13px}.ar-45{width:12px;height:15px}.ar-191{width:17px;height:9px}

.crop-wrap{position:relative;width:100%;max-width:560px;margin:0 auto;border-radius:14px;overflow:hidden;background:#000}
.crop{display:block;touch-action:none;cursor:grab;max-width:100%}
.crop:active{cursor:grabbing}
.crop-grid{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,transparent calc(33.33% - .5px),rgba(255,255,255,.28) 0,rgba(255,255,255,.28) calc(33.33% + .5px),transparent 0,transparent calc(66.66% - .5px),rgba(255,255,255,.28) 0,rgba(255,255,255,.28) calc(66.66% + .5px),transparent 0),
             linear-gradient(transparent calc(33.33% - .5px),rgba(255,255,255,.28) 0,rgba(255,255,255,.28) calc(33.33% + .5px),transparent 0,transparent calc(66.66% - .5px),rgba(255,255,255,.28) 0,rgba(255,255,255,.28) calc(66.66% + .5px),transparent 0)}
.crop-tools{display:flex;align-items:center;gap:12px;max-width:560px;margin:12px auto 0}
.crop-tools label{margin:0;flex:none}
.crop-tools input[type=range]{flex:1;accent-color:var(--lava)}
.filters{display:flex;gap:10px;overflow-x:auto;padding:12px 2px 4px;scrollbar-width:none;overscroll-behavior-x:contain}
.filters::-webkit-scrollbar{display:none}
.filters button{flex:none;display:grid;justify-items:center;gap:6px;border:0;background:none;color:var(--muted);font:600 11.5px Inter;cursor:pointer;padding:0}
.filters canvas{width:64px;height:64px;border-radius:12px;display:block;box-shadow:inset 0 0 0 1px var(--hairline)}
.filters button[aria-checked="true"]{color:var(--ink)}
.filters button[aria-checked="true"] canvas{outline:2px solid var(--lava);outline-offset:2px}
.thumbs{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.thumbs:empty{display:none}
.thumb{display:grid;gap:4px;justify-items:center}
.thumb > button{border:0;padding:0;background:none;cursor:pointer;border-radius:10px;line-height:0}
.thumb canvas{width:72px;height:auto;border-radius:10px;display:block}
.thumb.on canvas{outline:2px solid var(--lava);outline-offset:2px}
.thumb-ctl{display:flex;gap:2px}
.thumb-ctl button{width:26px;height:26px;border:0;border-radius:8px;background:var(--panel);color:var(--ink);cursor:pointer;font:600 13px Inter}
.thumb-ctl button:disabled{opacity:.35;cursor:default}
.drop{display:flex;align-items:center;justify-content:center;gap:10px;min-height:88px;border-radius:16px;cursor:pointer;
  border:1.5px dashed var(--line);color:var(--ink-2);font:600 13.5px Inter;text-transform:none;letter-spacing:0;margin:0}
@media(any-hover:hover){ .drop:hover{border-color:var(--lava);color:var(--ink)} }

.ai-cap{padding:14px;border-radius:16px;background:var(--panel);margin:4px 0 16px}
.ai-cap label{margin-top:0}
.ai-row{display:flex;gap:8px;align-items:center}
.ai-row input{flex:1;min-width:0}
.ai-row select{width:auto;flex:none}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.chip{border:0;border-radius:999px;padding:0 12px;min-height:32px;background:var(--panel-2);color:var(--ink-2);font:600 12.5px Inter;cursor:pointer;
  box-shadow:inset 0 0 0 1px var(--hairline)}
.chip[aria-pressed="true"]{background:var(--lava-tint);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--lava-ring)}
.cap-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}
.emoji{display:flex;flex-wrap:wrap;gap:2px}
.emoji button{width:34px;height:34px;border:0;border-radius:10px;background:none;font-size:18px;cursor:pointer}
@media(any-hover:hover){ .emoji button:hover{background:var(--panel)} }
.counts{font:600 12px Inter;color:var(--muted);font-variant-numeric:tabular-nums}
.counts .over{color:#e5484d}
.tagsets{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--hairline)}
.tagsets .chips{margin:0}
.news-extra{padding:0 0 4px 30px}
.pub-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 8px}
.pub-actions .btn-primary{margin-left:auto}
@media(max-width:560px){ .pub-actions .btn{flex:1 1 100%} .pub-actions .btn-primary{margin-left:0;order:-1} }

/* Instagram preview */
.phone{border-radius:28px;background:#fff;color:#0f1115;overflow:hidden;box-shadow:var(--shadow-card),0 0 0 1px var(--hairline);max-width:380px;margin:0 auto}
html.dark .phone{background:#000;color:#f5f5f5}
.ig-head{display:flex;align-items:center;gap:10px;padding:12px 14px;font:600 13.5px Inter}
.ig-ava{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font:800 13px Sora;color:#1a1405;
  background:linear-gradient(135deg,#ffd566,#ffae1a);box-shadow:0 0 0 2px #fff,0 0 0 3.5px #d62976}
html.dark .ig-ava{box-shadow:0 0 0 2px #000,0 0 0 3.5px #d62976}
.ig-dots{margin-left:auto;letter-spacing:1px;opacity:.7}
.ig-media{position:relative;width:100%;background:#111;aspect-ratio:4/5}
.ig-media canvas{display:block;width:100%;height:100%}
.ig-empty{position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.55);font:500 13px Inter;padding:20px;text-align:center}
.ig-count{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.6);color:#fff;font:600 11.5px Inter;padding:4px 8px;border-radius:999px}
.ig-nav{position:absolute;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;border:0;background:rgba(255,255,255,.85);color:#111;font:600 18px/1 Inter;cursor:pointer}
.ig-nav.l{left:8px}.ig-nav.r{right:8px}
.ig-dotsbar{display:flex;justify-content:center;gap:4px;height:14px;align-items:center;margin-top:6px}
.ig-dotsbar i{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.25}
.ig-dotsbar i.on{background:#0095f6;opacity:1}
.ig-actions{display:flex;gap:14px;padding:4px 14px 6px}
.ig-actions svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
.ig-actions svg.r{margin-left:auto}
.ig-cap{padding:0 14px 16px;font:400 13.5px/1.45 Inter;overflow-wrap:anywhere}
.ig-cap:empty{display:none}
.ig-tag{color:#00376b} html.dark .ig-tag{color:#e0f1ff}

/* Members news (dashboard) */
.news{margin-top:var(--gap)}
.news h2{font:600 18px Sora;letter-spacing:-.01em;margin-bottom:12px}
.news-list{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.news-item{display:grid;gap:10px;align-content:start}
.news-img{width:100%;border-radius:14px;object-fit:cover;aspect-ratio:4/5;background:var(--panel)}
.news-img.r-11{aspect-ratio:1}.news-img.r-191{aspect-ratio:1.91}
.news-item h3{font:650 15px Sora}
.news-item p{font:400 13.5px/1.5 Inter;color:var(--ink-2);white-space:pre-line}
.news-item time{font:500 12px Inter;color:var(--muted)}
.news-pin{display:inline-block;font:700 10.5px Inter;letter-spacing:.08em;text-transform:uppercase;color:var(--lava-ink);background:var(--lava-tint);padding:3px 8px;border-radius:999px;margin-bottom:6px}

/* ---------- Theme switch: the login screen's iOS switch everywhere ---------- */
.top #mode{display:block;margin:0 4px 0 6px}
.auth-theme::after{content:"";position:absolute;inset:-11px -5px}          /* 44px touch target */
@media(min-width:1021px){                                                 /* header pill is dark glass on desktop */
  .pill .auth-theme{background:rgba(244,245,247,.24);box-shadow:inset 0 1px 2px rgba(0,0,0,.25)}
  html.dark .pill .auth-theme{background:rgba(244,245,247,.14)}
}
.auth-theme:focus-visible{outline:2px solid var(--lava);outline-offset:3px}

/* ---------- Softer light theme: less glare, less black-on-white ---------- */
html:not(.dark){
  --bg:#e9ebee; --shell:rgba(255,255,255,.36); --shell-solid:rgba(248,249,250,.74);
  --panel:#f0f1f3; --panel-2:#f7f8f9;
  --ink:#1c1f24; --ink-2:#40444b; --muted:#5b6069;
  --hairline:rgba(28,31,36,.07); --line:rgba(28,31,36,.11);
  --stage-1:#1f2228; --stage-2:#2a2e35; --gun:#353940; --tab-surf:#f3f4f6;
  --shadow-card:0 1px 2px -1px rgba(20,24,30,.08),0 6px 16px -8px rgba(20,24,30,.12),0 20px 40px -22px rgba(20,24,30,.16);
}
html:not(.dark) .phone{background:#fbfbfc}

/* ---------- Spacing & alignment pass (audit 2026-09) ---------- */
/* the header's .top rule (height:40px, margin, padding) also matched the hero card .act.top */
.hero .act.top{height:auto;margin:0;padding:0}
.hero > *{min-width:0}
@media(max-width:900px){
  .hero{grid-template-columns:minmax(0,1fr)}
  .stage{padding:32px var(--pad) 22px}
  .hero-num{font-size:clamp(46px,14vw,58px);overflow-wrap:anywhere}
}
/* login card centred (the root was wider than the card) */
body.is-auth #auth-root{display:flex;justify-content:center;width:100%}
.auth-msg:empty{min-height:0;margin:0}
/* one left edge: page titles on the card edge, rows on the card content edge */
.phead{padding:4px 0 2px}
.row,.target,.plan-row{padding-left:0;padding-right:0}
.mini{margin:0 -6px}
.recent .head,.recent-sub{margin-left:0;margin-right:0}
.foot{text-align:left;padding:6px 0 0}
/* Sora's space is narrow: headings read as one word without this */
.card h2,.card h3,.phead h1,.recent .head h3,.act h2,.pname{word-spacing:.12em}
/* no ellipses on short facts; wrap instead */
.hstat b{white-space:normal;overflow-wrap:anywhere}
#visit .profile .health{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}
/* form rhythm */
.card p + .form-grid,.card p + form,.form-grid + .row,.form-grid + .form-grid{margin-top:12px}
.toggle-row{align-items:center}
/* readable price line on the day-pass photo */
.act .desc{text-shadow:0 1px 3px rgba(2,3,5,.8)}
/* links inside app lists look like rows, not browser links */
a.row{color:inherit;text-decoration:none;border-radius:10px}
a.row[aria-current="page"]{background:var(--lava-tint);margin:0 -8px;padding-left:8px;padding-right:8px}
@media(any-hover:hover){ a.row:not([aria-current]):hover{background:var(--panel-2);margin:0 -8px;padding-left:8px;padding-right:8px} }
.card p a:not(.btn){color:var(--lava-ink);text-underline-offset:2px}
/* Studio: nothing may push the page wider than the screen */
.studio .card,.post-grid > *,.post-editor > *{min-width:0;max-width:100%}
.seg .ar{flex:none}
.ar.ar-191{width:17px;height:9px}
/* mobile header: language + theme sit on a pill in both themes */
@media(max-width:1020px){ .pill{background:var(--panel);padding:5px 6px 5px 8px;border-radius:16px;box-shadow:inset 0 0 0 1px var(--hairline)} }
/* Studio polish after screenshot review */
.ar.ar-1911{width:17px;height:9px}
.news-img.r-1911{aspect-ratio:1.91}
.page label.drop{display:flex;align-items:center;justify-content:center;gap:10px;text-transform:none;letter-spacing:0;font:600 13.5px Inter;color:var(--ink-2);margin:0}
.filters{padding-left:4px;padding-right:4px}
@media(max-width:560px){
  .ai-row{flex-wrap:wrap}
  .ai-row input{flex:1 1 100%}
  .ai-row select{flex:1 1 auto}
  .ai-row .btn{flex:none}
}
/* light: the glass panel was blurred at 108% brightness, reading as pure white */
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  html:not(.dark) .shell{background:rgba(242,243,245,.62);-webkit-backdrop-filter:blur(30px) saturate(125%);backdrop-filter:blur(30px) saturate(125%)}
}
.news-list{grid-template-columns:minmax(0,1fr)}
@media(min-width:700px){ .news-list{grid-template-columns:repeat(3,minmax(0,1fr))} }
.news-img{max-height:320px}
.act .eyebrow{text-shadow:0 1px 3px rgba(2,3,5,.85)}

/* ---------- Wave 1: workout mode ---------- */
.set-row{grid-template-columns:20px 1.35fr 1fr 1fr 40px 36px}   /* kg gets room for "107.5" on a phone */
.set-row.done input{opacity:.55}
.set-done[aria-pressed="true"]{background:var(--green)!important;color:#fff;box-shadow:none}
.ex-tools{display:flex;align-items:center;gap:6px}
.wm{position:sticky;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:5;margin:6px 0 10px;padding:12px 14px;border-radius:18px;
  background:var(--stage-2);color:var(--on-stage);box-shadow:var(--shadow-card)}
.wm-main{display:flex;align-items:center;gap:12px}
.wm-label{font:600 10.5px Inter;letter-spacing:.08em;text-transform:uppercase;color:var(--on-stage-2)}
.wm b{font:600 30px/1 Sora;font-variant-numeric:tabular-nums;letter-spacing:-.02em;min-width:3.2ch}
.wm.running b{color:var(--lava-2)}
.wm-ctl{display:flex;gap:6px;margin-left:auto}
.wm .chip{background:rgba(244,245,247,.10);color:var(--on-stage);box-shadow:inset 0 0 0 1px rgba(244,245,247,.14)}
.wm .chip[aria-pressed="true"]{background:var(--lava);color:#1b1204;box-shadow:none}
.wm-track{height:4px;border-radius:4px;background:rgba(244,245,247,.12);margin:10px 0;overflow:hidden}
.wm-track i{display:block;height:100%;background:linear-gradient(90deg,var(--lava-2),var(--lava));transform-origin:left;transform:scaleX(0);transition:transform 250ms linear}
.wm-opts{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.wm-tog{display:inline-flex!important;align-items:center;gap:6px;margin:0 0 0 6px!important;font:600 12px Inter!important;text-transform:none!important;letter-spacing:0!important;color:var(--on-stage-2)!important}
.wm-tog input{width:18px!important;height:18px!important}
.wm-note{margin-top:8px;color:var(--on-stage-2)!important}
@media(max-width:560px){ .wm-ctl .chip{padding:0 9px} .wm b{font-size:26px} }

/* plate calculator */
.plates-dlg,.pr-dlg{border:0;padding:0;background:transparent;max-width:min(460px,calc(100vw - 32px));width:100%;margin:auto;color:var(--ink)}
.plates-dlg::backdrop,.pr-dlg::backdrop{background:rgba(2,3,5,.6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.plates-card,.pr-card{position:relative;background:var(--panel);border-radius:26px;padding:26px 22px 22px;box-shadow:var(--shadow-card)}
.plates-card .x{position:absolute;top:12px;right:12px;width:36px;height:36px;border:0;border-radius:50%;background:var(--panel-2);color:var(--ink);cursor:pointer}
.plates-card h3{font:600 17px Sora;margin-bottom:12px}
.bar-viz{display:flex;align-items:center;height:120px;margin:18px 0 10px;padding-left:4px;overflow-x:auto}
.bar-viz .sleeve{flex:none;width:44px;height:12px;border-radius:3px;background:linear-gradient(#c9ccd1,#8d9198)}
.bar-viz .collar{flex:none;width:10px;height:28px;border-radius:3px;background:#8d9198;margin-left:2px}
.plate{flex:none;display:grid;place-items:center;margin-left:2px;border-radius:5px;font:700 10px Inter;color:#fff;writing-mode:vertical-rl;box-shadow:inset 0 0 0 1px rgba(0,0,0,.25)}
.p25{height:112px;width:22px;background:#d1363a}.p20{height:112px;width:19px;background:#2d6fd6}.p15{height:96px;width:17px;background:#e4b21c;color:#1b1204}
.p10{height:82px;width:15px;background:#2fa35a}.p5{height:62px;width:12px;background:#f4f5f7;color:#111}.p2{height:48px;width:10px;background:#3a3c40}.p1{height:40px;width:8px;background:#9aa0a8;font-size:0}
.plates-txt{font:500 14px Inter;color:var(--ink-2)}

/* PR celebration */
.confetti{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:400}
.pr-card{text-align:center;background:radial-gradient(120% 90% at 50% 0%,rgba(255,174,26,.22),transparent 60%),var(--panel)}
.pr-kicker{font:700 11px Inter;letter-spacing:.14em;text-transform:uppercase;color:var(--lava-ink)}
.pr-card h2{font:800 clamp(30px,8vw,40px)/1.05 Sora;letter-spacing:-.02em;margin:8px 0 16px;word-spacing:.08em}
.pr-row{display:grid;gap:2px;padding:12px 0;border-top:1px solid var(--hairline)}
.pr-row b{font:650 16px Sora}.pr-row span{font:600 22px Sora;color:var(--lava-ink)}.pr-row em{font:500 12.5px Inter;font-style:normal;color:var(--muted)}
.pr-actions{display:grid;gap:8px;margin:16px 0 10px}
@media(prefers-reduced-motion:no-preference){ .pr-dlg[open] .pr-card{animation:pr-pop .5s cubic-bezier(.34,1.56,.64,1) both} }
@keyframes pr-pop{from{transform:scale(.8);opacity:0}to{transform:none;opacity:1}}

/* dashboard: onboarding, tokens, bells, install */
.onboard{margin-bottom:var(--gap)}
.ob-dots{display:flex;gap:8px;margin:12px 0}
.ob-dots i{flex:1;height:8px;border-radius:8px;background:var(--line)}
.ob-dots i.on{background:linear-gradient(90deg,var(--lava-2),var(--lava))}
.ob-list{list-style:none;display:grid;gap:8px;margin:4px 0 12px}
.ob-list li{display:flex;align-items:center;gap:10px;font:500 13.5px Inter}
.ob-list .tick{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:none;box-shadow:inset 0 0 0 1.5px var(--line);font:700 12px Inter}
.ob-list li.done{color:var(--muted);text-decoration:line-through}
.ob-list li.done .tick{background:var(--green);color:#fff;box-shadow:none}
.cap.tokens{margin-top:8px;font-size:12.5px}
.bells{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:var(--gap);padding:12px 14px;border-radius:18px;background:var(--panel)}
.bells-k{font:700 11px Inter;letter-spacing:.08em;text-transform:uppercase;color:var(--lava-ink);margin-right:4px}
.bell{font:500 13px Inter;padding:6px 10px;border-radius:999px;background:var(--lava-tint)}
.install{display:flex;align-items:center;gap:12px;padding:12px 12px 12px 14px;border-radius:18px;background:var(--panel);margin-bottom:var(--gap);box-shadow:inset 0 0 0 1.5px var(--lava-ring)}
.install img{border-radius:12px;flex:none}
.install div{display:grid;gap:2px;flex:1;min-width:0}
.install b{font:650 14px Sora}.install span{font:500 12.5px/1.4 Inter;color:var(--muted)}

/* desk: greet today */
.greet-row{align-items:center}
.greet-act{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.hstat b{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}

/* Member finish — continuous surface, thumb dock, and a seamless offers strip. */
html{background:var(--bg);scroll-padding-top:24px;overflow-x:clip}
*,*::before,*::after{scrollbar-width:none}
*::-webkit-scrollbar{display:none;width:0;height:0}
body{padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))}
.member-dock{position:fixed;z-index:65;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);
  display:flex;gap:5px;padding:7px;border:1px solid var(--rim);border-radius:25px;
  width:min(390px,calc(100% - 32px));background:var(--panel);box-shadow:0 12px 40px rgba(0,0,0,.24),inset 0 1px var(--rim-top)}
.dock-group{flex:1;min-width:0}
.dock-trigger{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:100%;min-height:54px;
  border:0;border-radius:18px;background:transparent;color:var(--muted);font:600 11px Inter;cursor:pointer;transition:background .2s,color .2s,transform .2s}
.dock-trigger svg{width:21px;height:21px}
.dock-trigger.on,.dock-trigger[aria-expanded="true"]{background:var(--lava-tint);color:var(--lava-ink)}
.dock-trigger:active{transform:scale(.94)}
.dock-panel{position:absolute;left:0;right:0;bottom:calc(100% + 12px);padding:12px;border-radius:24px;background:var(--panel);
  border:1px solid var(--rim);box-shadow:0 16px 48px rgba(0,0,0,.25);max-height:min(440px,calc(100dvh - 150px - env(safe-area-inset-top,0px)));overflow:auto;
  animation:dock-in .22s var(--smooth) both}
.dock-panel[hidden]{display:none}
.dock-panel h2{font:700 11px Inter;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding:10px 12px}
.dock-panel a,.dock-panel button{display:flex;align-items:center;gap:10px;padding:12px;min-height:46px;border-radius:12px;
  color:var(--ink);font:500 14px Inter;text-decoration:none;border:0;background:transparent;width:100%;text-align:left;cursor:pointer}
.dock-panel a span{margin-left:auto;color:var(--muted)}
.dock-panel [data-language] b{margin-left:auto;color:var(--muted);font:500 12px Inter}
.dock-theme-dot{margin-left:auto;flex:none;width:18px;height:18px;border-radius:50%;background:#ffd566;box-shadow:0 0 10px #ffae1a}
html.dark .dock-theme-dot{background:#7ef0ff;box-shadow:0 0 12px #7ef0ff}
.dock-panel [aria-current="page"]{background:var(--lava-tint);color:var(--lava-ink)}
@media(any-hover:hover){.dock-panel a:hover,.dock-panel button:hover{background:var(--panel-2)}}
@keyframes dock-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
:focus-visible{outline:2px solid var(--lava-ink);outline-offset:4px}
.wm{bottom:calc(102px + env(safe-area-inset-bottom,0px))}
.toast{bottom:calc(105px + env(safe-area-inset-bottom,0px))}
.builder{color:var(--muted);font-size:11px;margin-top:18px}
.recent .head{gap:10px;flex-wrap:wrap;align-items:center}
.recent .head h3{margin-right:auto}
.stream-pause{border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink-2);min-height:44px;padding:0 12px;font:600 12px Inter;cursor:pointer}
.stream{display:block;overflow:hidden;scrollbar-width:none;position:relative;touch-action:pan-y;cursor:grab;user-select:none;padding:4px 0 18px;scroll-behavior:auto}
.stream::-webkit-scrollbar{display:none;width:0;height:0}
.stream:active{cursor:grabbing}
.stream-track{display:flex;width:max-content;animation:none!important;will-change:transform}
.stream-set{display:flex;flex:none;width:max-content;gap:12px;padding-right:12px}
.stream-track .slide{margin:0;flex:0 0 216px;width:216px;position:relative;border:1px solid var(--hairline);font:inherit;text-align:left;cursor:pointer;box-shadow:0 6px 18px -12px rgba(0,0,0,.35)}
.stream .slide .thumb{width:100%;height:134px;object-fit:cover;object-position:center;pointer-events:none}
.stream .slide .meta{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:14px;min-height:100px}
.stream .slide .who{font:600 14px/1.35 Sora;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.stream .slide .chip{font-size:10px;min-height:0;padding:4px 8px;max-width:100%;white-space:normal}
.offer-art{height:134px;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:24px 18px 12px;
  background:radial-gradient(ellipse at 95% 0,rgba(255,174,26,.24),transparent 70%),var(--stage-2);color:#ffd566}
.offer-art b{font:600 29px Sora;letter-spacing:-.04em}
.offer-art small{font:500 11px Inter;color:var(--on-stage-2)}
.offer-art svg{width:32px;height:32px}
.offer-detail{padding:18px 22px 24px}
.offer-detail h2{font:650 22px/1.3 Sora;margin-bottom:12px}
.offer-detail p{padding:0;margin:12px 0 20px;white-space:pre-wrap;font:400 15px/1.65 Inter;overflow-wrap:anywhere}
.offer-price{font:600 28px Sora;color:var(--lava-ink)}
.photo-dlg img{max-height:55dvh;object-fit:contain;background:#101114}
.photo-dlg form{display:flex;justify-content:flex-end;position:sticky;top:0;background:var(--panel);z-index:2}
.splash-flight{position:fixed;z-index:95;object-fit:cover;object-position:center 18%;margin:0;max-width:none;pointer-events:none}
.auth-card.splash-landed{animation:none;transform:none}
html[data-nav="fwd"] body.is-auth .auth-card:not(.splash-landed){animation:step-fwd .42s cubic-bezier(.2,.7,.2,1) both}
html[data-nav="back"] body.is-auth .auth-card:not(.splash-landed){animation:step-back .42s cubic-bezier(.2,.7,.2,1) both}
.auth-rise .frame-loading{visibility:hidden}
.auth-switch#lq{min-height:3em}
.splash-skip{position:absolute;right:24px;top:calc(20px + env(safe-area-inset-top,0px));min-height:44px;padding:0 18px;border-radius:22px;
  background:rgba(8,10,15,.72);border:1px solid rgba(255,255,255,.25);color:#fff;font:600 13px Inter;z-index:3;cursor:pointer}
body.is-auth{padding:calc(20px + env(safe-area-inset-top,0px)) max(18px,env(safe-area-inset-right,0px)) calc(112px + env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px))}
@media(min-width:1021px){
  html.has-member-nav body{padding-left:148px;padding-bottom:30px}
  html.has-member-nav body.is-auth{padding-left:148px;padding-right:26px}
  .member-dock{left:24px;top:24px;bottom:auto;transform:none;width:96px;flex-direction:column;border-radius:25px}
  .dock-group{flex:none;position:relative}
  .dock-trigger{min-height:70px;font-size:12px;gap:8px}
  .dock-panel{left:calc(100% + 20px);right:auto;bottom:auto;top:0;width:270px;max-height:calc(100dvh - 340px);min-height:100px}
  .wm{bottom:18px}.toast{bottom:24px}
}
@media(max-width:700px){
  html{--app-surface:#e9ebee;--tab-surf:var(--app-surface)}
  html.dark{--app-surface:#14161c;--bg:var(--app-surface);--tab-surf:var(--app-surface)}
  body{padding:0 0 calc(110px + env(safe-area-inset-bottom,0px));background:var(--app-surface)}
  body .canvas,body .grain{display:none}
  body:not(.is-auth) .shell{min-height:100dvh;border:0;border-radius:0;margin:0;box-shadow:none;background:var(--app-surface)!important;
    backdrop-filter:none;-webkit-backdrop-filter:none;padding:0 16px 16px;animation:none}
  header.top{height:auto;min-height:calc(56px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 0 0;margin-bottom:16px;gap:8px}
  body.is-auth{padding-top:env(safe-area-inset-top,0px)}
  .logo{height:24px}
  .pill-links{display:none}
  .top .pill{border:0;gap:6px;padding:8px}
  .lang-chip{min-width:38px;min-height:32px}
  .auth-card{padding:22px 20px;border-radius:26px}
  .auth-top{gap:10px}.auth-logo{height:23px}.auth-home{font-size:13px}
  .recent .head .live{display:none}
  .stream-track .slide{flex-basis:198px;width:198px}
  .phead{flex-wrap:wrap;gap:12px}.phead>*{min-width:0}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .stream{overflow:hidden;-webkit-mask-image:none;mask-image:none}
}

/* account deletion */
.del-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.btn.danger{color:#e5484d;box-shadow:inset 0 0 0 1px rgba(229,72,77,.35)}
.team-act{display:flex;align-items:center;gap:6px}

/* ---------- Wave 2: crew, best time, kudos, gym TV ---------- */
.sub-h{margin:16px 0 4px;font:700 12px Inter;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.row.me b,.row.me span{color:var(--lava-ink)}
.team-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:0}
.obar.team.mine .t span{color:var(--ink);font-weight:700}
.obar.team .t b small{font:500 11px Inter;color:var(--muted)}
.quest.done .t span{color:var(--green-ink)}
.bt-days{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 12px}
.bt-days .chip[aria-pressed="true"]{background:var(--lava-tint);color:var(--lava-ink);box-shadow:inset 0 0 0 1px var(--lava-ring)}
.bt-bars{display:flex;align-items:flex-end;gap:4px;height:96px;padding-bottom:18px;position:relative}
.bt.compact .bt-bars{height:64px}
.bt-bar{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative;min-width:0}
.bt-bar i{display:block;width:100%;max-width:26px;border-radius:5px 5px 2px 2px;background:var(--line)}
.bt-bar em{position:absolute;bottom:-18px;font:600 10.5px Inter;color:var(--muted);font-style:normal}
.bt-bar.lv0 i,.bt-key i.lv0{background:var(--green)}
.bt-bar.lv1 i,.bt-key i.lv1{background:var(--lava)}
.bt-bar.lv2 i,.bt-key i.lv2{background:#5C7C9D}
.bt-tip{margin-top:10px;font-weight:600}
.bt-key{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;margin-left:6px}
.bt-key i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-left:6px}
.kudos{display:inline-flex;align-items:center;gap:4px;min-height:32px;min-width:44px;padding:0 10px;border:0;border-radius:999px;cursor:pointer;
  background:var(--panel-2);color:var(--ink-2);font:700 12.5px Inter;box-shadow:inset 0 0 0 1px var(--line);vertical-align:middle}
.kudos[aria-pressed="true"]{background:var(--lava-tint);color:var(--lava-ink);box-shadow:inset 0 0 0 1px var(--lava-ring)}
.bell .kudos{min-height:26px;padding:0 8px;margin-left:4px}
a.bells-k{text-decoration:none}
@media(prefers-reduced-motion:no-preference){ .kudos.zap{animation:zap .45s cubic-bezier(.34,1.56,.64,1)} }
@keyframes zap{0%{transform:scale(1)}40%{transform:scale(1.25)}100%{transform:scale(1)}}
.bell-row>span{min-width:0}
.crew-teaser{display:flex;align-items:center;gap:10px;margin-top:var(--gap);padding:12px 14px;border-radius:18px;background:var(--panel);
  color:var(--ink);text-decoration:none;font:500 13.5px Inter}
.crew-teaser span:nth-child(2){flex:1;min-width:0}
.outbox-note,.draft-note{padding:10px 12px;border-radius:12px;background:var(--lava-tint);color:var(--ink);display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0}
.outbox-note{margin:0 0 var(--gap)}
.push-topics{display:grid;gap:8px;margin:10px 0 0 26px}
.push-topics[hidden]{display:none}

html.tv-mode .top,html.tv-mode .side,html.tv-mode .sb-burger{display:none!important}
html.tv-mode .shell{max-width:none;padding:24px 32px}
.tv-wrap{min-height:calc(100vh - 48px);display:flex;flex-direction:column;gap:18px}
.tv-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px}
.tv-head .wordmark{height:44px}
.tv-clock{margin-left:auto;font:700 34px Sora;color:var(--ink)}
.tv-exit{color:var(--muted)}.tv-exit:focus,.tv-exit:hover{color:var(--ink)}
.tv-grid{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:18px}
.tv-card{background:var(--shell-solid);border-radius:26px;padding:24px 26px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:12px;min-height:0;overflow:hidden;font-size:20px}
.tv-k{font:700 14px Inter;letter-spacing:.1em;text-transform:uppercase;color:var(--lava-ink)}
.tv-big{font:800 120px/1 Sora;color:var(--ink)}
.tv-big.closed{font-size:56px;color:var(--muted)}
.tv-now .bt-bars{height:150px}
.tv-row{display:flex;align-items:baseline;gap:14px;padding:8px 0;border-top:1px solid var(--hairline);font:500 20px Inter}
.tv-row b{font:700 22px Sora;min-width:64px}.tv-row span{flex:1;min-width:0}.tv-row em{font-style:normal;color:var(--lava-ink);font-weight:700}
.tv-card .obar .t{font-size:18px}.tv-card .obar .t b{font-size:22px}.tv-card .obar .bar{height:12px;border-radius:6px}
.tv-post img{width:100%;flex:1;min-height:0;object-fit:cover;border-radius:18px}
.tv-post b{font:700 24px Sora}
@media(max-width:1000px){ .tv-grid{grid-template-columns:1fr;grid-auto-rows:auto} .tv-big{font-size:80px} html.tv-mode .shell{padding:16px} .tv-head .wordmark{height:32px} .tv-clock{font-size:24px} }

/* logger: suggestions are placeholders, clearly lighter than what was entered */
.page .set-row input::placeholder{color:var(--muted);opacity:.6}
.log-hint{margin:12px 0 0}

/* Members and passes (desk) */
.pd-member{flex-wrap:wrap}
.pd-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;margin-left:auto}
.pd-none{color:var(--ink-2)}
.pd-soon{color:var(--ink);font-weight:650}
.pd-member + .pd-form{padding:0 2px 12px}

/* Trip passport and review prompt */
.trip .stamps{list-style:none;margin:12px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:10px}
.stamp{aspect-ratio:1;border-radius:50%;box-shadow:inset 0 0 0 2px var(--lava);display:grid;place-content:center;text-align:center;color:var(--ink);font:600 11.5px Inter;line-height:1.2}
.stamp b{font:800 17px Sora,sans-serif;color:var(--ink)}
.stamp:nth-child(3n){transform:rotate(-6deg)}.stamp:nth-child(3n+1){transform:rotate(4deg)}
.trip .toggle-row{margin:4px 0 10px}
.trip-code{margin-top:14px;padding:12px 14px;border-radius:14px;background:var(--panel-2);display:grid;gap:4px}
.trip-code code{font:800 22px Sora,sans-serif;letter-spacing:.06em;color:var(--ink)}
.review-ask .inline-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
@media (prefers-reduced-motion:reduce){.stamp{transform:none!important}}

/* Launch checklist (Settings) */
.launch-list{list-style:none;margin:10px 0 0;padding:0}
.launch-item{display:flex;align-items:center;gap:12px;padding:11px 2px;border-top:1px solid var(--hairline)}
.launch-item > div{flex:1;min-width:0}
.launch-mark{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-content:center;font:800 14px Inter;box-shadow:inset 0 0 0 2px var(--line)}
.launch-item.ok .launch-mark{background:var(--green);box-shadow:none;color:#0b2415}
.launch-item.ok b{color:var(--ink-2);font-weight:600}
.launch-item.unknown .launch-mark{color:var(--ink-2)}
.launch-need{font:700 11px Inter;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);background:var(--lava-tint);border-radius:999px;padding:2px 8px}

/* Saiyan Wrapped */
.wrapped-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:6px 0 16px}
.wrapped-tile{display:grid;gap:4px}
.wrapped-tile b{font:800 34px/1.1 Sora,sans-serif;color:var(--ink)}
.wrapped .toggle-row{margin:0 0 10px}
.wrapped-teaser{display:block;text-decoration:none;color:inherit;margin-top:14px}
.wrapped-teaser h3{margin:0 0 4px}
