.context{min-width:145px;margin-left:auto}.context select{min-height:38px;padding:.45rem}.subpanel tbody tr{background:color-mix(in srgb,var(--sport,var(--brand)) 7%,transparent)}.subpanel tbody tr:nth-child(even){background:color-mix(in srgb,var(--sport,var(--brand)) 12%,transparent)}.order{display:flex;gap:.25rem}.order button{padding:.42rem .52rem}.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.profile-stat{padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--bg)}.sport-icon{width:1.35em;height:1.35em;display:inline-block;vertical-align:-.28em;object-fit:contain}.event .sport-icon{width:1.5em;height:1.5em}.sport-heading{display:flex;align-items:center;gap:.5rem}@media(max-width:900px){.context{order:2;margin-left:auto}.profile-grid{grid-template-columns:1fr 1fr}}

/* Identidad visual inequívoca por disciplina */
.sport-speed_skating .subpanel{background:#eef6fa;border-color:#b7d7e8}.sport-speed_skating .subpanel th{background:#d8ebf5;color:#245c7d}.sport-speed_skating .subpanel tbody tr{background:#f4f9fc}.sport-speed_skating .subpanel tbody tr:nth-child(even){background:#e8f3f9}
.sport-speed_skating #sport-editor>.sport-heading{margin:0;padding:1rem 1rem .55rem;background:#eef6fa;border:1px solid #b7d7e8;border-bottom:0;border-radius:18px 18px 0 0}.sport-speed_skating #sport-editor>.sport-heading+.subpanel{border-top:0;border-radius:0 0 18px 18px;padding-top:.35rem}
.sport-road_cycling .subpanel{background:#edf5f0;border-color:#b9d8c4}.sport-road_cycling .subpanel th{background:#d8eadf;color:#285f40}.sport-road_cycling .subpanel tbody tr{background:#f5faf7}.sport-road_cycling .subpanel tbody tr:nth-child(even){background:#e7f2eb}
.sport-gym .subpanel{background:#fbf1ea;border-color:#e8c6ae}.sport-gym .subpanel th{background:#f3dfd1;color:#8a4f28}.sport-gym .subpanel tbody tr{background:#fdf8f4}.sport-gym .subpanel tbody tr:nth-child(even){background:#f8e9df}
.sport-nutrition .subpanel{background:#fbedf3;border-color:#e9bfd0}.sport-nutrition .subpanel th{background:#f4d9e4;color:#8a3d60}.sport-nutrition .subpanel tbody tr{background:#fdf7fa}.sport-nutrition .subpanel tbody tr:nth-child(even){background:#f8e4ec}
.form-status{min-height:1.35rem;margin:.5rem 0;color:#2f7049;font-weight:700}.form-status.error{color:#a23838}.menu-toggle{display:none;font-size:1.45rem;line-height:1;padding:.65rem .8rem}
.workout-summary{grid-column:span 2;display:grid;grid-template-columns:minmax(150px,.7fr) minmax(260px,1.3fr);gap:.7rem;align-self:end}.workout-summary>div{display:grid;gap:.12rem;padding:.62rem .8rem;border:1px solid #b7d7e8;border-radius:12px;background:#eef6fa}.workout-summary small,.workout-summary span{color:var(--muted);font-size:.72rem}.workout-summary strong{font-size:1.25rem;color:#245c7d}
.inline-summary{grid-column:auto;margin:0 0 1rem;grid-template-columns:1fr 2fr}
.skate-table{min-width:1200px;table-layout:fixed}.skate-table th,.skate-table td{padding:.34rem .24rem}.skate-table td input,.skate-table td textarea{min-width:0;padding:.48rem .38rem}.skate-table .skate-col-series,.skate-table .skate-col-reps{width:54px}.skate-table .skate-col-distance{width:82px}.skate-table .skate-col-intensity{width:58px}.skate-table .skate-col-micro,.skate-table .skate-col-macro,.skate-table .skate-col-transition{width:64px}.skate-table .skate-col-laps{width:74px}.skate-table .skate-col-lap{width:82px}.skate-table .skate-col-heart{width:76px}.skate-table .skate-col-time{width:102px}.skate-table .skate-col-speed{width:94px}.skate-table .skate-col-note{width:210px}.skate-table .skate-col-order{width:94px}.skate-table textarea{width:100%}.mobile-field-heading{display:none}

@media(max-width:900px){
  body.menu-open{overflow:hidden}body.menu-open::before{content:"";position:fixed;inset:0;background:rgba(18,18,18,.38);z-index:45}body.menu-open header{z-index:1000}
  header{position:sticky;top:0;display:grid;grid-template-columns:auto 1fr auto auto auto;gap:.45rem;padding:.55rem .7rem;z-index:50}
  .brand b{display:none}.menu-toggle{display:block;grid-column:4}.context{grid-column:2;grid-row:1;margin:0;min-width:0}.context small{display:none}.context select{width:100%;font-size:.82rem}
  #main-nav{display:none;position:fixed;left:.7rem;right:.7rem;top:4.7rem;max-height:calc(100dvh - 5.5rem);overflow-y:auto;padding:.75rem;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 55px rgba(18,18,18,.32);grid-template-columns:1fr;gap:.3rem;z-index:1000;isolation:isolate}
  #main-nav.open{display:flex!important;flex-direction:column}#main-nav a:not([hidden]){display:block!important;position:static!important;width:100%;padding:.85rem 1rem;text-align:left;background:#fff;border-radius:10px;color:var(--ink);font-weight:800}#main-nav a.active{background:var(--ink);color:#fff}.menu-toggle{position:relative;z-index:1001;background:#fff}.identity{grid-column:3;grid-row:1}.identity small,.identity b{display:none}.identity button{padding:.65rem}
  .page{padding:.8rem}.title{align-items:flex-start}.title h1{font-size:clamp(2rem,11vw,3.2rem)}.panel{padding:.85rem;border-radius:18px}.formgrid,.cols2{grid-template-columns:1fr}.workout-summary{grid-column:1;grid-template-columns:1fr 1fr}.inline-summary{grid-template-columns:1fr 1fr}
  .profile-grid{grid-template-columns:1fr 1fr}.table-wrap{overflow:visible;width:100%}
  .calendar.month{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;overflow:visible}.calendar.month .day{min-width:0;min-height:72px;padding:3px;border-radius:6px}.calendar.month .day>strong{font-size:.62rem;display:block;white-space:nowrap;margin-bottom:2px}.calendar.month .event{display:block;width:100%;min-height:0;padding:3px;margin:2px 0;border-left-width:3px;border-radius:5px;font-size:.56rem;line-height:1.1;overflow:hidden}.calendar.month .event b{display:flex;min-width:0;align-items:center;gap:2px}.calendar.month .event b span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar.month .event .sport-icon{width:10px;height:10px;flex:0 0 auto}.calendar.month .event small{display:none}.calendar.week{grid-template-columns:1fr;overflow:visible}
}

@media(max-width:700px){
  .subpanel{padding:.7rem}.subpanel .table-wrap table{display:block;width:100%;min-width:0}.subpanel table>tr:first-child,.subpanel thead{display:none}.subpanel tbody{display:grid;width:100%;gap:.75rem}.subpanel tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;width:100%;padding:.7rem;border:1px solid color-mix(in srgb,var(--sport,#777) 28%,#ddd);border-radius:13px}
  .subpanel tbody td{display:grid;min-width:0;padding:0;border:0;gap:.2rem;align-content:start}.subpanel tbody td::before{content:attr(data-label);font-size:.68rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.subpanel tbody td input,.subpanel tbody td textarea{width:100%;min-width:0;padding:.62rem}.subpanel tbody td[data-label="Nota"],.subpanel tbody td[data-label="Orden"]{grid-column:1/-1}.subpanel .order{justify-content:flex-end}.skate-table{min-width:0;table-layout:auto}.skate-table td::before{display:none}.skate-table .mobile-field-heading{display:flex;align-items:center;gap:.18rem;font-size:.68rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.skate-table .mobile-field-heading .info-tip{width:13px;height:13px;font-size:8px;margin:0;flex:0 0 13px}.workout-summary{grid-template-columns:1fr}
  dialog{width:calc(100% - 1rem);max-width:none;padding:.85rem}.savebar{position:static;display:grid;grid-template-columns:1fr}.savebar .check{grid-column:1}.savebar button{width:100%}
}

@media(max-width:420px){.page{padding:.5rem}.calendar.month .day{min-height:58px;padding:2px}.calendar.month .day>strong{font-size:.55rem}.calendar.month .event{font-size:.5rem;padding:2px}.profile-grid{grid-template-columns:1fr}.subpanel tbody tr{grid-template-columns:1fr 1fr}.sport-heading{font-size:1.25rem}}
.calendar-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin:.55rem 0}.calendar-metrics .metric{padding:.55rem .7rem;border-radius:12px}.calendar-metrics .metric small{font-size:.68rem}.calendar-metrics .metric strong{font-size:1rem}.calendar.month{gap:3px;overflow:visible;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar.month .day{min-width:0;min-height:120px;border-radius:6px;padding:.4rem}.calendar.month .day>strong{font-size:.78rem;margin-bottom:.25rem}.calendar.month .event{padding:.35rem .42rem;margin:.2rem 0;border-radius:6px;font-size:.75rem}.calendar.month .event small{font-size:.62rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event.dragging{opacity:.45}.day.drop-target{outline:3px dashed var(--brand);outline-offset:-4px;background:#fff}.drop-actions{display:grid;gap:.6rem}
@media(max-width:900px){.calendar-metrics{gap:3px}.calendar-metrics .metric{padding:.35rem;border-radius:8px}.calendar-metrics .metric small{font-size:.52rem;white-space:nowrap;overflow:hidden}.calendar-metrics .metric strong{font-size:.72rem}.calendar.month{gap:2px}.calendar.month .day{min-height:72px;padding:3px}.calendar.month .day>strong{font-size:.58rem;margin-bottom:2px}.calendar.month .event{padding:3px;margin:2px 0;border-left-width:3px;font-size:.54rem}.calendar.month .event small{display:none}.calendar.month .event .sport-icon{width:9px;height:9px}}
@media(max-width:420px){.calendar.month .day{min-height:58px;padding:2px}.calendar.month .day>strong{font-size:.5rem}.calendar.month .event{font-size:.47rem;padding:2px}.calendar-metrics .metric small{display:none}.calendar-metrics .metric strong{font-size:.68rem}}
.info-tip {
  position: relative; display: inline-grid; place-items: center;
  width: 17px; height: 17px; min-height: 0; padding: 0; margin-left: 2px;
  border: 1px solid currentColor; border-radius: 50%; background: transparent;
  color: inherit; font-size: 11px; font-weight: 800; line-height: 1; vertical-align: 2px;
}
.info-popover{position:fixed;z-index:1000;width:max-content;max-width:min(260px,calc(100vw - 16px));padding:9px 11px;border-radius:9px;background:#191a19;color:#fff;font-size:13px;font-weight:650;line-height:1.3;white-space:normal;box-shadow:0 8px 28px #0005}
.checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.45rem;margin:.55rem 0 1rem}.checks .check,.group-scope .check{padding:.65rem;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.role-permission{display:flex;align-items:center;gap:.42rem;padding:.2rem .4rem .2rem .2rem;border:1px solid var(--line);border-radius:10px;background:var(--bg);cursor:help}.checks .role-permission .check{flex:1;padding:.45rem;border:0;background:transparent}.role-permission .info-tip{flex:0 0 auto;margin:0;cursor:help}
.person-info,.group-row>div:first-child{display:grid;gap:.18rem}.person-row small,.group-row small{display:block}.person-row.is-inactive{opacity:.66;background:#f1efeb}.permission-box{margin:1rem 0;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--bg)}
@media(max-width:700px){.person-row,.group-row{align-items:flex-start;gap:.75rem}.person-row>.actions,.group-row>.actions{width:100%;justify-content:flex-end;flex-wrap:wrap}}
.theme-panel{margin:1rem 0}.theme-panel>div>p{color:var(--muted)}.theme-panel form{display:grid;grid-template-columns:1fr 1fr auto auto;gap:.7rem;align-items:end}.theme-panel input[type=color]{padding:.25rem;height:48px}.objective-card{grid-column:1/-1;background:color-mix(in srgb,var(--entity-menu,#aaa398) 10%,var(--paper));border-color:color-mix(in srgb,var(--entity-menu,#aaa398) 38%,var(--line))}
.logo-settings{display:grid;grid-template-columns:110px 1fr;gap:1rem;align-items:center;margin:1rem 0;padding:1rem;border:1px solid var(--line);border-radius:16px;background:var(--bg)}.logo-settings h3,.logo-settings p{margin:.2rem 0 .55rem}.logo-settings p{color:var(--muted)}.logo-preview{width:100px;height:100px;display:grid;place-items:center;border:1px dashed var(--line);border-radius:14px;background:var(--paper);overflow:hidden}.logo-preview img{width:100%;height:100%;object-fit:contain}.file-button{display:inline-flex;width:auto;cursor:pointer;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:.72rem 1rem;color:var(--ink)}.file-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.brand span img{width:100%;height:100%;object-fit:contain;border-radius:9px}.entity-brand{display:flex;align-items:center;gap:.5rem;min-width:0;max-width:240px;padding-left:1rem;border-left:1px solid color-mix(in srgb,var(--entity-on-menu) 30%,transparent);color:var(--entity-on-menu)}.entity-brand span{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:10px;background:var(--paper);overflow:hidden}.entity-brand img{width:100%;height:100%;object-fit:contain}.entity-brand b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root{--entity-menu:#aaa398;--entity-on-menu:#191a19}
header{background:color-mix(in srgb,var(--entity-menu) 94%,transparent)!important;color:var(--entity-on-menu);border-bottom-color:color-mix(in srgb,var(--entity-menu) 72%,black)!important}
button.primary,.tabs .active,.segmented .active{background:var(--entity-action,var(--entity-menu))!important;color:var(--entity-on-action,var(--entity-on-menu))!important;border-color:var(--entity-action,var(--entity-menu))!important}
header .brand,header nav a,header .identity{color:var(--entity-on-menu)!important}
header nav a.active{background:var(--paper)!important;color:var(--ink)!important}
header .brand span,header #logout,header .menu-toggle{background:var(--paper)!important;color:var(--ink)!important;border-color:color-mix(in srgb,var(--entity-menu) 35%,var(--line))!important}
header .context{color:var(--entity-on-menu)!important}
header .context select{background:var(--paper)!important;color:var(--ink)!important}
@media(max-width:900px){header #main-nav a{background:var(--paper)!important;color:var(--ink)!important}header #main-nav a.active{background:var(--entity-menu)!important;color:var(--entity-on-menu)!important}}
@media(max-width:900px){header .entity-brand{grid-column:1/-1;grid-row:2;max-width:none;width:100%;padding:.35rem 0 0;border-left:0;border-top:1px solid color-mix(in srgb,var(--entity-on-menu) 25%,transparent)}header .entity-brand span{width:30px;height:30px;flex-basis:30px}header .entity-brand b{font-size:.86rem}}
@media(max-width:700px){.theme-panel form{grid-template-columns:1fr 1fr}.theme-panel form button{width:100%}.logo-settings{grid-template-columns:72px 1fr;padding:.7rem}.logo-preview{width:64px;height:64px}.logo-settings .actions{grid-column:1/-1;flex-wrap:wrap}.logo-settings .actions>*{flex:1}}
.intensity-guide-head{display:flex;justify-content:flex-end;margin:0 0 .6rem}.intensity-guide-head button{padding:.45rem .7rem;font-size:.82rem}.guide-table{min-width:620px}.intensity-method-note{margin:.75rem .25rem 0;color:var(--muted);font-size:.78rem;font-style:italic;line-height:1.45}.guide-heart{margin-top:1rem;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--bg)}.guide-heart table,.heart-profile table{min-width:0}.heart-zone-picker{margin:.75rem 0;padding:.85rem;border:1px solid #b7d7e8;border-radius:13px;background:#eef6fa}.heart-zone-picker h3,.heart-zone-picker p{margin:.15rem 0 .5rem}.heart-limit{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:.8rem 0;padding:.8rem;border:1px solid #b7d7e8;border-radius:12px;background:#eef6fa}.heart-profile{margin-top:1rem;padding:1rem;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.heart-profile .title{margin-bottom:.7rem}.heart-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin:.6rem 0}.heart-summary span{display:grid;padding:.7rem;border-radius:10px;background:var(--bg)}.heart-summary small{color:var(--muted)}.heart-profile details{margin-top:.8rem}.heart-profile summary{cursor:pointer;font-weight:800}.result-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}.result-row small{display:block;color:var(--muted)}.result-row p{margin:.35rem 0 0}.status-done{color:#26734d;font-weight:800;white-space:nowrap}
.notification-toggle{position:relative;flex:0 0 auto;padding:.62rem}.notification-toggle span{position:absolute;right:-5px;top:-6px;display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#a22828;color:#fff;font-size:.68rem}.notification-panel{position:fixed;z-index:1200;right:1rem;top:4.8rem;width:min(390px,calc(100vw - 2rem));max-height:70vh;overflow:auto;padding:.7rem;border:1px solid var(--line);border-radius:15px;background:var(--paper);color:var(--ink);box-shadow:0 18px 55px #0005}.notification-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.3rem}.notification-head button{padding:.35rem;font-size:.72rem}.notification-item{display:grid;width:100%;gap:.2rem;margin:.35rem 0;padding:.7rem;text-align:left}.notification-item small{color:var(--muted)}.notification-item.unread{border-left:4px solid var(--entity-menu);background:color-mix(in srgb,var(--entity-menu) 9%,var(--paper))}.notification-item.wellbeing-alert{border-left:4px solid #c47c22;background:#fff8e8}.notification-item.wellbeing-alert.unread{background:#fff0cf}.notification-empty{padding:.7rem;color:var(--muted)}
header.auto-compact #main-nav{display:none;position:fixed;left:.7rem;right:.7rem;top:4.7rem;max-height:calc(100dvh - 5.5rem);overflow-y:auto;padding:.75rem;background:var(--paper);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 55px rgba(18,18,18,.32);z-index:1000}
header.auto-compact #main-nav.open{display:flex!important;flex-direction:column}header.auto-compact #main-nav a:not([hidden]){display:block!important;width:100%;padding:.85rem 1rem;text-align:left;background:var(--paper);color:var(--ink)!important}header.auto-compact #main-nav a.active{background:var(--entity-menu)!important;color:var(--entity-on-menu)!important}header.auto-compact .menu-toggle{display:block;order:20;position:relative;z-index:1001}header.auto-compact .identity{margin-left:auto}header.auto-compact .entity-brand{max-width:190px}
@media(max-width:900px){header .notification-toggle{grid-column:3;grid-row:1}.identity{grid-column:4}.menu-toggle{grid-column:5}.notification-panel{top:4.3rem}.heart-summary{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.heart-summary{grid-template-columns:1fr}.guide-table{min-width:560px}.notification-panel{left:.5rem;right:.5rem;width:auto}}

/* Cabecera ordenada para la vista de entrenador */
header[data-context="coach"]{gap:.8rem}
header[data-context="coach"] .brand{flex:0 0 auto}
header[data-context="coach"] .entity-brand{flex:0 1 280px;max-width:280px}
header[data-context="coach"] .entity-brand b{display:-webkit-box;overflow:hidden;white-space:normal;text-overflow:clip;line-height:1.15;-webkit-box-orient:vertical;-webkit-line-clamp:2}
header[data-context="coach"] #main-nav{position:relative;display:flex;justify-content:center;align-items:center;min-width:150px;overflow:visible}
header[data-context="coach"] #main-nav>a.nav-overflow{display:none!important}
.more-toggle{align-self:center;min-width:2.6rem;border:0;background:transparent;padding:.48rem .65rem;border-radius:10px;color:inherit;font-size:1.35rem;line-height:1;white-space:nowrap}
.more-toggle:hover,.more-toggle.active{background:var(--paper);color:var(--ink)}
.more-menu{position:absolute;z-index:1100;right:0;top:calc(100% + .55rem);min-width:190px;padding:.45rem;border:1px solid var(--line);border-radius:13px;background:var(--paper);box-shadow:0 16px 42px #0004}
.more-menu a{display:block!important;width:100%;margin:.1rem 0;padding:.7rem .8rem!important;background:transparent!important;color:var(--ink)!important;text-align:left}
.more-menu a.active{background:var(--entity-menu)!important;color:var(--entity-on-menu)!important}
header[data-context="coach"] .identity{position:relative;flex:0 0 auto;min-width:215px;padding-top:.38rem}
header[data-context="coach"] .identity .notification-toggle{position:absolute;z-index:2;left:.1rem;top:-.55rem;width:auto;min-width:0;min-height:0;margin:0;padding:0;border:0!important;background:transparent!important;color:var(--entity-on-menu)!important;font-size:.72rem;line-height:1;opacity:.78}
header[data-context="coach"] .identity .notification-toggle:hover{opacity:1;filter:none}
header[data-context="coach"] .identity .notification-toggle span{right:-10px;top:-8px;min-width:16px;height:16px;padding:0 4px;font-size:.58rem}
header[data-context="coach"] .context{flex:0 0 210px;min-width:210px;margin-left:0}
@media(max-width:900px){header[data-context="coach"] .entity-brand{grid-column:1/-1;grid-row:2;max-width:none}header[data-context="coach"] #main-nav{display:none}header[data-context="coach"] #main-nav.open{display:flex}header[data-context="coach"] .identity{display:flex;grid-column:3;grid-row:1;min-width:0;padding:0;gap:.3rem}header[data-context="coach"] .identity .notification-toggle{position:relative;left:auto;top:auto;padding:.55rem!important;background:var(--paper)!important;color:var(--ink)!important;font-size:.8rem}header[data-context="coach"] .identity #logout{margin:0}header[data-context="coach"] .context{grid-column:2;grid-row:1;min-width:0}}

/* Método VLO 2.0 */
:root{--entity-menu:#bfe9e6;--entity-on-menu:#16252b;--entity-action:#15adaa;--entity-on-action:#fff;--bg:#f1f4f4;--surface:#fff;--text:#16252b;--public-menu:#c9d0d0;--public-bg:#eaf8f7;--public-surface:#fff;--public-text:#16252b}

.auth .public-kicker:empty,.preview-subtitle:empty{display:none!important}
.visual-inspector .inspector-note{color:var(--muted);font-size:.78rem;line-height:1.4}.visual-inspector label+label{margin-top:.65rem}
body{background:var(--bg);color:var(--text)}.panel,.card,.metric,.subpanel{background:var(--surface)}
.auth{background:var(--public-bg);color:var(--public-text)}.auth aside{background:var(--public-menu);color:#fff}.auth-card{background:var(--public-surface)}
.brand .app-logo{width:48px;height:48px;object-fit:contain}.brand .vlo-word{font-family:'Montserrat Alternates','Montserrat',sans-serif;font-size:1.45rem;letter-spacing:.04em}
.entity-brand{min-width:0}.entity-brand span{flex:none}.entity-brand b{max-width:260px;white-space:normal;line-height:1.1;overflow-wrap:anywhere}
.organization-card{display:grid;grid-template-columns:76px 1fr;gap:1rem;border-top:6px solid var(--card-accent);min-width:310px}.organization-logo{width:72px;height:72px;object-fit:contain;border-radius:16px;background:#fff;padding:.35rem}.status-chip{display:inline-block;padding:.25rem .55rem;border-radius:999px;font-size:.75rem;font-weight:800}.status-chip.active{background:#d9f7ed;color:#17664e}.status-chip.inactive{background:#fff1c8;color:#755700}.status-chip.deleted{background:#fde1e1;color:#8a2525}
.global-theme-preview{margin:1rem 0;padding:2rem;border-radius:20px}.global-theme-preview>div{max-width:540px;margin:auto;padding:1.5rem;border-radius:18px}.global-theme-preview button{color:#fff}
.date-jump{display:flex;align-items:end;gap:.55rem}.date-jump label{min-width:120px}.date-jump select{min-width:120px}
.objective-reminder{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem;padding:.8rem 1rem;border-left:5px solid var(--entity-menu);border-radius:12px;background:var(--surface)}.objective-reminder small{font-weight:700}.objective-reminder strong{flex:1}.info-dot{width:30px;height:30px;min-height:0!important;padding:0!important;border-radius:50%;font-family:serif;font-weight:800}
.public-preview{text-align:center}.public-preview img{width:150px}.theme-tabs{margin-bottom:1rem}
@media(max-width:760px){.organization-card{grid-template-columns:58px 1fr;min-width:0}.organization-logo{width:56px;height:56px}.date-jump{width:100%;flex-wrap:wrap}.date-jump label{flex:1}.entity-brand b{max-width:none}}

/* Protección estricta: un logo subido nunca puede ampliar la cabecera. */
#app-header{overflow:visible}
#entity-brand{display:flex!important;align-items:center!important;gap:.55rem!important;flex:0 1 280px!important;width:auto!important;height:56px!important;min-width:0!important;max-width:280px!important;overflow:hidden!important}
#entity-brand[hidden]{display:none!important}
#entity-brand>span{display:grid!important;place-items:center!important;flex:0 0 42px!important;width:42px!important;height:42px!important;min-width:42px!important;max-width:42px!important;min-height:42px!important;max-height:42px!important;overflow:hidden!important;border-radius:10px!important;background:#fff!important}
#entity-brand>span>img{display:block!important;width:100%!important;height:100%!important;min-width:0!important;max-width:42px!important;min-height:0!important;max-height:42px!important;object-fit:contain!important}
#entity-brand>b{display:-webkit-box!important;min-width:0!important;max-width:220px!important;overflow:hidden!important;line-height:1.1!important;white-space:normal!important;overflow-wrap:anywhere!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important}

/* 2.1: portada diagonal editable y logo adaptativo. */
.auth{position:relative;display:block;min-height:100vh;padding:0;overflow:hidden;background:linear-gradient(135deg,var(--public-menu) 0 var(--public-diagonal,43%),var(--public-bg) var(--public-diagonal,43%) 100%)}
.auth>aside{position:absolute;z-index:1;left:var(--public-brand-x,7%);top:var(--public-brand-y,22%);width:min(40vw,560px);max-width:none;transform:scale(var(--public-brand-scale,1));transform-origin:top left;padding:0;background:transparent!important;color:var(--public-text)}
.auth>aside .app-logo{width:150px;height:150px;max-width:38vw;object-fit:contain}.auth>aside h1{margin:.25rem 0;font-size:clamp(4rem,9vw,8rem)}.auth .public-kicker{color:var(--public-text)}
.auth>.auth-card{position:absolute;z-index:2;left:var(--public-card-x,58%);top:var(--public-card-y,14%);width:min(var(--public-card-width,520px),calc(100vw - var(--public-card-x,58%) - 3vw));max-height:82vh;overflow:auto;background:var(--public-surface)}
.layout-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.layout-controls input[type=range]{padding:0}
.global-theme-preview{position:relative;min-height:420px;overflow:hidden;background:linear-gradient(135deg,var(--preview-left,#15adaa) 0 var(--preview-diagonal,43%),var(--preview-right,#f6fbfa) var(--preview-diagonal,43%) 100%)}
.global-theme-preview .preview-brand,.global-theme-preview .preview-card{position:absolute;transform-origin:top left;cursor:grab;touch-action:none;user-select:none}.global-theme-preview .preview-brand:active,.global-theme-preview .preview-card:active{cursor:grabbing}.global-theme-preview .preview-brand{width:34%;background:transparent!important}.global-theme-preview .preview-brand img{width:85px;height:85px;object-fit:contain}.global-theme-preview .preview-brand b{display:block;font-size:2rem}.global-theme-preview .preview-card{padding:1.2rem;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 35px #0002}.global-theme-preview .preview-card button{width:100%}

/* Todas las acciones permanecen dentro de su tarjeta. */
.cards{align-items:stretch}.card{min-width:0;overflow:hidden}.card>.actions,.card>div>.actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:.55rem;width:100%;margin-top:auto}.card>.actions button,.card>div>.actions button{flex:1 1 120px;min-width:0;max-width:100%;white-space:normal}
.organization-card{grid-template-columns:76px minmax(0,1fr);height:100%;overflow:hidden}.organization-card>div{display:flex;min-width:0;flex-direction:column}.organization-card h3{overflow-wrap:anywhere}.organization-card .actions{padding-top:.5rem}
#library .card{display:flex;min-width:0;flex-direction:column;height:100%}#library .card .actions{margin-top:auto}

/* Notificación discreta sin invadir Salir. */
header[data-context="coach"] .identity{display:flex!important;align-items:center!important;gap:.65rem!important;min-width:0!important;padding:0!important}header[data-context="coach"] .identity .notification-toggle{position:relative!important;left:auto!important;top:auto!important;display:grid!important;place-items:center!important;flex:0 0 42px!important;width:42px!important;height:42px!important;margin:0!important;padding:0!important;border:1px solid color-mix(in srgb,var(--entity-on-menu) 35%,transparent)!important;border-radius:12px!important;background:color-mix(in srgb,var(--entity-on-menu) 12%,transparent)!important;color:var(--entity-on-menu)!important;font-size:1rem!important;opacity:1!important}header[data-context="coach"] .identity #logout{flex:0 0 auto!important;margin:0!important}.karvonen-table td:nth-child(3),.karvonen-table td:nth-child(4){white-space:nowrap}

/* Dietas de varios días. */
.nutrition-help{color:var(--muted)}.nutrition-days{display:grid;gap:1rem}.nutrition-day{overflow:hidden}.nutrition-day .section-head{justify-content:space-between}.nutrition-day .section-head h3{margin:0}.nutrition-table{min-width:680px;table-layout:fixed}.nutrition-table th:first-child{width:24%}.nutrition-table th:nth-child(2){width:auto}.nutrition-table th:last-child{width:150px}.nutrition-table textarea{display:block;width:100%;min-height:58px;resize:vertical;overflow:hidden;white-space:pre-wrap}.add-day{margin-top:1rem}.objective-field{display:grid;gap:.4rem}.objective-field .field-title{display:flex;align-items:center;gap:.5rem;color:var(--muted)}.objective-field textarea{min-height:110px}.weekly-load-event{border-color:var(--entity-menu)!important;background:color-mix(in srgb,var(--entity-menu) 12%,var(--paper))!important;font-size:.72rem!important}.weekly-load-event .sport-icon{width:1.1em!important;height:1.1em!important}.load-info{grid-column:span 2;display:flex!important;align-items:center;justify-content:space-between;gap:.75rem}.load-info small{font-weight:700}.load-info .info-dot{flex:0 0 30px}

:root{--running:#c79a20;--stretching:#66788e}
.running{--sport:var(--running)}.stretching{--sport:var(--stretching)}
.event.running{background:#fff8d8;border-color:#e3c969}.event.stretching{background:#f1f3f7;border-color:#bcc6d4}
.sport-running{box-shadow:inset 0 5px var(--running)}.sport-stretching{box-shadow:inset 0 5px var(--stretching)}
.sport-running .subpanel{background:#fff8d8;border-color:#e3c969}.sport-running .subpanel th{background:#f7e9a8;color:#765b00}.sport-running .subpanel tbody tr{background:#fffdf1}.sport-running .subpanel tbody tr:nth-child(even){background:#fff5c9}
.sport-stretching .subpanel{background:#f1f3f7;border-color:#bcc6d4}.sport-stretching .subpanel th{background:#dfe4ec;color:#4d6178}.sport-stretching .subpanel tbody tr{background:#f8f9fb}.sport-stretching .subpanel tbody tr:nth-child(even){background:#e9edf2}
.exercise-photo-button{display:inline-grid!important;place-items:center;flex:0 0 34px!important;width:34px!important;min-width:34px!important;height:34px!important;padding:0!important;border:2px solid var(--sport,var(--entity-action))!important;border-radius:9px!important;background:var(--paper)!important;color:var(--text)!important;font-family:serif!important;font-size:1rem!important;font-weight:900!important;line-height:1!important;box-shadow:0 2px 7px #0001}.exercise-photo-button:hover,.exercise-photo-button:focus-visible{background:color-mix(in srgb,var(--sport,var(--entity-action)) 14%,var(--paper))!important;transform:translateY(-1px)}
.date-picker{width:min(100%,760px);margin:1rem 0;padding:1rem;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.date-picker-head{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:.55rem;margin-bottom:.75rem}.date-picker-head>button{min-width:0;height:44px;padding:.35rem;font-size:1.35rem}.date-picker-head>#date-picker-prev{order:1}.date-picker-head>#date-picker-title{order:2;text-align:center;text-transform:capitalize}.date-picker-head>#date-picker-next{order:3}.assignment-date-jump{order:0;grid-column:1/-1;display:grid!important;grid-template-columns:minmax(140px,1fr) minmax(110px,1fr) auto;width:100%!important;gap:.65rem}.assignment-date-jump label{min-width:0}.assignment-date-jump select{width:100%}.assignment-date-jump button{align-self:end;height:48px}#date-picker-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem}#date-picker-grid>b{display:grid;place-items:center;min-height:34px;color:var(--muted);font-size:.82rem}#date-picker-grid>i{display:block;min-height:46px}#date-picker-grid>button{display:grid;place-items:center;min-width:0;width:100%;min-height:46px;padding:.25rem;border-radius:10px;font-size:1rem}#date-picker-grid>button.selected{border-color:var(--entity-action);background:var(--entity-action);color:var(--entity-on-action)}.date-picker>small{display:block;margin-top:.7rem;color:var(--muted)}
.running-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;margin:0 0 .8rem}.running-summary span{display:grid;padding:.75rem;border:1px solid #e3c969;border-radius:12px;background:#fff8d8}.running-summary small{color:#765b00}.running-summary b{font-size:1.2rem}.running-table{min-width:920px}.running-table textarea,.stretching-table textarea{min-height:48px}.calculation-note{color:#765b00;font-size:.8rem}.calculated-value{background:#fff4bd!important}.calculated-value>small{display:block;margin-top:.25rem;color:#765b00;font-size:.65rem;font-weight:700}.stretching-table{min-width:760px}.exercise-picker{display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:.35rem;min-width:260px}.exercise-picker input{width:100%;min-width:0}.duration-input{display:flex;align-items:center;gap:.35rem}.duration-input input{width:95px}.exercise-info{display:grid;grid-template-columns:minmax(180px,32%) 1fr;gap:1.2rem}.exercise-visual{display:grid;place-items:center;min-height:240px;border-radius:16px;background:#f1f3f7}.exercise-visual img{width:100%;max-height:420px;object-fit:contain}.exercise-visual .sport-icon{width:96px;height:96px}.objective-advice{padding:.5rem}.objective-advice p{font-size:1.05rem;line-height:1.6}.objective-advice button{margin-top:1rem}
@media(max-width:700px){.running-summary{grid-template-columns:1fr}.exercise-info{grid-template-columns:1fr}.exercise-visual{min-height:170px}.date-picker{padding:.7rem}.assignment-date-jump{grid-template-columns:1fr 1fr}.assignment-date-jump button{grid-column:1/-1}.date-picker-head{grid-template-columns:42px minmax(0,1fr) 42px}#date-picker-grid{gap:.25rem}#date-picker-grid>button,#date-picker-grid>i{min-height:38px}}

/* 2.3.0 */
.app-footer{display:grid;gap:.25rem;padding:1.2rem 1.5rem;text-align:center;border-top:1px solid #263840;background:#10232d;color:#f3f6f6;font-size:.82rem}.app-footer a{color:#35d7d2;font-weight:800}.button-link{display:inline-flex;align-items:center;justify-content:center;padding:.72rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:inherit;text-decoration:none;font-weight:750}.invite-result{display:grid;gap:.8rem;margin-top:1rem;padding:1rem;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--entity-action) 9%,var(--paper))}.muted{color:var(--muted)}.group-comparison{min-width:760px}.coach-card-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem;margin-bottom:1rem}.coach-permission-card{padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--paper);box-shadow:0 5px 16px #10232d0b}.coach-name{padding-bottom:.7rem;border-bottom:1px solid var(--line)}.coach-permissions{display:grid;gap:.7rem;padding-top:.75rem}.coach-permissions input:disabled+*{opacity:.5}button.primary,.primary{background:var(--entity-action)!important;color:var(--entity-on-action)!important;border-color:var(--entity-action)!important}header{background:color-mix(in srgb,var(--entity-menu) 94%,transparent)!important;border-bottom-color:var(--line)!important}
.app-footer{display:grid;gap:.25rem;padding:1.2rem 1.5rem;text-align:center;border-top:1px solid #263840;background:#10232d;color:#f3f6f6;font-size:.82rem}.app-footer a{color:#35d7d2;font-weight:800}.footer-guides{display:flex;justify-content:center;gap:.75rem;flex-wrap:wrap}.footer-guides button{padding:0;border:0;background:transparent;color:#35d7d2;font:inherit;font-weight:800;text-decoration:underline;cursor:pointer}.role-guide{display:grid;gap:.7rem}.role-guide h2,.role-guide p{margin:0}.role-guide details{padding:.8rem;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.role-guide summary{cursor:pointer;font-weight:800}.role-guide details p{margin:.6rem 0 0;line-height:1.45}.button-link{display:inline-flex;align-items:center;justify-content:center;padding:.72rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:inherit;text-decoration:none;font-weight:750}.invite-result{display:grid;gap:.8rem;margin-top:1rem;padding:1rem;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--entity-action) 9%,var(--paper))}.muted{color:var(--muted)}.group-comparison{min-width:760px}.coach-card-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem;margin-bottom:1rem}.coach-permission-card{padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--paper);box-shadow:0 5px 16px #10232d0b}.coach-name{padding-bottom:.7rem;border-bottom:1px solid var(--line)}.coach-permissions{display:grid;gap:.7rem;padding-top:.75rem}.coach-permissions input:disabled+*{opacity:.5}button.primary,.primary{background:var(--entity-action)!important;color:var(--entity-on-action)!important;border-color:var(--entity-action)!important}header{background:color-mix(in srgb,var(--entity-menu) 94%,transparent)!important;border-bottom-color:var(--line)!important}
.auth-help,.access-request{margin:.1rem 0;color:var(--muted);font-size:.9rem;line-height:1.45}.access-request{padding-top:.25rem}.access-request a{color:var(--entity-action);font-weight:800}.turnstile-box{min-height:65px;display:flex;align-items:center;color:var(--muted)}#resend-verification{justify-self:start}
.calendar-athletes-field{grid-column:1/-1;min-width:0;padding:1rem;border:1px solid var(--line);border-radius:14px}.athlete-picker-actions,.selected-athletes{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.athlete-chip{padding:.45rem .7rem;border-color:color-mix(in srgb,var(--entity-action) 55%,var(--line));background:color-mix(in srgb,var(--entity-action) 10%,var(--paper));font-size:.9rem}.athlete-search-results{display:grid;max-height:270px;margin-top:.4rem;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:0 12px 28px #10232d1c}.athlete-search-results button{display:grid;gap:.1rem;width:100%;padding:.7rem .9rem;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}.athlete-search-results button:hover{background:color-mix(in srgb,var(--entity-action) 9%,var(--paper))}.athlete-search-results small{font-weight:500;color:var(--muted)}
.visual-editor-view{max-width:none}.visual-editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.visual-editor-toolbar>div:first-child{display:grid}.visual-editor-toolbar small{color:var(--muted)}.visual-editor-form{position:relative}.visual-canvas{min-height:680px;border:1px solid var(--line);border-radius:18px}.canvas-zone{position:absolute;z-index:0;inset:0;border:0;border-radius:0;background:transparent}.zone-left{right:50%;clip-path:polygon(0 0,100% 0,58% 100%,0 100%)}.zone-right{left:40%;clip-path:polygon(35% 0,100% 0,100% 100%,0 100%)}.visual-object{position:absolute!important;z-index:2;cursor:move;user-select:none;transform-origin:top left}.visual-object:hover,.visual-object:focus{outline:2px dashed #fff;outline-offset:5px}.visual-canvas>.preview-brand{width:110px;max-width:none;margin:0;padding:0}.preview-brand img{display:block;width:100%;height:auto}.preview-word{font-size:clamp(3rem,7vw,7rem);line-height:.9}.preview-title{font-size:1.25rem;font-weight:600;margin:0}.preview-subtitle{font-size:1rem;text-transform:uppercase;letter-spacing:.08em}.visual-inspector{position:absolute;z-index:10;right:1rem;top:1rem;width:min(290px,calc(100% - 2rem));padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--paper);box-shadow:0 14px 40px #0004}.inspector-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.inspector-head button{padding:.3rem .55rem}.mobile-canvas{width:390px;min-height:720px;margin:auto}.mobile-canvas .preview-card{max-width:350px!important}.visual-canvas>.preview-card{position:absolute;display:grid;gap:.75rem;max-width:none;margin:0}.visual-canvas .preview-card .tabs{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.visual-canvas .preview-card .tabs button{color:var(--text)}.visual-canvas .preview-card .tabs .active{color:#fff}.visual-canvas .preview-card h2{margin:0}.visual-canvas .preview-card label{display:grid;gap:.25rem}.visual-canvas .preview-card input{pointer-events:none}.visual-canvas .preview-card p{color:var(--muted)}
@media(max-width:800px){.visual-editor-toolbar{align-items:flex-start;flex-direction:column}.visual-editor-toolbar .actions{flex-wrap:wrap}.visual-canvas{min-height:620px}}
@media(min-width:901px){.auth>aside{position:absolute;inset:0;width:auto;transform:none}.auth>aside .app-logo{position:absolute;left:var(--public-brand-x,7%);top:var(--public-brand-y,22%);width:110px;transform:scale(var(--public-brand-scale,1));transform-origin:top left}.auth>aside .vlo-word{position:absolute;left:var(--public-word-x,7%);top:var(--public-word-y,46%);margin:0;transform:scale(var(--public-word-scale,1));transform-origin:top left}.auth>aside #public-title{position:absolute;left:var(--public-title-x,7%);top:var(--public-title-y,66%);width:min(34vw,520px);margin:0;text-align:center}.auth>aside #public-subtitle{position:absolute;left:var(--public-subtitle-x,7%);top:var(--public-subtitle-y,73%);margin:0}}

@media(max-width:900px){.auth{display:grid;padding:1rem;background:var(--public-bg)}.auth>aside{display:none}.auth>.auth-card{position:relative;left:auto;top:auto;width:min(100%,540px);max-height:none;margin:auto}.layout-controls{grid-template-columns:1fr}.global-theme-preview{min-height:330px}.organization-card{grid-template-columns:58px minmax(0,1fr)}}
.visual-canvas .preview-title{width:min(34vw,520px);text-align:center}
.verification-notice{display:grid;gap:1rem;padding:.5rem}.verification-notice h2{font-size:clamp(1.8rem,4vw,2.5rem);margin:0}.verification-notice p{font-size:1.08rem;line-height:1.55;margin:0}.verification-notice .primary{justify-self:start;padding:.85rem 1.2rem}

/* 2.7: la portada conserva proporciones en cualquier pantalla y muestra marca en móvil. */
.independent-athletes-panel{margin-top:1rem}.independent-athletes-panel .section-head p{margin:.25rem 0 0;color:var(--muted)}.independent-athlete-card{--sport:var(--entity-action);display:flex;flex-direction:column}.independent-athlete-card .actions{margin-top:auto}.danger-button{color:#9c3030;border-color:#d9a4a4}.danger-button:hover{background:#fff0f0}
@media (min-width:901px){.auth{min-height:100svh;overflow:auto}.auth>.auth-card{top:clamp(1rem,var(--public-card-y,14%),14vh);max-height:calc(100svh - 2rem)}.auth>aside .app-logo{width:clamp(76px,8vw,150px);height:clamp(76px,8vw,150px)}.auth>aside .vlo-word{font-size:clamp(3.4rem,8vw,8rem)}.auth>aside #public-title{font-size:clamp(1rem,2vw,1.45rem);line-height:1.25}.auth>aside #public-subtitle{font-size:clamp(.8rem,1.3vw,1rem)}}
@media (max-width:900px){.auth{display:flex!important;flex-direction:column;min-height:100svh;padding:clamp(.8rem,3vw,1.4rem);overflow:auto;align-items:center;justify-content:center}.auth>.auth-card{width:min(100%,620px);margin:0;max-height:none;flex:0 0 auto}.auth::after{content:'VLO';display:block;order:2;flex:0 0 auto;width:100%;margin-top:1rem;padding-top:3.4rem;background:url('/brand/para fondos claros.svg') center top/42px 42px no-repeat;color:var(--public-text);font-size:1.1rem;font-weight:900;letter-spacing:.08em;text-align:center}.auth>aside{display:none!important}}
#auth[hidden]{display:none!important}

/* 2.10.3: portada automática y editor de color sin posiciones manuales. */
.simple-theme-editor{position:relative;display:grid;gap:1.35rem;max-width:920px}.simple-theme-editor section{display:grid;gap:.8rem}.simple-theme-editor h2,.simple-theme-editor p{margin:0}.simple-theme-editor p{color:var(--muted)}.simple-theme-editor .actions{justify-content:flex-end}
@media (min-width:901px){
  .auth{position:relative;display:block!important;min-height:100svh;padding:0!important;overflow:hidden}
  .auth>aside{position:absolute!important;inset:0 auto 0 0!important;display:grid!important;place-items:center;align-content:center;gap:clamp(1.2rem,3vw,2.6rem);width:clamp(330px,39vw,760px)!important;max-width:none;min-height:100%;margin:0;text-align:center}
  .auth>aside .app-logo{position:static!important;display:block;width:clamp(90px,10vw,170px)!important;height:auto!important;margin:0;transform:none!important}
  .auth>aside .vlo-word{position:static!important;margin:0!important;font-size:clamp(4rem,8vw,8rem)!important;line-height:.82;transform:none!important}
  .auth>aside #public-title{position:static!important;width:auto!important;max-width:34rem;margin:0!important;font-size:clamp(1rem,1.8vw,1.45rem)!important;line-height:1.3;text-align:center;transform:none!important}
  .auth>aside #public-subtitle{position:static!important;margin:0!important;transform:none!important}
  .auth>.auth-card{position:absolute!important;left:clamp(52%,58vw,62%)!important;top:50%!important;width:min(36vw,540px);max-height:calc(100svh - 2rem);margin:0!important;transform:translateY(-50%)}
}
@media(max-width:650px){.simple-theme-editor .actions{align-items:stretch;flex-direction:column}.simple-theme-editor .actions button{width:100%}}
@media (max-width:520px){.auth{padding:.75rem}.auth>.auth-card{padding:1rem;border-radius:18px}.auth .tabs{gap:.4rem}.auth .tabs button{padding:.65rem .4rem;font-size:.9rem}.auth::after{margin-top:.7rem;padding-top:2.8rem;background-size:34px 34px;font-size:.95rem}}

/* 2.11: los planes agrupan una planificación completa, no una tarjeta por día. */
.plan-library{margin:2rem 0;display:grid;gap:.65rem}.plan-library>h2,.plan-library>p{margin:0}.plan-library>p{color:var(--muted)}.plan-card{border-top:6px solid #7b3f87}.plan-detail{display:grid;gap:1rem}.plan-detail h2,.plan-detail p{margin:0}.plan-detail section{padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.plan-detail section h3{margin:0 0 .7rem}.plan-detail .row{padding:.45rem 0;border-top:1px solid var(--line)}.plan-detail .row:first-of-type{border-top:0}.plan-detail .actions{margin-top:.5rem}.plan-library .cards{align-items:stretch}@media(max-width:650px){.plan-library .cards{grid-template-columns:1fr}.plan-detail .actions{flex-direction:column;align-items:stretch}.plan-detail .actions button{width:100%}}
.training-target-search{margin-top:.45rem;width:100%;font-size:.9em}

/* 2.8: controles claros para la supervisión global y el encuadre de logos. */
.admin-filters{margin:.7rem 0 1rem;justify-content:flex-start}.admin-filters input{max-width:270px}.independent-athletes-panel #independent-athlete-search{max-width:360px;margin:0 0 1rem}.organization-logo-crop{display:grid;width:72px;height:72px;overflow:hidden;border-radius:16px;background:#fff}.organization-logo-crop .organization-logo{width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:.35rem;transform:scale(var(--logo-scale,1));transform-origin:var(--logo-x,50%) var(--logo-y,50%)}.entity-logo-crop>img,#entity-brand>span.entity-logo-crop>img{transform:scale(var(--logo-scale,1));transform-origin:var(--logo-x,50%) var(--logo-y,50%)}.logo-preview img{transform:scale(var(--logo-scale,1));transform-origin:var(--logo-x,50%) var(--logo-y,50%)}.logo-adjust-preview{display:grid;place-items:center;width:min(230px,100%);aspect-ratio:1;margin:1rem auto;border:1px dashed var(--line);border-radius:18px;overflow:hidden;background:var(--bg)}.logo-adjust-preview img{width:100%;height:100%;object-fit:contain;transform:scale(var(--logo-scale,1));transform-origin:var(--logo-x,50%) var(--logo-y,50%)}.logo-adjustment{display:grid;gap:1rem}.logo-adjustment h2,.logo-adjustment p{margin:0}.logo-adjustment output{float:right;font-weight:800;color:var(--ink)}.logo-adjustment .actions{justify-content:flex-end}.super-navigation{display:flex;gap:.5rem;align-items:center}.super-navigation button[hidden]{display:none!important}@media(max-width:760px){.admin-filters{flex-direction:column;align-items:stretch}.admin-filters input{max-width:none}.independent-athletes-panel #independent-athlete-search{max-width:none}.organization-logo-crop{width:56px;height:56px}.super-navigation{order:3;width:100%}.super-navigation button{flex:1}}
.ungrouped-summary-button{display:grid;gap:.2rem;width:100%;text-align:left;border:0;background:transparent;padding:0}.ungrouped-summary-button span{font-weight:500;color:var(--muted)}.person-group{color:var(--muted)}.group-athlete-search{display:grid;gap:.35rem;margin:.1rem 0 .7rem}.group-athlete-search input{max-width:420px}

/* 2.14: el calendario es la pieza principal, con controles compactos. */
#v-calendar>.title>div:first-child{display:none}#v-calendar>.title{margin:0 0 .65rem;align-items:center}.calendar-heading{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.calendar-heading #calendar-period{font-size:clamp(1.2rem,2.5vw,1.7rem)}#calendar-add{min-width:2.55rem;width:2.55rem;height:2.55rem;padding:0;font-size:1.55rem;line-height:1}#calendar-save-plan{padding:.55rem .7rem;font-size:.88rem}#calendar-date-jump{padding:.55rem .7rem;min-width:2.55rem;font-size:1.05rem}.date-jump{display:none!important}#v-calendar .toolbar{margin-top:.35rem;align-items:end}#v-calendar .segmented button{padding:.5rem .75rem;font-size:.9rem}.calendar-metrics{margin:.6rem 0}.calendar-metrics .metric{padding:.5rem .65rem}.calendar-metrics .metric strong{font-size:1rem}

/* Calendario prioritario: controles en una franja y la cuadrícula gana altura. */
#v-calendar>.title{margin:0 0 .35rem}.calendar-heading{width:100%;min-height:48px;flex-wrap:nowrap}.calendar-heading #calendar-period{font-size:clamp(1.3rem,2.3vw,1.8rem);text-transform:capitalize;white-space:nowrap;margin-right:auto}.calendar-heading .actions{gap:.35rem;flex-wrap:nowrap}.calendar-heading #calendar-add{display:none}.calendar-heading #calendar-save-plan{order:2;min-height:2.3rem;padding:.42rem .65rem}.calendar-heading #calendar-date-jump{order:1;min-width:2.3rem;height:2.3rem;padding:.35rem}.calendar-heading #today,.calendar-heading #prev,.calendar-heading #next{min-width:2.3rem;height:2.3rem;padding:.35rem}.calendar-heading #today{min-width:auto;padding:.35rem .62rem}.calendar-heading [data-staff]{order:8;display:grid;gap:.2rem;min-width:min(350px,31vw);margin-left:.7rem}.calendar-heading [data-staff] select{min-height:2.3rem;padding:.38rem .55rem;font-size:.85rem}.calendar-heading [data-staff]::first-line{font-size:.7rem}.calendar-heading [data-staff]{font-size:.7rem}.calendar-heading [data-staff] label{font-size:.7rem}#v-calendar .toolbar{margin:.2rem 0 .35rem;justify-content:flex-start}.calendar-metrics{display:flex;gap:.35rem;margin:.25rem 0 .4rem}.calendar-metrics .metric{display:flex;align-items:center;gap:.35rem;padding:.32rem .5rem;border-radius:10px}.calendar-metrics .metric small{font-size:.68rem}.calendar-metrics .metric strong{font-size:.82rem}.calendar.month{gap:4px}.calendar.month .day{min-height:clamp(120px,15vh,190px);padding:.34rem;border-radius:8px}.calendar-day-label{display:flex!important;align-items:baseline;gap:.28rem;margin:0 0 .28rem!important;padding:0!important;cursor:pointer;user-select:none}.calendar-day-label span{font-size:.66rem;font-weight:750;color:var(--muted);text-transform:capitalize}.calendar-day-label b{font-size:.95rem;line-height:1;color:var(--ink)}.calendar-day-label:hover b{text-decoration:underline;text-decoration-color:var(--entity-action);text-decoration-thickness:2px;text-underline-offset:3px}.day-menu-actions{display:flex;gap:.6rem;flex-wrap:wrap}
#v-calendar{margin-top:-1rem}.calendar-heading #calendar-period{margin-right:0}.calendar-heading .segmented{order:1;margin-left:.35rem}.calendar-heading .segmented button{min-height:2.3rem;padding:.38rem .6rem}.calendar-heading .actions{order:2;margin-left:auto}.calendar-heading [data-staff]{order:3;min-width:min(330px,27vw);margin-left:.45rem}#v-calendar .toolbar{display:none}.calendar.month .day{min-height:clamp(150px,18vh,235px)}.day-highlighted{background:color-mix(in srgb,var(--day-highlight) 15%,var(--paper))!important;border-color:color-mix(in srgb,var(--day-highlight) 55%,var(--line))!important}.day-highlighted .calendar-day-label{border-bottom:3px solid var(--day-highlight);padding-bottom:.18rem!important}.day-mark-actions{display:flex;gap:.55rem;flex-wrap:wrap}.day-mark-red{background:#fff0f0!important;border-color:#eaa0a0!important}.day-mark-green{background:#ebf8ef!important;border-color:#8ec69c!important}.day-mark-orange{background:#fff3e4!important;border-color:#e8b36f!important}
@media(max-width:700px){#v-calendar{margin-top:-.35rem}.calendar-heading{flex-wrap:wrap;gap:.35rem}.calendar-heading #calendar-period{order:0;width:auto;font-size:1.12rem}.calendar-heading .segmented{order:1;margin-left:auto}.calendar-heading .segmented button{min-height:2rem;padding:.3rem .45rem;font-size:.76rem}.calendar-heading .actions{order:2;width:100%;margin-left:0}.calendar-heading [data-staff]{order:3;width:100%;min-width:0;margin-left:0}.calendar.month .day{min-height:78px}.day-menu-actions,.day-mark-actions{display:grid;grid-template-columns:1fr}.day-menu-actions button,.day-mark-actions button{width:100%}}

/* El mismo lenguaje visual del editor original al editar dentro de un plan. */
.plan-session-editor{display:grid;gap:1rem}.plan-session-editor h2,.plan-session-editor p{margin:0}.plan-session-editor .table-wrap{padding:.75rem;border:1px solid var(--line);border-radius:16px;overflow:auto}.plan-session-editor .badge{justify-self:start}.plan-session-editor.sport-nutrition .table-wrap{background:#fff2f7;border-color:#d56b95}.plan-session-editor.sport-speed_skating .table-wrap{background:#eff9ff;border-color:#4c93bd}.plan-session-editor.sport-road_cycling .table-wrap{background:#f1faef;border-color:#57995e}.plan-session-editor.sport-running .table-wrap{background:#fff8df;border-color:#d0a51f}.plan-session-editor.sport-gym .table-wrap{background:#f1f0ff;border-color:#7564b7}.plan-session-editor.sport-stretching .table-wrap{background:#f8eef9;border-color:#b06bbb}.plan-session-editor table input{min-width:110px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.mobile-series-list{display:grid;gap:.5rem}.mobile-series-list h3{margin:.2rem 0}.mobile-series-row{display:flex;align-items:center;justify-content:space-between;gap:.7rem;width:100%;padding:.75rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-align:left;font-weight:700}.mobile-series-row>div{display:grid;gap:.12rem;min-width:0}.mobile-series-row small{display:block;color:var(--muted)}.mobile-row-indicator{flex:0 0 auto;font-size:1.5rem;line-height:1;color:var(--muted)}.block-info-overlay{position:absolute;z-index:8;inset:0;display:grid;place-items:center;padding:1rem;background:rgba(9,29,42,.56)}.block-info-card{position:relative;width:min(100%,520px);max-height:100%;overflow:auto;padding:1.25rem;border-radius:20px;background:var(--surface);box-shadow:0 20px 60px rgba(0,0,0,.3)}.block-info-card h3{margin:.65rem 0 1rem}.block-info-close{position:absolute;right:.8rem;top:.8rem;min-width:2.35rem;height:2.35rem;padding:0;font-size:1.4rem}.block-info-fields{display:grid;gap:.55rem}.block-info-fields div{display:flex;justify-content:space-between;gap:1rem;padding:.65rem;border-radius:10px;background:var(--bg)}

#mobile-account-actions{display:none}
@media(max-width:700px){#v-calendar>.title{margin:.1rem 0 .45rem}.calendar-heading{width:100%;justify-content:space-between}.calendar-heading .actions{display:flex;gap:.35rem;flex-wrap:nowrap}.calendar-heading #calendar-period{font-size:1.05rem;order:-1;width:100%}#calendar-save-plan{font-size:.78rem;padding:.48rem .55rem}#v-calendar .toolbar{display:grid;grid-template-columns:1fr;gap:.45rem}#v-calendar .segmented{justify-content:flex-start}#v-calendar .segmented button{padding:.42rem .62rem;font-size:.82rem}#v-calendar [data-staff]{max-width:100%}.calendar-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem}.calendar-metrics .metric{padding:.4rem .45rem}.calendar-metrics .metric small{font-size:.72rem}.calendar-metrics .metric strong{font-size:.88rem}.plan-session-editor .table-wrap{padding:.45rem}.plan-session-editor table input{min-width:92px}.plan-session-editor .actions{flex-direction:column;align-items:stretch}.plan-session-editor .actions button{width:100%}.identity>span,.identity .who{display:none!important}#mobile-account-actions{display:grid;gap:.55rem;padding:.7rem;border-top:1px solid rgba(255,255,255,.25)}#mobile-account-actions .context{display:block!important}#mobile-account-actions select,#mobile-account-actions button{width:100%}#mobile-account-actions #notification-toggle{display:block!important}.block-info-card{padding:1rem}.block-info-fields div{display:grid;gap:.18rem}.mobile-series-list article{font-size:.88rem}}

/* Móvil: el calendario empieza pronto; la cabecera se reduce sin afectar al ordenador. */
@media(max-width:700px){
  #app-header{padding:.45rem .7rem;gap:.45rem}
  #app-header .brand .app-logo{width:42px;height:42px}
  #app-header .brand .vlo-word{font-size:1.1rem}
  #entity-brand{height:48px!important;max-width:calc(100vw - 150px)!important}
  #entity-brand>span{flex-basis:36px!important;width:36px!important;height:36px!important;min-width:36px!important;max-width:36px!important;max-height:36px!important}
  #entity-brand>b{font-size:1rem!important;-webkit-line-clamp:1!important}
  #v-calendar>.title{margin:0 0 .35rem}
  .calendar-heading{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:.35rem!important;min-height:0!important}
  .calendar-heading #calendar-period{grid-column:1;grid-row:1;order:initial!important;width:auto!important;margin:0!important;font-size:1.05rem!important}
  .calendar-heading .segmented{grid-column:2;grid-row:1;order:initial!important;margin:0!important;gap:.22rem}
  .calendar-heading .segmented button{min-height:2rem;padding:.28rem .4rem;font-size:.72rem}
  .calendar-heading .actions{grid-column:1/-1;grid-row:2;order:initial!important;width:auto!important;margin:0!important;display:flex!important;gap:.28rem!important}
  .calendar-heading #today,.calendar-heading #prev,.calendar-heading #next,.calendar-heading #calendar-save-plan,.calendar-heading #calendar-date-jump{min-height:2rem!important;height:2rem!important;padding:.25rem .45rem!important;font-size:.76rem}
  .calendar-heading #calendar-date-jump{min-width:2rem!important;width:2rem!important}
  .calendar-heading [data-staff]{grid-column:1/-1;grid-row:3;order:initial!important;width:100%!important;min-width:0!important;margin:0!important;font-size:.65rem}
  .calendar-heading [data-staff] select{min-height:2.1rem;font-size:.78rem}
  .calendar-metrics{display:flex!important;gap:.25rem!important;margin:.15rem 0 .3rem!important}
  .calendar-metrics .metric{padding:.22rem .38rem!important;min-height:1.85rem}
  .calendar-metrics .metric small{display:none}
  .calendar-metrics .metric strong{font-size:.72rem!important}
  .calendar.month .day{min-height:82px}
}

/* 2.16.7: lectura de sesiones, acciones seguras y asistencia inequívoca. */
#modal:has(.assignment-detail){width:min(98vw,1600px);max-width:none;height:min(94svh,1000px);max-height:none;padding:1.25rem;overflow:auto}
#modal:has(.assignment-detail) #modal-content{max-width:none}.assignment-detail{min-height:100%;display:grid;align-content:start;gap:.75rem}.assignment-detail .table-wrap{max-width:100%;overflow:auto}
.danger-button{color:#9c3030;border-color:#d9a4a4}.danger-button:hover,.danger-button:focus-visible{background:#fff0f0;border-color:#cf7373;color:#7e2020}
[data-present].primary{background:#e1f5e8!important;border-color:#7cbd91!important;color:#155b37!important}[data-absent].primary{background:#fde8e8!important;border-color:#da8d8d!important;color:#862525!important}[data-present]:hover,[data-present]:focus-visible{background:#edf9f1;border-color:#91c9a2}[data-absent]:hover,[data-absent]:focus-visible{background:#fff0f0;border-color:#e0a0a0}
.today-track{display:grid;gap:.65rem;padding:1rem;border:1px solid color-mix(in srgb,var(--skate) 38%,var(--line));border-radius:14px;background:#eff9ff}.today-track h3,.today-track p{margin:0}.today-track p{color:var(--muted);line-height:1.42}.today-track form{display:grid;gap:.55rem}.term-info{display:inline-grid;place-items:center;min-width:1.25rem!important;width:1.25rem;height:1.25rem;padding:0;border-radius:50%;font-size:.75rem;vertical-align:middle}.term-help{margin:.7rem 0 0;padding:.7rem;border-radius:10px;background:#fff8df;line-height:1.35}
@media(max-width:700px){#modal:has(.assignment-detail){width:100vw;height:100svh;max-height:none;margin:0;padding:1rem;border:0;border-radius:0;overflow:hidden}#modal:has(.assignment-detail)>.close{position:fixed;top:max(.8rem,env(safe-area-inset-top));right:.8rem;z-index:90;width:2.6rem;height:2.6rem;padding:0;background:var(--paper)}#modal:has(.assignment-detail) #modal-content{height:100%;overflow:auto;padding-top:3.3rem}.assignment-detail{padding-bottom:1.5rem}.today-track .actions{display:grid;grid-template-columns:1fr}.today-track .actions button{width:100%}.mobile-series-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.mobile-series-row span{min-width:0;line-height:1.35}.block-info-overlay{position:fixed;z-index:100}.block-info-card{width:100%;height:100%;max-height:none;border-radius:0;padding:1.25rem;padding-top:3.5rem}.block-info-fields{max-height:calc(100svh - 9rem);overflow:auto}}

/* 2.16.8: decisiones del editor visibles sin inducir a guardar plantillas. */
.savebar{align-items:center}.savebar #assign-only{background:#e7f7ed;border-color:#87c7a0;color:#155b37}.savebar #assign-only:hover,.savebar #assign-only:focus-visible{background:#d7f0e0}.savebar #save-and-assign{background:#e8f0ff!important;border-color:#91addd!important;color:#174a9a!important}.savebar #save-and-assign:hover,.savebar #save-and-assign:focus-visible{background:#d9e7ff!important}.editor-action-help{display:inline-grid;place-items:center;align-self:center;min-width:1.8rem!important;width:1.8rem;height:1.8rem;padding:0;border-radius:50%;font-size:.85rem;color:var(--muted)}
@media(max-width:700px){.savebar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem}.savebar button:not(.editor-action-help){width:100%}.editor-action-help{min-width:2.3rem!important;width:2.3rem;height:2.3rem}.savebar #save-only{grid-column:1}.savebar #save-and-assign{grid-column:1}}

/* Competiciones y eventos: el color elegido identifica el día sin perder contraste. */
.event.calendar_event{border-color:var(--event-color,#6b7280)!important;background:color-mix(in srgb,var(--event-color,#6b7280) 16%,var(--paper))!important}
.event.group-colored-assignment{background:color-mix(in srgb,var(--group-color) 16%,var(--paper))!important}.calendar-group-label{display:inline-block;width:max-content;max-width:100%;padding:.1rem .35rem;border:1px solid color-mix(in srgb,var(--group-color) 62%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--group-color) 22%,var(--paper));color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-assignments-dialog .group-colored-choice{border-color:color-mix(in srgb,var(--group-color) 62%,var(--line));background:color-mix(in srgb,var(--group-color) 16%,var(--paper))}.calendar-assignments-dialog .group-colored-choice .calendar-group-label{margin:.15rem 0;padding:.22rem .5rem}

/* Hoy: presencia VLO clara, sin el marco negro duro. */
.calendar .day.today{outline:0!important;border-color:#15ADAA!important;background:color-mix(in srgb,#15ADAA 9%,var(--paper))!important;box-shadow:inset 0 0 0 2px #15ADAA!important}
.day.today .calendar-day-label{align-items:center!important}.day.today .calendar-day-label::after{content:'Hoy';margin-left:auto;padding:.16rem .4rem;border-radius:999px;background:#15ADAA;color:#fff;font-size:.62rem;font-weight:850;line-height:1}

/* Resumen visible antes de las series: misma información en ordenador y móvil. */
.assignment-training-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:.15rem 0 .85rem}.assignment-training-summary article{display:grid;gap:.16rem;min-width:0;padding:.72rem .82rem;border:1px solid color-mix(in srgb,#15ADAA 38%,var(--line));border-radius:12px;background:color-mix(in srgb,#15ADAA 7%,var(--paper))}.assignment-training-summary small{color:var(--muted);font-weight:800}.assignment-training-summary strong{font-size:1.12rem;color:var(--ink)}.assignment-training-summary span{font-size:.76rem;line-height:1.25;color:var(--muted)}.assignment-training-summary .info-dot{vertical-align:middle;margin-left:.2rem}
.gym-session-list{display:grid;gap:.55rem}.gym-session-list .gym-exercise-row{position:relative;width:100%;min-width:0;margin:0;text-align:left}.gym-session-list button.gym-exercise-row{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr) auto;gap:.65rem;align-items:center}.gym-session-list .gym-exercise-row b,.gym-session-list .gym-exercise-row span{min-width:0;overflow-wrap:anywhere}.gym-session-list .gym-exercise-row>span:not(.mobile-row-indicator){text-align:right;font-weight:500}
@media(max-width:700px){.gym-session-list button.gym-exercise-row{grid-template-columns:minmax(0,1fr) auto}.gym-session-list .gym-exercise-row>span:not(.mobile-row-indicator){grid-column:1;text-align:left;color:var(--muted);font-size:.9rem}.gym-session-list .mobile-row-indicator{grid-column:2;grid-row:1/3}}

/* Selectores largos: la lista se abre completa y se reduce mientras se escribe. */
.searchable-combobox{position:relative;min-width:0}.searchable-combobox>input{width:100%}.searchable-native-select{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;opacity:0!important;pointer-events:none!important}.searchable-options{position:absolute;z-index:80;top:calc(100% + .3rem);left:0;right:0;display:grid;gap:.2rem;max-height:min(320px,48vh);overflow:auto;padding:.35rem;border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:0 14px 34px rgba(9,29,42,.2)}.searchable-options[hidden]{display:none!important}.searchable-options button{width:100%;padding:.55rem .65rem;text-align:left;background:transparent;border-color:transparent}.searchable-options button:hover,.searchable-options button:focus-visible,.searchable-options button.is-active{background:color-mix(in srgb,#15ADAA 14%,var(--paper));border-color:color-mix(in srgb,#15ADAA 48%,var(--line))}.searchable-options>p{margin:.35rem .45rem}.assignment-destination-search{display:grid;gap:.55rem}.assignment-destination-search>p{margin:0}.calendar-searchable-select input{min-height:2.3rem;padding:.38rem .55rem;font-size:.85rem}
@media(max-width:700px){.searchable-options{max-height:42vh}.calendar-searchable-select input{min-height:2.1rem;font-size:.78rem}}

/* Lectura móvil: el detalle es vertical y nunca puede desbordar el teléfono. */
@media(max-width:700px){
  #modal:has(.assignment-detail){position:fixed;inset:0;width:100vw!important;height:100svh!important;max-width:100vw!important;box-sizing:border-box}
  #modal:has(.assignment-detail) #modal-content,.assignment-detail,.assignment-detail>*{min-width:0;max-width:100%}
  #modal:has(.assignment-detail) h2,#modal:has(.assignment-detail) p{overflow-wrap:anywhere}
  .mobile-series-list article>div{display:grid;gap:.12rem;min-width:0}
  .mobile-series-list article>div>span,.mobile-series-list article>div>small{overflow-wrap:anywhere}
  .mobile-series-list article>div>small{font-size:.82rem;color:var(--muted);font-weight:800}
  .term-info-overlay{position:fixed;z-index:110;inset:0;display:grid;place-items:center;padding:1rem;background:rgba(9,29,42,.62)}
  .term-info-overlay article{position:relative;width:min(100%,440px);max-height:calc(100svh - 2rem);overflow:auto;padding:1.25rem;border-radius:18px;background:var(--paper)}
  .term-info-overlay h3{margin:.1rem 3rem 1rem 0}.term-info-overlay p{margin:0;line-height:1.5}
  .term-info-overlay button{position:absolute;right:.8rem;top:.8rem;width:2.4rem;height:2.4rem;min-height:0;padding:0}
  .assignment-training-summary{gap:.45rem;margin:.1rem 0 .7rem}.assignment-training-summary article{padding:.62rem}.assignment-training-summary strong{font-size:1rem}.assignment-training-summary span{font-size:.69rem}
}

/* El editor de patinaje conserva la tabla en móvil, pero las ayudas quedan
   disponibles sin obligar a desplazarla lateralmente. */
.mobile-editor-help{display:none!important}.athlete-calendar-message{display:flex;flex-direction:column;gap:.25rem;margin:0 0 1rem;padding:.85rem 1rem;border:1px solid color-mix(in srgb,var(--brand) 45%,var(--line));border-left:4px solid var(--brand);border-radius:12px;background:var(--paper);color:var(--muted)}.athlete-calendar-message b{color:var(--ink)}
@media(max-width:900px){.skate-table thead .info-tip{display:none}}
/* Profile test entry: keep time units readable at phone width. */
#athlete-test-form .test-time-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
#athlete-test-form .test-time-fields label,#athlete-test-form input{min-width:0;max-width:100%;box-sizing:border-box}
#athlete-test-form .test-habitual-choice{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0}
#athlete-test-form .test-habitual-choice .check{margin:0;flex:0 1 auto}
#athlete-test-form .test-habitual-choice{justify-content:flex-start}
.session-rhythm-controls{background:#E8F7F6;color:#182229;border:1px solid #15ADAA;border-radius:14px;padding:14px;margin:14px 0;min-width:0}
.session-rhythm-controls label,.session-rhythm-controls select{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.session-rhythm-controls p{margin:10px 0;overflow-wrap:anywhere}
.session-rhythm-controls small{display:block;line-height:1.45}
.session-coach-advice{margin:12px 0;padding:12px;border:1px solid #15ADAA;border-radius:12px}
.session-coach-advice summary,.group-rhythm-advice summary{cursor:pointer;font-weight:700;min-height:28px}
.rhythm-athletes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px}
.rhythm-athletes article{border:1px solid #b6d9d7;border-radius:10px;padding:12px;min-width:0;overflow-wrap:anywhere}
.rhythm-athletes span,.rhythm-athletes small{display:block;margin-top:6px}
.rhythm-athletes p{margin:8px 0 0}
.rhythm-athletes .rhythm-gap-pair{display:inline-flex;align-items:center;gap:6px;margin:0;vertical-align:middle;white-space:nowrap}
.rhythm-athletes .rhythm-gap{display:inline;margin:0;color:#182229;font-weight:700}
.rhythm-gap--alternate{--rhythm-gap-color:#087F7C}
.rhythm-gap--reduced{--rhythm-gap-color:#D97813}
.rhythm-gap--no-pull{--rhythm-gap-color:#EB8A88}
.rhythm-gap--review{--rhythm-gap-color:#BC202B}
.rhythm-athletes .rhythm-gap[class*="rhythm-gap--"]{text-decoration-line:underline;text-decoration-color:var(--rhythm-gap-color);text-decoration-thickness:4px;text-underline-offset:4px}
[data-session-content]{min-width:0;max-width:100%}
@media(max-width:700px){.session-rhythm-controls{padding:12px}.session-rhythm-controls select{font-size:16px}.rhythm-athletes{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){#modal-content .assignment-detail>.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px}#modal-content .assignment-detail>.actions>button{min-width:0;width:100%;white-space:normal;overflow-wrap:anywhere}}
@media(max-width:700px){#modal:has(.assignment-detail)>.close{left:calc(100vw - 3.4rem);right:auto}}

/* Detail rows are content controls, never circular information icons. */
.mobile-series-row{white-space:normal;min-width:0;max-width:100%;box-sizing:border-box}
.mobile-series-row>div>span,.mobile-series-row>div>small{overflow-wrap:anywhere}
/* One scroll area for the fields: keep the heading and close control visible. */
#modal-content .block-info-overlay{position:fixed;inset:0;padding:12px;box-sizing:border-box;min-height:0}
#modal-content .block-info-card{display:flex;flex-direction:column;box-sizing:border-box;width:min(100%,560px);height:auto;max-height:calc(100dvh - 24px);min-height:0;overflow:hidden;padding:52px 16px 16px;border-radius:18px}
#modal-content .block-info-card>.badge,#modal-content .block-info-card>h3{flex-shrink:0;align-self:flex-start}
#modal-content .block-info-fields{flex:1 1 auto;min-height:0;max-height:none;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px;overscroll-behavior:contain}
#modal-content .block-info-fields>div{display:flex;flex-direction:column;justify-content:flex-start;gap:6px;padding:8px;min-width:0;overflow-wrap:anywhere}
#modal-content .block-info-fields>div>b{display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-size:.85rem}
#modal-content .block-info-fields>div>span{font-size:.92rem;line-height:1.4}
#modal-content .block-info-fields>[data-block-field=note]{grid-column:1/-1}
#modal-content .block-info-fields button.term-info{width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important}
.heart-profile table{min-width:0;width:100%;table-layout:fixed}
.calendar-tests-dialog{width:min(780px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:20px;overflow:auto;color:var(--text,var(--ink));background:var(--paper);box-sizing:border-box}
.calendar-tests-dialog h2{padding-right:48px}.calendar-tests-close{position:sticky;top:0;float:right;z-index:1;width:44px;height:44px;padding:0;background:var(--paper)}
.calendar-tests-list{display:grid;gap:12px;clear:both}.calendar-tests-list article{padding:14px;border:1px solid var(--line);border-radius:12px;min-width:0;overflow-wrap:anywhere}.calendar-tests-list h3{margin:8px 0;font-size:1rem}.calendar-tests-list p{margin:8px 0}.calendar-tests-list article>strong{display:block;font-size:1.1rem}.calendar-tests-list article>button{margin-top:8px}
@media(max-width:700px){.calendar-tests-dialog{position:fixed;inset:12px auto auto 12px;margin:0;width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:14px}.calendar-tests-dialog h2{font-size:1.2rem}}
.heart-profile th,.heart-profile td{white-space:normal;overflow-wrap:anywhere}
@media(max-width:700px){.heart-profile th,.heart-profile td{padding:6px;font-size:.8rem}.heart-profile .row{flex-wrap:wrap;gap:8px;min-width:0}}
@media(max-width:700px){.heart-profile thead{display:none}.heart-profile table,.heart-profile tbody{display:block}.heart-profile tbody tr{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:2px 6px;padding:10px 0;border-bottom:1px solid var(--line)}.heart-profile tbody td{border:0;padding:2px;overflow-wrap:normal}.heart-profile tbody td:first-child{grid-column:1;grid-row:1 / 3;align-self:center;font-weight:750}.heart-profile tbody td:nth-child(2){grid-column:2 / 4;grid-row:1;font-weight:750}.heart-profile tbody td:nth-child(3){grid-column:2;grid-row:2}.heart-profile tbody td:nth-child(4){grid-column:3;grid-row:2;white-space:nowrap}}
#athlete-test-form .field-title{display:flex;align-items:center;gap:6px}
.rfep-wheel-summary{min-width:0;margin-top:1rem}
.rfep-wheel-summary table{width:100%;min-width:0;table-layout:fixed}
.rfep-wheel-summary th,.rfep-wheel-summary td{white-space:normal;overflow-wrap:anywhere;padding:.65rem .45rem}
.rfep-wheel-summary th:last-child,.rfep-wheel-summary td:last-child{width:85px}
#athlete-test-form .info-tip{min-width:28px;min-height:28px}
#athlete-test-form .test-time{margin:12px 0}
#v-profile>.title .actions{flex-wrap:wrap}
@media(max-width:600px){
  #v-profile>.title{flex-direction:column;align-items:stretch}
  #v-profile>.title .actions{display:flex;gap:8px}
  #v-profile>.title .actions button{flex:1 1 140px;white-space:normal}
  #athlete-test-form .test-new-track .cols2{grid-template-columns:minmax(0,1fr)}
  #athlete-test-form .test-time-fields{gap:8px}
  #athlete-test-form .test-time-fields input{width:100%;padding:10px 6px}
  #profile .row{flex-wrap:wrap;gap:8px}
}
