:root{
  --bg:#0a0d11;
  --panel:#11161c;
  --panel2:#171d23;
  --panel3:#202830;
  --line:#2b353f;
  --text:#f5f7fa;
  --muted:#98a4af;
  --accent:#ff3038;
  --accent2:#d91f28;
  --accent-light:#ff4d53;
  --accent-dark:#a30c12;
  --accent-pale:#ffb199;
  --accent-rgb:255,48,56;
  --green:#4fd581;
  --yellow:#f0c75b;
  --danger:#851f26;
  --shadow:0 24px 80px rgba(0,0,0,.38);
  --radius-sm:9px;
  --radius-md:13px;
  --radius-lg:18px;
}

/* Tema alternativo: negro + verde. Se activa con [data-theme="green"]
   en <html>, guardado en localStorage y aplicado desde el arranque. */
[data-theme="green"]{
  --accent:#22c55e;
  --accent2:#15803d;
  --accent-light:#4ade80;
  --accent-dark:#0f5c30;
  --accent-pale:#b9f5cf;
  --accent-rgb:34,197,94;
}

/* Tema alternativo: negro + azul. Pensado también como opción accesible
   para personas con daltonismo rojo-verde (el tipo más común), ya que
   no comparte eje de confusión con los otros dos temas. */
[data-theme="blue"]{
  --accent:#3b82f6;
  --accent2:#1d4ed8;
  --accent-light:#60a5fa;
  --accent-dark:#123a8f;
  --accent-pale:#bfdbfe;
  --accent-rgb:59,130,246;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:"Plus Jakarta Sans",Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}
