/* Gold glass with a cheap backdrop-filter budget.
   Blur only a few large panes. Lists use opaque plates. */
:root {
  --black: #050505;
  --gold: #d4af37;
  --gold-dim: #8a6d1f;
  --chrome: #f3ead8;
  --muted: #a89f90;
  --line: rgba(212, 175, 55, .34);
  --ok: #3d9a6a;
  --glass-hi: rgba(255, 236, 180, .12);
}

html {
  scrollbar-width: auto;
  scrollbar-color: #c9a227 #12100c;
}
* {
  scrollbar-width: thin;
  scrollbar-color: #c9a227 #12100c;
}
::-webkit-scrollbar {
  width: 11px;
  height: 11px;
}
::-webkit-scrollbar-track {
  background: #12100c;
  border-left: 1px solid rgba(201,162,39,.18);
  box-shadow: inset 1px 0 0 rgba(0,0,0,.45);
}
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #f0d56a 0%, #c9a227 55%, #8a6d1f 100%);
  border-radius: 99px;
  border: 3px solid #12100c;
  min-height: 48px;
}
::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #ffe08a, #e0b84a);
}
::-webkit-scrollbar-corner { background: #12100c; }
body {
  background:
    radial-gradient(70% 38% at 50% -8%, rgba(212,175,55,.14), transparent 58%),
    #050505;
}
.app { position: relative; z-index: 1; }

/* Header + nav: one blur each, 16px, no extra filters that re-raster every scroll */
.top, .nav {
  background: rgba(8, 7, 5, .72) !important;
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  transform: translateZ(0);
}
.top {
  border-bottom: 1px solid rgba(232,205,120,.22) !important;
  box-shadow: inset 0 1px 0 rgba(255,236,180,.16);
}
.top h1 { font-size: 12px; letter-spacing: .22em; }
.nav {
  border-top: 1px solid rgba(232,205,120,.22) !important;
  box-shadow: inset 0 1px 0 rgba(255,236,180,.1);
}
.nav button.on { color: var(--gold) !important; }

.hero { padding: 10px 20px 6px !important; }
.hero .slogan, .hero-tag { display: none !important; }
body.unlocked .hero img { width: 148px !important; }
body.unlocked .legal-home { display: none !important; }

/* Only these 3 home panes pay for blur */
.welcome-card,
.focus-card,
.crowd-card {
  position: relative;
  margin: 10px 16px !important;
  padding: 14px 16px !important;
  border-radius: 20px !important;
  background:
    linear-gradient(165deg, var(--glass-hi), transparent 46%),
    rgba(16, 12, 8, .78) !important;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(232, 205, 120, .28) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 244, 210, .22),
    0 16px 32px rgba(0,0,0,.4) !important;
  transform: translateZ(0);
}
.welcome-card::after,
.focus-card::after,
.crowd-card::after {
  content: "";
  pointer-events: none;
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(115deg, rgba(255,255,255,.12), transparent 32%);
}

/* Lists: look glassy without sampling the backdrop */
.ex, .day-card, .xp-card, .shop-card, .guide-card,
.friends-card, .account-drop-inner, .account-page-inner, .auth-box {
  background: rgba(18, 14, 10, .92) !important;
  border: 1px solid var(--line) !important;
  box-shadow: inset 0 1px 0 rgba(255,236,180,.1);
}

.welcome-card {
  width: calc(100% - 32px);
  display: flex; align-items: center; gap: 12px;
  text-align: left; color: inherit; cursor: pointer;
}
.welcome-av {
  width: 48px; height: 48px; border-radius: 50%;
  object-fit: cover; background: #111;
  border: 1px solid rgba(232,205,120,.4);
}
.welcome-copy { flex: 1; min-width: 0; }
.welcome-copy strong { display: block; font-size: 16px; }
.welcome-status {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 3px; font-size: 11px; color: var(--ok); font-weight: 600;
}
.welcome-status::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%;
  background: var(--ok); box-shadow: 0 0 8px var(--ok);
}
.welcome-status.session { color: var(--gold); }
.welcome-status.session::before {
  background: var(--gold); box-shadow: 0 0 8px var(--gold);
}
.welcome-copy em {
  display: block; margin-top: 2px; font-style: normal;
  font-size: 11px; color: var(--gold);
}
.welcome-go { color: var(--gold); font-size: 22px; }

.focus-card .kicker,
.crowd-kicker {
  display: block; font-size: 10px; letter-spacing: .16em;
  text-transform: uppercase; color: var(--gold); font-weight: 700;
}
.focus-card h3 {
  margin: 6px 0 4px; font-size: 22px; letter-spacing: -.02em; line-height: 1.15;
}
.focus-card p { margin: 0 0 12px; color: var(--muted); font-size: 13px; }
.focus-card .btn-gold {
  width: 100%; border-radius: 999px !important;
  padding: 14px 18px !important; font-size: 14px;
  letter-spacing: .1em; text-transform: uppercase; font-weight: 800;
}

.btn-gold {
  background: linear-gradient(180deg, #f0d56a, #c9a227 55%, #a7861c) !important;
  color: #111 !important;
  border-radius: 999px !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.4), 0 8px 20px rgba(201,162,39,.28);
}
.btn-ghost {
  border-radius: 999px !important;
  border-color: var(--line) !important;
  background: rgba(20,16,12,.9) !important;
}

.crowd-bar {
  height: 14px !important;
  background: #1a1420 !important;
  border: 1px solid var(--gold-dim) !important;
}
.crowd-bar span {
  background: linear-gradient(90deg, #f0d36a, #c9a227) !important;
  box-shadow: 0 0 12px rgba(201,162,39,.45);
}

.logo-wrap .logo-glow { display: none !important; }
.screen.on { animation: glassIn .4s cubic-bezier(.22,.8,.28,1) both; }
@keyframes glassIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}
button:active { transform: scale(.97); }

@media (prefers-reduced-transparency: reduce), (prefers-reduced-motion: reduce) {
  .top, .nav, .welcome-card, .focus-card, .crowd-card {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    background: rgba(14,12,10,.94) !important;
  }
  * { animation: none !important; }
}

@supports not ((backdrop-filter: blur(2px)) or (-webkit-backdrop-filter: blur(2px))) {
  .top, .nav, .welcome-card, .focus-card, .crowd-card {
    background: rgba(14,12,10,.94) !important;
  }
}

