@import url('data:text/css,');

:root {
  color-scheme: dark;
  --bg: #080a14;
  --surface: #111522;
  --surface-2: #181d2d;
  --surface-3: #232a3d;
  --text: #f7f8fc;
  --muted: #9299ad;
  --line: rgba(224,230,255,.1);
  --accent: #ff6b4a;
  --accent-2: #67d5ff;
  --danger: #ff716d;
  --warning: #ffca65;
  --blue: #8c86ff;
  --radius: 24px;
  --shadow: 0 22px 70px rgba(0,0,0,.34);
  --font: "Avenir Next", Avenir, "Helvetica Neue", ui-sans-serif, -apple-system, BlinkMacSystemFont, sans-serif;
  --font-display: "Avenir Next", Avenir, "Helvetica Neue", ui-sans-serif, sans-serif;
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html { background: var(--bg); scroll-behavior: smooth; }
body { margin: 0; min-height: 100dvh; background: var(--bg); color: var(--text); font-family: var(--font); font-size: 15px; overscroll-behavior-y: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
button, [role="button"] { touch-action: manipulation; }
a { color: inherit; text-decoration: none; }
input, select, textarea { width: 100%; border: 1px solid var(--line); background: #0c100f; color: var(--text); border-radius: 15px; min-height: 50px; padding: 13px 14px; outline: 0; }
input:focus, select:focus, textarea:focus { border-color: rgba(200,255,61,.7); box-shadow: 0 0 0 3px rgba(200,255,61,.1); }
textarea { resize: vertical; min-height: 86px; }
input[type="range"] { accent-color: var(--accent); padding: 0; }

.splash { min-height: 100dvh; display: grid; place-content: center; text-align: center; gap: 10px; letter-spacing: .18em; animation: fadeIn .4s ease; }
.splash strong { font-size: 28px; }
.splash span { color: var(--muted); font-size: 10px; }
.brand-mark { width: 58px; height: 58px; display: grid; place-items: center; margin: 0 auto 6px; border-radius: 18px; background: var(--accent); color: #0b0e0c; font-size: 30px; font-weight: 900; box-shadow: 0 12px 34px rgba(200,255,61,.2); transform: skew(-5deg); }
.launch-help { width: min(calc(100% - 32px), 520px); min-height: 100dvh; margin: auto; padding: max(48px, env(safe-area-inset-top)) 0 max(36px, env(safe-area-inset-bottom)); display: flex; flex-direction: column; justify-content: center; }
.launch-help .brand-mark { margin: 0 0 26px; }
.launch-help h1 { margin: 8px 0 14px; font-size: clamp(42px, 12vw, 66px); line-height: .95; letter-spacing: -.06em; }
.launch-help > p { color: var(--muted); line-height: 1.6; margin: 0 0 25px; }
.launch-step { display: grid; grid-template-columns: 48px 1fr; align-items: center; gap: 13px; padding: 13px; margin-bottom: 9px; border: 1px solid var(--line); border-radius: 17px; background: var(--surface); }
.launch-step > span { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 13px; background: var(--accent); color: #10140e; font-weight: 900; }
.launch-step strong, .launch-step small { display: block; }
.launch-step small { margin-top: 3px; color: var(--muted); }

.app-shell { min-height: 100dvh; padding-bottom: calc(90px + env(safe-area-inset-bottom)); }
.content { width: min(100%, 1180px); margin: 0 auto; padding: max(18px, env(safe-area-inset-top)) 18px 24px; }
.page { animation: pageIn .22s ease; }
.page-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 54px; margin-bottom: 18px; }
.page-head h1 { margin: 0; font-size: clamp(26px, 7vw, 38px); letter-spacing: -.045em; line-height: 1; }
.eyebrow { color: var(--accent); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.subtle { color: var(--muted); }
.tiny { font-size: 12px; }
.section { margin-top: 26px; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.section-head h2, .section-head h3 { margin: 0; font-size: 18px; letter-spacing: -.025em; }

.btn { border: 0; min-height: 48px; border-radius: 15px; padding: 0 18px; background: var(--surface-3); font-weight: 760; cursor: pointer; transition: transform .16s ease, filter .16s ease, background .16s ease; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.btn:active { transform: scale(.97); }
.btn:hover { filter: brightness(1.08); }
.btn-primary { background: var(--accent); color: #11160f; }
.btn-danger { color: var(--danger); background: rgba(255,113,109,.1); }
.btn-ghost { background: transparent; border: 1px solid var(--line); }
.btn-sm { min-height: 38px; border-radius: 12px; padding: 0 13px; font-size: 13px; }
.btn-icon { width: 46px; min-width: 46px; padding: 0; font-size: 20px; }
.btn-block { width: 100%; min-height: 58px; font-size: 16px; }
.back-btn { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); font-size: 21px; }

.card { border: 1px solid var(--line); background: linear-gradient(145deg, rgba(24,32,28,.96), rgba(13,18,16,.96)); border-radius: var(--radius); padding: 18px; box-shadow: var(--shadow); }
.card-flat { box-shadow: none; }
.hero-card { position: relative; overflow: hidden; padding: 22px; min-height: 220px; display: flex; flex-direction: column; justify-content: space-between; background: radial-gradient(circle at 95% 0%, rgba(200,255,61,.2), transparent 35%), linear-gradient(145deg,#1a231e,#0e1311); }
.hero-card::after { content: ""; position: absolute; width: 150px; height: 150px; border: 1px solid rgba(200,255,61,.18); border-radius: 50%; right: -62px; top: 35px; box-shadow: 0 0 0 26px rgba(200,255,61,.025), 0 0 0 52px rgba(200,255,61,.02); }
.hero-card h2 { font-size: 34px; line-height: 1; letter-spacing: -.055em; margin: 8px 0; }
.hero-meta { display: flex; gap: 15px; color: #c4cec9; font-size: 13px; }
.start-btn { min-height: 62px; width: 100%; margin-top: 24px; border-radius: 18px; background: var(--accent); color: #10140e; border: 0; font-weight: 900; letter-spacing: .055em; font-size: 15px; z-index: 1; cursor: pointer; }

.metric-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.metric { min-height: 122px; display: flex; flex-direction: column; justify-content: space-between; }
.metric .value { font-size: 25px; font-weight: 850; letter-spacing: -.04em; }
.metric .label { color: var(--muted); font-size: 12px; }
.metric .delta { color: var(--accent-2); font-size: 12px; font-weight: 700; }
.ring { --score: 70; width: 78px; height: 78px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--accent) calc(var(--score) * 1%), var(--surface-3) 0); position: relative; }
.ring::after { content: ""; position: absolute; inset: 7px; border-radius: 50%; background: #111714; }
.ring strong { z-index: 1; font-size: 20px; }
.readiness-card { display: flex; align-items: center; gap: 17px; }
.readiness-card h3 { margin: 0 0 4px; }

.nav { position: fixed; z-index: 50; bottom: 0; left: 0; right: 0; padding: 9px 10px calc(8px + env(safe-area-inset-bottom)); background: rgba(8,11,10,.86); backdrop-filter: blur(22px); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(5,1fr); }
.nav-btn { min-width: 0; min-height: 55px; display: grid; place-items: center; align-content: center; gap: 3px; border: 0; background: transparent; color: #6f7c76; font-size: 9px; font-weight: 700; cursor: pointer; }
.nav-btn .nav-icon { font-size: 19px; height: 23px; }
.nav-btn.active { color: var(--accent); }

.list { display: grid; gap: 10px; }
.workout-card { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 14px; cursor: pointer; }
.workout-card h3 { margin: 0 0 7px; font-size: 19px; letter-spacing: -.025em; }
.chips { display: flex; flex-wrap: wrap; gap: 7px; }
.chip { border: 1px solid var(--line); background: rgba(255,255,255,.035); border-radius: 999px; padding: 6px 9px; font-size: 11px; color: #b3beb9; white-space: nowrap; }
.chip.accent { border-color: rgba(200,255,61,.25); color: var(--accent); background: rgba(200,255,61,.06); }
.kebab { width: 42px; height: 42px; background: var(--surface-3); border: 0; border-radius: 13px; font-size: 20px; }

.segmented { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; padding: 4px; background: var(--surface); border: 1px solid var(--line); border-radius: 15px; margin-bottom: 16px; }
.segmented button { min-height: 38px; border: 0; border-radius: 11px; background: transparent; color: var(--muted); font-size: 12px; font-weight: 750; }
.segmented button.active { background: var(--surface-3); color: var(--text); }

.calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.calendar-weekday { text-align: center; color: var(--muted); font-size: 10px; font-weight: 800; padding: 8px 0; }
.calendar-day { aspect-ratio: .83; min-height: 54px; border: 1px solid var(--line); background: var(--surface); border-radius: 13px; padding: 7px 5px; text-align: left; position: relative; cursor: pointer; overflow: hidden; }
.calendar-day.out { opacity: .28; }
.calendar-day.today { border-color: var(--accent); }
.calendar-day .day-num { font-size: 11px; font-weight: 800; }
.calendar-day .day-label { display: block; margin-top: 7px; font-size: 8px; font-weight: 800; color: var(--accent); overflow: hidden; text-overflow: ellipsis; }
.calendar-day.completed::after, .calendar-day.planned::after, .calendar-day.skipped::after, .calendar-day.rest::after { content:""; position:absolute; bottom:6px; left:7px; width:6px; height:6px; border-radius:50%; background:var(--accent-2); }
.calendar-day.planned::after { background: var(--blue); }
.calendar-day.skipped::after { background: var(--danger); }
.calendar-day.rest::after { background: var(--muted); }
.legend { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 13px; color: var(--muted); font-size: 11px; }
.legend i { display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 5px; }
.agenda-item { display: grid; grid-template-columns: 50px 1fr; gap: 12px; }
.agenda-date { color: var(--muted); font-size: 12px; font-weight: 800; padding-top: 15px; text-align: center; }

.bar-chart { height: 145px; display: flex; align-items: end; gap: 7px; padding-top: 20px; }
.bar { flex: 1; min-height: 4px; border-radius: 7px 7px 3px 3px; background: linear-gradient(var(--accent), rgba(200,255,61,.28)); position: relative; transition: height .4s ease; }
.bar span { position: absolute; bottom: -20px; left: 50%; transform: translateX(-50%); color: var(--muted); font-size: 9px; }
.heatmap { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.heat { aspect-ratio: 1; border-radius: 6px; background: var(--surface-3); }
.heat.l1 { background: rgba(200,255,61,.22); }.heat.l2 { background: rgba(200,255,61,.42); }.heat.l3 { background: rgba(200,255,61,.68); }.heat.l4 { background: var(--accent); }
.pr-row { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 0; border-bottom:1px solid var(--line); }
.pr-row:last-child { border:0; }
.pr-badge { width:42px; height:42px; border-radius:14px; display:grid; place-items:center; background:rgba(255,202,101,.11); }

.onboarding { min-height: 100dvh; padding: max(22px, env(safe-area-inset-top)) 20px max(24px, env(safe-area-inset-bottom)); display: flex; flex-direction: column; width: min(100%, 600px); margin: auto; }
.onboarding-progress { height: 4px; background: var(--surface-3); border-radius: 4px; overflow: hidden; }
.onboarding-progress i { display:block; height:100%; background:var(--accent); transition:width .3s ease; }
.onboarding-main { flex: 1; display:flex; flex-direction:column; justify-content:center; padding: 38px 0 25px; }
.onboarding h1 { font-size: clamp(38px, 11vw, 62px); line-height: .95; letter-spacing: -.065em; margin: 12px 0 16px; }
.onboarding p { color: var(--muted); line-height: 1.6; }
.choice-grid { display:grid; gap:9px; margin-top:24px; }
.choice { min-height:61px; text-align:left; border:1px solid var(--line); background:var(--surface); border-radius:17px; padding:13px 16px; cursor:pointer; }
.choice.selected { border-color: var(--accent); background: rgba(200,255,61,.07); }
.choice strong { display:block; }
.choice span { display:block; color:var(--muted); font-size:12px; margin-top:3px; }
.days-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.day-choice { min-height:50px; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.day-choice.selected { background:var(--accent); color:#10140e; }

.dropzone { min-height: 220px; border: 1.5px dashed rgba(200,255,61,.36); border-radius: 24px; background: rgba(200,255,61,.035); display: grid; place-content: center; text-align: center; padding: 28px; cursor: pointer; }
.dropzone.drag { background: rgba(200,255,61,.09); transform: scale(.99); }
.drop-icon { font-size: 40px; margin-bottom: 12px; }
.divider { display:flex; align-items:center; gap:12px; color:var(--muted); font-size:11px; margin:19px 0; }
.divider::before,.divider::after { content:""; height:1px; background:var(--line); flex:1; }

.modal-backdrop { position:fixed; z-index:100; inset:0; background:rgba(0,0,0,.65); backdrop-filter:blur(8px); display:flex; align-items:flex-end; justify-content:center; animation:fadeIn .16s ease; }
.modal { background:#111714; border:1px solid var(--line); width:min(100%,640px); max-height:92dvh; overflow:auto; border-radius:26px 26px 0 0; padding:12px 20px calc(20px + env(safe-area-inset-bottom)); box-shadow:0 -25px 70px rgba(0,0,0,.45); animation:sheetUp .24s ease; }
.modal-handle { width:40px; height:4px; border-radius:4px; background:#344139; margin:0 auto 19px; }
.modal-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px; }
.modal h2 { margin:0; font-size:25px; letter-spacing:-.04em; }
.close { background:var(--surface-3); border:0; border-radius:12px; width:40px; height:40px; font-size:20px; }
.form-grid { display:grid; gap:13px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
label.field { display:grid; gap:7px; color:var(--muted); font-size:11px; font-weight:750; }

.exercise-editor { display:grid; grid-template-columns:28px 1fr auto; align-items:center; gap:9px; padding:11px; background:var(--surface); border:1px solid var(--line); border-radius:16px; }
.drag-handle { color:var(--muted); font-size:18px; cursor:grab; }
.exercise-editor h4 { margin:0 0 4px; font-size:14px; }
.exercise-editor p { margin:0; color:var(--muted); font-size:11px; }
.pdf-tech-row { display:grid; grid-template-columns:1fr 72px 1fr; gap:7px; margin-top:9px; }
.pdf-tech-row select,.pdf-tech-row input { min-width:0; min-height:38px; padding:7px; font-size:11px; }

.session-shell { min-height:100dvh; padding-bottom:calc(104px + env(safe-area-inset-bottom)); background:radial-gradient(circle at 50% -15%, rgba(200,255,61,.1), transparent 33%), var(--bg); }
.session-head { position:sticky; top:0; z-index:20; padding:max(13px, env(safe-area-inset-top)) 16px 12px; background:rgba(8,11,10,.86); backdrop-filter:blur(18px); border-bottom:1px solid var(--line); }
.session-top { display:flex; align-items:center; justify-content:space-between; }
.session-title h1 { margin:0; font-size:21px; letter-spacing:-.035em; }
.session-title span { color:var(--muted); font-size:11px; }
.elapsed { font-variant-numeric:tabular-nums; font-weight:850; color:var(--accent); }
.exercise-tabs { display:flex; gap:7px; overflow-x:auto; scrollbar-width:none; margin-top:12px; padding-bottom:2px; }
.exercise-tabs::-webkit-scrollbar { display:none; }
.exercise-tab { min-width:35px; height:34px; border:1px solid var(--line); border-radius:11px; background:var(--surface); color:var(--muted); }
.exercise-tab.active { background:var(--accent); color:#11160f; border-color:var(--accent); }
.exercise-tab.done { border-color:var(--accent-2); color:var(--accent-2); }
.session-main { width:min(100%,720px); margin:auto; padding:20px 15px; }
.exercise-focus h2 { font-size:29px; line-height:1; letter-spacing:-.05em; margin:4px 0 10px; }
.combo-banner { margin:0 0 18px; padding:14px; border:1px solid rgba(200,255,61,.28); border-radius:18px; background:linear-gradient(135deg,rgba(200,255,61,.09),rgba(129,230,178,.035)); }
.combo-banner strong { display:block; margin-top:3px; font-size:14px; }
.combo-chain { display:flex; align-items:center; gap:6px; margin-top:11px; overflow-x:auto; scrollbar-width:none; }
.combo-chain::-webkit-scrollbar { display:none; }
.combo-chain i { color:var(--muted); font-style:normal; flex:0 0 auto; }
.combo-node { flex:0 0 auto; max-width:210px; padding:7px 9px; border-radius:10px; background:var(--surface-3); color:var(--muted); font-size:10px; font-weight:750; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.combo-node.active { background:var(--accent); color:#10140e; }
.technique-chip { border-color:rgba(255,202,101,.3); color:var(--warning); background:rgba(255,202,101,.07); }
.previous-hint { color:var(--accent-2); font-size:12px; font-weight:700; margin:12px 0 18px; }
.set-head, .set-row { display:grid; grid-template-columns:32px minmax(60px,1fr) minmax(55px,.8fr) minmax(48px,.65fr) 50px; gap:7px; align-items:center; }
.set-head { padding:0 8px 7px; color:var(--muted); font-size:9px; font-weight:800; text-align:center; }
.set-row { margin-bottom:8px; padding:8px; border:1px solid var(--line); background:var(--surface); border-radius:16px; transition:background .2s ease, border-color .2s ease; }
.set-row.completed { background:rgba(129,230,178,.06); border-color:rgba(129,230,178,.22); }
.set-index { text-align:center; font-weight:850; color:var(--muted); }
.set-row input { min-height:49px; padding:9px 5px; text-align:center; font-size:18px; font-weight:800; border-radius:12px; background:#090d0b; font-variant-numeric:tabular-nums; }
.complete-set { width:48px; height:48px; border-radius:15px; border:1px solid var(--line); background:var(--surface-3); font-size:20px; }
.set-row.completed .complete-set { background:var(--accent-2); color:#07110c; border-color:var(--accent-2); }
.copy-hint { display:flex; gap:8px; margin-top:14px; }
.session-footer { position:fixed; z-index:25; bottom:0; left:0; right:0; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:rgba(8,11,10,.9); backdrop-filter:blur(18px); border-top:1px solid var(--line); display:grid; grid-template-columns:52px 1fr 52px; gap:9px; }

.timer-float { position:fixed; z-index:30; left:10px; right:10px; bottom:calc(82px + env(safe-area-inset-bottom)); background:#202b25; border:1px solid rgba(200,255,61,.28); border-radius:20px; padding:13px 15px; box-shadow:0 15px 45px rgba(0,0,0,.48); animation:sheetUp .22s ease; }
.timer-top { display:flex; align-items:center; justify-content:space-between; }
.timer-time { font-size:28px; font-weight:900; font-variant-numeric:tabular-nums; letter-spacing:-.04em; }
.timer-progress { height:5px; border-radius:5px; background:#344139; overflow:hidden; margin:9px 0 11px; }
.timer-progress i { display:block; height:100%; background:var(--accent); transition:width .5s linear; }
.timer-actions { display:grid; grid-template-columns:1fr 1fr 1.3fr; gap:6px; }
.timer-actions button { min-height:38px; border:0; border-radius:11px; background:#303c36; font-size:11px; font-weight:800; }

.readiness-options { display:grid; grid-template-columns:repeat(5,1fr); gap:6px; }
.mood { min-width:0; min-height:78px; border:1px solid var(--line); border-radius:15px; background:var(--surface); font-size:24px; }
.mood span { display:block; font-size:8px; color:var(--muted); margin-top:5px; }
.mood.selected { border-color:var(--accent); background:rgba(200,255,61,.08); }
.score-preview { font-size:42px; letter-spacing:-.06em; font-weight:900; color:var(--accent); }

.settings-group { overflow:hidden; padding:0; }
.setting-row { min-height:65px; display:grid; grid-template-columns:42px 1fr auto; align-items:center; gap:11px; padding:11px 15px; border-bottom:1px solid var(--line); cursor:pointer; }
.setting-row:last-child { border:0; }
.setting-icon { width:38px; height:38px; display:grid; place-items:center; background:var(--surface-3); border-radius:12px; }
.setting-row strong { display:block; font-size:14px; }
.setting-row small { color:var(--muted); }
.badge { border-radius:999px; padding:6px 9px; background:rgba(255,202,101,.1); color:var(--warning); font-size:9px; font-weight:800; }
.profile-card { text-align:center; padding:28px; }
.avatar { width:78px; height:78px; margin:0 auto 13px; border-radius:26px; display:grid; place-items:center; background:var(--accent); color:#10140e; font-size:29px; font-weight:900; transform:rotate(-3deg); }

.empty { padding:38px 20px; text-align:center; border:1px dashed var(--line); border-radius:var(--radius); color:var(--muted); }
.empty strong { display:block; color:var(--text); font-size:18px; margin:7px 0; }
.toast-stack { position:fixed; z-index:200; top:max(15px, env(safe-area-inset-top)); left:12px; right:12px; display:grid; gap:8px; pointer-events:none; }
.toast { width:min(100%,500px); margin:auto; padding:14px 16px; background:#202a25; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); animation:toastIn .25s ease; font-weight:700; font-size:13px; }
.toast.success { border-color:rgba(129,230,178,.35); }.toast.danger { border-color:rgba(255,113,109,.35); }
.hidden { display:none !important; }

@keyframes fadeIn { from { opacity:0 } to { opacity:1 } }
@keyframes pageIn { from { opacity:0; transform:translateY(5px) } to { opacity:1; transform:none } }
@keyframes sheetUp { from { transform:translateY(30px); opacity:0 } to { transform:none; opacity:1 } }
@keyframes toastIn { from { opacity:0; transform:translateY(-10px) scale(.97) } to { opacity:1; transform:none } }
@keyframes pulse { 50% { transform:skew(-5deg) scale(.94); opacity:.72; } }

@media (min-width: 820px) {
  .app-shell { padding:0 0 0 102px; }
  .content { padding:34px 34px 50px; }
  .nav { top:0; right:auto; width:102px; border-top:0; border-right:1px solid var(--line); grid-template-columns:1fr; grid-template-rows:repeat(5,78px); align-content:center; padding:20px 10px; }
  .nav-btn { border-radius:17px; font-size:10px; }
  .nav-btn.active { background:rgba(200,255,61,.07); }
  .nav-btn .nav-icon { font-size:22px; }
  .dashboard-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr); gap:18px; align-items:start; }
  .metric-grid { grid-template-columns:repeat(4,1fr); }
  .hero-card { min-height:260px; }
  .start-btn { width:260px; }
  .library-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
  .calendar-day { aspect-ratio:1.28; min-height:85px; padding:10px; }
  .calendar-day .day-label { font-size:10px; }
  .progress-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:15px; }
  .modal-backdrop { align-items:center; padding:25px; }
  .modal { border-radius:26px; padding:14px 24px 24px; }
  .timer-float { left:auto; width:430px; right:20px; bottom:20px; }
  .session-footer { left:50%; transform:translateX(-50%); width:720px; border:1px solid var(--line); border-bottom:0; border-radius:20px 20px 0 0; }
}

@media (max-width: 380px) {
  .content { padding-left:13px; padding-right:13px; }
  .set-head,.set-row { grid-template-columns:27px minmax(53px,1fr) minmax(50px,.8fr) 45px 45px; gap:5px; }
  .set-row { padding:6px; }
  .set-row input { font-size:16px; }
  .readiness-options { gap:4px; }
}

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

/* GYMLAB visual system v9 */
body {
  background:
    radial-gradient(circle at 15% -10%, rgba(199,255,63,.07), transparent 27rem),
    radial-gradient(circle at 100% 38%, rgba(88,112,255,.045), transparent 31rem),
    var(--bg);
  font-feature-settings:"ss01" 1,"cv02" 1;
}
body::before { content:""; position:fixed; inset:0; pointer-events:none; opacity:.028; background-image:linear-gradient(rgba(255,255,255,.8) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.8) 1px,transparent 1px); background-size:42px 42px; mask-image:linear-gradient(to bottom,black,transparent 72%); }
.desktop-brand { display:none; }
.content { padding:calc(max(22px, env(safe-area-inset-top)) + 2px) 16px 32px; }
.page-head { min-height:62px; margin-bottom:26px; align-items:flex-end; }
.page-head h1 { max-width:760px; font-size:clamp(31px,8.7vw,48px); font-weight:820; letter-spacing:-.062em; line-height:.91; }
.page-head .eyebrow { margin-bottom:9px; }
.eyebrow { font-size:10px; letter-spacing:.18em; }
.page-intro { color:var(--muted); margin:-16px 0 22px; font-size:13px; }
.section { margin-top:30px; }
.section-head { margin-bottom:14px; }
.section-head h2,.section-head h3 { font-size:19px; letter-spacing:-.04em; }

.btn { border:1px solid rgba(255,255,255,.025); min-height:50px; border-radius:16px; font-weight:780; box-shadow:inset 0 1px rgba(255,255,255,.035); }
.btn-primary { border-color:transparent; box-shadow:0 9px 25px rgba(199,255,63,.12), inset 0 1px rgba(255,255,255,.45); }
.btn-icon { border-radius:16px; }
.readiness-shortcut { background:rgba(199,255,63,.09); color:var(--accent); border-color:rgba(199,255,63,.15); }
.card { border-color:var(--line); background:rgba(17,20,16,.88); backdrop-filter:blur(16px); box-shadow:0 18px 48px rgba(0,0,0,.2),inset 0 1px rgba(255,255,255,.025); }

.hero-card { min-height:292px; padding:25px; border-radius:30px; border-color:rgba(199,255,63,.13); background:linear-gradient(145deg,rgba(33,39,27,.98),rgba(12,14,12,.98)); isolation:isolate; }
.hero-card::before { content:""; position:absolute; z-index:-1; right:-32px; top:-66px; width:235px; height:235px; border-radius:50%; background:radial-gradient(circle at 38% 38%,rgba(224,255,143,.9) 0 2%,var(--accent) 3% 18%,rgba(199,255,63,.2) 19% 34%,transparent 35%); filter:blur(.2px); opacity:.75; }
.hero-card::after { width:220px; height:220px; right:-82px; top:-10px; border-color:rgba(199,255,63,.16); box-shadow:0 0 0 34px rgba(199,255,63,.025),0 0 0 68px rgba(199,255,63,.015); }
.hero-card h2 { max-width:78%; margin:9px 0 13px; font-size:clamp(37px,11vw,58px); line-height:.88; font-weight:850; letter-spacing:-.07em; text-transform:uppercase; }
.hero-meta { flex-wrap:wrap; gap:8px; }
.hero-meta span { padding:7px 10px; border:1px solid rgba(255,255,255,.08); background:rgba(5,7,5,.35); border-radius:999px; color:#d6ddd2; font-size:11px; backdrop-filter:blur(8px); }
.start-btn { min-height:66px; margin-top:28px; border-radius:19px; text-align:left; justify-content:space-between; padding:0 21px; box-shadow:0 12px 32px rgba(199,255,63,.15),inset 0 1px rgba(255,255,255,.5); }
.quick-stats .metric-grid { gap:8px; }
.quick-stats .metric { min-height:112px; padding:15px; border-radius:20px; }
.metric .value { font-size:27px; line-height:1; }
.metric .value small { color:var(--muted); font-size:.48em; }
.metric .delta { font-size:10px; letter-spacing:.02em; }
.readiness-card { min-height:112px; padding:16px; border-radius:25px; cursor:pointer; }
.ring { width:74px; height:74px; flex:0 0 74px; box-shadow:0 0 30px rgba(199,255,63,.08); }
.ring::after { background:var(--surface); }
.home-page aside > .section.card { margin-top:12px; }

.nav { left:10px; right:10px; bottom:9px; padding:6px 7px calc(6px + env(safe-area-inset-bottom)); border:1px solid rgba(255,255,255,.1); border-radius:24px; background:rgba(16,19,15,.9); box-shadow:0 16px 50px rgba(0,0,0,.48); }
.app-shell { padding-bottom:calc(104px + env(safe-area-inset-bottom)); }
.nav-btn { min-height:58px; border-radius:18px; transition:background .2s ease,color .2s ease,transform .18s ease; }
.nav-btn:active { transform:scale(.94); }
.nav-btn .nav-icon { font-size:20px; font-weight:500; }
.nav-btn.active { color:#10140e; background:var(--accent); }
.nav-btn.active .nav-icon { transform:translateY(-1px); }

.segmented { margin-bottom:18px; padding:5px; border-radius:18px; background:rgba(15,18,14,.85); }
.segmented button { min-height:42px; border-radius:13px; }
.segmented button.active { background:#292e27; box-shadow:inset 0 1px rgba(255,255,255,.06),0 6px 15px rgba(0,0,0,.17); }
.library-grid { gap:11px; }
.workout-card { position:relative; grid-template-columns:44px minmax(0,1fr) 46px; gap:13px; min-height:190px; padding:18px 14px; overflow:hidden; border-radius:25px; cursor:default; background:linear-gradient(150deg,rgba(25,29,23,.97),rgba(13,15,12,.96)); }
.workout-card::after { content:""; position:absolute; right:-54px; top:-55px; width:135px; height:135px; border-radius:50%; border:1px solid rgba(199,255,63,.085); box-shadow:0 0 0 25px rgba(199,255,63,.012); pointer-events:none; }
.workout-number { align-self:start; padding-top:2px; color:var(--accent); font-size:11px; font-weight:850; letter-spacing:.12em; }
.workout-card-body { min-width:0; align-self:stretch; cursor:pointer; }
.workout-label { display:block; color:var(--muted); font-size:8px; font-weight:850; letter-spacing:.16em; }
.workout-card h3 { max-width:90%; margin:9px 0 18px; font-size:25px; line-height:.95; font-weight:820; letter-spacing:-.055em; text-transform:uppercase; }
.workout-facts { display:flex; flex-wrap:wrap; gap:16px; margin-bottom:13px; color:var(--muted); font-size:10px; }
.workout-facts strong { display:block; margin-bottom:2px; color:var(--text); font-size:17px; line-height:1; }
.workout-dates { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin:13px 0 0 !important; }
.workout-dates i { width:3px; height:3px; border-radius:50%; background:var(--accent); }
.workout-actions { z-index:1; align-self:stretch; display:flex; flex-direction:column; justify-content:space-between; align-items:flex-end; }
.workout-play,.kebab { width:43px; height:43px; border:1px solid var(--line); border-radius:14px; background:var(--surface-3); }
.workout-play { color:#10140e; background:var(--accent); border-color:var(--accent); font-size:13px; box-shadow:0 8px 22px rgba(199,255,63,.12); }
.kebab { font-size:17px; color:var(--muted); }
.active-session-card { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:15px; padding:16px; border-color:rgba(199,255,63,.28); }
.active-session-card h3 { margin:5px 0 0; font-size:18px; }
.import-action { margin-top:18px; }

.calendar-grid { gap:6px; }
.calendar-day { border-radius:14px; background:rgba(15,18,14,.9); }
.calendar-day.today { color:var(--accent); background:rgba(199,255,63,.055); box-shadow:inset 0 0 0 1px rgba(199,255,63,.12); }
.calendar-day .day-label { line-height:1.15; }
.heat { border-radius:7px; }
.bar-chart { height:170px; }
.progress-grid .metric { padding:7px; }
.profile-card { background:radial-gradient(circle at 50% 0,rgba(199,255,63,.1),transparent 58%),rgba(17,20,16,.9); }
.avatar { border-radius:50%; box-shadow:0 12px 32px rgba(199,255,63,.12); transform:none; }
.settings-group { border-radius:22px; }
.setting-row { min-height:72px; }

.modal-backdrop { background:rgba(0,0,0,.72); backdrop-filter:blur(14px); }
.modal { background:rgba(16,19,15,.98); border-color:rgba(255,255,255,.11); border-radius:30px 30px 0 0; padding:12px 18px calc(22px + env(safe-area-inset-bottom)); }
.modal-wide { width:min(100%,920px); }
.modal-handle { background:#4b5448; }
.exercise-editor { border-radius:18px; background:#151814; }
.exercise-form-row { padding:14px; }
.dropzone { border-radius:25px; background:linear-gradient(145deg,rgba(199,255,63,.06),rgba(199,255,63,.015)); }

.session-shell { background:radial-gradient(circle at 50% -12%,rgba(199,255,63,.085),transparent 27rem),var(--bg); }
.session-head { padding:max(14px,env(safe-area-inset-top)) 15px 12px; background:rgba(7,8,6,.9); }
.session-title { flex:1; min-width:0; padding-left:11px; }
.session-title h1 { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:18px; }
.elapsed { padding:8px 10px; border:1px solid rgba(199,255,63,.14); border-radius:12px; background:rgba(199,255,63,.055); font-size:12px; }
.exercise-tabs { gap:6px; margin-top:14px; }
.exercise-tab { min-width:37px; height:36px; border-radius:50%; font-size:11px; }
.exercise-tab.active { box-shadow:0 7px 20px rgba(199,255,63,.15); }
.exercise-tab.done { background:rgba(141,231,181,.08); }
.session-main { padding:18px 13px 24px; }
.exercise-focus { padding:20px 16px; border:1px solid var(--line); border-radius:28px; background:rgba(16,19,15,.78); box-shadow:0 20px 65px rgba(0,0,0,.18); }
.exercise-focus > .eyebrow { color:var(--muted); }
.exercise-focus h2 { max-width:92%; margin:7px 0 14px; font-size:clamp(31px,9vw,44px); line-height:.92; font-weight:830; }
.combo-banner { margin:-5px -1px 20px; padding:14px; border-radius:19px; }
.previous-hint { margin:16px 0 20px; padding:12px 13px; border-left:2px solid var(--accent-2); border-radius:0 12px 12px 0; background:rgba(141,231,181,.045); line-height:1.45; }
.set-head { padding:0 6px 8px; }
.set-row { margin-bottom:9px; padding:7px; border-radius:17px; background:#0c0e0b; }
.set-row.completed { background:rgba(141,231,181,.055); }
.set-row input { min-height:52px; border-color:rgba(255,255,255,.07); border-radius:13px; background:#171a16; font-size:17px; }
.complete-set { width:50px; height:50px; border-radius:50%; }
.copy-hint .btn { flex:1; padding:0 9px; }
.session-footer { padding:9px 12px calc(9px + env(safe-area-inset-bottom)); background:rgba(10,12,9,.92); }
.session-footer .btn-primary { letter-spacing:.05em; font-size:12px; }
.timer-float { left:8px; right:8px; padding:15px; border-radius:23px; background:#22271f; }
.timer-time { font-size:31px; }

@media (max-width:560px) {
  .form-row { grid-template-columns:1fr; }
  .exercise-form-row .form-row { grid-template-columns:1fr !important; }
  .pdf-tech-row { grid-template-columns:1fr; }
  .pdf-exercise { grid-template-columns:20px minmax(0,1fr) 36px; align-items:start; }
  .pdf-exercise .close { width:34px; height:34px; }
  .calendar-day { padding:6px 4px; }
  .calendar-day .day-label { font-size:7px; }
}

@media (min-width:820px) {
  .app-shell { padding:0 0 0 226px; }
  .desktop-brand { position:fixed; z-index:60; left:25px; top:26px; display:flex; align-items:center; gap:11px; }
  .desktop-brand span { width:42px; height:42px; display:grid; place-items:center; border-radius:13px; background:var(--accent); color:#10140e; font-size:22px; font-weight:900; transform:skew(-4deg); }
  .desktop-brand strong { font-size:15px; letter-spacing:.18em; }
  .nav { top:0; bottom:0; left:0; right:auto; width:202px; padding:112px 18px 24px; border:0; border-right:1px solid var(--line); border-radius:0; grid-template-columns:1fr; grid-template-rows:repeat(5,58px); align-content:start; gap:7px; background:rgba(10,12,9,.78); box-shadow:none; }
  .nav-btn { min-height:54px; padding:0 15px; grid-template-columns:32px 1fr; place-items:center start; align-content:center; gap:10px; font-size:12px; border-radius:16px; }
  .nav-btn .nav-icon { height:auto; }
  .content { width:min(100%,1260px); padding:44px 38px 60px; }
  .page-head { margin-bottom:32px; }
  .page-head h1 { font-size:48px; }
  .dashboard-grid { grid-template-columns:minmax(0,1.5fr) minmax(320px,.72fr); gap:22px; }
  .hero-card { min-height:340px; padding:32px; }
  .hero-card h2 { font-size:64px; }
  .quick-stats .metric-grid { grid-template-columns:repeat(4,1fr); }
  .quick-stats .metric { min-height:130px; }
  .library-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .workout-card { min-height:210px; padding:21px 17px; }
  .workout-card h3 { font-size:28px; }
  .modal { border-radius:30px; padding:14px 26px 26px; }
  .session-head { padding-left:28px; padding-right:28px; }
  .session-main { width:min(100%,790px); padding-top:25px; }
  .exercise-focus { padding:27px; }
  .exercise-focus h2 { font-size:48px; }
  .timer-float { width:440px; right:24px; left:auto; bottom:24px; }
  .session-footer { width:790px; }
}

@media (min-width:1180px) {
  .library-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .workout-card { grid-template-columns:38px minmax(0,1fr) 44px; }
}

/* Micro interactions v9 */
.page-head,.hero-card,.quick-stats .metric,.home-page aside > *,.workout-card,.calendar-grid,.agenda-item,.progress-grid > *,.profile-card,.settings-group {
  animation:gymlabRise .42s cubic-bezier(.2,.8,.2,1) both;
}
.hero-card { animation-delay:.035s; }
.quick-stats .metric:nth-child(1),.workout-card:nth-child(1) { animation-delay:.06s; }
.quick-stats .metric:nth-child(2),.workout-card:nth-child(2) { animation-delay:.1s; }
.quick-stats .metric:nth-child(3),.workout-card:nth-child(3) { animation-delay:.14s; }
.quick-stats .metric:nth-child(4),.workout-card:nth-child(4) { animation-delay:.18s; }
.workout-card:nth-child(n+5) { animation-delay:.21s; }

.btn,.nav-btn,.workout-play,.kebab,.back-btn,.complete-set,.exercise-tab,.calendar-day,.choice,.mood,.setting-row {
  transition:transform .18s cubic-bezier(.2,.8,.2,1),background-color .22s ease,border-color .22s ease,color .22s ease,box-shadow .22s ease,filter .22s ease;
}
.btn:active,.workout-play:active,.kebab:active,.back-btn:active,.calendar-day:active,.choice:active,.mood:active { transform:scale(.955); }
.setting-row:active { transform:scale(.985); background:rgba(255,255,255,.025); }
.nav-btn.active { animation:navSelect .32s cubic-bezier(.2,1.45,.4,1); }
.nav-btn.active .nav-icon { animation:iconPop .38s cubic-bezier(.2,1.5,.4,1); }
.exercise-tab.active { animation:tabSelect .28s cubic-bezier(.2,1.35,.4,1); }

.hero-card::before { animation:orbDrift 7s ease-in-out infinite; }
.hero-card::after { animation:ringDrift 8s ease-in-out infinite reverse; }
.start-btn { position:relative; overflow:hidden; }
.start-btn::before { content:""; position:absolute; inset:-40% auto -40% -35%; width:24%; transform:skewX(-18deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent); animation:buttonShine 4.8s ease-in-out infinite; }
.ring { animation:ringBreathe 3.6s ease-in-out infinite; }
.ring strong { animation:scoreIn .5s cubic-bezier(.2,1.35,.4,1) both; }

.workout-play { position:relative; }
.workout-play::after { content:""; position:absolute; inset:-5px; border:1px solid rgba(199,255,63,.22); border-radius:17px; opacity:0; transform:scale(.8); }
.workout-play:active::after { animation:tapHalo .42s ease-out; }
.workout-card:hover .workout-number { color:#efffc9; transform:translateY(-2px); }
.workout-number,.workout-card h3 { transition:transform .25s cubic-bezier(.2,.8,.2,1),color .25s ease; }
.workout-card:hover h3 { transform:translateX(3px); }

.set-row.just-completed { animation:setSuccess .55s cubic-bezier(.2,1.15,.4,1); }
.set-row.just-completed .complete-set { animation:checkPop .5s cubic-bezier(.2,1.6,.4,1); }
.timer-float { animation:timerEnter .35s cubic-bezier(.15,1,.3,1) both; }
.timer-float .eyebrow { animation:timerPulse 1.6s ease-in-out infinite; }
.timer-progress i { position:relative; overflow:visible; }
.timer-progress i::after { content:""; position:absolute; right:-3px; top:-2px; width:9px; height:9px; border-radius:50%; background:var(--accent); box-shadow:0 0 12px rgba(199,255,63,.7); animation:timerDot 1.1s ease-in-out infinite; }
.combo-node.active { animation:comboFocus .3s cubic-bezier(.2,1.3,.4,1); }
.toast { animation:toastSpring .38s cubic-bezier(.15,1.25,.3,1); }
.modal-backdrop { animation:backdropIn .2s ease both; }
.modal { animation:modalSpring .34s cubic-bezier(.15,1,.3,1) both; }
.modal-handle { animation:handleIn .45s .12s cubic-bezier(.2,1.3,.4,1) both; }
.onboarding-progress i { transition:width .48s cubic-bezier(.2,.8,.2,1); }
.choice.selected,.mood.selected,.day-choice.selected { animation:choiceSelect .28s cubic-bezier(.2,1.3,.4,1); }
.dropzone.drag .drop-icon { animation:dropBounce .65s ease-in-out infinite; }

@media (hover:hover) {
  .btn:hover { transform:translateY(-2px); filter:brightness(1.07); }
  .btn:active { transform:translateY(0) scale(.97); }
  .workout-card { transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .25s ease,box-shadow .25s ease; }
  .workout-card:hover { transform:translateY(-4px); border-color:rgba(199,255,63,.18); box-shadow:0 24px 58px rgba(0,0,0,.28); }
  .calendar-day:hover { transform:translateY(-2px); border-color:rgba(199,255,63,.24); }
  .setting-row:hover { background:rgba(255,255,255,.02); }
}

@keyframes gymlabRise { from { opacity:0; transform:translateY(12px) scale(.992); } to { opacity:1; transform:none; } }
@keyframes navSelect { 0% { transform:scale(.9); } 65% { transform:scale(1.035); } 100% { transform:none; } }
@keyframes iconPop { 0% { transform:translateY(2px) scale(.72); } 70% { transform:translateY(-2px) scale(1.13); } 100% { transform:translateY(-1px); } }
@keyframes tabSelect { from { transform:scale(.8); } 70% { transform:scale(1.08); } to { transform:none; } }
@keyframes orbDrift { 0%,100% { transform:translate3d(0,0,0) scale(1); } 50% { transform:translate3d(-8px,8px,0) scale(1.035); } }
@keyframes ringDrift { 0%,100% { transform:rotate(0) scale(1); } 50% { transform:rotate(5deg) scale(1.045); } }
@keyframes buttonShine { 0%,72% { left:-38%; opacity:0; } 78% { opacity:.65; } 90%,100% { left:118%; opacity:0; } }
@keyframes ringBreathe { 0%,100% { box-shadow:0 0 22px rgba(103,213,255,.06); } 50% { box-shadow:0 0 34px rgba(103,213,255,.16); } }
@keyframes scoreIn { from { opacity:0; transform:scale(.6); } to { opacity:1; transform:none; } }
@keyframes tapHalo { from { opacity:.8; transform:scale(.82); } to { opacity:0; transform:scale(1.35); } }
@keyframes setSuccess { 0% { transform:scale(.975); } 45% { transform:scale(1.018); border-color:rgba(82,214,164,.62); box-shadow:0 0 0 4px rgba(82,214,164,.08); } 100% { transform:none; } }
@keyframes checkPop { 0% { transform:scale(.55) rotate(-12deg); } 65% { transform:scale(1.16) rotate(4deg); } 100% { transform:none; } }
@keyframes timerEnter { from { opacity:0; transform:translateY(22px) scale(.96); } to { opacity:1; transform:none; } }
@keyframes timerPulse { 50% { opacity:.55; } }
@keyframes timerDot { 50% { transform:scale(.65); opacity:.55; } }
@keyframes comboFocus { from { transform:scale(.88); opacity:.6; } to { transform:none; opacity:1; } }
@keyframes toastSpring { from { opacity:0; transform:translateY(-16px) scale(.93); } to { opacity:1; transform:none; } }
@keyframes backdropIn { from { opacity:0; } to { opacity:1; } }
@keyframes modalSpring { from { opacity:0; transform:translateY(36px) scale(.985); } to { opacity:1; transform:none; } }
@keyframes handleIn { from { opacity:0; transform:scaleX(.3); } to { opacity:1; transform:none; } }
@keyframes choiceSelect { 0% { transform:scale(.97); } 70% { transform:scale(1.012); } 100% { transform:none; } }
@keyframes dropBounce { 50% { transform:translateY(-7px); } }

@media (prefers-reduced-motion:reduce) {
  .hero-card::before,.hero-card::after,.start-btn::before,.ring,.timer-float .eyebrow,.timer-progress i::after { animation:none !important; }
}

/* Simpler coral & blue interface v10 */
body { background:radial-gradient(circle at 8% -8%,rgba(255,107,74,.1),transparent 25rem),radial-gradient(circle at 100% 30%,rgba(103,213,255,.055),transparent 28rem),var(--bg); }
body::before { display:none; }
input,select,textarea { background:#0d101b; }
input:focus,select:focus,textarea:focus { border-color:rgba(255,107,74,.7); box-shadow:0 0 0 3px rgba(255,107,74,.12); }
.brand-mark { color:#fff; box-shadow:0 12px 30px rgba(255,107,74,.2); }
.page-head { min-height:54px; margin-bottom:21px; }
.page-head h1 { font-size:clamp(29px,7.8vw,42px); line-height:.96; letter-spacing:-.052em; }
.eyebrow { color:var(--accent); letter-spacing:.15em; }
.card { background:rgba(17,21,34,.92); border-color:var(--line); box-shadow:0 14px 40px rgba(0,0,0,.18); }
.btn { background:var(--surface-3); }
.btn-primary,.start-btn,.workout-play,.nav-btn.active,.day-choice.selected,.brand-mark,.desktop-brand span,.avatar { color:var(--accent-contrast,#fff); background:var(--accent); }
.btn-primary { box-shadow:0 8px 22px rgba(255,107,74,.18),inset 0 1px rgba(255,255,255,.26); }
.readiness-shortcut { color:var(--accent); background:rgba(255,107,74,.09); border-color:rgba(255,107,74,.18); }

.hero-card { min-height:245px; padding:22px; border-radius:26px; border-color:rgba(255,107,74,.16); background:linear-gradient(145deg,#1d2337,#111522); }
.hero-card::before { right:-48px; top:-82px; width:205px; height:205px; opacity:.7; background:radial-gradient(circle at 40% 40%,#ffd0c5 0 2%,var(--accent) 3% 21%,rgba(255,107,74,.19) 22% 38%,transparent 39%); }
.hero-card::after { display:none; }
.hero-card h2 { max-width:82%; margin:9px 0 12px; font-size:clamp(35px,10vw,52px); }
.hero-meta span { background:rgba(8,10,20,.42); }
.start-btn { min-height:60px; margin-top:20px; color:var(--accent-contrast,#fff); box-shadow:0 11px 27px rgba(255,107,74,.2),inset 0 1px rgba(255,255,255,.28); }
.quick-stats .metric { min-height:101px; padding:14px; border-radius:18px; }
.metric .value { font-size:25px; }
.metric .delta { color:var(--accent-2); }
.ring { background:conic-gradient(var(--accent-2) calc(var(--score) * 1%),var(--surface-3) 0); box-shadow:0 0 26px rgba(103,213,255,.1); }
.ring::after { background:var(--surface); }

.nav { left:0; right:0; bottom:0; padding:7px 8px calc(7px + env(safe-area-inset-bottom)); border:0; border-top:1px solid var(--line); border-radius:0; background:rgba(13,16,27,.94); box-shadow:0 -12px 35px rgba(0,0,0,.24); }
.nav-btn { border-radius:14px; }
.nav-btn.active { color:var(--accent-contrast,#fff); box-shadow:0 7px 18px rgba(255,107,74,.18); }
.app-shell { padding-bottom:calc(90px + env(safe-area-inset-bottom)); }

.segmented { padding:4px; background:#0e121e; border-radius:15px; }
.segmented button { min-height:39px; border-radius:11px; }
.segmented button.active { background:var(--surface-3); }
.workout-card { grid-template-columns:minmax(0,1fr) 44px; min-height:158px; padding:18px; border-radius:22px; background:linear-gradient(145deg,rgba(25,30,47,.98),rgba(16,20,33,.98)); }
.workout-card::after { display:none; }
.workout-card-body { align-self:center; }
.workout-label { color:var(--accent-2); font-size:9px; }
.workout-card h3 { max-width:100%; margin:8px 0 13px; font-size:23px; }
.workout-facts { align-items:center; gap:8px; margin:0; color:#c1c6d5; font-size:11px; }
.workout-facts i { width:3px; height:3px; border-radius:50%; background:#606981; }
.combo-note { display:inline-block; margin-top:11px; padding:5px 8px; border-radius:8px; color:var(--accent-2); background:rgba(103,213,255,.07); font-size:10px; font-weight:750; }
.workout-dates { display:block; margin-top:11px !important; }
.workout-actions { min-height:122px; }
.workout-play { border-color:var(--accent); box-shadow:0 7px 18px rgba(255,107,74,.18); }
.workout-play::after { border-color:rgba(255,107,74,.25); }
.active-session-card { border-color:rgba(255,107,74,.28); }

.chip.accent { color:var(--accent); border-color:rgba(255,107,74,.28); background:rgba(255,107,74,.07); }
.choice.selected,.mood.selected { border-color:var(--accent); background:rgba(255,107,74,.08); }
.dropzone { border-color:rgba(103,213,255,.38); background:linear-gradient(145deg,rgba(103,213,255,.07),rgba(103,213,255,.015)); }
.dropzone.drag { background:rgba(103,213,255,.11); }
.heat.l1 { background:rgba(103,213,255,.22); }.heat.l2 { background:rgba(103,213,255,.42); }.heat.l3 { background:rgba(103,213,255,.68); }.heat.l4 { background:var(--accent-2); }
.calendar-day { background:rgba(17,21,34,.92); }
.calendar-day.today { color:var(--accent); border-color:var(--accent); background:rgba(255,107,74,.06); box-shadow:inset 0 0 0 1px rgba(255,107,74,.1); }
.bar { background:linear-gradient(var(--accent-2),rgba(103,213,255,.25)); }
.profile-card { background:radial-gradient(circle at 50% 0,rgba(103,213,255,.1),transparent 58%),rgba(17,21,34,.92); }
.avatar { box-shadow:0 11px 28px rgba(255,107,74,.18); }
.setting-icon { background:var(--surface-3); }

.modal { background:rgba(15,19,31,.99); }
.exercise-editor { background:#151a29; }
.session-shell { background:radial-gradient(circle at 50% -12%,rgba(103,213,255,.075),transparent 27rem),var(--bg); }
.session-head { background:rgba(8,10,20,.92); }
.elapsed { color:var(--accent-2); border-color:rgba(103,213,255,.17); background:rgba(103,213,255,.06); }
.exercise-focus { background:rgba(15,19,31,.84); }
.exercise-tab.active { color:#fff; background:var(--accent); border-color:var(--accent); box-shadow:0 6px 17px rgba(255,107,74,.18); }
.exercise-tab.done { color:var(--accent-2); border-color:var(--accent-2); background:rgba(103,213,255,.07); }
.combo-banner { border-color:rgba(103,213,255,.24); background:linear-gradient(135deg,rgba(103,213,255,.09),rgba(140,134,255,.04)); }
.combo-node.active { color:#07111a; background:var(--accent-2); }
.previous-hint { color:var(--accent-2); border-left-color:var(--accent-2); background:rgba(103,213,255,.045); }
.set-row { background:#0d101a; }
.set-row input { background:#171c2a; }
.set-row.completed { background:rgba(82,214,164,.055); border-color:rgba(82,214,164,.22); }
.set-row.completed .complete-set { color:#07140f; background:#52d6a4; border-color:#52d6a4; }
.timer-float { background:#20273a; border-color:rgba(103,213,255,.25); }
.timer-progress i { background:var(--accent-2); }
.timer-progress i::after { background:var(--accent-2); box-shadow:0 0 12px rgba(103,213,255,.65); }
.technique-chip { color:#ffd07c; border-color:rgba(255,208,124,.28); background:rgba(255,208,124,.07); }

@media (hover:hover) {
  .workout-card:hover { border-color:rgba(103,213,255,.2); }
  .calendar-day:hover { border-color:rgba(103,213,255,.25); }
}

@media (min-width:820px) {
  .app-shell { padding-left:210px; padding-bottom:0; }
  .desktop-brand span { color:#fff; background:var(--accent); }
  .nav { top:0; bottom:0; left:0; right:auto; width:190px; padding:105px 16px 22px; border:0; border-right:1px solid var(--line); grid-template-columns:1fr; grid-template-rows:repeat(5,56px); align-content:start; gap:6px; box-shadow:none; background:rgba(10,13,23,.88); }
  .nav-btn { grid-template-columns:31px 1fr; padding:0 14px; }
  .hero-card { min-height:300px; }
  .hero-card h2 { font-size:56px; }
  .workout-card { min-height:170px; }
}

@media (min-width:1180px) {
  .workout-card { grid-template-columns:minmax(0,1fr) 44px; }
}

/* Guided plan and exercise catalog */
.creation-options { display:grid; gap:10px; }
.creation-option { width:100%; min-height:92px; display:grid; grid-template-columns:48px minmax(0,1fr) 22px; align-items:center; gap:13px; padding:14px; border:1px solid var(--line); border-radius:20px; background:var(--surface); color:var(--text); text-align:left; }
.creation-option.featured { border-color:rgba(255,107,74,.27); background:linear-gradient(135deg,rgba(255,107,74,.09),rgba(103,213,255,.025)); }
.creation-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:15px; background:var(--surface-3); color:var(--accent-2); font-size:20px; }
.creation-option.featured .creation-icon { color:#fff; background:var(--accent); }
.creation-option strong,.creation-option small { display:block; }
.creation-option strong { margin-bottom:5px; font-size:15px; }
.creation-option small { color:var(--muted); font-size:11px; line-height:1.45; }
.creation-option b { color:var(--muted); font-size:18px; }
.creation-option:active { transform:scale(.98); }

.planner-intro { margin:-7px 0 20px; font-size:12px; line-height:1.55; }
.planner-form { display:grid; gap:26px; }
.planner-form section { display:grid; gap:12px; padding-bottom:24px; border-bottom:1px solid var(--line); }
.planner-step { color:var(--accent-2); font-size:10px; font-weight:850; letter-spacing:.15em; }
.choice-grid.compact { margin:0; grid-template-columns:repeat(2,minmax(0,1fr)); }
.planner-choice { position:relative; cursor:pointer; }
.planner-choice input { position:absolute; opacity:0; pointer-events:none; }
.planner-choice span { min-height:67px; display:flex; flex-direction:column; justify-content:center; padding:11px 13px; border:1px solid var(--line); border-radius:16px; background:var(--surface); }
.planner-choice strong,.planner-choice small { display:block; }
.planner-choice small { margin-top:4px; color:var(--muted); font-size:10px; line-height:1.25; }
.planner-choice input:checked + span { border-color:var(--accent); background:rgba(255,107,74,.08); box-shadow:inset 0 0 0 1px rgba(255,107,74,.12); }
.limitation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.limitation-grid label { position:relative; }
.limitation-grid input { position:absolute; opacity:0; pointer-events:none; }
.limitation-grid span { min-height:50px; display:flex; align-items:center; padding:10px 12px; border:1px solid var(--line); border-radius:14px; background:var(--surface); font-size:11px; font-weight:720; }
.limitation-grid input:checked + span { color:var(--accent-2); border-color:rgba(103,213,255,.35); background:rgba(103,213,255,.07); }
.local-badge { margin:-10px 0 0; color:var(--muted); text-align:center; font-size:10px; }
.local-badge::first-letter { color:#52d6a4; }

.planner-summary { padding:15px; border-left:3px solid var(--accent); border-radius:0 15px 15px 0; background:rgba(255,107,74,.06); line-height:1.55; }
.coach-note { margin:8px 0; padding:12px 14px; border:1px solid rgba(255,208,124,.18); border-radius:15px; background:rgba(255,208,124,.045); color:#e2d3b6; font-size:11px; line-height:1.5; }
.generated-plan { display:grid; gap:12px; margin-top:18px; }
.generated-day { overflow:hidden; border:1px solid var(--line); border-radius:20px; background:var(--surface); }
.generated-day-head { display:grid; grid-template-columns:38px 1fr; gap:10px; align-items:center; padding:14px; border-bottom:1px solid var(--line); }
.generated-day-head > span { color:var(--accent); font-size:11px; font-weight:850; letter-spacing:.1em; }
.generated-day-head strong,.generated-day-head small { display:block; }
.generated-day-head small { margin-top:3px; color:var(--muted); font-size:10px; }
.generated-day ol { list-style:none; padding:5px 14px; margin:0; }
.generated-day li { min-height:54px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 0; border-bottom:1px solid var(--line); }
.generated-day li:last-child { border:0; }
.generated-day li strong,.generated-day li small { display:block; }
.generated-day li strong { font-size:12px; }
.generated-day li small { margin-top:3px; color:var(--muted); font-size:9px; }
.generated-day li > span { flex:0 0 auto; color:var(--accent-2); font-size:11px; font-weight:800; }
.plan-actions { position:sticky; bottom:0; display:grid; gap:8px; margin:18px -18px -22px; padding:13px 18px calc(13px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:rgba(15,19,31,.96); backdrop-filter:blur(15px); }

.exercise-picker { display:grid; grid-template-columns:.7fr 1.3fr; gap:10px; }
.exercise-picker select { font-size:12px; }
.exercise-form-row { border-left:3px solid var(--accent-2); }
.catalog-helper { margin:14px 0 0; padding:11px 13px; border-radius:14px; background:rgba(103,213,255,.055); color:var(--muted); font-size:11px; line-height:1.5; }

@media (max-width:560px) {
  .choice-grid.compact,.limitation-grid,.exercise-picker { grid-template-columns:1fr; }
  .planner-form { gap:21px; }
  .planner-form section { padding-bottom:20px; }
  .generated-day li { align-items:flex-start; }
}

@media (hover:hover) {
  .creation-option:hover { transform:translateY(-2px); border-color:rgba(103,213,255,.25); }
  .planner-choice:hover span,.limitation-grid label:hover span { border-color:rgba(103,213,255,.22); }
}

/* Typography and select controls v13 */
body,button,input,select,textarea { font-family:var(--font); }
h1,h2,h3,h4,.page-head h1,.hero-card h2,.workout-card h3,.session-title h1,.exercise-focus h2,.modal h2,.metric .value,.score-preview {
  font-family:var(--font-display);
  font-optical-sizing:auto;
}
.page-head h1,.hero-card h2,.exercise-focus h2 { font-weight:750; letter-spacing:-.048em; }
.workout-card h3,.modal h2,.session-title h1 { font-weight:700; letter-spacing:-.032em; }
.btn,.nav-btn,.chip,.eyebrow,.planner-step,.workout-label { font-family:var(--font); font-weight:700; }
.eyebrow,.planner-step,.workout-label { letter-spacing:.13em; }

select {
  -webkit-appearance:none;
  appearance:none;
  min-height:54px;
  padding:12px 48px 12px 15px;
  border:1px solid rgba(224,230,255,.12);
  border-radius:16px;
  background-color:#111625;
  background-image:
    linear-gradient(45deg,transparent 50%,var(--accent-2) 50%),
    linear-gradient(135deg,var(--accent-2) 50%,transparent 50%),
    linear-gradient(to left,rgba(103,213,255,.08),rgba(103,213,255,.08));
  background-position:
    calc(100% - 21px) 50%,
    calc(100% - 15px) 50%,
    100% 0;
  background-size:6px 6px,6px 6px,43px 100%;
  background-repeat:no-repeat;
  color:var(--text);
  font-size:13px;
  font-weight:650;
  line-height:1.25;
  box-shadow:inset 0 1px rgba(255,255,255,.035),0 6px 18px rgba(0,0,0,.08);
  cursor:pointer;
  transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease,transform .18s ease;
}
select:focus {
  border-color:rgba(103,213,255,.58);
  background-color:#151b2d;
  box-shadow:0 0 0 3px rgba(103,213,255,.1),0 10px 24px rgba(0,0,0,.13);
}
select:active { transform:scale(.99); }
select:disabled { opacity:.48; cursor:not-allowed; }
select option,select optgroup { color:var(--text); background:#151a29; font-family:var(--font); }
select optgroup { color:var(--accent-2); font-weight:750; }
.field:has(select) { position:relative; }
.field:has(select)::after { content:"SELEZIONA"; position:absolute; right:47px; top:2px; color:#626c85; font-size:7px; font-weight:750; letter-spacing:.1em; pointer-events:none; }
.exercise-picker .field:has(select)::after { content:"CATALOGO"; }
.exercise-picker select[data-field="muscle"] { border-left:3px solid var(--accent); }
.exercise-picker select[data-field="name"] { border-left:3px solid var(--accent-2); }
.planner-form select { background-color:#131827; }
.pdf-tech-row select { min-height:40px; padding:7px 35px 7px 9px; background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%,100% 0; background-size:5px 5px,5px 5px,31px 100%; font-size:10px; }
.pdf-tech-row .field:has(select)::after { display:none; }

@media (hover:hover) {
  select:hover { border-color:rgba(103,213,255,.3); background-color:#151a2a; box-shadow:inset 0 1px rgba(255,255,255,.045),0 9px 22px rgba(0,0,0,.12); }
}

@media (max-width:560px) {
  select { min-height:56px; font-size:14px; }
  .field:has(select)::after { display:none; }
}

/* Athlete profile context v14 */
.profile-basics { margin-top:12px; }
.onboard-limits { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
.onboard-limits button { min-height:45px; padding:7px; border:1px solid var(--line); border-radius:13px; background:var(--surface); color:var(--muted); font-size:10px; font-weight:700; }
.onboard-limits button.selected { color:var(--accent-2); border-color:rgba(103,213,255,.38); background:rgba(103,213,255,.075); }
.profile-facts { display:flex; justify-content:center; flex-wrap:wrap; gap:7px; margin:-4px 0 16px; }
.profile-facts span { padding:6px 9px; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.025); color:#c1c6d5; font-size:10px; font-weight:650; }
.readiness-baseline { margin:0; padding:10px 12px; border-radius:13px; background:rgba(103,213,255,.055); color:var(--muted); font-size:10px; line-height:1.45; }
.readiness-baseline strong { color:var(--accent-2); }

@media (max-width:380px) {
  .onboard-limits { grid-template-columns:1fr; }
}

/* Manual active calories v15 */
.calories-copy { margin:0 0 18px; line-height:1.55; }
.calories-form { display:grid; gap:10px; }
.calorie-input { position:relative; display:block; }
.calorie-input input {
  width:100%;
  min-height:104px;
  padding:18px 82px 18px 24px;
  border:1px solid rgba(103,213,255,.2);
  border-radius:22px;
  background:linear-gradient(145deg,rgba(103,213,255,.075),rgba(255,255,255,.025));
  color:var(--text);
  font-family:var(--font-display);
  font-size:48px;
  font-weight:750;
  letter-spacing:-.045em;
  text-align:center;
  box-shadow:inset 0 1px rgba(255,255,255,.04);
}
.calorie-input input:focus { border-color:rgba(103,213,255,.58); box-shadow:0 0 0 4px rgba(103,213,255,.09); }
.calorie-input span { position:absolute; right:24px; top:50%; transform:translateY(-50%); color:var(--accent-2); font-size:14px; font-weight:800; pointer-events:none; }
.calories-edit { margin-top:14px; }

/* Medals, trophies and local analysis v16 */
.workout-analysis,.workout-complete { padding:12px 0 2px; text-align:center; }
.workout-analysis h2,.workout-complete h2 { margin:8px 0 20px; font-size:30px; }
.analysis-orbit { position:relative; width:92px; height:92px; margin:2px auto 24px; display:grid; place-items:center; }
.analysis-orbit span { position:relative; z-index:2; display:grid; place-items:center; width:52px; height:52px; border-radius:17px; background:var(--accent); color:#07100c; font:800 28px/1 var(--font-display); box-shadow:0 0 34px rgba(103,213,255,.2); animation:analysis-pulse 1.45s ease-in-out infinite; }
.analysis-orbit i { position:absolute; inset:4px; border:1px solid rgba(103,213,255,.18); border-top-color:var(--accent-2); border-radius:50%; animation:analysis-spin 2s linear infinite; }
.analysis-orbit i:nth-child(3) { inset:13px; border-top-color:var(--accent); animation-direction:reverse; animation-duration:1.45s; }
.analysis-orbit i:nth-child(4) { inset:0; border-color:transparent; border-left-color:rgba(255,255,255,.16); animation-duration:2.8s; }
.analysis-steps { display:flex; justify-content:center; gap:7px; margin-bottom:18px; }
.analysis-steps span { padding:6px 9px; border-radius:999px; background:rgba(103,213,255,.07); color:var(--muted); font-size:9px; font-weight:750; animation:analysis-step 1.5s ease-in-out infinite; }
.analysis-steps span:nth-child(2) { animation-delay:.25s; }
.analysis-steps span:nth-child(3) { animation-delay:.5s; }
.fact-card { margin:0; padding:18px; border:1px solid rgba(103,213,255,.16); border-radius:20px; background:linear-gradient(145deg,rgba(103,213,255,.07),rgba(255,255,255,.02)); text-align:left; }
.fact-card small { color:var(--accent-2); font-size:9px; font-weight:850; letter-spacing:.16em; }
.fact-card p { margin:8px 0 0; color:#e3e7f2; font-size:14px; line-height:1.55; }

.session-medal { position:relative; width:104px; height:104px; margin:0 auto 18px; display:grid; place-items:center; border-radius:50%; background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.28),transparent 25%),var(--medal); box-shadow:0 18px 45px color-mix(in srgb,var(--medal) 28%,transparent); animation:medal-entry .7s cubic-bezier(.2,.9,.3,1.25) both; }
.session-medal span { position:relative; z-index:2; font-size:58px; filter:drop-shadow(0 7px 8px rgba(0,0,0,.25)); }
.session-medal i { position:absolute; inset:-7px; border:1px solid color-mix(in srgb,var(--medal) 55%,white); border-radius:50%; animation:medal-ring 2s ease-out infinite; }
.session-medal.gold { --medal:#e7b945; }.session-medal.silver { --medal:#99a6ba; }.session-medal.bronze { --medal:#af7049; }
.medal-copy { display:grid; gap:4px; margin:-8px 0 18px; }
.medal-copy strong { color:var(--warning); font-size:16px; }
.medal-copy span { color:var(--muted); font-size:11px; line-height:1.45; }
.completion-metrics { margin:20px 0; }
.record-celebration { color:var(--warning); font-weight:800; }
.unlocked-panel { display:grid; gap:8px; margin:18px 0; padding:14px; border:1px solid rgba(231,185,69,.2); border-radius:18px; background:rgba(231,185,69,.045); text-align:left; }
.unlocked-trophy { display:flex; align-items:center; gap:11px; padding:10px; border-radius:13px; background:rgba(255,255,255,.035); animation:trophy-rise .55s ease both; }
.unlocked-trophy > span { display:grid; place-items:center; min-width:42px; height:42px; border-radius:13px; background:rgba(231,185,69,.1); color:var(--warning); font-size:21px; font-weight:900; }
.unlocked-trophy div { display:grid; gap:3px; }.unlocked-trophy small { color:var(--muted); line-height:1.35; }
.medal-chip { border-color:rgba(231,185,69,.25); color:var(--warning); }

.achievement-section { margin-top:22px; }
.achievement-grid { display:grid; grid-template-columns:1fr; gap:8px; }
.achievement-card { display:flex; align-items:center; gap:11px; min-height:78px; padding:12px; border:1px solid var(--line); border-radius:17px; background:var(--surface); }
.achievement-icon { display:grid; place-items:center; flex:0 0 46px; height:46px; border-radius:14px; background:rgba(255,255,255,.04); color:var(--muted); font-size:19px; font-weight:900; }
.achievement-card div:last-child { min-width:0; }.achievement-card strong { display:block; font-size:12px; }.achievement-card p { margin:3px 0; color:var(--muted); font-size:9px; line-height:1.35; }.achievement-card small { color:#626c85; font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; }
.achievement-card.locked { opacity:.46; filter:saturate(.35); }
.achievement-card.unlocked { border-color:color-mix(in srgb,var(--trophy-color) 32%,transparent); background:linear-gradient(145deg,color-mix(in srgb,var(--trophy-color) 8%,transparent),rgba(255,255,255,.02)); }
.achievement-card.unlocked .achievement-icon { color:var(--trophy-color); background:color-mix(in srgb,var(--trophy-color) 11%,transparent); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--trophy-color) 18%,transparent); }
.achievement-card.bronze { --trophy-color:#c9865c; }.achievement-card.silver { --trophy-color:#bac7d9; }.achievement-card.gold { --trophy-color:#e7b945; }.achievement-card.platinum { --trophy-color:#77d9ff; }

@keyframes analysis-spin { to { transform:rotate(360deg); } }
@keyframes analysis-pulse { 50% { transform:scale(.94); box-shadow:0 0 50px rgba(103,213,255,.32); } }
@keyframes analysis-step { 0%,100% { opacity:.42; transform:translateY(0); } 50% { opacity:1; transform:translateY(-2px); color:var(--accent-2); } }
@keyframes medal-entry { from { opacity:0; transform:translateY(18px) scale(.5) rotate(-12deg); } to { opacity:1; transform:none; } }
@keyframes medal-ring { from { opacity:.65; transform:scale(.86); } to { opacity:0; transform:scale(1.25); } }
@keyframes trophy-rise { from { opacity:0; transform:translateY(8px); } }

@media (min-width:700px) { .achievement-grid { grid-template-columns:repeat(2,1fr); } }
@media (prefers-reduced-motion:reduce) { .analysis-orbit span,.analysis-orbit i,.analysis-steps span,.session-medal,.session-medal i,.unlocked-trophy { animation:none!important; } }

/* Local Personal Trainer Manager v19 */
.trainer-entry { background:linear-gradient(90deg,rgba(103,213,255,.045),transparent); }
.trainer-entry .setting-icon { background:linear-gradient(145deg,var(--accent-2),#7b8cff); color:#08101a; font-size:11px; font-weight:900; box-shadow:0 8px 22px rgba(103,213,255,.18); }
.trainer-page { --coach:#67d5ff; --coach-violet:#8f89ff; }
.trainer-welcome { padding:28px 20px; text-align:center; background:radial-gradient(circle at 50% 0,rgba(103,213,255,.13),transparent 45%),var(--surface); }
.trainer-welcome h2 { max-width:420px; margin:10px auto; font-size:29px; line-height:1.05; }
.trainer-welcome p { max-width:480px; margin:0 auto; color:var(--muted); font-size:12px; line-height:1.6; }
.trainer-mark { display:grid; place-items:center; width:64px; height:64px; margin:0 auto 18px; border-radius:21px; background:linear-gradient(145deg,var(--coach),var(--coach-violet)); color:#08101a; font:900 20px/1 var(--font-display); box-shadow:0 16px 40px rgba(103,213,255,.18); }
.trainer-setup { max-width:520px; margin:14px auto 0; }
.trainer-hero { display:grid; gap:20px; margin-bottom:14px; padding:23px 20px; overflow:hidden; position:relative; border:1px solid rgba(103,213,255,.17); border-radius:25px; background:radial-gradient(circle at 95% -10%,rgba(143,137,255,.25),transparent 42%),linear-gradient(145deg,rgba(103,213,255,.1),rgba(255,255,255,.025)); }
.trainer-hero::after { content:"PT"; position:absolute; right:-14px; bottom:-26px; color:rgba(255,255,255,.025); font:900 110px/1 var(--font-display); pointer-events:none; }
.trainer-hero h2 { max-width:430px; margin:7px 0; font-size:31px; line-height:1.03; }
.trainer-hero p { max-width:490px; margin:0; color:var(--muted); font-size:11px; line-height:1.55; }
.trainer-hero-actions { position:relative; z-index:1; display:grid; gap:8px; }
.trainer-overview { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.trainer-overview article { display:grid; min-height:108px; padding:14px; border:1px solid var(--line); border-radius:18px; background:var(--surface); }
.trainer-overview article span { color:var(--muted); font-size:9px; font-weight:750; text-transform:uppercase; letter-spacing:.08em; }
.trainer-overview article strong { align-self:end; font:750 29px/1 var(--font-display); letter-spacing:-.04em; }
.trainer-overview article small { margin-top:4px; color:#626c85; font-size:8px; }
.trainer-overview article.attention { border-color:rgba(255,187,91,.24); background:rgba(255,187,91,.045); }
.trainer-overview article.attention strong { color:var(--warning); }
.trainer-local-note { display:flex; align-items:flex-start; gap:10px; margin:10px 0 20px; padding:12px 14px; border:1px solid rgba(103,213,255,.12); border-radius:15px; background:rgba(103,213,255,.045); }
.trainer-local-note > span { color:var(--coach); font-size:11px; font-weight:900; }
.trainer-local-note div { display:grid; gap:3px; }.trainer-local-note strong { font-size:10px; }.trainer-local-note small { color:var(--muted); font-size:9px; line-height:1.45; }
.trainer-search { display:flex; align-items:center; gap:9px; margin-bottom:10px; padding:0 14px; border:1px solid var(--line); border-radius:16px; background:var(--surface); }
.trainer-search span { color:var(--coach); font-size:20px; }.trainer-search input { min-height:50px; padding:0; border:0; background:transparent; box-shadow:none; }
.trainer-client-grid { display:grid; gap:9px; }
.trainer-client-card { width:100%; padding:14px; border:1px solid var(--line); border-radius:20px; background:var(--surface); color:var(--text); text-align:left; box-shadow:0 12px 30px rgba(0,0,0,.08); transition:transform .18s ease,border-color .18s ease; }
.trainer-client-card.warning { border-color:rgba(255,187,91,.25); }.trainer-client-card.danger { border-color:rgba(255,113,109,.28); }
.trainer-client-card[hidden] { display:none; }
.trainer-client-top { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; }
.trainer-client-top > div:nth-child(2) { display:grid; gap:3px; min-width:0; }.trainer-client-top strong { overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }.trainer-client-top small { color:var(--muted); font-size:8px; }
.client-avatar { display:grid; place-items:center; width:42px; height:42px; border-radius:14px; background:linear-gradient(145deg,rgba(103,213,255,.2),rgba(143,137,255,.14)); color:var(--coach); font:800 16px/1 var(--font-display); }
.client-avatar.large { width:56px; height:56px; border-radius:18px; font-size:21px; }
.client-status { display:inline-flex; align-items:center; width:max-content; padding:5px 7px; border-radius:999px; background:rgba(113,225,173,.08); color:#71e1ad; font-size:7px; font-weight:850; text-transform:uppercase; letter-spacing:.07em; white-space:nowrap; }
.client-status.warning { background:rgba(255,187,91,.09); color:var(--warning); }.client-status.danger { background:rgba(255,113,109,.09); color:var(--danger); }
.client-quick { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-top:13px; }
.client-quick span { display:grid; gap:4px; padding:9px; border-radius:12px; background:rgba(255,255,255,.025); }
.client-quick small { color:#626c85; font-size:7px; font-weight:750; }.client-quick b { overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.client-last { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-top:11px; padding-top:10px; border-top:1px solid var(--line); color:var(--muted); font-size:9px; }.client-last i { color:var(--coach); font-size:16px; font-style:normal; }
.client-detail-head { display:flex; align-items:center; gap:13px; margin-bottom:16px; }.client-detail-head div:last-child { display:grid; gap:6px; }.client-detail-head p { margin:0; color:var(--muted); font-size:10px; }
.trainer-detail-metrics { margin:16px 0; }
.client-facts { display:flex; flex-wrap:wrap; gap:6px; }.client-facts span { padding:6px 8px; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:8px; }
.trainer-session-row { display:flex; justify-content:space-between; align-items:center; width:100%; padding:12px; border:1px solid var(--line); border-radius:15px; background:var(--surface); color:var(--text); text-align:left; }
.trainer-session-row div { display:grid; gap:4px; }.trainer-session-row strong { font-size:11px; }.trainer-session-row small { color:var(--muted); font-size:8px; }.trainer-session-row > span { font-size:20px; }
.session-set-summary { margin:7px 0 0; line-height:1.65; }
.coach-client-note { padding:14px; border-left:3px solid var(--coach-violet); border-radius:0 14px 14px 0; background:rgba(143,137,255,.06); }.coach-client-note span { color:var(--coach-violet); font-size:8px; font-weight:850; letter-spacing:.1em; }.coach-client-note p { margin:7px 0 0; font-size:11px; line-height:1.5; }
.empty-inline { padding:20px; border:1px dashed var(--line); border-radius:15px; color:var(--muted); font-size:10px; text-align:center; }
.invite-code { margin:8px 0 16px; padding:22px; border:1px solid rgba(103,213,255,.22); border-radius:22px; background:linear-gradient(145deg,rgba(103,213,255,.1),rgba(143,137,255,.07)); color:var(--text); font:800 42px/1 var(--font-display); letter-spacing:.14em; text-align:center; text-shadow:0 0 25px rgba(103,213,255,.28); }
.invite-copy { line-height:1.55; }

@media (hover:hover) { .trainer-client-card:hover { transform:translateY(-2px); border-color:rgba(103,213,255,.28); } }
@media (min-width:720px) {
  .trainer-hero { grid-template-columns:1fr auto; align-items:end; padding:30px; }
  .trainer-hero-actions { min-width:190px; }
  .trainer-overview { grid-template-columns:repeat(4,1fr); }
  .trainer-client-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:380px) { .trainer-client-top { grid-template-columns:auto 1fr; }.trainer-client-top .client-status { grid-column:1/-1; }.client-quick { grid-template-columns:1fr; }.invite-code { font-size:33px; } }

/* Separate Client / Trainer registration v20 */
.role-onboarding { width:min(100%,720px); }
.role-main { align-items:stretch; }
.role-main > .brand-mark { margin-bottom:26px; }
.role-main > h1 { max-width:620px; }
.role-main > p { max-width:560px; }
.role-choice-grid { display:grid; gap:10px; margin:22px 0 14px; }
.role-choice { display:grid; grid-template-columns:54px 1fr auto; align-items:center; gap:13px; width:100%; min-height:100px; padding:14px; border:1px solid var(--line); border-radius:21px; background:var(--surface); color:var(--text); text-align:left; transition:transform .18s ease,border-color .18s ease,background .18s ease; }
.role-choice > span { display:grid; place-items:center; width:54px; height:54px; border-radius:17px; font-size:19px; font-weight:900; }
.role-choice.athlete > span { background:rgba(255,107,74,.1); color:var(--accent); }
.role-choice.coach > span { background:linear-gradient(145deg,rgba(103,213,255,.2),rgba(143,137,255,.15)); color:var(--accent-2); }
.role-choice div { display:grid; gap:5px; }.role-choice strong { font-size:15px; }.role-choice small { color:var(--muted); font-size:10px; line-height:1.4; }.role-choice b { color:var(--muted); font-size:19px; }
.onboard-back-link { align-self:flex-start; margin-bottom:22px; padding:7px 0; border:0; background:transparent; color:var(--muted); font-size:11px; font-weight:700; }
.trainer-registration { width:min(100%,650px); }.trainer-register-form { margin-top:18px; }
.trainer-code-input input { min-height:86px; font:800 30px/1 var(--font-display); letter-spacing:.12em; text-align:center; text-transform:uppercase; }
.trainer-link-icon { color:var(--accent-2); background:rgba(103,213,255,.09); font-size:10px; font-weight:900; }
.client-status.linked { background:rgba(103,213,255,.1); color:var(--accent-2); }
.trainer-nav { grid-template-columns:repeat(5,1fr); }

@media (hover:hover) { .role-choice:hover { transform:translateY(-2px); border-color:rgba(103,213,255,.3); background:rgba(103,213,255,.035); } }
@media (min-width:680px) { .role-choice-grid { grid-template-columns:repeat(2,1fr); }.role-choice { grid-template-columns:60px 1fr; min-height:148px; align-content:center; }.role-choice > span { width:60px; height:60px; }.role-choice > b { display:none; } }
@media (min-width:900px) { .trainer-nav { grid-template-columns:1fr; grid-template-rows:repeat(5,56px); } }

/* Trainer workout assignments v22 */
.trainer-program-section { margin-top:22px; padding:16px; border:1px solid rgba(103,213,255,.15); border-radius:21px; background:linear-gradient(145deg,rgba(103,213,255,.055),rgba(143,137,255,.025)); }
.trainer-program-section .section-head { align-items:flex-end; }
.trainer-program-section .section-head h3 { margin:4px 0 0; }
.trainer-template-list { display:grid; gap:9px; margin-top:12px; }
.trainer-template-row { display:grid; gap:12px; padding:13px; border:1px solid var(--line); border-radius:16px; background:#101522; }
.trainer-template-row.assigned { border-color:rgba(103,213,255,.22); box-shadow:inset 3px 0 var(--coach); }
.trainer-template-row > div:first-child { display:grid; gap:4px; min-width:0; }
.trainer-template-row > div:first-child > span { color:var(--coach); font-size:7px; font-weight:850; letter-spacing:.11em; }
.trainer-template-row strong { overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.trainer-template-row small { color:var(--muted); font-size:8px; line-height:1.4; }
.trainer-template-actions { display:flex; flex-wrap:wrap; gap:6px; }
.trainer-template-actions .btn { flex:1 1 auto; }
.assignment-sync-note { margin:12px 0 0; color:var(--muted); font-size:9px; line-height:1.55; }
.trainer-editor-context { display:flex; align-items:center; gap:11px; margin:-3px 0 16px; padding:11px 13px; border:1px solid rgba(103,213,255,.16); border-radius:15px; background:rgba(103,213,255,.05); }
.trainer-editor-context > span { display:grid; place-items:center; flex:0 0 39px; height:39px; border-radius:13px; background:linear-gradient(145deg,var(--accent-2),#8f89ff); color:#08101a; font-size:10px; font-weight:900; }
.trainer-editor-context div { display:grid; gap:3px; }.trainer-editor-context strong { font-size:10px; }.trainer-editor-context small { color:var(--muted); font-size:8px; line-height:1.4; }
.trainer-assignment-banner { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:11px; margin:0 0 13px; padding:12px 14px; border:1px solid rgba(103,213,255,.2); border-radius:17px; background:linear-gradient(145deg,rgba(103,213,255,.09),rgba(143,137,255,.045)); animation:assignment-arrive .5s ease both; }
.trainer-assignment-banner > span { display:grid; place-items:center; width:42px; height:42px; border-radius:14px; background:linear-gradient(145deg,var(--accent-2),#8f89ff); color:#08101a; font-size:11px; font-weight:900; }
.trainer-assignment-banner div { display:grid; gap:4px; }.trainer-assignment-banner strong { font-size:11px; }.trainer-assignment-banner small { color:var(--muted); font-size:8px; }
.workout-card.coach-assigned { border-color:rgba(103,213,255,.25); box-shadow:0 14px 34px rgba(103,213,255,.055); }
.workout-card.coach-assigned .workout-label { color:var(--accent-2); }
@keyframes assignment-arrive { from { opacity:0; transform:translateY(-8px); } }

@media (min-width:620px) {
  .trainer-template-row { grid-template-columns:minmax(0,1fr) auto; align-items:center; }
  .trainer-template-actions .btn { flex:none; }
}
@media (prefers-reduced-motion:reduce) { .trainer-assignment-banner { animation:none; } }

/* White-label locale v25 */
.brand-logo { flex:0 0 auto; width:42px; height:42px; display:grid; place-items:center; overflow:hidden; border-radius:13px; background:var(--accent); color:#fff; transform:skew(-4deg); box-shadow:0 10px 28px color-mix(in srgb,var(--accent) 22%,transparent); }
.brand-logo span { width:auto!important; height:auto!important; border-radius:0!important; background:transparent!important; color:inherit!important; font-size:17px!important; transform:none!important; }
.brand-logo img { width:100%; height:100%; object-fit:cover; transform:skew(4deg) scale(1.08); }
.desktop-brand { min-width:0; }
.desktop-brand strong { overflow:hidden; max-width:112px; text-overflow:ellipsis; white-space:nowrap; }
.desktop-brand small { margin-left:-5px; color:var(--muted); font-size:7px; font-weight:850; letter-spacing:.13em; }
.brand-preview { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px; margin-bottom:18px; padding:14px; border:1px solid color-mix(in srgb,var(--accent-2) 24%,transparent); border-radius:19px; background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 9%,transparent),color-mix(in srgb,var(--accent-2) 6%,transparent)); }
.brand-preview-logo { width:54px; height:54px; display:grid; place-items:center; overflow:hidden; border-radius:17px; background:var(--accent); color:#fff; font-size:18px; font-weight:900; }
.brand-preview-logo img { width:100%; height:100%; object-fit:cover; }
.brand-preview-logo span { font-weight:900; }
.brand-preview > div:nth-child(2) { display:grid; gap:4px; min-width:0; }
.brand-preview strong,.brand-preview small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.brand-preview strong { font-size:15px; }.brand-preview small { color:var(--muted); font-size:9px; }
.brand-preview > span { padding:5px 7px; border-radius:999px; background:rgba(113,225,173,.08); color:#71e1ad; font-size:7px; font-weight:850; letter-spacing:.07em; }
.settings-section-title { margin:8px 0 0; padding-top:15px; border-top:1px solid var(--line); color:var(--accent-2); font-size:9px; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.brand-colors { display:grid; grid-template-columns:repeat(2,1fr); gap:9px; }
.brand-colors label { display:grid; gap:7px; color:var(--muted); font-size:9px; font-weight:750; }
.brand-colors input[type="color"] { min-height:54px; padding:5px; cursor:pointer; }
.brand-logo-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.brand-logo-actions small { flex:1 1 100%; color:var(--muted); font-size:8px; line-height:1.45; }
.feature-toggle { display:flex; align-items:center; gap:11px; min-height:52px; padding:10px 12px; border:1px solid var(--line); border-radius:15px; background:var(--surface); font-size:11px; font-weight:700; }
.feature-toggle input { width:21px; min-height:21px; margin:0; accent-color:var(--accent); }
@media (max-width:520px) { .brand-preview { grid-template-columns:auto 1fr; }.brand-preview > span { grid-column:1/-1; width:max-content; }.brand-colors { grid-template-columns:1fr; } }

/* Super Admin white-label locale v26 */
.brand-preview-locked { border-style:dashed; }
.brand-preview-locked > span { background:rgba(255,187,91,.09); color:var(--warning); }
.admin-body { min-height:100vh; background:#080a14; }
.admin-gate { min-height:100dvh; display:grid; place-items:center; padding:24px; background:radial-gradient(circle at 50% 0,rgba(103,213,255,.12),transparent 38%),#080a14; }
.admin-gate-card { width:min(100%,460px); padding:26px; border:1px solid var(--line); border-radius:28px; background:rgba(16,21,34,.95); box-shadow:0 28px 80px rgba(0,0,0,.35); text-align:center; }
.admin-gate-card .brand-mark { margin:0 auto 20px; }
.admin-gate-card h1 { margin:8px 0; font-size:34px; }
.admin-gate-card > p { color:var(--muted); font-size:11px; line-height:1.6; }
.admin-gate-card form { margin-top:20px; text-align:left; }
.cloud-admin-gate { background:radial-gradient(circle at 50% 0,rgba(255,107,74,.14),transparent 36%),radial-gradient(circle at 15% 90%,rgba(103,213,255,.08),transparent 34%),#080a14; }
.cloud-access-note { display:flex; align-items:center; gap:11px; margin-top:17px; padding:12px 13px; border:1px solid rgba(103,213,255,.14); border-radius:15px; background:rgba(103,213,255,.04); text-align:left; }
.cloud-access-note > span { display:grid; place-items:center; width:34px; height:34px; flex:0 0 auto; border-radius:11px; background:rgba(103,213,255,.1); color:var(--accent-2); }
.cloud-access-note div { display:grid; gap:3px; }
.cloud-access-note strong { font-size:9px; }
.cloud-access-note small { color:var(--muted); font-size:7px; line-height:1.45; }
.admin-identity > span { color:var(--muted); font-size:7px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-pin input { min-height:76px; font:800 30px/1 var(--font-display); letter-spacing:.25em; text-align:center; }
.admin-shell { min-height:100dvh; background:#090c14; }
.admin-sidebar { display:none; }
.admin-content { min-width:0; }
.admin-page { width:min(100%,1240px); margin:0 auto; padding:24px 16px 70px; }
.admin-head { display:grid; gap:16px; margin-bottom:18px; }
.admin-head h1 { margin:6px 0 5px; font-size:35px; line-height:1; }
.admin-head p { max-width:590px; margin:0; color:var(--muted); font-size:11px; line-height:1.55; }
.admin-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:12px; }
.admin-metrics article { display:grid; min-height:105px; padding:13px; border:1px solid var(--line); border-radius:18px; background:var(--surface); }
.admin-metrics small { color:var(--muted); font-size:7px; font-weight:800; letter-spacing:.08em; }
.admin-metrics strong { align-self:end; font:800 28px/1 var(--font-display); }
.admin-metrics span { color:#71e1ad; font-size:7px; }
.admin-guide { display:none; }
.admin-section-head { display:flex; justify-content:space-between; align-items:end; gap:12px; margin:28px 0 12px; }
.admin-section-head h2 { margin:0 0 4px; font-size:20px; }
.admin-section-head small { color:var(--muted); font-size:8px; }
.admin-tenant-grid { display:grid; gap:10px; }
.admin-tenant-card { overflow:hidden; border:1px solid var(--line); border-radius:22px; background:var(--surface); box-shadow:0 16px 40px rgba(0,0,0,.12); }
.admin-tenant-brand { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px; padding:16px; background:linear-gradient(145deg,color-mix(in srgb,var(--tenant-primary) 14%,transparent),color-mix(in srgb,var(--tenant-secondary) 8%,transparent)); }
.admin-tenant-brand .brand-preview-logo { background:var(--tenant-primary); }
.admin-tenant-brand > div:nth-child(2) { min-width:0; }
.admin-tenant-brand small { color:var(--tenant-secondary); font-size:8px; font-weight:850; text-transform:uppercase; letter-spacing:.08em; }
.admin-tenant-brand h3 { overflow:hidden; margin:4px 0 2px; font-size:17px; text-overflow:ellipsis; white-space:nowrap; }
.admin-tenant-brand span { display:block; overflow:hidden; color:var(--muted); font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.admin-tenant-brand i { padding:5px 7px; border-radius:999px; background:rgba(113,225,173,.08); color:#71e1ad; font-size:7px; font-style:normal; font-weight:850; }
.admin-tenant-meta { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; border-block:1px solid var(--line); background:var(--line); }
.admin-tenant-meta span { display:grid; gap:4px; padding:11px 14px; background:var(--surface); }
.admin-tenant-meta small { color:var(--muted); font-size:7px; }
.admin-tenant-meta strong { font-size:11px; }
.admin-tenant-actions { display:flex; flex-wrap:wrap; gap:7px; padding:12px; }
.admin-tenant-actions .btn { flex:1 1 auto; }
.admin-empty { grid-column:1/-1; padding:42px 20px; border:1px dashed var(--line); border-radius:23px; text-align:center; }
.admin-empty > span { color:var(--accent-2); font-size:30px; }
.admin-empty h3 { margin:10px 0 4px; }
.admin-empty p { margin:0 0 17px; color:var(--muted); font-size:10px; }
.admin-delete { margin-top:10px; }
@media (max-width:500px) { .admin-metrics article { min-height:92px; padding:10px; }.admin-metrics strong { font-size:23px; }.admin-section-head { align-items:stretch; flex-direction:column; }.admin-section-head .btn { width:100%; } }
@media (min-width:720px) { .admin-head { grid-template-columns:1fr auto; align-items:end; }.admin-tenant-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.admin-guide { display:flex; align-items:center; gap:11px; padding:15px; border:1px solid rgba(103,213,255,.12); border-radius:18px; background:rgba(103,213,255,.035); }.admin-guide > span { display:grid; place-items:center; flex:0 0 34px; height:34px; border-radius:11px; background:var(--accent-2); color:#071019; font-weight:900; }.admin-guide div { display:grid; gap:3px; }.admin-guide strong { font-size:9px; }.admin-guide small { color:var(--muted); font-size:7px; }.admin-guide i { color:var(--muted); font-style:normal; } }
@media (min-width:980px) { .admin-shell { display:grid; grid-template-columns:250px minmax(0,1fr); }.admin-sidebar { position:sticky; top:0; display:flex; flex-direction:column; gap:14px; height:100dvh; padding:24px 18px; border-right:1px solid var(--line); background:#0c101a; }.admin-logo { display:flex; align-items:center; gap:11px; }.admin-logo > span { display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:var(--accent); color:white; font-weight:900; }.admin-logo div,.admin-identity,.admin-offline span { display:grid; gap:3px; }.admin-logo small,.admin-identity small,.admin-offline small { color:var(--muted); font-size:7px; letter-spacing:.1em; }.admin-identity { min-width:0; margin-top:24px; padding:13px; border:1px solid var(--line); border-radius:15px; }.admin-offline { display:flex; align-items:center; gap:9px; margin-top:auto; padding:12px; border:1px solid rgba(113,225,173,.12); border-radius:14px; background:rgba(113,225,173,.035); }.admin-offline i { color:#71e1ad; font-style:normal; }.admin-offline strong { font-size:9px; }.admin-page { padding:42px 34px 80px; }.admin-tenant-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1320px) { .admin-tenant-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.admin-sync-badge { display:inline-flex; align-items:center; min-height:36px; padding:0 13px; border:1px solid var(--border); border-radius:999px; color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.08em; background:var(--surface); }
.admin-sync-badge,
.admin-tenant-actions button[disabled] { display:none !important; }
.cloud-login-main{margin-top:22px;min-height:58px}.cloud-account-section{margin:0 0 18px}.cloud-account-section .setting-row{cursor:pointer}.cloud-account-section .setting-icon{color:var(--accent-2)}.cloud-welcome .role-main{max-width:640px}.cloud-welcome .local-badge{margin-top:24px}

/* Tema chiaro white-label v32 */
:root[data-theme="light"] {
  color-scheme: light;
  --bg:#f4f6fb;
  --surface:#ffffff;
  --surface-2:#f0f3f8;
  --surface-3:#e4e9f1;
  --text:#151925;
  --muted:#687186;
  --line:rgba(29,39,62,.12);
  --shadow:0 18px 52px rgba(37,48,75,.12);
}
[data-theme="light"] body { background:linear-gradient(180deg,#f8f9fc 0,#f1f4f9 100%); }
[data-theme="light"] input,
[data-theme="light"] select,
[data-theme="light"] textarea { background:#fff; box-shadow:0 1px 0 rgba(255,255,255,.85) inset; }
[data-theme="light"] .card { background:linear-gradient(145deg,#fff,#f7f9fc); }
[data-theme="light"] .hero-card { background:radial-gradient(circle at 95% 0%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 36%),linear-gradient(145deg,#fff,#edf2f8); }
[data-theme="light"] .hero-meta,
[data-theme="light"] .chip { color:#596477; }
[data-theme="light"] .ring::after { background:#fff; }
[data-theme="light"] .nav { background:rgba(248,250,253,.9); box-shadow:0 -10px 35px rgba(45,58,86,.08); }
[data-theme="light"] .nav-btn { color:#747e91; }
[data-theme="light"] .modal { background:#fff; box-shadow:0 -24px 70px rgba(31,42,67,.18); }
[data-theme="light"] .modal-handle { background:#d1d7e2; }
[data-theme="light"] .session-shell { background:linear-gradient(180deg,#f8faff,#eef2f7); }
[data-theme="light"] .session-head,
[data-theme="light"] .session-footer { background:rgba(248,250,253,.92); }
[data-theme="light"] .set-row,
[data-theme="light"] .set-row input,
[data-theme="light"] .trainer-template-row { background:#fff; }
[data-theme="light"] .timer-float { background:#fff; box-shadow:0 18px 52px rgba(33,44,70,.17); }
[data-theme="light"] .timer-progress { background:#e1e6ee; }
[data-theme="light"] .timer-actions button { background:#edf1f6; }
[data-theme="light"] .fact-card p { color:var(--text); }
[data-theme="light"] .brand-mark { color:#10131b; }

/* Agenda lezioni trainer + cliente v37 */
.next-lesson-hero,.lesson-empty-hero,.trainer-agenda-hero{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:26px;background:radial-gradient(circle at 95% 0%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 42%),linear-gradient(145deg,var(--surface),var(--surface-2));box-shadow:var(--shadow)}
.next-lesson-hero{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:18px}.next-lesson-hero>button{grid-column:1/-1}.next-lesson-hero h2,.trainer-agenda-hero h2{margin:3px 0 5px;font-size:clamp(22px,5vw,36px)}.next-lesson-hero p,.trainer-agenda-hero p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.lesson-date-tile{display:grid;place-items:center;min-width:68px;min-height:74px;padding:9px;border-radius:20px;color:#0d111c;background:linear-gradient(145deg,var(--accent),var(--accent-2));box-shadow:0 10px 28px color-mix(in srgb,var(--accent) 20%,transparent)}.lesson-date-tile strong{font-size:28px;line-height:1}.lesson-date-tile span{text-transform:uppercase;font-size:10px;font-weight:900;letter-spacing:.12em}
.lesson-empty-hero{display:flex;gap:14px;align-items:center;padding:18px}.lesson-empty-hero>span{display:grid;place-items:center;width:50px;height:50px;border-radius:17px;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.lesson-empty-hero strong,.lesson-empty-hero small{display:block}.lesson-empty-hero small{margin-top:4px;color:var(--muted);line-height:1.45}
.calendar-alert{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:13px 14px;border:1px solid color-mix(in srgb,var(--danger) 28%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--danger) 7%,var(--surface))}.calendar-alert span,.calendar-alert strong{display:block}.calendar-alert span{color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:900;letter-spacing:.08em}
.calendar-toolbar{display:flex;align-items:center;justify-content:center;gap:12px;margin:16px 0 12px}.calendar-toolbar h2{min-width:160px;margin:0;text-align:center;text-transform:capitalize;font-size:18px}.lesson-calendar-grid .calendar-day{min-height:64px}.calendar-day .day-label.lesson{color:var(--accent-2)}.calendar-day .day-more{position:absolute;right:5px;bottom:5px;color:var(--muted);font-size:8px;font-weight:900}.legend .lesson-dot{background:var(--accent-2)}
.lesson-week-list{gap:10px}.lesson-day-stack{display:grid;gap:8px;min-width:0;flex:1}.lesson-card,.trainer-lesson-card{width:100%;display:grid;grid-template-columns:auto 3px 1fr auto;align-items:center;gap:11px;padding:13px;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));border-radius:18px;color:var(--text);background:linear-gradient(145deg,var(--surface),var(--surface-2));text-align:left;cursor:pointer}.lesson-card .lesson-time,.trainer-lesson-card .lesson-time{font-size:16px;font-weight:950;font-variant-numeric:tabular-nums}.lesson-line{width:3px;height:42px;border-radius:9px;background:linear-gradient(var(--accent),var(--accent-2))}.lesson-card small,.lesson-card strong,.lesson-card span,.trainer-lesson-card small,.trainer-lesson-card strong,.trainer-lesson-card span{display:block}.lesson-card small,.trainer-lesson-card small{color:var(--accent-2);font-size:8px;font-weight:950;letter-spacing:.1em}.lesson-card strong,.trainer-lesson-card strong{margin:3px 0;font-size:13px}.lesson-card div>span,.trainer-lesson-card div>span{color:var(--muted);font-size:10px}.lesson-card>i{font-style:normal;color:var(--muted);font-size:22px}.workout-agenda-card{width:100%;display:flex;align-items:center;justify-content:space-between;color:var(--text);text-align:left}.workout-agenda-card span{color:var(--muted);font-size:10px}.empty-day{color:var(--muted)}
.lesson-detail-summary{display:flex;align-items:center;gap:14px;padding:15px;border-radius:20px;background:var(--surface-2)}.lesson-detail-summary>div:last-child strong,.lesson-detail-summary>div:last-child span{display:block}.lesson-detail-summary>div:last-child span{margin-top:5px;color:var(--muted)}.lesson-detail-list{display:grid;gap:0;margin:14px 0;border:1px solid var(--line);border-radius:18px;overflow:hidden}.lesson-detail-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid var(--line)}.lesson-detail-list>div:last-child{border:0}.lesson-detail-list span{color:var(--muted);font-size:11px}
.trainer-agenda-hero{display:grid;gap:18px;padding:22px}.agenda-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.agenda-stats span{padding:13px 8px;border:1px solid var(--line);border-radius:17px;background:color-mix(in srgb,var(--surface) 76%,transparent);text-align:center}.agenda-stats strong,.agenda-stats small{display:block}.agenda-stats strong{font-size:24px}.agenda-stats small{margin-top:3px;color:var(--muted);font-size:9px;font-weight:850;text-transform:uppercase}
.trainer-calendar-tools{display:grid;gap:12px;margin:18px 0 12px}.trainer-calendar-tools>div{display:flex;align-items:center;gap:8px}.trainer-calendar-tools h2{margin:0 0 0 4px;text-transform:capitalize;font-size:18px}.lesson-filter{display:grid;gap:5px}.lesson-filter>span{color:var(--muted);font-size:8px;font-weight:950;letter-spacing:.12em}.lesson-filter select{min-height:44px}.trainer-calendar-layout{display:grid;gap:16px}.trainer-month-card{padding:10px;overflow:auto}.trainer-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(52px,1fr));gap:5px;min-width:390px}.trainer-calendar-day{min-height:82px;padding:7px;border:1px solid var(--line);border-radius:13px;color:var(--text);background:var(--surface-2);text-align:left;cursor:pointer;overflow:hidden}.trainer-calendar-day.out{opacity:.32}.trainer-calendar-day.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 32%,transparent)}.trainer-calendar-day>span{font-size:11px;font-weight:900}.trainer-calendar-day>div{display:grid;gap:3px;margin-top:7px}.trainer-calendar-day i{display:block;overflow:hidden;padding:3px 4px;border-radius:6px;color:var(--text);background:color-mix(in srgb,var(--accent) 10%,var(--surface));font-size:7px;font-style:normal;white-space:nowrap;text-overflow:ellipsis}.trainer-calendar-day i b{color:var(--accent)}.trainer-calendar-day small{color:var(--muted);font-size:7px}.trainer-upcoming{min-width:0}.trainer-upcoming h3{margin:2px 0}.trainer-lesson-list{display:grid;gap:8px}.trainer-lesson-card{grid-template-columns:auto auto 1fr;padding:12px}.trainer-lesson-card em{grid-column:2/4;justify-self:start;padding:4px 7px;border-radius:999px;color:var(--accent-2);background:color-mix(in srgb,var(--accent-2) 10%,transparent);font-size:8px;font-style:normal;font-weight:900;text-transform:uppercase}.trainer-lesson-card.cancelled{opacity:.58}.lesson-client-avatar{display:grid!important;place-items:center;width:36px;height:36px;border-radius:12px;color:#0d111c!important;background:linear-gradient(145deg,var(--accent),var(--accent-2));font-size:12px!important;font-weight:950}.lesson-form textarea{min-height:88px}
@media (min-width:700px){.next-lesson-hero{grid-template-columns:auto 1fr auto;padding:22px}.next-lesson-hero>button{grid-column:auto}.trainer-agenda-hero{grid-template-columns:1.4fr 1fr;align-items:end;padding:28px}.trainer-calendar-tools{grid-template-columns:1fr minmax(210px,280px);align-items:end}.trainer-calendar-layout{grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);align-items:start}.trainer-month-card{padding:14px}.trainer-calendar-day{min-height:108px;padding:9px}.trainer-calendar-day i{font-size:8px}.trainer-lesson-card em{grid-column:auto;justify-self:end}.trainer-lesson-card{grid-template-columns:auto auto 1fr auto}}
[data-theme="light"] .next-lesson-hero,[data-theme="light"] .lesson-empty-hero,[data-theme="light"] .trainer-agenda-hero,[data-theme="light"] .lesson-card,[data-theme="light"] .trainer-lesson-card{background:linear-gradient(145deg,#fff,#f2f5fa)}[data-theme="light"] .trainer-calendar-day{background:#f7f9fc}[data-theme="light"] .lesson-date-tile,[data-theme="light"] .lesson-client-avatar{color:#111827!important}

/* Leggibilita e contrasto adattivo v44 */
:root{--muted-readable:#a5adbf;--accent-contrast:#10131b;--accent-2-contrast:#10131b}
:root[data-theme="light"]{--muted-readable:#566176}
.toast{display:flex;align-items:center;gap:11px;min-height:52px;padding:13px 16px;color:#f8fafc!important;background:#17201d;border-color:rgba(112,231,170,.56);box-shadow:0 16px 44px rgba(0,0,0,.32);font-size:13px;line-height:1.4;text-shadow:none}
.toast::before{content:"✓";display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border-radius:9px;color:#082117;background:#71e1ad;font-size:13px;font-weight:950}
.toast.danger{color:#fff!important;background:#291a1d;border-color:rgba(255,113,109,.65)}
.toast.danger::before{content:"!";color:#2a0909;background:#ff8b87}
.field:has(select)::after,.achievement-card small,.trainer-overview article small,.client-quick small{color:var(--muted-readable)}
.trainer-overview article small{font-size:9px;line-height:1.35}.client-quick small{font-size:8px;line-height:1.35}.achievement-card small{font-size:9px}.field:has(select)::after{font-size:8px}
.nav-btn{color:#8791a6}.nav-btn.active{color:var(--accent-contrast,#fff)}
[data-theme="light"] .nav-btn{color:#596477}[data-theme="light"] .nav-btn.active{color:var(--accent-contrast,#10131b)}
.admin-guide small,.admin-logo small,.admin-identity small,.admin-offline small{font-size:9px;line-height:1.4}
.lesson-filter>span,.trainer-calendar-day small,.trainer-calendar-day i,.lesson-card small,.trainer-lesson-card small{font-size:9px;line-height:1.35}
.btn-primary,.start-btn,.workout-play,.nav-btn.active,.day-choice.selected,.brand-mark,.desktop-brand span,.avatar,.brand-logo,.brand-preview-logo,.exercise-tab.active,.creation-option.featured .creation-icon,.admin-logo>span{color:var(--accent-contrast,#fff)!important}
.trainer-overview article small{font-size:10px}.trainer-client-top small{font-size:10px}.client-status{font-size:9px}.client-quick small{font-size:9px}.client-facts span,.trainer-session-row small,.trainer-template-row small,.trainer-editor-context small,.trainer-assignment-banner small,.brand-logo-actions small,.cloud-access-note small,.admin-identity>span,.admin-metrics small,.admin-metrics span,.admin-section-head small,.admin-tenant-brand small,.admin-tenant-brand span,.admin-tenant-brand i,.admin-tenant-meta small{font-size:9px;line-height:1.4}

/* Stato, conferma e storico lezioni v46 */
.home-lesson-reminder{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:14px;padding:15px;cursor:pointer;border-color:color-mix(in srgb,var(--accent-2) 36%,var(--line));background:radial-gradient(circle at 100% 0,color-mix(in srgb,var(--accent-2) 15%,transparent),transparent 48%),linear-gradient(145deg,var(--surface),var(--surface-2))}
.home-lesson-reminder.imminent,.next-lesson-hero.imminent{border-color:color-mix(in srgb,#ffb85c 65%,var(--line));box-shadow:0 15px 42px color-mix(in srgb,#ff9f43 13%,transparent)}
.home-lesson-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:14px;color:var(--accent-contrast);background:linear-gradient(145deg,var(--accent),var(--accent-2));font-size:18px;font-weight:950}
.home-lesson-reminder.imminent .home-lesson-icon{color:#271304;background:linear-gradient(145deg,#ffd27d,#ff9f43)}
.home-lesson-reminder h3{margin:4px 0 3px;font-size:15px}.home-lesson-reminder p{margin:0;color:var(--muted-readable);font-size:10px;line-height:1.45}.home-lesson-reminder>i{color:var(--muted-readable);font-size:22px;font-style:normal}
.lesson-card.planned .lesson-line{background:linear-gradient(#ffca66,#ff9f43)}.lesson-card.confirmed .lesson-line{background:linear-gradient(#70e7aa,#2fc888)}.lesson-card.completed .lesson-line{background:linear-gradient(var(--accent-2),#5898ff)}.lesson-card.cancelled,.lesson-card.skipped{opacity:.6}.lesson-card.cancelled .lesson-line,.lesson-card.skipped .lesson-line{background:var(--muted)}
.lesson-card.imminent{border-color:color-mix(in srgb,#ffb85c 55%,var(--line))}
.lesson-status{padding:5px 8px;border-radius:999px;font-size:9px!important;text-transform:uppercase;letter-spacing:.07em}.lesson-status.planned{color:#7a4300;background:#fff0d4}.lesson-status.confirmed{color:#075f3b;background:#dff8ec}.lesson-status.completed{color:#174ea6;background:#e1edff}.lesson-status.cancelled,.lesson-status.skipped{color:#8f2f34;background:#ffe5e7}
.lesson-confirm-btn{margin-top:14px;min-height:54px}.lesson-confirmed-note{margin-top:14px;padding:13px 14px;border:1px solid color-mix(in srgb,#70e7aa 44%,var(--line));border-radius:16px;color:#8bf0bd;background:color-mix(in srgb,#70e7aa 8%,var(--surface));font-size:11px;font-weight:800;line-height:1.5}
.lesson-history{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.lesson-history h3{margin:3px 0}.lesson-history-list{display:grid;gap:8px}.lesson-history .lesson-card{box-shadow:none}
.trainer-lesson-card.planned em{color:#ffba62;background:color-mix(in srgb,#ffad43 12%,transparent)}.trainer-lesson-card.confirmed em{color:#70e7aa;background:color-mix(in srgb,#70e7aa 11%,transparent)}.trainer-lesson-card.completed em{color:var(--accent-2);background:color-mix(in srgb,var(--accent-2) 11%,transparent)}
.agenda-stats{grid-template-columns:repeat(2,1fr)}
@media (min-width:700px){.agenda-stats{grid-template-columns:repeat(4,1fr)}}
[data-theme="light"] .home-lesson-reminder{background:radial-gradient(circle at 100% 0,color-mix(in srgb,var(--accent-2) 12%,transparent),transparent 48%),linear-gradient(145deg,#fff,#f2f5fa)}
[data-theme="light"] .lesson-confirmed-note{color:#075f3b;background:#eefbf5}
[data-theme="light"] .lesson-status.planned{color:#704000;background:#fff0d4}[data-theme="light"] .lesson-status.confirmed{color:#075f3b;background:#dff8ec}[data-theme="light"] .lesson-status.completed{color:#174ea6;background:#e1edff}[data-theme="light"] .lesson-status.cancelled,[data-theme="light"] .lesson-status.skipped{color:#8f2f34;background:#ffe5e7}

/* Feed attività cloud trainer v47 */
.trainer-activity-section{margin:22px 0 26px;padding:18px;border:1px solid color-mix(in srgb,var(--accent-2) 24%,var(--line));border-radius:24px;background:radial-gradient(circle at 100% 0,color-mix(in srgb,var(--accent-2) 11%,transparent),transparent 45%),var(--surface)}
.trainer-activity-head{align-items:center}.trainer-activity-head>div{display:grid;gap:3px}.trainer-activity-head h3{font-size:20px}.trainer-activity-head small{color:var(--muted-readable);font-size:10px;line-height:1.4}.trainer-refresh-btn{flex:0 0 auto;color:var(--text);background:var(--surface-2)}
.trainer-activity-list{display:grid;gap:8px}.trainer-activity-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:13px;border:1px solid var(--line);border-radius:18px;color:var(--text);background:color-mix(in srgb,var(--surface-2) 72%,transparent);text-align:left;transition:transform .18s ease,border-color .18s ease}
.trainer-activity-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;color:#082117;background:#71e1ad;font-size:17px;font-weight:950}.trainer-activity-card.record .trainer-activity-icon{color:#291b00;background:#f5c75f}.trainer-activity-card.readiness .trainer-activity-icon{color:#350b0c;background:#ff918d}.trainer-activity-card>div{min-width:0}.trainer-activity-card small,.trainer-activity-card strong,.trainer-activity-card p{display:block}.trainer-activity-card small{overflow:hidden;color:var(--muted-readable);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.trainer-activity-card strong{margin:4px 0 3px;font-size:12px}.trainer-activity-card p{overflow:hidden;margin:0;color:var(--muted-readable);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.trainer-activity-card>i{color:var(--accent-2);font-size:20px;font-style:normal}
@media (hover:hover){.trainer-activity-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent-2) 38%,var(--line))}}
@media (min-width:720px){.trainer-activity-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:430px){.trainer-activity-head{align-items:stretch;flex-direction:column}.trainer-refresh-btn{width:100%}}
[data-theme="light"] .trainer-activity-section{background:radial-gradient(circle at 100% 0,color-mix(in srgb,var(--accent-2) 9%,transparent),transparent 45%),#fff}[data-theme="light"] .trainer-activity-card{background:#f7f9fc}

/* L'interfaccia utente non mostra note tecniche sul backend o sulla gestione del brand. */
.trainer-page>.trainer-local-note,
.brand-preview-locked+form+.trainer-local-note{display:none!important}