body{transition:background-color .25s}
button,input{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.muted{color:var(--muted);line-height:1.55}
.eyebrow{font-size:11px;font-weight:850;letter-spacing:.14em;color:#aeb8c2}
.full{width:100%}
.form-error{min-height:18px;color:#ff7a81;font-size:13px;margin:6px 0 0}
.toast{position:fixed;right:22px;bottom:22px;z-index:3000;background:#171d23;border:1px solid #3b4650;border-radius:12px;padding:12px 15px;box-shadow:var(--shadow);opacity:0;transform:translateY(10px) scale(.96);transition:.28s cubic-bezier(.2,.9,.3,1.4);pointer-events:none}
.toast.show{opacity:1;transform:none}.toast.error{border-color:#8d3a42}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border:0;border-radius:11px;font-weight:800;transition:.18s cubic-bezier(.2,.8,.2,1)}
.btn.primary{background:linear-gradient(135deg,var(--accent-light),var(--accent2));color:#fff;box-shadow:0 8px 20px -8px rgba(var(--accent-rgb),.55)}.btn.primary:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn.secondary{background:var(--panel3);color:#fff;border:1px solid var(--line)}.btn.secondary:hover{background:#2a333c;border-color:#465160}
.btn.ghost{background:transparent;color:#d0d6dd;border:1px solid var(--line)}.btn.ghost:hover{background:var(--panel2)}
.btn.danger{background:var(--danger);color:#fff}
.btn.small{padding:9px 12px;font-size:13px}
.icon-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:#fff;display:inline-flex;align-items:center;justify-content:center;transition:.18s}
.icon-btn:hover{background:var(--panel3);border-color:#465160}
.mobile-only{display:none}
.badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#202830;color:#c7d0d8;font-size:11px;font-weight:850}

/* ---- Iconos e ilustraciones ---- */
.icon{display:block;flex-shrink:0}
.illustration{width:100%;height:auto;display:block}
.muscle-icon-wrap{width:34px;height:34px;border-radius:10px;background:rgba(var(--accent-rgb),.12);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.muscle-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;flex-shrink:0;background-size:cover;background-position:center;transition:background-image .2s}
.muscle-badge.has-photo svg{display:none}

/* ---- Fotos generales de la web ---- */
.photo-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .35s;pointer-events:none}
.photo-bg.has-photo{opacity:1}
.photo-bg.has-photo::after{content:"";position:absolute;inset:0}
.photo-bg-dark.has-photo::after{background:linear-gradient(160deg,rgba(10,13,17,.55),rgba(10,13,17,.93))}
.photo-host{position:relative;overflow:hidden}
.photo-host>*:not(.photo-bg):not(.auth-brand):not(.auth-intro):not(.auth-card){position:relative;z-index:1}

.picker-banner{display:none;height:150px;border-radius:14px;margin-bottom:16px;background-size:cover;background-position:center;position:relative;overflow:hidden}
.picker-banner.has-photo{display:block}
.picker-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,13,17,.75),transparent 60%)}
.picker-banner-label{position:absolute;left:16px;bottom:12px;z-index:1;font-weight:900;font-size:18px;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.6)}
.section-banner{display:none;height:150px;border-radius:16px;margin-bottom:18px;background-size:cover;background-position:center;position:relative;overflow:hidden}
.section-banner.has-photo{display:block}
.section-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,13,17,.65),transparent 55%)}
.muscle-icon-wrap.on-panel{background:var(--panel3);color:#d7dde3}
.equip-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;background:var(--panel3);color:#c7d0d8;font-size:11px;font-weight:750}
.equip-chip .icon{color:var(--muted)}
.difficulty-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}
.diff-dot{width:6px;height:6px;border-radius:50%;background:#2f3941}
.diff-dot.on{background:var(--yellow)}
.accent-text{background:linear-gradient(120deg,var(--accent-light),var(--accent) 55%,var(--accent-pale));-webkit-background-clip:text;background-clip:text;color:transparent}

.auth-screen{
  min-height:100vh;
  display:grid;
  grid-template-columns:1.2fr 460px;
  align-items:center;
  gap:56px;
  padding:72px 7% 32px;
  background:radial-gradient(circle at 15% 10%,rgba(var(--accent-rgb),.14),transparent 32%),radial-gradient(circle at 85% 85%,rgba(var(--accent-rgb),.08),transparent 40%),var(--bg);
  position:relative;
  overflow:hidden;
}
.auth-brand{position:absolute;top:28px;left:7%;display:flex;align-items:center;gap:12px;z-index:2}
.brand-mark{height:42px;width:auto;object-fit:contain;flex-shrink:0}
.brand-mark.small{height:34px}
.auth-brand strong,.sidebar-brand strong{display:block;font-size:20px}
.auth-brand span,.sidebar-brand span{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.auth-intro{position:relative;z-index:2}
.auth-intro h1{font-size:clamp(34px,4vw,52px);line-height:1.06;letter-spacing:-.04em;max-width:720px;margin:12px 0 14px}
.auth-intro>p{font-size:16px;color:var(--muted);line-height:1.55;max-width:560px}
.intro-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.intro-pills span{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;background:#11171d;border:1px solid var(--line);border-radius:999px;color:#ccd4db;font-size:12px;font-weight:600}
.intro-pills i{display:flex;color:var(--accent)}
.auth-card{background:rgba(17,22,28,.96);border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:var(--shadow);position:relative;z-index:2}
.auth-switch{display:grid;grid-template-columns:1fr 1fr;background:#0e1215;padding:4px;border-radius:11px;margin-bottom:24px}
.auth-tab{border:0;background:transparent;color:var(--muted);padding:10px;border-radius:8px;font-weight:800}.auth-tab.active{background:var(--panel3);color:#fff}
.stack-form{display:flex;flex-direction:column;gap:7px}.stack-form h2{font-size:26px;margin:2px 0}.stack-form label,.modal label{font-size:13px;font-weight:750;color:#d7dde3}
.stack-form input,.modal input,.number-field input{width:100%;display:block;margin-top:7px;padding:12px 13px;border:1px solid #38434e;border-radius:10px;background:#0e1317;color:#fff;outline:0}
.stack-form input:focus,.modal input:focus,.number-field input:focus{border-color:var(--accent)}

.app-shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:#0d1013;border-right:1px solid var(--line);padding:22px 15px;display:flex;flex-direction:column;gap:20px;z-index:100}
.sidebar-brand{display:flex;align-items:center;gap:10px;padding:0 8px}
.mini-profile{display:flex;align-items:center;gap:9px;padding:9px;background:var(--panel);border:1px solid var(--line);border-radius:13px}
.avatar{width:35px;height:35px;border-radius:10px;background:linear-gradient(135deg,#2c3742,#162028);display:grid;place-items:center;font-weight:950}
.mini-profile-copy{flex:1;min-width:0}.mini-profile-copy strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-profile-copy span{display:block;color:var(--muted);font-size:11px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.main-nav{display:flex;flex-direction:column;gap:3px}.nav-btn{width:100%;display:flex;align-items:center;gap:11px;text-align:left;border:1px solid transparent;background:transparent;color:#9da8b3;border-radius:10px;padding:10px 11px;font-weight:700;transition:.15s}.nav-btn:hover{background:var(--panel);color:#fff}.nav-btn.active{background:linear-gradient(135deg,rgba(var(--accent-rgb),.16),rgba(var(--accent-rgb),.04));border-color:rgba(var(--accent-rgb),.35);color:#fff}.nav-btn span{width:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.logout{margin-top:auto;color:#ff7d83}
.main{min-width:0;padding:0 34px 60px}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;background:rgba(10,13,17,.92);backdrop-filter:blur(14px)}
.topbar h2{margin:4px 0 0;font-size:22px}.topbar-actions{display:flex;gap:8px;align-items:center}.topbar-actions .btn span{display:flex}.view{display:none;padding-top:28px}.view.active{display:block;animation:viewIn .25s ease}
@keyframes viewIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes checkPop{0%{transform:scale(1)}45%{transform:scale(1.35)}100%{transform:scale(1)}}
@keyframes pulseUrgent{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes fadeScaleIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
@keyframes badgePop{0%{transform:scale(1)}40%{transform:scale(1.12)}100%{transform:scale(1)}}
.btn{will-change:transform}
.btn:active{transform:scale(.96)}
.icon-btn:active{transform:scale(.92)}
.set-check:checked{animation:checkPop .28s ease}
.sets-progress-badge.complete{animation:badgePop .3s ease}
.rest-timer-bar.urgent #rest-timer-clock{animation:pulseUrgent 1s ease-in-out infinite}
.illustration{animation:fadeScaleIn .35s ease both}

.page-head,.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.page-head h1{font-size:32px;margin:6px 0}.section-head h3{margin:0;display:flex;align-items:center;gap:8px}.actions{display:flex;gap:8px;flex-wrap:wrap}
.hero-grid{display:grid;grid-template-columns:1.65fr .8fr;gap:14px}.hero-card,.surface,.stat-card,.profile-card,.plan-day,.nutrition-card,.log-card,.history-card,.setting-card{background:var(--panel);border:1px solid var(--line);border-radius:17px;transition:border-color .18s,transform .18s}
.hero-card{padding:28px;position:relative;overflow:hidden;background:linear-gradient(160deg,var(--panel) 55%,rgba(var(--accent-rgb),.06)),var(--panel)}.hero-card h1{font-size:44px;line-height:1;letter-spacing:-.04em;margin:12px 0}.hero-card p{max-width:700px}.hero-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.hero-actions .btn span{display:flex}
.streak-card{padding:25px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(145deg,#181e24,#0f1418);display:flex;flex-direction:column;justify-content:space-between}.streak-card .num{font-size:55px;font-weight:950}.streak-card .caption{color:var(--muted);display:flex;align-items:center;gap:6px}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.stat-card{padding:17px}.stat-card:hover{border-color:#3c4650}.stat-card .label{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);display:flex;align-items:center;gap:6px}.stat-card .value{font-size:26px;font-weight:950;margin-top:7px}.stat-card .sub{font-size:11px;color:var(--muted);margin-top:4px}
.two-col{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin-top:14px}.surface{padding:19px}.list-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid #252c33}.list-row:last-child{border-bottom:0}.list-row .list-row-main{display:flex;align-items:center;gap:11px;min-width:0}.list-row strong{display:block;font-size:14px}.list-row span{display:block;color:var(--muted);font-size:12px;margin-top:3px}

.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.profile-card{padding:20px}.profile-card:hover{border-color:#3c4650;transform:translateY(-1px)}.profile-card-head{display:flex;justify-content:space-between;gap:10px}.profile-card-head .name-row{display:flex;align-items:center;gap:10px}.profile-card h3{margin:0;font-size:20px}.profile-meta{font-size:13px;color:var(--muted);line-height:1.6;margin-top:6px}.profile-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.profile-picker-list{display:flex;flex-direction:column;gap:8px;margin:16px 0}.profile-picker-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--panel2);color:#fff;text-align:left;transition:.15s}.profile-picker-item:hover{border-color:#465160}.profile-picker-item .name-row{display:flex;align-items:center;gap:10px}.profile-picker-item.active{border-color:var(--accent);background:rgba(var(--accent-rgb),.1)}.profile-picker-item small{display:block;color:var(--muted);margin-top:3px}

/* ---- Tarjetas de ejercicio (plan / dashboard / registro) ---- */
.exercise-name-row{display:flex;align-items:center;gap:11px;min-width:0}
.exercise-name-row .copy{min-width:0}
.exercise-name-row strong{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.exercise-meta-row{display:flex;align-items:center;gap:10px;margin-top:4px;flex-wrap:wrap}
.exercise-desc{font-size:12px;color:var(--muted);line-height:1.5;margin:8px 0 0}
.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:34px 20px}
.empty-state .illustration{width:150px;margin-bottom:6px}
.empty-state h3{margin:0;font-size:19px}

.question-progress{height:7px;border-radius:999px;background:#242b31;overflow:hidden;margin:17px 0 20px}.question-progress>div{height:100%;background:linear-gradient(90deg,var(--accent),#ff757a);transition:.2s}
.question h1{font-size:34px;line-height:1.05;margin:8px 0 18px}.options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.choice{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--panel2);color:#fff;border-radius:12px;padding:14px;text-align:left;font-weight:750;transition:.15s}.choice:hover{border-color:#596570}.choice.selected{border-color:var(--accent);background:rgba(var(--accent-rgb),.13);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.25)}.choice .icon{color:var(--accent);flex-shrink:0}
.question-footer{display:flex;justify-content:space-between;gap:8px;margin-top:20px}.number-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.number-field{background:var(--panel2);border:1px solid var(--line);border-radius:11px;padding:12px}.number-field span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase}

.plan-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.mini-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:15px}.mini-card small{display:block;color:var(--muted);margin-top:4px}
.plan-day{padding:19px;margin-bottom:13px}.exercise-row{display:grid;grid-template-columns:1.6fr .55fr 1fr auto;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #252c33}.exercise-row:last-child{border-bottom:0}.exercise-row .sub{color:var(--muted);font-size:12px;margin-top:3px}.exercise-row .action{justify-self:end}

.nutrition-hero{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.nutrition-card{padding:21px}.nutrition-ring-row{display:grid;grid-template-columns:minmax(140px,200px) minmax(0,1fr);gap:20px;align-items:center}.ring-wrap{display:flex;align-items:center;justify-content:center}.ring{width:180px;height:180px;border-radius:50%;background:conic-gradient(var(--accent) 0 73%,#272e34 73% 100%);display:grid;place-items:center;position:relative}.ring:after{content:"";position:absolute;inset:11px;border-radius:50%;background:var(--panel)}.ring-content{position:relative;z-index:2;text-align:center}.ring-content strong{display:block;font-size:30px}.ring-content span{font-size:11px;color:var(--muted)}.macros{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:15px}.macro{background:var(--panel2);padding:12px;border-radius:11px}.macro span{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px}.macro strong{display:block;font-size:20px;margin-top:4px}.meal-list{display:flex;flex-direction:column;gap:9px}.meal{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:13px}.meal h4{display:flex;align-items:center;gap:8px;margin:0}.meal p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.45}

.log-list{display:flex;flex-direction:column;gap:12px}.log-card{padding:19px}.log-card h3{margin:0;display:flex;align-items:center;gap:10px}.last-session,.recommendation{margin-top:9px;padding:10px 11px;border-radius:9px;background:#0f1317;font-size:12px;display:flex;align-items:center;gap:8px}.last-session{color:var(--muted)}.recommendation.green{color:var(--green)}.recommendation.yellow{color:var(--yellow)}.recommendation.gray{color:#d6dade}
.sets{display:flex;flex-direction:column;gap:7px;margin-top:13px}.set-row{display:grid;grid-template-columns:24px 30px 1fr 1fr 64px 31px;gap:6px;align-items:center;transition:opacity .15s}.set-row small{color:var(--muted)}.set-row input:not(.set-check),.set-row select.rpe-input{width:100%;padding:9px;border:1px solid #36414b;border-radius:8px;background:#0e1317;color:#fff}.set-row select.rpe-input{padding:9px 4px;font-size:12px;text-align:center}.remove-set{width:30px;height:30px;border-radius:8px;border:1px solid #333;background:#242a2f;color:#aaa}
.set-check{width:19px;height:19px;accent-color:var(--accent);cursor:pointer}
.set-row.done{opacity:.55}
.set-row.done input:not(.set-check){border-color:rgba(var(--accent-rgb),.4)}
.sets-progress-badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:var(--panel3);color:#c7d0d8;font-size:11px;font-weight:800}
.sets-progress-badge.complete{background:rgba(var(--accent-rgb),.18);color:var(--accent-light)}
.session-progress{display:flex;align-items:center;gap:12px;margin-top:10px}
.session-progress-track{flex:1;height:8px;border-radius:999px;background:var(--panel3);overflow:hidden}
.session-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-light),var(--accent));width:0%;transition:width .25s ease}
.session-progress-label{font-size:12px;color:var(--muted);font-weight:750;white-space:nowrap}

/* ---- Barra flotante de descanso ---- */
.rest-timer-bar{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:800;display:flex;align-items:center;gap:18px;background:#14191e;border:1px solid #35414c;border-radius:16px;padding:12px 18px;box-shadow:0 20px 60px rgba(0,0,0,.5);transition:opacity .2s,transform .2s}
.rest-timer-bar.hidden{display:none}
.rest-timer-info{display:flex;align-items:center;gap:10px;color:var(--accent)}
.rest-timer-info div{color:var(--text)}
.rest-timer-info strong{display:block;font-size:13px}
.rest-timer-info span.muted{font-size:11px}
#rest-timer-clock{font-size:26px;font-weight:950;font-variant-numeric:tabular-nums;min-width:64px;text-align:center}
.rest-timer-actions{display:flex;gap:6px;align-items:center}
.rest-timer-bar.urgent #rest-timer-clock{color:var(--accent-light)}

.history-card{padding:19px;margin-bottom:11px}.history-head{display:flex;justify-content:space-between;gap:12px}.history-date{color:var(--muted);font-size:12px;margin-top:4px}.history-line{display:grid;grid-template-columns:1.2fr 1fr .6fr 1fr;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #252c33;font-size:12px}.history-line:last-child{border-bottom:0}.good{color:var(--green)}.neutral{color:#d7dade}.bad{color:#ff8086}

/* ---- Panel de progreso e historial ---- */
.progress-panel{padding:22px;margin-bottom:16px}
.progress-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.progress-filters select{padding:10px 13px;border:1px solid #38434e;border-radius:10px;background:#0e1317;color:#fff;font-weight:700;font-size:13px}
.progress-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.progress-stat{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:13px}
.progress-stat span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.progress-stat strong{display:block;font-size:22px;margin-top:5px}
.progress-stat strong.good{color:var(--green)}
.progress-stat strong.bad{color:#ff8086}
.progress-chart{width:100%;height:auto;display:block}
.progress-empty{padding:26px;text-align:center;color:var(--muted);font-size:13px}

/* ---- Récords personales, constancia y peso corporal ---- */
.records-panel{padding:20px;margin-bottom:14px}
.records-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:6px}
.record-item{background:var(--panel2);border:1px solid var(--line);border-radius:11px;padding:12px;display:flex;flex-direction:column;gap:3px}
.record-item strong{font-size:13px}
.record-weight{color:var(--accent-light);font-size:19px;font-weight:950}
.consistency-panel{padding:20px;margin-bottom:14px}
.heatmap-grid{display:grid;grid-template-columns:repeat(14,1fr);gap:4px;margin-top:10px}
.heatmap-cell{aspect-ratio:1;border-radius:3px;background:#1b2128}
.heatmap-cell.level-1{background:rgba(var(--accent-rgb),.35)}
.heatmap-cell.level-2{background:rgba(var(--accent-rgb),.65)}
.heatmap-cell.level-3{background:var(--accent)}
.body-log-form{display:flex;gap:9px;margin-bottom:16px}
.body-log-form input{flex:1;padding:11px 13px;border:1px solid #38434e;border-radius:10px;background:#0e1317;color:#fff}

.setting-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.setting-card{padding:20px}.setting-card h3{margin:0;display:flex;align-items:center;gap:9px}.danger-zone{border-color:#4a282b}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.74);backdrop-filter:blur(6px);z-index:500}.modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:600;width:min(92vw,500px);max-height:90vh;overflow:auto;background:#14191e;border:1px solid #35414c;border-radius:18px;padding:26px;box-shadow:0 30px 100px rgba(0,0,0,.5)}.modal-xl{width:min(92vw,920px)}.modal-close{position:absolute;right:11px;top:11px;width:34px;height:34px;border-radius:50%;border:1px solid #333b43;background:#20262b;color:#aaa;font-size:21px}.modal-close:hover{color:#fff}.modal h3{font-size:28px;margin:8px 0}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}

/* ---- Selector de tema (negro+rojo / negro+verde) ---- */
.theme-switch{display:flex;align-items:center;gap:8px;padding:9px 8px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.theme-switch span{font-size:11px;color:var(--muted);font-weight:750;flex:1}
.theme-dot{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:.15s;position:relative;flex-shrink:0}
.theme-dot.theme-red{background:radial-gradient(circle at 35% 30%,#ff6a6f,#c21821)}
.theme-dot.theme-green{background:radial-gradient(circle at 35% 30%,#4ade80,#0f7a3d)}
.theme-dot.theme-blue{background:radial-gradient(circle at 35% 30%,#60a5fa,#1d4ed8)}
.theme-dot.active{border-color:#fff;box-shadow:0 0 0 2px var(--panel),0 0 0 3.5px var(--accent)}
.theme-swatches{display:flex;gap:12px;margin-top:14px}
.theme-swatch-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--panel2);transition:.15s;flex:1}
.theme-swatch-btn:hover{border-color:#596570}
.theme-swatch-btn.active{border-color:var(--accent);background:rgba(var(--accent-rgb),.1)}
.theme-swatch-preview{width:100%;height:44px;border-radius:9px}
.theme-swatch-preview.theme-red{background:linear-gradient(135deg,#000,#1a0507 60%,#ff3038)}
.theme-swatch-preview.theme-green{background:linear-gradient(135deg,#000,#04140a 60%,#22c55e)}
.theme-swatch-preview.theme-blue{background:linear-gradient(135deg,#000,#050b1a 60%,#3b82f6)}
.theme-swatch-btn span{font-size:12px;font-weight:750;color:#d7dde3}

/* ---- Constructor de rutina personalizada y modal de sustitución ---- */
.custom-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:16px}
.custom-day-card{padding:19px;margin-bottom:14px}
.custom-day-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.custom-day-head input[type=text]{flex:1;padding:10px 12px;border:1px solid #38434e;border-radius:9px;background:#0e1317;color:#fff;font-weight:800;font-size:15px}
.custom-exercise-row{display:grid;grid-template-columns:1.4fr .7fr .7fr .8fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #252c33}
.custom-exercise-row:last-child{border-bottom:0}
.custom-exercise-row input{width:100%;padding:8px 9px;border:1px solid #36414b;border-radius:8px;background:#0e1317;color:#fff;font-size:13px}
.custom-exercise-actions{display:flex;gap:4px}
.custom-exercise-actions .icon-btn{width:30px;height:30px}
.custom-exercise-actions .icon-btn:disabled{opacity:.3;cursor:not-allowed}
.custom-exercise-actions .icon-btn.active-link{background:rgba(var(--accent-rgb),.22);border-color:var(--accent);color:var(--accent-light)}
.superset-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800;color:var(--accent-light);margin:8px 0 2px;padding-left:2px}
.custom-exercise-row.superset-linked{border-left:2px solid var(--accent);padding-left:8px;margin-left:-10px}
.custom-empty-day{padding:18px;text-align:center;color:var(--muted);font-size:13px;border:1px dashed var(--line);border-radius:11px}
.icon-btn.danger-outline{border-color:#5a2c31;color:#ff8086}
.icon-btn.danger-outline:hover{background:rgba(133,31,38,.25)}

.picker-filters{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.picker-search input{width:100%;padding:11px 13px;border:1px solid #38434e;border-radius:10px;background:#0e1317;color:#fff}
.picker-chip-row{display:flex;gap:7px;flex-wrap:wrap}
.picker-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--panel2);color:#c7d0d8;font-size:12px;font-weight:700;transition:.15s}
.picker-chip:hover{border-color:#596570}
.picker-chip.active{border-color:var(--accent);background:rgba(var(--accent-rgb),.15);color:#fff}
.picker-list{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto;margin-top:4px;padding-right:4px}
.picker-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);text-align:left;transition:.15s}
.picker-item:hover{border-color:var(--accent);background:rgba(var(--accent-rgb),.08)}
.picker-item .copy{flex:1;min-width:0}
.picker-item strong{display:block;font-size:14px}
.picker-item .picker-meta{display:flex;align-items:center;gap:8px;margin-top:3px;flex-wrap:wrap}
.picker-empty{padding:26px;text-align:center;color:var(--muted);font-size:13px}

.template-picker-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.template-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px;border:1px solid var(--line);border-radius:13px;background:var(--panel2);text-align:left;transition:.15s}
.template-item:hover{border-color:var(--accent);background:rgba(var(--accent-rgb),.08)}
.template-item strong{display:block;font-size:15px}
.template-item p{margin:5px 0 0;color:var(--muted);font-size:12.5px;line-height:1.5;max-width:440px}

/* ---- Diario de comidas ---- */
.food-diary{padding:22px}
.food-progress-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:14px 0 18px}
.food-progress-item span{font-size:11.5px;color:var(--muted);display:block;margin-bottom:6px}
.food-add-form{display:grid;grid-template-columns:1.6fr .8fr .8fr .8fr .8fr auto;gap:8px;margin-bottom:14px}
.food-add-form input{padding:10px;border:1px solid #38434e;border-radius:9px;background:#0e1317;color:#fff;font-size:13px}
.food-entries{display:flex;flex-direction:column;gap:8px}
.food-entry{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;font-size:13px}
.food-entry span:first-child{font-weight:750}

/* ---- Modal de texto largo (legal) y calculadora 1RM ---- */
.text-modal-body{max-height:60vh;overflow-y:auto;margin-top:10px;color:#c7d0d8;font-size:13.5px;line-height:1.7}
.text-modal-body h4{color:#fff;margin:18px 0 6px}
.text-modal-body p{margin:0 0 10px}
.calc-row{display:flex;gap:10px;margin-top:10px}
.calc-row input{flex:1;padding:11px 13px;border:1px solid #38434e;border-radius:10px;background:#0e1317;color:#fff}
.calc-result{margin-top:16px;padding:16px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}
.calc-result strong{font-size:28px;color:var(--accent-light)}
.warmup-table{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.warmup-row{display:flex;justify-content:space-between;font-size:13px;padding:6px 0;border-bottom:1px solid #252c33}
.warmup-row:last-child{border-bottom:0}
.reminder-row{display:flex;align-items:center;gap:12px;margin-top:10px}
.reminder-row input[type=time]{padding:9px 11px;border:1px solid #38434e;border-radius:9px;background:#0e1317;color:#fff}
.switch{position:relative;display:inline-block;width:44px;height:25px;flex-shrink:0}
.switch input{opacity:0;width:0;height:0}
.switch-slider{position:absolute;inset:0;background:#333c44;border-radius:999px;transition:.2s;cursor:pointer}
.switch-slider:before{content:"";position:absolute;width:19px;height:19px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}
.switch input:checked + .switch-slider{background:var(--accent)}
.switch input:checked + .switch-slider:before{transform:translateX(19px)}

/* ---- Onboarding ---- */
#onboarding-body{min-height:180px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding-top:6px}
#onboarding-body .illustration{width:120px}
#onboarding-body h3{margin:0;font-size:22px}
.onboarding-dots{display:flex;gap:6px;justify-content:center;margin-top:8px}
.onboarding-dots span{width:7px;height:7px;border-radius:50%;background:#333c44}
.onboarding-dots span.active{background:var(--accent)}

@media(max-width:1050px){.auth-screen{grid-template-columns:1fr;padding:90px 20px 40px}.auth-brand{left:20px}.hero-grid,.two-col,.nutrition-hero{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}.profile-grid,.setting-grid{grid-template-columns:1fr}}
@media(max-width:820px){.app-shell{display:block}.sidebar{position:fixed;left:-270px;top:0;width:265px;transition:.2s}.sidebar.open{left:0}.main{padding:0 16px 40px}.mobile-only{display:block}.topbar{height:78px}.options{grid-template-columns:1fr}.number-grid{grid-template-columns:1fr}.plan-summary{grid-template-columns:repeat(2,1fr)}.exercise-row{grid-template-columns:1fr 1fr}.exercise-row .action{justify-self:start}.history-line{grid-template-columns:1fr 1fr}.custom-exercise-row{grid-template-columns:1fr 1fr}.progress-stats{grid-template-columns:1fr}.toast{left:12px;right:12px;top:94px;bottom:auto;text-align:center}.heatmap-grid{grid-template-columns:repeat(10,1fr)}}
@media(max-width:560px){.auth-card{padding:22px}.auth-intro h1{font-size:42px}.hero-card h1{font-size:35px}.stat-grid,.plan-summary,.macros{grid-template-columns:1fr 1fr}.page-head,.section-head{align-items:flex-start;flex-direction:column}.hero-actions,.actions{flex-direction:column}.btn{width:100%}.exercise-row{grid-template-columns:1fr}.set-row{grid-template-columns:20px 22px 1fr 1fr 50px 26px;gap:4px}.topbar-actions .btn{width:auto}.rest-timer-bar{left:12px;right:12px;bottom:12px;transform:none;flex-wrap:wrap;justify-content:center}.nutrition-ring-row{grid-template-columns:1fr;justify-items:center;text-align:center}.food-add-form{grid-template-columns:1fr 1fr}}
