:root {
  --bg: #09090a;
  --surface: #151517;
  --surface-2: #1d1d20;
  --surface-3: #252529;
  --text: #f7f7f8;
  --muted: #a7a7ae;
  --line: #303035;
  --red: #e3222b;
  --gym-accent: #e3222b;
  --red-dark: #aa1219;
  --green: #26b86d;
  --green-dark: #123c29;
  --yellow: #f1c94b;
  --danger: #ff5963;
  --radius: 18px;
  --shadow: 0 16px 45px rgba(0,0,0,.35);
  --ms-font-scale: 1;
  color-scheme: dark;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { background: var(--bg); font-size: 106%; scroll-behavior: smooth; }
html[data-font-scale="large"] { --ms-font-scale: 1.125; font-size: 112.5%; }
html[data-font-scale="xlarge"] { --ms-font-scale: 1.25; font-size: 125%; }
body { margin: 0; min-height: 100vh; background: radial-gradient(circle at 50% -20%, #2a1113 0, var(--bg) 36rem); color: var(--text); font-size: 1rem; line-height: 1.5; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: .6rem; font-size: clamp(2rem, 9vw, 3.2rem); line-height: .98; letter-spacing: -.05em; }
h2 { line-height: 1.1; letter-spacing: -.025em; }
small { color: var(--muted); }

.sr-only { position: absolute!important; width: 1px!important; height: 1px!important; padding: 0!important; margin: -1px!important; overflow: hidden!important; clip: rect(0,0,0,0)!important; white-space: nowrap!important; border: 0!important; }
.skip-link { position: fixed; top: -4rem; left: 1rem; z-index: 1000; padding: .7rem 1rem; background: white; color: black; border-radius: 8px; }
.skip-link:focus { top: 1rem; }
.muted { color: var(--muted); }
.eyebrow { display: block; margin-bottom: .7rem; color: var(--gym-accent); font-size: .72rem; font-weight: 900; letter-spacing: .15em; }
.full-width { width: 100%; }

.topbar { position: sticky; top: 0; z-index: 40; display: flex; align-items: center; justify-content: space-between; min-height: 68px; padding: max(.65rem, env(safe-area-inset-top)) 1rem .65rem; border-bottom: 1px solid rgba(255,255,255,.07); background: rgba(9,9,10,.92); backdrop-filter: blur(14px); }
.brand { display: flex; align-items: center; min-width: 0; min-height: 44px; gap: .7rem; }
.brand-mark, .auth-logo span { display: grid; place-items: center; width: 38px; height: 38px; border: 2px solid var(--red); border-radius: 11px; background: linear-gradient(145deg, #f02c35, #8f0e14); font-weight: 1000; box-shadow: 0 0 24px rgba(227,34,43,.3); }
.brand strong, .brand small { display: block; line-height: 1; }
.brand strong { font-size: .86rem; letter-spacing: .12em; }
.brand small { margin-top: .3rem; font-size: .57rem; letter-spacing: .17em; }
.icon-button { min-height: 44px; padding: 0 .8rem; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); color: var(--muted); font-weight: 700; cursor: pointer; }
.topbar-account { display: flex; flex: 0 0 auto; align-items: center; gap: .4rem; }
.topbar-utility { position: relative; flex: 0 0 auto; }
.notification-bell { display: grid; width: 44px; height: 44px; place-items: center; padding: 0; border: 1px solid #34343a; border-radius: 13px; background: #19191c; color: #d8d8dc; cursor: pointer; }
.notification-bell-icon { font-size: 1rem; filter: grayscale(1); }
.notification-dot { position: absolute; top: 7px; right: 7px; width: 8px; height: 8px; border: 2px solid #19191c; border-radius: 50%; background: #f1c94b; }
body.notifications-granted .notification-bell { border-color: #286a49; color: #7ae7aa; background: #11271b; }
body.notifications-granted .notification-dot { background: #26b86d; }
body.notifications-denied .notification-bell { border-color: #773238; color: #ff8f96; }
body.notifications-denied .notification-dot { background: #ff5963; }
.role-pill { display: inline-flex; align-items: center; min-height: 30px; padding: .35rem .65rem; border: 1px solid #534a22; border-radius: 999px; background: #211f14; color: var(--yellow); font-size: .65rem; font-weight: 900; letter-spacing: .04em; white-space: nowrap; }
.ms-lang-menu { position: relative; display: inline-flex; z-index: 40; }
.ms-lang-menu > summary { list-style: none; cursor: pointer; }
.ms-lang-menu > summary::-webkit-details-marker { display: none; }
.ms-lang-menu__trigger {
  display: inline-flex; align-items: center; justify-content: center; gap: .28rem;
  min-width: 2.85rem; height: 2rem; padding: 0 .38rem;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(34,34,38,.96), rgba(16,16,18,.98));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 6px 14px rgba(0,0,0,.28);
  transition: border-color .16s ease, box-shadow .16s ease;
}
.ms-lang-menu__code { color: #f5f5f7; font-size: .58rem; font-weight: 950; letter-spacing: .06em; line-height: 1; }
.ms-lang-menu__trigger:hover,
.ms-lang-menu__trigger:focus-visible {
  border-color: rgba(241,201,75,.55);
  outline: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 8px 18px rgba(0,0,0,.34);
}
.ms-lang-menu[open] > .ms-lang-menu__trigger {
  border-color: rgba(241,201,75,.72);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 0 0 1px rgba(241,201,75,.18), 0 10px 22px rgba(0,0,0,.4);
}
.ms-lang-flag {
  display: block; width: 1.2rem; height: .8rem; border-radius: .22rem;
  box-shadow: 0 0 0 1px rgba(255,255,255,.16), 0 2px 5px rgba(0,0,0,.35);
  overflow: hidden;
}
.ms-lang-menu__panel {
  position: absolute; top: calc(100% + .35rem); right: 0;
  display: grid; gap: .28rem;
  padding: .34rem;
  border-radius: .9rem;
  border: 1px solid rgba(255,255,255,.12);
  background: linear-gradient(180deg, rgba(24,24,28,.98), rgba(12,12,14,.99));
  box-shadow: 0 16px 34px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter: blur(10px);
  animation: ms-lang-pop .14s ease;
}
@keyframes ms-lang-pop {
  from { opacity: 0; transform: translateY(-3px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.ms-lang-menu__form { margin: 0; }
.ms-lang-menu__option {
  position: relative;
  display: inline-flex; align-items: center; justify-content: flex-start; gap: .52rem;
  width: 8.7rem; min-height: 2.45rem; padding: .35rem .65rem; margin: 0;
  border: 0; border-radius: .7rem;
  background: transparent; color: #f3f3f5; text-decoration: none; cursor: pointer;
  transition: background .14s ease;
}
.ms-lang-menu__native { overflow: hidden; color: #ededf0; font-size: .68rem; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
.ms-lang-menu__option:hover,
.ms-lang-menu__option:focus-visible {
  background: rgba(255,255,255,.07);
  outline: none;
}
.ms-lang-menu__option.is-active {
  background: linear-gradient(180deg, rgba(55,47,18,.95), rgba(28,26,16,.98));
  box-shadow: inset 0 0 0 1px rgba(241,201,75,.4);
}
.ms-lang-menu__check {
  position: absolute; right: .55rem; top: 50%;
  width: .42rem; height: .24rem;
  border-left: 1.7px solid var(--yellow, #f1c94b);
  border-bottom: 1.7px solid var(--yellow, #f1c94b);
  transform: translateY(-65%) rotate(-45deg);
}
.ms-lang-menu--topbar { margin-right: .05rem; }
/* Guest pages without public topbar (login/signup): compact corner control */
.ms-lang-menu--public {
  position: fixed;
  top: max(.7rem, env(safe-area-inset-top));
  right: max(.7rem, env(safe-area-inset-right));
  z-index: 50;
}
/* Public marketing pages: hide floating control; switcher lives in the topbar */
.public-page > .ms-lang-menu--public,
body.public-page > .ms-lang-menu--public {
  display: none !important;
}
.ms-lang-menu--public-nav {
  position: relative;
  top: auto;
  right: auto;
  z-index: 2;
  flex: 0 0 auto;
}
.public-topbar-actions .ms-lang-menu--public-nav .ms-lang-menu__trigger {
  width: 2.55rem;
  height: 2.55rem;
}
.ms-lang-menu--cards,
.ms-lang-menu--more,
.ms-lang-menu--gate { display: inline-flex; width: auto; }
.ms-lang-menu--cards .ms-lang-menu__panel,
.ms-lang-menu--more .ms-lang-menu__panel,
.ms-lang-menu--gate .ms-lang-menu__panel { left: 0; right: auto; }
.ms-lang-menu--gate { justify-content: center; width: 100%; }
.ms-lang-menu--gate .ms-lang-menu__panel { left: 0; right: 0; margin-inline: auto; width: max-content; }

.ms-lang-gate { width: min(24rem, calc(100vw - 1.5rem)); border: 0; border-radius: 1.3rem; padding: 0; background: transparent; color: inherit; }
.ms-lang-gate::backdrop { background: rgba(5,5,7,.78); backdrop-filter: blur(8px); }
.ms-lang-gate-panel {
  display: grid; gap: .8rem; justify-items: stretch; text-align: center;
  padding: 1.3rem 1.1rem 1.15rem; border-radius: 1.3rem;
  border: 1px solid rgba(255,255,255,.1); background: linear-gradient(180deg, #17171a, #0d0d0f);
  box-shadow: 0 24px 60px rgba(0,0,0,.55);
}
.ms-lang-gate-mascot { width: 4.2rem; height: 4.2rem; object-fit: contain; margin: 0 auto; }
.ms-lang-gate-panel .eyebrow { margin: 0; color: #f1c94b; letter-spacing: .12em; font-size: .68rem; font-weight: 800; }
.ms-lang-gate-panel h2 { margin: 0; font-size: 1.45rem; line-height: 1.15; }
.ms-lang-gate-panel p { margin: 0; color: #c4c4cb; }
.ms-lang-gate-panel small { color: #8f8f98; }
.more-lang-card { display: grid; gap: .85rem; }
.more-lang-card .ms-lang-menu { width: 100%; }

.app-shell { width: min(100%, 820px); margin: 0 auto; padding: 1.15rem 1rem calc(7rem + env(safe-area-inset-bottom)); }
.auth-page .app-shell { display: grid; min-height: 100vh; place-items: center; padding-bottom: 2rem; }
.auth-card { width: min(100%, 430px); padding: 2rem 1.25rem; border: 1px solid var(--line); border-radius: 24px; background: rgba(21,21,23,.94); box-shadow: var(--shadow); }
.auth-logo { margin-bottom: 2rem; }
.auth-logo span { width: 58px; height: 58px; font-size: 1.5rem; }
.auth-card h1 { font-size: 2.6rem; }
.text-link { display: inline-block; margin-top: 1.4rem; color: #ddd; text-decoration: underline; text-underline-offset: .25rem; }
.registration-recovery {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: .85rem;
  margin: .1rem 0 .25rem;
  padding: 1rem;
  border: 1px solid #397b57;
  border-radius: 18px;
  background:
    radial-gradient(circle at 0 0, rgba(38,184,109,.18), transparent 55%),
    linear-gradient(145deg, #10241a, #121416 72%);
  color: #f7f8f8;
  box-shadow: 0 16px 34px rgba(0,0,0,.26), inset 0 1px rgba(255,255,255,.04);
  outline: none;
}
.registration-recovery[hidden] { display: none !important; }
.registration-recovery:focus-visible { box-shadow: 0 0 0 3px rgba(38,184,109,.24), 0 16px 34px rgba(0,0,0,.26); }
.registration-recovery-mark {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  overflow: hidden;
  border: 1px solid #397b57;
  border-radius: 15px;
  background: #0a1710;
}
.registration-recovery-mark img { width: 44px; height: 44px; object-fit: contain; }
.registration-recovery-copy { min-width: 0; }
.registration-recovery-copy > span {
  display: block;
  color: #75e6a8;
  font-size: .62rem;
  font-weight: 950;
  letter-spacing: .12em;
}
.registration-recovery-copy h3 { margin: .22rem 0 .35rem; color: #fff; font-size: 1.04rem; line-height: 1.18; }
.registration-recovery-copy p { margin: 0; color: #c5d7cd; font-size: .78rem; line-height: 1.48; }
.registration-recovery-actions { display: grid; grid-column: 1 / -1; gap: .55rem; }
.registration-recovery-actions .button { width: 100%; min-height: 50px; text-align: center; }
.forgot-registration-note {
  display: grid;
  gap: .18rem;
  margin: .9rem 0 1rem;
  padding: .85rem .9rem;
  border: 1px solid #397b57;
  border-radius: 14px;
  background: #10241a;
}
.forgot-registration-note strong { color: #75e6a8; }
.forgot-registration-note span { color: #c5d7cd; font-size: .82rem; }
.forgot-mail-fallback { display: grid; gap: .75rem; }
.forgot-mail-fallback .button { width: 100%; min-height: 48px; color: #fff; text-align: center; }

.stack-form, .settings-form { display: grid; gap: 1rem; }
label { display: grid; gap: .45rem; color: #d8d8dc; font-size: .88rem; font-weight: 750; }
label small { font-weight: 500; }
input, textarea, select { width: 100%; min-height: 50px; border: 1px solid var(--line); border-radius: 12px; background: #0e0e10; color: var(--text); outline: none; padding: .75rem .85rem; }
textarea { resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: var(--yellow); box-shadow: 0 0 0 3px rgba(241,201,75,.13); }
input[type="checkbox"], input[type="radio"] { width: auto; min-height: 0; padding: 0; }

.button { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 48px; padding: .75rem 1rem; border: 1px solid transparent; border-radius: 13px; color: white; font-weight: 900; line-height: 1.1; cursor: pointer; transition: transform .15s ease, filter .15s ease, background .15s ease; }
.button:active { transform: scale(.98); }
.button:disabled { opacity: .5; cursor: wait; }
.button-large { min-height: 56px; }
.button-xl { min-height: 66px; font-size: 1.08rem; }
.button-primary { background: linear-gradient(180deg, #f02a33, var(--red-dark)); box-shadow: 0 10px 24px rgba(227,34,43,.24); }
.button-primary:hover { filter: brightness(1.08); }
.button-secondary { border-color: var(--line); background: var(--surface-2); }
.button-danger { border-color: #651e23; background: #291113; color: #ff9298; }
.button-success { background: var(--green); color: #061c10; }
.button-outline-success { border-color: #267b50; background: var(--green-dark); color: #78e7ab; }

.flash { position: fixed; top: 76px; left: 50%; z-index: 100; width: min(calc(100% - 2rem), 640px); transform: translateX(-50%); padding: .9rem 1rem; border: 1px solid var(--line); border-radius: 13px; background: #222; box-shadow: var(--shadow); animation: flash-in .25s ease; }
.flash-error { border-color: #703038; color: #ffb4b9; }
.flash-success { border-color: #2c7350; color: #96edbd; }
@keyframes flash-in { from { opacity: 0; transform: translate(-50%,-8px); } }
@media (prefers-reduced-motion: no-preference) {
  .registration-recovery.is-visible { animation: registration-recovery-in .24s ease both; }
}
@keyframes registration-recovery-in {
  from { opacity: 0; transform: translateY(-7px) scale(.985); }
}

.hero-card { overflow: hidden; padding: 1.5rem; border: 1px solid #3b2325; border-radius: 24px; background: linear-gradient(145deg, #211416 0, #141416 52%, #101011 100%); box-shadow: var(--shadow); }
.hero-topline { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; margin-bottom: 1.3rem; }
.day-badge, .variant-badge, .complete-chip { display: inline-flex; align-items: center; min-height: 28px; padding: .3rem .62rem; border-radius: 999px; font-size: .68rem; font-weight: 900; letter-spacing: .1em; }
.day-badge { background: var(--gym-accent); }
.variant-badge { border: 1px solid #5f5528; background: #292511; color: var(--yellow); }
.hero-card > p { max-width: 38rem; color: #b8b8bd; }
.progress-block { margin: 1.7rem 0; }
.progress-meta { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .5rem; font-size: .85rem; }
.progress-meta span { color: var(--yellow); font-weight: 900; }
.progress-track { display: block; overflow: hidden; width: 100%; height: 10px; padding: 0; border: 0; border-radius: 99px; background: #303034; appearance: none; -webkit-appearance: none; }
.progress-track::-webkit-progress-bar { border-radius: inherit; background: #303034; }
.progress-track::-webkit-progress-value { border-radius: inherit; background: linear-gradient(90deg, var(--gym-accent), #ff545c); }
.progress-track::-moz-progress-bar { border-radius: inherit; background: linear-gradient(90deg, var(--gym-accent), #ff545c); }
.variant-picker { margin: 0 0 1rem; }
.workout-day-choice { margin-top: 1rem; border-top: 1px solid rgba(255,255,255,.09); padding-top: .85rem; }
.workout-day-choice > summary { min-height: 44px; display: flex; align-items: center; justify-content: center; color: #e7e7ea; font-weight: 800; cursor: pointer; list-style: none; }
.workout-day-choice > summary::-webkit-details-marker { display: none; }
.workout-day-choice > summary::after { content: '⌄'; margin-left: .55rem; color: var(--gym-accent); font-size: 1.15rem; transition: transform .18s ease; }
.workout-day-choice[open] > summary::after { transform: rotate(180deg); }
.workout-day-choice > p { margin: .15rem 0 .85rem; color: #aaaab1; font-size: .86rem; line-height: 1.45; text-align: center; }
.workout-day-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.workout-day-option { min-height: 82px; padding: .72rem; border: 1px solid rgba(255,255,255,.1); border-radius: 15px; background: linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.018)); color: #fff; text-align: left; box-shadow: inset 0 1px rgba(255,255,255,.04); cursor: pointer; }
.workout-day-option span, .workout-day-option small { display: block; color: #9999a1; font-size: .62rem; font-weight: 900; letter-spacing: .09em; }
.workout-day-option strong { display: block; margin-top: .28rem; font-size: .86rem; line-height: 1.22; }
.workout-day-option small { margin-top: .35rem; color: #f1bf45; }
.workout-day-option.is-recommended { border-color: rgba(241,191,69,.6); box-shadow: inset 0 0 0 1px rgba(241,191,69,.1), 0 8px 24px rgba(0,0,0,.18); }
.workout-day-option.is-current { border-color:rgba(37,210,231,.72); box-shadow:inset 0 0 0 1px rgba(37,210,231,.13),0 8px 24px rgba(0,0,0,.2); }
.workout-day-option small.current-session-label { color:#25d2e7; }
.workout-day-option:focus-visible { outline: 3px solid rgba(241,191,69,.45); outline-offset: 2px; }
@media (min-width: 700px) { .workout-day-choice-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (prefers-reduced-motion: reduce) { .workout-day-choice > summary::after { transition: none; } }

.dashboard-grid { display: grid; gap: .8rem; margin-top: .9rem; }
.info-card { min-height: 120px; padding: 1.05rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.info-card strong, .info-card small { display: block; }
.info-card strong { margin: .35rem 0; line-height: 1.25; }
.card-label { color: var(--muted); font-size: .66rem; font-weight: 900; letter-spacing: .12em; }
.quick-links { display: grid; margin-top: .9rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.quick-links a { display: grid; grid-template-columns: 1fr auto; padding: 1rem; border-bottom: 1px solid var(--line); }
.quick-links a:last-child { border-bottom: 0; }
.quick-links strong, .quick-links span { display: block; grid-column: 1; }
.quick-links span { color: var(--muted); font-size: .82rem; }
.quick-links b { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--muted); font-size: 1.5rem; }

.bottom-nav { position: fixed; right: 0; bottom: 0; left: 0; z-index: 50; display: grid; grid-template-columns: repeat(5,1fr); min-height: 70px; padding-bottom: env(safe-area-inset-bottom); border-top: 1px solid var(--line); background: rgba(12,12,13,.96); backdrop-filter: blur(15px); }
.bottom-nav a { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: .15rem; color: #88888f; font-size: .62rem; font-weight: 750; }
.bottom-nav span { font-size: 1.25rem; line-height: 1; }
.bottom-nav a.active { color: white; }
.bottom-nav a.active span { color: var(--gym-accent); }

.page-heading { margin: .7rem 0 1.4rem; }
.page-heading > p { max-width: 44rem; color: var(--muted); }
.role-intro { display: grid; grid-template-columns: auto 1fr; gap: .85rem; align-items: center; margin: .35rem 0 1rem; padding: .9rem; border: 1px solid var(--line); border-radius: 16px; background: rgba(21,21,23,.78); }
.role-intro-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: var(--gym-accent); color: white; font-size: 1.1rem; font-weight: 1000; }
.role-intro div > span { display: block; color: var(--yellow); font-size: .66rem; font-weight: 950; letter-spacing: .12em; }
.role-intro strong { display: block; margin: .12rem 0; font-size: 1.05rem; }
.role-intro p { margin: 0; color: var(--muted); font-size: .82rem; }
.next-action-card { margin-bottom: 1rem; padding: clamp(1.25rem,4vw,2rem); border: 1px solid #653137; border-radius: 24px; background: linear-gradient(145deg,#2c171a,#151517 65%); box-shadow: var(--shadow); }
.next-action-card h1 { max-width: 650px; margin: .45rem 0 .75rem; font-size: clamp(2rem,7vw,3.4rem); }
.next-action-card h2 { margin: .45rem 0 .75rem; font-size: clamp(1.55rem,5vw,2.2rem); }
.next-action-card p { max-width: 590px; color: #c5c5ca; }
.next-action-card .button { width: min(100%,360px); }
.next-action-card.is-complete { border-color: #255c40; background: linear-gradient(145deg,#122b20,#151517 70%); }
.next-action-card.is-waiting { border-color: #5b522b; background: linear-gradient(145deg,#292513,#151517 70%); }
.setup-card { margin-bottom: 1.4rem; overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); }
.setup-card > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border-bottom: 1px solid var(--line); }
.setup-card h2, .home-section-heading h2 { margin: .2rem 0 0; }
.setup-card > header > strong, .home-section-heading > strong { color: var(--yellow); font-size: 1.2rem; }
.setup-step { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .8rem; min-height: 72px; padding: .8rem 1rem; border-bottom: 1px solid var(--line); }
.setup-step:last-child { border-bottom: 0; }
.setup-step > span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--surface-3); color: white; font-weight: 900; }
.setup-step div strong, .setup-step div small { display: block; }
.setup-step div small { margin-top: .1rem; }
.setup-step > b { color: var(--muted); font-size: 1.4rem; }
.setup-step.is-done > span { background: var(--green); color: #061c10; }
.setup-step.is-done div strong { color: #8ae7b3; }
.home-section-heading { margin-top: 1.4rem; }
.plain-steps { display: grid; gap: .65rem; padding: 0; list-style: none; }
.plain-steps li { display: grid; grid-template-columns: auto 1fr; gap: .7rem; align-items: center; }
.plain-steps li > span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--surface-3); color: var(--yellow); font-weight: 950; }
.plain-steps strong, .plain-steps small { display: block; }
.back-link { display: inline-block; min-height: 42px; margin-bottom: 1rem; color: #d3d3d8; font-weight: 750; }
.empty-state { padding: 2rem 1.3rem; border: 1px dashed #45454b; border-radius: var(--radius); text-align: center; background: var(--surface); }
.empty-state strong { font-size: 1.2rem; }
.empty-state p { color: var(--muted); }
.notice { padding: .9rem; margin: 1rem 0; border: 1px solid var(--line); border-radius: 12px; }
.notice-warning { border-color: #71632a; background: #2d2814; color: #f5dc83; }

.workout-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.workout-heading h1 { margin-bottom: 0; font-size: 1.8rem; }
.workout-program-edit { display:flex; align-items:center; justify-content:space-between; gap:.8rem; margin:.75rem 0 1rem; padding:.8rem; border:1px solid #28505a; border-radius:15px; background:linear-gradient(135deg,#0c2730,#111315 70%); }
.workout-program-edit div { min-width:0; }
.workout-program-edit strong,.workout-program-edit small { display:block; }
.workout-program-edit small { margin-top:.18rem; color:#9ab4ba; line-height:1.45; }
.workout-program-edit .button { flex:0 0 auto; min-height:44px; }
.gym-focus { display:none; }
.mobile-series-launch { display:none; }
.compact-progress { display: grid; place-items: center; flex: 0 0 58px; height: 58px; border: 2px solid var(--line); border-radius: 50%; color: var(--muted); font-weight: 800; }
.compact-progress strong { color: var(--green); font-size: 1.1rem; }
.exercise-dots { display: flex; gap: .45rem; overflow-x: auto; padding: 1rem 0; border: 0; }
.exercise-dots button { flex: 1 0 25px; height: 7px; max-width: 60px; border: 0; border-radius: 99px; background: #37373c; cursor: pointer; }
.exercise-dots button.done { background: var(--green); }
.exercise-dots button.current { background: var(--yellow); box-shadow: 0 0 0 3px rgba(241,201,75,.15); }
.exercise-panel { padding: 1rem; border: 1px solid #4b4323; border-radius: 21px; background: var(--surface); box-shadow: var(--shadow); }
.exercise-panel.is-completed { border-color: #225a3d; }
.exercise-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.exercise-title span:not(.complete-chip) { color: var(--yellow); font-size: .66rem; font-weight: 900; letter-spacing: .13em; }
.exercise-title h2 { margin: .35rem 0 .2rem; font-size: 1.55rem; }
.exercise-title p { margin: 0 0 1rem; color: var(--muted); font-size: .82rem; }
.complete-chip { flex: none; background: var(--green-dark); color: #79e2aa; }
.exercise-images { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; overflow: hidden; border-radius: 15px; }
.exercise-images button { position: relative; overflow: hidden; aspect-ratio: 4/3; padding: 0; border: 0; background: #050505; cursor: zoom-in; }
.exercise-images img { width: 100%; height: 100%; object-fit: cover; }
.exercise-images span { position: absolute; right: .45rem; bottom: .45rem; padding: .22rem .45rem; border-radius: 7px; background: rgba(0,0,0,.74); font-size: .58rem; font-weight: 900; letter-spacing: .08em; }
.image-full-hint { width: 100%; min-height: 40px; border: 0; background: transparent; color: #c7c7cc; text-decoration: underline; text-underline-offset: .22rem; cursor: pointer; }
.exercise-prescription { display: grid; grid-template-columns: repeat(3,1fr); gap: .5rem; margin: .6rem 0 1rem; }
.exercise-prescription div { padding: .7rem .35rem; border: 1px solid var(--line); border-radius: 11px; background: #101012; text-align: center; }
.exercise-prescription span, .weight-summary span { display: block; color: var(--muted); font-size: .58rem; font-weight: 900; letter-spacing: .09em; }
.exercise-prescription strong { font-size: 1rem; }
.instructions { padding: .85rem; border-left: 3px solid var(--yellow); background: #1a1914; color: #deddd7; font-size: .88rem; }
.weight-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: .45rem; margin-top: 1rem; }
.weight-summary div { min-width: 0; padding: .7rem .4rem; border-radius: 10px; background: var(--surface-2); text-align: center; }
.weight-summary strong { display: block; overflow: hidden; margin-top: .2rem; font-size: .85rem; text-overflow: ellipsis; white-space: nowrap; }
.weight-summary .suggested { border: 1px solid #624d1c; background: #292312; }
.weight-summary .suggested strong { color: var(--yellow); }
.suggestion-reason { margin: .7rem 0; color: var(--muted); font-size: .78rem; }

.sets-list { display: grid; gap: .45rem; margin: 1.1rem 0 .45rem; }
.set-row { display: grid; grid-template-columns: 44px minmax(0,1fr) minmax(0,1fr) 54px; align-items: center; gap: .45rem; min-height: 58px; padding: .4rem; border: 1px solid var(--line); border-radius: 12px; background: #101011; transition: border-color .2s, background .2s; }
.set-row.done { border-color: #25734d; background: #10261b; }
.set-row > strong { text-align: center; }
.number-stepper { display: grid; min-width: 0; grid-template-rows: 31px 44px 31px; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #0e0e10; transition: border-color .15s, box-shadow .15s, background .15s; }
.number-stepper:focus-within { border-color: var(--yellow); box-shadow: 0 0 0 3px rgba(241,201,75,.13); }
.spin-stepper-button { touch-action:none; user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; }
.number-stepper-button { display: grid; width: 100%; min-height: 31px; place-items: center; padding: 0; border: 0; background: var(--surface-2); color: #bdbdc3; font-size: 1.15rem; font-weight: 1000; line-height: 1; cursor: pointer; }
.number-stepper-button:first-child { border-bottom: 1px solid #29292d; }
.number-stepper-button:last-child { border-top: 1px solid #29292d; }
.number-stepper-button:active, .number-stepper-button.is-holding { background: #292312; color: var(--yellow); }
.number-stepper-value { display: block; min-width: 0; touch-action: pan-x; }
.number-stepper input[type="number"] { width: 100%; min-height: 44px; padding: .35rem .15rem; border: 0; border-radius: 0; background: #0b0b0d; color: var(--text); font-size: 1.08rem; font-weight: 950; line-height: 1; text-align: center; box-shadow: none; appearance: textfield; -moz-appearance: textfield; }
.number-stepper input[type="number"]::-webkit-inner-spin-button, .number-stepper input[type="number"]::-webkit-outer-spin-button { margin: 0; appearance: none; -webkit-appearance: none; }
.number-stepper input[type="number"]:focus { box-shadow: none; }
.set-row.done .number-stepper { border-color: #246744; background: #0d2016; }
.set-row.done .number-stepper input[type="number"] { background: #0d1d14; }
.number-stepper.is-stepping-up input { animation: number-step-up .16s ease-out; }
.number-stepper.is-stepping-down input { animation: number-step-down .16s ease-out; }
@keyframes number-step-up { from { opacity: .3; transform: translateY(12px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes number-step-down { from { opacity: .3; transform: translateY(-12px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
.set-header { min-height: auto; padding: 0 .4rem; border: 0; background: transparent; color: var(--muted); font-size: .58rem; font-weight: 900; text-align: center; letter-spacing: .08em; }
.check-control { display: grid; place-items: center; cursor: pointer; }
.check-control input { position: absolute; opacity: 0; }
.check-control span[aria-hidden] { display: grid; place-items: center; width: 38px; height: 38px; border: 2px solid #54545b; border-radius: 10px; color: transparent; font-size: 1.3rem; }
.check-control input:checked + span { border-color: var(--green); background: var(--green); color: #071b10; }
.check-control input:focus-visible + span { outline: 3px solid var(--yellow); }
.autosave-status { min-height: 1.2rem; margin: 0 0 .8rem; color: #818188; font-size: .7rem; text-align: right; }
.autosave-status.saving { color: var(--yellow); }
.autosave-status.saved { color: var(--green); }
.difficulty { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1.1rem 0; padding: 0; border: 0; }
.difficulty legend { width: 100%; margin-bottom: .35rem; font-weight: 850; }
.difficulty label { cursor: pointer; }
.difficulty input { position: absolute; opacity: 0; }
.difficulty span { display: inline-flex; min-height: 40px; align-items: center; padding: .45rem .65rem; border: 1px solid var(--line); border-radius: 99px; background: #111113; color: #b9b9bf; font-size: .72rem; }
.difficulty input:checked + span { border-color: var(--yellow); background: #2c2816; color: var(--yellow); }
.difficulty input[value="pain"]:checked + span { border-color: var(--danger); background: #321619; color: #ff969d; }
.notes-field { margin-bottom: 1rem; }
.medical-note { margin: .8rem 0 0; padding: .7rem; border: 1px solid #7f3037; border-radius: 10px; background: #2e1316; color: #ffb0b5; font-size: .8rem; }
.workout-navigation { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin: .8rem 0; }
.finish-workout { margin-top: .5rem; }

@media (max-width:759px) {
  .workout-page .app-shell { padding-top:.75rem; }
  .workout-program-edit { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.65rem; margin:.6rem 0 .7rem; padding:.65rem .7rem; }
  .workout-program-edit strong { font-size:.76rem; line-height:1.25; }
  .workout-program-edit small { display:none; }
  .workout-program-edit .button { width:auto; min-height:44px; padding:.48rem .65rem; font-size:.67rem; white-space:nowrap; }
  .gym-focus-open { overflow:hidden; }
  .gym-focus.is-open { position:fixed; top:50%; right:.75rem; left:.75rem; z-index:75; display:grid; gap:.8rem; max-height:calc(100dvh - 110px); min-height:min(520px,68dvh); overflow-y:auto; padding:1rem; border:1px solid #6c5720; border-radius:24px; background:linear-gradient(155deg,#201c10,#111113 62%); box-shadow:0 0 0 100vmax rgba(0,0,0,.8),0 28px 70px #000,inset 0 1px 0 #ffffff0d; transform:translateY(-50%); }
  .gym-focus-header { display:flex; align-items:flex-start; justify-content:space-between; gap:.75rem; }
  .gym-focus-header span,.gym-focus-header strong { display:block; }
  .gym-focus-header span { color:var(--yellow); font-size:.62rem; font-weight:950; letter-spacing:.15em; }
  .gym-focus-header strong { max-width:240px; margin-top:.25rem; overflow:hidden; font-size:clamp(1.35rem,6vw,1.85rem); line-height:1.05; text-overflow:ellipsis; white-space:nowrap; }
  .gym-focus-header button { flex:none; min-height:42px; padding:.45rem .65rem; border:1px solid #46464c; border-radius:12px; background:#1d1d20; color:#d1d1d6; font-size:.68rem; font-weight:850; }
  .gym-focus-progress { display:flex; align-items:center; justify-content:space-between; padding:.55rem .7rem; border-radius:11px; background:#0c0c0e; }
  .gym-focus-progress span { font-size:.82rem; font-weight:850; }
  .gym-focus-progress small { color:var(--yellow); font-size:.64rem; font-weight:1000; letter-spacing:.12em; }
  .gym-focus-progress small.is-live { color:#65e79e; animation:gym-live 1s ease-in-out infinite alternate; }
  @keyframes gym-live { to { opacity:.5; } }
  .gym-focus-ready,.gym-focus-active { display:grid; gap:.75rem; }
  .gym-focus-ready[hidden],.gym-focus-active[hidden] { display:none; }
  .gym-focus-metrics,.gym-focus-controls { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
  .gym-focus-metrics > div { display:grid; min-height:96px; place-content:center; border:1px solid #3e3e43; border-radius:17px; background:#0b0b0d; text-align:center; }
  .gym-focus-metrics small,.gym-focus-stepper small { color:#a9a9af; font-size:.62rem; font-weight:950; letter-spacing:.12em; }
  .gym-focus-metrics strong { font-variant-numeric:tabular-nums; font-size:clamp(2.45rem,13vw,4rem); line-height:1; }
  .gym-focus-start,.gym-focus-complete { width:100%; min-height:68px; border:0; border-radius:17px; color:#06140c; font-size:1rem; font-weight:1000; letter-spacing:.03em; }
  .gym-focus-start { background:linear-gradient(135deg,#f6d24b,#e8ae24); box-shadow:0 12px 28px #d9a61b33; }
  .gym-focus-ready p { margin:0; color:#a6a6ac; font-size:.72rem; text-align:center; }
  .gym-focus-stepper { display:grid; grid-template-rows:auto 44px minmax(65px,1fr) 44px; overflow:hidden; border:1px solid #4b4b51; border-radius:18px; background:#0a0a0c; text-align:center; }
  .gym-focus-stepper small { align-self:center; padding:.55rem .25rem .2rem; }
  .gym-focus-stepper button { border:0; background:#242426; color:var(--yellow); font-size:1.65rem; font-weight:1000; }
  .gym-focus-stepper button.is-holding { background:#39301a; color:#ffe47d; box-shadow:inset 0 0 0 2px #f1c94b55; }
  .gym-focus-stepper strong { display:grid; place-items:center; font-variant-numeric:tabular-nums; font-size:clamp(2.5rem,14vw,4.2rem); line-height:1; }
  .gym-focus-stepper.is-series-timer { border-color:#7d6828; box-shadow:inset 0 0 0 1px #f1c94b1f; }
  .gym-focus-stepper.is-series-timer strong { font-size:clamp(2rem,10.5vw,3.35rem); letter-spacing:-.055em; }
  .gym-focus-stepper.is-series-timer.is-warning { border-color:#f1c94b; background:#211d0e; box-shadow:0 0 0 3px #f1c94b24,inset 0 0 28px #f1c94b12; }
  .gym-focus-stepper.is-series-timer.is-paused { border-color:#65656c; }
  .gym-focus-stepper.is-series-timer.is-finished { border-color:#ff5963; background:#301417; box-shadow:0 0 0 3px #ff596324,inset 0 0 30px #ff59631c; }
  .gym-focus-stepper.is-series-timer.is-finished strong { color:#ff8990; letter-spacing:.02em; }
  .gym-focus-series-timer { position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(142px,.9fr); align-items:center; gap:.5rem .65rem; overflow:hidden; padding:.58rem .65rem .68rem; border:1px solid #65551f; border-radius:14px; background:linear-gradient(135deg,#28220f,#151515); }
  .gym-focus-series-timer[hidden] { display:none; }
  .gym-focus-series-timer-copy small,.gym-focus-series-timer-copy span { display:block; }
  .gym-focus-series-timer-copy small { color:var(--yellow); font-size:.56rem; font-weight:1000; letter-spacing:.13em; }
  .gym-focus-series-timer-copy span { margin-top:.18rem; color:#d0c9a6; font-size:.67rem; font-weight:750; line-height:1.3; }
  .gym-focus-series-timer-actions { display:grid; grid-template-columns:1fr 1fr; gap:.4rem; }
  .gym-focus-series-timer-actions button { min-height:44px; padding:.35rem .42rem; border:1px solid #5b512b; border-radius:11px; background:#302b1a; color:#fff2ae; font-size:.66rem; font-weight:950; }
  .gym-focus-series-timer-actions button:active { transform:scale(.97); }
  .gym-focus-series-timer-actions button:disabled { opacity:.45; }
  .gym-focus-series-timer-track { grid-column:1 / -1; height:5px; overflow:hidden; border-radius:99px; background:#080809; }
  .gym-focus-series-timer-track i { display:block; width:100%; height:100%; border-radius:inherit; background:linear-gradient(90deg,#e2a827,#f4d85e); transition:width .2s linear; }
  .gym-focus-series-timer.is-warning { border-color:#f1c94b; background:linear-gradient(135deg,#332b0e,#171511); }
  .gym-focus-series-timer.is-paused { border-color:#55555c; background:#171719; }
  .gym-focus-series-timer.is-paused .gym-focus-series-timer-copy small { color:#c2c2c8; }
  .gym-focus-series-timer.is-paused .gym-focus-series-timer-track i { background:#77777e; }
  .gym-focus-series-timer.is-finished { border-color:#ff5963; background:linear-gradient(135deg,#3a1519,#1b1012); }
  .gym-focus-series-timer.is-finished .gym-focus-series-timer-copy small,.gym-focus-series-timer.is-finished .gym-focus-series-timer-copy span { color:#ff9ca2; }
  .gym-focus-series-timer.is-finished .gym-focus-series-timer-track i { background:#ff5963; }
  .gym-focus-series-timer.has-error { border-color:#ff5963; }
  .gym-focus-complete { min-height:74px; background:linear-gradient(135deg,#32d982,#18b864); box-shadow:0 12px 28px #10a55533; }
  .gym-focus-complete > span { display:inline-grid; width:34px; height:34px; margin-right:.35rem; place-items:center; border-radius:50%; background:#061a10; color:#4be298; }
  .gym-focus-complete b { font:inherit; }
  .gym-focus-complete:disabled { opacity:.72; cursor:wait; }
  .mobile-series-launch { display:grid; grid-template-columns:42px 1fr auto; align-items:center; gap:.65rem; width:100%; min-height:66px; margin:0 0 .65rem; padding:.58rem .72rem; border:1px solid #8a7027; border-radius:15px; background:linear-gradient(135deg,#332b10,#181713); color:#fff; text-align:left; box-shadow:0 10px 24px #0006,inset 0 1px 0 #ffffff0a; }
  .mobile-series-launch[hidden] { display:none; }
  .mobile-series-launch > span { display:grid; width:40px; height:40px; place-items:center; border-radius:12px; background:var(--yellow); color:#171205; font-size:1rem; }
  .mobile-series-launch strong,.mobile-series-launch small { display:block; }
  .mobile-series-launch strong { font-size:.92rem; }
  .mobile-series-launch small { color:#c8b96f; font-size:.68rem; font-weight:850; }
}
@media (max-width:759px) and (max-height:700px) {
  .gym-focus.is-open { min-height:0; max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); }
}
@media (min-width:760px) {
  .gym-focus.is-open { position:fixed; top:50%; right:1.25rem; z-index:75; display:grid; gap:.75rem; width:min(440px,calc(100vw - 2.5rem)); max-height:calc(100dvh - 2.5rem); overflow-y:auto; padding:1rem; border:1px solid #6c5720; border-radius:22px; background:linear-gradient(155deg,#201c10,#111113 62%); box-shadow:0 0 0 100vmax rgba(0,0,0,.72),0 28px 70px #000,inset 0 1px 0 #ffffff0d; transform:translateY(-50%); }
  .gym-focus-header { display:flex; align-items:flex-start; justify-content:space-between; gap:.75rem; }
  .gym-focus-header span,.gym-focus-header strong { display:block; }
  .gym-focus-header span { color:var(--yellow); font-size:.62rem; font-weight:950; letter-spacing:.15em; }
  .gym-focus-header strong { max-width:280px; margin-top:.25rem; overflow:hidden; font-size:1.55rem; line-height:1.05; text-overflow:ellipsis; white-space:nowrap; }
  .gym-focus-header button { flex:none; min-height:44px; padding:.45rem .7rem; border:1px solid #46464c; border-radius:12px; background:#1d1d20; color:#d1d1d6; font-size:.7rem; font-weight:850; }
  .gym-focus-progress { display:flex; align-items:center; justify-content:space-between; padding:.55rem .7rem; border-radius:11px; background:#0c0c0e; }
  .gym-focus-progress span { font-size:.82rem; font-weight:850; }
  .gym-focus-progress small { color:var(--yellow); font-size:.64rem; font-weight:1000; letter-spacing:.12em; }
  .gym-focus-progress small.is-live { color:#65e79e; }
  .gym-focus-active { display:grid; gap:.7rem; }
  .gym-focus-active[hidden] { display:none; }
  .gym-focus-controls { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
  .gym-focus-stepper { display:grid; grid-template-rows:auto 44px minmax(65px,1fr) 44px; overflow:hidden; border:1px solid #4b4b51; border-radius:18px; background:#0a0a0c; text-align:center; }
  .gym-focus-stepper small { align-self:center; padding:.55rem .25rem .2rem; color:#a9a9af; font-size:.62rem; font-weight:950; letter-spacing:.12em; }
  .gym-focus-stepper button { border:0; background:#242426; color:var(--yellow); font-size:1.65rem; font-weight:1000; }
  .gym-focus-stepper strong { display:grid; place-items:center; font-variant-numeric:tabular-nums; font-size:3rem; line-height:1; }
  .gym-focus-stepper.is-series-timer strong { font-size:2.6rem; letter-spacing:-.055em; }
  .gym-focus-stepper.is-series-timer.is-warning { border-color:#f1c94b; background:#211d0e; }
  .gym-focus-stepper.is-series-timer.is-finished { border-color:#ff5963; background:#301417; }
  .gym-focus-stepper.is-series-timer.is-finished strong { color:#ff8990; }
  .gym-focus-series-timer { display:grid; grid-template-columns:minmax(0,1fr) minmax(142px,.9fr); align-items:center; gap:.5rem .65rem; padding:.58rem .65rem .68rem; border:1px solid #65551f; border-radius:14px; background:linear-gradient(135deg,#28220f,#151515); }
  .gym-focus-series-timer[hidden] { display:none; }
  .gym-focus-series-timer-copy small,.gym-focus-series-timer-copy span { display:block; }
  .gym-focus-series-timer-copy small { color:var(--yellow); font-size:.56rem; font-weight:1000; letter-spacing:.13em; }
  .gym-focus-series-timer-copy span { margin-top:.18rem; color:#d0c9a6; font-size:.67rem; font-weight:750; line-height:1.3; }
  .gym-focus-series-timer-actions { display:grid; grid-template-columns:1fr 1fr; gap:.4rem; }
  .gym-focus-series-timer-actions button { min-height:44px; padding:.35rem .42rem; border:1px solid #5b512b; border-radius:11px; background:#302b1a; color:#fff2ae; font-size:.66rem; font-weight:950; }
  .gym-focus-series-timer-track { grid-column:1 / -1; height:5px; overflow:hidden; border-radius:99px; background:#080809; }
  .gym-focus-series-timer-track i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#e2a827,#f4d85e); }
  .gym-focus-complete { width:100%; min-height:68px; border:0; border-radius:17px; background:linear-gradient(135deg,#32d982,#18b864); color:#06140c; font-size:1rem; font-weight:1000; }
  .gym-focus-complete > span { display:inline-grid; width:34px; height:34px; margin-right:.35rem; place-items:center; border-radius:50%; background:#061a10; color:#4be298; }
}

.rest-timer { position: fixed; right: .75rem; bottom: calc(78px + env(safe-area-inset-bottom)); left: .75rem; z-index: 60; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .8rem; max-width: 650px; margin: auto; padding: .8rem; border: 1px solid #645521; border-radius: 17px; background: rgba(24,22,15,.96); box-shadow: 0 15px 45px rgba(0,0,0,.55); backdrop-filter: blur(12px); }
.rest-timer[hidden] { display: none; }
.timer-controls { display: grid; grid-template-columns: repeat(4,1fr); gap: .3rem; }
.timer-controls button { min-height: 39px; padding: .25rem; border: 1px solid #51471f; border-radius: 9px; background: #2b2818; color: #e9dfa9; font-size: .68rem; font-weight: 800; }

.lightbox-open { overflow:hidden; }
.lightbox { position:fixed; inset:0; box-sizing:border-box; width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; margin:0; padding:max(.45rem,env(safe-area-inset-top)) max(.45rem,env(safe-area-inset-right)) max(.45rem,env(safe-area-inset-bottom)) max(.45rem,env(safe-area-inset-left)); overflow:hidden; border:0; background:transparent; color:#fff; opacity:0; transition:opacity .2s ease; }
.lightbox[open] { display:grid; place-items:center; }
.lightbox::backdrop { background:rgba(0,0,0,.94); backdrop-filter:blur(8px); animation:lightbox-backdrop-in .2s ease both; }
.lightbox.is-ready { opacity:1; }
.lightbox-shell { display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; width:min(100%,980px); height:min(100%,900px); overflow:hidden; border:1px solid #45454c; border-radius:26px; background:radial-gradient(circle at 100% 0,#192e3555,transparent 32%),linear-gradient(155deg,#18181b,#09090b 68%); box-shadow:0 34px 110px #000,0 0 0 1px #ffffff08 inset; transform:translateY(12px) scale(.965); transition:transform .22s cubic-bezier(.2,.8,.2,1); }
.lightbox.is-ready .lightbox-shell { transform:translateY(0) scale(1); }
.lightbox-header { display:flex; min-width:0; align-items:center; justify-content:space-between; gap:.8rem; padding:.8rem .85rem; border-bottom:1px solid #2e2e34; background:#101012e8; }
.lightbox-header > div { min-width:0; }
.lightbox-header span { display:block; color:#63d9ec; font-size:.58rem; font-weight:950; letter-spacing:.14em; }
.lightbox-header h2 { overflow:hidden; margin:.2rem 0 0; font-size:clamp(1.1rem,4vw,1.5rem); line-height:1.05; text-overflow:ellipsis; white-space:nowrap; }
.lightbox-close { display:grid; flex:0 0 46px; width:46px; height:46px; place-items:center; padding:0; border:1px solid #555860; border-radius:50%; background:#232429; color:#fff; font-size:1.65rem; line-height:1; box-shadow:0 8px 22px #0008; cursor:pointer; }
.lightbox-close:hover,.lightbox-close:focus-visible { border-color:#7ce4f4; background:#292c31; }
.lightbox-mode-tabs { display:grid; grid-template-columns:1fr 1fr; gap:.28rem; padding:.38rem; border-bottom:1px solid #2b2b30; background:#0a0a0c; }
.lightbox-mode-tabs button { min-height:48px; border:0; border-radius:12px; background:transparent; color:#8f8f97; font-size:.72rem; font-weight:950; letter-spacing:.04em; cursor:pointer; }
.lightbox-mode-tabs button[aria-selected="true"] { background:linear-gradient(135deg,#342116,#671a23); color:#fff; box-shadow:0 8px 20px #0008,inset 0 0 0 1px #ff6d7633; }
.lightbox-mode-tabs button[hidden] { display:none; }
.lightbox-panel { min-width:0; min-height:0; overflow:auto; overscroll-behavior:contain; padding:.7rem; }
.lightbox-panel[hidden] { display:none!important; }
.lightbox-panel.is-active { animation:lightbox-panel-in .2s ease both; }
.lightbox-stage-row { position:relative; display:grid; min-height:0; }
.lightbox-stage { display:grid; width:100%; min-height:240px; height:min(57dvh,620px); margin:0; overflow:hidden; place-items:center; border:1px solid #3b3b42; border-radius:19px; background:radial-gradient(circle at 50% 35%,#202025,#020203 70%); box-shadow:0 18px 50px #0008; }
.lightbox-stage img { grid-area:1/1; width:100%; height:100%; object-fit:contain; touch-action:pan-y; user-select:none; }
.lightbox-stage img.is-switching { animation:lightbox-image-switch .22s cubic-bezier(.2,.8,.2,1); }
.lightbox-stage figcaption { grid-area:1/1; z-index:1; align-self:end; width:100%; padding:2rem .8rem .75rem; background:linear-gradient(transparent,#000d); color:#f1f1f3; font-size:.7rem; font-weight:850; text-align:center; }
.lightbox-arrow { position:absolute; top:50%; z-index:3; display:grid; width:46px; height:56px; place-items:center; padding:0; border:1px solid #ffffff30; border-radius:14px; background:#0b0b0dcc; color:#fff; font-size:2rem; line-height:1; box-shadow:0 10px 25px #000a; transform:translateY(-50%); cursor:pointer; }
.lightbox-arrow.is-previous { left:.55rem; }
.lightbox-arrow.is-next { right:.55rem; }
.lightbox-arrow[hidden] { display:none; }
.lightbox-frame-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; margin-top:.6rem; }
.lightbox-frame-tabs[hidden] { display:none; }
.lightbox-frame-tabs button { min-height:48px; border:1px solid #3c3c43; border-radius:12px; background:#171719; color:#9999a1; font-size:.7rem; font-weight:950; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.lightbox-frame-tabs button[aria-selected="true"] { border-color:#a13b45; background:#35171b; color:#fff; box-shadow:inset 0 0 0 1px #ff697422; }
.lightbox-gesture-hint { margin:.5rem 0 0; color:#83838b; font-size:.62rem; text-align:center; }
.lightbox-gesture-hint span { color:#63d9ec; font-size:.85rem; }
.lightbox-muscle-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; max-width:700px; margin:0 auto; }
.lightbox-muscle-map { min-width:0; margin:0; overflow:hidden; border:1px solid #31515a; border-radius:17px; background:radial-gradient(circle at 50% 25%,#15303a,#030405 68%); box-shadow:0 18px 40px #0007; }
.lightbox-muscle-stage { position:relative; isolation:isolate; aspect-ratio:1/2; overflow:hidden; background:#050708; }
.lightbox-muscle-stage > img { position:relative; z-index:0; width:100%; height:100%; object-fit:cover; opacity:.84; filter:grayscale(.18) brightness(.9) contrast(1.12); }
.lightbox-muscle-stage::after { content:""; position:absolute; z-index:1; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(2,5,6,.04),rgba(2,5,6,.18)); }
.lightbox-muscle-stage > svg { position:absolute; z-index:2; inset:0; width:100%; height:100%; overflow:visible; mix-blend-mode:normal; }
.lightbox-muscle-map figcaption { padding:.5rem; border-top:1px solid #274149; color:#9cc4cc; font-size:.6rem; font-weight:850; text-align:center; }
.lightbox-muscle-legend { display:flex; flex-wrap:wrap; justify-content:center; gap:.4rem; max-width:700px; margin:.55rem auto 0; }
.lightbox-muscle-legend span { display:flex; align-items:center; gap:.35rem; padding:.4rem .5rem; border:1px solid #393940; border-radius:10px; color:#c2c2c7; font-size:.58rem; }
.lightbox-muscle-legend i { width:10px; height:10px; border-radius:50%; background:#f21f32; box-shadow:0 0 8px #f21f32; }
.lightbox-muscle-legend .is-secondary i { background:#ff981a; box-shadow:0 0 8px #ff981a; }
.lightbox-muscle-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.35rem; max-width:700px; margin:.55rem auto 0; padding:0; list-style:none; }
.lightbox-muscle-list li { display:grid; grid-template-columns:10px minmax(0,1fr) auto; align-items:center; gap:.4rem; min-width:0; padding:.5rem; border-radius:10px; background:#1d1114; }
.lightbox-muscle-list li.is-secondary { background:#211a10; }
.lightbox-muscle-list i { width:8px; height:8px; border-radius:50%; background:#f21f32; }
.lightbox-muscle-list li.is-secondary i { background:#ff981a; }
.lightbox-muscle-list strong { overflow:hidden; font-size:.64rem; text-overflow:ellipsis; white-space:nowrap; }
.lightbox-muscle-list small { color:#9a9aa1; font-size:.52rem; }
.lightbox-muscle-note { max-width:700px; margin:.55rem auto 0; padding:.55rem .65rem; border-left:2px solid #4f7a84; background:#111b1e; color:#91aeb4; font-size:.56rem; line-height:1.45; }
.lightbox-footer { display:flex; min-width:0; min-height:58px; align-items:center; justify-content:space-between; gap:.6rem; padding:.55rem .75rem max(.55rem,env(safe-area-inset-bottom)); border-top:1px solid #2b2b31; background:#0c0c0ee8; }
.lightbox-footer > span { overflow:hidden; color:#aaaab1; font-size:.65rem; font-weight:850; text-overflow:ellipsis; white-space:nowrap; }
.lightbox-footer .button { min-height:44px; padding:.55rem .75rem; font-size:.66rem; }
@keyframes lightbox-backdrop-in { from { opacity:0; } }
@keyframes lightbox-panel-in { from { opacity:0; transform:translateY(6px); } }
@keyframes lightbox-image-switch { from { opacity:.35; transform:scale(.965); } }

.history-list { display: grid; gap: .65rem; }
.history-card { display: grid; grid-template-columns: 54px 1fr auto; align-items: center; gap: .8rem; min-height: 86px; padding: .8rem; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
.history-day { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 13px; background: #301315; color: #ff777e; font-weight: 950; }
.history-card strong, .history-card span, .history-card small { display: block; }
.history-card span { color: var(--muted); font-size: .75rem; }
.history-count { display: flex; align-items: center; gap: .5rem; color: var(--green); font-weight: 900; }
.history-count b { color: var(--muted); font-size: 1.5rem; }
.session-detail-list { display: grid; gap: .8rem; }
.session-detail-card { padding: 1rem; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.session-detail-card header { display: flex; align-items: flex-start; justify-content: space-between; gap: .7rem; }
.session-detail-card header span { color: var(--muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.session-detail-card header h2 { margin: .2rem 0 .8rem; font-size: 1.15rem; }
.session-detail-card header > strong { color: var(--yellow); font-size: .7rem; }
.history-sets { display: grid; gap: .3rem; }
.history-sets div { display: grid; grid-template-columns: 1fr auto auto; gap: .8rem; padding: .5rem; border-radius: 8px; background: #101012; font-size: .78rem; }
.history-sets span { color: var(--muted); }
.history-notes { margin: .7rem 0 0; padding: .7rem; border-left: 2px solid var(--yellow); background: #1c1a13; font-size: .8rem; }
.completion-hero { margin-bottom: 1rem; padding: 1.5rem; border: 1px solid #266142; border-radius: 23px; background: linear-gradient(145deg, #102a1d, #131516 58%); text-align: center; }
.completion-mark { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 1rem; border-radius: 50%; background: var(--green); color: #061b0f; font-size: 2rem; font-weight: 950; }
.completion-hero h1 { font-size: 2rem; }
.exercise-complete-dialog { width:min(520px,calc(100% - 1.25rem)); max-width:520px; margin:auto; padding:0; overflow:visible; border:0; border-radius:24px; background:transparent; color:var(--text); }
.exercise-complete-dialog::backdrop { background:rgba(0,0,0,.88); backdrop-filter:blur(8px); }
.exercise-complete-shell { position:relative; overflow:hidden; padding:1.35rem; border:1px solid #326b4b; border-radius:24px; background:radial-gradient(circle at 50% 0,rgba(49,190,112,.18),transparent 35%),linear-gradient(145deg,#10251a,#111315 58%); box-shadow:0 30px 90px #000c,inset 0 1px rgba(255,255,255,.06); text-align:center; }
.exercise-complete-close { position:absolute; top:.75rem; right:.75rem; display:grid; width:44px; height:44px; place-items:center; border:1px solid #3d5146; border-radius:50%; background:#17241c; color:#dbe9e0; font-size:1.35rem; }
.exercise-complete-mark { display:grid; width:66px; height:66px; margin:0 auto .8rem; place-items:center; border-radius:50%; background:linear-gradient(145deg,#4ddd8d,#22a763); color:#062214; font-size:2rem; font-weight:950; box-shadow:0 12px 32px rgba(34,167,99,.3); }
.exercise-complete-shell h2 { margin:.18rem 0 .35rem; font-size:1.65rem; }
.exercise-complete-shell > p { margin:.2rem auto .9rem; color:#b7c5bc; line-height:1.5; }
.exercise-complete-shell > p strong { color:#fff; }
.exercise-complete-shell > .exercise-complete-motivation { margin:.65rem auto 1rem; padding:.7rem .8rem; border-left:3px solid var(--green); border-radius:0 12px 12px 0; background:rgba(38,184,109,.08); color:#e2eee6; font-weight:750; text-align:left; }
.exercise-complete-next { display:grid; grid-template-columns:92px minmax(0,1fr); align-items:center; gap:.85rem; margin:1rem 0; padding:.75rem; border:1px solid #34473c; border-radius:16px; background:#0c1510; text-align:left; }
.exercise-complete-next img { width:92px; height:72px; border-radius:11px; object-fit:cover; background:#050706; }
.exercise-complete-next span,.exercise-complete-next strong,.exercise-complete-next small { display:block; }
.exercise-complete-next span { color:var(--green); font-size:.62rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.exercise-complete-next strong { margin:.15rem 0; font-size:1rem; }
.exercise-complete-next small { color:var(--muted); }
.exercise-complete-last { padding:.8rem; border:1px solid #3d5747; border-radius:14px; background:#0d1811; color:#d7e8dc!important; }
.exercise-complete-actions { display:grid; gap:.55rem; }
.exercise-complete-actions .button { width:100%; }
.exercise-complete-stay { min-height:44px; border:0; background:transparent; color:#aab5ae; font-weight:800; text-decoration:underline; text-underline-offset:3px; }
@media (max-width:760px) {
  .exercise-complete-dialog { width:calc(100% - .8rem); }
  .exercise-complete-shell { padding:1.15rem .9rem 1rem; border-radius:21px; }
  .exercise-complete-shell h2 { font-size:1.4rem; }
  .exercise-complete-next { grid-template-columns:76px minmax(0,1fr); }
  .exercise-complete-next img { width:76px; height:66px; }
}
.summary-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: .5rem; margin: 1.2rem 0; }
.summary-stats div { padding: .7rem .25rem; border-radius: 11px; background: rgba(0,0,0,.25); }
.summary-stats strong, .summary-stats span { display: block; }
.summary-stats strong { font-size: 1.1rem; }
.summary-stats span { color: var(--muted); font-size: .64rem; }

.program-day { margin-bottom: 1.2rem; }
.program-command-center { display:grid; gap:.8rem; margin:1rem 0 1.5rem; }
.program-library-callout,.program-edit-callout { position:relative; overflow:hidden; border:1px solid #4a3035; border-radius:20px; box-shadow:0 18px 44px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.035); }
.program-library-callout { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:1rem; padding:1.15rem; background:radial-gradient(circle at 88% 18%,rgba(231,45,56,.2),transparent 34%),linear-gradient(135deg,#2a1216,#151517 68%); }
.program-command-step { display:grid; width:38px; height:38px; place-items:center; border:1px solid rgba(255,255,255,.14); border-radius:50%; background:#0d0d0f; color:#fff; font-size:.78rem; font-weight:950; box-shadow:0 7px 18px rgba(0,0,0,.3); }
.program-library-callout h2,.program-edit-callout h2,.program-days-heading h2 { margin:.16rem 0 .28rem; }
.program-library-callout p,.program-edit-callout p,.program-days-heading p { margin:0; color:var(--muted); line-height:1.5; }
.program-library-callout .button { display:flex; min-height:48px; align-items:center; gap:.65rem; white-space:nowrap; }
.program-library-callout .button span,.program-edit-callout .button span { font-size:1.25rem; line-height:1; }
.program-edit-callout { display:grid; grid-template-columns:140px minmax(0,1fr); min-height:180px; align-items:center; background:radial-gradient(circle at 8% 20%,rgba(255,199,72,.11),transparent 37%),linear-gradient(135deg,#17191d,#101012); }
.program-edit-callout > img { width:160px; height:160px; align-self:end; object-fit:contain; object-position:center bottom; filter:drop-shadow(0 14px 20px rgba(0,0,0,.35)); transform:translateX(-5px); }
.program-edit-callout-copy { position:relative; z-index:1; padding:1rem 1.15rem 1rem .35rem; }
.program-edit-callout-copy .program-command-step { position:absolute; top:1rem; right:1rem; border-color:rgba(255,199,72,.28); color:var(--yellow); }
.program-edit-callout-copy .button { display:inline-flex; min-height:46px; align-items:center; gap:.6rem; margin-top:.75rem; border-color:#725d2b; background:linear-gradient(135deg,#332a14,#201b10); color:#fff; }
.program-days-heading { margin:0 0 .8rem; padding:.25rem .1rem; }
.program-day > header { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.8rem; padding: 1.1rem; border: 1px solid var(--line); border-bottom: 0; border-radius: 18px 18px 0 0; background: #1a1113; }
.program-day > header span { color: var(--red); font-size: .68rem; font-weight: 900; letter-spacing: .12em; }
.program-day > header h2 { margin: .25rem 0; }
.program-day > header p { margin: 0; color: var(--muted); font-size: .8rem; }
.program-day-edit { display:grid; min-height:48px; align-content:center; gap:.08rem; padding:.55rem .7rem; border:1px solid #4f3338; border-radius:12px; background:#251518; color:#fff; text-align:right; }
.program-day-edit strong,.program-day-edit small { display:block; }
.program-day-edit strong { font-size:.72rem; }
.program-day-edit small { color:#c4aeb2; font-size:.62rem; }
.program-list { overflow: hidden; border: 1px solid var(--line); border-radius: 0 0 18px 18px; background: var(--surface); }
.program-exercise { display: grid; grid-template-columns: 76px 1fr auto; align-items: center; gap: .8rem; min-height: 86px; padding: .55rem; border-bottom: 1px solid var(--line); }
.program-exercise:last-child { border-bottom: 0; }
.program-exercise img { width: 76px; height: 64px; border-radius: 10px; object-fit: cover; background: #050505; }
.program-exercise strong, .program-exercise span, .program-exercise small { display: block; }
.program-exercise span { color: var(--muted); font-size: .73rem; }
.program-exercise small { color: var(--yellow); font-size: .56rem; font-weight: 900; letter-spacing: .08em; }
.program-exercise > b { color: var(--muted); font-size: 1.4rem; }

.settings-form { margin-bottom: 1rem; }
.settings-card { display: grid; gap: .9rem; padding: 1rem; border: 1px solid var(--line); border-radius: 17px; background: var(--surface); }
.settings-card h2 { margin: 0; font-size: 1.15rem; }
.settings-card > p { margin: -.4rem 0 0; color: var(--muted); font-size: .8rem; }
.form-grid { display: grid; gap: .8rem; }
.switch-row { display: grid; grid-template-columns: 1fr auto; align-items: center; min-height: 60px; cursor: pointer; }
.switch-row span strong, .switch-row span small { display: block; }
.switch-row input { position: absolute; opacity: 0; }
.switch-row i { position: relative; width: 50px; height: 29px; border-radius: 99px; background: #3b3b40; transition: background .2s; }
.switch-row i::after { position: absolute; top: 3px; left: 3px; width: 23px; height: 23px; border-radius: 50%; background: white; content: ""; transition: transform .2s; }
.switch-row input:checked + i { background: var(--green); }
.switch-row input:checked + i::after { transform: translateX(21px); }
.timer-audio-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.timer-sound-preview { min-height: 52px; font-size: 1rem; }
.settings-note { display: block; color: var(--muted); line-height: 1.45; }
.theme-settings-card { margin-bottom: 1rem; gap: 1rem; overflow: hidden; }
.theme-settings-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.theme-settings-heading > div { min-width: 0; }
.theme-settings-heading h2 { margin: .25rem 0 .45rem; font-size: clamp(1.35rem, 5vw, 1.85rem); }
.theme-settings-heading p { max-width: 42rem; margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.55; }
.theme-active-badge { flex: none; padding: .42rem .62rem; border: 1px solid color-mix(in srgb, var(--portal-accent, var(--yellow)), transparent 48%); border-radius: 999px; background: color-mix(in srgb, var(--portal-soft, #242015), #111 28%); color: var(--portal-accent, var(--yellow)); font-size: .6rem; font-weight: 950; letter-spacing: .08em; white-space: nowrap; }
.theme-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.theme-choice { position: relative; display: grid; grid-template-rows: 102px auto; min-width: 0; gap: .65rem; padding: .62rem; border: 1px solid #34343a; border-radius: 17px; background: #111113; color: var(--text); cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.theme-choice:hover { border-color: color-mix(in srgb, var(--portal-accent, var(--yellow)), #424247 42%); transform: translateY(-1px); }
.theme-choice:has(input:focus-visible) { outline: 3px solid color-mix(in srgb, var(--portal-accent, var(--yellow)), transparent 56%); outline-offset: 2px; }
.theme-choice:has(input:checked) { border-color: var(--portal-accent, var(--yellow)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--portal-accent, var(--yellow)), transparent 68%), 0 10px 28px rgba(0,0,0,.2); }
.theme-choice:has(input:disabled) { cursor: wait; }
.theme-choice > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.theme-choice-copy { display: block; min-width: 0; padding: 0 .15rem .15rem; }
.theme-choice-copy strong,.theme-choice-copy small { display: block; }
.theme-choice-copy strong { margin-bottom: .18rem; color: var(--text); font-size: .86rem; }
.theme-choice-copy small { color: var(--muted); font-size: .65rem; font-weight: 550; line-height: 1.35; }
.theme-choice-check { position: absolute; top: .92rem; right: .92rem; display: grid; width: 24px; height: 24px; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; background: #101012; color: transparent; font-size: .72rem; font-style: normal; font-weight: 950; box-shadow: 0 3px 10px rgba(0,0,0,.3); }
.theme-choice:has(input:checked) .theme-choice-check { border-color: var(--portal-accent, var(--yellow)); background: var(--portal-accent, var(--yellow)); color: #111; }
.theme-preview { position: relative; display: block; height: 102px; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; box-shadow: inset 0 1px rgba(255,255,255,.08); }
.theme-preview > i { position: absolute; display: block; }
.theme-preview-dark { background: radial-gradient(circle at 80% 0, #3b1519, transparent 52%), #09090a; }
.theme-preview-light { border-color: #d7d9df; background: radial-gradient(circle at 80% 0, #fee8e9, transparent 52%), #f4f5f7; }
.theme-preview-bar { inset: 0 0 auto; height: 20px; border-bottom: 1px solid rgba(127,127,127,.2); background: rgba(16,16,18,.92); }
.theme-preview-light .theme-preview-bar { background: rgba(255,255,255,.94); }
.theme-preview-card { top: 31px; right: 11px; left: 11px; height: 24px; border: 1px solid #39393f; border-radius: 7px; background: #18181b; }
.theme-preview-card.is-short { top: 62px; right: 42%; height: 19px; }
.theme-preview-light .theme-preview-card { border-color: #d7d9df; background: #fff; box-shadow: 0 5px 13px rgba(38,43,55,.08); }
.theme-preview-nav { right: 0; bottom: 0; left: 0; height: 9px; background: var(--portal-accent, var(--yellow)); opacity: .86; }
.theme-preview-system { display: grid; grid-template-columns: 1fr 1fr; background: transparent; }
.theme-preview-half { inset-block: 0; width: 50%; }
.theme-preview-half.is-dark { left: 0; background: radial-gradient(circle at 100% 0, #3b1519, transparent 48%), #09090a; }
.theme-preview-half.is-light { right: 0; background: radial-gradient(circle at 0 0, #fee8e9, transparent 48%), #f4f5f7; }
.theme-preview-device { top: 21px; left: 50%; width: 37px; height: 59px; border: 3px solid #777b83; border-radius: 9px; background: linear-gradient(90deg, #151517 0 50%, #fff 50%); box-shadow: 0 7px 18px rgba(0,0,0,.28); transform: translateX(-50%); }
.theme-save-status { min-height: 1.25rem; margin: -.2rem 0 0; color: var(--muted); font-size: .7rem; font-weight: 700; }
.theme-settings-card.is-saving .theme-save-status::before { display: inline-block; width: .62rem; height: .62rem; margin-right: .4rem; border: 2px solid color-mix(in srgb, var(--portal-accent, var(--yellow)), transparent 68%); border-top-color: var(--portal-accent, var(--yellow)); border-radius: 50%; content: ""; animation: theme-saving-spin .7s linear infinite; }
@keyframes theme-saving-spin { to { transform: rotate(360deg); } }
.font-settings-card { margin-bottom: 1rem; gap: 1rem; overflow: hidden; }
.font-settings-heading h2 { margin: .25rem 0 .45rem; font-size: clamp(1.35rem, 5vw, 1.85rem); }
.font-settings-heading p { max-width: 42rem; margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.55; }
.font-scale-control { display: grid; grid-template-columns: 68px minmax(0, 1fr) 68px; align-items: stretch; gap: .7rem; }
.font-scale-button { display: grid; min-width: 0; min-height: 68px; place-items: center; padding: 0; border: 1px solid color-mix(in srgb, var(--portal-accent, var(--yellow)), transparent 46%); border-radius: 17px; background: color-mix(in srgb, var(--portal-soft, #242015), #111 32%); color: var(--portal-accent, var(--yellow)); font-size: 2rem; font-weight: 950; line-height: 1; cursor: pointer; transition: transform .18s ease, border-color .18s ease, background .18s ease, opacity .18s ease; }
.font-scale-button:hover:not(:disabled),.font-scale-button:focus-visible:not(:disabled) { border-color: var(--portal-accent, var(--yellow)); transform: translateY(-1px); }
.font-scale-button:focus-visible { outline: 3px solid color-mix(in srgb, var(--portal-accent, var(--yellow)), transparent 58%); outline-offset: 2px; }
.font-scale-button:disabled { opacity: .38; cursor: not-allowed; }
.font-scale-readout { display: grid; min-width: 0; min-height: 68px; align-content: center; justify-items: center; padding: .7rem 1rem; border: 1px solid #35353a; border-radius: 17px; background: #101012; text-align: center; }
.font-scale-readout:focus-visible { outline: 3px solid color-mix(in srgb, var(--portal-accent, var(--yellow)), transparent 58%); outline-offset: 2px; }
.font-scale-readout strong,.font-scale-readout small { display: block; }
.font-scale-readout strong { color: var(--text); font-size: .83rem; letter-spacing: .08em; }
.font-scale-readout small { margin-top: .12rem; color: var(--muted); font-variant-numeric: tabular-nums; font-size: .66rem; font-weight: 800; }
.font-scale-meter { display: grid; grid-template-columns: repeat(3, minmax(24px, 1fr)); width: min(100%, 180px); gap: .32rem; margin-top: .55rem; }
.font-scale-meter i { height: 5px; border-radius: 999px; background: #3a3a40; transition: background .18s ease, box-shadow .18s ease; }
.font-scale-meter i.is-active { background: var(--portal-accent, var(--yellow)); box-shadow: 0 0 0 1px color-mix(in srgb, var(--portal-accent, var(--yellow)), transparent 62%); }
.font-scale-preview { display: grid; gap: .18rem; padding: 1rem 1.1rem; border: 1px solid #d3d7dc; border-radius: 17px; background: linear-gradient(145deg, #fff, #f2f4f6); color: #111419; box-shadow: inset 0 1px #fff, 0 9px 24px rgba(24, 30, 39, .1); }
.font-scale-preview small,.font-scale-preview p,.font-scale-preview strong { display: block; margin: 0; color: #111419; overflow-wrap: anywhere; }
.font-scale-preview small { color: #4b535e; font-size: .68rem; font-weight: 750; }
.font-scale-preview p { font-size: .9rem; line-height: 1.45; }
.font-scale-preview strong { margin-top: .16rem; font-size: 1.28rem; line-height: 1.08; letter-spacing: -.02em; }
.font-save-status { min-height: 1.25rem; margin: -.2rem 0 0; color: var(--muted); font-size: .7rem; font-weight: 700; }
.font-settings-card.is-saving .font-save-status::before { display: inline-block; width: .62rem; height: .62rem; margin-right: .4rem; border: 2px solid color-mix(in srgb, var(--portal-accent, var(--yellow)), transparent 68%); border-top-color: var(--portal-accent, var(--yellow)); border-radius: 50%; content: ""; animation: theme-saving-spin .7s linear infinite; }
@media (max-width: 680px) {
  .theme-settings-heading { display: grid; }
  .theme-active-badge { justify-self: start; }
  .theme-choice-grid { grid-template-columns: 1fr; }
  .theme-choice { grid-template-columns: 112px minmax(0, 1fr); grid-template-rows: auto; align-items: center; min-height: 112px; }
  .theme-preview { height: 88px; }
}
@media (max-width: 380px) {
  .theme-choice { grid-template-columns: 92px minmax(0, 1fr); }
  .font-scale-control { grid-template-columns: 60px minmax(0, 1fr) 60px; gap: .5rem; }
  .font-scale-button { min-height: 64px; }
}
.edit-images { display: grid; gap: .8rem; }
.edit-images > div { display: grid; gap: .6rem; padding: .8rem; border: 1px solid var(--line); border-radius: 12px; background: #101012; }
.edit-images img { width: 100%; aspect-ratio: 4/3; border-radius: 10px; object-fit: cover; }

.toast { position: fixed; right: 1rem; bottom: calc(86px + env(safe-area-inset-bottom)); left: 1rem; z-index: 120; max-width: 520px; margin: auto; padding: .85rem 1rem; border: 1px solid var(--line); border-radius: 12px; background: #242427; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transform: translateY(10px); transition: .2s; }
.toast.show { opacity: 1; transform: translateY(0); }
.toast.error { border-color: #7c3037; color: #ffb1b6; }
.toast.success { border-color: #307651; color: #9aefc0; }

@media (min-width: 640px) {
  .app-shell { padding-right: 1.5rem; padding-left: 1.5rem; }
  .dashboard-grid { grid-template-columns: 1fr 1fr; }
  .form-grid { grid-template-columns: 1fr 1fr; }
  .form-grid-three { grid-template-columns: repeat(3,1fr); }
  .edit-images { grid-template-columns: 1fr 1fr; }
  .exercise-panel { padding: 1.35rem; }
  .rest-timer { bottom: 1rem; }
  .bottom-nav { right: auto; top: 50%; bottom: auto; left: 1rem; width: 72px; min-height: 380px; grid-template-columns: 1fr; padding: .4rem; transform: translateY(-50%); border: 1px solid var(--line); border-radius: 18px; }
  body:has(.bottom-nav) .app-shell { padding-left: 5.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto!important; transition: none!important; animation: none!important; }
}

/* MakoSet SaaS */
.brand-logo { width: 42px; height: 42px; border-radius: 12px; box-shadow: 0 0 24px rgba(227,34,43,.22); }
.brand-word strong, .brand-word small { display: block; line-height: 1; }
.brand-word strong { font-size: .96rem; letter-spacing: .12em; }
.brand-word strong span, .login-brand strong span { color: var(--gym-accent); }
.brand-word small { overflow: hidden; max-width: 42vw; margin-top: .32rem; color: #97979e; font-size: .55rem; text-overflow: ellipsis; white-space: nowrap; letter-spacing: .1em; }
.makoset-login-card { position: relative; overflow: hidden; padding-top: 1.2rem; }
.login-brand { display: grid; grid-template-columns: minmax(110px, 42%) 1fr; align-items: center; min-height: 150px; margin: -1.2rem -1.25rem 1rem; padding: .5rem 1.25rem 0; background: radial-gradient(circle at 25% 70%, rgba(227,34,43,.24), transparent 48%); }
.login-mascot { align-self: end; width: 100%; max-height: 175px; object-fit: contain; object-position: bottom; }
.login-brand > div { min-width: 0; }
.login-brand > div img { width: 48px; height: 48px; margin-bottom: .65rem; border-radius: 13px; }
.login-brand strong { display: block; font-size: clamp(1.25rem, 7vw, 1.8rem); font-weight: 1000; letter-spacing: .08em; }
.login-brand small { display: block; margin-top: .35rem; font-size: .52rem; letter-spacing: .13em; }
.button-row { display: flex; flex-wrap: wrap; gap: .6rem; }
.button-row > * { flex: 1 1 145px; }
.account-context-card { margin-bottom: 1rem; border-color: #3d2628; background: linear-gradient(145deg, #211416, var(--surface) 65%); }
.program-exercise.is-readonly { grid-template-columns: 76px 1fr; }

.install-cta { position: relative; display: grid; grid-template-columns: 56px minmax(0,1fr); align-items: center; gap: .8rem; margin: 0 0 1rem; padding: 1rem 3.25rem 1rem 1rem; border: 1px solid #514124; border-radius: 18px; background: linear-gradient(145deg, #251e10, var(--surface) 68%); box-shadow: var(--shadow); }
.install-cta[hidden] { display: none; }
.install-cta > img { width: 56px; height: 56px; border-radius: 15px; box-shadow: 0 8px 22px rgba(227,34,43,.2); }
.install-cta > div { min-width: 0; }
.install-cta strong, .install-cta small { display: block; }
.install-cta strong { margin: .2rem 0; font-size: 1rem; }
.install-cta small { color: #c8c0a5; font-size: .72rem; line-height: 1.35; }
.install-cta .button { grid-column: 1 / -1; width: 100%; margin-top: .15rem; }
.install-cta-close { position: absolute; top: .55rem; right: .55rem; display: grid; width: 44px; height: 44px; place-items: center; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #a8a298; font-size: 1.4rem; cursor: pointer; }
.coupon-limit-grid { display: grid; gap: .8rem; padding: 1rem; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.025); }
.coupon-limit-grid[hidden], .coupon-limit-grid label[hidden] { display: none; }
.coupon-limit-grid output { float: right; min-width: 3rem; padding: .2rem .5rem; border-radius: 9px; background: var(--red); color: #fff; text-align: center; font-weight: 900; }
.coupon-limit-grid input[type="range"] { width: 100%; margin-top: .65rem; accent-color: var(--red); }
.performance-overview, .report-panel, .client-report-entry { margin: 1rem 0; padding: 1.15rem; border: 1px solid #2f3034; border-radius: 22px; background: radial-gradient(circle at 100% 0, rgba(227,34,43,.1), transparent 38%), linear-gradient(145deg,#191a1d,#101113); box-shadow: 0 18px 48px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.035); }
.performance-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .7rem; }
.performance-kpis article { min-width: 0; padding: 1rem; border: 1px solid #303136; border-radius: 17px; background: linear-gradient(155deg,#222327,#151619); }
.performance-kpis article.needs-attention { border-color: #715923; background: linear-gradient(155deg,#2b2415,#171512); }
.performance-kpis span,.performance-kpis small { display:block; color:#aaa; font-size:.68rem; line-height:1.35; }
.performance-kpis strong { display:block; margin:.28rem 0; color:#fff; font-size:1.8rem; }
.metric-disclaimer { margin:.85rem 0 0; color:#8f9095; font-size:.7rem; line-height:1.5; }
.trainer-performance-list { display:grid; gap:.65rem; }
.trainer-performance-list article { display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:.7rem; padding:.85rem; border:1px solid #2e3034; border-radius:16px; background:rgba(255,255,255,.025); }
.trainer-performance-list article>div:nth-child(2)>strong,.trainer-performance-list article>div:nth-child(2)>span,.trainer-performance-list article>div:nth-child(2)>small { display:block; }
.trainer-performance-list article>div:nth-child(2)>span { color:#ddd; font-size:.78rem; }
.trainer-performance-list article>div:nth-child(2)>small { color:#8d8f94; font-size:.68rem; }
.trainer-performance-list article>b { min-width:58px; padding:.5rem; border-radius:12px; background:#202125; text-align:center; font-size:1.25rem; }
.trainer-performance-list article>b.is-warning { color:var(--yellow); background:#2b2415; }
.trainer-performance-list article>b small { display:block; color:#929398; font-size:.55rem; font-weight:600; }
.client-report-entry { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.client-report-entry h2 { margin:.2rem 0; }
.client-report-entry p { margin:0; color:#aaa; font-size:.78rem; }
.weekly-report-bars { display:grid; gap:.8rem; margin-top:1rem; }
.weekly-report-bars article { display:grid; grid-template-columns:minmax(120px,180px) 1fr; gap:.8rem; align-items:center; }
.weekly-report-bars article strong,.weekly-report-bars article small { display:block; }
.weekly-report-bars article small { color:#8f9095; font-size:.66rem; }
.weekly-report-bars article>span { display:flex; height:13px; overflow:hidden; border-radius:999px; background:#292a2e; }
.weekly-report-bars article>span i { background:linear-gradient(90deg,#16884b,#42d67d); }
.weekly-report-bars article>span b { background:linear-gradient(90deg,#8d681b,#e0b63e); }
.trend-report-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; margin-top:1rem; }
.trend-report-grid article { padding:1rem; border:1px solid #303136; border-radius:16px; background:#17181b; }
.trend-report-grid strong,.trend-report-grid span,.trend-report-grid small { display:block; }
.trend-report-grid span { margin:.35rem 0; color:#fff; font-size:1.4rem; font-weight:900; }
.trend-report-grid small { color:#56d689; }
.intelligence-section { display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(1.2rem,4vw,4rem); align-items:center; }
.intelligence-copy em { color:var(--red); font-style:normal; }
.intelligence-points { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1.2rem; }
.intelligence-points span { padding:.48rem .72rem; border:1px solid #3b3c41; border-radius:999px; background:#191a1d; color:#dedfe2; font-size:.75rem; }
.intelligence-dashboard { position:relative; padding:1.25rem; border:1px solid #3a3b40; border-radius:26px; background:radial-gradient(circle at 80% 0,rgba(227,34,43,.16),transparent 42%),linear-gradient(150deg,#202126,#0e0f11); box-shadow:0 28px 80px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.06); transform:perspective(900px) rotateY(-3deg); }
.intelligence-dashboard header { display:flex; justify-content:space-between; color:#929398; font-size:.65rem; letter-spacing:.12em; }
.intelligence-dashboard header b { color:var(--red); }
.intelligence-dashboard>article { margin-top:1rem; padding:.9rem; border:1px solid #303136; border-radius:16px; background:rgba(255,255,255,.025); }
.intelligence-dashboard article small,.intelligence-dashboard article strong { display:block; }
.intelligence-dashboard article strong { margin:.2rem 0 .5rem; font-size:1.8rem; }
.intelligence-dashboard article strong em { color:#7f8186; font-size:.9rem; font-style:normal; }
.intelligence-dashboard article i { display:block; height:8px; border-radius:99px; background:#292a2e; overflow:hidden; }
.intelligence-dashboard article i b { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--red),#ff6a52); }
.intelligence-dashboard>div { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; margin-top:.7rem; }
.intelligence-dashboard>div span { padding:.8rem; border-radius:14px; background:#191a1d; }
.intelligence-dashboard>div b,.intelligence-dashboard>div small { display:block; }
.intelligence-dashboard>div b { font-size:1.35rem; }
.intelligence-dashboard>div small { color:#8f9095; }
.intelligence-dashboard>div .attention b { color:var(--yellow); }
.intelligence-dashboard footer { margin-top:.9rem; color:#86878b; font-size:.67rem; line-height:1.45; }
@media(max-width:760px){.performance-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.client-report-entry{display:grid}.trend-report-grid{grid-template-columns:1fr}.weekly-report-bars article{grid-template-columns:1fr}.intelligence-section{grid-template-columns:1fr}.intelligence-dashboard{transform:none}}
.demo-control-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; margin:1rem 0; }
.demo-control-grid article,.danger-zone { padding:1.1rem; border:1px solid #303136; border-radius:20px; background:linear-gradient(145deg,#1c1d20,#111214); box-shadow:0 16px 40px rgba(0,0,0,.25); }
.demo-control-grid h2 { margin:.25rem 0; font-size:1.05rem; }
.demo-control-grid p,.danger-zone p { color:#929398; font-size:.75rem; }
.demo-print-sheet { margin:1rem 0; padding:1.2rem; border:1px solid #33343a; border-radius:22px; background:#111214; }
.demo-print-sheet>header { display:grid; grid-template-columns:auto 1fr; gap:.2rem 1rem; padding-bottom:1rem; border-bottom:1px solid #34353a; }
.demo-print-sheet>header strong { color:var(--red); font-size:1.4rem; }
.demo-print-sheet>header span { align-self:center; font-weight:900; }
.demo-print-sheet>header small { grid-column:1/-1; color:#aaa; }
.demo-print-sheet h2 { margin:1.2rem 0 .5rem; color:#fff; font-size:1rem; }
.demo-print-sheet h2 small { color:#777; font-size:.65rem; text-transform:uppercase; }
.demo-print-sheet article { display:grid; grid-template-columns:minmax(0,1fr) minmax(120px,.7fr) minmax(150px,.8fr); gap:.65rem; align-items:center; padding:.65rem .75rem; border-top:1px solid #27282c; }
.demo-print-sheet article div strong,.demo-print-sheet article div span { display:block; }
.demo-print-sheet article div span { color:#8e9095; font-size:.68rem; }
.demo-print-sheet code { padding:.42rem .55rem; border-radius:9px; background:#1d1e22; color:#f0f0f0; font-size:.72rem; overflow-wrap:anywhere; }
.danger-zone { margin-top:1rem; border-color:#583034; }
@media(max-width:760px){.demo-control-grid{grid-template-columns:1fr}.demo-print-sheet article{grid-template-columns:1fr}.demo-print-sheet code{display:block}}
@media print{body{background:#fff!important;color:#111!important}.no-print,.topbar,.bottom-nav,.toast{display:none!important}.app-shell{max-width:none!important;padding:0!important}.demo-print-sheet{margin:0;border:0;background:#fff;color:#111}.demo-print-sheet article{break-inside:avoid;border-color:#ddd}.demo-print-sheet code{background:#f2f2f2;color:#111}.demo-print-sheet h2,.demo-print-sheet>header span{color:#111}.demo-print-sheet>header strong{color:#c00}}

.onboarding { width: min(calc(100% - 1.25rem), 480px); max-height: calc(100dvh - 1.25rem); margin: auto; overflow-x: hidden; padding: 0; border: 1px solid #45454b; border-radius: 24px; background: #111113; color: var(--text); box-shadow: 0 30px 90px rgba(0,0,0,.75); }
.onboarding::backdrop { background: rgba(0,0,0,.82); backdrop-filter: blur(5px); }
.onboarding-progress { position: sticky; top: 0; z-index: 2; height: 5px; background: #303034; }
.onboarding-progress span { display: block; width: 33.333%; height: 100%; background: linear-gradient(90deg, var(--gym-accent), #ff5963); transition: width .22s ease; }
.onboarding-close { position: absolute; top: .75rem; right: .75rem; z-index: 3; display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: rgba(9,9,10,.8); color: white; font-size: 1.5rem; cursor: pointer; }
.onboarding [hidden] { display: none !important; }
.onboarding-step { min-height: 355px; padding: 2.3rem 1.25rem 1rem; animation: guide-in .2s ease; }
.onboarding-step h2 { margin-bottom: .8rem; font-size: clamp(1.7rem, 8vw, 2.3rem); }
.onboarding-step h2:focus { outline: none; }
.guide-install-jump { margin-top: 1rem; }
.onboarding-step p { color: #b8b8bd; }
.onboarding-mascot { width: 190px; height: 178px; margin: -1.4rem auto .5rem; object-fit: contain; filter: drop-shadow(0 18px 30px rgba(0,0,0,.45)); }
.guide-demo { display: grid; grid-template-columns: 1fr 1fr auto; align-items: center; gap: .55rem; margin: 1rem 0 2rem; }
.guide-demo > div { display: grid; grid-template-columns: 30px 1fr 30px; align-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #0b0b0d; text-align: center; }
.guide-demo b { display: grid; min-height: 46px; place-items: center; background: var(--surface-2); color: var(--yellow); }
.guide-demo strong { font-size: 1.25rem; }
.guide-demo small { grid-column: 1 / -1; padding: .3rem; border-top: 1px solid var(--line); font-size: .55rem; }
.guide-demo > span { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 12px; background: var(--green); color: #071b10; font-size: 1.5rem; font-weight: 1000; }
.install-mark { width: 100px; height: 100px; margin: .3rem auto 1.4rem; border-radius: 25px; box-shadow: 0 18px 45px rgba(227,34,43,.2); }
.install-status { min-height: 2.8rem; margin: .5rem 0; color: var(--yellow); font-size: .82rem; }
.onboarding-actions { display: flex; gap: .55rem; padding: .8rem 1.25rem; border-top: 1px solid var(--line); }
.onboarding-actions .button { flex: 1; }
.onboarding-skip { display: block; width: 100%; min-height: 44px; border: 0; background: transparent; color: #8f8f96; text-decoration: underline; cursor: pointer; }
@keyframes guide-in { from { opacity: 0; transform: translateX(10px); } }

.invite-auth-card .invite-logo, .invite-logo { width: 72px; height: 72px; margin-bottom: 1.2rem; border-radius: 18px; }
.share-invite { display: grid; gap: .8rem; margin-bottom: 1rem; padding: 1.1rem; border: 1px solid #316f4f; border-radius: 18px; background: linear-gradient(145deg, #10281c, var(--surface)); }
.share-invite h2, .share-invite p { margin: 0; }
.member-invite-card, .gym-branding-card, .member-list-section, .platform-create-card, .platform-gym-list { margin-bottom: 1rem; }
.member-list { display: grid; gap: .55rem; }
.member-card { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; align-items: center; gap: .7rem; padding: .75rem; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.member-avatar { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 13px; background: #301315; color: #ff7a82; font-size: 1.2rem; font-weight: 1000; }
.member-card strong, .member-card span, .member-card small { display: block; }
.member-card span { color: #c1c1c6; font-size: .76rem; }
.member-card small { font-size: .68rem; }
.pending-invite { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem 0; border-top: 1px solid var(--line); }
.pending-invite span { color: var(--muted); font-size: .75rem; text-align: right; }

.platform-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: .55rem; margin-bottom: 1rem; }
.platform-stats article { padding: .9rem .45rem; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); text-align: center; }
.platform-stats strong, .platform-stats span { display: block; }
.platform-stats strong { color: var(--yellow); font-size: 1.5rem; }
.platform-stats span { color: var(--muted); font-size: .67rem; }
.platform-ai-scan-ledger { padding:1rem; border:1px solid var(--line); border-radius:20px; background:var(--surface); box-shadow:0 18px 45px rgba(0,0,0,.2); }
.platform-ai-scan-privacy { display:flex; gap:.55rem; align-items:flex-start; margin:.2rem 0 1rem; padding:.7rem .8rem; border:1px solid color-mix(in srgb,var(--portal-accent),transparent 70%); border-radius:13px; background:color-mix(in srgb,var(--portal-soft),transparent 28%); color:var(--muted); font-size:.72rem; line-height:1.45; }
.platform-ai-scan-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:15px; background:var(--surface-2); }
.platform-ai-scan-table-wrap:focus-visible { outline:3px solid color-mix(in srgb,var(--portal-accent),transparent 35%); outline-offset:3px; }
.platform-ai-scan-table { width:100%; min-width:760px; border-collapse:collapse; font-size:.75rem; }
.platform-ai-scan-table th { padding:.7rem .75rem; border-bottom:1px solid var(--line); color:var(--muted); font-size:.62rem; letter-spacing:.08em; text-align:left; text-transform:uppercase; }
.platform-ai-scan-table td { padding:.78rem .75rem; border-bottom:1px solid var(--line); vertical-align:middle; }
.platform-ai-scan-table tr:last-child td { border-bottom:0; }
.platform-ai-scan-table td > strong,.platform-ai-scan-table td > small { display:block; }
.platform-ai-scan-table td > strong { color:var(--text); font-size:.78rem; }
.platform-ai-scan-table td > small { margin-top:.18rem; color:var(--muted); font-size:.63rem; }
.platform-ai-scan-table td:last-child > strong { color:var(--yellow); font-variant-numeric:tabular-nums; }
.platform-ai-scan-pagination { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:.65rem; align-items:center; margin-top:.85rem; }
.platform-ai-scan-pagination > strong { color:var(--muted); font-size:.72rem; text-align:center; }
.platform-ai-scan-pagination .is-disabled { opacity:.4; pointer-events:none; }
.credential-list { display: grid; gap: .35rem; margin: 0; }
.credential-list div { display: grid; grid-template-columns: 115px minmax(0,1fr); gap: .6rem; padding: .55rem; border-radius: 9px; background: rgba(0,0,0,.24); }
.credential-list dt { color: var(--muted); font-size: .72rem; }
.credential-list dd { overflow-wrap: anywhere; margin: 0; font-weight: 800; }
.status-pill { padding: .3rem .55rem; border: 1px solid #725d25; border-radius: 99px; color: var(--yellow); font-size: .65rem; font-weight: 900; text-transform: uppercase; }
.status-pill.is-active { border-color: #2c7350; color: #87e5b2; }
.platform-coupon-entry { margin-bottom: 1rem; border-color: #654e21; background: linear-gradient(145deg,#241f12,var(--surface)); }
.coupon-share-card { border-color: #438a5e; box-shadow: 0 20px 54px #0006; }
.coupon-copy-box { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .75rem; padding: .8rem; border: 1px solid #765d23; border-radius: 14px; background: #1e1a0f; }
.coupon-copy-box span,.coupon-copy-box strong { display: block; }
.coupon-copy-box span { color: var(--yellow); font-size: .62rem; font-weight: 950; letter-spacing: .12em; }
.coupon-copy-box strong { margin-top: .25rem; overflow-wrap: anywhere; color: #fff; font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size: clamp(1rem,4vw,1.3rem); letter-spacing: .055em; }
.coupon-message-preview { display: grid; gap: .45rem; color: #d9d9dd; font-size: .74rem; font-weight: 850; }
.coupon-message-preview textarea { min-height: 220px; font-weight: 650; line-height: 1.55; }
.platform-coupon-card { align-items: start; }
.platform-coupon-card .status-pill { align-self: center; }
.platform-coupon-actions { display: flex; grid-column: 2 / -1; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; }
.platform-coupon-revoke { margin: 0; }
.coupon-redeem-shell { max-width: 980px; }
.coupon-redeem-card { max-width: 600px; }
.coupon-code-label input { border-color: #765d23; background: #1e1a0f; color: var(--yellow); font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size: clamp(.9rem,3.5vw,1.12rem); font-weight: 950; letter-spacing: .055em; text-transform: uppercase; }
.coupon-account-fields { display: grid; gap: .8rem; }
.coupon-account-warning,.coupon-login-notice { margin-bottom: 1rem; padding: 1rem; border: 1px solid #765d23; border-radius: 14px; background: #211b0f; }
.coupon-account-warning strong,.coupon-account-warning p,.coupon-login-notice strong,.coupon-login-notice span { display: block; }
.coupon-account-warning p { margin: .35rem 0 0; color: var(--muted); }
.coupon-login-notice span { margin-top: .25rem; color: var(--muted); font-size: .75rem; }
.login-registration-card { display:grid; gap:.55rem; margin-top:1rem; padding:1rem; border:1px solid #765d23; border-radius:16px; background:linear-gradient(145deg,#211b0f,#141416); }
.login-registration-card span { color:var(--yellow); font-size:.62rem; font-weight:950; letter-spacing:.12em; }
.login-registration-card strong { font-size:1.05rem; }
.login-registration-card p,.login-registration-card small { margin:0; color:#bdbdc3; line-height:1.45; }
.login-registration-card small a { color:#fff; font-weight:850; }

@media (max-width: 390px) {
  .auth-page .app-shell { min-height: 100dvh; padding: .6rem; place-items: start center; }
  .auth-card { padding-right: 1rem; padding-left: 1rem; border-radius: 19px; }
  .login-brand { margin-right: -1rem; margin-left: -1rem; padding-right: 1rem; padding-left: 1rem; }
  .member-card { grid-template-columns: 42px minmax(0,1fr); }
  .member-card > form, .member-card > .status-pill { grid-column: 1 / -1; }
  .platform-gym-card .status-pill { justify-self: start; }
  .platform-coupon-card .status-pill { grid-column: 1 / -1; justify-self: start; }
  .platform-coupon-actions { grid-column: 1 / -1; justify-content: stretch; }
  .platform-coupon-actions .button,.platform-coupon-actions form { width: 100%; }
  .coupon-copy-box { grid-template-columns: 1fr; }
  .coupon-copy-box .button { width: 100%; }
  .onboarding-step { min-height: 330px; }
}

@media (max-width: 720px) {
  .platform-ai-scan-ledger { padding:.78rem; border-radius:17px; }
  .platform-ai-scan-table-wrap { overflow:visible; border:0; background:transparent; }
  .platform-ai-scan-table { min-width:0; }
  .platform-ai-scan-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .platform-ai-scan-table,.platform-ai-scan-table tbody,.platform-ai-scan-table tr,.platform-ai-scan-table td { display:block; width:100%; }
  .platform-ai-scan-table tbody { display:grid; gap:.65rem; }
  .platform-ai-scan-table tr { overflow:hidden; border:1px solid var(--line); border-radius:14px; background:var(--surface-2); }
  .platform-ai-scan-table td { display:grid; grid-template-columns:minmax(95px,.72fr) minmax(0,1.28fr); gap:.65rem; align-items:center; padding:.62rem .7rem; }
  .platform-ai-scan-table td::before { content:attr(data-label); color:var(--muted); font-size:.58rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
  .platform-ai-scan-table td > strong,.platform-ai-scan-table td > small,.platform-ai-scan-table td > .status-pill { grid-column:2; }
  .platform-ai-scan-table td > small { margin-top:-.45rem; }
  .platform-ai-scan-pagination { grid-template-columns:1fr 1fr; }
  .platform-ai-scan-pagination > strong { grid-column:1 / -1; grid-row:1; }
  .platform-ai-scan-pagination .button { grid-row:2; }
}

/* MakoSet 3 aree: sito commerciale e portali distinti */
.portal-member { --portal-accent:#19c7df; --portal-accent-2:#087fae; --portal-soft:#0c2730; }
.portal-trainer { --portal-accent:#a855f7; --portal-accent-2:#db2777; --portal-soft:#251332; }
.portal-owner { --portal-accent:#ff4d45; --portal-accent-2:#f59e0b; --portal-soft:#301718; }
.portal-platform { --portal-accent:#f1c94b; --portal-accent-2:#e3222b; --portal-soft:#292313; }
.portal-member,.portal-owner,.portal-platform,body.portal-trainer:not(.public-role-page):not(.role-login-page) { --gym-accent:var(--portal-accent); background:radial-gradient(circle at 50% -20%,var(--portal-soft) 0,var(--bg) 36rem); }
.portal-member .role-pill,.portal-trainer .role-pill,.portal-owner .role-pill,.portal-platform .role-pill { border-color:color-mix(in srgb,var(--portal-accent),transparent 55%); background:color-mix(in srgb,var(--portal-soft),#080809 25%); color:var(--portal-accent); }
.portal-member .role-intro,.portal-trainer .role-intro,.portal-owner .role-intro,.portal-platform .role-intro { border-color:color-mix(in srgb,var(--portal-accent),transparent 72%); background:linear-gradient(135deg,color-mix(in srgb,var(--portal-soft),transparent 10%),rgba(17,17,19,.92)); box-shadow:inset 4px 0 0 var(--portal-accent); }
.portal-member .role-intro-icon,.portal-trainer .role-intro-icon,.portal-owner .role-intro-icon,.portal-platform .role-intro-icon { background:linear-gradient(145deg,var(--portal-accent),var(--portal-accent-2)); box-shadow:0 8px 25px color-mix(in srgb,var(--portal-accent),transparent 65%); }
.portal-member .next-action-card,.portal-trainer .next-action-card,.portal-owner .next-action-card { border-color:color-mix(in srgb,var(--portal-accent),transparent 68%); background:linear-gradient(145deg,color-mix(in srgb,var(--portal-soft),#151517 25%),#121214 68%); }
.portal-member .bottom-nav a.active span,.portal-trainer .bottom-nav a.active span,.portal-owner .bottom-nav a.active span,.portal-platform .bottom-nav a.active span { color:var(--portal-accent); }

.public-page .app-shell,.page-accesso .app-shell,.public-role-page .app-shell { width:min(100%,1240px); padding:1.15rem clamp(1rem,3vw,2rem) 3rem; }
.public-page { background:radial-gradient(circle at 75% -10%,#241216 0,#09090a 32rem); }
.public-topbar { position:relative; z-index:10; min-height:72px; padding:.6rem 0 1rem; }
.public-topbar nav { gap:clamp(.65rem,1.7vw,1.35rem); }
.public-topbar nav > a:not(.button) { transition:color .2s ease; }
.public-topbar nav > a:not(.button):hover { color:#fff; }
.public-hero-new { grid-template-columns:minmax(0,1fr) minmax(420px,.88fr); gap:clamp(2rem,5vw,5rem); min-height:780px; padding:4rem 0 6rem; }
.public-hero-new h1 em { color:transparent; background:linear-gradient(90deg,#ff4d45,#f1c94b); -webkit-background-clip:text; background-clip:text; font-style:normal; }
.public-hero-copy small { margin-top:1rem!important; line-height:1.6; }
.hero-role-stack { position:relative; display:grid; min-height:600px; }
.hero-role { position:absolute; display:grid; grid-template-columns:112px 1fr; grid-template-rows:auto auto; align-items:center; gap:0 1rem; overflow:hidden; width:82%; min-height:155px; padding:.75rem; border:1px solid rgba(255,255,255,.14); border-radius:26px; background:#171719; box-shadow:0 30px 70px #000a; transition:transform .25s ease,border-color .25s ease; }
.hero-role:hover { z-index:5; transform:translateY(-6px) rotate(0deg)!important; border-color:var(--role-accent); }
.hero-role img { grid-row:1 / 3; width:112px; height:130px; border-radius:19px; object-fit:cover; }
.hero-role span { align-self:end; color:var(--role-accent); font-size:.66rem; font-weight:950; letter-spacing:.13em; }
.hero-role strong { align-self:start; font-size:1.3rem; }
.hero-role:nth-child(1) { top:2%; left:0; transform:rotate(-4deg); }
.hero-role:nth-child(2) { top:36%; right:0; transform:rotate(3deg); }
.hero-role:nth-child(3) { bottom:0; left:5%; transform:rotate(-2deg); }
.role-client { --role-accent:#22d3ee; --role-accent-2:#0284c7; --role-bg:#092631; }
.role-trainer { --role-accent:#c084fc; --role-accent-2:#db2777; --role-bg:#2b1538; }
.role-gym { --role-accent:#ff624f; --role-accent-2:#f59e0b; --role-bg:#341817; }
.trust-strip { display:flex; justify-content:center; flex-wrap:wrap; gap:.7rem 2rem; padding:1.1rem; border-block:1px solid var(--line); color:#c5c5ca; font-size:.75rem; font-weight:800; letter-spacing:.03em; }
.trust-strip span::before { content:'✓'; margin-right:.5rem; color:var(--yellow); }
.section-lead { max-width:750px; margin:-1rem 0 2.2rem; color:var(--muted); font-size:1.08rem; line-height:1.7; }
.role-showcase-grid { display:grid; gap:1rem; }
.role-showcase { display:grid; grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr); overflow:hidden; border:1px solid color-mix(in srgb,var(--role-accent),transparent 72%); border-radius:28px; background:linear-gradient(135deg,var(--role-bg),#131315 60%); }
.role-showcase:nth-child(even) { grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr); }
.role-showcase:nth-child(even) img { order:2; }
.role-showcase img { width:100%; height:100%; min-height:360px; object-fit:cover; }
.role-showcase > div { align-self:center; padding:clamp(1.4rem,4vw,3.2rem); }
.role-showcase > div > span,.access-choice div > span { color:var(--role-accent); font-size:.7rem; font-weight:950; letter-spacing:.14em; }
.role-showcase h3 { margin:.45rem 0 .7rem; font-size:clamp(2rem,4vw,3.4rem); line-height:.98; }
.role-showcase p { color:#c3c3c8; line-height:1.65; }
.role-showcase ul,.price-card ul { display:grid; gap:.45rem; padding:0; list-style:none; color:#dadade; }
.role-showcase li::before,.price-card li::before { content:'✓'; margin-right:.55rem; color:var(--role-accent,var(--yellow)); }
.role-showcase a { display:inline-block; margin-top:.8rem; color:var(--role-accent); font-weight:900; }
.process-section { overflow:hidden; }
.process-line { display:grid; grid-template-columns:repeat(5,1fr); gap:.7rem; }
.process-line article { position:relative; min-height:220px; padding:1.25rem; border:1px solid var(--line); border-radius:20px; background:linear-gradient(145deg,#1d1d20,#111113); }
.process-line article:not(:last-child)::after { content:'→'; position:absolute; z-index:2; top:29px; right:-17px; display:grid; place-items:center; width:33px; height:33px; border-radius:50%; background:var(--yellow); color:#16120a; font-weight:950; }
.process-line b { display:grid; place-items:center; width:44px; height:44px; margin-bottom:1.2rem; border-radius:13px; background:#2b2620; color:var(--yellow); }
.process-line p,.feature-bento p { color:var(--muted); line-height:1.6; }
.feature-bento { display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; }
.feature-bento article { min-height:240px; padding:1.5rem; border:1px solid var(--line); border-radius:23px; background:radial-gradient(circle at 100% 0,#2a1719,#171719 55%); }
.feature-bento article.wide { grid-column:span 2; }
.feature-bento span { color:var(--yellow); font-size:.68rem; font-weight:950; letter-spacing:.13em; }
.feature-bento h3 { margin:.55rem 0; font-size:1.55rem; }
.feature-bento .feature-progress-check { position:relative; overflow:hidden; border-color:#366f75; background:radial-gradient(circle at 92% 12%,#25464c 0,transparent 32%),linear-gradient(145deg,#172e32,#121517 66%); box-shadow:inset 4px 0 0 #67e8f9,0 24px 55px #0004; }
.feature-bento .feature-progress-check::after { content:"AI"; position:absolute; right:1.2rem; bottom:-.7rem; color:#ffffff0a; font-size:7rem; font-weight:950; letter-spacing:-.08em; pointer-events:none; }
.feature-bento .feature-progress-check span { color:#77e8f3; }
.feature-bento .feature-progress-check p { max-width:720px; }
.feature-bento .feature-progress-check a { position:relative; z-index:1; display:inline-flex; margin-top:.55rem; color:#9ef3fb; font-size:.76rem; font-weight:950; text-decoration:none; }
.feature-bento .feature-progress-check a:hover,.feature-bento .feature-progress-check a:focus-visible { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.clarity-section { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.clarity-section > div > p { color:var(--muted); font-size:1.05rem; line-height:1.7; }
.permission-list { display:grid; gap:.7rem; }
.permission-list article { display:grid; grid-template-columns:48px 1fr; align-items:center; gap:1rem; padding:1rem; border:1px solid var(--line); border-radius:16px; background:var(--surface); }
.permission-list b { display:grid; place-items:center; width:48px; height:48px; border-radius:14px; background:linear-gradient(145deg,var(--red),#961118); }
.permission-list span { color:var(--muted); }
.permission-list strong { display:block; color:#fff; }
.price-card { padding:2rem; }
.price-card ul { min-height:150px; margin:1.25rem 0; }
.pricing-note { display:block; margin-top:1rem; text-align:center; }
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
.faq-grid details { padding:1.2rem; border:1px solid var(--line); border-radius:17px; background:var(--surface); }
.faq-grid summary { cursor:pointer; font-weight:900; }
.faq-grid p { margin:.8rem 0 0; color:var(--muted); line-height:1.6; }
.public-cta-panel { position:relative; overflow:hidden; margin:4rem 0; padding:clamp(2rem,6vw,5rem); border:1px solid #6d292d; border-radius:32px; background:radial-gradient(circle at 80% 0,#4a181c,#1b1113 48%,#121214); text-align:center; }
.public-cta-panel h2 { max-width:760px; margin:.4rem auto 1rem; font-size:clamp(2.2rem,5vw,4.5rem); }
.public-cta-panel p { max-width:720px; margin:0 auto 1.5rem; color:#c7c7cc; }
.final-cta { display:grid; grid-template-columns:220px 1fr; align-items:center; text-align:left; }
.final-cta img { max-height:260px; margin:auto; }
.final-cta h2,.final-cta p { margin-left:0; }
.public-footer-rich { display:grid; grid-template-columns:minmax(220px,2fr) repeat(3,minmax(140px,1fr)); justify-content:stretch; gap:2rem; padding:3rem 0; text-align:left; }
.public-footer-rich > div { display:flex; align-items:flex-start; flex-direction:column; gap:.55rem; }
.public-footer-rich > div > p { max-width:440px; color:var(--muted); }
.public-footer-rich > div > strong { color:#fff; }
.public-footer-rich > small { grid-column:1 / -1; padding-top:1.5rem; border-top:1px solid var(--line); }
.public-footer-brand .public-footer-ai { margin-top:.15rem; color:#aeb0b8; font-size:.82rem; line-height:1.55; }
.public-footer-brand .public-footer-company { margin-top:.35rem; color:#8f9198; font-size:.78rem; line-height:1.55; }
.public-footer-brand .public-footer-company strong { color:#f2f2f4; }
.public-footer-social-label { margin-top:.75rem; }
.public-footer-linkbtn { appearance:none; background:none; border:0; padding:0; color:#fff; font:inherit; text-align:left; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.public-footer-linkbtn:hover,.public-footer-linkbtn:focus-visible { color:var(--yellow); outline:none; }
.cookies-controls { display:flex; flex-wrap:wrap; gap:.65rem; }
.ms-consent { position:fixed; inset:auto 0 0 0; z-index:80; padding:max(.75rem, env(safe-area-inset-bottom)) .75rem .75rem; pointer-events:none; }
.ms-consent-banner { pointer-events:auto; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem; align-items:center; max-width:1100px; margin:0 auto; padding:1rem 1.1rem; border:1px solid #3a3a40; border-radius:18px; background:linear-gradient(160deg,#17171a,#101012); box-shadow:0 18px 48px rgba(0,0,0,.45); }
.ms-consent-copy strong { display:block; color:#fff; font-size:.95rem; }
.ms-consent-copy p { margin:.35rem 0 0; color:#b7b7bd; font-size:.82rem; line-height:1.5; }
.ms-consent-links { margin-top:.45rem!important; }
.ms-consent-links a { color:#f5d56e; }
.ms-consent-actions { display:flex; flex-wrap:wrap; gap:.5rem; justify-content:flex-end; }
.ms-consent-panel { border:0; padding:0; background:transparent; max-width:520px; width:calc(100% - 1.5rem); }
.ms-consent-panel::backdrop { background:rgba(0,0,0,.62); }
.ms-consent-panel-inner { display:grid; gap:.85rem; padding:1.15rem; border:1px solid #3a3a40; border-radius:18px; background:linear-gradient(160deg,#17171a,#101012); color:#d7d7db; }
.ms-consent-panel-inner header { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.ms-consent-panel-inner header strong { color:#fff; }
.ms-consent-option { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:.85rem .9rem; border:1px solid #2f2f34; border-radius:14px; background:#0f0f11; }
.ms-consent-option strong { display:block; color:#fff; font-size:.88rem; }
.ms-consent-option small { display:block; margin-top:.25rem; color:#9a9aa1; font-size:.75rem; line-height:1.45; }
.ms-consent-option input { width:1.15rem; height:1.15rem; margin-top:.15rem; accent-color:var(--red); }

.access-hero { max-width:900px; margin:5rem auto 3rem; text-align:center; }
.access-hero h1 { font-size:clamp(2.6rem,7vw,5.8rem); }
.access-hero p { max-width:650px; margin:auto; color:var(--muted); font-size:1.1rem; }
.access-choice-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.existing-account-entry { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:1.25rem; margin:0 0 1.25rem; padding:1.25rem; border:1px solid #6e2e33; border-radius:22px; background:linear-gradient(135deg,#2b1518,#121214 68%); box-shadow:0 18px 44px #0005; }
.existing-account-entry span { color:#ff8c93; font-size:.68rem; font-weight:950; letter-spacing:.14em; }
.existing-account-entry h2 { margin:.3rem 0; font-size:clamp(1.35rem,3vw,2rem); }
.existing-account-entry p { margin:0; color:#c7c7cc; }
.existing-account-entry .button { min-width:220px; }
.access-choice { overflow:hidden; border:1px solid color-mix(in srgb,var(--role-accent),transparent 70%); border-radius:25px; background:linear-gradient(155deg,var(--role-bg),#121214 60%); transition:transform .22s ease,border-color .22s ease; }
.access-choice:hover { transform:translateY(-7px); border-color:var(--role-accent); }
.access-choice img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.access-choice > div { padding:1.3rem; }
.access-choice h2 { margin:.4rem 0; font-size:1.7rem; }
.access-choice p { min-height:100px; color:var(--muted); }
.access-choice div > strong { color:var(--role-accent); }
.access-client-paths { display:grid; gap:.65rem; margin-top:1rem; }
.access-client-path { display:grid; gap:.22rem; min-height:150px; padding:.9rem; border:1px solid #315d67; border-radius:16px; background:linear-gradient(145deg,#0d2930,#111416); color:#fff; text-decoration:none; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.access-client-path:hover,.access-client-path:focus-visible { transform:translateY(-2px); border-color:#67e8f9; box-shadow:0 12px 30px #062a3388; }
.access-client-path.is-gym { border-color:#5e5130; background:linear-gradient(145deg,#29230f,#141310); }
.access-client-path.is-gym:hover,.access-client-path.is-gym:focus-visible { border-color:#f1c94b; box-shadow:0 12px 30px #2d240788; }
.access-client-path > span { color:#67e8f9!important; font-size:.62rem!important; letter-spacing:.13em!important; }
.access-client-path.is-gym > span { color:#f1c94b!important; }
.access-client-path > strong { color:#fff!important; font-size:1rem; }
.access-client-path > small { color:#b9c7ca; line-height:1.4; }
.access-client-path > b { align-self:end; margin-top:.45rem; color:#8cecf5; font-size:.72rem; }
.access-client-path.is-gym > b { color:#f5d96a; }
.access-client-path i { font-style:normal; }
.access-note { margin:1.8rem auto 4rem; color:var(--muted); text-align:center; }
.access-note a { color:#fff; text-decoration:underline; }

.public-role-page { --gym-accent:var(--role-accent); background:radial-gradient(circle at 75% 0,var(--role-bg) 0,#09090a 35rem); }
.portal-cliente { --role-accent:#22d3ee; --role-accent-2:#0284c7; --role-bg:#092631; }
.portal-trainer.public-role-page,.portal-trainer.role-login-page { --role-accent:#c084fc; --role-accent-2:#db2777; --role-bg:#2b1538; }
.portal-palestra { --role-accent:#ff624f; --role-accent-2:#f59e0b; --role-bg:#341817; }
.role-page-hero { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(2rem,5vw,5rem); min-height:720px; padding:4rem 0; }
.role-page-hero h1 { font-size:clamp(2.7rem,6vw,5.5rem); }
.role-page-hero p { color:#c7c7cc; font-size:1.1rem; line-height:1.7; }
.role-page-hero > div > small { display:block; margin-top:1rem; }
.role-page-hero figure { overflow:hidden; margin:0; border:1px solid color-mix(in srgb,var(--role-accent),transparent 60%); border-radius:30px; background:var(--role-bg); box-shadow:0 35px 90px #0009; }
.role-page-hero figure img { width:100%; min-height:520px; object-fit:cover; }
.role-page-hero figcaption { padding:1rem; color:var(--role-accent); font-size:.75rem; font-weight:900; letter-spacing:.05em; }
.public-role-page .button-primary,.role-login-page .button-primary { border-color:var(--role-accent); background:linear-gradient(135deg,var(--role-accent),var(--role-accent-2)); }
.benefit-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.8rem; }
.benefit-grid article { padding:1.3rem; border:1px solid color-mix(in srgb,var(--role-accent),transparent 77%); border-radius:20px; background:linear-gradient(145deg,var(--role-bg),#141416); }
.benefit-grid article > span { color:var(--role-accent); font-size:.7rem; font-weight:950; }
.benefit-grid p { color:var(--muted); }
.premium-progress-showcase { position:relative; display:grid; grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr); gap:clamp(1.4rem,4vw,4rem); align-items:center; overflow:hidden; padding:clamp(1.3rem,4vw,3.4rem); border:1px solid #306a72; border-radius:32px; background:radial-gradient(circle at 88% 15%,#28535a99,transparent 34%),linear-gradient(145deg,#13272b,#101214 66%); box-shadow:inset 4px 0 0 #67e8f9,0 30px 80px #0007; }
.premium-progress-showcase::before { content:""; position:absolute; inset:-40% auto auto 45%; width:60%; aspect-ratio:1; border-radius:50%; background:#f1c94b12; filter:blur(30px); pointer-events:none; }
.premium-progress-copy { position:relative; z-index:1; }
.premium-progress-showcase h2 { max-width:780px; margin:.55rem 0 1rem; font-size:clamp(2.2rem,5vw,4.5rem); line-height:.96; letter-spacing:-.05em; }
.premium-progress-showcase p { max-width:760px; color:#c2cdd0; line-height:1.7; }
.premium-progress-showcase ul { display:grid; gap:.55rem; margin:1.2rem 0 1.5rem; padding:0; list-style:none; }
.premium-progress-showcase li { position:relative; padding-left:1.65rem; color:#aebfc2; font-size:.84rem; line-height:1.5; }
.premium-progress-showcase li::before { content:"✓"; position:absolute; left:0; top:0; display:grid; width:1.2rem; height:1.2rem; place-items:center; border-radius:50%; background:#1da36a; color:#07170f; font-size:.68rem; font-weight:950; }
.premium-progress-showcase li strong { color:#fff; }
.premium-progress-showcase figure { position:relative; z-index:1; display:grid; margin:0; justify-items:center; }
.premium-progress-showcase figure img { width:min(100%,340px); max-height:370px; object-fit:contain; filter:drop-shadow(0 25px 34px #000a); }
.premium-progress-showcase figcaption { display:grid; grid-template-columns:44px 1fr auto 44px 1fr; align-items:center; gap:.45rem; width:100%; padding:.75rem; border:1px solid #ffffff1a; border-radius:16px; background:#090b0dcc; backdrop-filter:blur(10px); }
.premium-progress-showcase figcaption span { display:grid; width:44px; height:44px; place-items:center; border:1px solid #3d7a82; border-radius:12px; background:#14363b; color:#86edf6; font-size:.7rem; font-weight:950; }
.client-path-showcase { padding-block:clamp(2rem,5vw,4rem); }
.client-path-showcase > .section-lead { max-width:760px; }
.client-path-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1.4rem; }
.client-path-grid article { display:flex; min-height:260px; flex-direction:column; align-items:flex-start; padding:clamp(1.2rem,3vw,2rem); border:1px solid #30707c; border-radius:24px; background:radial-gradient(circle at 100% 0,#1e576455,transparent 40%),linear-gradient(145deg,#10292f,#111315 72%); box-shadow:inset 4px 0 #67e8f9,0 22px 50px #0005; }
.client-path-grid article.is-gym { border-color:#6c5b2e; background:radial-gradient(circle at 100% 0,#66541f55,transparent 40%),linear-gradient(145deg,#28230f,#141310 72%); box-shadow:inset 4px 0 #f1c94b,0 22px 50px #0005; }
.client-path-grid article > span { color:#67e8f9; font-size:.68rem; font-weight:950; letter-spacing:.14em; }
.client-path-grid article.is-gym > span { color:#f1c94b; }
.client-path-grid h3 { margin:.55rem 0; font-size:clamp(1.55rem,3vw,2.25rem); }
.client-path-grid p { flex:1; color:#b9c7ca; line-height:1.6; }
.member-path-personal { --portal-accent:#67e8f9; --portal-accent-2:#0284c7; --portal-soft:#102a31; }
.member-path-gym { --portal-accent:#f1c94b; --portal-accent-2:#e3222b; --portal-soft:#292313; }
.member-identity-personal div > span { color:#8cecf5; }
.member-identity-gym div > span { color:#f5d96a; }
.premium-progress-showcase figcaption b { color:#eef7f8; font-size:.68rem; line-height:1.2; }
.premium-progress-showcase figcaption i { color:#f1c94b; font-style:normal; }
.flow-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:.8rem; }
.flow-steps article { display:grid; grid-template-columns:45px 1fr; gap:.8rem; padding:1.2rem; border-top:2px solid var(--role-accent); background:#151517; }
.flow-steps b { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--role-accent); color:#081014; }
.flow-steps p { color:var(--muted); }

.role-login-page { background:radial-gradient(circle at 20% 0,var(--role-bg,#281316),#09090a 40rem); }
.role-login-page .app-shell { position:relative; width:min(100%,1040px); padding:2rem 1rem; }
.auth-back { position:fixed; z-index:3; top:1.2rem; left:1.2rem; padding:.55rem .8rem; border:1px solid var(--line); border-radius:999px; background:#121214; color:var(--muted); font-size:.8rem; }
.role-login-shell { display:grid; grid-template-columns:1fr 430px; align-items:stretch; width:100%; overflow:hidden; border:1px solid color-mix(in srgb,var(--role-accent,#e3222b),transparent 65%); border-radius:30px; background:#111113; box-shadow:0 35px 90px #0008; }
.role-login-visual { position:relative; display:flex; justify-content:flex-end; align-items:flex-start; flex-direction:column; overflow:hidden; min-height:650px; padding:2.2rem; }
.role-login-visual::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 32%,rgba(7,7,8,.95) 100%); }
.role-login-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.role-login-visual > span,.role-login-visual h1,.role-login-visual p { position:relative; z-index:1; }
.role-login-visual > span { color:var(--role-accent,#f1c94b); font-size:.7rem; font-weight:950; letter-spacing:.14em; }
.role-login-visual h1 { max-width:500px; margin:.45rem 0; font-size:3.2rem; }
.role-login-visual p { max-width:500px; color:#d0d0d5; }
.role-login-shell .auth-card { width:100%; border:0; border-radius:0; box-shadow:none; }
.login-brand { display:flex; align-items:center; gap:.7rem; margin-bottom:2rem; }
.login-brand img { width:46px; }
.login-brand strong { font-size:1.1rem; letter-spacing:.12em; }
.login-brand span { color:var(--role-accent,#e3222b); }
.auth-help { margin:1.2rem 0 0; color:var(--muted); font-size:.8rem; }
.auth-help a { color:#fff; text-decoration:underline; }

@media (max-width:900px) {
  .public-hero-new,.role-page-hero { grid-template-columns:1fr; }
  .hero-role-stack { min-height:540px; }
  .process-line { grid-template-columns:repeat(2,1fr); }
  .process-line article:not(:last-child)::after { display:none; }
  .benefit-grid,.flow-steps { grid-template-columns:1fr 1fr; }
  .access-choice-grid { grid-template-columns:1fr; }
  .existing-account-entry { grid-template-columns:1fr; }
  .existing-account-entry .button { width:100%; min-width:0; }
  .access-choice { display:grid; grid-template-columns:280px 1fr; }
  .access-choice p { min-height:0; }
  .role-login-shell { grid-template-columns:1fr 400px; }
}
@media (max-width:700px) {
  .public-page .app-shell,.page-accesso .app-shell,.public-role-page .app-shell { padding-inline:1rem; }
  .client-path-grid { grid-template-columns:1fr; }
  .public-hero-new { min-height:0; padding-top:2rem; }
  .hero-role-stack { min-height:475px; }
  .hero-role { width:90%; grid-template-columns:90px 1fr; min-height:130px; }
  .hero-role img { width:90px; height:106px; }
  .role-showcase,.role-showcase:nth-child(even) { grid-template-columns:1fr; }
  .role-showcase:nth-child(even) img { order:0; }
  .role-showcase img { min-height:240px; max-height:300px; }
  .feature-bento { grid-template-columns:1fr; }
  .feature-bento article.wide { grid-column:auto; }
  .clarity-section { grid-template-columns:1fr; gap:1.5rem; }
  .faq-grid { grid-template-columns:1fr; }
  .final-cta { grid-template-columns:1fr; text-align:center; }
  .final-cta h2,.final-cta p { margin-inline:auto; }
  .public-footer-rich { grid-template-columns:1fr 1fr; }
  .public-footer-rich > div:first-child { grid-column:1 / -1; }
  .ms-consent-banner { grid-template-columns:1fr; }
  .ms-consent-actions { justify-content:stretch; }
  .ms-consent-actions .button { flex:1 1 auto; }
  .access-choice { grid-template-columns:1fr; }
  .access-choice img { max-height:260px; }
  .role-page-hero { min-height:0; padding-top:2rem; }
  .role-page-hero figure img { min-height:330px; }
  .role-login-page .app-shell { padding-top:4.5rem; }
  .role-login-shell { grid-template-columns:1fr; }
  .role-login-visual { min-height:280px; padding:1.3rem; }
  .role-login-visual h1 { font-size:2.2rem; }
  .role-login-shell .auth-card { padding:1.4rem; }
}
@media (max-width:480px) {
  .hero-role-stack { min-height:430px; }
  .hero-role { width:94%; }
  .hero-role:nth-child(2) { top:35%; }
  .public-section { padding:3rem 0; }
  .process-line,.benefit-grid,.flow-steps { grid-template-columns:1fr; }
  .public-footer-rich { grid-template-columns:1fr; }
  .public-footer-rich > div:first-child { grid-column:auto; }
}

/* Timer recupero cliente: grande, immediato e leggibile a distanza */
.rest-timer {
  right:0;
  bottom:0;
  left:0;
  z-index:80;
  grid-template-columns:1fr;
  align-content:center;
  gap:1.25rem;
  width:100%;
  max-width:none;
  min-height:52dvh;
  margin:0;
  padding:1.5rem 1rem calc(1.25rem + env(safe-area-inset-bottom));
  border:1px solid #645521;
  border-bottom:0;
  border-radius:30px 30px 0 0;
  background:linear-gradient(155deg,rgba(31,28,17,.99),rgba(15,15,17,.99));
  box-shadow:0 -24px 80px rgba(0,0,0,.72);
  text-align:center;
  transition:background .14s ease,border-color .14s ease,color .14s ease;
}
.timer-mascot-lifter { position:absolute; top:-136px; left:50%; z-index:0; width:min(390px,96vw); height:auto; pointer-events:none; transform:translateX(-50%); filter:drop-shadow(0 16px 22px rgba(0,0,0,.58)); }
.rest-timer::before { position:absolute; inset:0; z-index:1; border-radius:inherit; background:inherit; content:""; }
.rest-timer > .timer-next-exercise,.rest-timer > .timer-readout,.rest-timer > .timer-controls { position:relative; z-index:2; }
.timer-next-exercise {
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  align-items:center;
  gap:.85rem;
  width:min(100%,620px);
  margin:0 auto;
  padding:.7rem;
  border:1px solid #454129;
  border-radius:17px;
  background:rgba(5,5,7,.72);
  box-shadow:0 10px 25px rgba(0,0,0,.22);
  text-align:left;
}
.timer-next-exercise[hidden] { display:none; }
.timer-next-exercise img { width:92px; height:72px; border-radius:12px; background:#050506; object-fit:cover; }
.timer-next-exercise div { min-width:0; }
.timer-next-exercise span,.timer-next-exercise strong,.timer-next-exercise small { display:block; }
.timer-next-exercise span { color:var(--yellow); font-size:.64rem; font-weight:950; letter-spacing:.12em; text-transform:uppercase; }
.timer-next-exercise strong { overflow:hidden; margin:.14rem 0; color:#fff; font-size:1rem; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.timer-next-exercise small { color:#c8c8ce; font-size:.78rem; font-weight:720; line-height:1.35; }
.timer-readout { display:grid; justify-items:center; }
.rest-timer > .timer-readout > span { color:var(--yellow); font-size:.85rem; font-weight:950; letter-spacing:.22em; }
.rest-timer > .timer-readout > strong { margin:.25rem 0; font-variant-numeric:tabular-nums; font-size:clamp(5rem,24vw,9rem); font-weight:1000; line-height:.86; letter-spacing:-.07em; }
.rest-timer > .timer-readout > small { color:#c8c8ce; font-size:clamp(.9rem,3.8vw,1.15rem); font-weight:750; }
.timer-controls { display:grid; grid-template-columns:repeat(3,1fr); gap:.65rem; width:min(100%,620px); margin:0 auto; }
.timer-controls button { min-height:62px; padding:.65rem; border:1px solid #5d5228; border-radius:16px; background:#302b19; color:#fff5bc; font-size:.92rem; font-weight:950; box-shadow:0 8px 18px rgba(0,0,0,.2); }
.timer-controls button:active { transform:scale(.97); }
.timer-controls .timer-skip { grid-column:1 / -1; min-height:54px; border-color:#44444a; background:#202024; color:#d3d3d7; }
.rest-timer.is-warning { border-color:rgba(255,255,255,.5); color:#07120b; box-shadow:0 -24px 90px rgba(0,0,0,.75),inset 0 0 50px rgba(255,255,255,.15); }
.rest-timer.is-warning-yellow { background:#f3cc36; }
.rest-timer.is-warning-green { background:#25c875; }
.rest-timer.is-warning > .timer-readout > span,.rest-timer.is-warning > .timer-readout > small { color:#102016; }
.rest-timer.is-warning .timer-next-exercise { border-color:rgba(0,0,0,.24); background:rgba(255,255,255,.38); box-shadow:none; }
.rest-timer.is-warning .timer-next-exercise span,.rest-timer.is-warning .timer-next-exercise strong,.rest-timer.is-warning .timer-next-exercise small { color:#102016; }
.rest-timer.is-warning .timer-controls button { border-color:rgba(0,0,0,.25); background:rgba(10,20,13,.82); color:#fff; }
.rest-timer.is-warning .timer-controls .timer-skip { background:rgba(255,255,255,.35); color:#112117; }
.rest-timer.is-finished { border-color:#66f5a7; background:#13b85d; color:#04150b; box-shadow:0 -24px 100px rgba(19,184,93,.35),inset 0 0 70px rgba(255,255,255,.18); }
.rest-timer.is-finished > .timer-readout > span { color:#042b13; font-size:1.15rem; }
.rest-timer.is-finished > .timer-readout > small { color:#073f1d; }
.rest-timer.is-finished .timer-next-exercise { border-color:rgba(4,43,19,.28); background:rgba(255,255,255,.34); box-shadow:none; }
.rest-timer.is-finished .timer-next-exercise span,.rest-timer.is-finished .timer-next-exercise strong,.rest-timer.is-finished .timer-next-exercise small { color:#073518; }
.rest-timer.is-finished .timer-controls { grid-template-columns:1fr; opacity:1; pointer-events:auto; }
.rest-timer.is-finished [data-timer-minus],.rest-timer.is-finished [data-timer-plus],.rest-timer.is-finished .timer-skip { display:none; }
.rest-timer.is-finished [data-timer-toggle] { grid-column:1 / -1; border-color:#075b2c; background:#073b20; color:#fff; }
@media (min-width:760px) {
  .rest-timer { right:auto; bottom:1rem; left:50%; width:min(760px,calc(100% - 2rem)); min-height:min(48dvh,520px); padding:2rem; border-bottom:1px solid #645521; border-radius:30px; transform:translateX(-50%); }
  .timer-mascot-lifter { top:-155px; width:450px; }
  .rest-timer > .timer-readout > strong { font-size:8rem; }
}
@media (max-height:620px) {
  .rest-timer { min-height:70dvh; gap:.7rem; padding-top:1rem; }
  .rest-timer > .timer-readout > strong { font-size:4.6rem; }
  .timer-next-exercise { grid-template-columns:72px minmax(0,1fr); padding:.55rem; }
  .timer-next-exercise img { width:72px; height:58px; }
  .timer-controls button { min-height:52px; }
  .timer-mascot-lifter { top:-92px; width:290px; }
}

/* Portali separati e sito commerciale */
.page-welcome .app-shell { width: min(100%, 1180px); padding-bottom: 2rem; }
.public-topbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .25rem 0 1.5rem; }
.public-topbar .brand { flex: 0 0 auto; }
.public-site-nav { display: flex; align-items: center; gap: 1rem; margin-left: auto; }
.public-site-nav > a { color: var(--muted); font-weight: 760; }
.public-topbar-actions { display: flex; align-items: center; gap: .55rem; }
.public-menu-toggle { display: none; align-items: center; justify-content: center; gap: .5rem; min-width: 48px; min-height: 48px; padding: .65rem .8rem; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-2); color: #fff; font: inherit; font-size: .78rem; font-weight: 900; cursor: pointer; }
.public-menu-toggle-icon { position: relative; display: grid; gap: 4px; width: 19px; }
.public-menu-toggle-icon span { display: block; width: 100%; height: 2px; border-radius: 99px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
.public-hero { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(300px,.85fr); align-items: center; gap: 3rem; min-height: 68vh; padding: 3rem 0 5rem; }
.public-hero h1 { max-width: 760px; margin: .6rem 0 1rem; font-size: clamp(2.6rem,7vw,5.8rem); line-height: .91; letter-spacing: -.055em; }
.public-hero p { max-width: 650px; color: #c7c7cc; font-size: clamp(1rem,2vw,1.25rem); line-height: 1.65; }
.public-hero > div > small { display: block; margin-top: .8rem; color: var(--muted); }
.public-product-card { position: relative; display: grid; justify-items: center; gap: .8rem; overflow: hidden; padding: 2rem; border: 1px solid #3c292b; border-radius: 30px; background: radial-gradient(circle at 50% 10%,#3a161a 0,#171719 57%); box-shadow: 0 35px 90px #0008; text-align: center; }
.public-product-card img { width: min(100%,360px); max-height: 390px; object-fit: contain; }
.public-product-card strong { color: var(--yellow); letter-spacing: .13em; }
.public-product-card span { color: var(--muted); line-height: 1.5; }
.public-section { padding: 4rem 0; border-top: 1px solid var(--line); }
.public-section > h2 { max-width: 780px; margin: .5rem 0 2rem; font-size: clamp(2rem,5vw,4rem); line-height: 1; }
.public-feature-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: .8rem; }
.public-feature-grid article { min-height: 180px; padding: 1.2rem; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(145deg,#1d1d20,#121214); }
.public-feature-grid strong { display: block; color: white; font-size: 1.05rem; }
.public-feature-grid p { color: var(--muted); line-height: 1.5; }
.pricing-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.price-card { padding: 1.5rem; border: 1px solid var(--line); border-radius: 22px; background: var(--surface); }
.price-card.is-featured { border-color: #8d272d; background: linear-gradient(155deg,#251517,#171719); }
.price-card > span, .price-card > strong { display: block; }
.price-card > span { color: var(--yellow); font-weight: 900; letter-spacing: .14em; }
.price-card > strong { margin: .6rem 0; font-size: 2.8rem; }
.price-card > strong small { color: var(--muted); font-size: .9rem; }
.price-card p { min-height: 3rem; color: var(--muted); }
.price-card form, .price-card .button { width: 100%; }
.public-footer { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; padding: 2rem 0; color: var(--muted); border-top: 1px solid var(--line); }
.public-footer a { color: white; }
.signup-shell { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 2rem; width: min(100%,880px); min-height: calc(100vh - 3rem); margin: auto; }
.signup-shell .auth-brand { display: grid; justify-items: center; }
.signup-shell .auth-brand img { width: 150px; }
.signup-shell .auth-brand strong { font-size: 2rem; }
.signup-shell .auth-brand span { color: var(--red); }
.signup-shell .auth-card { padding: 1.4rem; border: 1px solid var(--line); border-radius: 24px; background: var(--surface); }
.auth-switch { color: var(--muted); text-align: center; }
.auth-switch a { color: white; }
.portal-heading { padding-bottom: .5rem; }
.portal-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.portal-actions a { min-height: 126px; padding: 1.1rem; border: 1px solid var(--line); border-radius: 17px; background: linear-gradient(145deg,#1c1c1f,#131315); }
.portal-actions strong, .portal-actions span { display: block; }
.portal-actions strong { margin-bottom: .35rem; color: white; font-size: 1.15rem; }
.portal-actions span { color: var(--muted); line-height: 1.45; }
.portal-actions-clear { margin-top: 1rem; }
.trainer-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
.empty-state { padding: 1.5rem; border: 1px dashed #3b3b40; border-radius: 16px; color: var(--muted); text-align: center; }
.inline-form { display: flex; align-items: end; gap: .65rem; }
.inline-form select { flex: 1; }
.program-editor { padding: 0; }
.program-editor summary { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: .7rem; align-items: center; padding: 1rem; cursor: pointer; }
.program-editor summary span { color: var(--red); font-size: .7rem; font-weight: 900; text-transform: uppercase; }
.program-editor summary small { color: var(--muted); }
.program-editor form { padding: 0 1rem 1rem; border-top: 1px solid var(--line); }
.billing-current { margin-bottom: 1rem; padding: 1.4rem; border: 1px solid #6d4e19; border-radius: 22px; background: linear-gradient(150deg,#251e10,#171719); }
.billing-current h2 { margin: .7rem 0 .2rem; }
.billing-current > strong { display: block; color: var(--yellow); font-size: 2.6rem; }
.billing-current > strong small { color: var(--muted); font-size: .9rem; }
.platform-status-form { display: grid; grid-template-columns: 1fr auto; gap: .45rem; grid-column: 1 / -1; width: 100%; margin-top: .5rem; }
.platform-stats { grid-template-columns: repeat(auto-fit,minmax(120px,1fr)); }
.member-card { color: inherit; text-decoration: none; }
textarea { width: 100%; resize: vertical; }

@media (max-width: 760px) {
  .public-topbar { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .75rem; padding-bottom: 1rem; }
  .public-topbar .brand { min-width: 0; }
  .public-topbar-actions { grid-column: 2; grid-row: 1; gap: .4rem; }
  .public-login-button { min-height: 44px; padding-inline: .65rem; font-size: .8rem; }
  .public-topbar-actions .ms-lang-menu--public-nav .ms-lang-menu__trigger { width: 2.4rem; height: 2.4rem; }
  .public-menu-toggle { display: inline-flex; }
  .public-site-nav { position: absolute; top: calc(100% - .25rem); right: 0; left: 0; z-index: 70; display: grid; gap: .25rem; margin: 0; padding: .75rem; border: 1px solid #3b3b42; border-radius: 18px; background: rgba(21,21,23,.98); box-shadow: 0 24px 60px #000c; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-8px) scale(.985); transform-origin: top right; transition: opacity .2s ease, transform .2s ease, visibility .2s ease; }
  .public-site-nav > a { display: flex; align-items: center; min-height: 48px; padding: .7rem .85rem; border-radius: 11px; color: #e5e5e8; }
  .public-site-nav > a:hover, .public-site-nav > a:focus-visible { background: #29292d; color: #fff; outline: 2px solid #f1c94b66; outline-offset: 1px; }
  .public-topbar.is-menu-open .public-site-nav { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
  .public-topbar.is-menu-open .public-menu-toggle { border-color: #8d7426; background: #292511; color: var(--yellow); }
  .public-topbar.is-menu-open .public-menu-toggle-icon span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .public-topbar.is-menu-open .public-menu-toggle-icon span:nth-child(2) { opacity: 0; }
  .public-topbar.is-menu-open .public-menu-toggle-icon span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .public-hero { grid-template-columns: 1fr; gap: 1.5rem; min-height: 0; padding: 2rem 0 3rem; }
  .public-hero h1 { font-size: clamp(2.7rem,14vw,4.6rem); }
  .public-product-card img { max-height: 280px; }
  .public-feature-grid { grid-template-columns: 1fr 1fr; }
  .signup-shell { grid-template-columns: 1fr; padding-block: 1rem; }
  .signup-shell .auth-brand { display: none; }
}

/* Offerta palestra Legacy: estensione coerente del tema MakoSet approvato */
.gym-offer-section { padding-top:1rem; }
.gym-offer-stage { display:grid; grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr); align-items:stretch; gap:clamp(1rem,4vw,3rem); padding:clamp(1.2rem,4vw,3rem); border:1px solid #5c2925; border-radius:30px; background:radial-gradient(circle at 90% 0,#4a1917 0,transparent 34rem),linear-gradient(145deg,#211516,#101012 66%); box-shadow:0 35px 90px #0008; }
.gym-offer-stage > div { align-self:center; }
.gym-offer-stage h2 { margin:.5rem 0 1rem; font-size:clamp(2.3rem,5vw,4.5rem); line-height:.96; }
.gym-offer-stage > div > p { max-width:620px; color:#c7c7cc; font-size:1.05rem; line-height:1.7; }
.gym-offer-points { display:grid; gap:.7rem; margin:1.5rem 0 0; padding:0; list-style:none; }
.gym-offer-points li { display:flex; gap:.7rem; color:#e9e9ec; font-weight:750; }
.gym-offer-points li::before { content:'✓'; display:grid; flex:0 0 25px; place-items:center; width:25px; height:25px; border-radius:50%; background:#153d28; color:#5df09a; font-weight:950; }
.gym-offer-reveal { align-self:stretch; overflow:hidden; border:1px solid #9a4539; border-radius:25px; background:linear-gradient(155deg,#3b1716,#171315 62%); box-shadow:0 22px 60px #0008; }
.gym-offer-reveal summary { position:relative; display:flex; min-height:100%; flex-direction:column; justify-content:center; padding:clamp(1.5rem,4vw,3rem); cursor:pointer; list-style:none; }
.gym-offer-reveal summary::-webkit-details-marker { display:none; }
.gym-offer-reveal summary::after { content:'→'; display:grid; place-items:center; width:48px; height:48px; margin-top:1.4rem; border-radius:50%; background:linear-gradient(135deg,var(--red),#ff664f); color:#fff; font-size:1.35rem; box-shadow:0 12px 30px #e3222b55; transition:transform .22s ease; }
.gym-offer-reveal[open] summary { min-height:auto; padding-bottom:1.2rem; }
.gym-offer-reveal[open] summary::after { transform:rotate(90deg); }
.gym-offer-reveal summary > span { color:#ff8a73; font-size:.7rem; font-weight:950; letter-spacing:.15em; }
.gym-offer-reveal summary > strong { max-width:430px; margin:.55rem 0; color:#fff; font-size:clamp(1.7rem,4vw,3rem); line-height:1.03; }
.gym-offer-reveal summary > small { color:#c8a6a1; }
.gym-offer-reveal-content { display:grid; justify-items:start; gap:.75rem; padding:0 clamp(1.5rem,4vw,3rem) clamp(1.5rem,4vw,3rem); animation:gym-offer-reveal-in .3s ease both; }
@keyframes gym-offer-reveal-in { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
.gym-offer-badge { display:inline-flex; min-height:30px; align-items:center; padding:.35rem .7rem; border:1px solid #aa4d41; border-radius:999px; background:#2a1616; color:#ff9a83; font-size:.65rem; font-weight:950; letter-spacing:.1em; }
.gym-offer-list-price { display:flex; align-items:center; gap:.7rem; color:#bcbcc1; }
.gym-offer-list-price del { color:#e2a39a; font-size:1.1rem; font-weight:850; text-decoration-thickness:2px; }
.gym-offer-price { display:flex; align-items:end; gap:.45rem; }
.gym-offer-price strong { color:#fff; font-size:clamp(4rem,9vw,7rem); line-height:.85; letter-spacing:-.07em; }
.gym-offer-price span { margin-bottom:.35rem; color:#ffb09f; font-weight:900; }
.gym-offer-reveal-content p { margin:0; color:#dedee2; }
.gym-offer-reveal-content > small { color:#bcbcc1; }

.gym-plan-builder { border-block:1px solid var(--line); }
.gym-plan-builder-heading { display:grid; grid-template-columns:1fr minmax(280px,.7fr); align-items:end; gap:2rem; margin-bottom:2rem; }
.gym-plan-builder-heading h2 { margin:.4rem 0 0; }
.gym-plan-builder-heading p { margin:0; color:#bdbdc3; line-height:1.65; }
.gym-plan-builder-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(330px,.55fr); align-items:stretch; gap:1rem; }
.gym-plan-controls { display:grid; gap:1rem; }
.gym-plan-control { padding:clamp(1.2rem,3vw,2rem); border:1px solid var(--line); border-radius:22px; background:linear-gradient(145deg,#1d1d20,#111113); }
.gym-plan-control-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.2rem; }
.gym-plan-control-heading label { color:#fff; font-size:1rem; font-weight:900; }
.gym-plan-control-heading output { min-width:100px; padding:.55rem .75rem; border:1px solid #784039; border-radius:12px; background:#281717; color:#ff9c87; font-size:1rem; font-weight:950; text-align:center; }
.gym-plan-range { --range-progress:0%; display:block; width:100%; min-height:52px; margin:0; background:transparent; cursor:pointer; appearance:none; -webkit-appearance:none; }
.gym-plan-range::-webkit-slider-runnable-track { height:10px; border-radius:999px; background:linear-gradient(90deg,#f24b3c 0 var(--range-progress),#3a3a3f var(--range-progress) 100%); }
.gym-plan-range::-moz-range-track { height:10px; border-radius:999px; background:#3a3a3f; }
.gym-plan-range::-moz-range-progress { height:10px; border-radius:999px; background:#f24b3c; }
.gym-plan-range::-webkit-slider-thumb { width:32px; height:32px; margin-top:-11px; border:4px solid #fff; border-radius:50%; background:#e3222b; box-shadow:0 8px 22px #000b; appearance:none; -webkit-appearance:none; }
.gym-plan-range::-moz-range-thumb { width:24px; height:24px; border:4px solid #fff; border-radius:50%; background:#e3222b; box-shadow:0 8px 22px #000b; }
.gym-plan-range:focus-visible { outline:2px solid var(--yellow); outline-offset:5px; border-radius:12px; }
.gym-plan-scale { display:flex; justify-content:space-between; gap:.5rem; color:#93939a; font-size:.68rem; font-weight:800; }
.gym-plan-control > small { display:block; margin-top:1rem; color:#a9a9b0; line-height:1.55; }
.gym-plan-summary { display:flex; flex-direction:column; justify-content:center; padding:clamp(1.4rem,4vw,2.5rem); border:1px solid #4d873f; border-radius:24px; background:radial-gradient(circle at 100% 0,#234a2f 0,transparent 22rem),linear-gradient(145deg,#18221b,#111313); box-shadow:0 28px 70px #0007; }
.gym-plan-summary > span { color:#6bf29f; font-size:.68rem; font-weight:950; letter-spacing:.14em; }
.gym-plan-summary h3 { margin:.6rem 0; font-size:clamp(1.45rem,3vw,2.25rem); }
.gym-plan-summary-price { display:flex; align-items:end; gap:.4rem; margin:.6rem 0; }
.gym-plan-summary-price strong { color:#fff; font-size:clamp(3.5rem,7vw,5.5rem); line-height:.85; letter-spacing:-.06em; }
.gym-plan-summary-price span { color:#79eaa4; font-weight:900; }
.gym-plan-summary > p { margin:.4rem 0; color:#b9c9be; }
.gym-plan-summary ul { display:grid; gap:.45rem; margin:1rem 0 1.3rem; padding:0; list-style:none; }
.gym-plan-summary li::before { content:'✓'; margin-right:.55rem; color:#5df09a; font-weight:950; }
.gym-plan-summary > small { display:block; margin-top:.8rem; color:#9db1a3; line-height:1.5; }

.gym-feature-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.gym-feature-group { padding:clamp(1.2rem,3vw,2rem); border:1px solid #31513b; border-radius:22px; background:linear-gradient(145deg,#172019,#111313); }
.gym-feature-group > span { color:#65e99a; font-size:.67rem; font-weight:950; letter-spacing:.13em; }
.gym-feature-group h3 { margin:.55rem 0 1rem; font-size:clamp(1.4rem,3vw,2rem); }
.gym-feature-group ul { display:grid; gap:.65rem; margin:0; padding:0; list-style:none; color:#d8d8dc; }
.gym-feature-group li { display:flex; gap:.6rem; line-height:1.45; }
.gym-feature-group li::before { content:'✓'; color:#5df09a; font-weight:950; }

.gym-compare { overflow:hidden; border:1px solid var(--line); border-radius:22px; background:#121214; }
.gym-compare-row { display:grid; grid-template-columns:minmax(190px,1.25fr) repeat(3,minmax(130px,1fr)); align-items:stretch; border-top:1px solid var(--line); }
.gym-compare-row:first-child { border-top:0; }
.gym-compare-row > * { display:flex; min-height:64px; align-items:center; padding:.8rem 1rem; border-left:1px solid var(--line); }
.gym-compare-row > *:first-child { border-left:0; }
.gym-compare-head { background:#202023; }
.gym-compare-head strong:not(:first-child) { color:#fff; }
.gym-compare-status small { display:none; }
.gym-compare-status b { font-size:.78rem; }
.gym-compare-status.is-included { background:#10261a; color:#67eda0; }
.gym-compare-status.is-partial { background:#282414; color:#f2d26a; }
.gym-compare-status.is-missing { color:#85858c; }
.gym-offer-faq .faq-grid details[open] { border-color:#754039; background:#1e1516; }
.gym-offer-final { display:grid; grid-template-columns:180px 1fr; align-items:center; gap:2rem; }
.gym-offer-final img { width:180px; max-height:190px; object-fit:contain; }
.gym-offer-final h2 { margin:.45rem 0; }
.gym-offer-final p { color:#c2c2c7; }

.legacy-preview-value { display:grid; justify-items:start; margin:.5rem 0; }
.legacy-preview-value del { color:#d59890; font-weight:850; }
.legacy-preview-value strong { color:#fff; font-size:2.8rem; line-height:1; }
.legacy-preview-value strong small { color:var(--muted); font-size:.9rem; }
.billing-list-price { display:block; margin-top:.65rem; color:#d39b94; font-weight:800; }
.gym-signup-offer { align-content:center; text-align:center; }
.gym-signup-offer > span { margin-top:1rem; color:#ff8d77; font-size:.68rem; font-weight:950; letter-spacing:.13em; }
.gym-signup-offer h2 { margin:.7rem 0; font-size:1.45rem; }
.gym-signup-offer > div { display:flex; align-items:end; justify-content:center; gap:.35rem; }
.gym-signup-offer > div strong { color:#fff; font-size:3.2rem; line-height:1; }
.gym-signup-offer > div small { color:#ff9c87; font-weight:900; }
.gym-signup-offer p { color:#a9a9b0; }
.gym-signup-offer a { color:#fff; font-weight:850; text-decoration:underline; }
.signup-plan-mobile { display:none; padding:1rem; border:1px solid #784039; border-radius:15px; background:#261616; }
.signup-plan-mobile span,.signup-plan-mobile strong,.signup-plan-mobile small { display:block; }
.signup-plan-mobile span { color:#ff947e; font-size:.65rem; font-weight:950; letter-spacing:.12em; }
.signup-plan-mobile strong { margin:.3rem 0; color:#fff; font-size:1.45rem; }
.signup-plan-mobile small { color:#bbb9bd; }
.signup-assistance-note { padding:.8rem; border-left:3px solid var(--yellow); background:#242116; color:#d8d3be!important; font-size:.78rem; line-height:1.5; }
.signup-terms-note { display:block; margin-top:1rem; color:#8f8f96; font-size:.68rem; line-height:1.5; }
.signup-terms-note a { color:#d6d6da; text-decoration:underline; }

@media (max-width:900px) {
  .premium-progress-showcase { grid-template-columns:1fr; }
  .premium-progress-showcase figure { grid-row:1; }
  .premium-progress-showcase figure img { max-height:280px; }
  .gym-offer-stage,.gym-plan-builder-grid { grid-template-columns:1fr; }
  .gym-plan-builder-heading { grid-template-columns:1fr; gap:.7rem; }
  .gym-offer-reveal summary { min-height:300px; }
  .gym-offer-reveal[open] summary { min-height:auto; }
  .gym-compare-row { grid-template-columns:minmax(160px,1.2fr) repeat(3,minmax(115px,1fr)); }
}
@media (max-width:760px) {
  .gym-offer-section { padding-top:0; }
  .gym-offer-stage { padding:1rem; border-radius:22px; }
  .gym-offer-stage h2 { font-size:2.45rem; }
  .gym-offer-reveal summary { min-height:270px; padding:1.4rem; }
  .gym-offer-reveal-content { padding:0 1.4rem 1.4rem; }
  .gym-plan-builder-heading { margin-bottom:1.2rem; }
  .gym-plan-control,.gym-plan-summary { padding:1.1rem; border-radius:18px; }
  .gym-plan-control-heading { align-items:flex-start; flex-direction:column; gap:.6rem; }
  .gym-plan-control-heading output { min-width:0; }
  .gym-feature-groups { grid-template-columns:1fr; }
  .gym-compare { border:0; border-radius:0; background:transparent; }
  .gym-compare-head { display:none; }
  .gym-compare-row { grid-template-columns:1fr; margin-bottom:.75rem; border:1px solid var(--line); border-radius:17px; background:#151517; }
  .gym-compare-row > * { min-height:48px; border-top:1px solid var(--line); border-left:0; }
  .gym-compare-row > *:first-child { border-top:0; background:#202023; }
  .gym-compare-status { justify-content:space-between; gap:1rem; }
  .gym-compare-status small { display:block; color:#aaaab0; }
  .gym-offer-final { grid-template-columns:100px 1fr; gap:1rem; }
  .gym-offer-final img { width:100px; }
  .gym-signup-shell .gym-signup-offer { display:none; }
  .signup-plan-mobile { display:block; }
}
@media (max-width:460px) {
  .premium-progress-showcase { padding:1.1rem; border-radius:23px; }
  .premium-progress-showcase h2 { font-size:2.45rem; }
  .premium-progress-showcase figure img { max-height:220px; }
  .premium-progress-showcase figcaption { grid-template-columns:40px 1fr auto 40px 1fr; padding:.55rem; }
  .premium-progress-showcase figcaption span { width:40px; height:40px; }
  .premium-progress-showcase figcaption b { font-size:.6rem; }
  .gym-offer-price strong { font-size:4.6rem; }
  .gym-plan-summary-price strong { font-size:3.8rem; }
  .gym-plan-scale { font-size:.6rem; }
  .gym-offer-final { grid-template-columns:1fr; text-align:center; }
  .gym-offer-final img { margin:auto; }
}
@media (prefers-reduced-motion:reduce) {
  .gym-offer-reveal-content { animation:none; }
  .gym-offer-reveal summary::after { transition:none; }
}
@media (max-width: 460px) {
  .public-feature-grid, .pricing-grid, .portal-actions { grid-template-columns: 1fr; }
  .public-topbar .brand-word small { display: none; }
  .role-pill { display: none; }
  .next-action-card h1 { letter-spacing: -.04em; }
  .trainer-actions { grid-template-columns: 1fr; }
  .inline-form { align-items: stretch; flex-direction: column; }
  .inline-form .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .onboarding-step { animation: none; }
}
/* MakoSet calendar and rotation */
.calendar-current-card, .calendar-panel, .skip-workout-card { margin-bottom: 1rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.calendar-current-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; }
.calendar-current-card h2, .skip-workout-card h2 { margin: .45rem 0 .25rem; }
.calendar-current-card p, .skip-workout-card p { margin: 0; color: var(--muted); font-size: .82rem; }
.calendar-toolbar { display: grid; grid-template-columns: 48px 1fr 48px; align-items: center; gap: .5rem; padding: 1rem; text-align: center; border-bottom: 1px solid var(--line); }
.calendar-toolbar h2 { margin: .1rem 0 0; }
.calendar-arrow { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 13px; color: white; background: var(--surface-2); font-size: 1.2rem; }
.calendar-weekdays, .calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 3px; }
.calendar-weekdays { padding: .65rem .5rem .35rem; color: var(--muted); font-size: .56rem; font-weight: 900; text-align: center; letter-spacing: .04em; }
.calendar-grid { padding: 0 .5rem .7rem; }
.calendar-cell { position: relative; min-width: 0; min-height: 68px; padding: .32rem .22rem; border: 1px solid #2a2a2e; border-radius: 9px; background: #101012; }
.calendar-cell.is-outside { opacity: .28; }
.calendar-cell.is-today { border-color: var(--red); box-shadow: inset 0 0 0 1px rgba(227,34,43,.28); }
.calendar-date { color: #d7d7da; font-size: .68rem; font-weight: 900; }
.calendar-today { position: absolute; top: .34rem; right: .2rem; color: var(--red); font-size: .43rem; font-weight: 950; }
.calendar-events { display: grid; gap: 3px; margin-top: .3rem; }
.calendar-event { overflow: hidden; padding: .2rem .18rem; border-radius: 5px; color: white; font-size: .52rem; font-weight: 900; line-height: 1.1; text-align: center; white-space: nowrap; text-overflow: ellipsis; }
.calendar-event.is-completed { background: #137a42; }
.calendar-event.is-skipped { background: #4c4c53; color: #ededee; }
.calendar-event.is-active { background: #b98c08; color: #111; }
.calendar-event.is-planned { border: 1px dashed #8b3438; color: #d7a1a4; background: transparent; white-space: normal; }
.calendar-legend { display: flex; flex-wrap: wrap; gap: .8rem; padding: .75rem 1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .68rem; }
.calendar-legend span { display: flex; align-items: center; gap: .32rem; }
.legend-dot { width: 9px; height: 9px; border-radius: 50%; }
.legend-dot.is-completed { background: #18a45c; }
.legend-dot.is-skipped { background: #65656d; }
.legend-dot.is-active { background: #e8b311; }
.skip-workout-card { padding: 1rem; border-color: #423033; background: linear-gradient(145deg,#171315,#131315); }
.skip-workout-card form { display: grid; gap: .75rem; margin-top: .9rem; }
.skip-workout-card .button-secondary { border-color: #5a4043; }
.rotation-section { margin-top: 1.4rem; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.section-heading h2 { margin: .15rem 0 0; }
.rotation-days { display: grid; gap: .65rem; }
.rotation-day { overflow: hidden; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
.rotation-day.is-current { border-color: #8e7020; box-shadow: inset 3px 0 0 var(--yellow); }
.rotation-day summary { display: grid; grid-template-columns: 45px 1fr auto; align-items: center; gap: .7rem; min-height: 76px; padding: .7rem .8rem; cursor: pointer; list-style: none; }
.rotation-day summary::-webkit-details-marker { display: none; }
.rotation-day summary > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; color: white; background: #27272b; font-weight: 950; }
.rotation-day.is-current summary > span { color: #16120a; background: var(--yellow); }
.rotation-day summary strong, .rotation-day summary small { display: block; }
.rotation-day summary small { margin-top: .12rem; color: var(--muted); font-size: .68rem; line-height: 1.25; }
.rotation-day summary b { color: var(--muted); font-size: 1.15rem; transition: transform .18s ease; }
.rotation-day[open] summary b { transform: rotate(45deg); }
.rotation-exercises { padding: 0 .8rem .8rem; border-top: 1px solid var(--line); }
.rotation-exercises > div { display: flex; justify-content: space-between; gap: .7rem; padding: .68rem 0; border-bottom: 1px solid #29292d; }
.rotation-exercises > div:last-child { border-bottom: 0; }
.rotation-exercises span { font-size: .78rem; font-weight: 760; }
.rotation-exercises small { color: var(--muted); font-size: .66rem; text-align: right; white-space: nowrap; }
.rotation-exercises h3 { margin: .9rem 0 .15rem; color: var(--red); font-size: .62rem; letter-spacing: .09em; text-transform: uppercase; }
.history-card.is-skipped { border-color: #39393f; opacity: .88; }
.history-card.is-skipped .history-day { background: #34343a; }
.skip-detail-card { margin-bottom: 1rem; padding: 1rem; border: 1px solid #48484f; border-radius: var(--radius); background: var(--surface); }
.skip-detail-card h2 { margin: .35rem 0; }
.skip-detail-card p, .skip-detail-card small { color: var(--muted); }

/* Player musicale web: Spotify e YouTube dentro MakoSet */
.workout-music-player,.settings-media-player { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.75rem; margin:0 0 .9rem; padding:.8rem; border:1px solid #30343a; border-radius:18px; background:linear-gradient(145deg,#15171a,#0d0e10); box-shadow:0 12px 30px #0004; }
.settings-media-player { margin:.25rem 0 0; }
.workout-music-player[hidden] { display:none!important; }
.music-player-copy { min-width:0; }
.music-player-copy small,.music-player-copy strong,.music-player-copy span { display:block; }
.music-player-label { display:flex; align-items:center; justify-content:space-between; gap:.55rem; }
.music-player-copy small { color:#69df9d; font-size:.58rem; font-weight:950; letter-spacing:.14em; }
.music-player-copy em { display:inline-flex; min-height:20px; align-items:center; padding:.22rem .42rem; border:1px solid #45484d; border-radius:99px; color:#aeb0b5; font-size:.5rem; font-style:normal; font-weight:950; letter-spacing:.07em; white-space:nowrap; }
.music-player-copy strong { margin-top:.12rem; overflow:hidden; font-size:.92rem; text-overflow:ellipsis; white-space:nowrap; }
.music-player-copy span { margin-top:.12rem; overflow:hidden; color:var(--muted); font-size:.66rem; text-overflow:ellipsis; white-space:nowrap; }
.music-player-status { grid-column:1/-1; margin:0; padding:.55rem .65rem; border:1px solid #292c31; border-radius:11px; background:#0c0d0f; color:#b7bac0; font-size:.66rem; font-weight:740; line-height:1.4; }
.music-player-controls { display:flex; gap:.32rem; }
.music-player-controls button { display:grid; width:44px; height:44px; place-items:center; border:1px solid #3a3d42; border-radius:12px; background:#22252a; color:#fff; font-size:1rem; font-weight:950; touch-action:manipulation; }
.music-player-controls button[data-media-action="toggle"] { border-color:#226c44; background:#1abd68; color:#07170d; }
.music-player-controls button[data-media-action="expand"] { color:#d8dade; }
.music-player-controls button:disabled { cursor:not-allowed; opacity:.35; }
.workout-music-player:not([data-media-state="empty"]):not([data-media-expanded="true"]) { min-height:62px; margin-bottom:.55rem; padding:.5rem .55rem; border-radius:14px; box-shadow:0 8px 20px #0003; }
.workout-music-player:not([data-media-expanded="true"]) .music-embed-shell,
.workout-music-player:not([data-media-expanded="true"]) .music-provider-buttons { display:none!important; }
.workout-music-player:not([data-media-expanded="true"]) .music-player-status { position:absolute!important; width:1px!important; height:1px!important; margin:-1px!important; padding:0!important; overflow:hidden!important; clip:rect(0 0 0 0)!important; clip-path:inset(50%)!important; white-space:nowrap!important; border:0!important; }
.workout-music-player:not([data-media-expanded="true"]) .music-player-copy span { display:none; }
.workout-music-player:not([data-media-expanded="true"]) .music-player-copy em { min-height:18px; padding:.17rem .36rem; }
.workout-music-player:not([data-media-expanded="true"]) .music-player-controls button[data-media-action="previous"],
.workout-music-player:not([data-media-expanded="true"]) .music-player-controls button[data-media-action="next"] { display:none; }
.workout-music-player[data-media-expanded="true"] .music-player-expand { transform:rotate(180deg); }
.music-provider-buttons { display:flex; grid-column:1/-1; flex-wrap:wrap; gap:.42rem; }
.music-provider-buttons button { min-height:44px; padding:.52rem .72rem; border:1px solid #3c3e43; border-radius:11px; background:#202126; color:#e8e8ea; font-size:.68rem; font-weight:900; touch-action:manipulation; }
.music-provider-buttons button[data-media-action="spotify"] { border-color:#1c7544; color:#69df9d; }
.music-provider-buttons button[data-media-action="youtube"] { border-color:#7d292d; color:#ff7b80; }
.music-provider-buttons button[data-media-action="reload"] { border-color:#3d6174; color:#8bd8ff; }
.music-provider-buttons button[data-media-action="remove"] { border-color:#55363a; color:#d9a4a7; }
.music-provider-buttons button[hidden] { display:none; }
.workout-music-player.has-session,.settings-media-player.has-session { border-color:#246b47; box-shadow:inset 3px 0 0 #1ed760,0 12px 30px #0004; }
.workout-music-player.has-session .music-player-copy em,.settings-media-player.has-session .music-player-copy em { border-color:#246b47; color:#69df9d; }
.workout-music-player.is-playing .music-player-status,.settings-media-player.is-playing .music-player-status { border-color:#1e5339; color:#8ce8b4; }
.workout-music-player.has-error,.settings-media-player.has-error { border-color:#73373c; box-shadow:inset 3px 0 0 #e94d55,0 12px 30px #0004; }
.workout-music-player.has-error .music-player-copy em,.settings-media-player.has-error .music-player-copy em { border-color:#73373c; color:#ff9097; }
.music-embed-shell { grid-column:1/-1; min-width:0; overflow:hidden; border:1px solid #2f3237; border-radius:13px; background:#090a0b; }
.music-embed-shell[hidden] { display:none; }
.music-embed-shell iframe { display:block; width:100%!important; max-width:100%; border:0; }
.music-embed-host { min-height:152px; }
.music-embed-host[data-media-embed="youtube"] { min-height:220px; }
.music-voice-settings { border-color:#31443b; background:linear-gradient(150deg,#171c19,#121315 68%); }
.music-voice-settings h2 { margin:.35rem 0 .3rem; }
.music-voice-settings > p { color:var(--muted); line-height:1.55; }
.settings-music-buttons { margin:.75rem 0; }
.settings-note.is-connected { color:#69df9d; }

.media-account-dialog { width:min(650px,calc(100% - 1.5rem)); max-height:min(820px,calc(100dvh - 1.5rem)); margin:auto; padding:0; overflow:auto; overscroll-behavior:contain; border:1px solid #4a4c51; border-radius:22px; background:#111214; color:#f7f7f8; box-shadow:0 28px 90px #000c; }
.media-account-dialog::backdrop { background:#000c; backdrop-filter:blur(5px); }
.media-account-panel { position:relative; display:grid; gap:1rem; padding:1.25rem; }
.media-account-panel h2 { margin:-.35rem 2.8rem -.4rem 0; font-size:1.35rem; line-height:1.12; }
.media-account-panel > p { margin:0; color:var(--muted); font-size:.8rem; line-height:1.5; }
.media-account-panel > p strong { color:#fff; }
.media-dialog-close { position:sticky; z-index:4; top:.7rem; justify-self:end; display:grid; width:44px; height:44px; margin-bottom:-44px; place-items:center; border:1px solid #44474d; border-radius:50%; background:#212328ee; color:#fff; font-size:1.35rem; box-shadow:0 8px 20px #0008; }
.media-guide-tabs { display:grid; grid-template-columns:1fr 1fr; gap:.55rem; padding:.3rem; border:1px solid #34373c; border-radius:15px; background:#0b0c0e; }
.media-guide-tabs button { min-width:0; min-height:52px; padding:.6rem .7rem; border:1px solid transparent; border-radius:11px; background:transparent; color:#a7aab0; font-size:.75rem; font-weight:950; touch-action:manipulation; }
.media-guide-tabs button[aria-selected="true"][data-media-guide-provider="spotify"] { border-color:#267448; background:#123821; color:#78eca9; }
.media-guide-tabs button[aria-selected="true"][data-media-guide-provider="youtube"] { border-color:#83343a; background:#42191c; color:#ff999d; }
.media-guide-tabs button:focus-visible,.media-open-service:focus-visible,.media-paste-button:focus-visible { outline:3px solid #f1c94b; outline-offset:2px; }
.media-source-card { display:grid; gap:1rem; padding:1rem; border:1px solid #2f6f4d; border-radius:18px; background:linear-gradient(145deg,#11271b,#0d1110); box-shadow:inset 3px 0 0 #1ed760; }
.media-account-dialog[data-media-selected-guide="youtube"] .media-source-card { border-color:#75343a; background:linear-gradient(145deg,#2b1518,#0f0d0e); box-shadow:inset 3px 0 0 #ff3d46; }
.media-provider-guide { display:grid; gap:.75rem; min-width:0; }
.media-provider-guide[hidden] { display:none; }
.media-provider-guide h3 { margin:-.25rem 0 0; font-size:1.05rem; }
.media-guide-steps { display:grid; gap:.55rem; margin:0; padding:0; list-style:none; }
.media-guide-steps li { display:grid; grid-template-columns:38px minmax(0,1fr); gap:.65rem; align-items:start; min-width:0; padding:.6rem; border:1px solid #ffffff12; border-radius:13px; background:#06080766; }
.media-guide-steps li > span { display:grid; width:38px; height:38px; place-items:center; border:1px solid #3f7658; border-radius:50%; background:#183d28; color:#80ecad; font-size:.8rem; font-weight:950; }
.media-account-dialog[data-media-selected-guide="youtube"] .media-guide-steps li > span { border-color:#854248; background:#431c20; color:#ff9da1; }
.media-guide-steps strong,.media-guide-steps small { display:block; }
.media-guide-steps strong { padding-top:.08rem; color:#fff; font-size:.78rem; }
.media-guide-steps small { margin-top:.18rem; color:#b7c0ba; font-size:.7rem; line-height:1.45; }
.media-guide-steps b { color:#fff; font-weight:900; }
.media-open-service { display:flex; min-height:56px; align-items:center; justify-content:center; padding:.75rem 1rem; text-align:center; text-decoration:none; border:1px solid #49d184; border-radius:13px; background:#20c873; color:#07170d; font-size:.78rem; font-weight:950; }
.media-open-service.youtube { border-color:#ff6970; background:#ef3c45; color:#fff; }
.media-create-help { border:1px solid #ffffff18; border-radius:12px; background:#090b0a88; }
.media-create-help summary { min-height:46px; padding:.8rem; cursor:pointer; color:#eef3ef; font-size:.72rem; font-weight:900; }
.media-create-help p { margin:0; padding:0 .8rem .85rem; color:#aeb8b1; font-size:.7rem; line-height:1.5; }
.media-create-help strong { color:#fff; }
.media-source-form { display:grid; gap:.65rem; min-width:0; padding-top:.85rem; border-top:1px solid #ffffff18; }
.media-paste-button { width:100%; min-height:58px!important; border-color:#f1c94b!important; background:linear-gradient(135deg,#f4d45e,#e6b931)!important; color:#171304!important; font-size:.8rem!important; }
.media-manual-link { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.5rem; min-width:0; }
.media-source-form label { grid-column:1/-1; color:#e9f2ec; font-size:.7rem; font-weight:900; }
.media-source-form input { width:100%; min-width:0; min-height:52px; padding:.75rem .8rem; border:1px solid #3e5d4b; border-radius:12px; background:#090c0a; color:#fff; font-size:max(16px,1rem); }
.media-source-form input:focus { border-color:#58db91; outline:2px solid #31b97055; outline-offset:1px; }
.media-source-form button { min-height:52px; padding:.7rem 1rem; border:1px solid #49d184; border-radius:12px; background:#20c873; color:#07170d; font-size:.72rem; font-weight:950; touch-action:manipulation; }
.media-source-form button:disabled { cursor:wait; opacity:.65; }
.media-source-form > small { color:#9eaaa2; font-size:.68rem; line-height:1.45; }
.media-account-options { display:grid; gap:1rem; }
.media-account-options[hidden] { display:none; }
.media-account-divider { display:flex; align-items:center; gap:.7rem; color:#85898f; font-size:.58rem; font-weight:950; letter-spacing:.1em; }
.media-account-divider::before,.media-account-divider::after { content:""; flex:1; height:1px; background:#2d3035; }
.media-account-provider.is-unavailable { opacity:.72; }
.media-account-providers { display:grid; grid-template-columns:1fr 1fr; gap:.65rem; }
.media-account-provider { display:grid; grid-template-columns:48px minmax(0,1fr); gap:.65rem; align-items:center; min-width:0; padding:.8rem; border:1px solid #34373c; border-radius:16px; background:linear-gradient(150deg,#1b1d21,#111214); }
.media-account-provider.is-connected { border-color:#2a6d4a; box-shadow:inset 0 0 0 1px #2bbf7440; }
.media-provider-mark { display:grid; width:48px; height:48px; place-items:center; border:1px solid #4b4e54; border-radius:14px; background:#08090a; color:#fff; font-size:1.1rem; font-weight:950; }
.media-account-provider.spotify .media-provider-mark { border-color:#267448; background:#10351f; color:#6eeaa4; }
.media-account-provider.youtube .media-provider-mark { border-color:#813238; background:#41171a; color:#ff8a8f; }
.media-provider-copy { min-width:0; }
.media-provider-copy strong,.media-provider-copy span,.media-provider-copy small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.media-provider-copy strong { font-size:.9rem; }
.media-provider-copy span { margin-top:.14rem; color:#b5b7bc; font-size:.65rem; font-weight:780; }
.media-provider-copy small { margin-top:.12rem; color:#777b82; font-size:.58rem; }
.media-account-provider > button { grid-column:1/-1; min-height:46px; border:1px solid #46494f; border-radius:12px; background:#25272c; color:#f4f4f5; font-size:.7rem; font-weight:950; }
.media-account-provider.spotify > button:not(.media-account-disconnect) { border-color:#27784b; background:#123821; color:#78eca9; }
.media-account-provider.youtube > button:not(.media-account-disconnect) { border-color:#83343a; background:#42191c; color:#ff999d; }
.media-account-provider > button:disabled { cursor:not-allowed; opacity:.45; }
.media-account-provider .media-account-disconnect { min-height:40px; border-color:#4a3438; background:transparent; color:#c98e92; }
.media-account-provider button[hidden] { display:none; }
.media-library { display:grid; gap:.75rem; padding-top:.15rem; border-top:1px solid #2d3035; }
.media-library[hidden] { display:none; }
.media-library header { display:flex; align-items:end; justify-content:space-between; gap:.75rem; }
.media-library h3 { margin:.2rem 0 0; font-size:1rem; }
.media-library header button { min-height:40px; padding:.45rem .65rem; border:1px solid #41444a; border-radius:10px; background:#212328; color:#e9e9eb; font-size:.64rem; font-weight:900; }
.media-library-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; max-height:310px; overflow:auto; overscroll-behavior:contain; }
.media-playlist-button { display:grid; grid-template-columns:64px minmax(0,1fr); gap:.65rem; align-items:center; min-width:0; min-height:80px; padding:.55rem; text-align:left; border:1px solid #373a40; border-radius:13px; background:#191b1f; color:#f7f7f8; }
.media-playlist-button:hover,.media-playlist-button:focus-visible { border-color:#5bc889; outline:none; }
.media-playlist-button img,.media-playlist-placeholder { width:64px; height:64px; border-radius:10px; object-fit:cover; background:linear-gradient(145deg,#2e3238,#111214); }
.media-playlist-button strong,.media-playlist-button span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.media-playlist-button strong { font-size:.72rem; }
.media-playlist-button span { margin-top:.22rem; color:#9da0a6; font-size:.6rem; }
.media-library-empty { grid-column:1/-1; margin:0; padding:1rem; border:1px dashed #3a3d42; border-radius:12px; color:#aeb0b5; font-size:.72rem; line-height:1.5; }
.media-account-error { min-height:1.15rem; color:#ff8d94!important; font-weight:800; }
.media-dialog-note { display:block; padding-top:.1rem; border-top:1px solid #292b30; }
.media-dialog-note { color:#96999f; font-size:.66rem; font-weight:650; line-height:1.45; }
@media (max-width: 480px) {
  .workout-music-player,.settings-media-player { grid-template-columns:1fr; }
  .music-player-controls { width:100%; }
  .music-player-controls button { flex:1; }
  .music-player-status { grid-column:1; }
  .music-provider-buttons button { flex:1 1 calc(50% - .3rem); }
  .workout-music-player .music-provider-buttons,.settings-media-player .music-provider-buttons { padding-bottom:3rem; }
  .workout-music-player[data-media-expanded="true"] .music-provider-buttons { padding-bottom:0; }
  .media-account-dialog { width:calc(100% - .8rem); max-height:calc(100dvh - .8rem); border-radius:20px; }
  .media-account-panel { padding:1rem; }
  .media-manual-link { grid-template-columns:1fr; }
  .media-source-form label { grid-column:1; }
  .media-source-form button { width:100%; }
  .media-account-providers { grid-template-columns:1fr; }
  .media-library-list { grid-template-columns:1fr; max-height:290px; }
  .workout-music-player:not([data-media-state="empty"]):not([data-media-expanded="true"]) { grid-template-columns:minmax(0,1fr) auto; }
  .workout-music-player:not([data-media-expanded="true"]) .music-player-controls { width:auto; }
  .workout-music-player:not([data-media-expanded="true"]) .music-player-controls button { flex:none; }
}
@media (max-width: 390px) {
  .topbar { gap:.45rem; padding-inline:.6rem; }
  .topbar-account { gap:.28rem; }
  .brand { gap:.42rem; }
  .brand-logo { width:38px; height:38px; }
  .topbar > .brand .brand-word { display:none; }
  .brand-word strong { font-size:.78rem; }
  .icon-button { min-width:44px; padding:0 .5rem; font-size:.7rem; }
  .calendar-current-card { align-items: stretch; flex-direction: column; }
  .calendar-current-card .button { width: 100%; }
  .calendar-cell { min-height: 62px; padding-inline: .14rem; }
  .calendar-event { font-size: .48rem; }
  .bottom-nav a { font-size: .55rem; }
}

@media (min-width: 391px) and (max-width: 720px) {
  html[data-font-scale="large"] .topbar,
  html[data-font-scale="xlarge"] .topbar {
    gap: .45rem;
    padding-inline: .65rem;
  }

  html[data-font-scale="large"] .topbar-account,
  html[data-font-scale="xlarge"] .topbar-account {
    gap: .3rem;
  }

  html[data-font-scale="large"] .brand,
  html[data-font-scale="xlarge"] .brand {
    gap: .45rem;
  }

  html[data-font-scale="large"] .brand-word small,
  html[data-font-scale="xlarge"] .brand-word small,
  html[data-font-scale="large"] .role-pill,
  html[data-font-scale="xlarge"] .role-pill {
    display: none;
  }
}

/* Pagine pubbliche legali */
.legal-hero { max-width:900px; padding:clamp(2.5rem,7vw,5rem) 0 clamp(2rem,5vw,3.5rem); }
.legal-hero h1 { max-width:820px; margin:.55rem 0 1rem; font-size:clamp(2.75rem,8vw,5.5rem); line-height:.94; letter-spacing:-.055em; }
.legal-hero p { max-width:720px; margin:0; color:#c0c0c6; font-size:clamp(1rem,2.3vw,1.25rem); line-height:1.6; }
.legal-hero small { display:block; margin-top:1rem; color:var(--yellow); font-size:.68rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.legal-layout { display:grid; grid-template-columns:minmax(190px,240px) minmax(0,1fr); align-items:start; gap:clamp(1rem,3vw,2rem); max-width:1080px; margin:0 auto 3rem; }
.legal-index { position:sticky; top:1rem; display:flex; flex-direction:column; gap:.2rem; padding:1rem; border:1px solid var(--line); border-radius:18px; background:linear-gradient(145deg,#19191c,#111113); }
.legal-index strong { margin:0 0 .45rem; color:var(--yellow); font-size:.66rem; font-weight:950; letter-spacing:.12em; text-transform:uppercase; }
.legal-index a { display:flex; align-items:center; min-height:44px; padding:.55rem .65rem; border-radius:10px; color:#d5d5d9; font-size:.75rem; font-weight:760; line-height:1.25; }
.legal-index a:hover,.legal-index a:focus-visible { color:#fff; background:#252529; outline:2px solid #f1c94b66; outline-offset:1px; }
.legal-content { min-width:0; }
.legal-content section { scroll-margin-top:1rem; margin:0 0 .8rem; padding:clamp(1rem,3vw,1.6rem); border:1px solid var(--line); border-radius:20px; background:linear-gradient(150deg,#171719,#111113); }
.legal-content h2 { margin:0 0 .9rem; color:#fff; font-size:clamp(1.3rem,3vw,1.75rem); line-height:1.15; letter-spacing:-.025em; }
.legal-content h3 { margin:1.25rem 0 .4rem; color:#f0f0f2; font-size:.95rem; }
.legal-content p,.legal-content li { color:#b8b8be; font-size:.84rem; line-height:1.72; }
.legal-content p { margin:.55rem 0 0; }
.legal-content ul { display:grid; gap:.55rem; margin:.75rem 0 0; padding-left:1.25rem; }
.legal-content strong { color:#f4f4f5; }
.legal-content a { color:#f5d56e; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.legal-content code { overflow-wrap:anywhere; padding:.12rem .28rem; border:1px solid #3b3b40; border-radius:5px; color:#e9cf79; background:#0b0b0c; font-size:.75rem; }
.legal-callout,.legal-policy-statement { margin-top:1rem; padding:1rem; border:1px solid #3d3d42; border-radius:14px; background:#0d0d0f; }
.legal-callout h3 { margin:0 0 .3rem; }
.legal-policy-statement { border-color:#2d6849; background:linear-gradient(145deg,#102319,#0d1110); box-shadow:inset 3px 0 0 #26b86d; }
.legal-policy-statement > strong { display:block; color:#6ee7a5; font-size:.74rem; font-weight:950; letter-spacing:.08em; text-transform:uppercase; }
.legal-health-warning { border-color:#743137; background:linear-gradient(145deg,#291315,#110d0e); box-shadow:inset 3px 0 0 var(--red); }
.legal-health-warning > strong { color:#ff858b; }
.legal-disclaimer { margin:1rem 0 0!important; padding:1rem; border:1px dashed #414146; border-radius:14px; color:#8f8f96!important; font-size:.72rem!important; }

@media (max-width: 760px) {
  .legal-layout { grid-template-columns:1fr; }
  .legal-index { position:static; display:grid; grid-template-columns:1fr 1fr; }
  .legal-index strong { grid-column:1 / -1; }
  .legal-content section { border-radius:16px; }
}
@media (max-width: 420px) {
  .legal-hero { padding-top:2rem; }
  .legal-index { grid-template-columns:1fr; }
  .legal-index strong { grid-column:auto; }
}

/* Percorsi di accesso, pagina palestra e codici — estensione del tema approvato */
.access-choice-actions { display:grid; gap:.65rem; margin-top:1rem; }
.access-choice-actions .button { width:100%; min-height:50px; padding:.8rem .9rem; white-space:normal; text-align:center; }
.access-choice-actions small { color:#a9a9b0; line-height:1.45; text-align:center; }
.access-choice .role-button { border-color:color-mix(in srgb,var(--role-accent),#fff 12%); background:linear-gradient(135deg,var(--role-accent-2),var(--role-accent)); color:#fff; box-shadow:0 12px 26px color-mix(in srgb,var(--role-accent),transparent 78%); }
.access-choice.role-client .role-button { color:#051216; }
.personal-signup-shell { padding-block:4rem; }
.personal-price { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:.8rem; margin:1rem 0 1.3rem; padding:1rem; border:1px solid #235d68; border-radius:16px; background:#0c252b; }
.personal-price strong { color:#67e8f9; font-size:1.65rem; }
.personal-price span { color:#b9cbd0; font-size:.75rem; line-height:1.45; }
.consent-row { display:grid!important; grid-template-columns:24px 1fr; align-items:start; gap:.65rem; color:#bcbcc2; font-size:.72rem; line-height:1.5; }
.consent-row input { width:20px; height:20px; margin-top:.1rem; }
.consent-row a { color:#fff; text-decoration:underline; }
.gym-search-hero { margin-bottom:2rem; }
.gym-entry-actions { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:1rem; max-width:920px; margin:0 auto 3rem; }
.gym-search-form { display:grid; gap:.5rem; }
.gym-search-form > label { color:#d7d7dc; font-size:.75rem; font-weight:850; }
.gym-search-form > div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.65rem; }
.gym-search-form input { min-height:52px; }
.code-entry-button { min-height:52px; }
.public-gym-results { max-width:1000px; margin:0 auto 4rem; }
.public-gym-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.public-gym-grid article { padding:1.5rem; border:1px solid color-mix(in srgb,var(--gym-card-accent),transparent 58%); border-radius:22px; background:linear-gradient(145deg,color-mix(in srgb,var(--gym-card-accent),#111113 85%),#111113); }
.public-gym-grid h2 { margin:.4rem 0; }
.public-gym-grid p { min-height:48px; color:var(--muted); }
.public-gym-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(330px,.8fr); align-items:center; gap:clamp(2rem,5vw,5rem); min-height:690px; padding:4rem 0; }
.public-gym-hero > div { padding:clamp(1.2rem,4vw,3rem); border-left:4px solid var(--gym-card-accent); border-radius:0 24px 24px 0; background:linear-gradient(90deg,color-mix(in srgb,var(--gym-card-accent),#111113 88%),transparent); }
.public-gym-hero h1 { margin:.5rem 0; font-size:clamp(2.8rem,7vw,5.8rem); }
.public-gym-hero p { color:#c8c8cd; font-size:1.05rem; line-height:1.7; }
.public-gym-hero figure { overflow:hidden; margin:0; border:1px solid color-mix(in srgb,var(--gym-card-accent),transparent 55%); border-radius:28px; background:#151517; }
.public-gym-hero figure img { width:100%; min-height:480px; object-fit:cover; }
.public-gym-hero figcaption { padding:1rem; color:var(--gym-card-accent); font-size:.72rem; font-weight:900; }
.join-code-shell input[name="code"] { border-color:#278294; color:#8cecff; font-size:1.05rem; font-weight:950; letter-spacing:.08em; text-transform:uppercase; }
.gym-public-link-card .copy-value-row { margin-bottom:.75rem; }
.printable-code-sheet { margin:0 0 1rem; padding:1.2rem; border:1px solid #356d49; border-radius:22px; background:linear-gradient(145deg,#12251a,#111513); }
.printable-code-sheet > header { display:flex; justify-content:space-between; align-items:start; gap:1rem; }
.printable-code-sheet h2 { margin:.3rem 0; }
.printable-code-sheet header p,.code-security-note { color:#aebcb3; }
.print-code-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.print-code-grid article { display:grid; grid-template-columns:44px 1fr; gap:.2rem .7rem; padding:1rem; border:1px dashed #5b7562; border-radius:16px; background:#f7f7f3; color:#111; }
.print-code-grid img { grid-row:1 / 5; width:44px; height:44px; }
.print-code-grid span { color:#444; font-size:.58rem; font-weight:950; letter-spacing:.08em; }
.print-code-grid strong { font-size:1.15rem; letter-spacing:.08em; }
.print-code-grid small { overflow-wrap:anywhere; color:#444; }
.print-code-grid p { grid-column:1 / -1; margin:.5rem 0 0; color:#333; font-size:.68rem; line-height:1.45; }
.access-code-list { display:grid; gap:.55rem; }
.access-code-list article { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.85rem; border:1px solid var(--line); border-radius:13px; background:#121214; }
.access-code-list strong,.access-code-list span,.access-code-list small { display:block; }
.access-code-list span,.access-code-list small { margin-top:.2rem; color:var(--muted); font-size:.7rem; }
.role-settings-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; margin-top:1rem; }
.role-settings-links a { min-height:92px; padding:1rem; border:1px solid color-mix(in srgb,var(--portal-accent,#e3222b),transparent 65%); border-radius:15px; background:color-mix(in srgb,var(--portal-soft,#221315),#111 38%); }
.role-settings-links strong,.role-settings-links span { display:block; }
.role-settings-links span { margin-top:.3rem; color:var(--muted); font-size:.7rem; }
.pricing-grid-three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.billing-plan-grid { grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }

@media (max-width: 760px) {
  .access-hero { margin-top:2.2rem; }
  .access-choice-actions .button { min-height:52px; }
  .gym-entry-actions { grid-template-columns:1fr; }
  .gym-search-form > div { grid-template-columns:1fr; }
  .gym-search-form .button,.code-entry-button { width:100%; }
  .public-gym-grid,.print-code-grid,.pricing-grid-three { grid-template-columns:1fr; }
  .public-gym-hero { grid-template-columns:1fr; min-height:0; padding-top:2rem; }
  .public-gym-hero figure img { min-height:300px; max-height:380px; }
  .printable-code-sheet > header { flex-direction:column; }
  .role-settings-links { grid-template-columns:1fr; }
  .access-code-list article { align-items:stretch; flex-direction:column; }
  .access-code-list form,.access-code-list button { width:100%; }
}

@media print {
  @page { size:A4 portrait; margin:10mm; }
  body { color:#111!important; background:#fff!important; }
  body * { visibility:hidden!important; }
  .printable-code-sheet,.printable-code-sheet *,
  .demo-print-sheet,.demo-print-sheet * { visibility:visible!important; }
  .printable-code-sheet { position:absolute; inset:0; margin:0; padding:0; border:0; background:#fff; }
  .demo-print-sheet { position:absolute; inset:0; width:100%; margin:0; padding:0; border:0; border-radius:0; background:#fff!important; color:#111!important; }
  .demo-print-sheet > header { padding-bottom:5mm; }
  .demo-print-sheet h2 { margin:5mm 0 1.5mm; color:#111!important; break-after:avoid-page; }
  .demo-print-sheet article { grid-template-columns:minmax(0,1.4fr) minmax(36mm,1fr) minmax(40mm,1fr); gap:3mm; padding:2.4mm 2mm; border-color:#d8d8d8!important; break-inside:avoid-page; page-break-inside:avoid; }
  .demo-print-sheet code { padding:2mm; border:1px solid #ddd; background:#f5f5f5!important; color:#111!important; font-size:9pt; }
  .demo-print-sheet article div span { color:#555!important; }
  .printable-code-sheet > header { margin-bottom:10mm; }
  .print-code-grid { grid-template-columns:repeat(2,1fr); gap:6mm; }
  .print-code-grid article { break-inside:avoid; min-height:42mm; border:1px dashed #555; }
  .no-print { display:none!important; }
}

/* Archivio esercizi, compositore schede e anatomia qualitativa */
.page-exercise-library .app-shell { width:min(100%,1180px); }
.exercise-library-hero { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:1.2rem; margin:.4rem 0 1rem; padding:clamp(1.25rem,4vw,2.2rem); overflow:hidden; border:1px solid #503036; border-radius:26px; background:radial-gradient(circle at 90% 0,#3c161b 0,transparent 36%),linear-gradient(145deg,#211416,#111113 68%); box-shadow:var(--shadow); }
.exercise-library-hero::after { content:""; position:absolute; right:-4rem; bottom:-7rem; width:18rem; height:18rem; border:1px solid #ffffff0d; border-radius:50%; box-shadow:0 0 0 2rem #ffffff05,0 0 0 4rem #ffffff03; pointer-events:none; }
.exercise-library-hero h1 { max-width:15ch; margin:.25rem 0 .7rem; font-size:clamp(2.35rem,7vw,5rem); }
.exercise-library-hero p { max-width:680px; margin:0; color:#c4c4ca; }
.exercise-library-count { position:relative; z-index:1; min-width:150px; padding:1rem; border:1px solid #724047; border-radius:20px; background:#0c0c0ed9; text-align:right; }
.exercise-library-count strong,.exercise-library-count span { display:block; }
.exercise-library-count strong { color:#ff646d; font-size:clamp(2rem,6vw,3.4rem); line-height:.95; }
.exercise-library-count span { margin-top:.35rem; color:#aaaab1; font-size:.66rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.exercise-library-program { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; padding:1rem 1.15rem; border:1px solid #286148; border-radius:18px; background:linear-gradient(145deg,#10281d,#111514); }
.exercise-library-program h2 { margin:.25rem 0; }
.exercise-library-program p { margin:0; color:#aebdb4; font-size:.78rem; }
.exercise-library-program .card-label { color:#65e79e; }
.exercise-library-filters { display:grid; gap:.85rem; margin-bottom:1.2rem; padding:1rem; border:1px solid #38383e; border-radius:20px; background:linear-gradient(150deg,#19191c,#111113); }
.exercise-library-search input { min-height:58px; padding-left:1rem; border-color:#51492b; font-size:1rem; }
.exercise-library-filter-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.65rem; }
.exercise-library-filters label > span { color:#aaaab0; font-size:.66rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.exercise-library-filter-actions { display:flex; flex-wrap:wrap; gap:.55rem; }
.exercise-library-results { min-width:0; }
.exercise-library-results-head { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin:1.4rem 0 .75rem; }
.exercise-library-results-head h2 { margin:.2rem 0 0; }
.exercise-library-results-head > span { color:#98989e; font-size:.72rem; font-weight:850; }
.exercise-library-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; }
.exercise-library-card { display:flex; min-width:0; overflow:hidden; flex-direction:column; border:1px solid #333338; border-radius:20px; background:linear-gradient(155deg,#19191c,#111113 70%); box-shadow:0 12px 30px #0005; transition:transform .18s ease,border-color .18s ease; }
.exercise-library-card:hover { border-color:#5b484b; transform:translateY(-2px); }
.exercise-library-card-media { position:relative; display:grid; grid-template-columns:1fr 1fr; min-height:160px; overflow:hidden; border-bottom:1px solid #2e2e33; background:#050506; cursor:zoom-in; }
.exercise-library-card-media figure { position:relative; min-width:0; margin:0; overflow:hidden; }
.exercise-library-card-media figure + figure { border-left:1px solid #242428; }
.exercise-library-card-media img { width:100%; height:100%; min-height:160px; object-fit:cover; transition:filter .2s ease,transform .22s cubic-bezier(.2,.8,.2,1); }
.exercise-library-card-media figcaption { position:absolute; right:.4rem; bottom:.4rem; padding:.25rem .4rem; border-radius:7px; background:#050506d9; color:#f3f3f4; font-size:.52rem; font-weight:950; letter-spacing:.1em; }
.exercise-library-card-media:hover img,.exercise-library-card-media:focus-visible img { filter:brightness(.78); transform:scale(1.025); }
.exercise-library-card-media:focus-visible { outline:3px solid #65dff1; outline-offset:-3px; }
.exercise-library-zoom-hint { position:absolute; top:50%; left:50%; z-index:3; display:flex; min-height:40px; align-items:center; gap:.4rem; padding:.45rem .62rem; border:1px solid #ffffff38; border-radius:999px; background:#050506d9; color:#fff; font-size:.58rem; font-weight:950; letter-spacing:.04em; white-space:nowrap; box-shadow:0 10px 30px #000b; transform:translate(-50%,-50%); transition:border-color .18s ease,background .18s ease,transform .18s ease; }
.exercise-library-zoom-hint svg { width:16px; height:16px; fill:none; stroke:#65dff1; stroke-linecap:round; stroke-width:1.8; }
.exercise-library-card-media:hover .exercise-library-zoom-hint,.exercise-library-card-media:focus-visible .exercise-library-zoom-hint { border-color:#65dff1; background:#101b1eef; transform:translate(-50%,-50%) scale(1.035); }
.exercise-library-card-media:active .exercise-library-zoom-hint { transform:translate(-50%,-50%) scale(.96); }
.exercise-library-card-body { display:flex; min-width:0; flex:1; flex-direction:column; padding:.85rem; }
.exercise-library-card-status { display:flex; align-items:center; gap:.45rem; margin-bottom:.65rem; }
.exercise-library-card-status > span { display:grid; flex:0 0 27px; width:27px; height:27px; place-items:center; border-radius:9px; font-weight:1000; }
.exercise-library-card-status strong,.exercise-library-card-status small { display:block; }
.exercise-library-card-status strong { font-size:.57rem; letter-spacing:.1em; }
.exercise-library-card-status small { margin-top:.08rem; font-size:.55rem; }
.exercise-library-card-status.is-reviewed > span { background:#143d29; color:#65e79e; }
.exercise-library-card-status.is-reviewed strong { color:#65e79e; }
.exercise-library-card-status.is-open > span { background:#282415; color:#f1c94b; }
.exercise-library-card-status.is-open strong { color:#e8cf76; }
.exercise-library-card h3 { margin:0; font-size:1.15rem; line-height:1.08; overflow-wrap:anywhere; }
.exercise-library-english-name { margin:.28rem 0 .65rem; color:#929299; font-size:.67rem; }
.exercise-library-card-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.35rem; margin:.7rem 0; }
.exercise-library-card-facts div { min-width:0; padding:.45rem; border-radius:9px; background:#0b0b0d; }
.exercise-library-card-facts dt { color:#77777e; font-size:.49rem; font-weight:950; letter-spacing:.06em; text-transform:uppercase; }
.exercise-library-card-facts dd { overflow:hidden; margin:.16rem 0 0; color:#dedee1; font-size:.62rem; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.exercise-library-muscles { display:flex; flex-wrap:wrap; gap:.3rem; min-height:25px; margin-bottom:.7rem; }
.exercise-library-muscles span { padding:.25rem .42rem; border:1px solid #593035; border-radius:999px; background:#261416; color:#ff969d; font-size:.55rem; font-weight:850; }
.exercise-library-muscles .is-secondary { border-color:#594624; background:#241e12; color:#efc969; }
.exercise-library-detail-action { width:100%; margin-top:auto; }
.exercise-library-add-form { display:grid; grid-template-columns:100px minmax(0,1fr); align-items:end; gap:.45rem; margin-top:.55rem; padding-top:.65rem; border-top:1px solid #2e2e33; }
.exercise-library-add-form label { gap:.25rem; }
.exercise-library-add-form label span { color:#9999a0; font-size:.58rem; }
.exercise-library-add-form select,.exercise-library-add-form button { min-height:46px; }
.exercise-library-added { margin-top:.55rem; padding:.65rem; border:1px solid #286148; border-radius:11px; background:#10281d; color:#75e6a6; font-size:.7rem; font-weight:900; text-align:center; }
.exercise-library-pagination { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.65rem; margin:1.2rem 0 2rem; }
.exercise-library-page-numbers { display:flex; align-items:center; justify-content:center; gap:.25rem; }
.exercise-library-page-numbers a { display:grid; width:40px; height:40px; place-items:center; border:1px solid #36363b; border-radius:10px; background:#171719; color:#c8c8cd; font-size:.72rem; font-weight:900; }
.exercise-library-page-numbers a.is-current { border-color:#7d2d34; background:#39161a; color:#ff8b92; }
.exercise-library-pagination .is-disabled { opacity:.35; }

.exercise-visual { display:grid; min-width:0; gap:.65rem; margin:.75rem 0 1rem; padding:.75rem; border:1px solid #38383e; border-radius:18px; background:radial-gradient(circle at 100% 0,#17313a55,transparent 35%),#101012; }
.exercise-visual-header { display:flex; align-items:end; justify-content:space-between; gap:.6rem; }
.exercise-visual-header h2 { margin:.18rem 0 0; font-size:1rem; }
.exercise-visual-header .card-label { color:#6ddcf0; }
.exercise-visual-tabs { display:grid; grid-template-columns:1fr 1fr; min-width:190px; padding:.22rem; border:1px solid #35353a; border-radius:12px; background:#08080a; }
.exercise-visual-tabs button { min-height:40px; padding:.35rem .55rem; border:0; border-radius:9px; background:transparent; color:#898990; font-size:.68rem; font-weight:950; cursor:pointer; }
.exercise-visual-tabs button[aria-selected="true"] { background:linear-gradient(135deg,#342116,#5a1a20); color:#fff; box-shadow:0 6px 16px #0007; }
.exercise-visual-panel[hidden] { display:none!important; }
.exercise-technique-images { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; }
.exercise-technique-images button { position:relative; min-width:0; overflow:hidden; aspect-ratio:4/3; padding:0; border:1px solid #35353a; border-radius:13px; background:#050506; cursor:zoom-in; }
.exercise-technique-images img { width:100%; height:100%; object-fit:cover; }
.exercise-technique-images button > span { position:absolute; right:.4rem; bottom:.4rem; padding:.25rem .42rem; border-radius:7px; background:#050506d9; font-size:.55rem; font-weight:950; letter-spacing:.1em; }
.exercise-visual-hint { margin:.4rem 0 0; color:#85858c; font-size:.62rem; text-align:center; }
.exercise-muscle-map-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; }
.exercise-muscle-map { min-width:0; margin:0; overflow:hidden; border:1px solid #27434b; border-radius:15px; background:radial-gradient(circle at 50% 25%,#11262c,#050607 66%); }
.exercise-muscle-map-stage { position:relative; isolation:isolate; aspect-ratio:1/2; overflow:hidden; background:#050708; }
.exercise-muscle-map-stage > img { position:relative; z-index:0; width:100%; height:100%; object-fit:cover; opacity:.84; filter:grayscale(.18) brightness(.9) contrast(1.12); }
.exercise-muscle-map-stage::after { content:""; position:absolute; z-index:1; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(2,5,6,.04),rgba(2,5,6,.18)); }
.exercise-muscle-map-overlay { position:absolute; z-index:2; inset:0; width:100%; height:100%; overflow:visible; mix-blend-mode:normal; }
.exercise-muscle-zone { vector-effect:non-scaling-stroke; stroke-width:.7; transform-box:fill-box; transform-origin:center; animation:muscle-glow 1.9s ease-in-out infinite alternate; }
.exercise-muscle-zone.is-primary { fill:#f21f32c9; stroke:#ff737d; filter:drop-shadow(0 0 3px #ff1f35) drop-shadow(0 0 7px #d4001f); }
.exercise-muscle-zone.is-secondary { fill:#ff981a8f; stroke:#ffc461; filter:drop-shadow(0 0 2px #ff9c25); animation-delay:-.8s; }
@keyframes muscle-glow { to { opacity:.72; transform:scale(.97); } }
.exercise-muscle-map figcaption { padding:.45rem; border-top:1px solid #22383e; color:#8fb7c0; font-size:.55rem; font-weight:850; text-align:center; }
.exercise-muscle-legend { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.55rem; }
.exercise-muscle-legend > span { display:flex; align-items:center; gap:.35rem; padding:.4rem .5rem; border:1px solid #33343a; border-radius:10px; color:#b9b9bf; font-size:.6rem; }
.exercise-muscle-legend i { width:11px; height:11px; border-radius:50%; background:#f21f32; box-shadow:0 0 8px #f21f32; }
.exercise-muscle-legend .is-secondary i { background:#ff981a; box-shadow:0 0 8px #ff981a; }
.exercise-muscle-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.35rem; margin:.55rem 0 0; padding:0; list-style:none; }
.exercise-muscle-list li { display:grid; grid-template-columns:10px minmax(0,1fr) auto; align-items:center; gap:.35rem; padding:.45rem; border-radius:9px; background:#191114; }
.exercise-muscle-list li > span { width:8px; height:8px; border-radius:50%; background:#f21f32; }
.exercise-muscle-list li.is-secondary { background:#1d1810; }
.exercise-muscle-list li.is-secondary > span { background:#ff981a; }
.exercise-muscle-list strong { overflow:hidden; font-size:.62rem; text-overflow:ellipsis; white-space:nowrap; }
.exercise-muscle-list small { font-size:.5rem; }
.exercise-muscle-disclaimer { margin:.55rem 0 0; padding:.6rem; border-left:2px solid #4c747d; background:#111b1e; color:#91aeb4; font-size:.58rem; line-height:1.5; }
.exercise-guide-hero > .exercise-visual { align-self:start; margin:0; }
.workout-page .exercise-visual { margin:.7rem 0; }
.workout-page .exercise-visual-header h2 { display:none; }
.workout-page .exercise-visual-header .card-label { font-size:.58rem; }

.program-template-choice { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; }
.program-template-option { display:grid; grid-template-columns:22px minmax(0,1fr); align-items:start; gap:.65rem; min-height:88px; padding:.8rem; border:1px solid #3a3a40; border-radius:14px; background:#101012; cursor:pointer; }
.program-template-option:has(input:checked) { border-color:#765a21; background:#292311; box-shadow:inset 0 0 0 1px #f1c94b22; }
.program-template-option input { margin-top:.15rem; accent-color:var(--yellow); }
.program-template-option strong,.program-template-option small { display:block; }
.program-template-option small { margin-top:.25rem; line-height:1.4; }
.program-edit-heading .button { width:min(100%,320px); margin-top:.4rem; }
.program-day-block { display:grid; gap:.55rem; margin:1.25rem 0; }
.program-day-block > header { position:relative; padding:1rem 1rem .8rem; border-left:3px solid var(--red); border-radius:0 14px 14px 0; background:linear-gradient(90deg,#2a1417,#151517 70%); }
.program-day-block > header h2 { margin:.22rem 0; }
.program-day-block > header small { position:absolute; top:1rem; right:1rem; }
.program-editor summary { grid-template-columns:82px minmax(0,1fr); }
.program-editor summary > img { width:82px; height:68px; border-radius:11px; object-fit:cover; background:#050506; }
.program-editor summary > span { min-width:0; color:inherit; font-size:inherit; text-transform:none; }
.program-editor summary > span small,.program-editor summary > span strong,.program-editor summary > span em { display:block; }
.program-editor summary > span small { color:var(--yellow); font-size:.58rem; text-transform:uppercase; }
.program-editor summary > span strong { overflow:hidden; margin:.15rem 0; font-size:.95rem; text-overflow:ellipsis; white-space:nowrap; }
.program-editor summary > span em { color:#9c9ca3; font-size:.64rem; font-style:normal; }
.program-editor-actions { display:flex; flex-wrap:wrap; gap:.35rem; padding:.55rem .8rem; border-top:1px solid #303035; background:#101012; }
.program-editor .program-editor-actions form { padding:0; border:0; }
.program-editor-actions button { min-height:40px; padding:.4rem .65rem; border:1px solid #3d3d43; border-radius:9px; background:#1d1d20; color:#c7c7cc; font-size:.65rem; font-weight:850; }
.program-editor-actions button.danger { border-color:#633036; color:#ff8990; }
.program-editor .program-prescription-form { padding:1rem; }
.program-form-footer { display:flex; align-items:center; justify-content:space-between; gap:.6rem; }
.program-form-footer > a { color:#e7ca6b; font-size:.7rem; font-weight:850; text-decoration:underline; text-underline-offset:.2rem; }
.program-empty-state { margin-bottom:1rem; }
.program-add-bottom { margin-top:1rem; }
.gym-focus-exercise-preview { display:grid; grid-template-columns:72px minmax(0,1fr); min-height:72px; margin:0; overflow:hidden; border:1px solid #3b3b40; border-radius:14px; background:#0a0a0c; }
.gym-focus-exercise-preview img { width:72px; height:72px; object-fit:cover; }
.gym-focus-exercise-preview figcaption { align-self:center; padding:.6rem; color:#a9a9af; font-size:.65rem; font-weight:750; line-height:1.4; }

@media (max-width:900px) {
  .exercise-library-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .exercise-library-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:620px) {
  .workout-program-edit { align-items:center; }
  .program-day > header { grid-template-columns:1fr; }
  .program-library-callout { grid-template-columns:auto minmax(0,1fr); }
  .program-library-callout .button { grid-column:1 / -1; justify-content:center; width:100%; }
  .program-edit-callout { display:block; min-height:210px; }
  .program-edit-callout > img { position:absolute; right:-22px; bottom:-12px; width:138px; height:148px; margin:0; opacity:.42; transform:none; }
  .program-edit-callout-copy { padding:1rem; }
  .program-edit-callout-copy .program-command-step { top:.8rem; right:.8rem; }
  .program-edit-callout-copy .eyebrow { display:block; max-width:calc(100% - 3rem); }
  .program-edit-callout-copy h2 { max-width:calc(100% - 3rem); padding-right:0; font-size:1.08rem; }
  .program-edit-callout-copy p { max-width:75%; font-size:.76rem; }
  .program-edit-callout-copy .button { position:relative; z-index:2; width:100%; justify-content:center; padding-inline:.65rem; font-size:.72rem; }
  .program-day-edit { text-align:left; }
  .exercise-library-hero { grid-template-columns:1fr; align-items:start; border-radius:22px; }
  .exercise-library-count { width:100%; text-align:left; }
  .exercise-library-program { align-items:stretch; flex-direction:column; }
  .exercise-library-grid { grid-template-columns:1fr; }
  .exercise-library-card-media,.exercise-library-card-media img { min-height:145px; }
  .exercise-library-pagination { grid-template-columns:1fr 1fr; }
  .exercise-library-page-numbers { grid-column:1/-1; grid-row:1; overflow-x:auto; justify-content:flex-start; padding-bottom:.25rem; }
  .exercise-library-filter-actions .button { flex:1; }
  .exercise-visual-header { align-items:stretch; flex-direction:column; }
  .exercise-visual-tabs { width:100%; }
  .program-template-choice { grid-template-columns:1fr; }
  .program-form-footer { align-items:stretch; flex-direction:column; }
  .program-form-footer .button { width:100%; }
}
@media (max-width:390px) {
  .exercise-library-filter-grid { grid-template-columns:1fr; }
  .exercise-library-card-facts { grid-template-columns:1fr 1fr; }
  .exercise-library-add-form { grid-template-columns:1fr; }
  .exercise-muscle-list { grid-template-columns:1fr; }
  .program-editor summary { grid-template-columns:68px minmax(0,1fr); padding:.75rem; }
  .program-editor summary > img { width:68px; height:60px; }
  .lightbox { padding:0; }
  .lightbox-shell { height:100%; border-width:0; border-radius:0; }
  .lightbox-stage { min-height:225px; height:min(50dvh,430px); border-radius:15px; }
  .lightbox-panel { padding:.55rem; }
  .lightbox-muscle-list { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .exercise-library-card,.exercise-library-card-media img,.exercise-library-zoom-hint,.exercise-muscle-zone,.lightbox,.lightbox-shell,.lightbox-panel,.lightbox-stage img { transition:none; animation:none; }
}

/* Sostituzione personale degli esercizi */
.user-choice-chip { display:inline-flex; min-height:25px; align-items:center; width:max-content; padding:.25rem .52rem; border:1px solid #267f92; border-radius:999px; background:#0d2930; color:#73dff0; font-size:.56rem; font-style:normal; font-weight:950; letter-spacing:.07em; text-transform:uppercase; }
.exercise-title { flex-wrap:wrap; }
.exercise-title > .user-choice-chip { margin-left:auto; }
.exercise-swap-entry { display:grid; grid-template-columns:minmax(0,1fr) minmax(230px,auto); align-items:center; gap:.75rem; margin:0 0 .85rem; padding:.72rem; border:1px solid #31515a; border-radius:15px; background:radial-gradient(circle at 100% 0,#12344088,transparent 52%),linear-gradient(145deg,#111a1d,#111113 70%); box-shadow:inset 0 1px 0 #ffffff08; }
.exercise-swap-entry > div { min-width:0; }
.exercise-swap-entry > div > span,.exercise-swap-entry > div > strong,.exercise-swap-entry > div > small { display:block; }
.exercise-swap-entry > div > span { color:#69d8ea; font-size:.56rem; font-weight:950; letter-spacing:.13em; }
.exercise-swap-entry > div > strong { margin:.18rem 0; font-size:.9rem; }
.exercise-swap-entry > div > small { color:#9daeb2; font-size:.64rem; line-height:1.4; }
.exercise-swap-entry > button { display:flex; min-height:50px; align-items:center; justify-content:center; gap:.48rem; padding:.55rem .75rem; border:1px solid #348ca0; border-radius:12px; background:linear-gradient(135deg,#117c98,#0a526d); color:#fff; font-size:.72rem; cursor:pointer; box-shadow:0 9px 20px #032e3c55; }
.exercise-swap-entry > button > span { font-size:1.1rem; }
.exercise-swap-entry > button > strong { font:inherit; font-weight:950; }
.exercise-swap-entry > button:hover,.exercise-swap-entry > button:focus-visible { border-color:#83e8f6; background:linear-gradient(135deg,#158eaa,#09627e); }

.gym-focus-swap { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:.55rem; width:100%; min-height:52px; padding:.45rem .65rem; border:1px solid #35616a; border-radius:13px; background:#0d1b1f; color:#fff; text-align:left; }
.gym-focus-swap > span:first-child { display:grid; width:32px; height:32px; place-items:center; border-radius:9px; background:#123b46; color:#62d8ea; font-size:1.1rem; }
.gym-focus-swap strong,.gym-focus-swap small { display:block; }
.gym-focus-swap strong { font-size:.74rem; }
.gym-focus-swap small { margin-top:.08rem; color:#75d7e5; font-size:.62rem; font-weight:850; }
.gym-focus-swap > b { color:#69d8ea; font-size:1.15rem; }

.program-list { overflow:visible; }
.program-exercise-row { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 88px; align-items:stretch; border-bottom:1px solid var(--line); background:var(--surface); }
.program-exercise-row:last-child { border-bottom:0; border-radius:0 0 17px 17px; }
.program-exercise-row .program-exercise-main { min-width:0; border-bottom:0; }
.program-exercise-row .program-exercise-main > div { min-width:0; }
.program-exercise-row .program-exercise-main em { display:block; margin-top:.18rem; color:#6bcddd; font-size:.58rem; font-style:normal; font-weight:850; }
.program-exercise-swap { display:grid; min-width:0; min-height:58px; align-content:center; justify-items:center; gap:.16rem; margin:.5rem .5rem .5rem 0; padding:.35rem; border:1px solid #315862; border-radius:12px; background:#101d20; color:#75dceb; cursor:pointer; }
.program-exercise-swap > span { font-size:1.15rem; line-height:1; }
.program-exercise-swap > strong { font-size:.66rem; }
.program-exercise-swap:hover,.program-exercise-swap:focus-visible { border-color:#72dceb; background:#142a30; color:#a7f2fc; }
.program-user-choice { position:absolute; z-index:2; top:.35rem; right:94px; pointer-events:none; }
.exercise-personalization-entry { margin-bottom:1rem; border-color:#31515a; background:linear-gradient(145deg,#102127,var(--surface) 68%); }
.exercise-personalization-entry .button { width:min(100%,320px); }
.client-exercise-choice-note { margin:1rem 0; border-color:#4e3a20; background:linear-gradient(145deg,#211b10,var(--surface) 72%); }
.client-exercise-choice-list { display:grid; gap:.45rem; }
.client-exercise-choice-list article { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:.55rem; padding:.65rem; border:1px solid #34343a; border-radius:12px; background:#0f0f11; }
.client-exercise-choice-list article > div { min-width:0; }
.client-exercise-choice-list span,.client-exercise-choice-list strong { display:block; }
.client-exercise-choice-list span { color:#9999a0; font-size:.51rem; font-weight:950; letter-spacing:.09em; }
.client-exercise-choice-list strong { overflow:hidden; margin-top:.18rem; font-size:.72rem; text-overflow:ellipsis; white-space:nowrap; }
.client-exercise-choice-list article > div:last-child strong { color:#79ddec; }
.client-exercise-choice-list article > b { color:#d5b94e; }
.client-exercise-choice-empty { padding:.65rem; border-radius:10px; background:#101012; color:#8e8e95; }

.exercise-swap-open { overflow:hidden; }
.exercise-swap-dialog { position:fixed; inset:0; box-sizing:border-box; width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; margin:0; padding:max(.55rem,env(safe-area-inset-top)) max(.55rem,env(safe-area-inset-right)) max(.55rem,env(safe-area-inset-bottom)) max(.55rem,env(safe-area-inset-left)); overflow:hidden; border:0; background:transparent; color:var(--text); opacity:0; transition:opacity .2s ease; }
.exercise-swap-dialog[open] { display:grid; place-items:center; }
.exercise-swap-dialog::backdrop { background:#000e; backdrop-filter:blur(9px); animation:exercise-swap-backdrop .2s ease both; }
.exercise-swap-dialog.is-ready { opacity:1; }
.exercise-swap-shell { display:grid; grid-template-rows:auto minmax(0,1fr); width:min(100%,780px); height:min(100%,900px); overflow:hidden; border:1px solid #414249; border-radius:27px; background:radial-gradient(circle at 100% 0,#10313a70,transparent 34%),linear-gradient(155deg,#18191b,#09090b 70%); box-shadow:0 34px 110px #000,0 0 0 1px #ffffff08 inset; transform:translateY(14px) scale(.97); transition:transform .22s cubic-bezier(.2,.8,.2,1); }
.exercise-swap-dialog.is-ready .exercise-swap-shell { transform:none; }
.exercise-swap-header { display:flex; align-items:flex-start; justify-content:space-between; gap:.8rem; padding:.85rem .9rem; border-bottom:1px solid #2d2e33; background:#101113ed; }
.exercise-swap-header > div { min-width:0; }
.exercise-swap-header span { display:block; color:#64d8e9; font-size:.56rem; font-weight:950; letter-spacing:.14em; }
.exercise-swap-header h2 { margin:.2rem 0 .12rem; font-size:clamp(1.25rem,5vw,1.75rem); line-height:1; }
.exercise-swap-header p { margin:0; color:#9ea4a7; font-size:.65rem; line-height:1.35; }
.exercise-swap-close { display:grid; flex:0 0 46px; width:46px; height:46px; place-items:center; padding:0; border:1px solid #555860; border-radius:50%; background:#232429; color:#fff; font-size:1.6rem; line-height:1; cursor:pointer; }
.exercise-swap-close:hover,.exercise-swap-close:focus-visible { border-color:#73deed; background:#293136; }
.exercise-swap-body { min-height:0; overflow:auto; overscroll-behavior:contain; padding:.75rem; }
.exercise-swap-view { min-height:100%; }
.exercise-swap-view[hidden],.exercise-swap-state[hidden] { display:none!important; }
.exercise-swap-view.is-active { animation:exercise-swap-view-in .2s ease both; }
.exercise-swap-current { position:sticky; top:-.75rem; z-index:12; display:grid; grid-template-columns:72px minmax(0,1fr) auto; align-items:center; gap:.65rem; min-height:84px; margin-bottom:.7rem; padding:.5rem; overflow:hidden; border:1px solid #44454b; border-radius:15px; background:linear-gradient(145deg,#111316,#0b0b0d); box-shadow:0 10px 24px #0008; transition:border-color .18s ease,box-shadow .18s ease,background .18s ease; }
.exercise-swap-current > img { width:72px; height:72px; border-radius:11px; object-fit:cover; background:#050506; }
.exercise-swap-current > div { min-width:0; }
.exercise-swap-current span,.exercise-swap-current strong,.exercise-swap-current small { display:block; }
.exercise-swap-current span { color:#d4ba56; font-size:.52rem; font-weight:950; letter-spacing:.11em; }
.exercise-swap-current strong { overflow:hidden; margin:.16rem 0; font-size:.88rem; text-overflow:ellipsis; white-space:nowrap; }
.exercise-swap-current small { overflow:hidden; color:#96969e; font-size:.61rem; text-overflow:ellipsis; white-space:nowrap; }
.exercise-swap-current > button { min-height:44px; padding:.4rem .55rem; border:1px solid #5c4c26; border-radius:10px; background:#292312; color:#eed474; font-size:.59rem; font-weight:900; cursor:pointer; }
.exercise-swap-drop-cue { position:absolute; inset:.35rem; z-index:4; display:grid; grid-template-columns:52px minmax(0,1fr); grid-template-rows:auto auto; align-content:center; align-items:center; gap:.05rem .65rem; padding:.45rem .65rem; border:1px dashed #5addf3; border-radius:12px; background:linear-gradient(135deg,#0c2d36f5,#07181df5); opacity:0; pointer-events:none; transform:scale(.97); transition:opacity .16s ease,transform .16s ease,border-color .16s ease,background .16s ease; }
.exercise-swap-drop-cue > span { grid-row:1/3; display:grid; width:48px; height:48px; place-items:center; border:1px solid #62ddef; border-radius:50%; background:#123d47; color:#9af3ff; font-size:1.5rem; box-shadow:0 0 24px #3bd7ee55; }
.exercise-swap-drop-cue > strong { align-self:end; font-size:.85rem; }
.exercise-swap-drop-cue > small { align-self:start; overflow:hidden; color:#a5cdd3; font-size:.58rem; text-overflow:ellipsis; white-space:nowrap; }
.exercise-swap-current.is-drop-target { border-color:#4cd3e8; box-shadow:0 0 0 1px #4cd3e855,0 0 34px #1bbbd04a,0 14px 32px #000b; }
.exercise-swap-current.is-drop-target > img,.exercise-swap-current.is-drop-target > div:not(.exercise-swap-drop-cue),.exercise-swap-current.is-drop-target > button { opacity:.12; }
.exercise-swap-current.is-drop-target .exercise-swap-drop-cue { opacity:1; transform:none; }
.exercise-swap-current.is-drag-over { border-color:#62e59d; background:linear-gradient(145deg,#103425,#071c13); box-shadow:0 0 0 2px #50e59355,0 0 42px #35d78566,0 16px 36px #000c; }
.exercise-swap-current.is-drag-over .exercise-swap-drop-cue { border-color:#72e9aa; background:linear-gradient(135deg,#12442cf7,#092419f7); }
.exercise-swap-current.is-drag-over .exercise-swap-drop-cue > span { border-color:#6beaab; background:#174f33; color:#c3ffdc; box-shadow:0 0 28px #48df945f; }
.exercise-swap-assist { display:grid; gap:.58rem; margin:0 0 .72rem; padding:.68rem; border:1px solid #2c5963; border-radius:16px; background:radial-gradient(circle at 100% 0,#1748568f,transparent 48%),linear-gradient(145deg,#101a1d,#0c0d0f 74%); box-shadow:inset 0 1px 0 #ffffff08; }
.exercise-swap-assist-copy > span,.exercise-swap-assist-copy > strong,.exercise-swap-assist-copy > small { display:block; }
.exercise-swap-assist-copy > span { color:#6bdded; font-size:.52rem; font-weight:950; letter-spacing:.13em; }
.exercise-swap-assist-copy > strong { margin:.14rem 0 .1rem; font-size:.86rem; }
.exercise-swap-assist-copy > small { color:#91a4a8; font-size:.6rem; line-height:1.35; }
.exercise-swap-reasons { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.42rem; }
.exercise-swap-reasons > button { display:grid; grid-template-columns:26px minmax(0,1fr); min-width:0; min-height:58px; align-items:center; gap:.38rem; padding:.38rem .42rem; border:1px solid #34383d; border-radius:11px; background:#111216; color:#d6d7da; text-align:left; cursor:pointer; transition:border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease; }
.exercise-swap-reasons > button > span { display:grid; width:25px; height:25px; place-items:center; border:1px solid #42474d; border-radius:50%; color:#7d858a; font-size:.48rem; font-weight:950; }
.exercise-swap-reasons > button > strong { min-width:0; font-size:.58rem; line-height:1.16; }
.exercise-swap-reasons > button:hover,.exercise-swap-reasons > button:focus-visible { border-color:#5bcfe1; transform:translateY(-1px); }
.exercise-swap-reasons > button[aria-pressed="true"] { border-color:#4fd1e5; background:linear-gradient(135deg,#123641,#102329); color:#ecfdff; box-shadow:0 0 0 1px #4fd1e522,0 8px 20px #00181e88; }
.exercise-swap-reasons > button[aria-pressed="true"] > span { border-color:#67dced; background:#17434d; color:#aef5ff; }
.exercise-swap-tools { display:grid; grid-template-columns:minmax(0,1fr) minmax(160px,.42fr); gap:.55rem; margin-bottom:.75rem; }
.exercise-swap-tools label { min-width:0; }
.exercise-swap-tools label > span { display:block; margin:0 0 .28rem .1rem; color:#a7a7ae; font-size:.56rem; font-weight:900; letter-spacing:.06em; }
.exercise-swap-tools input,.exercise-swap-tools select { min-height:48px; background:#0e0e10; }
.exercise-swap-results-heading { display:flex; align-items:end; justify-content:space-between; gap:.65rem; margin:.2rem 0 .35rem; }
.exercise-swap-results-heading span,.exercise-swap-results-heading strong { display:block; }
.exercise-swap-results-heading span { color:#65d9e9; font-size:.53rem; font-weight:950; letter-spacing:.12em; }
.exercise-swap-results-heading strong { margin-top:.15rem; font-size:.85rem; }
.exercise-swap-results-heading > small { color:#9999a1; font-size:.62rem; }
.exercise-swap-status { min-height:1.15rem; margin:0 0 .35rem; color:#9aa9ac; font-size:.62rem; }
.exercise-swap-results { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:.6rem; padding-bottom:.2rem; }
.exercise-swap-more { display:block; min-width:min(100%,260px); min-height:48px; margin:.75rem auto .2rem; }
.exercise-swap-more[hidden] { display:none!important; }
.exercise-swap-option { position:relative; display:grid; grid-template-rows:minmax(0,1fr) auto; min-width:0; min-height:285px; overflow:hidden; border:1px solid #34353a; border-radius:16px; background:#111113; color:#fff; box-shadow:0 10px 26px #0005; transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease,opacity .18s ease,filter .18s ease; }
.exercise-swap-option:hover,.exercise-swap-option:focus-within { border-color:#61d8e9; box-shadow:0 14px 32px #0008,0 0 0 2px #46c9dd22; transform:translateY(-2px); }
.exercise-swap-option-select { display:grid; grid-template-rows:auto minmax(0,1fr) auto; min-width:0; padding:0; border:0; background:transparent; color:#fff; text-align:left; cursor:pointer; }
.exercise-swap-option-select:disabled,.exercise-swap-drag-handle:disabled { cursor:not-allowed; opacity:.5; }
.exercise-swap-option-select > img { width:100%; aspect-ratio:4/3; object-fit:cover; background:#050506; }
.exercise-swap-option-copy { display:grid; align-content:start; gap:.25rem; min-width:0; padding:.58rem .62rem .35rem; }
.exercise-swap-option-muscle { overflow:hidden; color:#66d9e9; font-size:.52rem; font-weight:950; letter-spacing:.08em; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.exercise-swap-option-copy > strong { display:-webkit-box; overflow:hidden; min-height:2.2em; font-size:.8rem; line-height:1.12; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.exercise-swap-option-facts { display:flex; flex-wrap:wrap; gap:.22rem; }
.exercise-swap-option-facts i { padding:.22rem .34rem; border-radius:6px; background:#202126; color:#aaaab1; font-size:.49rem; font-style:normal; }
.exercise-swap-option-copy > em { display:-webkit-box; overflow:hidden; color:#8f9699; font-size:.55rem; font-style:normal; line-height:1.35; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.exercise-swap-option-select > b { display:flex; min-height:38px; align-items:center; justify-content:flex-end; padding:.35rem .62rem; border-top:1px solid #2f3035; color:#75ddeb; font-size:.56rem; }
.exercise-swap-drag-handle { display:flex; min-height:48px; align-items:center; justify-content:center; gap:.4rem; padding:.38rem .5rem; border:0; border-top:1px solid #30353a; background:linear-gradient(135deg,#15262b,#102027); color:#8fe7f3; cursor:grab; touch-action:none; }
.exercise-swap-drag-handle:active { cursor:grabbing; }
.exercise-swap-drag-handle > span { font-size:1.05rem; line-height:1; letter-spacing:-.12em; }
.exercise-swap-drag-handle > strong { font-size:.58rem; }
.exercise-swap-results.is-dragging .exercise-swap-option:not(.is-drag-source) { opacity:.52; filter:saturate(.65); }
.exercise-swap-option.is-drag-source { border-style:dashed; border-color:#61d8e9; opacity:.34; transform:scale(.97); box-shadow:inset 0 0 0 1px #61d8e944; }
.exercise-swap-drag-ghost { position:fixed; top:0; left:0; z-index:1000; display:grid; grid-template-columns:64px minmax(0,1fr); width:min(220px,72vw); min-height:76px; align-items:center; gap:.55rem; padding:.38rem; overflow:hidden; border:1px solid #6de5f5; border-radius:15px; background:linear-gradient(145deg,#17323a,#0b1114); color:#fff; pointer-events:none; box-shadow:0 22px 48px #000d,0 0 30px #32d1e866; animation:exercise-swap-ghost-in .16s ease both; will-change:transform; }
.exercise-swap-drag-ghost > img { width:64px; height:64px; border-radius:10px; object-fit:cover; }
.exercise-swap-drag-ghost > div { min-width:0; }
.exercise-swap-drag-ghost span,.exercise-swap-drag-ghost strong,.exercise-swap-drag-ghost small { display:block; }
.exercise-swap-drag-ghost span { color:#72deed; font-size:.48rem; font-weight:950; letter-spacing:.1em; }
.exercise-swap-drag-ghost strong { overflow:hidden; margin:.1rem 0; font-size:.7rem; text-overflow:ellipsis; white-space:nowrap; }
.exercise-swap-drag-ghost small { overflow:hidden; color:#9cb0b4; font-size:.52rem; text-overflow:ellipsis; white-space:nowrap; }
.exercise-swap-dragging { user-select:none; }
.exercise-swap-skeleton { min-height:300px; border:1px solid #303136; border-radius:16px; background:linear-gradient(100deg,#151517 25%,#222328 42%,#151517 60%); background-size:220% 100%; animation:exercise-swap-shimmer 1.1s linear infinite; }
.exercise-swap-confirm-view { display:grid; align-content:start; max-width:650px; margin:auto; }
.exercise-swap-confirm-heading { text-align:center; }
.exercise-swap-confirm-heading > span { color:#65d9e9; font-size:.55rem; font-weight:950; letter-spacing:.13em; }
.exercise-swap-confirm-heading h3 { margin:.25rem 0; font-size:clamp(1.2rem,5vw,1.65rem); }
.exercise-swap-confirm-heading p { margin:0; color:#a3a3aa; font-size:.68rem; }
.exercise-swap-comparison { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:.5rem; margin:.9rem 0 .7rem; }
.exercise-swap-comparison > article { display:grid; min-width:0; gap:.28rem; padding:.55rem; border:1px solid #3b3b41; border-radius:15px; background:#101012; }
.exercise-swap-comparison > article.is-after { border-color:#2e7584; background:#102126; }
.exercise-swap-comparison article > span { color:#97979f; font-size:.5rem; font-weight:950; letter-spacing:.12em; }
.exercise-swap-comparison article.is-after > span { color:#69d9e9; }
.exercise-swap-comparison img { width:100%; aspect-ratio:4/3; border-radius:10px; object-fit:cover; background:#050506; }
.exercise-swap-comparison strong { overflow:hidden; font-size:.75rem; text-overflow:ellipsis; white-space:nowrap; }
.exercise-swap-comparison small { overflow:hidden; min-height:1.2em; color:#96969d; font-size:.55rem; text-overflow:ellipsis; white-space:nowrap; }
.exercise-swap-comparison > b { color:#e6c956; font-size:1.35rem; }
.exercise-swap-why { padding:.7rem; border-left:3px solid #45aec1; border-radius:0 11px 11px 0; background:#101d20; }
.exercise-swap-why span { color:#6cd9e8; font-size:.53rem; font-weight:950; letter-spacing:.1em; }
.exercise-swap-why p { margin:.25rem 0 0; color:#c7d2d4; font-size:.68rem; line-height:1.45; }
.exercise-swap-motivation { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.6rem; margin:.7rem 0 0; padding:.62rem .68rem; border:1px solid #345966; border-radius:11px; background:#101d21; }
.exercise-swap-motivation[hidden] { display:none; }
.exercise-swap-motivation > div > span,.exercise-swap-motivation > div > strong { display:block; }
.exercise-swap-motivation > div > span { color:#6bdbea; font-size:.5rem; font-weight:950; letter-spacing:.11em; }
.exercise-swap-motivation > div > strong { margin-top:.14rem; font-size:.7rem; }
.exercise-swap-motivation > button { min-height:44px; padding:.35rem .62rem; border:1px solid #3e737e; border-radius:9px; background:#152d33; color:#8ce7f2; font-size:.58rem; font-weight:900; cursor:pointer; }
.exercise-swap-motivation > input { display:none; }
.exercise-swap-scope { margin:.65rem 0; padding:.6rem; border:1px solid #4d4324; border-radius:10px; background:#211d10; color:#d7c986; font-size:.62rem; line-height:1.45; }
.exercise-swap-confirm-actions,.exercise-swap-error-actions { display:grid; grid-template-columns:1fr 1.35fr; gap:.55rem; margin-top:.1rem; }
.exercise-swap-confirm-actions .button,.exercise-swap-error-actions .button { min-height:52px; }
.exercise-swap-state { display:grid; min-height:230px; align-content:center; justify-items:center; gap:.5rem; padding:1.2rem; text-align:center; }
.exercise-swap-state > span { display:grid; width:58px; height:58px; place-items:center; border:1px solid #4d4e55; border-radius:50%; background:#202125; color:#bfc0c5; font-size:1.65rem; font-weight:950; }
.exercise-swap-state > span.is-success { border-color:#2f8b5d; background:#123522; color:#71e4a6; }
.exercise-swap-state > span.is-error { border-color:#8b3940; background:#35171a; color:#ff8c94; }
.exercise-swap-state h3 { margin:.2rem 0 0; }
.exercise-swap-state p { max-width:460px; margin:0 0 .4rem; color:#9e9ea5; font-size:.72rem; line-height:1.5; }
.exercise-swap-state > .button { min-width:180px; min-height:48px; }
.exercise-swap-error-actions { width:min(100%,420px); }

@keyframes exercise-swap-backdrop { from { opacity:0; } to { opacity:1; } }
@keyframes exercise-swap-view-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
@keyframes exercise-swap-shimmer { to { background-position:-120% 0; } }
@keyframes exercise-swap-ghost-in { from { opacity:0; scale:.88; } to { opacity:1; scale:1; } }

@media (max-width:620px) {
  .exercise-swap-entry { grid-template-columns:minmax(0,1fr) auto; gap:.55rem; margin-bottom:.7rem; padding:.58rem .62rem; }
  .exercise-swap-entry > div > span,.exercise-swap-entry > div > small { display:none; }
  .exercise-swap-entry > div > strong { margin:0; font-size:.72rem; line-height:1.25; }
  .exercise-swap-entry > button { width:auto; min-height:44px; padding:.45rem .58rem; }
  .exercise-swap-entry > button > strong { max-width:8.5rem; font-size:.63rem; line-height:1.2; }
  .exercise-swap-dialog { padding:0; }
  .exercise-swap-shell { width:100%; height:100%; border-width:0; border-radius:0; }
  .exercise-swap-header { padding:max(.75rem,env(safe-area-inset-top)) .75rem .7rem; }
  .exercise-swap-body { padding:.65rem .65rem max(.8rem,env(safe-area-inset-bottom)); }
  .exercise-swap-current { top:-.65rem; grid-template-columns:62px minmax(0,1fr); }
  .exercise-swap-current > img { width:62px; height:62px; }
  .exercise-swap-current > button { grid-column:1/-1; width:100%; }
  .exercise-swap-drop-cue { grid-template-columns:46px minmax(0,1fr); }
  .exercise-swap-drop-cue > span { width:42px; height:42px; }
  .exercise-swap-tools { grid-template-columns:minmax(0,1fr) 138px; }
  .exercise-swap-results { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; }
  .exercise-swap-option { min-height:270px; }
  .exercise-swap-option-copy { padding:.5rem .52rem .3rem; }
  .exercise-swap-option-copy > strong { font-size:.75rem; }
  .program-exercise-row { grid-template-columns:minmax(0,1fr) 76px; }
  .program-exercise-swap { margin:.45rem .4rem .45rem 0; }
  .program-user-choice { right:80px; }
}
@media (max-width:390px) {
  .exercise-swap-header p { max-width:245px; }
  .exercise-swap-tools { grid-template-columns:1fr; }
  .exercise-swap-reasons { gap:.3rem; }
  .exercise-swap-reasons > button { grid-template-columns:22px minmax(0,1fr); min-height:56px; gap:.28rem; padding:.3rem; }
  .exercise-swap-reasons > button > span { width:22px; height:22px; }
  .exercise-swap-reasons > button > strong { font-size:.54rem; }
  .exercise-swap-results { gap:.42rem; }
  .exercise-swap-option { min-height:250px; border-radius:14px; }
  .exercise-swap-option-copy > em { display:none; }
  .exercise-swap-comparison { gap:.35rem; }
  .exercise-swap-comparison > article { padding:.42rem; }
  .exercise-swap-confirm-actions { grid-template-columns:1fr; }
  .client-exercise-choice-list article { grid-template-columns:1fr; }
  .client-exercise-choice-list article > b { transform:rotate(90deg); }
}
@media (max-width:340px) {
  .exercise-swap-reasons { grid-template-columns:1fr; }
  .exercise-swap-results { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .exercise-swap-dialog,.exercise-swap-shell,.exercise-swap-view,.exercise-swap-option,.exercise-swap-skeleton,.exercise-swap-current,.exercise-swap-drop-cue,.exercise-swap-reasons > button,.exercise-swap-drag-ghost { transition:none!important; animation:none!important; }
}

/* Super Admin: alberatura account e accesso assistito */
.impersonation-bar { position:sticky; top:0; z-index:70; display:flex; align-items:center; justify-content:center; gap:clamp(1rem,4vw,3rem); min-height:72px; padding:.7rem 1rem; border-bottom:1px solid rgba(255,255,255,.22); background:linear-gradient(100deg,#a80e18,#e3222b 52%,#8e0912); color:#fff; box-shadow:0 14px 35px rgba(0,0,0,.38); }
.has-impersonation .topbar { position:relative; }
.impersonation-bar > div { display:grid; line-height:1.2; }
.impersonation-bar span { font-size:.62rem; font-weight:950; letter-spacing:.14em; opacity:.82; }
.impersonation-bar strong { margin:.1rem 0; font-size:.95rem; }
.impersonation-bar small { font-size:.72rem; opacity:.86; }
.impersonation-bar form { margin:0; }
.button-light { min-height:44px; border-color:rgba(255,255,255,.5); background:#fff; color:#9f1018; box-shadow:0 8px 20px rgba(70,0,4,.26); }
.platform-access-guide { overflow:hidden; }
.platform-access-summary { display:flex; gap:.7rem; margin-top:1rem; }
.platform-access-summary span { display:flex; align-items:baseline; gap:.35rem; min-width:105px; padding:.7rem .85rem; border:1px solid rgba(255,255,255,.09); border-radius:14px; background:rgba(255,255,255,.035); color:#aaaab1; font-size:.75rem; }
.platform-access-summary strong { color:#fff; font-size:1.25rem; }
.platform-tree { display:grid; gap:.75rem; margin-top:1rem; }
.platform-tree-workspace { overflow:hidden; border:1px solid rgba(255,255,255,.1); border-radius:20px; background:linear-gradient(145deg,#19191b,#111113); box-shadow:0 18px 45px rgba(0,0,0,.23),inset 0 1px rgba(255,255,255,.04); }
.platform-tree-workspace > summary { display:grid; grid-template-columns:52px minmax(0,1fr) auto; gap:.8rem; align-items:center; min-height:88px; padding:.9rem; cursor:pointer; list-style:none; }
.platform-tree-workspace > summary::-webkit-details-marker { display:none; }
.platform-tree-workspace > summary::after { content:'+'; grid-column:3; color:#8e8e96; font-size:1.2rem; font-weight:700; }
.platform-tree-workspace > summary > .status-pill { grid-column:3; grid-row:1; margin-right:1.8rem; }
.platform-tree-workspace[open] > summary::after { content:'−'; color:var(--portal-accent); }
.platform-tree-workspace[open] > summary { border-bottom:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.018); }
.platform-tree-avatar { display:grid; width:52px; height:52px; place-items:center; border:1px solid rgba(227,34,43,.42); border-radius:16px; background:linear-gradient(145deg,rgba(227,34,43,.28),rgba(227,34,43,.06)); color:#fff; font-size:1.15rem; font-weight:950; }
.platform-tree-title { grid-column:2; grid-row:1; min-width:0; display:grid; gap:.16rem; }
.platform-tree-title small { color:#ee5159; font-size:.58rem; font-weight:950; letter-spacing:.12em; }
.platform-tree-title strong { overflow:hidden; color:#fff; font-size:1rem; text-overflow:ellipsis; white-space:nowrap; }
.platform-tree-title span { color:#96969e; font-size:.72rem; }
.platform-tree-body { display:grid; gap:.8rem; padding:.8rem; }
.platform-tree-branch { overflow:hidden; border:1px solid rgba(255,255,255,.08); border-radius:16px; background:#111113; }
.platform-tree-branch > header { display:flex; align-items:center; gap:.65rem; padding:.75rem .8rem; background:rgba(255,255,255,.025); }
.platform-tree-branch > header > div { display:grid; gap:.1rem; }
.platform-tree-branch > header strong { font-size:.84rem; }
.platform-tree-branch > header small { color:#8f8f97; font-size:.68rem; }
.platform-branch-icon { display:grid; width:32px; height:32px; place-items:center; border-radius:10px; background:rgba(227,34,43,.13); color:#ef565e; font-size:.62rem; font-weight:950; }
.platform-tree-accounts { display:grid; }
.platform-tree-account { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.7rem; align-items:center; padding:.75rem .8rem; border-top:1px solid rgba(255,255,255,.06); }
.platform-tree-account > div { min-width:0; display:grid; gap:.14rem; }
.platform-tree-account strong { overflow:hidden; font-size:.84rem; text-overflow:ellipsis; white-space:nowrap; }
.platform-tree-account span,.platform-tree-account small { overflow:hidden; color:#a0a0a7; font-size:.68rem; text-overflow:ellipsis; white-space:nowrap; }
.platform-tree-account small { color:#74747c; }
.platform-impersonate-form { margin:0; }
.button-compact { min-height:42px; padding:.55rem .72rem; font-size:.7rem; white-space:nowrap; }
@media (max-width:620px) {
  .impersonation-bar { align-items:stretch; flex-direction:column; gap:.55rem; padding:.65rem .8rem; text-align:center; }
  .impersonation-bar form,.impersonation-bar .button { width:100%; }
  .impersonation-bar small { display:none; }
  .platform-tree-workspace > summary { grid-template-columns:44px minmax(0,1fr); min-height:80px; padding:.75rem; }
  .platform-tree-avatar { width:44px; height:44px; border-radius:13px; }
  .platform-tree-workspace > summary > .status-pill { display:none; }
  .platform-tree-workspace > summary { position:relative; }
  .platform-tree-workspace > summary::after { position:absolute; top:1.05rem; right:.8rem; }
  .platform-tree-title { padding-right:1.8rem; }
  .platform-tree-account { grid-template-columns:1fr; }
  .platform-impersonate-form,.platform-impersonate-form .button { width:100%; }
}
@media (prefers-reduced-motion:reduce) {
  .platform-tree-workspace,.platform-tree-workspace > summary { scroll-behavior:auto; }
}

/* Home training: uses only the approved MakoSet surface and role tokens. */
.home-training-entry,.workout-home-mode{display:flex;align-items:center;gap:1rem;margin:1rem 0;padding:1.15rem;border:1px solid color-mix(in srgb,var(--portal-accent),var(--line) 72%);border-radius:22px;background:linear-gradient(145deg,color-mix(in srgb,var(--portal-soft),var(--surface) 44%),var(--surface) 72%);color:var(--text);box-shadow:var(--shadow)}
.home-training-entry>div{flex:1}.home-training-entry h2,.home-training-entry p{margin:.2rem 0}.home-training-entry p{color:var(--muted)}.home-training-entry-icon,.home-training-hero-icon{display:grid;place-items:center;flex:0 0 54px;width:54px;height:54px;border-radius:17px;background:linear-gradient(145deg,var(--portal-accent),var(--portal-accent-2));color:#fff;box-shadow:0 10px 28px color-mix(in srgb,var(--portal-accent),transparent 72%)}
.home-training-entry svg,.home-training-hero svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.home-training-hero{display:flex;align-items:center;gap:1.2rem;margin-bottom:1rem;padding:1.5rem;border:1px solid color-mix(in srgb,var(--portal-accent),var(--line) 76%);border-radius:26px;background:radial-gradient(circle at 8% 20%,color-mix(in srgb,var(--portal-accent),transparent 86%),transparent 32%),var(--surface);color:var(--text);box-shadow:var(--shadow)}.home-training-hero>div:last-child{min-width:0}.home-training-hero h1{margin:.18rem 0;font-size:clamp(1.8rem,5vw,3.25rem);overflow-wrap:anywhere}.home-training-hero p{max-width:760px;margin:.35rem 0 0;color:var(--muted);overflow-wrap:anywhere}
.home-training-path-choice{margin:0 0 1rem;padding:1.25rem;border:1px solid var(--line);border-radius:24px;background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.home-training-path-heading{margin-bottom:.85rem}.home-training-path-heading h2{margin:.2rem 0;color:var(--text)}.home-training-path-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.home-training-path-card{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:start;gap:.8rem;min-width:0;padding:1rem;border:1px solid var(--line);border-radius:18px;background:var(--surface-2);color:var(--text);text-decoration:none}.home-training-path-card>span{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--surface-3);color:var(--portal-accent);font-weight:950}.home-training-path-card strong{display:block;color:var(--text);font-size:1rem}.home-training-path-card p{margin:.28rem 0 0;color:var(--muted);font-size:.86rem;line-height:1.45}.home-training-path-card:hover,.home-training-path-card:focus-visible{border-color:var(--portal-accent);outline:3px solid color-mix(in srgb,var(--portal-accent),transparent 72%);outline-offset:2px}.home-training-path-card.is-active{border-color:var(--portal-accent);background:color-mix(in srgb,var(--portal-soft),var(--surface) 30%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--portal-accent),transparent 72%)}.home-training-path-card.is-active>span{background:linear-gradient(145deg,var(--portal-accent),var(--portal-accent-2));color:#fff}
.home-training-days{display:flex;gap:.65rem;margin:0 0 1rem;overflow:auto;scrollbar-width:thin}.home-training-days a{min-width:150px;padding:.8rem 1rem;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);text-decoration:none}.home-training-days a span{display:block;color:var(--muted);font-size:.76rem;font-weight:750;text-transform:uppercase}.home-training-days a strong{display:block;margin-top:.2rem}.home-training-days a:hover,.home-training-days a:focus-visible{border-color:var(--portal-accent);outline:3px solid color-mix(in srgb,var(--portal-accent),transparent 72%);outline-offset:2px}.home-training-days a.is-active{border-color:var(--portal-accent);background:color-mix(in srgb,var(--portal-soft),var(--surface) 32%);color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--portal-accent),transparent 70%)}
.home-training-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr);gap:1rem;align-items:start}.home-training-layout>*{min-width:0}.home-training-setup,.home-training-preview{max-width:100%;min-width:0;padding:1.25rem;border:1px solid var(--line);border-radius:24px;background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.home-training-setup h2,.home-training-preview h2{margin:.2rem 0;color:var(--text);overflow-wrap:anywhere}.home-training-setup header p{color:var(--muted);overflow-wrap:anywhere}.home-training-selects{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem;margin:1rem 0}.home-training-selects label{min-width:0}.home-training-selects label>span{display:block;margin-bottom:.32rem;color:var(--text);font-size:.88rem;font-weight:800}.home-training-selects select{width:100%;min-width:0;border-color:var(--line);background:var(--surface-2);color:var(--text);color-scheme:inherit}.home-training-selects select option{background:var(--surface);color:var(--text)}
.home-training-equipment{margin:1rem 0;padding:0;border:0;color:var(--text)}.home-training-equipment legend{font-weight:850}.home-training-equipment>p{margin:.25rem 0 .8rem;color:var(--muted);font-size:.88rem}.home-training-equipment>div{display:flex;flex-wrap:wrap;gap:.5rem}.home-training-equipment label{position:relative}.home-training-equipment input{position:absolute;opacity:0}.home-training-equipment label span{display:block;min-height:44px;padding:.62rem .78rem;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--text);font-size:.83rem;cursor:pointer}.home-training-equipment input:checked+span{border-color:var(--portal-accent);background:color-mix(in srgb,var(--portal-soft),var(--surface) 24%);color:var(--text)}.home-training-equipment input:focus-visible+span{outline:3px solid var(--portal-accent);outline-offset:2px}.home-training-equipment label.is-required span{cursor:default}
.home-training-preview>header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.home-training-status,.exercise-library-home-badge{display:inline-flex;align-items:center;width:max-content;padding:.38rem .62rem;border-radius:999px;font-size:.76rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.home-training-status.is-ready,.exercise-library-home-badge{border:1px solid color-mix(in srgb,var(--green),transparent 44%);background:var(--green-dark);color:color-mix(in srgb,var(--green),var(--text) 28%)}.home-training-status.is-blocked{border:1px solid color-mix(in srgb,var(--danger),transparent 48%);background:color-mix(in srgb,var(--danger),var(--surface) 88%);color:var(--text)}
.home-training-exercises{display:grid;gap:.65rem;margin:1rem 0;padding:0;list-style:none}.home-training-exercises li{display:grid;grid-template-columns:42px minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:.65rem;padding:.8rem;border:1px solid var(--line);border-radius:16px;background:var(--surface-2);color:var(--text)}.home-training-exercises li.is-missing{border-color:color-mix(in srgb,var(--danger),var(--line) 48%)}.home-training-index{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:color-mix(in srgb,var(--portal-soft),var(--surface-3) 40%);color:var(--portal-accent);font-weight:950}.home-training-exercises small,.home-training-exercises strong,.home-training-exercises em{display:block}.home-training-exercises small{color:var(--muted);font-size:.7rem;font-weight:750;text-transform:uppercase}.home-training-exercises strong{margin-top:.18rem;color:var(--text)}.home-training-exercises em{margin-top:.2rem;color:var(--portal-accent);font-size:.76rem;font-weight:750;font-style:normal}.home-training-arrow{color:var(--portal-accent);text-align:center}.home-training-blocked{padding:.9rem;border:1px solid color-mix(in srgb,var(--danger),transparent 50%);border-radius:14px;background:color-mix(in srgb,var(--danger),var(--surface) 90%);color:var(--text)}.home-training-blocked p{margin:.25rem 0 0;color:var(--muted)}.home-training-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.home-training-note{margin:.8rem 0 0;color:var(--muted);font-size:.82rem}.workout-home-mode{justify-content:center}.workout-home-mode strong{color:var(--portal-accent)}.exercise-library-home-badge{margin:-.15rem 0 .45rem}
.home-training-pair{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:.65rem;min-width:0;margin:0}.home-training-pair img{display:block;width:72px;height:72px;border:1px solid var(--line);border-radius:14px;background:var(--surface-3);object-fit:cover}.home-training-pair figcaption{min-width:0}.home-training-pair strong{overflow-wrap:anywhere}.home-training-permanent{display:grid;gap:1rem;padding:1.4rem;border:1px solid var(--line);border-radius:24px;background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.home-training-permanent h2{margin:.2rem 0;color:var(--text)}.home-training-permanent>div>p,.home-training-permanent>small{color:var(--muted)}.home-training-permanent>ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:0;padding:0;list-style:none}.home-training-permanent>ol li{display:flex;align-items:flex-start;gap:.65rem;padding:.85rem;border:1px solid var(--line);border-radius:16px;background:var(--surface-2);color:var(--text)}.home-training-permanent>ol span{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:11px;background:color-mix(in srgb,var(--portal-soft),var(--surface-3) 36%);color:var(--portal-accent);font-weight:950}.home-training-permanent form{min-width:0}.home-training-coverage{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border:1px solid color-mix(in srgb,var(--portal-accent),var(--line) 65%);border-radius:16px;background:color-mix(in srgb,var(--portal-soft),var(--surface) 30%);color:var(--text)}.home-training-coverage strong{color:var(--text)}.home-training-coverage span{color:var(--muted);text-align:right}
.home-training-permanent-preview{margin-top:1rem}.home-training-permanent-preview h3{margin:0 0 .7rem;color:var(--text)}.home-training-permanent-preview>div{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.65rem}.home-training-permanent-preview figure{min-width:0;margin:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--surface-2);color:var(--text)}.home-training-permanent-preview img{display:block;width:100%;aspect-ratio:16/10;background:var(--surface-3);object-fit:cover}.home-training-permanent-preview figcaption{padding:.7rem}.home-training-permanent-preview small,.home-training-permanent-preview strong{display:block}.home-training-permanent-preview small{color:var(--muted);font-size:.7rem;font-weight:750;text-transform:uppercase}.home-training-permanent-preview strong{margin-top:.18rem;color:var(--text);overflow-wrap:anywhere}
@media(max-width:820px){.home-training-layout{grid-template-columns:1fr}.home-training-entry{align-items:flex-start;flex-wrap:wrap}.home-training-entry .button{width:100%}.home-training-selects{grid-template-columns:1fr 1fr}.home-training-permanent>ol{grid-template-columns:1fr}}
@media(max-width:520px){body.home-training-page{width:100%;max-width:100vw;overflow-x:hidden}.home-training-page .app-shell{width:100%;max-width:100vw;min-width:0;overflow-x:clip}.home-training-hero{display:grid;width:100%;max-width:100%;min-width:0;grid-template-columns:44px minmax(0,1fr);align-items:start;gap:.85rem;padding:1rem;overflow:hidden}.home-training-hero>div:last-child,.home-training-hero h1,.home-training-hero p{width:100%;max-width:100%;min-width:0}.home-training-hero-icon{width:44px;height:44px}.home-training-hero h1{font-size:clamp(1.72rem,9vw,2.15rem);line-height:1}.home-training-path-choice{padding:1rem}.home-training-path-grid{grid-template-columns:1fr}.home-training-path-card{grid-template-columns:40px minmax(0,1fr);padding:.85rem}.home-training-path-card>span{width:40px;height:40px}.home-training-days{width:100%;max-width:100%}.home-training-days a{min-width:142px}.home-training-layout{width:100%;max-width:100%;min-width:0}.home-training-selects{grid-template-columns:minmax(0,1fr)}.home-training-setup,.home-training-preview,.home-training-permanent{width:100%;padding:1rem;overflow:hidden}.home-training-preview>header{align-items:flex-start}.home-training-exercises li{grid-template-columns:34px minmax(0,1fr)}.home-training-index{grid-row:1/3;width:32px;height:32px}.home-training-arrow{display:none}.home-training-exercises li>.home-training-pair{grid-column:2}.home-training-pair{grid-template-columns:60px minmax(0,1fr)}.home-training-pair img{width:60px;height:60px}.home-training-coverage{align-items:flex-start;flex-direction:column}.home-training-coverage span{text-align:left}.home-training-actions .button{width:100%}}

/* Home exercise library: domestic identity, same MakoSet information architecture. */
.home-training-library-entry{display:grid;grid-template-columns:52px minmax(0,1fr) 32px;align-items:center;gap:.9rem;margin:0 0 1rem;padding:1rem 1.1rem;border:1px solid color-mix(in srgb,var(--portal-accent),var(--line) 65%);border-radius:20px;background:linear-gradient(135deg,color-mix(in srgb,var(--portal-soft),var(--surface) 28%),var(--surface));color:var(--text);text-decoration:none;box-shadow:var(--shadow)}.home-training-library-entry>span{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:linear-gradient(145deg,var(--portal-accent),var(--portal-accent-2));color:#fff;font-size:1.5rem}.home-training-library-entry strong,.home-training-library-entry p{display:block}.home-training-library-entry p{margin:.22rem 0 0;color:var(--muted)}.home-training-library-entry b{color:var(--portal-accent);font-size:1.4rem}.home-training-library-entry:hover,.home-training-library-entry:focus-visible{border-color:var(--portal-accent);outline:3px solid color-mix(in srgb,var(--portal-accent),transparent 70%);outline-offset:2px}
.home-exercise-library-page{background-image:radial-gradient(circle at 82% 5%,color-mix(in srgb,var(--portal-accent),transparent 89%),transparent 34%)}.home-exercise-library-page .exercise-library-hero{border-color:color-mix(in srgb,var(--portal-accent),var(--line) 66%);background:linear-gradient(145deg,color-mix(in srgb,var(--portal-soft),var(--surface) 35%),var(--surface) 68%)}.home-library-profile,.home-exercise-context{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1rem;padding:1rem 1.15rem;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.home-library-profile h2{margin:.18rem 0;color:var(--text)}.home-library-profile p,.home-exercise-context p{margin:.25rem 0 0;color:var(--muted)}.home-exercise-guide-page .exercise-guide{position:relative}.home-exercise-context{justify-content:flex-start}.home-exercise-context>span{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:15px;background:color-mix(in srgb,var(--portal-soft),var(--surface-3) 35%);color:var(--portal-accent);font-size:1.45rem}.home-exercise-context strong{color:var(--text)}
@media(max-width:600px){.home-library-profile{align-items:flex-start;flex-direction:column}.home-library-profile .button{width:100%}.home-training-library-entry{grid-template-columns:44px minmax(0,1fr) 24px;padding:.9rem}.home-training-library-entry>span{width:44px;height:44px}}
/* Home training exercise cards are real, keyboard-visible links. */
.home-training-pair-link{display:block;min-width:0;border-radius:16px;color:inherit;text-decoration:none}.home-training-pair-link:focus-visible{outline:3px solid var(--portal-accent);outline-offset:3px}.home-training-pair-link:hover .home-training-pair{border-color:var(--portal-accent);background:color-mix(in srgb,var(--portal-soft),var(--surface) 64%)}.home-training-pair-link .home-training-pair{padding:.35rem;border:1px solid transparent;border-radius:16px;transition:border-color .18s ease,background .18s ease}.home-training-pair-link .home-training-pair figcaption{display:grid;gap:.16rem}.home-training-open-guide{color:var(--portal-accent);font-size:.78rem;font-weight:850;text-decoration:underline;text-underline-offset:2px}@media(max-width:520px){.home-training-exercises li>.home-training-pair-link{grid-column:2}}
.home-training-summary{margin:.75rem 0 0;padding:.75rem .9rem;border:1px solid color-mix(in srgb,var(--portal-accent),var(--line) 70%);border-radius:14px;background:color-mix(in srgb,var(--portal-soft),var(--surface) 46%);color:var(--text);font-size:.9rem;font-weight:720;line-height:1.5}.home-training-permanent-preview a{display:block;min-width:0;border-radius:16px;color:inherit;text-decoration:none}.home-training-permanent-preview a:focus-visible{outline:3px solid var(--portal-accent);outline-offset:3px}.home-training-permanent-preview a:hover figure{border-color:var(--portal-accent)}.home-training-permanent-preview figcaption span{display:block;margin-top:.4rem;color:var(--portal-accent);font-size:.78rem;font-weight:850;text-decoration:underline;text-underline-offset:2px}
.home-training-library-entry.is-secondary{margin-top:1rem;box-shadow:none}
.home-exercise-context small{display:block;margin-top:.42rem;color:var(--portal-accent);font-weight:800;line-height:1.45}
.home-training-equipment .home-training-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin:.8rem 0}.home-training-presets button{min-height:46px;padding:.65rem .75rem;border:1px solid var(--line);border-radius:13px;background:var(--surface-2);color:var(--text);font:inherit;font-size:.82rem;font-weight:850;cursor:pointer}.home-training-presets button:hover,.home-training-presets button:focus-visible,.home-training-presets button[aria-pressed="true"]{border-color:var(--portal-accent);background:color-mix(in srgb,var(--portal-soft),var(--surface) 50%);outline:2px solid color-mix(in srgb,var(--portal-accent),transparent 72%);outline-offset:2px}.home-training-preset-note{display:block;margin:-.2rem 0 .75rem;color:var(--muted);line-height:1.45}@media(max-width:520px){.home-training-equipment .home-training-presets{grid-template-columns:1fr}}