.nav button { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.nav-ico { font-size: 16px; line-height: 1; opacity: .85; }
.feed-fab, .friends-fab { display: none !important; }
.acct-group {
  margin: 12px 4px 4px;
  font-size: 10px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--gold);
}
.crowd-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 14px 0 2px;
}
.crowd-row .btn-gold,
.crowd-row .btn-ghost {
  width: 100%;
  min-height: 44px;
  font-size: 13px;
}
.crowd-mini {
  min-height: 36px !important;
  padding: 0 12px !important;
  width: auto !important;
}
.crowd-typical {
  margin-top: 4px;
  border-top: 1px solid rgba(201,162,39,.18);
  padding-top: 2px;
}
.crowd-typical summary {
  cursor: pointer;
  list-style: none;
  color: var(--muted);
  font-size: 12px;
  letter-spacing: .04em;
  padding: 10px 0 6px;
}
.crowd-typical summary::-webkit-details-marker { display: none; }
.crowd-typical summary::after { content: " ▾"; float: right; color: var(--gold); }
.crowd-typical[open] summary::after { content: " ▴"; }
.crowd-typical summary:hover { color: var(--gold); }
.crowd-hours {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: 56px;
  margin: 4px 0 8px;
}
.crowd-hour {
  flex: 1;
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
}
.crowd-hour i {
  display: block;
  width: 100%;
  max-width: 7px;
  background: rgba(201,162,39,.28) !important;
  border-radius: 3px 3px 0 0;
  opacity: 1;
}
.crowd-hour em {
  font-style: normal;
  font-size: 8px;
  line-height: 1;
  min-height: 8px;
  color: var(--muted);
}
.crowd-hour.now i {
  background: linear-gradient(#f0d56a, #c9a227) !important;
  box-shadow: 0 0 8px rgba(201,162,39,.5);
  animation: none !important;
}
.crowd-hour.now em { color: var(--gold); font-weight: 700; }
.crowd-live-label {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 8px;
}
.crowd-live-label em {
  font-style: normal;
  font-size: 18px;
  font-weight: 700;
  color: var(--chrome);
  letter-spacing: -.02em;
}
.crowd-live-label span {
  font-size: 12px;
  color: var(--muted);
  letter-spacing: 0;
  text-transform: none;
  font-weight: 500;
}
.crowd-bar {
  height: 8px !important;
  background: rgba(255,255,255,.06) !important;
  border: 0 !important;
}
.crowd-card.crowd-simple { padding: 16px !important; }
.crowd-card.crowd-simple h3 { font-size: 17px; margin: 2px 0 0; }
.crowd-bands {
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
}
.crowd-bands li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-top: 1px solid rgba(201,162,39,.12);
  font-size: 13px;
  color: var(--muted);
}
.crowd-bands li strong { color: var(--chrome); font-weight: 600; }
.crowd-bands li.on {
  color: var(--gold);
}
.crowd-bands li.on strong { color: var(--gold); }

body.unlocked .hero { padding: 18px 20px 14px !important; }
body.unlocked .hero img { width: 118px !important; }
.focus-card h3 { font-size: 26px !important; }
.day-card {
  background: rgba(16,12,8,.9) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.more-block { margin-top: 18px; }
.more-block summary {
  cursor: pointer;
  color: var(--gold);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 12px;
  padding: 10px 0;
}
#welcome-card { display: none !important; }

#test-gate.guide{z-index:480 !important;}
#test-gate.guide.on{display:flex !important;align-items:center;justify-content:center;}

.nav { grid-template-columns: 1fr 1fr 1fr 1fr !important; }
.club-you, .club-tonight {
  margin: 10px 0 !important;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: rgba(16,12,8,.86);
}
.club-you-btn {
  width: 100%; display: flex; gap: 12px; align-items: center;
  text-align: left; background: none; border: 0; color: inherit; padding: 0;
}
.club-you-btn img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.club-you-btn strong, .club-you-btn span { display: block; }
.club-you-btn span { color: var(--muted); font-size: 12px; margin-top: 2px; }
.club-post-row { display: flex; align-items: center; justify-content: space-between; margin: 8px 0 12px; }
.club-post-row h2 { margin: 0; font-size: 18px; }
.club-post-row .btn-gold { width: auto; min-width: 96px; padding: 0 18px; }
.club-live { list-style: none; padding: 0; margin: 8px 0 0; }
.club-live li { display: flex; justify-content: space-between; padding: 6px 0; border-top: 1px solid var(--line); font-size: 13px; }
.club-live em { color: var(--gold); font-style: normal; }
#club .friend-add { display: flex; gap: 8px; margin: 8px 0; }
#club .friend-add input { flex: 1; }

.upload-hud{
  position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.55);
}
.upload-hud[hidden]{display:none !important;}
.upload-card{
  width:min(320px,86vw);padding:18px 16px;border-radius:16px;
  background:#16120c;border:1px solid var(--line);text-align:center;
}
.upload-card p{margin:0 0 10px;letter-spacing:.12em;text-transform:uppercase;font-size:11px;color:var(--gold);}
.upload-track{height:8px;border-radius:99px;background:#2a2418;overflow:hidden;}
#upload-bar{display:block;height:100%;width:0;background:linear-gradient(90deg,#f0d36a,#c9a227);transition:width .15s linear;}
#upload-pct{display:block;margin-top:8px;color:var(--chrome);}

.nav-ico svg{
  width:20px;height:20px;display:block;margin:0 auto 2px;
  fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
}
.ach-svg{width:28px;height:28px;display:block;}
.ach-badge{display:inline-flex;flex-direction:column;align-items:center;gap:4px;}
.ach-badge.mini .ach-svg{width:18px;height:18px;}

.prog-head{margin:0 0 10px;}
.prog-head h2{margin:0;font-size:22px;letter-spacing:-.02em;}
.prog-card,.prog-week{
  margin:0 0 12px;padding:14px;border-radius:18px;
  border:1px solid var(--line);background:rgba(16,12,8,.88);
}
.prog-card select{width:100%;margin:4px 0 8px;}
.prog-fold{
  margin:0 0 10px;padding:4px 14px 10px;border-radius:16px;
  border:1px solid var(--line);background:rgba(16,12,8,.72);
}
.prog-fold summary{
  cursor:pointer;color:var(--gold);letter-spacing:.12em;
  text-transform:uppercase;font-size:12px;padding:12px 0;
}
.prog-fold[open] summary{border-bottom:1px solid var(--line);margin-bottom:10px;}

.train-screen{padding-bottom:calc(132px + env(safe-area-inset-bottom));}
.train-head h2{margin:0 0 4px;font-size:22px;letter-spacing:-.02em;}
.train-head .leave-clock,.train-head .hint{margin:0 0 6px;}
.train-screen .picker,.train-screen .ex,.train-rest{
  margin:0 0 12px;padding:14px;border-radius:18px;
  border:1px solid var(--line);background:rgba(16,12,8,.88);
}
.train-screen .progress-line{margin-top:8px;font-size:12px;color:var(--gold);letter-spacing:.06em;}
.train-screen .ex-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.train-screen .ex-name{margin:0;font-size:20px;}
.train-dock{
  position:sticky;bottom:calc(64px + env(safe-area-inset-bottom));
  background:rgba(8,7,5,.94);padding:8px 0 6px;z-index:8;
}
.actions.train-dock{
  grid-template-columns: auto auto 1fr;
  gap: 8px;
  align-items: center;
}
.actions.train-dock #save-session{grid-column:auto;}
.demo-btn, .swap-chip {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: var(--muted) !important;
  padding-left: 0;
  padding-right: 0;
}
.swap-chip { border-bottom: 1px solid var(--line) !important; border-radius: 0 !important; margin-right: 10px; }
.swap-row { gap: 4px 12px; }
.train-rest .kicker{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;font-size:11px;}
.train-rest h3{margin:6px 0;}


/* Global polish */
h2 { letter-spacing: -0.03em; }
.hint { line-height: 1.45; }
.field-label, .ctrl-label {
  display: block; margin: 10px 0 6px;
  font-size: 11px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--gold);
}
input, textarea, select {
  width: 100%;
  background: #120f0b !important;
  color: var(--chrome) !important;
  border: 1px solid var(--line) !important;
  border-radius: 12px !important;
  padding: 12px 12px !important;
}
input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: rgba(232,205,120,.7) !important;
  box-shadow: 0 0 0 3px rgba(212,175,55,.12);
}
.btn-gold, .btn-ghost, .btn-danger {
  min-height: 46px;
  border-radius: 999px !important;
  letter-spacing: .04em;
}
.auth-box, .guide-card, .account-drop-inner, .account-page-inner, .friends-card {
  border-radius: 18px !important;
  border-color: var(--line) !important;
  background: rgba(14,12,10,.94) !important;
}
.guide { background: rgba(0,0,0,.62); }
.cloud-status {
  border-radius: 999px !important;
  border: 1px solid var(--line);
  background: rgba(18,14,10,.8) !important;
  padding: 6px 10px !important;
}
.day-card {
  border-radius: 16px !important;
  padding: 14px 10px !important;
  background: rgba(16,12,8,.9) !important;
}
.day-card h3 { font-size: 14px; }
.day-card button { margin-top: 12px; }
.chart {
  background: #0c0a08;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 8px;
}
.set-row, .lift-row {
  padding: 10px 0;
  border-top: 1px solid rgba(212,175,55,.12);
}
.post {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px;
  margin-bottom: 10px;
  background: rgba(16,12,8,.8);
}
.friend-card {
  border-radius: 14px;
  border: 1px solid var(--line);
  padding: 10px;
  margin-bottom: 8px;
}
.acct-link {
  border-radius: 12px !important;
  padding: 12px 10px !important;
}


