:root{
  --ink:#1A1D1C; --graphite:#20231F; --surface:#242724; --surface-2:#2D302A;
  --chalk:#EFEDE4; --chalk-dim:#9CA39A;
  /* --blue es el acento principal (botones, links, gráficos, racha, día entrenado).
     El nombre se conserva por compatibilidad con los estilos originales. */
  --blue:#FFC72C; --orange:#E8672E; --line:#3A3E37;
  --green:#4CAF6D; --red:#E5484D;
}
*{box-sizing:border-box;}
body{margin:0; background:var(--ink); color:var(--chalk); font-family:'Inter',sans-serif; min-height:100vh; -webkit-font-smoothing:antialiased;}
.wrap{max-width:560px; margin:0 auto; padding:24px 18px 80px;}
.topbar{display:flex; align-items:center; gap:10px; margin-bottom:24px;}
.mark{width:32px;height:32px;background:var(--blue); display:flex;align-items:center;justify-content:center; color:var(--ink); font-weight:700; font-size:10.5px; letter-spacing:-0.02em; font-family:'Oswald'; clip-path: polygon(0 20%, 20% 0, 100% 0, 100% 80%, 80% 100%, 0 100%); flex-shrink:0;}
.brand-name{font-family:'Oswald'; font-size:18px; letter-spacing:0.06em;}
.brand-sub{font-size:10.5px; color:var(--chalk-dim); letter-spacing:0.08em;}

h1{font-family:'Oswald'; font-size:24px; margin:0 0 6px; letter-spacing:0.02em;}
h2{font-family:'Oswald'; font-size:17px; margin:0 0 10px; letter-spacing:0.02em;}
.sub{color:var(--chalk-dim); font-size:13px; margin-bottom:20px; line-height:1.5;}

.card{background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:20px; margin-bottom:16px;}
label{display:block; font-family:'Oswald'; font-size:11px; letter-spacing:0.06em; color:var(--chalk-dim); text-transform:uppercase; margin-bottom:6px;}
input, select, textarea{width:100%; background:var(--ink); border:1px solid var(--line); color:var(--chalk); font-family:'Inter'; font-size:14px; padding:11px 12px; border-radius:4px; margin-bottom:14px;}
textarea{resize:vertical; min-height:60px;}
input:focus, select:focus, textarea:focus{outline:none; border-color:var(--blue);}
.btn{width:100%; display:flex; align-items:center; justify-content:center; gap:8px; background:var(--blue); color:var(--ink); border:none; font-family:'Oswald'; letter-spacing:0.06em; font-size:13px; padding:13px; border-radius:4px; cursor:pointer; text-transform:uppercase; font-weight:600;}
.btn:disabled{opacity:0.5; cursor:not-allowed;}
.btn-orange{background:var(--orange);}
.btn-ghost{width:100%; background:none; color:var(--chalk-dim); border:1px solid var(--line); font-family:'Inter'; font-size:12.5px; padding:11px; border-radius:4px; cursor:pointer; margin-top:8px;}
.btn-sm{display:inline-flex; align-items:center; gap:6px; background:var(--surface-2); color:var(--chalk); border:1px solid var(--line); font-family:'Inter'; font-size:12px; padding:8px 12px; border-radius:4px; cursor:pointer;}
.btn-sm:disabled{opacity:0.4; cursor:not-allowed;}
.btn-eliminar-sesion{background:none; color:var(--chalk-dim); display:block; width:100%;}
.btn-eliminar-sesion.btn-danger-confirm{background:var(--orange); color:var(--ink); border-color:var(--orange); font-weight:700;}
.btn-sm.btn-danger-confirm{background:var(--orange); color:var(--ink); border-color:var(--orange); font-weight:700;}
.btn-sm.added{background:var(--green); color:var(--ink); border-color:var(--green); font-weight:700;}
.link-btn{background:none; border:none; color:var(--chalk-dim); font-size:12px; text-decoration:underline; cursor:pointer; padding:0;}

.row-flex{display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; gap:10px;}
.pill{display:inline-flex; align-items:center; gap:4px; font-family:'IBM Plex Mono'; font-size:11px; background:var(--surface-2); border:1px solid var(--line); padding:4px 10px; border-radius:20px; color:var(--chalk-dim); white-space:nowrap;}
.pill.pr{background:var(--orange); color:var(--ink); font-weight:700; border-color:var(--orange);}
.pill.streak{background:var(--blue); color:var(--ink); font-weight:700; border-color:var(--blue);}

.session-card{background:var(--surface); border:1px solid var(--line); border-radius:6px; margin-bottom:12px; overflow:hidden; transition:box-shadow 0.3s, border-color 0.3s;}
.session-card.highlight{border-color:var(--blue); box-shadow:0 0 0 2px var(--blue);}
.session-head{background:var(--surface-2); padding:10px 16px; font-family:'Oswald'; font-size:13px; letter-spacing:0.03em; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:6px;}
.session-body{padding:12px 16px;}
.set-line{font-family:'IBM Plex Mono'; font-size:12.5px; color:var(--chalk-dim); padding:4px 0; border-bottom:1px solid var(--line); display:flex; justify-content:space-between;}
.set-line:last-child{border-bottom:none;}
.set-line b{color:var(--chalk);}
.note-box{margin-top:10px; padding:10px 12px; background:var(--ink); border-radius:4px; font-size:12.5px; line-height:1.5;}
.note-box .note-label{font-family:'Oswald'; font-size:10px; letter-spacing:0.06em; color:var(--chalk-dim); text-transform:uppercase; margin-bottom:4px;}
.session-photo{width:100%; border-radius:4px; margin-top:10px; display:block;}

.set-input-row{display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px;}
.set-input-row input{margin-bottom:0;}

