:root {
  --bg: #07110f;
  --panel: #10211d;
  --panel-2: #142923;
  --line: rgba(232, 246, 239, .11);
  --text: #f3f8f5;
  --muted: #9eb2aa;
  --lime: #c9f269;
  --mint: #5bd4aa;
  --amber: #ffbd5a;
  --red: #ff7777;
  --blue: #77aefb;
  --shadow: 0 18px 55px rgba(0,0,0,.28);
  --radius: 22px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  /* dvh: su iOS la barra del browser non taglia più il fondo pagina. */
  min-height: 100dvh;
  color: var(--text);
  background:
    radial-gradient(circle at 78% 0%, rgba(91,212,170,.13), transparent 30rem),
    radial-gradient(circle at 8% 35%, rgba(201,242,105,.07), transparent 26rem),
    var(--bg);
  font: 15px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
button, input, select, textarea { font: inherit; }
button { color: inherit; }
.shell { width: min(1180px, calc(100% - 32px)); margin: 0 auto; padding: 30px 0 56px; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:26px; }
.brand { display:flex; align-items:center; gap:12px; }
.brand-mark {
  width:43px; height:43px; border-radius:15px; display:grid; place-items:center;
  color:#0b1713; background:var(--lime); font-size:21px; font-weight:900;
  box-shadow:0 0 0 7px rgba(201,242,105,.08);
}
.brand h1 { font-size:18px; letter-spacing:-.02em; margin:0; }
.brand p { margin:1px 0 0; color:var(--muted); font-size:12px; }
.top-actions { display:flex; gap:9px; align-items:center; }
.status-pill { display:inline-flex; align-items:center; gap:8px; border:1px solid rgba(91,212,170,.24); background:rgba(91,212,170,.07); color:var(--mint); border-radius:999px; padding:8px 12px; font-size:11px; font-weight:850; }
.status-pill::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--mint); box-shadow:0 0 0 5px rgba(91,212,170,.09); }
.btn {
  border:1px solid var(--line); background:rgba(255,255,255,.035); border-radius:13px;
  padding:10px 14px; cursor:pointer; transition:.18s ease; font-weight:700;
}
.btn:hover { transform:translateY(-1px); border-color:rgba(201,242,105,.35); }
.btn.primary { background:var(--lime); color:#102016; border-color:transparent; }
.btn.small { padding:8px 11px; font-size:13px; }
.btn.ghost { color:var(--muted); }
.hero {
  display:grid; grid-template-columns:1.35fr .65fr; gap:18px;
}
.card { background:linear-gradient(145deg, rgba(20,41,35,.96), rgba(13,29,25,.96)); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.hero-main { min-height:270px; padding:28px; overflow:hidden; position:relative; }
.hero-main::after {
  content:""; position:absolute; width:220px; height:220px; right:-40px; bottom:-85px;
  border:42px solid rgba(201,242,105,.07); border-radius:50%;
}
.eyebrow { color:var(--lime); letter-spacing:.13em; font-size:11px; font-weight:900; text-transform:uppercase; }
.hero h2 { font-size:clamp(30px, 4.5vw, 54px); line-height:1.02; letter-spacing:-.055em; margin:13px 0 12px; max-width:690px; }
.hero h2 span { color:var(--lime); }
.hero-copy { color:var(--muted); max-width:610px; margin:0 0 24px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:10px; position:relative; z-index:1; }
.update-note { display:flex; align-items:center; gap:11px; padding:11px 14px; border-radius:14px; border:1px solid var(--line); background:rgba(255,255,255,.025); color:var(--muted); font-size:12px; }
.update-note b { color:var(--text); }
.update-note-icon { font-size:18px; }
.level-card { padding:25px; display:flex; flex-direction:column; justify-content:space-between; }
.level-top { display:flex; justify-content:space-between; align-items:start; }
.level-orb {
  width:92px; height:92px; display:grid; place-items:center; border-radius:50%;
  background:conic-gradient(var(--lime) var(--level-progress, 0%), rgba(255,255,255,.08) 0);
  position:relative;
}
.level-orb::after { content:""; position:absolute; inset:7px; background:var(--panel); border-radius:50%; }
.level-number { position:relative; z-index:1; text-align:center; font-weight:900; line-height:1; font-size:30px; }
.level-number small { display:block; font-size:9px; color:var(--muted); letter-spacing:.1em; margin-bottom:5px; }
.streak { text-align:right; }
.streak strong { display:block; font-size:24px; color:var(--amber); }
.streak span { color:var(--muted); font-size:12px; }
.xp-label { display:flex; justify-content:space-between; color:var(--muted); font-size:12px; margin:18px 0 8px; }
.xp-label strong { color:var(--text); }
.progress { height:9px; border-radius:99px; background:rgba(255,255,255,.07); overflow:hidden; }
.progress > span { display:block; height:100%; width:0; border-radius:inherit; background:linear-gradient(90deg, var(--lime), var(--mint)); transition:width .55s ease; }
.xp-hint { color:var(--muted); font-size:12px; margin:10px 0 0; }
.stats { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.stat { padding:17px 19px; }
.stat .kicker { color:var(--muted); font-size:12px; }
.stat strong { display:block; font-size:25px; letter-spacing:-.04em; margin-top:2px; }
.stat small { color:var(--mint); }
.plan-card .section-head { flex-wrap:wrap; }
.plan-intro { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:15px 16px; margin-bottom:14px; border-radius:16px; background:linear-gradient(90deg,rgba(201,242,105,.09),rgba(91,212,170,.04)); border:1px solid rgba(201,242,105,.15); }
.plan-intro strong { display:block; font-size:14px; color:var(--lime); }
.plan-intro p { margin:3px 0 0; color:var(--muted); font-size:12px; }
.plan-chips { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.plan-chip { white-space:nowrap; padding:6px 9px; border-radius:999px; background:rgba(255,255,255,.055); color:#dbe8e2; font-size:10px; font-weight:800; }
.plan-schedule { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; margin-bottom:14px; }
.plan-day { min-height:92px; display:flex; flex-direction:column; justify-content:space-between; gap:8px; padding:11px; border:1px solid var(--line); border-radius:15px; background:rgba(255,255,255,.02); }
.plan-day .weekday { color:var(--muted); font-size:9px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.plan-day strong { display:block; font-size:12px; line-height:1.2; }
.plan-day small { display:block; margin-top:2px; color:var(--muted); font-size:9px; line-height:1.25; }
.plan-day .day-time { color:var(--text); font-size:10px; font-weight:850; }
.plan-day.tennis { border-color:rgba(255,189,90,.3); background:rgba(255,189,90,.065); }
.plan-day.strength { border-color:rgba(201,242,105,.3); background:rgba(201,242,105,.065); }
.plan-day.recovery { border-color:rgba(91,212,170,.18); background:rgba(91,212,170,.035); }
.plan-sessions { display:grid; grid-template-columns:repeat(2,1fr); gap:13px; }
.plan-session { overflow:hidden; border:1px solid var(--line); border-radius:18px; background:rgba(255,255,255,.018); }
.plan-session-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 16px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.025); }
.plan-session-head h4 { margin:0; font-size:15px; }
.plan-session-head p { margin:2px 0 0; color:var(--muted); font-size:10px; }
.duration { color:var(--lime); font-size:10px; font-weight:900; white-space:nowrap; }
.exercise-head, .exercise-row { display:grid; grid-template-columns:minmax(135px,1.5fr) .75fr .7fr .7fr; gap:10px; align-items:center; }
.exercise-head { padding:8px 14px; color:#71867d; font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.exercise-row { padding:11px 14px; border-top:1px solid rgba(255,255,255,.055); font-size:11px; }
.exercise-row:first-of-type { border-top:0; }
.exercise-name { display:flex; gap:9px; align-items:flex-start; font-weight:800; }
.exercise-name b { display:grid; place-items:center; flex:0 0 20px; height:20px; border-radius:7px; color:#102016; background:var(--lime); font-size:9px; }
.exercise-name small { display:block; margin-top:2px; color:var(--muted); font-weight:500; line-height:1.3; }
.exercise-value { color:#dce8e3; font-weight:700; }
.plan-rule { margin-top:13px; padding:12px 14px; border-left:3px solid var(--amber); border-radius:0 12px 12px 0; background:rgba(255,189,90,.055); color:var(--muted); font-size:11px; }
.live-card { border-color:rgba(119,174,251,.18); }
.live-toolbar { display:flex; justify-content:space-between; align-items:end; gap:14px; margin-bottom:14px; }
.live-selector { display:grid; gap:6px; min-width:220px; }
.live-selector[hidden] { display:none; }
.live-selector label { color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.live-selector select { appearance:none; width:100%; padding:11px 38px 11px 12px; color:var(--text); background:#0b1915 linear-gradient(45deg,transparent 50%,var(--lime) 50%) calc(100% - 16px) 50%/6px 6px no-repeat; border:1px solid var(--line); border-radius:12px; outline:none; font-weight:800; }
.live-progress { min-width:230px; }
.live-progress-top { display:flex; justify-content:space-between; gap:12px; margin-bottom:7px; color:var(--muted); font-size:11px; }
.live-progress-top strong { color:var(--text); }
.timers { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:15px; }
.timer-box { padding:14px; border:1px solid var(--line); border-radius:16px; background:rgba(255,255,255,.02); }
.timer-box.resting { border-color:rgba(255,189,90,.35); background:rgba(255,189,90,.055); }
.timer-label { display:flex; justify-content:space-between; align-items:center; color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.timer-display { margin:5px 0 10px; font-size:31px; line-height:1; letter-spacing:-.05em; font-variant-numeric:tabular-nums; font-weight:900; }
.timer-actions { display:flex; flex-wrap:wrap; gap:6px; }
.timer-btn { border:1px solid var(--line); background:rgba(255,255,255,.035); border-radius:9px; padding:6px 9px; cursor:pointer; color:var(--text); font-size:10px; font-weight:800; }
.timer-btn.main { color:#102016; background:var(--lime); border-color:transparent; }
.live-list { display:grid; gap:10px; }
.live-exercise { border:1px solid var(--line); border-radius:17px; padding:14px; background:rgba(255,255,255,.018); transition:.2s ease; }
.live-exercise.complete { border-color:rgba(91,212,170,.33); background:rgba(91,212,170,.055); }
.live-exercise-head { display:flex; justify-content:space-between; align-items:start; gap:14px; }
.live-exercise-title { display:flex; gap:10px; }
.live-index { width:26px; height:26px; flex:0 0 26px; display:grid; place-items:center; border-radius:9px; color:#102016; background:var(--lime); font-size:10px; font-weight:900; }
.live-exercise.complete .live-index { background:var(--mint); }
.live-exercise h4 { margin:0; font-size:14px; }
.live-exercise p { margin:3px 0 0; color:var(--muted); font-size:10px; }
.video-link { white-space:nowrap; color:var(--blue); text-decoration:none; padding:7px 9px; border:1px solid rgba(119,174,251,.22); border-radius:10px; background:rgba(119,174,251,.06); font-size:10px; font-weight:850; }
.video-link:hover { border-color:var(--blue); }
.set-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.set-item { display:flex; align-items:center; gap:7px; padding:6px; border:1px solid var(--line); border-radius:11px; background:rgba(0,0,0,.1); }
.set-check { width:30px; height:30px; border:1px solid var(--line); border-radius:9px; background:rgba(255,255,255,.035); cursor:pointer; color:var(--muted); font-weight:900; }
.set-check.done { color:#102016; background:var(--mint); border-color:transparent; }
.rep-input { width:48px; padding:6px 4px; color:var(--text); background:#0b1915; border:1px solid var(--line); border-radius:8px; text-align:center; outline:none; font-variant-numeric:tabular-nums; }
.rep-unit { padding-right:3px; color:var(--muted); font-size:9px; }
.finish-banner { display:none; align-items:center; justify-content:space-between; gap:14px; margin-bottom:14px; padding:14px 16px; border:1px solid rgba(201,242,105,.3); border-radius:16px; background:linear-gradient(90deg,rgba(201,242,105,.13),rgba(91,212,170,.07)); }
.finish-banner.show { display:flex; }
.finish-banner strong { display:block; color:var(--lime); font-size:15px; }
.finish-banner p { margin:2px 0 0; color:var(--muted); font-size:10px; }
.live-note { margin:12px 0 0; color:var(--muted); font-size:10px; }
.layout { display:grid; grid-template-columns:1.2fr .8fr; gap:18px; }
/* Ritmo verticale unico: fra i blocchi della pagina e fra le card di una colonna. */
.shell > section + section { margin-top:18px; }
.layout .section-card + .section-card { margin-top:18px; }
.section-card { padding:22px; }
.section-head { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:18px; }
.section-head h3 { margin:0; font-size:18px; letter-spacing:-.02em; }
.section-head p { margin:3px 0 0; color:var(--muted); font-size:12px; }
.week-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; }
.day { min-width:0; text-align:center; }
.day span { color:var(--muted); font-size:10px; text-transform:uppercase; }
.day-box { margin-top:7px; min-height:82px; border-radius:15px; border:1px solid var(--line); background:rgba(255,255,255,.025); padding:9px 5px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; }
.day.done .day-box { border-color:rgba(201,242,105,.38); background:rgba(201,242,105,.08); }
.day.today .day-box { box-shadow:inset 0 0 0 1px var(--lime); }
.day-icon { font-size:19px; }
.day-title { font-size:10px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; width:100%; }
.timeline { display:grid; gap:10px; }
.event { display:grid; grid-template-columns:42px 1fr auto; gap:12px; align-items:center; padding:12px; border-radius:16px; background:rgba(255,255,255,.025); border:1px solid transparent; }
.event:hover { border-color:var(--line); }
.event-icon { width:42px; height:42px; border-radius:13px; display:grid; place-items:center; background:rgba(201,242,105,.1); font-size:18px; }
.event h4 { margin:0; font-size:14px; }
.event p { margin:2px 0 0; color:var(--muted); font-size:11px; }
.event-xp { font-size:11px; font-weight:900; color:var(--lime); }
.empty { padding:26px 12px; text-align:center; color:var(--muted); border:1px dashed var(--line); border-radius:16px; }
.chart-wrap { min-height:230px; position:relative; overflow-x:auto; }
/* I grafici hanno etichette a dimensione fissa: sotto i 520px si scorrono invece di comprimersi. */
.chart-wrap svg { display:block; width:100%; min-width:520px; height:230px; }
#progressChart { width:100%; height:230px; display:block; }
.legend { display:flex; gap:15px; flex-wrap:wrap; margin-top:8px; color:var(--muted); font-size:11px; }
.legend i { width:8px; height:8px; display:inline-block; border-radius:50%; margin-right:6px; }
.missions { display:grid; gap:11px; }
.mission { padding:13px; border-radius:16px; background:rgba(255,255,255,.025); }
.mission-top { display:flex; justify-content:space-between; gap:12px; font-size:12px; margin-bottom:8px; }
.mission-top strong { font-size:13px; }
.mission.done strong { text-decoration:line-through; color:var(--muted); }
.badge-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.badge { text-align:center; padding:12px 6px; border-radius:15px; background:rgba(255,255,255,.025); border:1px solid var(--line); opacity:.36; }
.badge.unlocked { opacity:1; background:rgba(255,189,90,.07); border-color:rgba(255,189,90,.25); }
.badge b { font-size:24px; display:block; }
.badge span { display:block; font-size:9px; font-weight:800; margin-top:4px; }
.principle { margin-top:15px; padding:13px 14px; border-left:3px solid var(--mint); background:rgba(91,212,170,.06); border-radius:0 12px 12px 0; color:var(--muted); font-size:12px; }
.footer { color:var(--muted); text-align:center; font-size:11px; margin-top:20px; }
.footer a, .card a:not(.btn):not(.video-link) { color:var(--mint); text-decoration:none; border-bottom:1px solid rgba(91,212,170,.35); }
@media (max-width:900px) {
  .hero, .layout { grid-template-columns:1fr; }
  .stats { grid-template-columns:repeat(2,1fr); }
  .plan-sessions { grid-template-columns:1fr; }
  .timers { grid-template-columns:1fr; }
}
@media (max-width:620px) {
  .shell { width:min(100% - 20px, 1180px); padding-top:16px; }
  .topbar { align-items:flex-start; }
  .brand p { display:none; }
  .hero-main, .level-card, .section-card { padding:18px; }
  .hero h2 { font-size:36px; }
  .stats { gap:8px; }
  .stat { padding:14px; }
  .week-grid { overflow-x:auto; grid-template-columns:repeat(7,72px); padding-bottom:5px; }
  .plan-intro { align-items:flex-start; flex-direction:column; }
  .plan-chips { justify-content:flex-start; }
  .plan-schedule { overflow-x:auto; grid-template-columns:repeat(7,88px); padding-bottom:5px; }
  .live-toolbar { align-items:stretch; flex-direction:column; }
  .live-selector, .live-progress { min-width:0; width:100%; }
  .finish-banner { align-items:flex-start; flex-direction:column; }
  .live-exercise-head { gap:9px; }
  .video-link { padding:6px 7px; }
  .exercise-head { display:none; }
  .exercise-row { grid-template-columns:1.35fr 1fr; gap:7px 12px; }
  .exercise-row > :nth-child(2)::before { content:"Serie · "; color:var(--muted); font-weight:500; }
  .exercise-row > :nth-child(3)::before { content:"Riposo · "; color:var(--muted); font-weight:500; }
  .exercise-row > :nth-child(4)::before { content:"Intensità · "; color:var(--muted); font-weight:500; }
  .event { grid-template-columns:38px 1fr; }
  .event-xp { grid-column:2; }
}
/* Accesso, registrazione dati e stato della connessione */
[hidden] { display: none !important; }
.gate { position:fixed; inset:0; z-index:50; display:grid; place-items:center; padding:20px; background:rgba(4,10,9,.94); backdrop-filter:blur(7px); }
.gate-card { width:min(390px,100%); background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:26px; box-shadow:var(--shadow); }
.gate-card h2 { margin:0 0 6px; font-size:20px; letter-spacing:-.02em; }
.gate-card p { margin:0 0 18px; color:var(--muted); font-size:13px; }
.field { display:grid; gap:6px; min-width:0; }
.field > span { color:var(--muted); font-size:10px; font-weight:850; text-transform:uppercase; letter-spacing:.07em; }
.field input, .field select { background:var(--panel-2); border:1px solid var(--line); border-radius:12px; color:var(--text); padding:10px 12px; width:100%; }
.field input:focus, .field select:focus { outline:2px solid rgba(201,242,105,.4); outline-offset:1px; }
.form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(148px,1fr)); gap:12px; }
.form-actions { display:flex; align-items:center; gap:10px; margin-top:14px; flex-wrap:wrap; }
.form-feedback { font-size:12px; color:var(--muted); }
.form-feedback.error { color:var(--red); }
.form-feedback.ok { color:var(--mint); }
.log-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:20px; align-items:start; }
.log-grid h4 { margin:0 0 12px; font-size:14px; }
.status-pill.warn { border-color:rgba(255,189,90,.26); background:rgba(255,189,90,.07); color:var(--amber); }
.status-pill.warn::before { background:var(--amber); box-shadow:0 0 0 5px rgba(255,189,90,.1); }
@media (max-width: 900px) { .log-grid { grid-template-columns:1fr; } }

/* ---------- navigazione fra le due pagine ---------- */

.tabs { display:flex; gap:4px; padding:4px; border:1px solid var(--line); background:rgba(255,255,255,.03); border-radius:14px; }
.tabs a {
  border-radius:11px; padding:8px 15px; font-size:13px; font-weight:800; text-decoration:none;
  color:var(--muted); transition:.18s ease; white-space:nowrap;
}
.tabs a:hover { color:var(--text); }
.tabs a[aria-current="page"] { background:var(--lime); color:#102016; }

/* Su telefono la navigazione scende in basso, a portata di pollice. */
.tabbar { display:none; }

@media (max-width: 900px) {
  .tabs { display:none; }
  .tabbar {
    position:fixed; left:0; right:0; bottom:0; z-index:40;
    display:grid; grid-template-columns:repeat(3,1fr); gap:6px;
    padding:8px 12px calc(8px + env(safe-area-inset-bottom));
    background:rgba(7,17,15,.92); backdrop-filter:blur(12px); border-top:1px solid var(--line);
  }
  .tabbar a {
    display:grid; justify-items:center; gap:3px; padding:9px 4px; min-height:52px;
    border-radius:14px; text-decoration:none; color:var(--muted); font-size:11px; font-weight:800;
  }
  .tabbar a b { font-size:19px; font-weight:400; line-height:1; }
  .tabbar a[aria-current="page"] { color:#102016; background:var(--lime); }
  .shell { padding-bottom:calc(86px + env(safe-area-inset-bottom)); }
}

/* ---------- adattamenti per telefono ---------- */

@media (max-width: 900px) {
  /* Senza min-width:0 una griglia scrollabile allarga il genitore invece di scorrere. */
  .layout > div, .layout > aside, .section-card, .plan-card, .live-card, .card { min-width:0; }
  .week-grid, .plan-schedule, .chart-wrap { max-width:100%; }
}

@media (max-width: 620px) {
  .topbar { flex-wrap:wrap; gap:12px; }
  /* Su telefono la hero occupava quasi uno schermo intero prima dei dati utili. */
  .hero-main { min-height:0; }
  .hero h2 { font-size:31px; margin:10px 0; }
  .hero-copy { font-size:13px; margin-bottom:16px; }
  .level-card { gap:16px; }
  .level-orb { width:76px; height:76px; }
  .level-number { font-size:25px; }
  .xp-label { margin-top:0; }
  .top-actions { margin-left:auto; }
  /* Sotto i 16px iOS ingrandisce la pagina al focus sui campi. */
  .field input, .field select { font-size:16px; padding:12px; }
  .btn { padding:12px 15px; }
  .btn.small { padding:10px 13px; }
  .timer-btn { min-height:44px; }
  .tabbar a { font-size:11px; }
  .form-grid { grid-template-columns:repeat(auto-fit,minmax(132px,1fr)); }
  .live-note, .footer { font-size:11px; }
}

/* ---------- routine giornaliera per la cuffia dei rotatori ---------- */

.daily-list { display:grid; gap:10px; }
.daily-item { display:grid; gap:6px; padding:14px 15px; border:1px solid var(--line); border-radius:16px; background:rgba(255,255,255,.025); }
.daily-item-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.daily-item h4 { margin:0; font-size:14px; }
.daily-cadence { font-size:10px; font-weight:850; letter-spacing:.06em; text-transform:uppercase; padding:4px 9px; border-radius:999px; color:var(--mint); background:rgba(91,212,170,.09); border:1px solid rgba(91,212,170,.22); }
.daily-cadence.weekly { color:var(--amber); background:rgba(255,189,90,.08); border-color:rgba(255,189,90,.22); }
.daily-item p { margin:0; color:var(--muted); font-size:12.5px; }
.daily-item .daily-work { color:var(--lime); font-weight:800; font-size:13px; }
.daily-item .video-link { justify-self:start; }

/* ---------- palestra ---------- */

.live-selector input { width:100%; padding:11px 12px; color:var(--text); background:#0b1915; border:1px solid var(--line); border-radius:12px; outline:none; font-weight:800; }
.gym-timers { grid-template-columns:minmax(0,340px); }
.gym-notice { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:10px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.03); color:var(--muted); font-size:12px; }
.gym-notice.warn { border-color:rgba(255,189,90,.35); background:rgba(255,189,90,.06); color:var(--amber); }
.gym-load { margin-left:6px; padding:2px 8px; border-radius:999px; background:rgba(201,242,105,.14); color:var(--lime); font-size:12px; white-space:nowrap; }
.gym-reason { margin:4px 0 0; color:var(--muted); font-size:11px; }
.gym-reason.warn { color:var(--amber); }
.gym-head-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:8px; }
.gym-swap, .gym-set select { padding:6px 8px; color:var(--text); background:#0b1915; border:1px solid var(--line); border-radius:8px; font-size:12px; }
.gym-swap { max-width:190px; }
.gym-sets { display:grid; gap:8px; margin-top:12px; }
.gym-set { display:flex; flex-wrap:wrap; align-items:end; gap:10px; padding:8px; border:1px solid var(--line); border-radius:12px; background:rgba(0,0,0,.1); }
.gym-set.done { border-color:rgba(201,242,105,.3); }
.gym-set label, .gym-inline { display:grid; gap:3px; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.gym-set .rep-input, .gym-step .rep-input { width:64px; }
.gym-step { margin-top:12px; padding:12px; border:1px dashed rgba(201,242,105,.3); border-radius:12px; }
.gym-step p { margin:0 0 10px; font-size:13px; line-height:1.7; }
.gym-ramp { margin:10px 0 0; padding-left:18px; color:var(--muted); font-size:12px; }
.gym-ramp:empty { display:none; }
.gym-result { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:10px 0 0; color:var(--mint); font-size:13px; }
.gym-weeks { display:grid; grid-template-columns:repeat(12,1fr); gap:6px; margin:14px 0; }
.gym-week { display:grid; justify-items:center; gap:2px; padding:8px 2px; border:1px solid var(--line); border-radius:10px; color:var(--muted); font-size:10px; }
.gym-week b { color:var(--text); font-size:13px; }
.gym-week small { font-size:8px; letter-spacing:.04em; text-transform:uppercase; }
.gym-week.test, .gym-week.retest { background:rgba(255,189,90,.07); }
.gym-week.deload { background:rgba(91,212,170,.06); }
.gym-week.past { opacity:.55; }
.gym-week.current { border-color:var(--lime); box-shadow:inset 0 0 0 1px var(--lime); }
.gym-rules { grid-template-columns:repeat(3,1fr); }
.gym-progress { display:grid; gap:8px; }
.gym-progress-row { display:grid; grid-template-columns:1fr 160px auto; align-items:center; gap:12px; padding:10px 12px; border-radius:14px; background:rgba(255,255,255,.025); }
.gym-progress-row strong { display:block; font-size:13px; }
.gym-progress-row small { display:block; color:var(--muted); font-size:10px; }
.gym-spark { width:160px; height:36px; }
.gym-progress-value { text-align:right; }
.gym-progress-value b { font-size:15px; }
.gym-progress-value small.up, .gym-measures small.up { color:var(--mint); }
.gym-progress-value small.down, .gym-measures small.down { color:var(--red); }
.gym-measures { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; margin-bottom:10px; }
.gym-measures div { padding:10px 12px; border:1px solid var(--line); border-radius:12px; }
.gym-measures span { display:block; color:var(--muted); font-size:10px; letter-spacing:.06em; text-transform:uppercase; }
.gym-measures b { font-size:14px; }
.gym-history-list { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 16px; color:var(--muted); font-size:11px; }
.gym-history-list span { display:inline-flex; align-items:center; gap:6px; padding:4px 4px 4px 10px; border:1px solid var(--line); border-radius:999px; }
.gym-measure-grid { grid-template-columns:repeat(4,1fr); }

@media (max-width: 620px) {
  .gym-weeks { grid-template-columns:repeat(6,1fr); }
  .gym-rules, .gym-timers { grid-template-columns:1fr; }
  .gym-progress-row { grid-template-columns:1fr auto; }
  .gym-spark { display:none; }
  .gym-measure-grid { grid-template-columns:repeat(2,1fr); }
  .gym-notice { flex-direction:column; align-items:stretch; }
}