input[type="checkbox"], input[type="radio"], input[type="file"] {
  width: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}
.admin-post-wrap {
  display: flex !important;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin: 10px 0;
  color: var(--gold);
}
.admin-post-wrap[hidden] { display: none !important; }
#composer.guide { z-index: 460 !important; }
#composer .guide-card {
  overflow: auto !important;
  max-height: min(80dvh, 640px);
  width: min(420px, 92vw);
}

.empty-state{text-align:center;padding:18px 8px;}
.empty-state p{margin:0 0 12px;color:var(--muted);}
.nav button{position:relative;}
#club-badge{position:absolute;top:2px;right:10px;}
.member-av{width:72px;height:72px;border-radius:50%;object-fit:cover;display:block;margin:0 auto 8px;}
#member-card .guide-card{text-align:center;}


html { color-scheme: dark; }
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
textarea, select {
  background: #16120c !important;
  color: #f3ead8 !important;
  -webkit-text-fill-color: #f3ead8 !important;
  caret-color: #d4af37;
}
select {
  appearance: none;
  -webkit-appearance: none;
  background-color: #16120c !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23d4af37' stroke-width='1.6' stroke-linecap='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 12px !important;
  padding-right: 36px !important;
}
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill {
  -webkit-text-fill-color: #f3ead8 !important;
  caret-color: #d4af37;
  box-shadow: 0 0 0 1000px #16120c inset !important;
  transition: background-color 9999s ease-out;
}