.empty{text-align:center; padding:36px 20px; color:var(--chalk-dim); font-size:13px;}
.error-banner{background:#5A3E1B; color:#F0CE95; font-size:12.5px; padding:10px 14px; border-radius:4px; margin-bottom:16px;}
.toast{position:fixed; bottom:20px; left:50%; transform:translateX(-50%); background:var(--blue); color:var(--ink); font-family:'Oswald'; font-size:12.5px; padding:10px 20px; border-radius:20px; font-weight:600; opacity:0; transition:opacity 0.3s; pointer-events:none; z-index:50; max-width:90vw; text-align:center;}
.toast.show{opacity:1;}

.header-actions{display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; gap:10px;}
.switch-user{display:inline-flex; align-items:center; gap:5px; font-size:11.5px; color:var(--chalk-dim); background:none; border:none; text-decoration:underline; cursor:pointer; white-space:nowrap;}

.coach-list-item{display:flex; justify-content:space-between; align-items:center; padding:12px 16px; background:var(--surface); border:1px solid var(--line); border-radius:6px; margin-bottom:8px; cursor:pointer; gap:10px; flex-wrap:wrap;}
.coach-list-item:hover{border-color:var(--blue);}
.coach-name{font-family:'Oswald'; font-size:14px;}
.coach-meta{font-size:11px; color:var(--chalk-dim); margin-top:2px;}

/* Administración y noticias: identidad oscura de UltraCarga con acento violeta. */
.uc-admin-overview{position:relative; overflow:hidden; padding:20px; margin-bottom:16px; border:1px solid #514184; border-radius:18px; background:radial-gradient(circle at 92% 0%,#3b2468 0,transparent 45%),linear-gradient(145deg,#101d2b,#151326 75%); box-shadow:0 18px 34px #090d18a8;}
.uc-admin-overview:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#8d68f8,#6dcfff,#8fe7bd);}
.uc-admin-overview-head{display:flex;align-items:center;gap:12px;}
.uc-admin-overview-head span:last-child{display:grid;gap:2px;}
.uc-admin-overview-head small,.uc-news-entry small,.uc-news-header small{font:600 10px 'IBM Plex Mono',monospace;letter-spacing:.12em;color:#9c84f9;}
.uc-admin-overview-head b{font:600 22px 'Oswald',sans-serif;letter-spacing:.02em;}
.uc-admin-overview-symbol{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#7853e4;color:white;font-size:25px;box-shadow:0 0 20px #7853e466;}
.uc-admin-overview p{font-size:12.5px;line-height:1.5;color:#b8c5d7;margin:13px 0 16px;}
.uc-admin-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.uc-admin-metrics div{min-width:0;padding:12px 9px;border-radius:12px;border:1px solid #425065;background:#0e1b2bbc;display:flex;flex-direction:column;gap:3px;}
.uc-admin-metrics strong{font:600 25px 'Oswald',sans-serif;line-height:1;color:#f7f6fc;}
.uc-admin-metrics span{font-size:10px;color:#a8b8cc;}
.uc-admin-metrics div:nth-child(2){border-color:#545084;}.uc-admin-metrics div:nth-child(2) strong{color:#b89bff;}
.uc-admin-metrics div:nth-child(3){border-color:#476577;}.uc-admin-metrics div:nth-child(3) strong{color:#8fdef8;}
.uc-admin-future{display:grid;gap:4px;margin-top:14px;padding:12px 13px;border:1px dashed #4c5575;border-radius:11px;background:#151f32a3;}
.uc-admin-future b{font-size:12px;color:#e7e2fb;}.uc-admin-future span{font-size:11px;line-height:1.45;color:#9faec3;}
.uc-news-entry{width:100%;display:flex;align-items:center;gap:12px;text-align:left;margin:0 0 17px;padding:13px;border:1px solid #4f4780;border-radius:15px;background:linear-gradient(115deg,#17233a,#251b40);color:#f1eff8;cursor:pointer;box-shadow:0 10px 22px #080e1a63;}
.uc-news-entry-icon{width:38px;height:38px;display:grid;place-items:center;flex:none;border-radius:11px;background:#694fc4;color:white;}
.uc-news-entry>span:nth-child(2){display:grid;gap:2px;min-width:0;}.uc-news-entry b{font:600 16px 'Oswald',sans-serif;}.uc-news-entry em{font:normal 11px 'Inter',sans-serif;color:#aebbd0;}.uc-news-entry-arrow{margin-left:auto;color:#9d86f2;}
.uc-news-header{margin:8px 0 18px;padding:20px;border-radius:16px;background:radial-gradient(circle at right top,#413068,transparent 57%),#102332;border:1px solid #405276;}
.uc-news-header h1{margin:5px 0 3px;font-size:26px;}.uc-news-header p{margin:0;color:#b3c1d3;font-size:12px;}
.uc-news-compose{border-color:#564382;border-radius:15px;background:#172235;}.uc-news-compose-kicker{display:flex;align-items:center;gap:6px;color:#b39af8;font:600 10px 'IBM Plex Mono',monospace;letter-spacing:.1em;}.uc-news-compose h2{font-size:20px;margin:8px 0 15px;}
.uc-news-card{margin-bottom:12px;padding:17px;border:1px solid #3c4c64;border-radius:15px;background:linear-gradient(145deg,#172a39,#182337);box-shadow:0 9px 20px #10162070;}
.uc-news-header h1,.uc-news-compose h2,.uc-news-card h2{font-family:'Oswald',sans-serif;}.uc-news-compose input,.uc-news-compose textarea{font-family:'Inter',sans-serif;}.uc-news-compose .btn{font-family:'Oswald',sans-serif;}
.uc-news-card-top{display:flex;justify-content:space-between;gap:8px;align-items:center;color:#a8b6cb;font:600 10px 'IBM Plex Mono',monospace;letter-spacing:.07em;}.uc-news-card-top span{display:flex;align-items:center;gap:5px;color:#9c86ef;}.uc-news-card h2{font-size:20px;margin:13px 0 8px;}.uc-news-card p{font-size:13px;line-height:1.6;margin:0 0 15px;color:#cbd3df;overflow-wrap:anywhere;}.uc-news-card-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #435065;padding-top:11px;}.uc-news-like,.uc-news-delete{border:0;background:none;color:#a9b9ce;cursor:pointer;font:600 12px 'Inter',sans-serif;padding:6px;}.uc-news-like.liked{color:#e995c7;}.uc-news-delete{color:#eeb3b3;}.uc-news-empty{padding:26px 17px;border:1px dashed #4a5570;border-radius:15px;text-align:center;color:#acb9cc;font-size:12px;line-height:1.5;}
.uc-achievement-alert{display:flex;gap:13px;padding:15px;margin-bottom:10px;border:1px solid #405371;border-radius:15px;background:linear-gradient(130deg,#122838,#241b3b);}.uc-achievement-alert.is-new{border-color:#8365d9;box-shadow:0 0 0 1px #8365d944;}.uc-achievement-icon{display:grid;place-items:center;flex:none;width:43px;height:43px;border-radius:13px;background:#533c8b;font-size:22px;}.uc-achievement-alert>div{min-width:0;display:grid;gap:4px;justify-items:start;}.uc-achievement-alert small{font:600 10px 'IBM Plex Mono',monospace;color:#aaa1dc;}.uc-achievement-alert b{font:600 17px 'Oswald',sans-serif;}.uc-achievement-alert p{font-size:12px;color:#bfcbe0;margin:0 0 7px;}.uc-congratulate{border-color:#715aaf;color:#e1d8ff;}
.uc-mesociclo-resumen{margin:0 0 16px;padding:18px;border:1px solid #4b527e;border-radius:17px;background:radial-gradient(circle at right top,#39225e,transparent 55%),#122536;box-shadow:0 12px 26px #070d1c77;}.uc-mesociclo-head small{font:600 10px 'IBM Plex Mono',monospace;letter-spacing:.1em;color:#ac97ef;}.uc-mesociclo-head h2{font:600 21px 'Oswald',sans-serif;margin:5px 0;}.uc-mesociclo-head p{font-size:12px;color:#b9c6d7;line-height:1.5;margin:0 0 16px;}.uc-mesociclo-weeks{display:flex;gap:5px;overflow:auto;padding-bottom:4px;}.uc-mesociclo-weeks span{flex:none;padding:7px 9px;border-radius:8px;border:1px solid #4a566d;background:#182738;color:#9daec5;font:600 10px 'IBM Plex Mono',monospace;}.uc-mesociclo-weeks span.is-active{background:#7653d4;border-color:#a889ff;color:#fff;}.uc-mesociclo-weeks span.is-deload{border-color:#4da4ba;}.uc-mesociclo-state{display:grid;gap:3px;margin:13px 0 0;}.uc-mesociclo-state b{font:600 16px 'Oswald',sans-serif;}.uc-mesociclo-state span{font-size:11px;color:#a7bbd3;}.uc-mesociclo-warning{font-size:11px;color:#f1c889;line-height:1.5;}.uc-mesociclo-details{margin-top:13px;}.uc-mesociclo-details summary{cursor:pointer;color:#ab9cf4;font-size:12px;}.uc-mesociclo-details .routine-day{margin-top:10px;}.uc-mesociclo-edit{margin:0 0 16px;border-color:#7c60c3;color:#e4d8ff;}.uc-mesociclo-form{border-color:#51467d;background:#182437;}.uc-mesociclo-form p{font-size:11px;color:#aebdd1;line-height:1.5;margin:0;}.uc-mesociclo-editor-tools{display:flex;gap:8px;margin-bottom:12px;}.uc-mesociclo-tabs{display:flex;gap:6px;overflow:auto;margin-bottom:12px;padding-bottom:4px;}.uc-mesociclo-tabs button{flex:none;border:1px solid #4b5571;background:#1b2b3f;color:#b5c2d4;border-radius:9px;padding:9px 11px;cursor:pointer;font:600 11px 'IBM Plex Mono',monospace;}.uc-mesociclo-tabs button.is-active{background:#694eb5;color:white;border-color:#a48bed;}.uc-mesociclo-week-edit{padding:14px;border:1px solid #4d4d78;border-radius:15px;background:#152538;margin-bottom:16px;}.uc-mesociclo-week-head{display:flex;justify-content:space-between;gap:8px;align-items:center;}.uc-mesociclo-week-head h2{margin:0;}.uc-mesociclo-week-head select{width:auto;margin:0;}.uc-mesociclo-day-edit{margin-top:16px;}.uc-mesociclo-day-edit h3{font:600 14px 'Oswald',sans-serif;color:#b8a8f2;}.uc-mesociclo-ex-edit{border-top:1px solid #405067;padding:10px 0;}.uc-mesociclo-ex-edit>b{font-size:12px;}.uc-mesociclo-ex-edit>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px;}.uc-mesociclo-ex-edit label{font-size:9px;}.uc-mesociclo-ex-edit input{font-size:11px;padding:8px;margin:4px 0 0;}
.uc-mesociclo-close{margin:0 0 16px;border-color:#8d5a65;color:#f5c2ca;}
.uc-mesociclo-week-edit h2,.uc-mesociclo-week-edit input,.uc-mesociclo-week-edit select,.uc-mesociclo-week-edit button,.uc-congratulate{font-family:'Inter',sans-serif;}
.uc-mesociclo-ex-edit>div:not(.uc-meso-ex-title){grid-template-columns:repeat(2,minmax(0,1fr));}.uc-mesociclo-ex-edit .uc-meso-ex-title{display:flex;align-items:center;justify-content:space-between;gap:8px;}.uc-meso-ex-title b{font-size:13px;}.uc-meso-add-ex{padding-top:15px;border-top:1px solid #42516e;}.uc-meso-add-ex>.btn-sm{margin-top:9px;}
.uc-followup-entry{display:flex;align-items:center;gap:12px;width:100%;margin:0 0 17px;padding:13px;text-align:left;border:1px solid #426477;border-radius:15px;background:linear-gradient(110deg,#102a39,#172538);color:#ecf5fb;cursor:pointer;}.uc-followup-entry>span:first-child{display:grid;place-items:center;width:39px;height:39px;flex:none;border-radius:11px;background:#1f6179;color:#b8efff;}.uc-followup-entry>span:nth-child(2){display:grid;gap:2px;min-width:0;}.uc-followup-entry small{font:600 10px 'IBM Plex Mono',monospace;color:#78c7e5;letter-spacing:.08em;}.uc-followup-entry b{font:600 16px 'Oswald',sans-serif;}.uc-followup-entry em{font:normal 11px 'Inter',sans-serif;color:#a7bece;}.uc-followup-entry>strong{margin-left:auto;display:grid;place-items:center;min-width:28px;height:28px;padding:0 5px;border-radius:9px;background:#2d6d82;font:600 13px 'Oswald',sans-serif;}.uc-followup-item{width:100%;display:flex;align-items:center;gap:10px;text-align:left;margin-bottom:9px;padding:13px;border:1px solid #425568;border-radius:12px;background:#142738;color:#e8f0f8;cursor:pointer;}.uc-followup-item>span:nth-child(2){display:grid;gap:3px;flex:1;}.uc-followup-item b{font:600 15px 'Oswald',sans-serif;}.uc-followup-item strong{font-size:11px;color:#9ddcf0;}.uc-followup-item small{font-size:10px;color:#a9b9c7;}

.select-inline{width:auto; margin-bottom:0; font-size:12px; padding:7px 8px; max-width:150px;}

.hidden{display:none !important;}
.loading{text-align:center; padding:40px 20px; color:var(--chalk-dim); font-size:13px;}

/* ---------- Iconografía ---------- */
.icon{display:inline-block; vertical-align:-3px; flex-shrink:0;}
.icon-chevron{transition:transform 0.25s ease;}
.toggle-label{display:flex; align-items:center; gap:7px;}
.toggle-state{display:flex; align-items:center; gap:5px;}
.btn-toggle-rutina .txt-open{display:none;}
.btn-toggle-rutina.open .txt-open{display:inline;}
.btn-toggle-rutina.open .txt-closed{display:none;}
.btn-toggle-rutina.open .icon-chevron{transform:rotate(180deg);}

/* ---------- Microinteracciones: feedback al tocar ---------- */
.btn, .btn-sm, .btn-ghost, .btn-toggle-rutina, .dia-btn, .tab-btn, .switch-user, .link-btn, .coach-list-item, .calendar-day.trained, .remove-x{
  transition: transform 0.12s ease, opacity 0.12s ease, background-color 0.15s ease, border-color 0.15s ease;
}
.btn:active, .btn-sm:active, .btn-ghost:active, .btn-toggle-rutina:active, .dia-btn:active, .tab-btn:active, .switch-user:active, .link-btn:active, .coach-list-item:active, .calendar-day.trained:active, .remove-x:active{
  transform: scale(0.97);
}

/* ---------- Animaciones de aparición ---------- */
@keyframes fadeInUp{
  from{ opacity:0; transform:translateY(6px); }
  to{ opacity:1; transform:translateY(0); }
}
.card, .session-card, .coach-list-item, .stat-tile, .chart-wrap, .calendar{
  animation: fadeInUp 0.35s ease both;
}
@keyframes fadeSlideDown{
  from{ opacity:0; transform:translateY(-6px); }
  to{ opacity:1; transform:translateY(0); }
}
.reveal-in{ animation: fadeSlideDown 0.3s ease; }

/* ---------- Splash de arranque ---------- */
#splash{position:fixed; inset:0; background:var(--ink); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; z-index:999; transition:opacity 0.35s ease, visibility 0.35s ease;}
#splash.hide{opacity:0; visibility:hidden; pointer-events:none;}
.splash-mark{width:56px; height:56px; background:var(--blue); display:flex; align-items:center; justify-content:center; color:var(--ink); font-weight:700; font-family:'Oswald'; font-size:18px; letter-spacing:-0.02em; clip-path: polygon(0 20%, 20% 0, 100% 0, 100% 80%, 80% 100%, 0 100%); animation: splashPulse 1.4s ease-in-out infinite;}
.splash-name{font-family:'Oswald'; font-size:15px; letter-spacing:0.14em; color:var(--chalk-dim);}
.splash-bar{width:120px; height:3px; background:var(--line); border-radius:3px; overflow:hidden;}
.splash-bar-fill{width:40%; height:100%; background:var(--blue); border-radius:3px; animation: splashLoad 1.1s ease-in-out infinite;}
@keyframes splashPulse{0%,100%{transform:scale(1); opacity:1;} 50%{transform:scale(1.06); opacity:0.85;}}
@keyframes splashLoad{0%{transform:translateX(-120%);} 100%{transform:translateX(340%);}}

.tabs{display:flex; gap:6px; margin-bottom:18px;}
.tab-btn{flex:1; background:var(--surface); border:1px solid var(--line); color:var(--chalk-dim); font-family:'Oswald'; font-size:11.5px; letter-spacing:0.04em; text-transform:uppercase; padding:10px; border-radius:4px; cursor:pointer;}
.tab-btn.active{background:var(--blue); color:var(--ink); border-color:var(--blue);}

.streak-row{display:flex; gap:10px; margin-bottom:18px;}
.stat-tile{flex:1; background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:14px; text-align:center;}
.stat-tile .num{font-family:'Oswald'; font-size:22px; color:var(--blue);}
.stat-tile .label{font-size:10.5px; color:var(--chalk-dim); text-transform:uppercase; letter-spacing:0.05em; margin-top:2px;}

.calendar{background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:16px; margin-bottom:16px;}
.calendar-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; font-family:'Oswald'; font-size:13px;}
.calendar-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:4px; text-align:center;}
.calendar-grid .dow{font-size:10px; color:var(--chalk-dim); padding-bottom:4px;}
.calendar-day{aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-size:12px; border-radius:4px; color:var(--chalk-dim);}
.calendar-day.trained{background:var(--blue); color:var(--ink); font-weight:700; cursor:pointer;}
.calendar-day.empty-cell{visibility:hidden;}

.exercise-group{margin-bottom:10px; padding:10px 12px; background:var(--ink); border-radius:4px;}
.exercise-group .ex-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:4px;}
.exercise-group .ex-name{font-size:12.5px; font-weight:600;}

.rutina-ex-card{background:var(--ink); border:1px solid var(--line); border-radius:4px; padding:10px 12px; margin-bottom:10px;}
.rutina-ex-top{display:flex; gap:8px; align-items:center;}
.rutina-ex-top input{margin-bottom:0; flex:1;}
.rutina-ex-meta{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:8px;}
.rutina-ex-meta input{margin-bottom:0;}
.rutina-ex-meta label{margin-bottom:4px;}
.rutina-ex-nota-row{margin-top:8px;}
.rutina-ex-nota-row label{margin-bottom:4px;}
.rutina-ex-nota-row input{margin-bottom:0;}
.rutina-ex-tipolado-row{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:8px;}
.rutina-ex-tipolado-row select{margin-bottom:0;}
.remove-x{background:none; border:1px solid var(--line); color:var(--chalk-dim); border-radius:4px; cursor:pointer; height:41px; width:41px; flex-shrink:0;}
.ex-nota{font-size:12px; color:var(--chalk-dim); background:var(--ink); border-radius:4px; padding:6px 10px; margin:-2px 0 8px; line-height:1.4;}

.fab-superserie{position:fixed; bottom:16px; right:16px; width:44px; height:44px; border-radius:50%; background:var(--surface-2); border:1px solid var(--line); color:var(--chalk-dim); display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:45; opacity:0.88; box-shadow:0 2px 8px rgba(0,0,0,0.3);}
.fab-superserie.active{background:var(--blue); color:var(--ink); border-color:var(--blue); opacity:1;}
.superserie-label{font-size:11.5px; color:var(--chalk-dim); background:var(--ink); border-radius:4px; padding:6px 10px; margin:-2px 0 8px; display:flex; align-items:center; gap:6px; flex-wrap:wrap;}
.superserie-label b{color:var(--chalk);}
.ex-name-seleccionable{cursor:pointer; text-decoration:underline dotted; text-underline-offset:3px;}
.ex-name-seleccionable.seleccionando{color:var(--blue);}

.chart-wrap{background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:16px; margin-bottom:16px;}
.chart-wrap canvas{max-height:220px;}

.photo-input-label{display:flex; align-items:center; justify-content:center; gap:8px; border:1px dashed var(--line); border-radius:4px; padding:14px; cursor:pointer; color:var(--chalk-dim); font-size:12.5px; margin-bottom:14px;}
.photo-input-label input{display:none;}

/* Reproductor de audio propio para la entrevista inicial: reemplaza los
   controles nativos del navegador porque en algunos audios grabados en vivo
   el archivo no trae bien escrita su duración interna, y el control nativo
   mostraba ese número erróneo. Acá la duración total se calcula aparte
   (medida por la app al grabar) y no depende de ese dato del archivo. */
.audio-player{display:flex; align-items:center; gap:10px; background:var(--ink); border:1px solid var(--line); border-radius:4px; padding:10px 12px;}
.audio-player-play{flex-shrink:0; width:34px; height:34px; border-radius:50%; background:var(--blue); color:var(--ink); border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0;}
.audio-player-play svg{width:14px; height:14px;}
.audio-player-bar{position:relative; flex:1; height:6px; background:var(--surface-2); border-radius:3px; cursor:pointer;}
.audio-player-fill{position:absolute; left:0; top:0; height:100%; width:0%; background:var(--blue); border-radius:3px; pointer-events:none;}
.audio-player-time{flex-shrink:0; font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--chalk-dim); white-space:nowrap;}

.auth-switch{text-align:center; margin-top:14px; font-size:12.5px; color:var(--chalk-dim);}
.auth-switch button{background:none; border:none; color:var(--blue); text-decoration:underline; cursor:pointer; font-size:12.5px;}

.btn-toggle-rutina{width:100%; display:flex; justify-content:space-between; align-items:center; background:var(--surface); border:1px solid var(--line); color:var(--chalk); font-family:'Oswald'; font-size:13.5px; letter-spacing:0.02em; padding:14px 16px; border-radius:6px; cursor:pointer; margin-bottom:16px;}
.btn-toggle-rutina span:last-child{font-size:11.5px; color:var(--blue); font-family:'Inter'; font-weight:600; white-space:nowrap;}

.dia-btn{background:var(--surface-2); color:var(--chalk); border:1px solid var(--line); font-family:'Inter'; font-size:12.5px; padding:9px 14px; border-radius:4px; cursor:pointer;}
.dia-btn.selected{background:var(--blue); color:var(--ink); border-color:var(--blue); font-weight:700;}
.dia-heading{font-family:'Oswald'; font-size:12px; letter-spacing:0.05em; color:var(--chalk-dim); text-transform:uppercase; margin:14px 0 6px; border-top:1px solid var(--line); padding-top:10px;}
.dia-heading:first-of-type{margin-top:0; border-top:none; padding-top:0;}

.ios-install-banner{position:relative; border-color:var(--blue); font-size:13px; line-height:1.5; color:var(--chalk-dim); padding-right:40px;}
.ios-install-row{display:flex; align-items:flex-start; gap:12px;}
.ios-install-icon{flex-shrink:0; width:32px; height:32px; border-radius:6px; background:var(--surface-2); display:flex; align-items:center; justify-content:center; color:var(--blue);}
.ios-install-title{font-family:'Oswald'; font-size:13.5px; letter-spacing:0.02em; color:var(--chalk); margin-bottom:4px;}
.ios-install-close{position:absolute; top:12px; right:12px; background:none; border:none; color:var(--chalk-dim); font-size:14px; cursor:pointer; padding:4px;}

/* ---------- UltraCarga / Dark Performance Premium ----------
   Capa visual 2026: mantiene intactos los componentes y flujos existentes,
   pero ordena profundidad, contraste, jerarquía y respuesta al tacto. */
:root{
  --ink:#0C100D;
  --graphite:#121812;
  --surface:#171D18;
  --surface-2:#222A23;
  --chalk:#F3F5ED;
  --chalk-dim:#AAB3A5;
  --blue:#D6FF3F;
  --orange:#FFB84D;
  --green:#65D66E;
  --red:#FF6B63;
  --line:#354036;
  --info:#46D6B4;
  --radius-card:14px;
  --radius-control:10px;
  --shadow-card:0 10px 24px rgba(0,0,0,.18);
}

body{
  background:radial-gradient(circle at 50% -20%, #1B281C 0%, var(--ink) 40%);
  letter-spacing:.002em;
}
.wrap{max-width:600px; padding:calc(20px + env(safe-area-inset-top)) 18px calc(92px + env(safe-area-inset-bottom));}
.topbar{padding:4px 2px 18px; margin-bottom:20px; border-bottom:1px solid rgba(213,255,63,.12);}
.mark,.splash-mark{
  border-radius:11px;
  clip-path:none;
  background-color:var(--blue);
  background-image:url('icon-512.png');
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  color:transparent;
  box-shadow:0 8px 18px rgba(214,255,63,.18);
}
.mark{font-size:9px; letter-spacing:-.08em;}
.brand-name{font-size:20px; letter-spacing:.045em; line-height:1;}
.brand-sub{margin-top:4px; font-size:10px; letter-spacing:.12em; text-transform:uppercase;}
.readonly-shared-routine{margin-bottom:12px;}
h1{font-size:27px; line-height:1.12; letter-spacing:.01em;}
h2{font-size:18px; line-height:1.15;}
.sub{font-size:13.5px; color:var(--chalk-dim);}

.card,.session-card,.coach-list-item,.calendar,.chart-wrap,.btn-toggle-rutina{
  border-color:rgba(170,179,165,.17);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow-card);
}
.card{padding:18px; background:linear-gradient(145deg, #1A211B 0%, var(--surface) 100%);}
.session-card{background:var(--surface);}
.session-head{background:rgba(34,42,35,.84); padding:12px 16px; border-bottom:1px solid rgba(170,179,165,.12);}
.session-body{padding:14px 16px;}
.coach-list-item{padding:14px 16px; background:linear-gradient(145deg,#192019,var(--surface));}
.coach-list-item:hover{border-color:rgba(214,255,63,.65); transform:translateY(-1px);}
.stat-tile{border-color:rgba(170,179,165,.15); border-radius:12px; background:linear-gradient(155deg,#1D251E,var(--surface)); padding:16px 12px;}
.stat-tile .num{font-size:26px; line-height:1;}
.chart-wrap,.calendar{background:linear-gradient(145deg,#192019,var(--surface)); padding:18px;}

label{font-size:10.5px; letter-spacing:.09em;}
input,select,textarea{
  min-height:46px;
  background:#111611;
  border-color:rgba(170,179,165,.22);
  border-radius:var(--radius-control);
  padding:12px 13px;
}
input:hover,select:hover,textarea:hover{border-color:rgba(214,255,63,.38);}
input:focus,select:focus,textarea:focus{border-color:var(--blue); box-shadow:0 0 0 3px rgba(214,255,63,.14);}

.btn{
  min-height:48px;
  border-radius:var(--radius-control);
  font-size:13.5px;
  box-shadow:0 8px 18px rgba(214,255,63,.14);
}
.btn:hover{filter:brightness(1.04); box-shadow:0 10px 22px rgba(214,255,63,.22);}
.btn-orange{background:var(--orange);}
.btn-ghost,.btn-sm,.dia-btn{
  min-height:42px;
  border-radius:var(--radius-control);
  border-color:rgba(170,179,165,.22);
}
.btn-ghost{background:rgba(34,42,35,.5); color:var(--chalk);}
.btn-sm,.dia-btn{background:var(--surface-2);}
.btn-ghost:hover,.btn-sm:hover,.dia-btn:hover{border-color:rgba(214,255,63,.6); color:var(--chalk);}

.pill{padding:5px 10px; border-color:rgba(170,179,165,.18); background:rgba(34,42,35,.8);}
.pill.pr{background:var(--orange);}
.pill.streak{background:var(--blue);}
.set-line{padding:7px 0; border-bottom-color:rgba(170,179,165,.12);}
.note-box,.exercise-group,.rutina-ex-card,.ex-nota,.superserie-label{background:#111611; border-radius:10px;}
.rutina-ex-card{border-color:rgba(170,179,165,.15); padding:12px;}
.remove-x{border-radius:10px;}

.tabs{gap:8px;}
.tab-btn{border-radius:10px; min-height:44px; border-color:rgba(170,179,165,.18);}
.tab-btn.active{box-shadow:0 5px 14px rgba(214,255,63,.12);}
.calendar-day{border-radius:8px;}
.calendar-day.trained{box-shadow:0 3px 8px rgba(214,255,63,.15);}
.dia-btn.selected,.tab-btn.active{color:#0C100D;}
.btn-toggle-rutina{padding:15px 16px; background:linear-gradient(145deg,#192019,var(--surface));}
.btn-toggle-rutina:hover{border-color:rgba(214,255,63,.5);}
.btn-toggle-rutina span:last-child{color:var(--blue);}
.toast{bottom:calc(20px + env(safe-area-inset-bottom)); box-shadow:0 10px 25px rgba(0,0,0,.34);}
.error-banner{background:#45291E; color:#FFD2A3; border:1px solid rgba(255,184,77,.3); border-radius:10px;}
.ios-install-banner{border-color:rgba(214,255,63,.55); background:linear-gradient(145deg,#1B261A,var(--surface));}
.ios-install-icon{background:var(--blue); color:var(--ink); border-radius:10px;}

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

/* ---------- UltraCarga Aurora 2026 ----------
   Sistema visual más expresivo: fondo azul noche, superficies con profundidad
   y un color funcional distinto para cada área de la experiencia. */
:root{
  --ink:#07121C;
  --graphite:#0B1925;
  --surface:#102431;
  --surface-2:#183445;
  --chalk:#F7FAFF;
  --chalk-dim:#A7BAC7;
  --blue:#CBFF45;
  --orange:#FFD166;
  --green:#5EE3B6;
  --red:#FF6B72;
  --line:rgba(155,189,211,.20);
  --info:#71D7FF;
  --violet:#9B7BFF;
  --pink:#F07FD6;
  --youtube:#FF0033;
  --radius-card:18px;
  --radius-control:12px;
  --shadow-card:0 16px 40px rgba(0,6,12,.28);
}

body{
  background:
    radial-gradient(circle at -5% -6%, rgba(94,227,182,.22) 0, transparent 27%),
    radial-gradient(circle at 104% 13%, rgba(155,123,255,.24) 0, transparent 31%),
    radial-gradient(circle at 50% 106%, rgba(113,215,255,.12) 0, transparent 36%),
    linear-gradient(165deg,#07131d 0%,#081722 54%,#061018 100%);
  background-attachment:fixed;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
  background-size:28px 28px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.65),transparent 72%);
}
.wrap{position:relative; max-width:620px;}
.topbar{
  border-bottom-color:rgba(113,215,255,.15);
  background:linear-gradient(90deg,rgba(94,227,182,.07),transparent 35%,rgba(155,123,255,.06));
  border-radius:0 0 18px 18px;
  padding-left:4px;
  padding-right:4px;
}
.mark,.splash-mark{box-shadow:0 0 0 1px rgba(203,255,69,.18),0 8px 24px rgba(203,255,69,.20);}
.brand-sub{color:#8FA8B8;}
h1{color:#F9FBFF; text-shadow:0 2px 16px rgba(113,215,255,.07);}
h2{color:#F9FBFF;}

.card,.session-card,.coach-list-item,.calendar,.chart-wrap,.btn-toggle-rutina{
  border-color:var(--line);
  box-shadow:var(--shadow-card);
}
.card{
  background:linear-gradient(145deg,rgba(20,48,64,.95),rgba(13,31,43,.98));
}
.session-card{background:linear-gradient(145deg,#112938,#0D202C);}
.session-head{background:linear-gradient(90deg,rgba(113,215,255,.10),rgba(155,123,255,.08)); border-bottom-color:rgba(145,178,200,.14);}
.coach-list-item{background:linear-gradient(135deg,rgba(20,49,66,.96),rgba(13,32,44,.98));}
.coach-list-item:hover{border-color:rgba(113,215,255,.6);}

.streak-row{gap:12px;}
.stat-tile{
  position:relative;
  overflow:hidden;
  border-radius:16px;
  background:linear-gradient(145deg,#153246,#0E2330);
  border-color:rgba(113,215,255,.20);
  box-shadow:0 14px 30px rgba(0,7,14,.22);
}
.stat-tile::after{content:""; position:absolute; width:74px; height:74px; border-radius:50%; right:-28px; top:-34px; background:rgba(113,215,255,.13); filter:blur(1px);}
.stat-tile:nth-child(2)::after{background:rgba(155,123,255,.17);}
.stat-tile:nth-child(2) .num{color:var(--violet);}
.stat-tile .num{color:var(--info);}
.stat-tile .label{color:#A8BBC8;}

input,select,textarea{background:#091925; border-color:rgba(145,178,200,.24);}
input:hover,select:hover,textarea:hover{border-color:rgba(113,215,255,.42);}
input:focus,select:focus,textarea:focus{border-color:var(--info); box-shadow:0 0 0 3px rgba(113,215,255,.14);}
.btn{background:linear-gradient(110deg,#CBFF45,#92F594); color:#07121C; box-shadow:0 10px 25px rgba(163,249,102,.18);}
.btn:hover{box-shadow:0 13px 28px rgba(163,249,102,.27);}
.btn-sm,.dia-btn{background:#193548; border-color:rgba(145,178,200,.22);}
.btn-ghost{background:rgba(18,48,65,.66); border-color:rgba(145,178,200,.22);}
.btn-ghost:hover,.btn-sm:hover,.dia-btn:hover{border-color:rgba(113,215,255,.58);}
.link-btn{color:var(--info);}

.btn-toggle-rutina{
  position:relative;
  overflow:hidden;
  background:linear-gradient(130deg,#132B3B,#0F2432);
  border-color:rgba(145,178,200,.20);
  min-height:58px;
}
.btn-toggle-rutina::before{content:""; position:absolute; left:0; top:10px; bottom:10px; width:4px; border-radius:0 4px 4px 0; background:var(--section-accent,var(--info)); box-shadow:0 0 18px var(--section-accent,var(--info));}
.btn-toggle-rutina:hover{border-color:color-mix(in srgb,var(--section-accent,var(--info)) 56%,transparent); transform:translateY(-1px);}
.btn-toggle-rutina .toggle-label{position:relative; z-index:1;}
.btn-toggle-rutina span:last-child{color:var(--section-accent,var(--info));}
.section-routine{--section-accent:var(--violet); background:linear-gradient(125deg,rgba(115,75,210,.25),#12283A 64%);}
.section-calendar{--section-accent:var(--info);}
.section-progress{--section-accent:#739BFF; background:linear-gradient(125deg,rgba(73,120,220,.20),#12283A 66%);}
.section-measurements{--section-accent:var(--green);}
.section-intake{--section-accent:var(--pink);}
.section-goals{--section-accent:#A87EFF;}
.section-history{--section-accent:var(--orange);}
.section-feedback{--section-accent:#FF8BA7;}
.history-primary{
  min-height:70px;
  margin-bottom:16px;
  background:linear-gradient(120deg,rgba(232,103,46,.20),rgba(20,48,64,.98) 47%,rgba(155,123,255,.13));
  border-color:rgba(255,173,92,.28);
}
.history-primary-copy{display:flex; flex-direction:column; align-items:flex-start; gap:5px; text-align:left;}
.history-primary-copy small{padding-left:22px; color:#9FB2BF; font-family:'Inter'; font-size:10.5px; line-height:1.35; text-transform:none; letter-spacing:0;}

.calendar,.chart-wrap{
  background:linear-gradient(145deg,rgba(18,45,61,.98),rgba(9,27,39,.98));
  border-color:rgba(113,215,255,.22);
}
.calendar-day.trained{background:linear-gradient(145deg,#71D7FF,#9B7BFF); color:#08121B; box-shadow:0 5px 14px rgba(113,215,255,.25);}
.chart-wrap{position:relative; overflow:hidden; padding:20px;}
.chart-wrap::before{content:""; position:absolute; width:180px; height:180px; border-radius:50%; top:-130px; right:-70px; background:rgba(155,123,255,.18); filter:blur(10px); pointer-events:none;}
.chart-wrap canvas{position:relative; max-height:250px;}
.chart-wrap select{position:relative; background:#0C202D; border-color:rgba(113,215,255,.26);}

/* Resumen real de Progresión: racha, sesiones y récords. */
.progress-overview{position:relative; z-index:1; margin:-2px -2px 20px; padding:16px; border:1px solid rgba(155,123,255,.28); border-radius:17px; background:linear-gradient(145deg,rgba(15,29,65,.96),rgba(9,23,40,.96)); box-shadow:0 16px 34px rgba(2,7,18,.24); overflow:hidden;}
.progress-overview::after{content:""; position:absolute; width:160px; height:160px; border-radius:50%; right:-80px; top:-105px; background:radial-gradient(circle,rgba(155,123,255,.30),transparent 68%); pointer-events:none;}
.progress-overview-heading{position:relative; z-index:1; display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:13px;}
.progress-overview-heading > span{font-family:'Oswald'; color:#F7FAFF; font-size:18px; font-weight:700; text-transform:uppercase; letter-spacing:.035em;}
.progress-overview-heading small{max-width:165px; color:#91A7B7; font-size:9px; line-height:1.25; text-align:right;}
.progress-summary-grid{position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px;}
.progress-summary-card{min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:11px 5px 10px; border:1px solid rgba(113,215,255,.18); border-radius:13px; background:linear-gradient(155deg,rgba(19,42,72,.88),rgba(11,27,47,.92)); text-align:center; box-shadow:inset 0 1px 0 rgba(255,255,255,.025);}
.progress-summary-icon{display:grid; place-items:center; width:29px; height:29px; margin-bottom:3px; border-radius:10px; background:rgba(203,255,69,.10); font-size:17px; filter:saturate(.9);}
.progress-summary-card strong{font-family:'Oswald'; color:#F7FAFF; font-size:25px; line-height:1;}
.progress-summary-card b{margin-top:3px; color:#DDE7EE; font-size:10.5px; line-height:1.1;}
.progress-summary-card small{margin-top:4px; color:#8FA7B7; font-size:8.5px; line-height:1.1;}
.progress-summary-streak{border-color:rgba(203,255,69,.24);}
.progress-summary-streak .progress-summary-icon{color:#CBFF45;}
.progress-summary-sessions{border-color:rgba(113,215,255,.25);}
.progress-summary-sessions .progress-summary-icon{background:rgba(113,215,255,.10); color:#71D7FF;}
.progress-summary-records{border-color:rgba(155,123,255,.30);}
.progress-summary-records .progress-summary-icon{background:rgba(155,123,255,.13); color:#9B7BFF;}
.progress-chart-heading{position:relative; z-index:1; display:flex; flex-direction:column; gap:3px; margin:0 0 10px;}
.progress-chart-heading span{font-family:'Oswald'; color:#F7FAFF; font-size:15px; font-weight:600;}
.progress-chart-heading small{color:#91A7B7; font-size:9.5px; line-height:1.3;}

.progress-exercise-picker{position:relative; z-index:1; margin-bottom:14px; padding:15px; border:1px solid rgba(113,215,255,.21); border-radius:17px; background:linear-gradient(145deg,rgba(10,32,45,.94),rgba(8,23,35,.96));}
.progress-picker-heading{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:11px;}
.progress-picker-heading > div{display:flex; flex-direction:column; gap:2px;}
.progress-picker-heading span{font-family:'Oswald'; color:#F7FAFF; font-size:16px; font-weight:650; text-transform:uppercase; letter-spacing:.035em;}
.progress-picker-heading small{color:#91A7B7; font-size:9px;}
.progress-bank-toggle{appearance:none; padding:6px 9px; border:1px solid rgba(155,123,255,.34); border-radius:999px; background:rgba(155,123,255,.10); color:#C9B8FF; font-size:9px; font-weight:700; cursor:pointer;}
.progress-search-box{display:grid; grid-template-columns:22px 1fr; align-items:center; padding:0 11px; border:1px solid rgba(113,215,255,.24); border-radius:12px; background:#081B27; box-shadow:inset 0 1px 0 rgba(255,255,255,.025);}
.progress-search-box > span{color:#71D7FF; font-size:19px; line-height:1;}
.progress-search-box input{width:100%; padding:11px 0; border:0; outline:0; background:transparent; color:#F7FAFF; font-family:'Inter'; font-size:12px;}
.progress-search-box input::placeholder{color:#708A9D;}
.progress-group-filters{display:flex; gap:7px; margin:10px -2px 11px; padding:0 2px 3px; overflow-x:auto; scrollbar-width:none;}
.progress-group-filters::-webkit-scrollbar{display:none;}
.progress-group-chip{appearance:none; flex:0 0 auto; padding:6px 10px; border:1px solid rgba(145,167,183,.18); border-radius:999px; background:rgba(18,42,57,.72); color:#91A7B7; font-size:9px; font-weight:700; cursor:pointer;}
.progress-group-chip.active{border-color:rgba(203,255,69,.38); background:rgba(203,255,69,.12); color:#DFFF86; box-shadow:0 0 0 1px rgba(203,255,69,.05);}
.progress-bank-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px;}
.progress-exercise-option{appearance:none; min-width:0; display:grid; grid-template-columns:48px minmax(0,1fr) 12px; align-items:center; gap:8px; padding:7px; border:1px solid rgba(145,167,183,.15); border-radius:12px; background:linear-gradient(145deg,rgba(17,43,58,.92),rgba(10,28,41,.95)); color:#F7FAFF; text-align:left; cursor:pointer; transition:transform .16s ease,border-color .16s ease,background .16s ease;}
.progress-exercise-option:hover{transform:translateY(-1px); border-color:rgba(113,215,255,.38);}
.progress-exercise-option.active{border-color:#9B7BFF; background:linear-gradient(145deg,rgba(70,49,128,.34),rgba(12,33,48,.98)); box-shadow:0 0 0 1px rgba(155,123,255,.16),0 9px 20px rgba(5,10,27,.22);}
.progress-exercise-option.no-data{opacity:.68;}
.progress-exercise-option.no-data.active{opacity:1;}
.progress-exercise-thumb{display:grid; place-items:center; width:48px; height:48px; overflow:hidden; border:1px solid rgba(113,215,255,.18); border-radius:10px; background:linear-gradient(145deg,#123447,#0B2030); color:#71D7FF; font-family:'Oswald'; font-size:13px;}
.progress-exercise-thumb img{display:block; width:100%; height:100%; object-fit:cover;}
.progress-exercise-copy{min-width:0; display:flex; flex-direction:column; gap:4px;}
.progress-exercise-copy strong{overflow:hidden; color:#EEF5F8; font-size:10.5px; line-height:1.18; text-overflow:ellipsis; white-space:nowrap;}
.progress-exercise-copy small{overflow:hidden; color:#7891A2; font-size:7.8px; line-height:1.15; text-overflow:ellipsis; white-space:nowrap;}
.progress-exercise-option.has-data .progress-exercise-copy small{color:#6FDDB9;}
.progress-exercise-arrow{color:#6F8EA3; font-size:18px; text-align:center;}
.progress-bank-empty{grid-column:1/-1; padding:18px 10px; color:#91A7B7; font-size:10px; text-align:center;}

.progress-selected-exercise{position:relative; z-index:1; display:grid; grid-template-columns:108px minmax(0,1fr); gap:14px; margin-bottom:12px; padding:12px; border:1px solid rgba(155,123,255,.30); border-radius:17px; background:linear-gradient(125deg,rgba(35,29,78,.92),rgba(11,34,48,.97) 67%); box-shadow:0 15px 30px rgba(3,8,24,.22); overflow:hidden;}
.progress-selected-exercise::after{content:""; position:absolute; width:120px; height:120px; right:-70px; bottom:-85px; border-radius:50%; background:rgba(113,215,255,.14); filter:blur(8px); pointer-events:none;}
.progress-selected-media{position:relative; z-index:1; display:grid; place-items:center; width:108px; height:108px; overflow:hidden; border:1px solid rgba(113,215,255,.28); border-radius:14px; background:#071824; color:#71D7FF; font-family:'Oswald'; font-size:23px; box-shadow:0 10px 22px rgba(1,8,17,.28);}
.progress-selected-media img{display:block; width:100%; height:100%; object-fit:cover;}
.progress-selected-copy{position:relative; z-index:1; min-width:0; align-self:center;}
.progress-selected-copy > small{display:block; margin-bottom:3px; color:#9B7BFF; font-size:8px; font-weight:750; text-transform:uppercase; letter-spacing:.06em;}
.progress-selected-copy h3{margin:0 0 10px; color:#F7FAFF; font-family:'Oswald'; font-size:19px; line-height:1.12;}
.progress-selected-metrics{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px;}
.progress-selected-metrics span{min-width:0; padding:7px 4px; border:1px solid rgba(145,167,183,.13); border-radius:10px; background:rgba(5,20,31,.48); text-align:center;}
.progress-selected-metrics b{display:block; overflow:hidden; color:#F7FAFF; font-family:'Oswald'; font-size:13px; line-height:1.1; text-overflow:ellipsis; white-space:nowrap;}
.progress-selected-metrics small{display:block; margin-top:3px; color:#8199A9; font-size:7.5px;}

.progress-strength-card{position:relative; z-index:1; display:grid; grid-template-columns:46px minmax(0,1fr); align-items:center; gap:11px; margin-bottom:15px; padding:13px; border:1px solid rgba(203,255,69,.27); border-radius:15px; background:linear-gradient(120deg,rgba(31,65,55,.78),rgba(10,31,41,.94));}
.progress-strength-card.negative{border-color:rgba(255,112,112,.28); background:linear-gradient(120deg,rgba(80,37,50,.62),rgba(10,31,41,.94));}
.progress-strength-card.pending{border-color:rgba(255,209,102,.25); background:linear-gradient(120deg,rgba(78,61,30,.42),rgba(10,31,41,.94));}
.progress-strength-icon{display:grid; place-items:center; width:44px; height:44px; border-radius:13px; background:rgba(203,255,69,.12); color:#CBFF45; font-family:'Oswald'; font-size:25px; font-weight:700;}
.progress-strength-card.negative .progress-strength-icon{background:rgba(255,112,112,.12); color:#FF8A8A;}
.progress-strength-card.pending .progress-strength-icon{background:rgba(255,209,102,.11); color:#FFD166;}
.progress-strength-card small{display:block; color:#90A8B7; font-size:8px; font-weight:750; letter-spacing:.08em;}
.progress-strength-card strong{display:block; margin:2px 0; color:#E8FFAA; font-family:'Oswald'; font-size:21px; line-height:1.05;}
.progress-strength-card.negative strong{color:#FFACAC;}
.progress-strength-card.pending strong{color:#FFE4A1; font-size:16px;}
.progress-strength-card p{margin:0; color:#9DB1BD; font-size:8.7px; line-height:1.3;}
.progress-chart-frame{position:relative; min-height:190px; padding:10px 5px 2px; border:1px solid rgba(113,215,255,.12); border-radius:15px; background:rgba(5,20,31,.42);}
.progress-chart-empty{min-height:178px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; padding:20px; text-align:center;}
.progress-chart-empty strong{color:#DCE7EC; font-family:'Oswald'; font-size:15px;}
.progress-chart-empty span{max-width:235px; color:#8299A7; font-size:9px; line-height:1.4;}

@media(max-width:380px){
  .progress-overview{padding:13px 11px;}
  .progress-summary-grid{gap:6px;}
  .progress-summary-card{padding:9px 3px;}
  .progress-summary-card strong{font-size:22px;}
  .progress-summary-card b{font-size:9.5px;}
  .progress-summary-card small{font-size:7.8px;}
  .progress-overview-heading small{max-width:135px;}
  .progress-bank-grid{grid-template-columns:1fr;}
  .progress-selected-exercise{grid-template-columns:88px minmax(0,1fr); gap:10px; padding:10px;}
  .progress-selected-media{width:88px; height:96px;}
  .progress-selected-copy h3{font-size:17px; margin-bottom:7px;}
  .progress-selected-metrics{gap:3px;}
  .progress-selected-metrics b{font-size:11px;}
}

/* Planificaciones y rutinas */
.routine-plan{padding:18px; background:linear-gradient(155deg,rgba(27,44,67,.98),rgba(11,28,40,.99)); border-color:rgba(155,123,255,.30);}
.routine-plan > .row-flex:first-child{padding-bottom:12px; border-bottom:1px solid rgba(155,123,255,.18);}
.routine-day{--day-accent:var(--violet); margin:16px 0; overflow:hidden; border:1px solid color-mix(in srgb,var(--day-accent) 34%,transparent); border-radius:16px; background:rgba(7,20,30,.62); box-shadow:0 12px 26px rgba(0,7,14,.20);}
.routine-day-1{--day-accent:var(--info);}
.routine-day-2{--day-accent:var(--green);}
.routine-day-3{--day-accent:var(--orange);}
.routine-day-header{position:relative; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; padding:14px 15px; background:linear-gradient(100deg,color-mix(in srgb,var(--day-accent) 18%,transparent),rgba(18,43,58,.70)); border-bottom:1px solid color-mix(in srgb,var(--day-accent) 25%,transparent);}
.routine-day-header::before{content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--day-accent);}
.routine-day-kicker{font-family:'IBM Plex Mono'; font-size:9.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#07121C; background:var(--day-accent); padding:4px 7px; border-radius:999px;}
.routine-day-title{font-family:'Oswald'; font-size:15px; font-weight:600; color:var(--chalk);}
.routine-day-count{font-size:10.5px; color:var(--chalk-dim); white-space:nowrap;}
.routine-day-exercises{padding:8px;}
.routine-exercise-row{display:grid; grid-template-columns:32px 82px minmax(0,1fr); gap:10px; padding:11px 10px; border-radius:12px; transition:background .18s ease,transform .18s ease;}
.routine-exercise-row + .routine-exercise-row{border-top:1px solid rgba(145,178,200,.10);}
.routine-exercise-row:hover{background:rgba(113,215,255,.045); transform:translateX(2px);}
.routine-exercise-index{width:28px; height:28px; display:flex; align-items:center; justify-content:center; border-radius:9px; background:color-mix(in srgb,var(--day-accent) 15%,transparent); color:var(--day-accent); font-family:'IBM Plex Mono'; font-size:10.5px; font-weight:700; border:1px solid color-mix(in srgb,var(--day-accent) 24%,transparent);}
.routine-exercise-thumb{position:relative; width:82px; aspect-ratio:1; align-self:start; padding:0; overflow:hidden; border-radius:11px; border:1px solid color-mix(in srgb,var(--day-accent) 34%,transparent); background:#071622; cursor:pointer; box-shadow:0 7px 18px rgba(0,5,12,.28);}
.routine-exercise-thumb img{display:block; width:100%; height:100%; object-fit:cover; transition:transform .2s ease,filter .2s ease;}
.routine-exercise-thumb:hover img{transform:scale(1.035); filter:brightness(1.08);}
.routine-exercise-content{min-width:0;}
.routine-exercise-head{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px;}
.routine-exercise-name{font-size:13.5px; font-weight:700; line-height:1.3; color:#F7FAFF;}
.routine-exercise-meta > span{justify-content:flex-start;}
.routine-exercise-meta b{font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--day-accent); background:color-mix(in srgb,var(--day-accent) 10%,transparent); border:1px solid color-mix(in srgb,var(--day-accent) 18%,transparent); padding:4px 8px; border-radius:999px;}
.routine-exercise-meta .pill{font-size:10px !important; background:rgba(145,178,200,.09); border-color:rgba(145,178,200,.16); color:#CAD7E0;}
.routine-exercise-row .ex-nota{margin:9px 0 0; padding:8px 10px; background:rgba(155,123,255,.08); border-left:2px solid rgba(155,123,255,.55); color:#B9C8D4;}
.exercise-video-btn{display:inline-flex; align-items:center; gap:5px; flex-shrink:0; padding:5px 8px; border-radius:8px; background:rgba(255,0,51,.12); border:1px solid rgba(255,0,51,.28); color:#FF4D70; font-family:'Inter'; font-size:10px; font-weight:700; text-decoration:none; transition:transform .12s ease,background .15s ease;}
.exercise-video-btn:hover{background:var(--youtube); color:white; transform:translateY(-1px);}
.exercise-video-btn .icon{vertical-align:middle;}
.exercise-video-btn.is-pending,.exercise-video-btn.is-pending:hover{opacity:.72; cursor:default; background:rgba(255,0,51,.10); color:#FF6684; transform:none;}
.exercise-image-viewer{position:fixed; inset:0; z-index:2000; display:grid; place-items:center; padding:22px; background:rgba(2,9,16,.88); backdrop-filter:blur(10px); animation:fadeIn .18s ease;}
.exercise-image-viewer figure{width:min(720px,100%); margin:0; overflow:hidden; border-radius:20px; border:1px solid rgba(113,215,255,.40); background:#071622; box-shadow:0 30px 80px rgba(0,0,0,.65),0 0 40px rgba(113,215,255,.12);}
.exercise-image-viewer img{display:block; width:100%; height:auto;}
.exercise-image-viewer figcaption{padding:13px 16px; font-family:'Oswald'; color:#EAF8FF; letter-spacing:.04em; background:linear-gradient(90deg,rgba(113,215,255,.10),rgba(155,123,255,.12));}
.exercise-image-close{position:fixed; top:18px; right:18px; z-index:1; width:42px; height:42px; border-radius:13px; border:1px solid rgba(255,255,255,.24); background:rgba(7,22,34,.88); color:white; font-size:28px; line-height:1; cursor:pointer;}
.routine-history-card{border-color:rgba(113,215,255,.22);}

/* El archivo de planes merece una entrada visible, no un enlace de texto. */
.routine-archive-entry{
  display:flex; align-items:center; gap:13px; width:100%; min-height:72px;
  margin:0 0 16px; padding:13px 15px; text-align:left; cursor:pointer;
  border:1px solid rgba(155,123,255,.28); border-radius:17px;
  background:linear-gradient(112deg,rgba(76,54,127,.29),rgba(15,38,53,.98) 62%,rgba(113,215,255,.08));
  color:var(--chalk); box-shadow:0 12px 30px rgba(0,7,14,.23);
  transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;
}
.routine-archive-entry:hover,.routine-archive-entry:focus-visible{
  border-color:rgba(155,123,255,.62); box-shadow:0 15px 34px rgba(0,7,14,.30),0 0 0 3px rgba(155,123,255,.10);
}
.routine-archive-entry:focus-visible{outline:none;}
.routine-archive-entry:active{transform:scale(.985);}
.routine-archive-icon{display:grid; place-items:center; width:42px; height:42px; flex:none; border-radius:12px; color:#DDD2FF; background:rgba(155,123,255,.19); border:1px solid rgba(155,123,255,.26);}
.routine-archive-icon .icon{width:19px; height:19px;}
.routine-archive-copy{display:flex; flex-direction:column; gap:4px; min-width:0; flex:1;}
.routine-archive-copy b{font-family:'Oswald'; font-size:15px; letter-spacing:.025em; text-transform:uppercase;}
.routine-archive-copy small{color:#A9BBC7; font-family:'Inter'; font-size:11px; line-height:1.4;}
.routine-archive-arrow{color:#BDABFF; flex:none;}
.routine-archive-arrow .icon{width:18px; height:18px;}

/* El entrenamiento diario es la acción principal del perfil del alumno. */
.daily-training-hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  margin:0 0 16px;
  padding:22px;
  border:1px solid rgba(203,255,69,.32);
  border-radius:20px;
  background:linear-gradient(138deg,rgba(24,68,70,.98),rgba(14,40,57,.98) 55%,rgba(53,41,99,.92));
  box-shadow:0 18px 44px rgba(0,7,14,.34),0 0 40px rgba(94,227,182,.08);
}
.daily-training-hero::before{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(110deg,rgba(203,255,69,.06),transparent 48%,rgba(155,123,255,.12));}
.daily-training-glow{position:absolute; z-index:-1; width:170px; height:170px; right:-54px; top:-70px; border-radius:50%; background:rgba(155,123,255,.34); filter:blur(7px);}
.daily-training-hero.has-session{border-color:rgba(113,215,255,.42);}
.daily-training-kicker,.self-routine-kicker{font-family:'IBM Plex Mono'; font-size:9.5px; line-height:1; letter-spacing:.12em; font-weight:700; color:#A9F5DF; text-transform:uppercase;}
.daily-training-hero h2{font-size:23px; margin:9px 0 7px; letter-spacing:.01em;}
.daily-training-hero p{max-width:440px; margin:0 0 16px; color:#B9CBD6; font-size:13px; line-height:1.55;}
.daily-training-btn{min-height:50px; font-size:13.5px; border-radius:12px;}
.daily-training-note{display:flex; align-items:center; justify-content:center; gap:6px; margin-top:10px; color:#99B3C2; font-size:10.5px;}
.daily-training-note .icon{color:#9FF0C9;}

/* Entrada clara y diferenciada para las rutinas creadas por el alumno. */
.self-routine-card{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  margin:0 0 16px;
  padding:16px;
  border:1px solid rgba(155,123,255,.34);
  border-radius:17px;
  background:linear-gradient(125deg,rgba(89,63,154,.27),rgba(15,39,54,.97) 62%,rgba(113,215,255,.08));
  box-shadow:0 14px 32px rgba(0,7,14,.25);
}
.self-routine-card.has-own-routine{border-color:rgba(94,227,182,.34); background:linear-gradient(125deg,rgba(35,113,92,.25),rgba(15,39,54,.97) 62%,rgba(113,215,255,.08));}
.self-routine-icon{display:grid; place-items:center; width:42px; height:42px; border-radius:13px; color:#D8CBFF; background:rgba(155,123,255,.16); border:1px solid rgba(155,123,255,.30);}
.has-own-routine .self-routine-icon{color:#A5F4D2; background:rgba(94,227,182,.13); border-color:rgba(94,227,182,.28);}
.self-routine-icon .icon{width:18px; height:18px;}
.self-routine-copy h2{margin:5px 0 3px; font-size:16px;}
.self-routine-copy p{margin:0; color:#9EB4C2; font-size:11.5px; line-height:1.45;}
.self-routine-action{white-space:nowrap; color:#F3EDFF; border-color:rgba(155,123,255,.34); background:rgba(155,123,255,.15);}
.self-routine-disclaimer{grid-column:2 / -1; padding-top:9px; border-top:1px solid rgba(155,123,255,.16); color:#8FA8B8; font-size:10.5px; line-height:1.45;}
.routine-origin-badge{display:inline-flex; align-items:center; gap:5px; width:max-content; padding:5px 9px; border-radius:999px; font-family:'IBM Plex Mono'; font-size:9.5px; font-weight:600; letter-spacing:.02em;}
.routine-origin-badge .icon{width:11px; height:11px;}
.routine-origin-badge.is-coach{color:#A8E8FF; background:rgba(113,215,255,.10); border:1px solid rgba(113,215,255,.22);}
.routine-origin-badge.is-student{color:#D9CBFF; background:rgba(155,123,255,.12); border:1px solid rgba(155,123,255,.26);}
.student-editor-banner{display:flex; align-items:center; gap:11px; margin:0 0 16px; padding:13px 15px; border-radius:14px; color:#B7C8D3; font-size:11.5px; line-height:1.45; border:1px solid rgba(155,123,255,.28); background:linear-gradient(105deg,rgba(155,123,255,.14),rgba(113,215,255,.07));}
.student-editor-banner > .icon{width:19px; height:19px; color:#BBA7FF;}
.student-editor-banner b{color:#F4F0FF;}

/* Editor de planificación */
.rutina-ex-card{position:relative; background:linear-gradient(145deg,#0D2230,#0A1B27); border-color:rgba(155,123,255,.22); border-radius:14px; padding:14px; box-shadow:0 10px 24px rgba(0,7,14,.16);}
.rutina-ex-card::before{content:""; position:absolute; left:-1px; top:12px; bottom:12px; width:3px; border-radius:0 3px 3px 0; background:var(--violet);}
.rutina-ex-meta label,.rutina-ex-nota-row label{color:#AFC0CB;}
.remove-x{background:rgba(255,107,114,.07); border-color:rgba(255,107,114,.22); color:#FF8B91;}
.remove-x:hover{background:rgba(255,107,114,.15);}
.exercise-bank-field{position:relative; flex:1; min-width:0;}
.exercise-bank-combo{display:grid; grid-template-columns:minmax(0,1fr) 48px; width:100%;}
.exercise-bank-direct-input{min-width:0; min-height:47px; margin:0; border-radius:11px 0 0 11px; border-right:0;}
.exercise-bank-select{width:100%; min-height:47px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 13px; border-radius:11px; border:1px solid rgba(113,215,255,.32); background:#081A26; color:#EAF8FF; text-align:left; cursor:pointer; box-shadow:inset 0 0 0 1px rgba(155,123,255,.05);}
.exercise-bank-chevron-btn{width:48px; justify-content:center; padding:0; border-radius:0 11px 11px 0;}
.exercise-bank-combo:focus-within .exercise-bank-direct-input,.exercise-bank-combo:focus-within .exercise-bank-chevron-btn{border-color:#71D7FF; box-shadow:0 0 0 3px rgba(113,215,255,.09);}
.exercise-bank-select:hover,.exercise-bank-select[aria-expanded="true"]{border-color:#71D7FF; box-shadow:0 0 0 3px rgba(113,215,255,.09);}
.exercise-bank-selected{font-size:12px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.exercise-bank-selected.is-placeholder{color:#718997; font-weight:400;}
.exercise-bank-select .icon-chevron{flex-shrink:0; transition:transform .18s ease;}
.exercise-bank-select[aria-expanded="true"] .icon-chevron{transform:rotate(180deg);}
.exercise-bank-dropdown{position:absolute; z-index:80; top:calc(100% + 7px); left:0; right:0; min-width:320px; max-height:430px; overflow:hidden; border-radius:15px; border:1px solid rgba(113,215,255,.34); background:#071824; box-shadow:0 22px 50px rgba(0,4,10,.68),0 0 0 1px rgba(155,123,255,.10);}
.exercise-bank-search-wrap{position:sticky; top:0; z-index:2; display:flex; align-items:center; gap:8px; padding:10px; border-bottom:1px solid rgba(113,215,255,.13); background:rgba(7,24,36,.97);}
.exercise-bank-search-wrap .icon{color:#71D7FF; flex-shrink:0;}
.exercise-bank-search-wrap input{width:100%; margin:0; padding:9px 10px;}
.exercise-bank-options{max-height:360px; overflow-y:auto; padding:8px; scrollbar-width:thin; scrollbar-color:#31566C transparent;}
.exercise-bank-group-title{padding:7px 8px 5px; color:#8099A9; font:600 9px 'IBM Plex Mono'; letter-spacing:.10em; text-transform:uppercase;}
.exercise-bank-option{width:100%; display:grid; grid-template-columns:58px minmax(0,1fr) 16px; align-items:center; gap:10px; padding:8px; margin:0 0 5px; border-radius:11px; border:1px solid transparent; background:#0C2230; color:#EAF8FF; text-align:left; cursor:pointer;}
.exercise-bank-option:hover{border-color:rgba(113,215,255,.38); background:linear-gradient(100deg,rgba(113,215,255,.13),rgba(155,123,255,.10));}
.exercise-bank-option img{width:58px; aspect-ratio:4/3; object-fit:cover; border-radius:8px; border:1px solid rgba(113,215,255,.16);}
.exercise-bank-option span{min-width:0; display:flex; flex-direction:column; gap:3px;}
.exercise-bank-option b{font-size:11.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.exercise-bank-option small{color:#88A1B0; font-size:9.5px;}
.exercise-bank-option > .icon{color:#668394;}
.exercise-bank-option-row{display:grid;grid-template-columns:minmax(0,1fr) 22px;align-items:center;gap:6px;margin:0 0 5px}
.exercise-bank-option-row .exercise-bank-option{margin:0}
.exercise-bank-option-row > .workout-video-icon{width:22px;height:22px;border-radius:7px}
.workout-video-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:9px;background:#FF0033;color:#fff;border:1px solid rgba(255,77,112,.72);box-shadow:0 4px 12px rgba(255,0,51,.22);text-decoration:none;cursor:pointer}
.workout-video-icon:hover{transform:translateY(-1px);background:#FF244F}
.workout-video-icon.is-pending{background:rgba(255,0,51,.08);border-color:rgba(255,77,112,.22);color:rgba(255,102,132,.48);box-shadow:none;cursor:default}
.workout-video-icon .icon{width:15px;height:15px}
.exercise-bank-add-row{display:flex; align-items:stretch; gap:8px;}
.exercise-bank-helper{display:flex; align-items:center; gap:7px; margin-top:10px; color:#91A7B7; font-size:11px;}
.exercise-bank-helper .icon,.exercise-bank-hint .icon{color:#71D7FF; flex-shrink:0;}
.exercise-bank-hint{display:flex; align-items:center; gap:11px; margin:0 0 14px; padding:12px 14px; border-radius:13px; border:1px solid rgba(113,215,255,.20); background:linear-gradient(100deg,rgba(113,215,255,.08),rgba(155,123,255,.08)); color:#AFC0CB; font-size:11.5px; line-height:1.4;}
.exercise-bank-hint b{color:#EAF8FF; font-size:12px;}
.rutina-ex-top .exercise-bank-field{width:100%;}
.routine-rest-pill{display:inline-flex; align-items:center; padding:3px 8px; border-radius:999px; color:#BDAEFF; background:rgba(155,123,255,.12); border:1px solid rgba(155,123,255,.24); font-size:10px; font-weight:600;}

.note-box,.exercise-group,.ex-nota,.superserie-label{background:#0A1B27;}
.pill{background:rgba(145,178,200,.10); border-color:rgba(145,178,200,.18); color:#B9C8D4;}
.pill.pr{background:var(--orange); color:#07121C;}
.pill.streak{background:var(--blue); color:#07121C;}
.error-banner{background:rgba(255,107,114,.12); color:#FFC1C5; border-color:rgba(255,107,114,.28);}
.toast{background:linear-gradient(110deg,#CBFF45,#92F594);}

@media (max-width:480px){
  .wrap{padding-left:14px; padding-right:14px;}
  .routine-plan{padding:14px 10px;}
  .routine-day-header{grid-template-columns:auto 1fr;}
  .routine-day-count{grid-column:2; margin-top:-6px;}
  .routine-exercise-row{grid-template-columns:28px 72px minmax(0,1fr); gap:8px; padding:11px 7px;}
  .routine-exercise-index{width:26px; height:26px;}
  .routine-exercise-thumb{width:72px; border-radius:9px;}
  .routine-exercise-head{align-items:flex-start;}
  .exercise-video-btn span{display:none;}
  .exercise-video-btn{padding:6px; border-radius:7px;}
  .exercise-bank-add-row{align-items:stretch;}
  .exercise-bank-add-row > .btn-sm{padding-left:11px; padding-right:11px;}
  .rutina-ex-meta{grid-template-columns:1fr 1fr;}
  .exercise-bank-dropdown{min-width:0; width:calc(100vw - 58px); max-width:410px;}
  .daily-training-hero{padding:19px 17px; border-radius:17px;}
  .daily-training-hero h2{font-size:21px;}
  .self-routine-card{grid-template-columns:38px minmax(0,1fr); padding:14px;}
  .self-routine-icon{width:38px; height:38px;}
  .self-routine-action{grid-column:1 / -1; width:100%; justify-content:center; margin-top:2px;}
  .self-routine-disclaimer{grid-column:1 / -1;}
}

/* Perfil social y avatares pixelados */
.student-home-header{align-items:flex-start; gap:10px;}
.student-profile-identity{display:flex; align-items:center; gap:12px; min-width:0;}
.student-profile-greeting{min-width:0;}
.student-profile-greeting h1{margin:0 0 2px;}
.profile-avatar-button{position:relative; flex:0 0 auto; padding:0; border:0; background:none; cursor:pointer;}
.profile-avatar{position:relative; display:block; overflow:hidden; border-radius:50%; background:#081A27; border:2px solid #71D7FF; box-shadow:0 0 0 3px rgba(113,215,255,.10),0 8px 24px rgba(0,7,14,.35);}
.profile-avatar.has-photo img{display:block; width:100%; height:100%; object-fit:cover;}
.profile-avatar.character-avatar img{display:block; width:100%; height:100%; object-fit:cover; image-rendering:auto;}
.avatar-home{width:62px; height:62px;}
.avatar-profile-large{width:104px; height:104px; border-width:3px;}
.avatar-profile-upload{width:72px; height:72px; border-width:3px;}
.avatar-header-small{width:50px; height:50px;}
.avatar-list{width:48px; height:48px;}
.avatar-chat{width:42px; height:42px;}
.avatar-choice-size{width:66px; height:66px;}
.avatar-sprite{display:block; width:100%; height:100%; background-image:url('avatar-sprite-v2.png'); background-size:500% 200%; background-repeat:no-repeat; image-rendering:pixelated;}
.avatar-pos-1{background-position:0% 0%;}.avatar-pos-2{background-position:25% 0%;}.avatar-pos-3{background-position:50% 0%;}.avatar-pos-4{background-position:75% 0%;}.avatar-pos-5{background-position:100% 0%;}
.avatar-pos-6{background-position:0% 100%;}.avatar-pos-7{background-position:25% 100%;}.avatar-pos-8{background-position:50% 100%;}.avatar-pos-9{background-position:75% 100%;}.avatar-pos-10{background-position:100% 100%;}
.avatar-edit-badge{position:absolute; right:-2px; bottom:-2px; display:grid; place-items:center; width:23px; height:23px; border-radius:50%; color:#07121C; background:#CBFF45; border:2px solid #07121C;}
.avatar-edit-badge .icon{width:11px; height:11px;}
.student-header-actions{display:flex; align-items:center; gap:8px; flex-shrink:0;}
.coach-profile-identity{display:flex; align-items:center; gap:12px; min-width:0;}.coach-profile-identity h1{margin:0 0 3px;}
.social-icon-only{position:relative; display:grid; place-items:center; width:39px; height:39px; padding:0; border:1px solid rgba(113,215,255,.32); border-radius:13px; color:#07121C; background:linear-gradient(145deg,#71D7FF,#9B7BFF); cursor:pointer; box-shadow:0 8px 18px rgba(20,12,55,.28);}
.social-icon-only .icon{width:18px; height:18px;}
.social-icon-only:hover{transform:translateY(-1px); box-shadow:0 10px 22px rgba(42,28,102,.34);}
.social-icon-only.has-alerts{border-color:#CBFF45; box-shadow:0 0 0 2px rgba(203,255,69,.16),0 8px 20px rgba(20,12,55,.30);}
.social-icon-only .social-notification-badge{position:absolute; top:-7px; right:-7px; min-width:19px; height:19px; padding:0 5px; border:2px solid #07121C; font-size:8px;}
.social-notification-badge{display:grid; place-items:center; min-width:24px; height:24px; padding:0 7px; border-radius:999px; background:#CBFF45; color:#07121C; font:700 11px 'IBM Plex Mono';}
.teacher-chat-card{display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px; width:100%; margin:2px 0 15px; padding:13px 14px; border:1px solid rgba(155,123,255,.40); border-radius:17px; color:#F4F7FA; background:linear-gradient(120deg,rgba(39,27,79,.94),rgba(17,54,68,.94)); box-shadow:0 13px 28px rgba(0,7,14,.24); text-align:left; cursor:pointer;}
.teacher-chat-card:hover{transform:translateY(-1px); border-color:rgba(203,255,69,.48);}.teacher-chat-card.is-disabled{opacity:.68; cursor:default; transform:none;}.teacher-chat-copy{display:flex; flex-direction:column; gap:2px; min-width:0;}.teacher-chat-copy small{color:#CBFF45; font:700 8.5px 'IBM Plex Mono'; letter-spacing:.11em;}.teacher-chat-copy b{font-size:13px;}.teacher-chat-copy em{overflow:hidden; color:#9DB2BF; font-size:10px; font-style:normal; text-overflow:ellipsis; white-space:nowrap;}.teacher-chat-action,.teacher-chat-placeholder{position:relative; display:grid; place-items:center; width:38px; height:38px; border-radius:12px; color:#20133E; background:#CBFF45;}.teacher-chat-action strong{position:absolute; top:-7px; right:-7px; display:grid; place-items:center; min-width:19px; height:19px; padding:0 5px; border:2px solid #101A2B; border-radius:999px; color:#07121C; background:#71D7FF; font:700 8px 'IBM Plex Mono';}.teacher-chat-placeholder{color:#A8B9C4; background:rgba(145,178,200,.10);}
.page-heading{align-items:flex-start; margin-bottom:14px;}.page-heading h1{margin:7px 0 0;}
.back-link{display:inline-flex; align-items:center; gap:7px; padding:5px 0; border:0; background:transparent; color:#86D8FA; font-size:11.5px; cursor:pointer;}
.profile-editor-hero,.friend-profile-hero{display:flex; align-items:center; gap:17px; margin-bottom:16px; padding:18px; border:1px solid rgba(155,123,255,.32); border-radius:20px; background:linear-gradient(130deg,rgba(38,73,83,.94),rgba(46,34,91,.86)); box-shadow:0 18px 38px rgba(0,7,14,.28);}
.profile-editor-hero h2,.friend-profile-hero h1{margin:4px 0;}.profile-editor-hero p{margin:0; color:#AFC2CE; font-size:11.5px;}
.profile-editor-kicker{font:700 9px 'IBM Plex Mono'; letter-spacing:.12em; color:#CBFF45;}
.avatar-choice-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin:10px 0 18px;}
.avatar-choice{position:relative; display:grid; place-items:center; padding:4px; border:1px solid transparent; border-radius:16px; background:rgba(7,24,36,.55); cursor:pointer;}
.avatar-choice:hover,.avatar-choice.selected{border-color:#CBFF45; background:rgba(203,255,69,.08);}
.avatar-choice.character-choice{background:linear-gradient(145deg,rgba(58,34,111,.65),rgba(8,35,48,.76));}.avatar-choice.character-choice:hover,.avatar-choice.character-choice.selected{background:linear-gradient(145deg,rgba(98,64,172,.65),rgba(26,66,76,.82));}
.avatar-choice > span:last-child{position:absolute; right:3px; bottom:3px; display:grid; place-items:center; width:19px; height:19px; border-radius:50%; color:#07121C; background:#CBFF45; font-size:11px;}
.avatar-choice:not(.selected) > span:last-child{display:none;}
.profile-photo-upload{margin-bottom:5px;}.profile-upload-note{margin:2px 0 15px; color:#829BAA; font-size:10.5px; line-height:1.4;}
.profile-identity-card{padding:17px;}.profile-photo-priority{display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:13px; padding:15px; border:1px solid rgba(203,255,69,.42); border-radius:17px; background:linear-gradient(120deg,rgba(22,66,71,.92),rgba(41,38,83,.88)); box-shadow:0 13px 28px rgba(0,7,14,.22);}
.profile-photo-preview{display:grid; place-items:center;}.profile-photo-copy{display:flex; flex-direction:column; gap:4px; min-width:0;}.profile-photo-copy b{font-size:13px; color:#F3F8FB;}.profile-photo-copy small{color:#AFC2CE; font-size:10px; line-height:1.4;}.primary-photo-action{display:flex; align-items:center; justify-content:center; min-width:142px; min-height:44px; margin:0; padding:10px 13px; border:0; border-radius:12px; color:#07121C; background:#CBFF45; font-weight:700; cursor:pointer;}.primary-photo-action .icon{width:15px;height:15px;}.priority-note{margin:7px 2px 0;}.profile-choice-divider{display:flex; align-items:center; gap:10px; margin:18px 0 13px; color:#7993A2; font:700 9px 'IBM Plex Mono'; letter-spacing:.1em;}.profile-choice-divider:before,.profile-choice-divider:after{content:''; height:1px; flex:1; background:rgba(145,178,200,.18);}
.username-field{display:flex; align-items:center; border:1px solid rgba(145,178,200,.28); border-radius:10px; background:#081A26; margin-bottom:5px; overflow:hidden;}
.username-field span{padding-left:12px; color:#71D7FF;}.username-field input{margin:0; border:0; box-shadow:none;}
.privacy-switch{display:flex; align-items:flex-start; gap:10px; margin:14px 0 18px; padding:13px; border:1px solid rgba(94,227,182,.22); border-radius:13px; background:rgba(94,227,182,.06); cursor:pointer;}
.privacy-switch input{width:18px; height:18px; margin:2px 0 0; accent-color:#CBFF45;}.privacy-switch span{display:flex; flex-direction:column; gap:4px;}.privacy-switch b{font-size:12px;}.privacy-switch small{color:#91A9B7; font-size:10.5px; line-height:1.45;}

/* Selector real del banco: se expande hacia abajo y no abre el teclado */
.simple-bank-picker{width:100%;}
.simple-bank-picker .exercise-bank-combo{grid-template-columns:minmax(0,1fr) 78px;}
.simple-bank-picker .exercise-bank-direct-input{font-weight:600;}
.simple-bank-search-btn{width:78px; gap:6px; color:#08131C; background:linear-gradient(135deg,#71D7FF,#9B7BFF); border-color:rgba(188,226,255,.55); box-shadow:0 8px 20px rgba(113,215,255,.16);}
.simple-bank-search-btn:hover,.simple-bank-search-btn[aria-expanded="true"]{border-color:#C8F1FF; box-shadow:0 0 0 3px rgba(113,215,255,.12),0 9px 24px rgba(113,215,255,.18);}
.simple-bank-search-btn .icon{width:16px; height:16px; color:#07131C;}
.simple-bank-search-btn > span{font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.04em;}
.simple-bank-panel{position:relative; z-index:5; max-height:430px; overflow-y:auto; margin-top:7px; padding:8px; border:1px solid rgba(113,215,255,.34); border-radius:15px; background:#071824; box-shadow:0 16px 35px rgba(0,4,10,.50); scrollbar-width:thin; scrollbar-color:#31566C transparent;}
.simple-bank-title{display:flex; align-items:center; gap:9px; position:sticky; top:-8px; z-index:2; padding:11px 10px; margin:-8px -8px 4px; color:#B9CCD7; background:#0A1F2D; border-bottom:1px solid rgba(113,215,255,.13); font-size:10.5px;}
.simple-bank-title > span{display:flex; flex-direction:column; gap:2px;}
.simple-bank-title b{color:#EAF8FF; font-size:11px;}
.simple-bank-title small{color:#8299A8; font-size:8.5px;}
.simple-bank-title .icon{color:#71D7FF;}.bank-add-confirm{width:100%; margin-top:9px; justify-content:center; min-height:42px;}
.simple-bank-empty{display:flex; flex-direction:column; align-items:center; gap:5px; padding:22px 13px; color:#8299A8; text-align:center;}
.simple-bank-empty b{color:#DCE8EE; font-family:'Oswald'; font-size:14px;}
.simple-bank-empty span{max-width:260px; font-size:9px; line-height:1.4;}

/* Comunidad */
.social-search-card{margin-bottom:18px; padding:16px; border:1px solid rgba(113,215,255,.27); border-radius:18px; background:linear-gradient(135deg,rgba(14,48,61,.96),rgba(34,28,70,.90));}
.social-search-title{display:flex; gap:10px; align-items:flex-start; margin-bottom:12px;}.social-search-title > .icon{color:#71D7FF; margin-top:2px;}.social-search-title > div{display:flex; flex-direction:column; gap:3px;}.social-search-title b{font-size:13px;}.social-search-title small{color:#9EB2BF; font-size:10.5px; line-height:1.4;}
.social-search-row{display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px;}.social-search-row input{margin:0;}
#social-search-results{margin-top:10px;}.social-section{margin:0 0 20px;}.social-section h2{display:flex; align-items:center; gap:7px; margin:0 0 9px; font-size:15px;}.social-section h2 span{display:grid; place-items:center; min-width:21px; height:21px; padding:0 6px; border-radius:999px; color:#07121C; background:#71D7FF; font:700 9px 'IBM Plex Mono';}
.social-alert-panel{padding:14px; border:1px solid rgba(203,255,69,.40); border-radius:17px; background:linear-gradient(120deg,rgba(34,65,59,.86),rgba(39,34,77,.86));}.social-alert-heading{display:flex; align-items:flex-start; gap:10px; margin-bottom:11px;}.social-alert-heading h2{margin:0 0 3px;}.social-alert-heading p{margin:0; color:#AFC2CE; font-size:10px; line-height:1.4;}.social-alert-icon{display:grid; place-items:center; width:36px; height:36px; border-radius:11px; color:#07121C; background:#CBFF45;}.social-alert-icon .icon{width:17px;height:17px;}
.social-person-card{display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:11px; margin-bottom:8px; padding:11px; border:1px solid rgba(145,178,200,.16); border-radius:14px; background:linear-gradient(105deg,rgba(14,39,53,.96),rgba(15,31,48,.96));}
.social-person-card.is-friend{border-color:rgba(94,227,182,.19);}.social-person-copy{display:flex; flex-direction:column; min-width:0; gap:3px;}.social-person-copy b{overflow:hidden; color:#F3F8FB; font-size:12.5px; text-overflow:ellipsis; white-space:nowrap;}.social-person-copy small{overflow:hidden; color:#88A2B2; font-size:10px; text-overflow:ellipsis; white-space:nowrap;}.social-person-copy em{color:#CBFF45; font-size:9.5px; font-style:normal;}
.social-person-link{padding:0; border:0; background:transparent; text-align:left; cursor:pointer;}.social-card-actions{display:flex; align-items:center; gap:6px;}.request-pending{padding:6px 8px; border-radius:8px; color:#B9A9FF; background:rgba(155,123,255,.11); font-size:9.5px; white-space:nowrap;}.btn-ghost.compact{padding:7px 9px; font-size:10px;}.icon-action{display:grid; place-items:center; width:36px; height:36px; border:1px solid rgba(113,215,255,.24); border-radius:11px; color:#71D7FF; background:rgba(113,215,255,.08); cursor:pointer;}.social-empty{border:1px dashed rgba(145,178,200,.18); border-radius:14px;}.compact-loading{padding:14px;}
.friend-chat-action,.teacher-student-chat-action{position:relative;}.friend-chat-action > span,.teacher-student-chat-action > span{position:absolute; top:-6px; right:-6px; display:grid; place-items:center; min-width:18px; height:18px; padding:0 5px; border:2px solid #0B1D29; border-radius:999px; color:#07121C; background:#CBFF45; font:700 8px 'IBM Plex Mono';}
.friend-profile-hero{display:grid; grid-template-columns:auto minmax(0,1fr) auto;}.friend-username{color:#89D8F9; font-size:11px;}.friend-count{display:flex; align-items:center; gap:5px; margin-top:7px; color:#A8BAC6; font-size:10.5px;}.friend-count .icon{width:12px;}.friend-bio{color:#C2D0D8; line-height:1.55;}.privacy-closed{text-align:center; color:#AFC0CB;}.friend-safety-actions{display:flex; justify-content:center; gap:22px; margin:20px 0 8px;}.danger-text{color:#FF8E94;}.readonly-session{margin-bottom:10px;}

/* Chat privado */
.chat-shell{display:flex; flex-direction:column; min-height:calc(100vh - 145px);}.chat-header{display:grid; grid-template-columns:auto auto minmax(0,1fr); align-items:center; gap:10px; padding-bottom:12px; border-bottom:1px solid rgba(145,178,200,.14);}.chat-header .back-link{width:30px; height:36px; justify-content:center;}.chat-header > div{display:flex; flex-direction:column; gap:2px;}.chat-header b{font-size:13px;}.chat-header small{color:#829BAA; font-size:9.5px;}.chat-safety-note{margin:10px 0; color:#78909F; font-size:9.5px; text-align:center;}.chat-messages{flex:1; max-height:58vh; min-height:300px; overflow-y:auto; padding:12px 3px;}.chat-empty{padding:50px 20px; color:#7F98A7; text-align:center; font-size:11px;}.chat-bubble{display:flex; flex-direction:column; width:max-content; max-width:78%; margin:0 0 8px; padding:9px 11px 6px; border-radius:14px; color:#EAF4F8; background:#132D3C; font-size:12px; line-height:1.45;}.chat-bubble.mine{margin-left:auto; border-bottom-right-radius:4px; background:linear-gradient(125deg,#315E73,#554790);}.chat-bubble.theirs{border-bottom-left-radius:4px;}.chat-bubble time{align-self:flex-end; margin-top:3px; color:rgba(235,246,250,.60); font-size:8px;}.chat-compose{display:grid; grid-template-columns:minmax(0,1fr) 45px; gap:8px; position:sticky; bottom:0; padding:10px 0 max(10px,env(safe-area-inset-bottom)); background:linear-gradient(transparent,#07121C 20%);}.chat-compose textarea{min-height:45px; max-height:100px; margin:0; resize:none;}.chat-compose button{display:grid; place-items:center; border:0; border-radius:13px; color:#07121C; background:#CBFF45; cursor:pointer;}.chat-compose button .icon{transform:rotate(180deg);}

@media (max-width:480px){
  .student-home-header{display:flex;}.student-profile-identity{gap:9px;}.avatar-home{width:55px;height:55px;}.student-profile-greeting h1{font-size:18px!important;}.switch-user{padding:7px 8px;font-size:10px;}.student-header-actions{gap:6px;}.social-icon-only{width:36px;height:36px;border-radius:12px;}
  .profile-editor-hero{padding:15px;}.avatar-profile-large{width:86px;height:86px;}.profile-photo-priority{grid-template-columns:auto 1fr;}.primary-photo-action{grid-column:1/-1;width:100%;}.avatar-choice-grid{grid-template-columns:repeat(5,1fr);gap:5px;}.avatar-choice-size{width:52px;height:52px;}.avatar-choice{padding:2px;border-radius:12px;}
  .simple-bank-panel{max-height:390px;}.simple-bank-panel .exercise-bank-option{grid-template-columns:64px minmax(0,1fr) 16px; min-height:70px;}.simple-bank-panel .exercise-bank-option img{width:64px;}
  .friend-profile-hero{grid-template-columns:auto 1fr;}.friend-profile-hero > .btn-sm{grid-column:1/-1;width:100%;justify-content:center;}.social-card-actions .btn-sm{padding:7px 9px;font-size:10px;}.request-pending{white-space:normal;text-align:center;max-width:92px;}
  .chat-messages{max-height:60vh;}
}

/* ============================================================
   Kilo (mascota) + animaciones de serie y récord personal
   ============================================================ */
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}

/* Kilo base (versión atleta) */
.kilo{display:inline-block; line-height:0;}
.kilo svg{overflow:visible; display:block;}
.kilo .kilo-cuerpo{transform-box:view-box; transform-origin:120px 274px;}
.kilo .k-ba-izq,.kilo .k-ba-der,.kilo .k-bf,.kilo .k-lineas,.kilo .k-boca-abierta,.kilo .k-ojos-cerrados,.kilo .k-cara-fuerza,.kilo .kilo-corona{opacity:0;}
.kilo .kilo-parpado{transform-box:fill-box; transform-origin:center; transform:scaleY(0); animation:kiloParpadeo 4.5s infinite;}
.kilo .kilo-pupilas{transform-box:view-box;}
@keyframes kiloParpadeo{0%,94%,100%{transform:scaleY(0);} 96%{transform:scaleY(1);}}
@keyframes kiloFlota{50%{transform:translateY(-6px);}}
.kilo--normal .kilo-cuerpo{animation:kiloFlota 2.6s ease-in-out infinite;}

/* Celebra: salta con brazos arriba → saca bíceps con cara de fuerza → vuelve a la normalidad */
.kilo--celebra .kilo-cuerpo{animation:kiloCelebraCuerpo 3.4s ease-in-out both, kiloFlota 2.6s 3.4s ease-in-out infinite;}
.kilo--celebra .k-ba-izq,.kilo--celebra .k-ba-der,.kilo--celebra .k-boca-abierta{animation:kiloFaseArriba 3.4s linear both;}
.kilo--celebra .k-bf,.kilo--celebra .k-cara-fuerza,.kilo--celebra .k-lineas{animation:kiloFaseFuerza 3.4s linear both;}
.kilo--celebra .k-bn-izq,.kilo--celebra .k-bn-der,.kilo--celebra .k-boca{animation:kiloFaseNormal 3.4s linear both;}
.kilo--celebra .k-cara-normal{animation:kiloFaseNoFuerza 3.4s linear both;}
.kilo--celebra .kilo-corona{animation:kiloCoronaFase 3.4s ease both;}
@keyframes kiloFaseArriba{0%,37.9%{opacity:1;} 38%,100%{opacity:0;}}
@keyframes kiloFaseFuerza{0%,37.9%{opacity:0;} 38%,77.9%{opacity:1;} 78%,100%{opacity:0;}}
@keyframes kiloFaseNormal{0%,77.9%{opacity:0;} 78%,100%{opacity:1;}}
@keyframes kiloFaseNoFuerza{0%,37.9%{opacity:1;} 38%,77.9%{opacity:0;} 78%,100%{opacity:1;}}
@keyframes kiloCoronaFase{0%,86%{opacity:1; transform:none;} 100%{opacity:0; transform:translateY(-10px);}}
@keyframes kiloCelebraCuerpo{
  0%{transform:none;} 5%{transform:scale(1.07,.93);} 13%{transform:translateY(-26px) scale(.97,1.04);} 20%{transform:none;}
  24%{transform:scale(1.06,.94);} 31%{transform:translateY(-20px);} 37%{transform:none;}
  43%{transform:scale(1.05,.96);} 48%{transform:none;} 54%{transform:scale(1.05,.96);} 59%{transform:none;} 65%{transform:scale(1.05,.96);} 70%{transform:none;}
  100%{transform:none;}}

/* Te anima: saluda con un brazo */
.kilo--anima .kilo-cuerpo{animation:kiloAnima .6s ease-in-out infinite alternate;}
.kilo--anima .k-bn-der{opacity:0;}
.kilo--anima .k-ba-der{opacity:1; transform-box:view-box; transform-origin:184px 150px; animation:kiloSaluda .6s ease-in-out infinite alternate;}
@keyframes kiloAnima{to{transform:translateY(-6px);}}
@keyframes kiloSaluda{from{transform:rotate(-10deg);} to{transform:rotate(14deg);}}

/* Descanso: ojos cerrados y respira */
.kilo--descanso .k-ojos{opacity:0;}
.kilo--descanso .k-ojos-cerrados{opacity:1;}
.kilo--descanso .kilo-cuerpo{animation:kiloRespira 3.2s ease-in-out infinite;}
@keyframes kiloRespira{50%{transform:scale(1.03,.97);}}

/* Te espera: mira a los lados */
.kilo--espera .kilo-pupilas{animation:kiloMira 3s ease-in-out infinite;}
.kilo--espera .kilo-cuerpo{animation:kiloInclina 3s ease-in-out infinite;}
@keyframes kiloMira{0%,100%{transform:translateX(0);} 25%{transform:translateX(-6px);} 60%{transform:translateX(6px);}}
@keyframes kiloInclina{25%{transform:rotate(-3deg);} 60%{transform:rotate(3deg);}}

/* Estados vacíos con Kilo */
.empty-kilo{display:flex; flex-direction:column; align-items:center; gap:10px;}
.empty-kilo-fig{opacity:.95;}

/* Corona fija de PR */
.pill.pr-corona{display:inline-flex; align-items:center; gap:4px; color:#07121C; font-family:'Oswald',sans-serif; font-weight:600; letter-spacing:.04em;}
.pr-corona-mini{width:13px; height:13px; fill:#07121C; flex-shrink:0;}

/* Serie recién guardada */
.set-line.set-nueva{animation:serieEntra .45s cubic-bezier(.2,1.1,.4,1);}
@keyframes serieEntra{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:none;}}
.set-line.set-pr-nueva .pill.pr-corona{animation:coronaLlega .5s 1.35s cubic-bezier(.3,1.6,.5,1) both, coronaBrilla 1.6s 1.85s ease-out 2;}
@keyframes coronaLlega{from{opacity:0; transform:scale(.3);} to{opacity:1; transform:scale(1);}}
@keyframes coronaBrilla{0%{box-shadow:0 0 0 0 rgba(255,209,102,.7);} 100%{box-shadow:0 0 0 10px rgba(255,209,102,0);}}
.btn-sm.serie-ok{animation:serieOk .9s ease; }
@keyframes serieOk{0%{background:var(--surface-2);} 20%{background:var(--green); color:#07121C; transform:scale(1.04);} 70%{background:var(--green); color:#07121C;} 100%{transform:none;}}
.sonido-toggle{padding:6px 10px; font-size:15px; line-height:1;}

/* Celebración de récord personal (capa sobre la pantalla, no bloquea toques) */
.pr-celebracion{position:fixed; inset:0; z-index:200; pointer-events:none; display:grid; place-items:center; transition:opacity .35s ease;}
.pr-celebracion.pr-sale{opacity:0;}
.pr-destello{position:absolute; inset:0; -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); background:radial-gradient(circle at 50% 45%, rgba(255,209,102,.40), rgba(7,18,28,.86) 58%); animation:prDestello .9s ease-out forwards;}
@keyframes prDestello{0%{opacity:0;} 18%{opacity:1;} 100%{opacity:.92;}}
.pr-centro{position:relative; display:flex; flex-direction:column; align-items:center; gap:6px; animation:prCentro .5s cubic-bezier(.2,1.2,.4,1) both;}
@keyframes prCentro{from{opacity:0; transform:scale(.6);} to{opacity:1; transform:none;}}
.pr-corona-grande{width:84px; height:84px; fill:#FFD166; stroke:#07121C; stroke-width:2.5; stroke-linejoin:round; filter:drop-shadow(0 0 18px rgba(255,209,102,.8)); animation:prCorona .9s cubic-bezier(.2,1.3,.4,1) both;}
@keyframes prCorona{0%{transform:scale(.2) rotate(-20deg);} 60%{transform:scale(1.2) rotate(6deg);} 100%{transform:scale(1) rotate(0);}}
.pr-texto{font-family:'Oswald',sans-serif; font-weight:700; font-size:34px; letter-spacing:.03em; text-transform:uppercase; color:#F7FAFF; text-shadow:0 2px 18px rgba(0,0,0,.5);}
.pr-ejercicio{font-family:'IBM Plex Mono',monospace; font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:#07121C; background:linear-gradient(110deg,#CBFF45,#92F594); padding:4px 12px; border-radius:20px; max-width:80vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.pr-chispa{position:absolute; left:50%; top:45%; width:8px; height:8px; border-radius:50%; opacity:0; animation:prChispa 1s .1s ease-out forwards;}
@keyframes prChispa{0%{opacity:1; transform:translate(0,0) scale(1);} 100%{opacity:0; transform:translate(var(--dx),var(--dy)) scale(.3);}}

/* Racha semanal */
.stat-tile.racha-sube .num{display:inline-block; animation:rachaSalta .7s .3s cubic-bezier(.3,1.6,.5,1) both;}
.stat-tile.racha-sube{animation:rachaBrillo 1.4s .3s ease-out both;}
@keyframes rachaSalta{0%{transform:scale(.6); opacity:.4;} 60%{transform:scale(1.35); color:#CBFF45;} 100%{transform:scale(1);}}
@keyframes rachaBrillo{0%{box-shadow:0 0 0 0 rgba(155,123,255,.6);} 100%{box-shadow:0 0 0 14px rgba(155,123,255,0);}}
.calendar-day.cal-enciende{animation:calEnciende .45s cubic-bezier(.3,1.5,.5,1) both; animation-delay:calc(var(--i, 0) * 70ms + 150ms);}
@keyframes calEnciende{0%{transform:scale(.4); opacity:0;} 70%{transform:scale(1.18); opacity:1;} 100%{transform:scale(1);}}

/* Chat: mensaje nuevo (recibido o enviado) y aviso sin leer del profe */
.chat-bubble.chat-nueva{animation:chatEntra .42s cubic-bezier(.2,1.25,.4,1) both;}
.chat-bubble.theirs.chat-nueva{transform-origin:0% 100%;}
.chat-bubble.mine.chat-nueva{transform-origin:100% 100%;}
@keyframes chatEntra{from{opacity:0; transform:translateY(12px) scale(.9);} to{opacity:1; transform:none;}}
.teacher-chat-action strong{animation:avisoAparece .4s cubic-bezier(.3,1.6,.5,1) both, avisoLate 1.8s .5s ease-out 3;}
@keyframes avisoAparece{from{transform:scale(0);} to{transform:scale(1);}}
@keyframes avisoLate{0%{box-shadow:0 0 0 0 rgba(113,215,255,.65);} 100%{box-shadow:0 0 0 9px rgba(113,215,255,0);}}

/* Resumen de sesión terminada */
.resumen-sesion{position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px; padding:46px 18px 22px; border-radius:18px; border:1px solid rgba(155,123,255,.35); background:radial-gradient(circle at 50% 18%, rgba(155,123,255,.28), transparent 55%), linear-gradient(160deg, rgba(24,52,69,.92), rgba(16,36,49,.92)); box-shadow:0 16px 40px rgba(0,6,12,.28);}
.resumen-confeti-capa{position:absolute; inset:0; pointer-events:none;}
.resumen-confeti{position:absolute; top:-14px; width:8px; height:12px; border-radius:2px; opacity:0; animation:resumenConfeti 1.9s ease-in forwards; animation-delay:var(--d, 0s);}
@keyframes resumenConfeti{0%{opacity:1; transform:translateY(0) rotate(0);} 100%{opacity:0; transform:translateY(520px) rotate(var(--r, 360deg));}}
.resumen-kilo{position:relative; margin-bottom:2px; animation:resumenEntra .5s cubic-bezier(.2,1.3,.4,1) both;}
.resumen-eyebrow{margin:0; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:#71D7FF;}
.resumen-titulo{margin:0 0 6px; font-family:'Oswald',sans-serif; font-size:30px; line-height:1.05; text-transform:uppercase; animation:resumenEntra .5s .1s cubic-bezier(.2,1.3,.4,1) both;}
.resumen-volumen{display:flex; align-items:baseline; justify-content:center; gap:6px; animation:resumenEntra .5s .2s cubic-bezier(.2,1.3,.4,1) both;}
.resumen-volumen-num{font-family:'Oswald',sans-serif; font-weight:700; font-size:54px; line-height:1; font-variant-numeric:tabular-nums; background:linear-gradient(100deg,#CBFF45,#92F594); -webkit-background-clip:text; background-clip:text; color:transparent;}
.resumen-volumen-kg{font-family:'Oswald',sans-serif; font-size:22px; color:#A7BAC7;}
.resumen-volumen-label{font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#A7BAC7;}
.resumen-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; width:100%; margin-top:14px; animation:resumenEntra .5s .3s ease both;}
.resumen-stats div{display:flex; flex-direction:column; gap:2px; padding:10px 6px; border-radius:12px; background:rgba(7,18,28,.55); border:1px solid rgba(155,189,211,.18);}
.resumen-stats b{font-family:'Oswald',sans-serif; font-size:24px; color:#F7FAFF;}
.resumen-stats span{font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:#A7BAC7;}
.resumen-prs{width:100%; margin-top:10px; padding:12px; border-radius:12px; border:1px solid rgba(255,209,102,.35); background:rgba(255,209,102,.07); animation:resumenEntra .5s .45s ease both;}
.resumen-prs-titulo{font-family:'Oswald',sans-serif; font-size:14px; letter-spacing:.06em; text-transform:uppercase; color:#FFD166; margin-bottom:8px;}
.resumen-prs-lista{display:flex; flex-wrap:wrap; justify-content:center; gap:6px;}
.resumen-sesion .btn{margin-top:16px; animation:resumenEntra .5s .55s ease both;}
@keyframes resumenEntra{from{opacity:0; transform:translateY(14px) scale(.96);} to{opacity:1; transform:none;}}

/* Menos movimiento: sin saltos ni chispas, solo la información */
@media (prefers-reduced-motion: reduce){
  .kilo .kilo-cuerpo,.kilo .kilo-parpado,.kilo .kilo-pupilas,.kilo .k-ba-der{animation:none !important;}
  .kilo--celebra .k-ba-izq,.kilo--celebra .k-ba-der,.kilo--celebra .k-bf,.kilo--celebra .k-cara-fuerza,.kilo--celebra .k-lineas,.kilo--celebra .k-boca-abierta,.kilo--celebra .kilo-corona{animation:none !important; opacity:0 !important;}
  .kilo--celebra .k-bn-izq,.kilo--celebra .k-bn-der,.kilo--celebra .k-boca,.kilo--celebra .k-cara-normal{animation:none !important; opacity:1 !important;}
  .set-line.set-nueva,.set-line.set-pr-nueva .pill.pr-corona,.btn-sm.serie-ok{animation:none !important;}
  .stat-tile.racha-sube,.stat-tile.racha-sube .num,.calendar-day.cal-enciende,.chat-bubble.chat-nueva,.teacher-chat-action strong{animation:none !important;}
  .resumen-confeti{display:none;}
  .resumen-kilo,.resumen-titulo,.resumen-volumen,.resumen-stats,.resumen-prs,.resumen-sesion .btn{animation:none !important;}
  .pr-chispa{display:none;}
  .pr-destello,.pr-centro,.pr-corona-grande{animation:none !important; opacity:1;}
}
.pill.pill-completada{background:rgba(94,227,182,.16); border-color:rgba(94,227,182,.55); color:#5EE3B6; font-weight:600;}

/* ---------- Buzón del profesor ---------- */
.coach-inbox-btn{position:relative; display:grid; place-items:center; width:40px; height:40px; border-radius:12px; border:1px solid rgba(203,255,69,.35); background:rgba(203,255,69,.10); color:#CBFF45; cursor:pointer;}
.coach-inbox-btn strong{position:absolute; top:-7px; right:-7px; min-width:20px; height:20px; padding:0 5px; display:grid; place-items:center; border-radius:999px; background:#FF6B72; color:#fff; font:700 10px 'IBM Plex Mono',monospace; border:2px solid #07121C; animation:avisoAparece .4s cubic-bezier(.3,1.6,.5,1) both, avisoLateRojo 1.8s .5s ease-out 3;}
.training-alert-btn{color:#8DEBFF;border-color:rgba(141,235,255,.38);background:rgba(67,184,255,.10);}
.training-alerts-head{display:flex;align-items:center;gap:12px;margin:12px 0 18px}.training-alerts-head h1{font-size:23px;margin:0 0 3px}.training-alerts-head p{margin:0;color:var(--chalk-dim);font-size:12px}.training-alerts-icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;color:#07121C;background:linear-gradient(135deg,#8DEBFF,#AE79FF);box-shadow:0 10px 26px rgba(100,100,255,.24)}.training-alerts-icon .icon{width:21px;height:21px}.training-alerts-list{display:grid;gap:9px}.training-alert-item{width:100%;display:flex;align-items:center;gap:11px;padding:13px;border:1px solid rgba(126,154,177,.18);border-radius:15px;background:rgba(13,34,47,.88);color:var(--chalk);text-align:left;cursor:pointer}.training-alert-item.is-unread{border-color:rgba(141,235,255,.52);background:linear-gradient(120deg,rgba(20,57,75,.95),rgba(45,32,79,.91));box-shadow:0 7px 20px rgba(0,0,0,.18)}.training-alert-state{flex:0 0 38px;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:rgba(141,235,255,.12);color:#8DEBFF}.training-alert-state.fin{background:rgba(203,255,69,.12);color:#CBFF45}.training-alert-copy{display:grid;gap:3px;min-width:0;flex:1}.training-alert-copy b{font-size:14px}.training-alert-copy small{font-size:11px;color:var(--chalk-dim)}.training-alert-time{display:grid;justify-items:end;gap:5px;font:500 9px 'IBM Plex Mono';color:var(--chalk-dim)}.training-alert-time i{font-style:normal;font-weight:800;font-size:8px;color:#07121C;background:#8DEBFF;border-radius:999px;padding:3px 6px}
@keyframes avisoLateRojo{0%{box-shadow:0 0 0 0 rgba(255,107,114,.6);} 100%{box-shadow:0 0 0 9px rgba(255,107,114,0);}}
.buzon-head{display:flex; align-items:center; gap:12px; margin:6px 0 16px;}
.buzon-head-icon{display:grid; place-items:center; width:44px; height:44px; border-radius:13px; background:rgba(203,255,69,.12); color:#CBFF45;}
.buzon-head-icon .icon{width:22px; height:22px;}
.buzon-lista{display:flex; flex-direction:column; gap:8px;}
.buzon-item{display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px; width:100%; padding:12px 14px; border-radius:14px; border:1px solid var(--line); background:var(--surface); color:var(--chalk); text-align:left; cursor:pointer;}
.buzon-item.tiene-nuevos{border-color:rgba(203,255,69,.45); background:linear-gradient(120deg,rgba(203,255,69,.08),var(--surface) 60%);}
.buzon-texto{display:flex; flex-direction:column; gap:3px; min-width:0;}
.buzon-texto b{font-size:14px;}
.buzon-texto small{color:var(--chalk-dim); font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.buzon-item.tiene-nuevos .buzon-texto small{color:#DCE6EE; font-weight:600;}
.buzon-meta{display:flex; flex-direction:column; align-items:flex-end; gap:5px;}
.buzon-meta time{font-size:11px; color:var(--chalk-dim);}
.buzon-meta strong{min-width:20px; height:20px; padding:0 6px; display:grid; place-items:center; border-radius:999px; background:#CBFF45; color:#07121C; font:700 10.5px 'IBM Plex Mono',monospace;}

/* ---------- Logros ---------- */
.section-achievements{--section-accent:#FFD166; background:linear-gradient(125deg,rgba(255,209,102,.16),#12283A 64%);}
.logros-conteo{margin-left:8px; font-family:'IBM Plex Mono',monospace; font-size:11px; color:#FFD166; letter-spacing:.04em;}
.logros-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:10px; margin-bottom:16px;}
.logro{display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px; padding:14px 10px 12px; border-radius:14px; border:1px solid var(--line); background:var(--surface);}
.logro-icono{font-size:30px; line-height:1; margin-bottom:2px;}
.logro b{font-family:'Oswald',sans-serif; font-size:14px; letter-spacing:.02em;}
.logro small{font-size:11px; color:var(--chalk-dim); line-height:1.35;}
.logro-estado{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--chalk-dim); margin-top:2px;}
.logro.desbloqueado{border-color:rgba(255,209,102,.5); background:radial-gradient(circle at 50% 0,rgba(255,209,102,.18),transparent 65%),var(--surface); box-shadow:0 0 0 1px rgba(255,209,102,.12),0 8px 22px rgba(255,209,102,.10);}
.logro.desbloqueado .logro-estado{color:#FFD166; font-weight:600;}
.logro.bloqueado .logro-icono{filter:grayscale(1); opacity:.45;}
.logro.bloqueado b{color:var(--chalk-dim);}
.logro-barra{width:100%; height:5px; border-radius:5px; background:var(--surface-2); overflow:hidden; margin-top:4px;}
.logro-barra i{display:block; height:100%; border-radius:5px; background:linear-gradient(90deg,#9B7BFF,#71D7FF);}
.opinar-link{display:block; margin:6px auto 18px; font-size:12px;}

/* Celebración de logro nuevo */
.logro-celebracion{position:fixed; inset:0; z-index:220; display:grid; place-items:center; padding:20px; background:rgba(7,18,28,.78); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); animation:logroFondo .3s ease both; transition:opacity .25s ease;}
.logro-celebracion.sale{opacity:0;}
@keyframes logroFondo{from{opacity:0;}}
.logro-celebracion-card{width:min(340px,100%); text-align:center; padding:26px 20px 20px; border-radius:20px; border:1px solid rgba(255,209,102,.45); background:radial-gradient(circle at 50% 10%,rgba(155,123,255,.30),transparent 60%),linear-gradient(160deg,#183445,#102431); box-shadow:0 20px 50px rgba(0,6,12,.5); animation:resumenEntra .5s cubic-bezier(.2,1.3,.4,1) both;}
.logro-celebracion-kilo{display:flex; justify-content:center; margin-top:10px;}
.logro-celebracion-eyebrow{margin:6px 0 0; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#FFD166;}
.logro-celebracion-icono{font-size:44px; margin:6px 0 2px; animation:logroIcono .6s .2s cubic-bezier(.3,1.6,.5,1) both;}
@keyframes logroIcono{from{transform:scale(.2) rotate(-20deg); opacity:0;} to{transform:none; opacity:1;}}
.logro-celebracion-card h2{margin:0; font-family:'Oswald',sans-serif; font-size:26px; text-transform:uppercase;}
.logro-celebracion-desc{margin:4px 0 0; color:var(--chalk-dim); font-size:13.5px;}
.logro-celebracion-extra{margin:8px 0 0; color:#71D7FF; font-size:12px;}
.logro-celebracion-card .btn{margin-top:16px;}
@media (prefers-reduced-motion: reduce){
  .coach-inbox-btn strong,.logro-celebracion,.logro-celebracion-card,.logro-celebracion-icono{animation:none !important;}
}

/* ---------- Rutina enviada (profe) y rutina nueva (alumno) ---------- */
.rutina-enviada{position:fixed; inset:0; z-index:230; display:grid; place-items:center; padding:20px; background:rgba(7,18,28,.62); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); animation:logroFondo .25s ease both; transition:opacity .3s ease;}
.rutina-enviada.sale{opacity:0;}
.rutina-enviada-card{width:min(300px,100%); text-align:center; padding:22px 18px 20px; border-radius:20px; border:1px solid rgba(203,255,69,.4); background:radial-gradient(circle at 50% 0%,rgba(203,255,69,.14),transparent 60%),linear-gradient(160deg,#183445,#102431); box-shadow:0 20px 50px rgba(0,6,12,.5); animation:resumenEntra .45s cubic-bezier(.2,1.3,.4,1) both;}
.rutina-enviada-escena{position:relative; height:120px; display:flex; align-items:flex-end; justify-content:center;}
.rutina-enviada-kilo{transform:translateX(-46px);}
.rutina-enviada-sobre{position:absolute; left:50%; bottom:34px; width:44px; height:33px; margin-left:4px; animation:sobreVuela 1.3s .35s cubic-bezier(.45,0,.3,1) both;}
.rutina-enviada-check{position:absolute; left:50%; top:22px; margin-left:18px; width:40px; height:40px; border-radius:50%; display:grid; place-items:center; background:#CBFF45; color:#07121C; font-weight:800; font-size:22px; box-shadow:0 0 0 6px rgba(203,255,69,.18); animation:checkAparece .45s 1.45s cubic-bezier(.3,1.6,.5,1) both;}
.rutina-enviada-titulo{margin:12px 0 0; font-family:'Oswald',sans-serif; font-size:24px; font-weight:700; text-transform:uppercase; animation:resumenEntra .4s 1.5s ease both;}
.rutina-enviada-nombre{margin:2px 0 0; color:#71D7FF; font-size:14px; animation:resumenEntra .4s 1.6s ease both;}
@keyframes sobreVuela{
  0%{transform:translate(0,0) scale(.6) rotate(0); opacity:0;}
  15%{transform:translate(0,-4px) scale(1) rotate(-4deg); opacity:1;}
  70%{transform:translate(70px,-70px) scale(.8) rotate(14deg); opacity:1;}
  100%{transform:translate(120px,-120px) scale(.3) rotate(24deg); opacity:0;}
}
@keyframes checkAparece{from{transform:scale(0); opacity:0;} to{transform:scale(1); opacity:1;}}

.rutina-nueva{perspective:900px;}
.rutina-nueva-flip{position:relative; width:min(340px,100%); display:grid; transform-style:preserve-3d; animation:rutinaGira .9s .25s cubic-bezier(.3,1.25,.5,1) both;}
.rutina-nueva-cara{grid-area:1/1; -webkit-backface-visibility:hidden; backface-visibility:hidden;}
.rutina-nueva-dorso{display:grid; place-items:center; border-radius:20px; border:1px solid rgba(203,255,69,.45); background:linear-gradient(160deg,#243e52,#102431); transform:rotateY(180deg);}
.rutina-nueva-dorso svg{width:96px; height:72px;}
.rutina-nueva-frente{animation:none; width:auto;}
.rutina-nueva-frente h2{margin-top:4px;}
.rutina-nueva-datos{margin:8px 0 0; font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.08em; color:#CBFF45;}
@keyframes rutinaGira{from{transform:rotateY(-180deg) scale(.85);} to{transform:rotateY(0) scale(1);}}

@media (prefers-reduced-motion: reduce){
  .rutina-enviada-card,.rutina-enviada-titulo,.rutina-enviada-nombre,.rutina-enviada-check,.rutina-nueva-flip{animation:none;}
  .rutina-enviada-sobre{display:none;}
}

/* ---------- Contador de descanso (solo con botón) ---------- */
.fab-descanso{position:fixed; bottom:16px; left:16px; height:44px; padding:0 16px; border-radius:22px; display:flex; align-items:center; gap:6px; background:#183445; color:#F7FAFF; border:1px solid rgba(113,215,255,.45); font-family:'Oswald',sans-serif; font-size:13px; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; z-index:45; box-shadow:0 4px 14px rgba(0,0,0,.35);}
.fab-descanso span{font-size:16px;}
body.descanso-activo .fab-descanso, body.descanso-activo .fab-superserie{bottom:92px;}
body.descanso-activo .wrap{padding-bottom:150px;}

.descanso-sheet{position:fixed; inset:0; z-index:240; display:flex; align-items:flex-end; justify-content:center; background:rgba(7,18,28,.6); animation:logroFondo .2s ease both;}
.descanso-sheet-panel{width:min(480px,100%); padding:20px 18px calc(18px + env(safe-area-inset-bottom)); border-radius:20px 20px 0 0; background:linear-gradient(160deg,#183445,#102431); border:1px solid rgba(113,215,255,.3); border-bottom:none; box-shadow:0 -10px 40px rgba(0,6,12,.5); animation:descansoSube .3s cubic-bezier(.2,1.1,.4,1) both;}
.descanso-sheet-titulo{margin:0 0 12px; text-align:center; font-family:'Oswald',sans-serif; font-size:18px; text-transform:uppercase; letter-spacing:.04em;}
.descanso-sheet-ajuste{display:flex; align-items:center; justify-content:center; gap:18px; margin-bottom:14px;}
.descanso-sheet-tiempo{min-width:140px; text-align:center; font-family:'Oswald',sans-serif; font-size:52px; font-weight:700; color:#CBFF45; font-variant-numeric:tabular-nums;}
.descanso-ajuste-btn{width:56px; height:56px; border-radius:50%; border:1px solid rgba(155,189,211,.35); background:rgba(7,18,28,.5); color:#F7FAFF; font-size:17px; font-weight:700; cursor:pointer;}
.descanso-rapidos{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:16px;}
.descanso-rapido{padding:10px 0; border-radius:10px; border:1px solid rgba(155,189,211,.3); background:rgba(7,18,28,.45); color:#F7FAFF; font-size:14px; font-weight:600; cursor:pointer;}
.descanso-rapido.selected{background:#71D7FF; color:#07121C; border-color:#71D7FF;}
.descanso-sheet-cerrar{display:block; margin:12px auto 0;}

.descanso-barra{position:fixed; left:0; right:0; bottom:0; z-index:60; display:flex; align-items:center; gap:12px; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:linear-gradient(160deg,#1c3b4e,#102431); border-top:1px solid rgba(113,215,255,.4); box-shadow:0 -8px 30px rgba(0,6,12,.45); animation:descansoSube .3s cubic-bezier(.2,1.1,.4,1) both; transition:opacity .25s ease, transform .25s ease;}
.descanso-barra.sale{opacity:0; transform:translateY(20px);}
.descanso-anillo{width:48px; height:48px; flex-shrink:0; transform:rotate(-90deg);}
.descanso-anillo circle{fill:none; stroke-width:4.5;}
.descanso-anillo-fondo{stroke:rgba(155,189,211,.2);}
.descanso-anillo-avance{stroke:#71D7FF; stroke-linecap:round; transition:stroke-dashoffset .25s linear;}
.descanso-barra-texto{flex:1; display:flex; flex-direction:column; min-width:0;}
.descanso-barra-etiqueta{font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:#71D7FF;}
.descanso-barra-tiempo{font-family:'Oswald',sans-serif; font-size:28px; font-weight:700; line-height:1.1; color:#F7FAFF; font-variant-numeric:tabular-nums; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.descanso-barra-acciones{display:flex; gap:6px;}
.descanso-mini{min-width:44px; height:40px; padding:0 10px; border-radius:10px; border:1px solid rgba(155,189,211,.35); background:rgba(7,18,28,.5); color:#F7FAFF; font-size:13px; font-weight:700; cursor:pointer;}
.descanso-saltar{background:transparent; color:#A7BAC7;}
.descanso-barra.termino{border-top-color:#CBFF45; background:linear-gradient(160deg,#2a4a1e,#152a17); animation:descansoPulso .5s ease 3;}
.descanso-barra.termino .descanso-anillo-avance{stroke:#CBFF45;}
.descanso-barra.termino .descanso-barra-etiqueta{color:#CBFF45;}
.descanso-barra.termino .descanso-barra-tiempo{font-size:21px; color:#CBFF45;}
.descanso-barra.termino .descanso-saltar{background:#CBFF45; color:#07121C; border-color:#CBFF45; min-width:64px;}
@keyframes descansoSube{from{transform:translateY(100%);} to{transform:translateY(0);}}
@keyframes descansoPulso{0%,100%{transform:scale(1);} 50%{transform:scale(1.02);}}
@media (prefers-reduced-motion: reduce){
  .descanso-sheet,.descanso-sheet-panel,.descanso-barra,.descanso-barra.termino{animation:none;}
}

/* ---------- Compartir entrenamiento ---------- */
.resumen-compartir{width:100%; display:flex; flex-direction:column; gap:10px; margin-top:18px;}
.resumen-compartir .btn{margin-top:0;}
.resumen-guardar{width:100%; justify-content:center; padding:11px; display:flex; align-items:center; gap:6px;}
.resumen-volver{display:block; margin:14px auto 0;}

/* ---------- Clave temporal ---------- */
.auth-olvide{margin-top:8px;}
.clave-temporal-valor{margin:12px 0 6px; font-family:'IBM Plex Mono',monospace; font-size:30px; font-weight:600; letter-spacing:.08em; color:#CBFF45; user-select:all; -webkit-user-select:all;}
.clave-temporal-card .btn{margin-top:14px; text-decoration:none;}
.clave-temporal-copiar{width:100%; justify-content:center; margin-top:8px; padding:10px;}

/* ---------- Chat: mensajes de voz y videos de técnica ---------- */
.chat-compose.con-medios{grid-template-columns:45px minmax(0,1fr) 45px;}
.chat-compose.con-medios.con-video{grid-template-columns:45px 45px minmax(0,1fr) 45px;}
.chat-compose .chat-media-btn{color:#CBFF45; background:rgba(203,255,69,.10); border:1px solid rgba(203,255,69,.35);}
.chat-compose .chat-media-btn .icon{transform:none; width:19px; height:19px;}
.chat-grabando{position:sticky; bottom:0; display:flex; align-items:center; gap:10px; padding:12px; margin:10px 0 max(10px,env(safe-area-inset-bottom)); border-radius:14px; background:#132D3C; border:1px solid rgba(229,72,77,.45);}
.chat-grabando-punto{width:12px; height:12px; border-radius:50%; background:#E5484D; animation:grabandoLate 1s ease-in-out infinite;}
.chat-grabando-tiempo{font-family:'IBM Plex Mono',monospace; font-size:15px; color:#F7FAFF;}
.chat-grabando small{color:#829BAA; font-size:10px; flex:1;}
.chat-grabando button{border:0; border-radius:10px; padding:9px 12px; font-weight:700; font-size:12px; cursor:pointer;}
.chat-grabando-cancelar{background:transparent; color:#A7BAC7;}
.chat-grabando-enviar{background:#CBFF45; color:#07121C;}
@keyframes grabandoLate{50%{opacity:.35; transform:scale(.8);}}
.chat-bubble.chat-media{min-width:210px;}
.chat-audio{display:flex; align-items:center; gap:10px;}
.chat-audio-play{flex-shrink:0; width:38px; height:38px; border-radius:50%; border:0; display:grid; place-items:center; background:#CBFF45; color:#07121C; cursor:pointer;}
.chat-audio-play svg{width:15px; height:15px; margin-left:2px;}
.chat-audio-play.sonando{background:#71D7FF; animation:grabandoLate 1.2s ease-in-out infinite;}
.chat-audio-info, .chat-video-info{display:flex; flex-direction:column; gap:2px;}
.chat-audio-info small, .chat-video-info small, .chat-video-quedan{color:rgba(235,246,250,.7); font-size:10px;}
.chat-video-ver{border:0; border-radius:10px; padding:10px 12px; background:#CBFF45; color:#07121C; font-weight:800; font-size:12.5px; cursor:pointer; margin-bottom:4px;}
.chat-media-vencido{color:rgba(235,246,250,.55); font-style:italic;}
.video-grabador{position:fixed; inset:0; z-index:260; display:flex; flex-direction:column; background:#05090D; color:#F7FAFF;}
.video-grabador-top{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:calc(10px + env(safe-area-inset-top)) 14px 10px; font-size:13px; font-weight:600;}
.video-grabador-x{width:40px; height:40px; border-radius:50%; border:0; background:rgba(255,255,255,.12); color:#fff; font-size:18px; cursor:pointer;}
.video-grabador video{flex:1; width:100%; min-height:0; object-fit:contain; background:#000;}
.video-grabador video.espejo{transform:scaleX(-1);}
.video-grabador-tiempo{text-align:center; font-family:'IBM Plex Mono',monospace; font-size:22px; padding-top:10px; color:#CBFF45;}
.video-grabador-ayuda{text-align:center; font-size:12px; color:#A7BAC7; padding:6px 20px 0;}
.video-grabador-acciones{display:flex; align-items:center; justify-content:center; gap:12px; padding:14px 16px calc(18px + env(safe-area-inset-bottom));}
.video-grabador-acciones .btn{width:auto; flex:1; margin:0;}
.video-grabador-acciones .btn-sm{padding:12px 16px;}
.video-grabador-rec{width:72px; height:72px; border-radius:50%; border:5px solid #fff; background:#E5484D; cursor:pointer; transition:border-radius .2s, transform .2s;}
.video-grabador-rec.grabando{border-radius:18px; transform:scale(.85);}
@media (prefers-reduced-motion: reduce){ .chat-grabando-punto,.chat-audio-play.sonando{animation:none;} }

/* ---------- Registro del entrenamiento de hoy (rediseño) ---------- */
.reg-top{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px;}
.reg-top-acciones{display:flex; align-items:center; gap:8px;}
.reg-fecha-chip{position:relative; display:inline-flex; align-items:center; margin:0; padding:7px 11px; border-radius:20px; background:rgba(113,215,255,.10); border:1px solid rgba(113,215,255,.3); color:#71D7FF; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.1em; cursor:pointer; text-transform:none;}
.reg-fecha-chip span{display:inline-flex; align-items:center; gap:6px;}
.reg-fecha-chip .icon{width:12px; height:12px;}
.reg-fecha-chip input{position:absolute; inset:0; opacity:0; width:100%; height:100%; margin:0; padding:0; cursor:pointer;}
.reg-chip{border:1px solid rgba(155,189,211,.3); background:rgba(255,255,255,.06); color:#F7FAFF; border-radius:20px; padding:7px 11px; font-size:12px; cursor:pointer;}
.reg-titulo{font-family:'Oswald',sans-serif; font-weight:700; font-size:29px; line-height:1.05; text-transform:uppercase; margin:6px 0 2px; letter-spacing:.01em;}
.reg-titulo span{color:#CBFF45;}
.reg-cambiar-dia{font-size:12px; margin:2px 0 6px;}
.reg-dias{display:flex; flex-wrap:wrap; gap:6px; margin:6px 0 10px;}
.reg-prog{margin:12px 0 14px; padding:12px 14px; border-radius:16px; background:rgba(7,18,28,.55); border:1px solid rgba(155,189,211,.18);}
.reg-prog-fila{display:flex; justify-content:space-between; align-items:baseline; gap:8px;}
.reg-prog-fila b{font-family:'Oswald',sans-serif; font-size:21px; font-weight:700;}
.reg-prog-fila b small{font-family:'Inter',sans-serif; font-size:12px; color:#71D7FF; font-weight:600;}
.reg-prog-fila > small{color:#A7BAC7; font-size:11px; text-align:right;}
.reg-barra{height:8px; border-radius:8px; background:rgba(255,255,255,.08); margin-top:8px; overflow:hidden;}
.reg-barra i{display:block; height:100%; border-radius:8px; background:linear-gradient(90deg,#71D7FF,#CBFF45); transition:width .5s ease;}
.reg-prog-stats{display:flex; gap:14px; margin-top:9px; font-size:11.5px; color:#A7BAC7;}
.reg-prog-stats b{color:#F7FAFF; font-family:'Oswald',sans-serif; font-size:16px; font-weight:500;}

.reg-ex{border-radius:18px; background:linear-gradient(160deg,#183445,#0F2230); border:1.5px solid #CBFF45; box-shadow:0 0 0 4px rgba(203,255,69,.07),0 10px 30px rgba(0,0,0,.30); margin-bottom:12px; padding-bottom:12px; scroll-margin-top:12px;}
.reg-ex.hecho{border-color:rgba(203,255,69,.55);}
.reg-ex-top{display:flex; gap:10px; padding:10px 10px 8px 8px; align-items:flex-start;}
.reg-ex-img-btn{padding:0; border:0; background:none; cursor:zoom-in; flex-shrink:0;}
.reg-ex-img{width:88px; height:66px; border-radius:12px; object-fit:cover; border:1px solid rgba(155,189,211,.2); display:block;}
.reg-img-vacia{display:grid; place-items:center; background:rgba(255,255,255,.05); color:#71D7FF; font-size:22px;}
.reg-ex-info{flex:1; min-width:0;}
.reg-ex-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}
.reg-ex-actions > .workout-video-icon{width:22px;height:22px;border-radius:7px;box-shadow:0 3px 9px rgba(255,0,51,.18)}
.reg-ex-actions > .workout-video-icon .icon,.exercise-bank-option-row > .workout-video-icon .icon,.reg-mini > .workout-video-icon .icon{width:12px;height:12px}
.reg-ex-nombre{display:block; font-family:'Oswald',sans-serif; font-weight:700; font-size:19px; line-height:1.12; text-transform:uppercase; letter-spacing:.01em;}
.reg-ex-nombre.ex-name-seleccionable{text-decoration:underline dotted #71D7FF; cursor:pointer;}
.reg-ex-nombre.seleccionando{color:#71D7FF;}
.reg-tags{display:flex; flex-wrap:wrap; gap:6px; margin-top:6px;}
.reg-tag{font-size:10.5px; padding:3px 8px; border-radius:10px; background:rgba(113,215,255,.12); color:#71D7FF;}
.reg-tag.obj{background:rgba(203,255,69,.12); color:#CBFF45;}
.reg-tag.extra{background:rgba(155,123,255,.16); color:#C8B8FF;}
.reg-previo{font-size:11.5px; color:#A7BAC7; margin-top:6px;}
.reg-previo b{color:#F7FAFF;}
.reg-quitar{height:28px; width:28px; font-size:12px; flex-shrink:0;}
.reg-ex .superserie-label{margin:0 12px 6px;}
.reg-puntos{display:flex; gap:6px; padding:2px 12px 0;}
.reg-puntos i{flex:1; height:5px; border-radius:5px; background:rgba(255,255,255,.10);}
.reg-puntos i.on{background:#CBFF45;}
.reg-sets{padding:10px 12px 0;}
.set-line.reg-set{display:grid; grid-template-columns:28px 1fr auto; align-items:center; gap:10px; padding:8px 10px; border-radius:12px; background:rgba(7,18,28,.5); margin-bottom:6px; border:0;}
.reg-set-num{width:26px; height:26px; border-radius:50%; display:grid; place-items:center; font-family:'Oswald',sans-serif; font-size:13px; background:rgba(203,255,69,.16); color:#CBFF45;}
.reg-set-val{font-family:'Oswald',sans-serif; font-size:22px; font-weight:700; line-height:1.1; display:flex; flex-wrap:wrap; align-items:baseline; gap:0 4px;}
.reg-set-val small{font-family:'Inter',sans-serif; font-size:11px; color:#A7BAC7; font-weight:500;}
.reg-set-extra{display:flex; gap:4px; flex-wrap:wrap; width:100%; margin-top:3px;}
.reg-set-fin{display:flex; align-items:center; gap:8px;}
.reg-set-ok{color:#CBFF45; font-size:17px;}
.reg-set-x{height:22px; width:22px; font-size:10px; opacity:.6;}
.reg-entrada{padding:8px 12px 0;}
.reg-steppers{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.reg-step{border-radius:14px; background:#07121C; border:1px solid rgba(155,189,211,.18); padding:7px 8px 8px; text-align:center;}
.reg-step small{display:block; font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.14em; color:#A7BAC7;}
.reg-step-fila{display:flex; align-items:center; justify-content:space-between; gap:4px; margin-top:4px;}
.reg-step-fila button{width:36px; height:36px; flex-shrink:0; border-radius:10px; border:0; background:rgba(255,255,255,.08); color:#F7FAFF; font-size:19px; cursor:pointer;}
.reg-step-fila input{width:100%; min-width:0; margin:0; padding:2px 0; text-align:center; background:transparent; border:0; font-family:'Oswald',sans-serif; font-size:26px; font-weight:700; color:#F7FAFF;}
.reg-step-fila input:focus{outline:none; border-bottom:2px solid #CBFF45;}
.btn-sm.reg-guardar{margin-top:10px; width:100%; justify-content:center; border:0; border-radius:14px; padding:14px; font-family:'Oswald',sans-serif; font-weight:700; font-size:16px; letter-spacing:.06em; text-transform:uppercase; color:#07121C; background:linear-gradient(90deg,#CBFF45,#9CF1A0);}
.reg-mas{margin-top:10px; font-size:12px;}
.reg-mas summary{color:#71D7FF; cursor:pointer; list-style:none;}
.reg-mas summary::-webkit-details-marker{display:none;}
.reg-mini, .reg-pend{width:100%; display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:16px; margin-bottom:10px; background:linear-gradient(160deg,rgba(24,52,69,.9),rgba(15,34,48,.9)); border:1px solid rgba(155,189,211,.18); color:#F7FAFF; text-align:left; cursor:pointer; scroll-margin-top:12px; font-family:inherit;}
.reg-mini > .workout-video-icon{width:22px;height:22px;border-radius:7px;margin-left:auto}
.reg-mini.hecho{background:rgba(203,255,69,.07); border-color:rgba(203,255,69,.3);}
.reg-mini.seleccionable{border-style:dashed; border-color:#71D7FF;}
.reg-mini.seleccionando{border-color:#71D7FF; box-shadow:0 0 0 3px rgba(113,215,255,.2);}
.reg-mini-img{width:58px; height:44px; border-radius:10px; object-fit:cover; flex-shrink:0;}
.reg-mini-texto{flex:1; min-width:0; display:flex; flex-direction:column; gap:2px;}
.reg-mini-texto b{font-family:'Oswald',sans-serif; font-size:15.5px; font-weight:700; text-transform:uppercase; line-height:1.15;}
.reg-mini-texto small{color:#A7BAC7; font-size:11px;}
.reg-mini-texto .superserie-label{margin:4px 0 0; font-size:10.5px;}
.reg-mini-estado{font-size:22px; color:#71D7FF; flex-shrink:0;}
.reg-mini.hecho .reg-mini-estado{color:#CBFF45;}
.reg-seccion{font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.16em; color:#A7BAC7; margin:16px 2px 8px; text-transform:uppercase;}
.reg-pend{border-style:dashed; border-color:rgba(155,189,211,.3); background:rgba(7,18,28,.35);}
.reg-pend .reg-mini-img{opacity:.8;}
.reg-pend-mas{margin-left:auto; width:34px; height:34px; flex-shrink:0; border-radius:50%; display:grid; place-items:center; background:rgba(203,255,69,.14); color:#CBFF45; font-size:20px;}
.reg-pend-ayuda{font-size:11px; color:#829BAA; text-align:center; margin:2px 0 14px;}
.reg-agregar{margin-top:6px;}
.reg-final-ayuda{font-size:11px; color:#829BAA; text-align:center; margin-top:8px;}
@media (prefers-reduced-motion: reduce){ .reg-barra i{transition:none;} }
.reg-fecha-chip, .reg-chip{white-space:nowrap;}
.reg-top-acciones .sonido-toggle{flex-shrink:0;}
@media (max-width:360px){ .reg-fecha-chip{letter-spacing:.04em; padding:7px 9px;} .reg-chip{padding:7px 9px;} }
.set-line.reg-set, .reg-set-val{color:#F7FAFF;}
.reg-set-val small{color:#A7BAC7;}

/* Registro: selector de día visible (pedido de Pablo) y progreso más claro */
.reg-dia-card{margin:10px 0 4px; border-radius:16px; background:linear-gradient(160deg,#183445,#102431); border:1px solid rgba(113,215,255,.35); overflow:hidden;}
.reg-dia-card.sin-dia{border:1.5px solid #CBFF45; box-shadow:0 0 0 4px rgba(203,255,69,.08);}
.reg-dia-btn{width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px; border:0; background:transparent; color:#F7FAFF; font-size:14px; text-align:left; cursor:pointer;}
.reg-dia-btn > span:first-child{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.reg-dia-btn b{color:#CBFF45;}
.reg-dia-accion{flex-shrink:0; padding:6px 12px; border-radius:10px; background:rgba(113,215,255,.14); color:#71D7FF; font-size:12px; font-weight:700;}
.reg-dias{display:flex; flex-direction:column; gap:8px; padding:0 12px 12px; margin:0;}
.reg-dia-opcion{display:flex; flex-direction:column; gap:3px; width:100%; text-align:left; padding:12px 14px; border-radius:12px; border:1px solid rgba(155,189,211,.25); background:rgba(7,18,28,.5); color:#F7FAFF; cursor:pointer;}
.reg-dia-opcion b{font-family:'Oswald',sans-serif; font-size:17px; text-transform:uppercase;}
.reg-dia-opcion small{color:#A7BAC7; font-size:11.5px;}
.reg-dia-opcion.selected{border-color:#CBFF45; background:rgba(203,255,69,.08);}
.reg-prog-fila b{font-size:23px;}
.reg-prog-fila > small{font-size:12.5px; color:#CBFF45;}
.reg-prog-stats{font-size:13px;}
.reg-prog-stats b{font-size:18px;}
.reg-seccion{font-size:12px; color:#CFE0EA;}

/* Día y "Agregar ejercicio" con más volumen (pedido de Pablo) */
.reg-dia-btn{padding:16px 14px; font-size:15px;}
.reg-dia-btn > span:first-child{font-family:'Oswald',sans-serif; font-size:19px; letter-spacing:.02em; text-transform:uppercase; line-height:1.2;}
.reg-dia-btn b{font-weight:700;}
.reg-dia-btn .icon{width:18px; height:18px;}
.reg-dia-accion{font-family:'Inter',sans-serif; font-size:13px; padding:8px 14px;}
.reg-dia-opcion{padding:14px 16px;}
.reg-dia-opcion b{font-size:21px; letter-spacing:.02em;}
.reg-dia-opcion small{font-size:12.5px;}
.reg-agregar{border:1.5px solid rgba(113,215,255,.55); background:linear-gradient(160deg,#183445,#102431); box-shadow:0 0 0 4px rgba(113,215,255,.06);}
.reg-agregar-titulo{display:flex; align-items:center; gap:8px; font-family:'Oswald',sans-serif; font-weight:700; font-size:22px; text-transform:uppercase; letter-spacing:.02em; color:#F7FAFF; margin-bottom:4px;}
.reg-agregar-titulo .icon{width:20px; height:20px; color:#71D7FF;}
.reg-agregar-sub{font-size:12.5px; color:#A7BAC7; margin-bottom:12px; line-height:1.4;}
.btn-sm.reg-agregar-btn{width:100%; justify-content:center; padding:13px; border:0; border-radius:12px; background:#71D7FF; color:#07121C; font-weight:800; font-size:14px;}
.reg-prog-fila{flex-direction:column; align-items:flex-start; gap:2px;}
.reg-prog-fila > small{text-align:left;}
.reg-dia-card{border:1.5px solid rgba(113,215,255,.55);}
.reg-dia-card.sin-dia{background:linear-gradient(160deg,rgba(203,255,69,.14),rgba(16,36,49,.95) 55%); border:2px solid #CBFF45; box-shadow:0 0 0 5px rgba(203,255,69,.10),0 10px 26px rgba(0,0,0,.3);}
.reg-dia-texto{display:flex; flex-direction:column; align-items:flex-start; gap:4px;}
.reg-dia-card.sin-dia .reg-dia-btn > span:first-child{font-size:23px;}
.reg-dia-texto small{font-family:'Inter',sans-serif; font-size:12.5px; text-transform:none; letter-spacing:0; color:#CFE0EA; font-weight:500;}
.reg-dia-accion{background:#71D7FF; color:#07121C; font-weight:800; padding:10px 14px; border-radius:12px;}
.reg-dia-card.sin-dia .reg-dia-accion{background:#CBFF45; color:#07121C; animation:diaLate 1.6s ease-in-out infinite;}
@keyframes diaLate{50%{transform:scale(1.06); box-shadow:0 0 0 6px rgba(203,255,69,.18);}}
@media (prefers-reduced-motion: reduce){ .reg-dia-card.sin-dia .reg-dia-accion{animation:none;} }
.reg-dia-texto{text-align:left; align-items:flex-start !important;}
.reg-dia-texto > .icon{display:none;}

/* Botón de descanso flotante y movible */
.fab-descanso.fab-movible{touch-action:none; user-select:none; -webkit-user-select:none; z-index:55; background:linear-gradient(160deg,#1c3b4e,#132D3C); border:1.5px solid #71D7FF; box-shadow:0 6px 18px rgba(0,0,0,.45);}
.fab-descanso.fab-movible.arrastrando{transform:scale(1.08); box-shadow:0 12px 28px rgba(0,0,0,.55); opacity:.92; transition:none;}
.reg-descanso-lugar{display:inline-block; width:128px; height:38px; flex-shrink:0;}
.fab-descanso.fab-movible{position:fixed; height:38px; padding:0 14px 0 8px; gap:6px; font-size:12.5px;}
.fab-grip{font-size:15px; color:#71D7FF; letter-spacing:-1px; opacity:.9; margin-right:1px;}
.fab-descanso.fab-invita{animation:fabInvita 1.1s ease-in-out 3;}
@keyframes fabInvita{0%,100%{transform:translateX(0);} 25%{transform:translateX(-5px) rotate(-2deg);} 75%{transform:translateX(5px) rotate(2deg);}}
.fab-aviso{position:absolute; top:calc(100% + 8px); right:0; white-space:nowrap; padding:6px 10px; border-radius:10px; background:#CBFF45; color:#07121C; font-family:'Inter',sans-serif; font-size:11.5px; font-weight:700; text-transform:none; letter-spacing:0; box-shadow:0 6px 16px rgba(0,0,0,.35); pointer-events:none;}
.fab-aviso::before{content:''; position:absolute; top:-5px; right:22px; border:5px solid transparent; border-top:0; border-bottom-color:#CBFF45;}
@media (prefers-reduced-motion: reduce){ .fab-descanso.fab-invita{animation:none;} }

/* "Agregar ejercicio" con mucho más protagonismo */
.card.reg-agregar{border:2px solid #CBFF45; background:radial-gradient(circle at 0% 0%,rgba(203,255,69,.22),transparent 55%),linear-gradient(160deg,#1b3a2a,#102431 70%); box-shadow:0 0 0 5px rgba(203,255,69,.10),0 12px 28px rgba(0,0,0,.35); padding:18px 16px;}
.reg-agregar-titulo{font-size:26px; gap:10px; color:#CBFF45;}
.reg-agregar-icono{width:38px; height:38px; border-radius:12px; display:grid; place-items:center; background:#CBFF45; color:#07121C; flex-shrink:0;}
.reg-agregar-icono .icon{width:22px; height:22px; color:#07121C; stroke-width:3;}
.reg-agregar-sub{font-size:13px; color:#DCE9F0;}
.btn-sm.reg-agregar-btn{background:linear-gradient(90deg,#CBFF45,#9CF1A0); color:#07121C; font-family:'Oswald',sans-serif; font-size:16px; letter-spacing:.05em; text-transform:uppercase; padding:14px; border-radius:14px;}
.reg-agregar .simple-exercise-bank input, .reg-agregar input{border-color:rgba(203,255,69,.45);}
.fab-descanso.fab-movible{position:absolute;}
body.descanso-activo .fab-descanso.fab-movible{bottom:auto;}

/* ---------- Ficha de ingreso ---------- */
.ficha-wrap{padding:4px 2px 12px}
.ficha-sec{font-family:Oswald,sans-serif;font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:#71D7FF;margin:18px 0 8px;display:flex;align-items:center;gap:6px}
.ficha-alerta{background:rgba(255,120,90,.12);border:1px solid rgba(255,120,90,.55);color:#FFB4A2;border-radius:12px;padding:10px 12px;margin:6px 0 8px;font-size:14px}
.ficha-ok{color:#D4FF3A;font-weight:600;margin:6px 0}
.ficha-pendiente{background:rgba(113,215,255,.08);border:1px solid rgba(113,215,255,.35);border-radius:12px;padding:10px 12px;margin:6px 0;font-size:14px}
.ficha-acciones{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.ficha-respuestas dt{font-size:12px;color:#A7BAC7;margin-top:8px}
.ficha-respuestas dd{margin:2px 0 0;font-weight:600;color:#F7FAFF}
.ficha-respuestas dd.ficha-si{color:#FF8A6B}
.ficha-panel-lectura{padding-bottom:20px}
.ficha-vista-fecha{display:flex;align-items:center;gap:7px;margin:14px 0;padding:10px 12px;border-radius:12px;background:rgba(168,126,255,.12);border:1px solid rgba(255,121,201,.28);color:#D9C8FF;font-size:12px;font-weight:700}
.ficha-respuestas-alumno{margin:4px 0 18px}
.ficha-respuestas-alumno .ficha-sec{margin:20px 0 8px}
.ficha-respuesta-item{padding:11px 12px;margin:7px 0;border-radius:12px;background:rgba(145,178,200,.07);border:1px solid rgba(145,178,200,.13)}
.ficha-respuesta-item dt{margin:0 0 4px}
.ficha-respuesta-item dd{font-size:15px}
.ficha-editar-alumno{width:100%;justify-content:center;background:linear-gradient(90deg,#FF79C9,#A87EFF);color:#07121C}
.ficha-completada-row .toggle-label{display:flex;align-items:center;gap:8px;min-width:0}
.ficha-completada-row .toggle-label small{font-family:Inter,sans-serif;font-size:10px;font-weight:600;letter-spacing:0;color:#C7A9E8;text-transform:none;margin-left:auto;white-space:nowrap}
.ficha-overlay{position:fixed;inset:0;z-index:9999;background:rgba(3,8,14,.82);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px}
.ficha-panel{max-width:520px;margin:0 auto 40px;background:#0C1822;border:1px solid rgba(155,189,211,.2);border-radius:20px;padding:18px 16px}
.ficha-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.ficha-head small{color:#FF79C9;font-size:11px;letter-spacing:.12em}
.ficha-head h2{font-family:Oswald,sans-serif;font-size:28px;margin:2px 0 0;color:#F7FAFF}
.ficha-cerrar{background:none;border:0;color:#A7BAC7;font-size:22px;padding:4px 8px;cursor:pointer}
.ficha-privado{font-size:13px;color:#A7BAC7;margin:6px 0 4px}
.ficha-q{margin:12px 0}
.ficha-q label{display:block;font-size:15px;color:#F7FAFF;margin-bottom:8px;line-height:1.35}
.ficha-req{color:#FF8A6B}
.ficha-ops{display:flex;flex-wrap:wrap;gap:8px}
.ficha-op{background:rgba(255,255,255,.04);border:1px solid rgba(155,189,211,.3);color:#DCE7EE;border-radius:999px;padding:9px 14px;font-size:14px;cursor:pointer}
.ficha-op.sel{background:#FF79C9;border-color:#FF79C9;color:#0B141C;font-weight:700}
.ficha-op.si.sel{background:#FF8A6B;border-color:#FF8A6B}
.ficha-q textarea{width:100%;box-sizing:border-box}
.ficha-aviso-medico{font-size:13px;color:#A7BAC7;background:rgba(255,255,255,.03);border-radius:12px;padding:10px 12px;margin:16px 0}
.ficha-aviso-card{position:relative;overflow:hidden;display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:linear-gradient(135deg,rgba(255,121,201,.18),rgba(130,92,255,.14) 58%,rgba(113,215,255,.07));border:1px solid rgba(255,121,201,.55);box-shadow:0 12px 28px rgba(117,51,155,.16);border-radius:18px;padding:14px;margin:12px 0;color:#F7FAFF;cursor:pointer}
.ficha-aviso-card::after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;right:-56px;top:-62px;background:rgba(255,121,201,.14);pointer-events:none}
.ficha-aviso-card.is-complete{border-color:rgba(168,126,255,.58);background:linear-gradient(135deg,rgba(168,126,255,.18),rgba(255,121,201,.11),rgba(113,215,255,.07))}
.ficha-aviso-icon{width:44px;height:44px;border-radius:13px;background:linear-gradient(145deg,#FF8BD1,#A87EFF);color:#08131D;box-shadow:0 7px 18px rgba(255,121,201,.28);display:grid;place-items:center;flex:none}
.ficha-aviso-icon .icon{width:20px;height:20px}
.ficha-aviso-copy{flex:1;display:flex;flex-direction:column}
.ficha-aviso-copy small{font-size:11px;letter-spacing:.12em;color:#FF9CD8}
.ficha-aviso-copy b{font-family:Oswald,sans-serif;font-size:19px}
.ficha-aviso-copy em{font-style:normal;font-size:13px;color:#A7BAC7}
.ficha-q label{text-transform:none;letter-spacing:0;font-family:Inter,system-ui,sans-serif;font-weight:600}

/* ---------- Entrevista de objetivos ---------- */
.objetivos-aviso-card{position:relative;overflow:hidden;display:flex;align-items:center;gap:13px;width:100%;text-align:left;background:linear-gradient(125deg,rgba(69,37,143,.55),rgba(155,73,206,.36) 58%,rgba(255,121,201,.25));border:1.5px solid rgba(190,107,255,.85);box-shadow:0 0 0 1px rgba(255,121,201,.12),0 12px 30px rgba(104,45,174,.3);border-radius:19px;padding:15px;margin:12px 0;color:#F7FAFF;cursor:pointer}
.objetivos-aviso-card::after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;right:-72px;top:-92px;background:radial-gradient(circle,rgba(255,121,201,.32),transparent 68%);pointer-events:none}
.objetivos-aviso-icon{width:48px;height:48px;border-radius:14px;background:linear-gradient(145deg,#7C4DFF,#E85BC8);border:1px solid rgba(255,255,255,.22);color:#F7FAFF;box-shadow:0 8px 22px rgba(127,67,232,.42);display:grid;place-items:center;flex:none}
.objetivos-aviso-icon .icon{width:23px;height:23px}.objetivos-aviso-card .ficha-aviso-copy small{color:#D69AFF}.objetivos-aviso-card .ficha-aviso-copy b{font-size:20px}
.objetivos-panel{border-color:rgba(168,126,255,.45);background:radial-gradient(circle at 85% 0,rgba(155,74,205,.18),transparent 30%),#0C1822}.objetivos-head small{color:#C99AFF}
.objetivos-q{display:flex;gap:11px;margin:13px 0;padding:14px 12px;background:linear-gradient(145deg,rgba(27,50,69,.82),rgba(16,32,45,.9));border:1px solid rgba(168,126,255,.24);border-radius:16px}
.objetivos-num{font-family:"IBM Plex Mono",monospace;font-size:11px;color:#C99AFF;border:1px solid rgba(168,126,255,.4);border-radius:9px;width:29px;height:29px;display:grid;place-items:center;flex:none}.objetivos-q-body{flex:1;min-width:0}
.objetivos-q label{display:block;font-size:15px;line-height:1.35;font-weight:700;color:#F7FAFF;margin:3px 0 10px;text-transform:none;letter-spacing:0}.objetivos-q input,.objetivos-q textarea{width:100%;box-sizing:border-box;margin:9px 0 0;border-color:rgba(168,126,255,.32);background:rgba(3,10,16,.5)}
.objetivos-ops{display:flex;flex-wrap:wrap;gap:7px}.objetivos-op{background:rgba(255,255,255,.04);border:1px solid rgba(177,157,211,.32);color:#DCE7EE;border-radius:999px;padding:8px 12px;font-size:13px;line-height:1.2;cursor:pointer}.objetivos-op.sel{background:linear-gradient(90deg,#8B63F6,#DF64CA);border-color:#D08BFF;color:#FFF;font-weight:700;box-shadow:0 5px 16px rgba(127,67,232,.28)}
.objetivos-subpregunta{display:block;font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.12em;color:#9FB1BD;margin:12px 0 7px}.objetivos-final{font-size:12.5px;color:#B7C6D0;background:rgba(168,126,255,.08);border-left:3px solid #A87EFF;border-radius:10px;padding:10px 12px;margin:15px 0}.objetivos-guardar{background:linear-gradient(90deg,#8B63F6,#E45BC7);color:#FFF;box-shadow:0 9px 24px rgba(127,67,232,.3)}
.objetivos-destacado{display:flex;flex-direction:column;gap:3px;background:linear-gradient(130deg,rgba(96,55,180,.42),rgba(217,83,187,.2));border:1px solid rgba(190,107,255,.6);border-radius:16px;padding:14px;margin:7px 0 12px}.objetivos-destacado small{font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.14em;color:#D69AFF}.objetivos-destacado strong{font-family:Oswald,sans-serif;font-size:24px;color:#F7FAFF;text-transform:uppercase;line-height:1.15}.objetivos-destacado span{font-size:12.5px;color:#C8D5DE}
.objetivos-respuestas{margin:8px 0 15px}.objetivos-lectura .ficha-respuesta-item{border-color:rgba(168,126,255,.17)}
@media(max-width:380px){.objetivos-aviso-card{padding:13px 11px;gap:10px}.objetivos-aviso-icon{width:43px;height:43px}.objetivos-aviso-card .ficha-aviso-copy b{font-size:18px}.objetivos-op{font-size:12px;padding:7px 10px}}

/* Resumen: grupos musculares entrenados */
.resumen-grupos{margin:14px auto 4px;display:flex;flex-direction:column;align-items:center;gap:4px}
.resumen-grupos span{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#71D7FF}
.resumen-grupos b{font-family:Oswald,sans-serif;font-size:26px;letter-spacing:.04em;text-transform:uppercase;color:#F7FAFF}
.resumen-grupos i{font-style:normal;color:#CBFF45;padding:0 4px}

/* ---------- Avisos push + resumen para el profesor ---------- */
.push-activar-card{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,rgba(113,215,255,.12),rgba(203,255,69,.08));border:1px solid rgba(113,215,255,.45);border-radius:16px;padding:12px 14px;margin:10px 0 14px}
.push-activar-icon{width:40px;height:40px;border-radius:12px;background:#71D7FF;color:#0B141C;display:grid;place-items:center;flex:none}
.push-activar-copy{flex:1;display:flex;flex-direction:column;gap:2px}
.push-activar-copy b{font-size:15px;color:#F7FAFF}
.push-activar-copy small{font-size:12.5px;color:#A7BAC7}
.resumen-profe{text-align:center;padding:4px 0 30px}
.resumen-profe-nombre{font-family:Oswald,sans-serif;font-size:34px;margin:2px 0;color:#F7FAFF;text-transform:uppercase}
.resumen-profe-stats{grid-template-columns:repeat(4,1fr)!important}
.resumen-profe-ejercicios{text-align:left;margin:18px 0}
.resumen-profe-ej{background:rgba(7,18,28,.55);border:1px solid rgba(155,189,211,.2);border-radius:14px;padding:12px 14px;margin-bottom:10px}
.resumen-profe-ej-nombre{font-family:Oswald,sans-serif;font-size:18px;color:#F7FAFF;margin-bottom:6px}
.resumen-profe-sets{display:flex;flex-wrap:wrap;gap:6px}
.resumen-profe-sets span{background:rgba(255,255,255,.06);border-radius:999px;padding:5px 10px;font-size:13.5px;color:#DCE7EE}
.resumen-profe-sets span.es-pr{background:rgba(255,209,102,.18);color:#FFD166;font-weight:700}
.resumen-profe-nota{font-size:13px;color:#A7BAC7;margin-top:6px;font-style:italic}
.resumen-profe-bloque{text-align:left;background:rgba(255,255,255,.04);border-radius:14px;padding:12px 14px;margin:10px 0}
.resumen-profe-bloque small{color:#71D7FF;letter-spacing:.12em;font-size:11px}
.resumen-profe-bloque p{margin:4px 0 0;color:#F7FAFF}
.resumen-profe-foto{width:100%;border-radius:14px;margin:10px 0}
.resumen-profe-imagen{margin:16px auto}
.resumen-profe-imagen img{width:100%;max-width:360px;border-radius:18px;box-shadow:0 12px 40px rgba(0,0,0,.45)}
.coach-list-avatar{flex:0 0 auto;cursor:pointer;display:flex;align-items:center}

/* ---------- Reacciones y comentarios del profe ---------- */
.fb-card{text-align:left;background:linear-gradient(145deg,rgba(155,123,255,.14),rgba(7,18,28,.6));border:1px solid rgba(155,123,255,.45);border-radius:18px;padding:14px;margin:16px 0}
.fb-titulo{font-family:Oswald,sans-serif;font-size:17px;letter-spacing:.04em;text-transform:uppercase;color:#F7FAFF;margin-bottom:10px}
.fb-emojis{display:flex;gap:8px;justify-content:space-between;margin-bottom:12px}
.fb-emoji{flex:1;font-size:26px;padding:8px 0;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid rgba(155,189,211,.25);cursor:pointer;transition:transform .15s}
.fb-emoji.sel{background:rgba(203,255,69,.18);border-color:#CBFF45;transform:scale(1.08)}
.fb-frases{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.fb-frase{background:rgba(113,215,255,.08);border:1px solid rgba(113,215,255,.35);color:#DCF4FF;border-radius:999px;padding:7px 12px;font-size:13px;cursor:pointer}
.fb-card textarea{width:100%;box-sizing:border-box;margin:0}
.fb-escribir-btns{display:flex;gap:8px;margin-top:8px}
.fb-escribir-btns .btn-sm{flex:1}
.fb-enviar{background:#CBFF45!important;color:#0B141C!important;font-weight:700}
.fb-lista{margin-top:12px}
.fb-item{display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:rgba(255,255,255,.05);border-radius:12px;padding:9px 11px;margin-top:7px;color:#F7FAFF;font-size:14px}
.fb-item time{margin-left:auto;font-size:11px;color:#8FA3B0}
.fb-item small{width:100%;color:#A7BAC7;font-size:12px}
.fb-item audio{width:100%}
.fb-borrar{background:none;border:0;color:#FF8A6B;font-size:14px;cursor:pointer;padding:0 4px}
.fb-ayuda{font-size:12px;color:#8FA3B0;margin-top:10px}
.fb-reaccion-grande{font-size:54px;text-align:center;animation:fbPop .5s ease both}
@keyframes fbPop{0%{transform:scale(.3);opacity:0}70%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
.fb-nota-ej{font-size:13.5px;color:#E8DCFF;background:rgba(155,123,255,.12);border-radius:10px;padding:7px 10px;margin-top:7px}
.fb-nota-btn{background:none;border:1px dashed rgba(155,123,255,.5);color:#C9B8FF;border-radius:10px;padding:6px 10px;font-size:12.5px;margin-top:8px;cursor:pointer}
.fb-nota-form{display:flex;gap:6px;margin-top:8px}
.fb-nota-form input{flex:1;margin:0}
.resumen-profe-sets span.fb-tocable{cursor:pointer}
.fb-like{background:none;border:0;padding:0 0 0 5px;font-size:14px;cursor:pointer;vertical-align:middle}
.fb-like:disabled{cursor:default}
.fb-hist-btn{display:block;width:100%;text-align:left;background:rgba(155,123,255,.12);border:1px solid rgba(155,123,255,.4);color:#E8DCFF;border-radius:10px;padding:8px 11px;margin:4px 0 8px;font-size:13.5px;cursor:pointer}
.fb-aviso-card{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:linear-gradient(135deg,rgba(155,123,255,.22),rgba(113,215,255,.08));border:1px solid rgba(155,123,255,.6);border-radius:18px;padding:14px;margin:12px 0;color:#F7FAFF;cursor:pointer;animation:fbPop .5s ease both}
.fb-aviso-emoji{font-size:34px;flex:none}
.fb-aviso-copy{flex:1;display:flex;flex-direction:column}
.fb-aviso-copy small{font-size:11px;letter-spacing:.12em;color:#C9B8FF}
.fb-aviso-copy b{font-family:Oswald,sans-serif;font-size:19px}
.fb-aviso-copy em{font-style:normal;font-size:13px;color:#A7BAC7}
.reg-nota-profe{color:#E8DCFF!important;background:rgba(155,123,255,.14);border-radius:8px;padding:4px 8px;margin-top:4px}

/* ---------- Video de técnica dentro de la app ---------- */
.yt-capa{position:fixed;inset:0;z-index:10000;background:rgba(3,8,14,.94);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px;gap:12px}
.yt-top{width:100%;max-width:520px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.yt-titulo{font-family:Oswald,sans-serif;font-size:20px;color:#F7FAFF;text-transform:uppercase;letter-spacing:.03em}
.yt-cerrar{background:rgba(255,255,255,.08);border:0;color:#F7FAFF;font-size:20px;width:40px;height:40px;border-radius:50%;cursor:pointer}
.yt-marco{position:relative;width:100%;max-width:520px;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#000 center/cover no-repeat;box-shadow:0 16px 50px rgba(0,0,0,.6)}
.yt-marco.vertical{max-width:min(420px,calc((100vh - 170px) * 9 / 16));aspect-ratio:9/16}
.yt-marco iframe{position:absolute;inset:0;width:100%;height:100%;border:0;opacity:0;transition:opacity .35s}
.yt-capa.listo .yt-marco iframe{opacity:1}
.yt-cargando{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#F7FAFF;font-size:14px;background:rgba(3,8,14,.35)}
.yt-cargando span{width:34px;height:34px;border-radius:50%;border:3px solid rgba(255,255,255,.25);border-top-color:#CBFF45;animation:ytGira .8s linear infinite}
.yt-capa.listo .yt-cargando{display:none}
@keyframes ytGira{to{transform:rotate(360deg)}}
.yt-pie{width:100%;max-width:520px;display:flex;justify-content:space-between;align-items:center;gap:10px;color:#A7BAC7}
.yt-pie small{font-size:12px}
.yt-pie a{color:#71D7FF;font-size:13px;white-space:nowrap}

/* ---------- Series por tiempo (reps ⇄ segundos) ---------- */
.unidad-toggle{background:rgba(113,215,255,.10);border:1px solid rgba(113,215,255,.45);color:#BFEFFF;border-radius:10px;padding:6px 10px;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.unidad-toggle.es-seg{background:rgba(203,255,69,.12);border-color:rgba(203,255,69,.55);color:#E4FF9A}
.reg-entrada{position:relative}
.reg-unidad{display:inline-block;margin:8px 0 6px}
.reg-step.es-seg small{color:#CBFF45}
.reg-seg-ver{display:block;text-align:center;font-style:normal;font-family:Oswald,sans-serif;font-size:15px;color:#CBFF45;margin-top:3px}
.rutina-reps-fila{display:flex;gap:6px;align-items:center}
.rutina-reps-fila input{flex:1;min-width:0}
.rutina-reps-fila .unidad-toggle{padding:6px 8px;font-size:12px}

/* ---------- Editor de rutina: tarjetas con foto + buscador (Idea 1) ---------- */
.red-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;margin:4px 0 2px;scrollbar-width:none}
.red-tabs::-webkit-scrollbar{display:none}
.red-tab{flex:none;display:flex;align-items:center;gap:7px;padding:9px 14px;border-radius:999px;border:1px solid rgba(155,189,211,.3);background:rgba(3,10,16,.45);color:#DCE7EE;font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.red-tab span{min-width:20px;height:20px;border-radius:10px;background:rgba(255,255,255,.1);font-size:11px;display:grid;place-items:center;padding:0 5px}
.red-tab.on{background:#CBFF45;color:#0B141C;border-color:#CBFF45}
.red-tab.on span{background:rgba(11,20,28,.18)}
.red-dia{background:linear-gradient(145deg,rgba(20,49,66,.55),rgba(13,32,44,.7));border:1px solid rgba(155,189,211,.16);border-radius:20px;padding:12px}
.red-dia-head{display:flex;flex-direction:column;gap:8px;align-items:stretch;margin-bottom:10px}
.red-dia-nombre{flex:1;margin:0!important;font-family:Oswald,sans-serif;font-weight:700;font-size:19px!important;text-transform:uppercase;letter-spacing:.02em}
.red-dia-acciones{display:flex;align-items:center;gap:8px}
.red-agregar-dia{flex:1;background:rgba(203,255,69,.11);border:1px dashed rgba(203,255,69,.7);color:#DFFF82;border-radius:10px;padding:9px 12px;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.red-max-dias{flex:1;color:#8FA3B0;font-size:12px;padding-left:2px}
.red-quitar-dia{background:none;border:1px solid rgba(255,138,107,.45);color:#FF9F85;border-radius:10px;padding:8px 10px;font-size:12px;cursor:pointer;white-space:nowrap}
.red-vacio{text-align:center;color:#A7BAC7;font-size:14px;padding:22px 10px;border:1.5px dashed rgba(155,189,211,.25);border-radius:16px;margin-bottom:8px}
.red-card{background:linear-gradient(145deg,rgba(20,49,66,.95),rgba(13,32,44,.98));border:1px solid rgba(155,189,211,.2);border-radius:18px;padding:11px;margin-bottom:9px}
.red-card.on{border-color:#CBFF45;box-shadow:0 0 0 1px rgba(203,255,69,.25),0 10px 28px rgba(0,0,0,.3)}
.red-card.mini{display:flex;align-items:center;gap:11px;cursor:pointer}
.red-card img,.red-img-vacia{width:62px;height:48px;border-radius:11px;object-fit:cover;flex:none}
.red-card.mini img,.red-card.mini .red-img-vacia{width:52px;height:40px}
.red-img-vacia{display:grid;place-items:center;background:rgba(255,255,255,.05);color:#8FA3B0}
.red-info{flex:1;min-width:0}
.red-info b{display:block;font-family:Oswald,sans-serif;font-size:17px;text-transform:uppercase;line-height:1.15;color:#F7FAFF}
.red-info small{display:block;color:#A7BAC7;font-size:12.5px;margin-top:2px}
.red-tag{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;background:rgba(113,215,255,.12);color:#9FE3FF;margin-top:4px}
.red-cambiar{display:block;background:none;border:0;padding:0;margin-top:5px;color:#71D7FF;font-size:12.5px;cursor:pointer;text-decoration:underline}
.red-top{display:flex;align-items:flex-start;gap:11px}
.red-orden{display:flex;flex-direction:column;gap:3px}
.red-orden button{width:26px;height:22px;border-radius:7px;border:1px solid rgba(155,189,211,.25);background:rgba(255,255,255,.04);color:#BFD0DA;font-size:12px;cursor:pointer;padding:0}
.red-orden button:disabled{opacity:.3}
.red-flecha{color:#8FA3B0;font-size:22px;padding:0 2px}
.red-x{background:none;border:0;color:#8FA3B0;font-size:17px;cursor:pointer;padding:2px 4px}
.red-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}
.red-st{background:rgba(3,10,16,.55);border:1px solid rgba(155,189,211,.18);border-radius:13px;padding:7px 7px 8px;text-align:center}
.red-st small{display:block;font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.14em;color:#8FA3B0;margin-bottom:5px}
.red-st.es-seg small{color:#CBFF45}
.red-f{display:flex;align-items:center;gap:4px}
.red-f button{flex:none;width:32px;height:32px;border-radius:10px;border:0;background:rgba(255,255,255,.08);color:#F7FAFF;font-size:18px;cursor:pointer}
.red-f input{flex:1;min-width:0;margin:0!important;text-align:center;background:none!important;border:0!important;font-family:Oswald,sans-serif;font-weight:700;font-size:21px!important;color:#F7FAFF;padding:0!important}
.red-f-texto input{font-size:17px!important;height:32px}
.red-st .unidad-toggle{margin-top:6px}
.red-mas{margin-top:9px}
.red-mas summary{color:#71D7FF;font-size:13px;cursor:pointer}
.red-mas input{margin:8px 0 0!important}
.red-tipolado{display:flex;gap:8px;margin-top:8px}
.red-tipolado > div{flex:1}
.red-agregar{display:flex;gap:8px;margin-top:4px}
.red-btn-agregar{flex:1;height:50px;border-radius:15px;border:2px dashed rgba(203,255,69,.65);background:rgba(203,255,69,.06);color:#CBFF45;font-family:Oswald,sans-serif;font-weight:700;font-size:17px;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
.red-btn-lupa{width:54px;height:50px;border-radius:15px;border:2px solid rgba(113,215,255,.6);background:rgba(113,215,255,.08);color:#BFEFFF;display:grid;place-items:center;cursor:pointer}
.red-btn-lupa .icon{width:22px;height:22px}
.red-buscador{position:fixed;inset:0;z-index:9998;background:rgba(3,8,14,.7);display:flex;align-items:flex-end}
.red-sheet{width:100%;max-width:560px;margin:0 auto;height:86vh;background:#0C1822;border-top-left-radius:24px;border-top-right-radius:24px;border-top:1px solid rgba(155,189,211,.25);padding:10px 16px 0;display:flex;flex-direction:column;box-shadow:0 -20px 50px rgba(0,0,0,.6);animation:redSube .25s ease}
@keyframes redSube{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
.red-grab{width:44px;height:5px;border-radius:5px;background:rgba(255,255,255,.2);margin:0 auto 10px}
.red-sheet-head{display:flex;align-items:center;justify-content:space-between;font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.14em;color:#71D7FF;text-transform:uppercase}
.red-listo{background:#CBFF45;color:#0B141C;border:0;border-radius:10px;padding:8px 14px;font-weight:700;font-size:13px;cursor:pointer;font-family:Inter,sans-serif;letter-spacing:0;text-transform:none}
.red-search{display:flex;align-items:center;gap:9px;height:48px;border-radius:14px;background:rgba(3,10,16,.8);border:1.5px solid #CBFF45;padding:0 12px;margin:10px 0 6px;color:#A7BAC7}
.red-search input{flex:1;margin:0!important;background:none!important;border:0!important;box-shadow:none!important;outline:none;-webkit-appearance:none;appearance:none;font-size:16px!important;color:#F7FAFF;padding:0!important;height:auto!important}
.red-q-x{background:none;border:0;color:#8FA3B0;font-size:15px;cursor:pointer}
.red-res{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:30px}
.red-hint{font-size:12px;color:#8FA3B0;margin:10px 0 4px}
.red-grupo{font-family:Oswald,sans-serif;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:#CBFF45;margin:14px 0 4px}
.red-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid rgba(155,189,211,.1);padding:8px 2px;color:#F7FAFF;cursor:pointer}
.red-item img{width:56px;height:42px;border-radius:9px;object-fit:cover;flex:none}
.red-item-txt{flex:1;min-width:0}
.red-item-txt b{display:block;font-size:15px;font-weight:600}
.red-item-txt small{color:#8FA3B0;font-size:12px}
.red-item mark{background:none;color:#CBFF45;font-weight:700}
.red-item-mas{flex:none;width:32px;height:32px;border-radius:50%;background:#CBFF45;color:#0B141C;display:grid;place-items:center;font-weight:700;font-size:18px}
.red-item-mas.ok{background:rgba(203,255,69,.18);color:#CBFF45}
.red-nuevo-ico{width:56px;height:42px;border-radius:9px;border:1.5px dashed rgba(203,255,69,.5);display:grid;place-items:center;color:#CBFF45;flex:none}
.red-chips{display:flex;flex-wrap:wrap;gap:7px}
.red-chip{padding:7px 11px;border-radius:999px;background:rgba(113,215,255,.08);border:1px solid rgba(113,215,255,.35);font-size:12.5px;color:#DCF4FF;cursor:pointer}
.red-f input::-webkit-outer-spin-button,.red-f input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.red-f input[type=number]{-moz-appearance:textfield}.red-f input::placeholder{color:#4F6270}
/* ---------- Notificaciones push ---------- */
.push-aviso-card{display:flex;align-items:flex-start;gap:12px;background:linear-gradient(135deg,rgba(155,123,255,.18),rgba(113,215,255,.08));border:1px solid rgba(155,123,255,.55);border-radius:18px;padding:14px;margin:12px 0;color:#F7FAFF}
.push-aviso-icon{width:42px;height:42px;border-radius:12px;background:#9B7BFF;color:#0B141C;display:grid;place-items:center;flex:none}
.push-aviso-copy{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.push-aviso-copy b{font-family:Oswald,sans-serif;font-size:18px}
.push-aviso-copy em{font-style:normal;font-size:13px;color:#A7BAC7}
.push-aviso-acciones{display:flex;align-items:center;gap:14px;margin-top:10px}
.push-aviso-acciones .btn.push-aviso-si{width:auto;margin:0;padding:9px 18px}
.push-perfil-card label{display:flex;align-items:center;gap:8px}
.push-perfil-card .btn{margin-top:10px}
.push-perfil-card .link-btn{margin-top:8px}
.push-ok{color:#D4FF3A;display:block;margin-bottom:2px}

/* ===== Rutina funcional (Circuito · Tabata · EMOM · AMRAP) ===== */
.fx-plantillas{display:flex;flex-direction:column;gap:11px;margin-top:6px}
.fx-tpl{position:relative;display:flex;align-items:center;gap:13px;width:100%;text-align:left;padding:14px;border-radius:18px;border:1.5px solid rgba(155,189,211,.25);background:linear-gradient(145deg,rgba(20,49,66,.95),rgba(13,32,44,.98));color:#F7FAFF;cursor:pointer;font:inherit}
.fx-tpl-func{border-color:#CBFF45;box-shadow:0 0 0 3px rgba(203,255,69,.1);cursor:default;margin-top:6px}
.fx-tpl-ic{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;font-size:26px;background:rgba(113,215,255,.12);flex:none}
.fx-tpl-func .fx-tpl-ic{background:#CBFF45}
.fx-tpl-txt b{display:block;font-family:Oswald,sans-serif;font-size:19px;text-transform:uppercase;letter-spacing:.02em}
.fx-tpl-txt small{display:block;font-size:12.5px;color:#A7BAC7;margin-top:2px;line-height:1.35}
.fx-tpl-go{margin-left:auto;font-size:24px;color:#8FA3B0}
.fx-nuevo{position:absolute;top:-9px;right:12px;background:#FFB84D;color:#0B141C;font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.12em;padding:3px 8px;border-radius:999px;font-weight:700}
.fx-tpl-label{font-family:Oswald,sans-serif;font-size:15px;text-transform:uppercase;letter-spacing:.04em;margin:4px 0 -3px;color:#DCE7EE}
.fx-formatos{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:2px 0 10px}
.fx-fm{text-align:left;border:1px solid rgba(155,189,211,.3);background:rgba(3,10,16,.45);border-radius:13px;padding:9px 10px;color:#A7BAC7;font:inherit;font-size:11.5px;cursor:pointer;line-height:1.3}
.fx-fm b{display:block;font-family:Oswald,sans-serif;font-size:15px;color:#F7FAFF;text-transform:uppercase;letter-spacing:.02em}
.fx-fm small{display:block;margin-top:5px;font-size:11.5px;color:#8FA3B0;line-height:1.35}
.fx-fm.on{border-color:#CBFF45;background:rgba(203,255,69,.08)}.fx-fm.on b{color:#CBFF45}
.fx-formatos-grandes .fx-fm{padding:12px}
.fx-formatos-grandes .fx-fm:active{border-color:#CBFF45}
.fx-tip{font-size:12px;color:#A7BAC7;background:rgba(113,215,255,.06);border:1px solid rgba(113,215,255,.18);border-radius:12px;padding:9px 11px;margin-top:10px;line-height:1.45}
.fx-tipo-dia{display:flex;gap:6px;background:rgba(3,10,16,.5);border:1px solid rgba(155,189,211,.18);border-radius:13px;padding:4px;margin:0 0 11px}
.fx-tipo-dia button{flex:1;border:0;border-radius:10px;background:none;color:#A7BAC7;font:inherit;font-size:13.5px;font-weight:600;padding:8px;cursor:pointer}
.fx-tipo-dia button.on{background:#CBFF45;color:#0B141C}
.fx-cfg{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:0 0 11px}
.fx-cfg-emom{grid-template-columns:1fr 1fr}.fx-cfg-amrap{grid-template-columns:1fr}
.fx-cf{background:rgba(3,10,16,.55);border:1px solid rgba(155,189,211,.2);border-radius:13px;padding:7px 5px;text-align:center}
.fx-cf small{display:block;font-family:"IBM Plex Mono",monospace;font-size:8.6px;letter-spacing:.08em;color:#8FA3B0;line-height:1.25;min-height:22px}
.fx-cf-f{display:flex;align-items:center;justify-content:space-between;gap:2px;margin-top:3px}
.fx-cf-f button{width:28px;height:30px;border:0;border-radius:9px;background:rgba(255,255,255,.08);color:#F7FAFF;font-size:17px;cursor:pointer;flex:none}
.fx-cf-f span{font-family:Oswald,sans-serif;font-weight:700;font-size:21px}
.fx-cf.lima span{color:#CBFF45}.fx-cf.naranja span{color:#FFB84D}
.fx-step{display:flex;align-items:center;gap:10px;background:rgba(3,10,16,.5);border:1px solid rgba(155,189,211,.18);border-radius:13px;padding:7px 9px;cursor:pointer}
.fx-step img,.fx-step .red-img-vacia{width:46px;height:36px;border-radius:8px;object-fit:cover;flex:none}
.fx-step-n{font-family:"IBM Plex Mono",monospace;font-size:11px;color:#71D7FF;width:14px;flex:none}
.fx-step-txt{flex:1;min-width:0}.fx-step-txt b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-step-sub{display:block;font-size:11px;color:#8FA3B0}
.fx-chip{flex:none;font-family:Oswald,sans-serif;font-weight:700;font-size:15px;padding:4px 9px;border-radius:9px;background:rgba(203,255,69,.12);color:#CBFF45;white-space:nowrap}
.fx-chip.reps{background:rgba(113,215,255,.12);color:#9FE3FF}
.fx-chip.falta{background:rgba(255,184,77,.14);color:#FFB84D;font-size:12.5px}
.fx-rest{display:flex;align-items:center;gap:6px;justify-content:center;font-size:11px;color:#FFB84D;font-family:"IBM Plex Mono",monospace;letter-spacing:.06em;padding:4px 0}
.fx-rest:before,.fx-rest:after{content:'';flex:1;height:1px;background:rgba(255,184,77,.25)}
.fx-rest-0{padding:3px 0}.fx-rest-0:before,.fx-rest-0:after{background:transparent}
.fx-round{margin-top:8px;border:1.5px dashed rgba(255,184,77,.55);border-radius:13px;padding:8px;text-align:center;font-family:Oswald,sans-serif;font-size:14px;color:#FFB84D;text-transform:uppercase;letter-spacing:.03em}
.fx-tot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:12.5px;color:#A7BAC7}
.fx-tot b{font-family:Oswald,sans-serif;color:#F7FAFF;font-size:17px}
.fx-card{margin:2px 0}
.fx-fijo{font-family:Oswald,sans-serif;font-weight:700;font-size:21px;color:#CBFF45;height:32px;display:grid;place-items:center}
.fx-mini{display:block;font-size:10.5px;color:#8FA3B0}
.fx-nota{width:100%;margin:9px 0 0!important;font-size:13px!important}
.fx-cerrar-card{display:block;width:100%;margin-top:9px;border:1px solid rgba(203,255,69,.5);background:rgba(203,255,69,.08);color:#CBFF45;border-radius:11px;padding:9px;font:inherit;font-weight:700;cursor:pointer}
.fx-banner{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:10px 12px 4px;padding:9px 11px;border-radius:13px;background:rgba(203,255,69,.07);border:1px solid rgba(203,255,69,.35);font-size:12.5px;color:#DCE7EE}
.fx-banner b{margin-left:auto;font-family:Oswald,sans-serif;font-size:15px;color:#CBFF45}
.fx-banner-txt{flex:1 1 200px}
.fx-tag{display:inline-block;font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#0B141C;background:#FFB84D;padding:3px 8px;border-radius:999px;font-weight:700}
.fx-sesion-card{background:linear-gradient(145deg,rgba(29,48,22,.9),rgba(13,32,44,.98));border:1.5px solid #CBFF45;border-radius:18px;padding:13px;margin:0 0 14px;box-shadow:0 10px 28px rgba(0,0,0,.25)}
.fx-sesion-top{display:flex;align-items:center;justify-content:space-between}
.fx-sesion-top b{font-family:Oswald,sans-serif;font-size:18px;color:#CBFF45}
.fx-sesion-res{font-size:12.5px;color:#C8D5DE;margin:7px 0 9px}
.fx-sesion-lista{display:flex;flex-direction:column;gap:5px;margin-bottom:11px}
.fx-sesion-lista span{display:flex;align-items:center;gap:8px;font-size:13.5px}
.fx-sesion-lista i{font-style:normal;font-family:"IBM Plex Mono",monospace;font-size:10.5px;color:#71D7FF;width:14px}
.fx-sesion-lista em{margin-left:auto;font-style:normal;font-family:Oswald,sans-serif;color:#CBFF45}
.fx-btn-iniciar{font-size:15px}
.fx-sesion-ayuda{font-size:11.5px;color:#8FA3B0;margin-top:8px;text-align:center;line-height:1.4}
/* Reproductor */
body.fx-abierto{overflow:hidden}
.fx-player{position:fixed;inset:0;z-index:2000;overflow-y:auto;padding:max(14px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));color:#F7FAFF;background:radial-gradient(circle at 50% 0,rgba(203,255,69,.14),transparent 45%),#07121C;display:flex;flex-direction:column;gap:10px;--fx-acento:#CBFF45}
.fx-player.fase-descanso{--fx-acento:#FFB84D;background:radial-gradient(circle at 50% 0,rgba(255,184,77,.16),transparent 45%),#07121C}
.fx-top{display:flex;align-items:center;justify-content:space-between;gap:8px;max-width:520px;width:100%;margin:0 auto}
.fx-salir{border:0;background:none;color:#71D7FF;font:inherit;font-size:14px;cursor:pointer;padding:6px 0}
.fx-salir.armado{color:#FF6B63;font-weight:700}
.fx-kicker{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#71D7FF}
.fx-total{font-size:12px;color:#8FA3B0}.fx-total b{font-family:Oswald,sans-serif;color:#DCE7EE}
.fx-dots{display:flex;gap:6px;justify-content:center}
.fx-dots i{width:28px;height:6px;border-radius:6px;background:rgba(155,189,211,.25)}
.fx-dots i.ok{background:var(--fx-acento)}.fx-dots i.on{background:linear-gradient(90deg,var(--fx-acento) 55%,rgba(155,189,211,.25) 55%)}
.fx-ring{position:relative;width:min(62vw,236px);aspect-ratio:1;margin:4px auto}
.fx-ring svg{position:absolute;inset:0;width:100%;height:100%}
.fx-ring-bg{fill:none;stroke:rgba(155,189,211,.18);stroke-width:14}
.fx-ring-arc{fill:none;stroke:var(--fx-acento);stroke-width:14;stroke-linecap:round;stroke-dasharray:653.5;stroke-dashoffset:0;transition:stroke-dashoffset .2s linear}
.fx-ring-in{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.fx-ring-in small{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.2em;color:var(--fx-acento)}
.fx-ring-in span{font-family:Oswald,sans-serif;font-weight:700;font-size:clamp(52px,17vw,72px);line-height:1.05}
.fx-ring-in em{font-style:normal;font-size:12.5px;color:#A7BAC7}
.fx-ring-reps{border:14px solid rgba(113,215,255,.35);border-radius:50%}
.fx-player.pausado .fx-ring-in span{opacity:.5}
.fx-now,.fx-sig-card{display:flex;gap:12px;align-items:center;background:linear-gradient(145deg,rgba(20,49,66,.95),rgba(13,32,44,.98));border:1.5px solid var(--fx-acento);border-radius:18px;padding:10px;max-width:520px;width:100%;margin:0 auto}
.fx-now img,.fx-now .fx-img-vacia{width:92px;height:70px;border-radius:12px;object-fit:cover;flex:none}
.fx-now b{display:block;font-family:Oswald,sans-serif;font-size:21px;text-transform:uppercase;line-height:1.15}
.fx-now em{display:block;font-style:normal;font-size:12.5px;color:#A7BAC7;margin-top:2px}
.fx-now-nota{color:#DCE7EE!important}
.fx-sig-card{position:relative;padding-top:24px}
.fx-sig-card small{position:absolute;top:8px;left:12px;font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.14em;color:var(--fx-acento)}
.fx-sig-card img,.fx-sig-card .fx-img-vacia{width:74px;height:56px;border-radius:11px;object-fit:cover;flex:none}
.fx-sig-card b{display:block;font-family:Oswald,sans-serif;font-size:19px;text-transform:uppercase}
.fx-sig-card em{font-style:normal;font-size:13px;color:#CBFF45}
.fx-img-vacia{display:grid;place-items:center;background:rgba(255,255,255,.06);color:#8FA3B0}
.fx-next{max-width:520px;width:100%;margin:0 auto;font-size:13px;color:#A7BAC7;background:rgba(3,10,16,.5);border-radius:13px;padding:9px 11px}
.fx-naranja{color:#FFB84D}
.fx-ctrls{display:flex;gap:10px;max-width:520px;width:100%;margin:4px auto 0}
.fx-ctrls button{flex:1;height:56px;border-radius:16px;border:1px solid rgba(155,189,211,.3);background:rgba(3,10,16,.45);color:#F7FAFF;font-size:19px;cursor:pointer}
.fx-ctrls .fx-main{flex:1.6;border:0;background:linear-gradient(90deg,#CBFF45,#8EF0A0);color:#0B141C;font-family:Oswald,sans-serif;font-weight:700;font-size:19px;text-transform:uppercase;letter-spacing:.04em}
.fase-descanso .fx-ctrls .fx-main{background:linear-gradient(90deg,#FFB84D,#FFD58A)}
.fx-ayuda{text-align:center;font-size:12px;color:#8FA3B0}
.fx-amrap-lista{display:flex;flex-direction:column;gap:6px;max-width:520px;width:100%;margin:0 auto}
.fx-amrap-lista div{display:flex;align-items:center;gap:10px;background:rgba(3,10,16,.5);border-radius:12px;padding:6px 9px}
.fx-amrap-lista img,.fx-amrap-lista .fx-img-vacia{width:42px;height:32px;border-radius:7px;object-fit:cover}
.fx-amrap-lista b{font-size:14px;flex:1}.fx-amrap-lista em{font-style:normal;font-family:Oswald,sans-serif;color:#CBFF45}
.fx-amrap-cont{display:flex;align-items:center;justify-content:center;gap:16px}
.fx-amrap-cont button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(155,189,211,.35);background:none;color:#F7FAFF;font-size:22px;cursor:pointer}
.fx-amrap-cont span{display:block;font-family:Oswald,sans-serif;font-weight:700;font-size:46px;line-height:1;text-align:center;color:#CBFF45}
.fx-amrap-cont small{font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.14em;color:#8FA3B0}
.fx-guardando{margin:auto;text-align:center;color:#A7BAC7;display:flex;flex-direction:column;align-items:center;gap:14px}
.fx-spin{width:38px;height:38px;border-radius:50%;border:4px solid rgba(203,255,69,.2);border-top-color:#CBFF45;animation:fxgiro 1s linear infinite}
@keyframes fxgiro{to{transform:rotate(360deg)}}
.fx-fin{margin:auto;max-width:440px;width:100%;text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center}
.fx-fin h2{font-family:Oswald,sans-serif;font-size:27px;text-transform:uppercase;margin:0}
.fx-fin-stats{display:flex;gap:8px;width:100%}
.fx-fin-stats div{flex:1;background:rgba(3,10,16,.55);border:1px solid rgba(155,189,211,.2);border-radius:14px;padding:10px 4px}
.fx-fin-stats b{display:block;font-family:Oswald,sans-serif;font-size:24px;color:#CBFF45}
.fx-fin-stats small{font-family:"IBM Plex Mono",monospace;font-size:9px;letter-spacing:.1em;color:#8FA3B0}
.fx-aviso-error{font-size:12.5px;color:#FFB84D;background:rgba(255,184,77,.08);border-radius:12px;padding:9px}
.fx-fin .btn,.fx-fin .btn-ghost{width:100%}
@media (prefers-reduced-motion: reduce){.fx-ring-arc{transition:none}.fx-spin{animation-duration:3s}}

/* ===== Plantillas reutilizables + asignar ===== */
.pl-acceso{display:flex;align-items:center;gap:12px;width:100%;text-align:left;margin:0 0 14px;padding:13px 14px;border-radius:18px;border:1.5px solid rgba(203,255,69,.55);background:linear-gradient(135deg,rgba(203,255,69,.12),rgba(13,32,44,.95));color:#F7FAFF;font:inherit;cursor:pointer;box-shadow:0 10px 26px rgba(0,0,0,.22)}
.pl-acceso-ico{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#CBFF45;color:#0B141C;flex:none}
.pl-acceso-ico .icon{width:22px;height:22px}
.pl-acceso-txt{flex:1;min-width:0}.pl-acceso-txt small{display:block;font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.14em;color:#CBFF45}
.pl-acceso-txt b{display:block;font-family:Oswald,sans-serif;font-size:19px;text-transform:uppercase;letter-spacing:.02em}
.pl-acceso-txt em{display:block;font-style:normal;font-size:12.5px;color:#A7BAC7}
.pl-acceso-go{color:#CBFF45}
.pl-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:12px}
.pl-head h1{margin:4px 0 0}
.pl-btn-crear{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:12px;background:#CBFF45;color:#0B141C;font-family:Oswald,sans-serif;font-weight:700;font-size:15px;padding:10px 13px;cursor:pointer;white-space:nowrap}
.pl-search{display:flex;align-items:center;gap:9px;height:46px;border-radius:14px;background:rgba(3,10,16,.6);border:1.5px solid rgba(113,215,255,.4);padding:0 13px;margin-bottom:10px;color:#8FA3B0}
.pl-search input{flex:1;margin:0!important;border:0!important;background:none!important;padding:0!important;font-size:15px!important;color:#F7FAFF}
.pl-search input:focus{outline:none}
.pl-search:focus-within{border-color:#CBFF45}
.pl-search-sm{height:42px}
.pl-info{display:flex;gap:10px;align-items:center;font-size:12.5px;color:#C8D5DE;background:rgba(113,215,255,.07);border:1px solid rgba(113,215,255,.25);border-radius:14px;padding:10px 12px;margin-bottom:12px;line-height:1.4}
.pl-info span{flex:none;width:24px;height:24px;border-radius:50%;background:#46C8FF;color:#0B141C;display:grid;place-items:center;font-weight:800;font-family:Georgia,serif}
.pl-card{background:linear-gradient(145deg,rgba(20,49,66,.95),rgba(13,32,44,.98));border:1px solid rgba(155,189,211,.2);border-radius:18px;padding:12px;margin-bottom:11px}
.pl-card-top{display:flex;gap:12px;align-items:center}
.pl-img{width:84px;height:64px;border-radius:12px;object-fit:cover;flex:none}
.pl-img-vacia{display:grid;place-items:center;font-size:28px;background:rgba(203,255,69,.1)}
.pl-card-txt{flex:1;min-width:0}
.pl-card-txt b{display:block;font-family:Oswald,sans-serif;font-size:19px;line-height:1.2}
.pl-card-txt small{display:block;font-size:11.5px;color:#8FA3B0;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;color:#C8D5DE;margin-top:4px}
.pl-meta span{display:inline-flex;align-items:center;gap:4px}
.pl-meta .icon{width:13px;height:13px;color:#8FA3B0}
.pl-card-acciones{display:flex;gap:8px;margin-top:11px}
.pl-card-acciones button{height:44px;border-radius:12px;font:inherit;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px}
.pl-usar{flex:1.4;border:0;background:#CBFF45;color:#0B141C;font-family:Oswald,sans-serif!important;font-size:16px!important}
.pl-editar{flex:1;border:1px solid rgba(155,189,211,.35);background:rgba(3,10,16,.45);color:#F7FAFF}
.pl-mas{width:48px;flex:none;border:1px solid rgba(155,189,211,.35);background:rgba(3,10,16,.45);color:#F7FAFF;font-size:20px}
.pl-menu{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.pl-menu button{text-align:left;border:1px solid rgba(155,189,211,.22);background:rgba(3,10,16,.5);color:#DCE7EE;border-radius:11px;padding:10px 12px;font:inherit;cursor:pointer}
.pl-menu .pl-borrar{color:#FF8A80}
.pl-detalle{margin-top:10px}
body.pl-abierto{overflow:hidden}
.pl-capa{position:fixed;inset:0;z-index:1500;background:rgba(3,8,14,.66);display:flex;align-items:flex-end;justify-content:center}
.pl-sheet{width:100%;max-width:560px;max-height:92vh;overflow-y:auto;background:#0C1822;border-top-left-radius:24px;border-top-right-radius:24px;border-top:1px solid rgba(155,189,211,.25);padding:10px 16px max(18px,env(safe-area-inset-bottom));box-shadow:0 -20px 50px rgba(0,0,0,.6);color:#F7FAFF}
.pl-sheet-head{display:flex;gap:12px;align-items:center;margin-bottom:8px}
.pl-sheet-head > div{flex:1;min-width:0}
.pl-sheet-head b{display:block;font-family:Oswald,sans-serif;font-size:21px;line-height:1.2}
.pl-kicker{display:block;font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.14em;color:#CBFF45}
.pl-x{width:38px;height:38px;border-radius:50%;border:1px solid rgba(155,189,211,.3);background:none;color:#DCE7EE;font-size:16px;cursor:pointer;flex:none}
.pl-sheet-sub{font-size:12.5px;color:#A7BAC7;margin-bottom:12px;line-height:1.4}
.pl-sel-todos{display:flex;justify-content:space-between;align-items:center;margin:2px 0 8px}
.pl-sel-todos button{border:0;background:none;color:#71D7FF;font:inherit;font-size:13px;padding:0;cursor:pointer;text-decoration:underline}
.pl-sel-todos span{font-family:Oswald,sans-serif;color:#CBFF45;font-size:15px}
.pl-alumnos{display:flex;flex-direction:column;border:1px solid rgba(155,189,211,.2);border-radius:14px;overflow:hidden;max-height:36vh;overflow-y:auto}
.pl-alumno{display:flex;align-items:center;gap:11px;padding:9px 11px;border-bottom:1px solid rgba(155,189,211,.12);cursor:pointer;margin:0;text-transform:none;letter-spacing:0;font-family:inherit}
.pl-alumno:last-child{border-bottom:0}
.pl-alumno input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.pl-check{width:24px;height:24px;border-radius:7px;border:2px solid rgba(155,189,211,.45);display:grid;place-items:center;color:transparent;flex:none}
.pl-alumno.on{background:rgba(70,200,255,.08)}
.pl-alumno.on .pl-check{background:#46C8FF;border-color:#46C8FF;color:#0B141C}
.pl-alumno-txt{flex:1;min-width:0}.pl-alumno-txt b{display:block;font-size:14.5px;color:#F7FAFF}
.pl-alumno-txt small{display:block;font-size:11.5px;color:#8FA3B0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-opciones{margin:14px 0 10px;padding-top:12px;border-top:1px solid rgba(155,189,211,.15)}
.pl-op-titulo{font-family:Oswald,sans-serif;font-size:16px;margin-bottom:8px}
.pl-radio{display:flex;gap:10px;align-items:flex-start;padding:8px 0;margin:0;cursor:pointer;text-transform:none;letter-spacing:0;font-family:inherit;color:#F7FAFF}
.pl-radio input{width:20px;height:20px;margin:2px 0 0!important;flex:none;accent-color:#46C8FF}
.pl-radio b{display:block;font-size:14px}.pl-radio small{display:block;font-size:12px;color:#8FA3B0;line-height:1.35;margin-top:2px}
.pl-aviso{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;color:#DCE7EE;background:rgba(70,200,255,.07);border:1px solid rgba(70,200,255,.3);border-radius:13px;padding:10px 12px;margin-bottom:10px;line-height:1.4}
.pl-aviso .icon{flex:none;color:#46C8FF;margin-top:2px}
.pl-aviso b{color:#FFB84D}
.pl-elegir{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:1px solid rgba(155,189,211,.2);background:rgba(3,10,16,.45);border-radius:14px;padding:9px;margin-bottom:8px;color:#F7FAFF;font:inherit;cursor:pointer}
.pl-elegir .pl-img{width:62px;height:48px}
.pl-listo{text-align:center;padding:10px 4px 6px}
.pl-listo h2{font-family:Oswald,sans-serif;font-size:28px;margin:4px 0}
.pl-listo p{font-size:14px;color:#C8D5DE;line-height:1.45;margin:0 0 14px}

/* ===== Perfil del profesor ===== */
.perfil-pro-holder{margin-bottom:16px}
.pp-label{font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.16em;color:#8FA3B0;margin:0 0 7px}
.pp-titulo{margin:6px 0 12px}
.pp-card{--pp:#46C8FF;position:relative;background:linear-gradient(160deg,rgba(20,49,66,.96),rgba(10,24,34,.98));border:1px solid rgba(155,189,211,.2);border-radius:20px;overflow:hidden;padding-bottom:14px;box-shadow:0 12px 30px rgba(0,0,0,.25)}
.pp-portada{height:132px;background:radial-gradient(circle at 80% 20%,color-mix(in srgb,var(--pp) 55%,transparent),transparent 55%),linear-gradient(120deg,#16213A,#0B1520 60%,color-mix(in srgb,var(--pp) 35%,#0B1520));background-size:cover;background-position:center;position:relative}
.pp-portada:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(10,24,34,.85))}
.pp-portada-marca{position:absolute;right:14px;top:12px;font-family:Oswald,sans-serif;letter-spacing:.2em;font-size:11px;color:rgba(255,255,255,.35);z-index:1}
.pp-id{display:flex;align-items:flex-end;gap:12px;padding:0 14px;margin-top:-46px;position:relative;z-index:1;flex-wrap:wrap}
.pp-avatar{border-radius:50%;padding:4px;background:var(--pp);box-shadow:0 0 0 4px rgba(10,24,34,.95),0 0 24px color-mix(in srgb,var(--pp) 50%,transparent);flex:none}
.pp-avatar .profile-avatar.avatar-pp{width:92px;height:92px;border-radius:50%;overflow:hidden;display:block}
.pp-avatar .avatar-pp img{width:100%;height:100%;object-fit:cover}
.pp-avatar .avatar-pp .avatar-sprite{transform:scale(1.45);transform-origin:top left}
.pp-nombre{flex:1;min-width:120px;padding-bottom:4px}
.pp-nombre h2{font-family:Oswald,sans-serif;font-size:24px;margin:0;line-height:1.1}
.pp-nombre span{font-size:13px;color:#A7BAC7}
.pp-editar{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:11px;background:var(--pp);color:#0B141C;font-family:Oswald,sans-serif;font-weight:700;font-size:14px;padding:9px 12px;cursor:pointer;margin-bottom:6px}
.pp-chips{display:flex;flex-wrap:wrap;gap:7px;padding:12px 14px 0}
.pp-chips span{border:1px solid color-mix(in srgb,var(--pp) 55%,transparent);background:color-mix(in srgb,var(--pp) 12%,transparent);border-radius:11px;padding:6px 10px;font-size:13px;font-weight:700}
.pp-bio{font-size:13.5px;color:#C8D5DE;line-height:1.5;margin:11px 14px 0;white-space:pre-line}
.pp-bio-vacia{color:#8FA3B0;font-style:italic}
.pp-stats{display:flex;margin:13px 14px 0;border:1px solid rgba(155,189,211,.2);border-radius:15px;background:rgba(3,10,16,.45)}
.pp-stats div{flex:1;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:11px 12px}
.pp-stats div + div{border-left:1px solid rgba(155,189,211,.18)}
.pp-ico{grid-row:1/3;color:var(--pp)}.pp-ico .icon{width:26px;height:26px}
.pp-stats b{font-family:Oswald,sans-serif;font-size:21px;line-height:1.1}
.pp-stats small{font-size:12px;color:#A7BAC7}
.pp-form{margin-top:12px}
.pp-portada-btn{margin-bottom:6px}
.pp-esp{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
.pp-esp-op{border:1px solid rgba(155,189,211,.3);background:rgba(255,255,255,.03);color:#DCE7EE;border-radius:999px;padding:7px 11px;font:inherit;font-size:12.5px;cursor:pointer}
.pp-esp-op.on{background:color-mix(in srgb,var(--pp) 22%,transparent);border-color:var(--pp);color:#F7FAFF;font-weight:700}
.pp-anos{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.pp-anos button{width:38px;height:38px;border-radius:11px;border:0;background:rgba(255,255,255,.08);color:#F7FAFF;font-size:19px;cursor:pointer}
.pp-anos span{font-family:Oswald,sans-serif;font-size:24px;min-width:34px;text-align:center}
.pp-colores{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.pp-color{width:40px;height:40px;border-radius:50%;border:3px solid transparent;background:var(--c);cursor:pointer;box-shadow:0 0 0 2px rgba(255,255,255,.12)}
.pp-color.on{border-color:#F7FAFF;box-shadow:0 0 0 3px var(--c),0 0 18px var(--c)}
.pp-ayuda{font-size:12px;color:#8FA3B0;margin-bottom:12px}
.pp-ver-link{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin:-6px 0 14px;border:0;background:none;color:#71D7FF;font:inherit;font-size:13px;cursor:pointer;padding:6px}
.pp-chat{margin-top:14px}
.pl-card-acciones .icon{width:16px;height:16px;flex:none}
.pl-usar{white-space:nowrap}
.pl-rutina-acciones{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 10px}.pl-rutina-acciones .btn-sm{flex:1;justify-content:center;white-space:nowrap}
/* v65: perfil del profe en su inicio */
.coach-home-titulo small{display:block;font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.16em;color:#71D7FF}
.coach-home-titulo b{display:block;font-family:Oswald,sans-serif;font-size:22px;line-height:1.2}
.pp-home{display:block;margin:0 0 14px;cursor:pointer;border-radius:20px;-webkit-tap-highlight-color:transparent}
.pp-home:focus-visible{outline:2px solid #CBFF45;outline-offset:3px}
.pp-home:active .pp-card{transform:scale(.99)}
.pp-home .pp-card{transition:transform .12s}
.pp-home-ayuda{text-align:center;font-size:11.5px;color:#8FA3B0;margin-top:6px}
.uc-mesociclo-history{margin:0 0 16px;color:#c8b7ff;border-color:#68558f;gap:8px;}
.uc-mesociclo-archive{margin-bottom:12px;border:1px solid #4b527e;border-radius:16px;background:linear-gradient(115deg,#182a3c,#25213c);overflow:hidden;}
.uc-mesociclo-archive>summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px;color:#e9e2ff;}
.uc-mesociclo-archive>summary b{display:block;font:600 20px 'Oswald',sans-serif;overflow-wrap:anywhere;}
.uc-mesociclo-archive>summary small{display:block;margin-top:6px;font-size:11px;color:#b4bed3;}
.uc-mesociclo-archive>.uc-mesociclo-resumen{border:0;border-top:1px solid #4b527e;border-radius:0;margin:0;box-shadow:none;}
.uc-mesociclo-empty{color:#bcc8da;line-height:1.6;}
.uc-meso-days-tools{margin-top:18px;padding-top:14px;border-top:1px solid #405067;}
.uc-meso-days-tools>div{display:flex;gap:8px;align-items:center;}
.uc-meso-days-tools input{flex:1;min-width:0;margin:0;}
.uc-meso-help{font-size:11px;color:#aebdd1;line-height:1.5;margin:4px 0 12px;}
#meso-quitar-dia{margin-left:8px;color:#e2adbb;}