body.unlocked .hero .slogan,
body.unlocked .hero-tag,
body.unlocked #plan-banner,
body.unlocked #insights,
body.unlocked #xp-home,
body.unlocked #cal,
body.unlocked #quote { display: none !important; }
body.unlocked .hero img { width: 96px !important; }
body.unlocked .hero { padding: 6px 20px 0 !important; }
body:not(.locker) .locker-only { display: none !important; }
.days { display: grid; gap: 8px; margin: 8px 16px 20px; }
.day-dot {
  min-height: 44px; border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(16,12,8,.9);
  color: var(--chrome); font-weight: 700; letter-spacing: .04em;
}
.day-dot.today { border-color: var(--gold); color: var(--gold); }
.day-dot.week-done {
  border-color: #3d9a6a;
  color: #7dcea0;
  background: linear-gradient(180deg,#102016,#0c0c0c);
  box-shadow: 0 0 0 1px #3d9a6a, 0 0 16px rgba(61,154,106,.28);
  opacity: 1;
}
.crowd-line {
  margin: 8px 16px 4px; padding: 10px 14px;
  border-radius: 14px; border: 1px solid var(--line);
  background: rgba(16,12,8,.86);
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  font-size: 13px; color: var(--muted);
}
.crowd-line .btn-gold, .crowd-line .btn-ghost {
  min-height: 40px; width: auto; padding: 0 14px; flex-shrink: 0;
}
.focus-card h3 { margin: 0 0 6px; font-size: 22px; letter-spacing: -.02em; text-transform: none; }
.focus-card p { margin: 0 0 14px; color: var(--muted); }
.focus-card .kicker { display: none; }

.share-week-block{margin:12px 0 20px;padding:14px;border-radius:16px;border:1px solid var(--line);background:rgba(16,12,8,.86);}
body:not(.locker) #leaderboard{display:none !important;}

.screen.on { animation: screenIn .28s ease both; }
@keyframes screenIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}
.ex.ex-in { animation: screenIn .32s ease both; }
.ex.ex-now {
  animation: liftIn .48s cubic-bezier(.22,.8,.28,1) both;
  border-color: var(--gold) !important;
  box-shadow: 0 0 0 1px var(--gold), 0 0 28px rgba(201,162,39,.32) !important;
}
@keyframes liftIn {
  from { opacity: 0; transform: translateX(36px) scale(.98); }
  to { opacity: 1; transform: none; }
}
.now-kicker {
  margin: 0 0 12px;
  font-size: 12px;
  letter-spacing: .04em;
  color: var(--gold);
  font-weight: 700;
  display: flex; align-items: center; gap: 8px;
  transition: opacity .45s ease;
}
.now-kicker span {
  flex: 0 0 auto;
  background: var(--gold);
  color: #111;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: 10px;
  padding: 3px 8px;
  border-radius: 999px;
}
.now-kicker.out { opacity: 0; }
.super-kicker { letter-spacing: .02em; }
.super-fire {
  position: relative;
  width: 16px;
  height: 18px;
  flex: 0 0 auto;
}
.super-fire i,
.super-fire::before,
.super-fire::after {
  content: "";
  position: absolute;
  bottom: 0;
  width: 7px;
  border-radius: 8px 8px 7px 7px / 12px 12px 6px 6px;
  background: linear-gradient(#fff6d0, #e6c34a 42%, #c2410c 80%);
  transform-origin: 50% 100%;
  animation: superFlame .42s ease-in-out infinite alternate;
}
.super-fire i { left: 4px; height: 16px; }
.super-fire::before { left: 0; height: 11px; animation-delay: -.14s; }
.super-fire::after { right: 0; height: 9px; animation-delay: -.26s; }
@keyframes superFlame {
  from { transform: scaleY(.82); opacity: .8; }
  to { transform: scaleY(1.12) scaleX(.92); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .super-fire i, .super-fire::before, .super-fire::after { animation: none; }
}
h4.ex-name.name-now { animation: namePop .55s ease; color: var(--gold); }
@keyframes namePop {
  0% { transform: scale(.94); letter-spacing: .04em; }
  55% { transform: scale(1.03); }
  100% { transform: none; }
}
.move-flash { display: none !important; }
@media (prefers-reduced-motion: reduce) {
  .screen.on, .ex.ex-in { animation: none; }
}

.empty-card{margin:12px 0;padding:22px 18px;text-align:center;border:1px solid var(--line);border-radius:16px;background:rgba(16,12,8,.88);}
.empty-card.tight{padding:16px;}
.empty-card strong{display:block;font-size:16px;margin-bottom:6px;color:#f3ead8;}
.empty-card p{margin:0 0 14px;color:var(--muted);font-size:14px;line-height:1.45;}
.empty-card .btn-gold{min-width:160px;}
.gate-note{color:var(--muted);font-size:13px;line-height:1.45;margin:14px 0 6px;}
.auth-legal{margin-top:12px;}
.auth-legal a{color:var(--gold);}
.fail-sheet{position:fixed;inset:0;z-index:500;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.72);}
.fail-sheet.on{display:flex;}
.fail-card{width:100%;max-width:360px;background:#120e0a;border:1px solid var(--gold);border-radius:18px;padding:22px;text-align:center;}
.fail-card strong{display:block;font-size:18px;margin-bottom:8px;}
.fail-card p{color:var(--muted);margin:0 0 16px;}
.fail-card .btn-gold,.fail-card .btn-ghost{width:100%;margin-top:8px;}
body.unlocked #gate-copy, body.unlocked .legal-home{display:none;}

body.train-idle .gym-extra,
body.train-idle .train-dock,
body.train-idle #undo-bar,
body.train-idle #next-chip,
body.train-idle #leave-clock,
body.train-idle #leave-pace { display: none !important; }

body.locked .shop-home-btn, body.locked #open-shop { display:none !important; }
.age-row{display:flex;align-items:center;gap:8px;margin:10px 0 4px;font-size:14px;color:#ddd4c4;}
.age-row input{width:auto;accent-color:#c9a227;}
#auth-msg.auth-ok{color:#7dcea0;font-weight:600;}
a.acct-link{display:block;text-decoration:none;text-align:left;}

.crowd-actions{display:none;}

.day-dot.week-done{cursor:pointer;}
.sum-card{padding:18px 16px 22px;}
.sum-close{float:right;background:#222;border:0;color:inherit;border-radius:999px;padding:6px 12px;font-size:12px;}
.sum-kicker{letter-spacing:.16em;text-transform:uppercase;font-size:11px;color:var(--gold);margin:8px 0 4px;}
.sum-lifts{list-style:none;padding:0;margin:14px 0 0;}
.sum-lifts li{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-top:1px solid var(--line);}
.sum-lifts strong{font-size:15px;}
.sum-lifts span{font-size:12px;color:var(--muted);}
.guide-shot video{width:100%;border-radius:12px;display:block;background:#000;object-fit:cover;}

/* Finish: one system across guest, member, admin, gym, and the side pages */
.toast {
  z-index: 460 !important;
  bottom: calc(92px + env(safe-area-inset-bottom)) !important;
  max-width: min(92vw, 360px);
  text-align: center;
}
input[type="checkbox"], input[type="radio"] {
  width: 18px !important;
  height: 18px !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 2px 0 0 !important;
  flex: 0 0 auto;
  accent-color: #d4af37;
  box-shadow: none !important;
}
input[type="file"] { width: auto !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
.admin-post-wrap, .overload-opt, .age-row {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 12px 14px; margin: 8px 0;
  border: 1px solid var(--line); border-radius: 14px;
  background: rgba(16,12,8,.55);
  font-size: 14px; line-height: 1.4; color: var(--chrome);
}
details summary { list-style: none; cursor: pointer; }
details summary::-webkit-details-marker { display: none; }
.gym-extra {
  margin: 0 0 12px; padding: 0 14px;
  border: 1px solid var(--line); border-radius: 16px;
  background: rgba(16,12,8,.72);
}
.gym-extra summary, .prog-fold summary {
  display: flex; justify-content: space-between; align-items: center;
}
.gym-extra summary::after, .prog-fold summary::after { content: "▾"; color: var(--gold); }
.gym-extra[open] summary::after, .prog-fold[open] summary::after { content: "▴"; }
.gate-copy {
  margin: 4px 16px 14px !important;
  padding: 6px 16px 14px !important;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: rgba(16,12,8,.78);
}
.gate-copy ul { list-style: none; padding: 0 !important; margin: 0 !important; }
.gate-copy li {
  padding: 11px 0; margin: 0 !important;
  border-top: 1px solid rgba(212,175,55,.14);
  color: var(--chrome);
}
.gate-copy li:first-child { border-top: 0; }
.legal-home { font-size: 13px; letter-spacing: .02em; }
.legal-home a { color: var(--gold); text-decoration: none; }
.choice { text-align: left !important; padding: 14px 16px !important; }
.choice.gold {
  background: linear-gradient(180deg, #f0d36a, #c9a227) !important;
  color: #16120a !important; border-color: transparent !important;
}
.choice.gold span { color: #3d3214 !important; }
.account-page { padding-bottom: calc(24px + env(safe-area-inset-bottom)); }
.account-page-inner { border-color: rgba(212,175,55,.28) !important; }
#coach-note, #feed-text {
  background: #120f0b !important; color: var(--chrome) !important;
}
.shop-home-btn {
  margin-top: 12px !important; width: auto !important;
  min-height: 36px !important; padding: 6px 16px !important;
  letter-spacing: .14em; text-transform: uppercase; font-size: 11px !important;
}
.sum-close, #close-guide, #close-plates {
  background: transparent !important;
  border: 1px solid var(--gold-dim) !important;
  color: var(--chrome) !important;
  border-radius: 999px;
}
#close-plates {
  float: none;
  flex: 0 0 auto;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 6px 14px;
  min-height: 32px;
}
.guide { padding: calc(12px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom)); }
.guide-card { box-shadow: 0 24px 64px rgba(0,0,0,.5); }
.day-dot { font-size: 12px; letter-spacing: .06em; }
.nav button { font-size: 10px; letter-spacing: .08em; }
.photo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.photo-grid img, .share-preview { border-radius: 12px; }
button:focus-visible, a:focus-visible, summary:focus-visible {
  outline: 2px solid var(--gold); outline-offset: 2px;
}
.sheet-day {
  margin: 18px 0; padding: 16px 16px 8px;
  border: 1px solid var(--line); border-radius: 18px;
  background: rgba(16,12,8,.78);
}
.sheet-day h2 { border: 0 !important; margin: 0 0 8px !important; padding: 0 !important; }
.sheet-day li { margin: 8px 0; }
body.admin .acct-link[data-acct="admin"] { border-color: var(--gold) !important; }
body.gym .gate-copy, body.gym .sheet-day, body.gym .prog-fold, body.gym .gym-extra {
  background: #20180c;
}


/* Form controls stay on the black plate. The older paper-field rule was winning on reps and email. */
input, textarea, select,
#settings input, .auth-box input, #history input,
select.rep-sel, select.opt-sel, select.min-sel,
#feed-text, #composer textarea, #friend-name, #progress-caption {
  background-color: #16120c !important;
  color: #f3ead8 !important;
  -webkit-text-fill-color: #f3ead8 !important;
  caret-color: #d4af37;
}
select, select.rep-sel, select.opt-sel, select.min-sel {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23d4af37' stroke-width='1.6' stroke-linecap='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 12px !important;
  padding-right: 36px !important;
}
option { background: #16120c; color: #f3ead8; }
input::placeholder, textarea::placeholder {
  color: #a89f90 !important;
  -webkit-text-fill-color: #a89f90 !important;
}

.pr-flash.login-flash {
  background: rgba(4, 3, 2, .42);
  animation: none;
  pointer-events: none;
}
.pr-flash.login-flash .login-card strong {
  font-size: 48px;
  letter-spacing: .32em;
}
.pr-flash.login-flash .login-card span {
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-weight: 700;
}
.nav-ico { transition: transform .28s cubic-bezier(.22,.8,.28,1), filter .28s ease; }
.nav button.on .nav-ico {
  transform: translateY(-2px);
  filter: drop-shadow(0 0 6px rgba(212,175,55,.7));
}
.set-card.just-logged { animation: setReward .22s ease; }

/* Still until you act. Chrome does not breathe, glow, or rise on its own. */
.orb, .o1, .o2, .o3,
.top,
.logo-wrap::before,
.hero .slogan,
.day-card.today,
.crowd-hour.now i,
.cloud-status.on .dot,
.screen.on,
.ex.ex-in,
.ex.ex-now,
body.unlocked .nav,
body.unlocked #days,
body.unlocked #plan-banner {
  animation: none !important;
}
.ex.ex-now { box-shadow: none !important; }
h4.ex-name.name-now { animation: none; }
button:active, .btn-gold:active, .log-btn:active {
  transform: translateY(1px) scale(.98);
  transition: transform .1s ease;
}

/* No header bar. Account sits in the corner. */
.top {
  position: fixed;
  top: calc(8px + env(safe-area-inset-top));
  right: 12px;
  left: auto;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0;
  display: block;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  pointer-events: none;
  z-index: 40;
}
.top .logo-wrap,
.top h1 { display: none !important; }
.top #cloud-status {
  pointer-events: auto;
  margin: 0;
  max-width: none;
  white-space: nowrap;
}
.actions .btn-text {
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  flex: 0 0 auto;
  padding: 8px 4px;
}
.screen { padding-top: calc(10px + env(safe-area-inset-top)); }
.hero, .train-head, .prog-head, #club-you {
  padding-right: 112px;
}

/* One frame. Status is cream. The save bar never sits on a set. */
.gate-copy {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.prog-week .empty-card,
.prog-card .empty-card {
  border: 0;
  background: transparent;
  box-shadow: none;
  margin: 0;
  padding: 4px 0 0;
}
#club-you:empty, #club-tonight:empty {
  display: none !important;
  border: 0;
  padding: 0;
  margin: 0;
}
.leave-clock { color: var(--chrome) !important; }
.leave-clock.hot { color: #e74c3c !important; }
.leave-pace { margin: 0 0 8px; color: var(--chrome); font-size: 13px; line-height: 1.35; }
.leave-pace:empty { display: none; }
.prog-fold summary, .gym-extra summary { color: var(--chrome) !important; }
.prog-card .chart {
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
}
.app { contain: none !important; }
#train-dock {
  position: fixed;
  left: 0;
  right: 0;
  transform: none;
  width: min(480px, 100%);
  margin: 0 auto;
  bottom: calc(78px + env(safe-area-inset-bottom));
  z-index: 110;
  display: flex !important;
  grid-template-columns: none;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 30px;
  box-sizing: border-box;
  pointer-events: none;
}
#train-dock .btn-text,
#train-dock .btn-gold { pointer-events: auto; }
#train-dock:not([hidden]):has(.rest.on) {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr;
}
#train-dock .btn-text { justify-self: start; }
#train-dock .btn-gold {
  width: auto;
  flex: 0 0 auto;
  justify-self: end;
  border-radius: 999px;
  padding: 12px 22px;
}
#train-dock .rest {
  display: none;
  position: relative;
  width: 48px;
  height: 48px;
  margin: 0;
  padding: 0;
  justify-self: center;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  pointer-events: none;
}
#train-dock .rest.on { display: block; }
#train-dock .rest.rest-intro { z-index: 80; }
#train-dock .rest .rest-word { display: none; }
#train-dock .rest.rest-intro .rest-word {
  display: block;
  position: absolute;
  left: 50%;
  top: calc(100% + 2px);
  transform: translateX(-50%);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--gold);
  white-space: nowrap;
}
#train-dock .rest .clock {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 800;
  color: var(--chrome);
  min-width: 0;
}
.rest-ring { width: 48px; height: 48px; display: block; transform: rotate(-90deg); }
.rest-track { fill: none; stroke: rgba(168, 159, 144, .35); stroke-width: 3; }
.rest-arc {
  fill: none;
  stroke: var(--gold);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 100.53;
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 1s linear;
}
.train-screen { padding-bottom: calc(160px + env(safe-area-inset-bottom)); }
.train-begin { margin: 0 0 12px; }
.train-begin .btn-gold { width: 100%; }
#train-dock[hidden],
body.session-preview #train-dock,
body.train-idle #train-dock {
  display: none !important;
}
.train-start[hidden],
#leave-clock[hidden],
#undo-bar[hidden] { display: none !important; }
body.session-preview .train-dock,
body.session-preview #leave-clock,
body.session-preview #leave-pace,
body.session-preview #undo-bar { display: none !important; }

/* The lifts scroll between the account pill and the save bar, so neither covers a set. */
.train-screen .train-head {
  position: static;
  background: transparent;
  padding: 2px 0 8px 0;
  margin: 0;
}
.train-screen .swap-row { padding-right: 0; }
body.account-dot { overflow-x: hidden; }
body.account-dot #cloud-status {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  max-width: 36px !important;
  padding: 0 !important;
  justify-content: center;
  gap: 0 !important;
  overflow: hidden;
  /* Round 8: the parked dot stays fully on screen and tappable (sign-out reachable). */
  transform: none;
  border-color: rgba(232, 205, 120, .55) !important;
  background: #1a140c !important;
}
body.account-dot #cloud-status .dot {
  width: 10px;
  height: 10px;
  transform: translateX(-6px);
}
body.account-dot #cloud-status .cloud-copy,
body.account-dot #cloud-status .caret,
body.account-dot #cloud-status #sync-badge {
  display: none !important;
}
.train-screen.on {
  position: fixed;
  z-index: 1;
  top: env(safe-area-inset-top);
  left: 0;
  right: 0;
  bottom: calc(74px + env(safe-area-inset-bottom));
  width: min(480px, 100%);
  margin: 0 auto;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: 4px 16px 20px;
  box-sizing: border-box;
  animation: none !important;
}
body.in-gym .train-screen.on {
  bottom: calc(136px + env(safe-area-inset-bottom));
  padding-bottom: 12px;
}
@keyframes setReward {
  0% { transform: scale(.985); box-shadow: 0 0 0 0 rgba(230,195,74,0); }
  45% { transform: scale(1); box-shadow: 0 0 0 2px rgba(230,195,74,.55); }
  100% { box-shadow: 0 0 0 0 rgba(61,154,106,0); }
}

/* Gold is for actions. Labels and section titles stay cream. */
.field-label,
.ctrl-label,
.focus-card .kicker,
.focus-card span,
.crowd-kicker,
.acct-group,
.sum-kicker,
.guide-card h4,
.xp-card h3,
.form-cues strong,
.builder-review strong,
.builder-progress,
.friend-live-count,
.friend-sec,
.upload-card p,
.train-rest .kicker,
.ex .meta,
.set-top .target,
.warmup,
.pin,
.progress-line,
.train-screen .progress-line,
.welcome-copy em,
.top p,
.week-card h3,
#week-story h3 {
  color: var(--chrome) !important;
}

.week-card { margin: 0 0 12px; padding: 14px 16px; }
.week-card h3, #week-story h3 {
  margin: 0 0 6px;
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
}
.week-card p, #week-story p { margin: 0; font-size: 15px; color: #f3ead8; }
.week-card .week-sub, #week-story .week-sub { margin-top: 4px; color: var(--muted); font-size: 13px; }

.wu-block {
  margin: 12px 0 14px;
  padding: 10px 12px 4px;
  border-radius: 16px;
  background: #100e0c;
  border: 1px solid rgba(212,175,55,.28);
}
.wu-block .ctrl-label { margin-bottom: 2px; }
.wu-row {
  display: grid;
  grid-template-columns: 58px 1fr auto;
  align-items: baseline;
  gap: 8px;
  padding: 9px 0;
  border-top: 1px solid rgba(243,234,216,.1);
}
.wu-row span {
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
}
.wu-row b { font-size: 22px; font-weight: 700; color: var(--cream); }
.wu-row b.wu-soft { font-size: 16px; font-weight: 600; }
.wu-row em { font-style: normal; font-size: 14px; color: var(--chrome); }
.wu-plates {
  grid-column: 2 / -1;
  margin-top: -2px;
  font-style: normal;
  font-size: 12px;
  letter-spacing: .02em;
  color: var(--muted);
}

.plate-board {
  display: block;
  width: 100%;
  text-align: center;
  background: #100e0c;
  border: 1px solid var(--gold-dim);
  border-radius: 16px;
  padding: 10px 10px 12px;
  margin: 8px 0 4px;
  color: var(--chrome);
}
.plate-kicker {
  display: block;
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold);
}
.plate-line { display: block; margin: 8px 2px 0; font-size: 13px; line-height: 1.35; color: var(--chrome); text-align: center; }
.plate-board .plate-line { text-align: center; }
.plate-stage {
  margin-top: 4px;
  padding: 8px 8px 6px;
  border-radius: 14px;
  background: #0c0b0a;
  box-shadow: inset 0 0 0 1px rgba(243,234,216,.1);
}
.barbell {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-height: 78px;
  padding: 8px 0;
  overflow-x: auto;
}
.barbell-side { position: relative; z-index: 1; display: flex; align-items: center; }
.barbell-side .iron { margin: 0; }
.barbell-bar {
  position: relative;
  left: auto;
  right: auto;
  top: auto;
  width: 22px;
  height: 7px;
  margin: 0;
  transform: none;
  border-radius: 4px;
  flex: 0 0 22px;
  align-self: center;
  z-index: 1;
  background:
    repeating-linear-gradient(180deg, rgba(255,255,255,.75) 0 0.4px, transparent 0.4px 1.2px),
    linear-gradient(180deg, #2a2826 0%, #c8c3bb 20%, #fff 36%, #8a8580 58%, #2c2a28 100%);
  box-shadow: 0 1px 0 rgba(0,0,0,.5);
}
.barbell-bar::before, .barbell-bar::after {
  content: "";
  position: absolute;
  top: -8px;
  width: 5px;
  height: 22px;
  border-radius: 1px;
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.7) 0 0.4px, transparent 0.4px 1.2px),
    linear-gradient(90deg, #241f1c 0%, #f4f1ea 34%, #fff 48%, #6e6a64 74%, #1a1816 100%);
}
.barbell-bar::before { left: 0; }
.barbell-bar::after { right: 0; }
.barbell .iron {
  width: var(--ew, 12px);
  height: var(--eh, 64px);
  border-radius: 1px;
  -webkit-mask: none;
  mask: none;
  background:
    linear-gradient(90deg, rgba(0,0,0,.7) 0%, rgba(0,0,0,.15) 12%, rgba(255,255,255,.82) 24%, rgba(255,255,255,0) 38%, rgba(0,0,0,.2) 70%, rgba(0,0,0,.72) 100%),
    linear-gradient(180deg, var(--mid), var(--lo));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.3), inset 0 -1px 0 rgba(0,0,0,.45);
}
.barbell .iron b {
  top: 50%;
  transform: translateY(-50%);
  font-size: 8px;
}
.barbell .iron-45 { --ew: 15px; --eh: 78px; }
.barbell .iron-35 { --ew: 14px; --eh: 68px; }
.barbell .iron-25 { --ew: 13px; --eh: 58px; }
.barbell .iron-10 { --ew: 12px; --eh: 46px; }
.barbell .iron-5 { --ew: 11px; --eh: 36px; }
.barbell .iron-2_5 { --ew: 13px; --eh: 28px; }
.barbell .iron-5 b, .barbell .iron-2_5 b { display: block; font-size: 7px; }
.plate-chip .iron {
  -webkit-mask: radial-gradient(circle at 50% 50%, transparent 0 4px, #000 5px);
  mask: radial-gradient(circle at 50% 50%, transparent 0 4px, #000 5px);
  background:
    radial-gradient(ellipse 90% 16% at 50% 8%, rgba(255,255,255,.55), transparent 72%),
    radial-gradient(circle at 50% 50%, transparent 0 5px, rgba(255,255,255,.5) 5.4px 6.2px, var(--mid) 7px 84%, var(--lo) 100%);
}
.plate-board .barbell .iron-45 { --eh: 58px; --ew: 12px; }
.plate-board .barbell .iron-35 { --eh: 50px; --ew: 11px; }
.plate-board .barbell .iron-25 { --eh: 44px; --ew: 11px; }
.plate-board .barbell .iron-10 { --eh: 36px; --ew: 10px; }
.plate-board .barbell .iron-5 { --eh: 28px; --ew: 10px; }
.plate-board .barbell .iron-2_5 { --eh: 22px; --ew: 11px; }
.plate-board .barbell { min-height: 66px; }
.iron {
  --d: 44px;
  --mid: #d4af37;
  --lo: #6a4e12;
  --ink: #3a2c08;
  --etch: rgba(255,255,255,.4);
  position: relative;
  z-index: 1;
  display: inline-block;
  width: var(--d);
  height: var(--d);
  border-radius: 50%;
  flex: 0 0 auto;
  background:
    linear-gradient(180deg, rgba(255,255,255,.16), transparent 18%),
    radial-gradient(circle at 50% 50%, var(--mid) 0 86%, var(--lo) 100%);
  -webkit-mask: radial-gradient(circle at 50% 50%, transparent 0 7px, #000 8px);
  mask: radial-gradient(circle at 50% 50%, transparent 0 7px, #000 8px);
  box-shadow: inset 0 0 0 2px var(--lo);
}
.iron b {
  position: absolute;
  top: 9%;
  left: 0;
  right: 0;
  text-align: center;
  font-style: normal;
  font-weight: 700;
  font-size: calc(var(--d) * 0.2);
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--ink);
  text-shadow: 0 1px 0 var(--etch);
  z-index: 2;
}
.iron::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: 1;
  opacity: .7;
  mix-blend-mode: overlay;
  background-image: url("grain.png");
  background-size: 90px 90px;
}
.iron-45 { --d: 40px; --mid: #d4af37; --lo: #6a4e12; --ink: #3a2c08; }
.iron-35 { --d: 38px; --mid: #e4d8c4; --lo: #a89880; --ink: #2a241c; }
.iron-25 { --d: 34px; --mid: #8a6230; --lo: #3e2c0c; --ink: #f6edd8; --etch: rgba(0,0,0,.55); }
.iron-10 { --d: 28px; --mid: #efe6d6; --lo: #b7ad9e; --ink: #2a241c; }
.iron-5 { --d: 24px; --mid: #2a241c; --lo: #0c0b0a; --ink: #e6c34a; --etch: rgba(0,0,0,.7); }
.iron-2_5 { --d: 20px; --mid: #1a1612; --lo: #f3ead8; --ink: #f3ead8; --etch: rgba(0,0,0,.65); }
.iron-5, .iron-2_5 { box-shadow: inset 0 0 0 1px rgba(243,234,216,.7); }
.plate-board .iron-45 { --d: 46px; }
.plate-board .iron-35 { --d: 40px; }
.plate-board .iron-25 { --d: 34px; }
.plate-board .iron-10 { --d: 28px; }
.plate-board .iron-5 { --d: 24px; }
.plate-board .iron-2_5 { --d: 22px; }
.plate-board .barbell { min-height: 58px; }
.plate-chip { display: flex; flex-direction: column; align-items: center; }
.plate-chip .iron { pointer-events: none; }
.plate-chip .iron-45 { --d: 40px !important; }
.plate-chip .iron-35 { --d: 36px !important; }
.plate-chip .iron-25 { --d: 32px !important; }
.plate-chip .iron-10 { --d: 28px !important; }
.plate-chip .iron-5 { --d: 24px !important; }
.plate-chip .iron-2_5 { --d: 22px !important; }
.plate-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.plate-head h3 { margin: 0; }
.plate-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 8px; }
.plate-step { display: grid; grid-template-columns: 36px 1fr 36px; gap: 6px; align-items: center; margin: 0 0 8px; }
.plate-step input {
  width: 100%;
  text-align: center;
  font-size: 20px;
  font-weight: 700;
  background: #100e0c;
  color: var(--cream);
  border: 1px solid var(--gold-dim);
  border-radius: 12px;
  min-height: 46px;
  padding: 0;
}
.plate-step button {
  width: 36px;
  min-height: 36px;
  padding: 0;
  border-radius: 999px;
  background: #1a1612;
  color: var(--cream);
  border: 1px solid var(--gold-dim);
}
.plate-have { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; margin: 8px 0 4px; }
#plate-build.plate-have { grid-template-columns: repeat(5, 1fr); }
.plate-chip, .plate-clear {
  background: transparent;
  color: var(--cream);
  border: 1px solid transparent;
  border-radius: 12px;
  min-height: 0;
  padding: 6px 0 4px;
  opacity: .38;
}
.plate-chip.on { opacity: 1; }
.plate-chip { display: flex; flex-direction: column; align-items: center; }
.plate-count { display: block; margin-top: 4px; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--gold); }
.plate-clear { grid-column: 1 / -1; border: 1px solid var(--gold-dim); border-radius: 999px; min-height: 36px; opacity: 1; }
.plate-build-block {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(230,195,74,.18);
}
.plate-build-block h4 { margin: 0 0 4px; }
#plate-use { width: 100%; margin-top: 10px; }
#plates.guide { background: rgba(0,0,0,.82); }
#plates .guide-card { background: #14110e !important; padding: 16px 14px 18px; }


/* Beta round 3 */
/* Undo floats above the save/rest dock so the rest ring never covers it. */
#undo-bar.on {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: calc(150px + env(safe-area-inset-bottom));
  width: auto;
  min-width: 180px;
  margin: 0;
  padding: 10px 20px;
  z-index: 120;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .45);
}
.train-screen { padding-bottom: calc(210px + env(safe-area-inset-bottom)); }
/* Never show the session bar off the Train screen or after a session ends. */
body:not(.in-gym) #train-dock { display: none !important; }
.w-err { display: block; min-height: 0; font-size: 12px; line-height: 1.35; color: #e57373; margin-top: 4px; }
.w-err:empty { display: none; }
.w-err.info { color: var(--gold); }
input.bad { border-color: #e57373 !important; box-shadow: 0 0 0 1px #e57373 inset; }
.feed-text, .feed-body, .post-body, .reply-body, .reply-text, .caption, .photo-caption,
.feed-card p, .feed-reply, .club-post p {
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: pre-wrap;
  min-width: 0;
}
.char-count { display: block; text-align: right; font-size: 12px; color: var(--muted); margin-top: 4px; }
.char-count.near { color: var(--gold); }
.form-err { color: #e57373; font-size: 13px; margin: 6px 0 0; min-height: 0; }
.form-err:empty { display: none; }
.name-signout { display: block; margin: 14px auto 0; background: none; border: 0; color: var(--muted); text-decoration: underline; font-size: 14px; cursor: pointer; }
.blocked-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,.06); }
.blocked-row .btn-ghost { width: auto; padding: 6px 14px; }
.report-opt { display: flex; align-items: center; gap: 8px; margin: 8px 0; font-size: 15px; }
.report-opt input { width: auto; }
.report-sheet textarea { width: 100%; margin-top: 8px; }
.post .btn-link.danger { color: #e57373; }
/* Beta round 4 */
.report-sheet { position: fixed; inset: 0; z-index: 600; background: rgba(0,0,0,.82); display: flex; align-items: center; justify-content: center; padding: 24px 16px; }
.report-sheet .guide-card { width: 100%; max-width: 420px; }
.char-count.at-max { color: #e57373; font-weight: 700; }

/* Round 6: loading screen. Nothing account-specific renders under it. */
.jam-splash{position:fixed;inset:0;z-index:2000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
  background:radial-gradient(120% 90% at 50% 0%,rgba(255,255,255,.08),transparent 60%),var(--bg,#0b0b0c);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.jam-splash[hidden]{display:none}
.jam-splash .splash-logo{width:150px;max-width:50vw;height:auto;opacity:.95}
.jam-splash .splash-note{color:var(--muted,#a8a8ad);font-size:15px;margin:0}
.jam-splash .splash-spin{width:28px;height:28px;border-radius:50%;border:2px solid rgba(255,255,255,.15);border-top-color:var(--gold,#d4af37);animation:jamspin .9s linear infinite}
@keyframes jamspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.jam-splash .splash-spin{animation:none}}
body.jam-loading #name-gate,body.jam-loading #onboard,body.jam-loading #tour{display:none!important}
/* Round 7 */
.hero-plan{margin:4px 0 0;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold,#d4af37)}
.plan-name-line{margin:2px 0 8px}
.plan-current{margin:0 0 8px}
body.jam-acct-pending #cloud-status .cloud-label,body.jam-acct-pending #cloud-status .cloud-sub{visibility:hidden}
body.jam-acct-pending #crowd-meter,body.jam-acct-pending #welcome-card,body.jam-acct-pending #home-plan-name{visibility:hidden}
.rest-edit{display:flex;align-items:center;gap:8px;margin:6px 0}
.rest-edit button{min-width:44px}
@keyframes jamAutofillStart{from{opacity:1}to{opacity:1}}
#auth-email:-webkit-autofill,#auth-pass:-webkit-autofill{animation-name:jamAutofillStart;animation-duration:1ms}

/* Pull down at the top of Train: strip of every movement in the session */
.lift-strip{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;padding:6px 0 10px;margin:0 0 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x;}
.lift-strip[hidden]{display:none;}
.lift-strip::-webkit-scrollbar{display:none;}
.lift-strip button{flex:0 0 auto;border:0;border-radius:999px;padding:8px 12px;font:600 12px/1.2 inherit;white-space:nowrap;background:rgba(255,255,255,.06);color:var(--ink,#f4f1ea);}
.lift-strip button.done{color:var(--gold,#d9b45a);}
.lift-strip button.on{background:var(--gold,#d9b45a);color:#000;}
.lift-strip.in{animation:liftStripIn .2s ease-out;}
@keyframes liftStripIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
/* Round 8: the account button is reachable from every screen. */
body.unlocked .top #cloud-status { visibility: visible !important; opacity: 1; pointer-events: auto; z-index: 1000; }

/* Round 10: the pulled-down strip floats at the top of Train instead of scrolling away. */
#workout .lift-strip:not([hidden]) { position: sticky; top: 0; z-index: 6; background: #0c0b0a; box-shadow: 0 6px 12px rgba(0,0,0,.45); }
