/* css/screens/coach/editor.css — editor de rutina del coach, vista de lista (ver exerciseCard() y
   renderCoachRoutine() en app/screens/coach/rutinas.js): una fila por ejercicio, series arriba y
   «Más opciones» abajo, pie fijo con «Guardar rutina». Solo cambia lo visual: las acciones son las
   de siempre. Se carga al final para ganarle a rutinas.css; sin CSS anidado; colores de la marca. */

/* ---------- Cabecera del alumno: volver, foto, nombre y actualizar en una línea ---------- */
body:not(#_) .cv-chead { display:flex; align-items:center; flex-wrap:nowrap; gap:12px; margin-bottom:18px; }
body:not(#_) .cv-chead .cv-back { flex:none; width:38px; height:38px; min-height:0; padding:0; justify-content:center; font-size:20px; line-height:1; border-radius:12px; }
body:not(#_) .cv-chead .co-avatar-client { width:46px; height:46px; font-size:15px; }
.cv-cname { flex:1; min-width:0; }
body:not(#_) .cv-cname .co-client-name { font-size:26px; font-weight:700; line-height:1.15; margin:0; }
body:not(#_) .cv-cname .co-client-disc { margin:2px 0 0; font-size:12px; }
body:not(#_) .cv-chead .cv-refresh { flex:none; margin-left:auto; min-height:0; height:38px; padding:0 12px; }
.cv-refresh span { display:none; }

/* ---------- Pestañas Ficha / Rutina / Plan: subrayado ---------- */
.cv-ctabs { display:flex; gap:26px; margin:0 0 18px; border-bottom:1px solid var(--gize-border); overflow-x:auto; scrollbar-width:none; }
.cv-ctab { position:relative; flex:none; padding:10px 2px 12px; background:none; border:0; font:inherit; font-size:16px; font-weight:600; color:var(--txt-2); cursor:pointer; transition:var(--transition-tap); }
.cv-ctab:hover { color:var(--txt); }
.cv-ctab.on { color:var(--txt); }
.cv-ctab.on::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; border-radius:2px; background:var(--gize-blue); }

/* ---------- Días: píldoras que se deslizan, y «Se repite» con círculos ---------- */
body:not(#_) .co-daytabs { flex-wrap:nowrap; gap:10px; margin:0 0 16px; padding-bottom:2px; overflow-x:auto; scrollbar-width:none; }
body:not(#_) .co-daytab { flex:none; display:flex; align-items:center; gap:8px; min-height:42px; padding:0 20px; border-radius:14px; font-size:15px; font-weight:600; white-space:nowrap; }
body:not(#_) .co-daytab .co-daytab-dias { display:inline; margin:0; font-size:11px; }
body:not(#_) .co-daytab.on { color:var(--txt); background:color-mix(in srgb, var(--gize-blue) 11%, var(--card)); border-color:color-mix(in srgb, var(--gize-blue) 60%, transparent); }
body:not(#_) .co-daytab.add { min-width:42px; padding:0 14px; justify-content:center; background:none; border-style:dashed; color:var(--gize-blue); }

/* Días que se arrastran para cambiarlos de lugar (rutinas.js, «Días: arrastrar»): la pestaña que se
   mueve queda tenue, la fantasma sigue al dedo y una rayita azul marca dónde cae. */
body:not(#_) .co-daytab[data-coach="edit-day"] { -webkit-touch-callout:none; -webkit-user-select:none; user-select:none; }
body:not(#_) .co-daytabs + .co-day-hint { margin:-8px 2px 14px; }
/* Con mouse la fila de días no se puede deslizar (la ruedita mueve la página y no hay barra): con
   seis o siete días los últimos y el «+» quedaban afuera, sin forma de llegar. En la compu van en
   varios renglones; en pantallas táctiles sigue la fila que se desliza con el dedo. */
@media (hover:hover) and (pointer:fine){ body:not(#_) .co-daytabs { flex-wrap:wrap; overflow-x:visible; } }
body:not(#_) .co-daytab.co-drop-l { box-shadow:inset 3px 0 0 var(--gize-blue); }
body:not(#_) .co-daytab.co-drop-r { box-shadow:inset -3px 0 0 var(--gize-blue); }
html.sin-neon body:not(#_) .co-daytab.co-drop-l { box-shadow:inset 3px 0 0 rgba(255,255,255,.7); }
html.sin-neon body:not(#_) .co-daytab.co-drop-r { box-shadow:inset -3px 0 0 rgba(255,255,255,.7); }
html:not(#_):not(#__) body.silk-coach:not(#_) .co-daytab.co-day-ghost { transform:scale(1.04) rotate(-1.5deg); opacity:.96; background:var(--gize-surface-2); border-color:var(--gize-blue); color:var(--txt); }

.co-day-bar { max-width:860px; margin:0 0 20px; }
.co-day-row { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
body:not(#_) .co-dias-wrap { gap:12px; }
body:not(#_) .co-dias-wrap .co-note-lbl { margin:0; font-size:14px; font-weight:500; letter-spacing:0; text-transform:none; color:var(--txt-2); }
body:not(#_) .co-dias.hd-row { grid-template-columns:repeat(7, 32px); gap:7px; }
body:not(#_) .co-dias .hd-day { width:32px; height:32px; min-width:0; padding:0; border-radius:50%; font-size:12px; }
/* «Claro»: el día de la semana elegido es una burbuja chica sobre el celeste. Con el filete de 1,5 px,
   según dónde cae entre píxeles, abajo la línea quedaba en una sola fila suavizada y se veía a
   menos de 4,5:1 (pasó al subir la fila de los días, #335). Un poco más gruesa, se ve siempre. */
html.tema-luz body.silk-coach:not(#_) .co-dias .hd-day.on { --nn-w: 2px; }
body:not(#_) .co-day-bar .co-day-menu summary { width:46px; height:36px; border-radius:12px; }
.co-day-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.6fr); gap:12px; margin-top:14px; }
body:not(#_) .co-day-fields { align-items:start; }
body:not(#_) .co-day-fields .co-pfield { display:flex; flex-direction:column; align-items:stretch; gap:6px; margin:0; }
body:not(#_) .co-day-fields .co-pfield input { flex:none; }
body:not(#_) .co-day-fields .co-dayname { width:100%; height:42px; padding:0 12px; font-size:15px; font-weight:600; letter-spacing:0; }
body:not(#_) .co-day-fields .co-note { width:100%; height:42px; margin:0; padding:0 12px; font-size:15px; }
@media (max-width: 640px){
  .co-day-fields { grid-template-columns:minmax(0,1fr); }
  .co-day-row { flex-wrap:nowrap; }
  body:not(#_) .co-dias.hd-row { grid-template-columns:repeat(7, 27px); gap:5px; }
  body:not(#_) .co-dias .hd-day { width:27px; height:27px; font-size:11px; }
  body:not(#_) .co-dias-wrap { gap:8px; min-width:0; }
}

/* ---------- Encabezado de la lista y lista de ejercicios ---------- */
body:not(#_) .co-exc-section-head { max-width:860px; margin:6px 2px 10px; }
body:not(#_) .co-exc-count { font-size:12px; }
.co-drag-hint, .co-unsaved { max-width:860px; }
body:not(#_) .co-exc-grid { grid-template-columns:minmax(0,1fr); gap:10px; max-width:860px; margin-bottom:18px; }

/* ---------- Ejercicio cerrado: número, nombre, «3 series · 8-10» y flecha ---------- */
body:not(#_) .co-exc-collapsed { position:relative; flex-direction:column; justify-content:center; min-height:62px; padding:12px 12px 12px 16px; border-radius:16px; gap:0; overflow:visible; }
body:not(#_) .co-exc-swatch { display:none; }
body:not(#_) .co-exc-collapsed .co-exc-head { display:flex; align-items:center; gap:12px; }
body:not(#_) .co-exc-collapsed .co-exc-cname { flex:1; min-width:0; display:flex; align-items:center; gap:14px; font-size:16px; font-weight:600; white-space:normal; -webkit-line-clamp:unset; }
/* El nombre entero, hasta dos renglones (en el celular «Camilla de cuádri…» o «Sillón de isquiotibi…»
   no dejaban saber cuál era; adentro de una superserie se cortaba casi siempre). */
body:not(#_) .co-exc-collapsed .co-exc-ctext { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; font-size:16px; font-weight:600; line-height:1.25; overflow:hidden; white-space:normal; overflow-wrap:anywhere; }
body:not(#_) .co-exc-head .co-exc-ord { display:inline-grid; place-items:center; flex:none; width:32px; height:32px; min-width:32px; margin:0; padding:0; border-radius:50%;
  background:var(--gize-surface-2); border:1px solid var(--gize-border); color:var(--txt); font-size:13px; font-weight:700; line-height:1; }
body:not(#_) .co-exc-head .co-exc-ord.ss { background:var(--gize-surface-2); color:var(--gize-blue); border-color:color-mix(in srgb, var(--gize-blue) 45%, transparent); font-size:12px; border-radius:50%; padding:0; }
body:not(#_) .co-exc-open .co-exc-head .co-exc-ord { color:var(--gize-blue); border-color:color-mix(in srgb, var(--gize-blue) 55%, transparent); }
.co-exc-sum { flex:none; font-size:14px; color:var(--txt-2); font-variant-numeric:tabular-nums; white-space:nowrap; transition:opacity .15s; }
@media (max-width: 640px){ .co-exc-sum .tg { display:none; } }
/* En pantallas muy angostas (320 px) el «3 series» le dejaba al nombre menos de 100 px: se saca de la
   tarjeta cerrada (se ve al abrirla) para que el nombre entre entero. */
@media (max-width: 359px){ body:not(#_) .co-exc-collapsed .co-exc-sum { display:none; } }
body:not(#_) .co-exc-chev { width:36px; height:36px; background:none; border:0; color:var(--txt-3); border-radius:50%; }
body:not(#_) .co-exc-chev:hover { color:var(--txt); background:color-mix(in srgb, var(--txt) 6%, transparent); }
body:not(#_) .co-exc-collapsed .co-exc-chev svg { transform:rotate(-90deg); }
body:not(#_) .co-exc-chev svg { width:16px; height:16px; }
body:not(#_) .co-exc-chev.open svg { transform:rotate(180deg); }
/* Contador de series y «cambiar ejercicio»: aparecen donde está el resumen al pasar el mouse (en el celular
   se usan desde la tarjeta abierta: «+ Serie», la ✕ de cada serie y el menú ⋯). */
body:not(#_) .co-exc-collapsed .co-exc-cfoot { position:absolute; right:56px; top:50%; transform:translateY(-50%); z-index:2; opacity:0; pointer-events:none; transition:opacity .15s; padding:0 0 0 10px; background:var(--gize-surface); border-radius:12px; }
@media (hover:hover){
  body:not(#_) .co-exc-collapsed:hover .co-exc-cfoot, body:not(#_) .co-exc-collapsed:focus-within .co-exc-cfoot { opacity:1; pointer-events:auto; }
  body:not(#_) .co-exc-collapsed:hover .co-exc-sum, body:not(#_) .co-exc-collapsed:focus-within .co-exc-sum { opacity:0; }
}
/* Sin mouse o en pantallas angostas no hay lugar (taparía el nombre): se usan desde la tarjeta abierta. */
@media (hover:none), (max-width: 699px){ body:not(#_) .co-exc-collapsed .co-exc-cfoot { display:none; } }

/* ---------- Ejercicio abierto ---------- */
body:not(#_) .co-exc-open { padding:12px 12px 6px 16px; border-radius:16px; border-color:color-mix(in srgb, var(--gize-blue) 60%, var(--gize-border)); }
body:not(#_) .co-exc-open .co-exc-head { gap:12px; }
body:not(#_) .co-exc-open .co-exc-name { height:40px; padding:0 8px; background:none; border:1px solid transparent; font-size:16px; font-weight:600; }
body:not(#_) .co-exc-open .co-exc-name:hover { border-color:var(--gize-border); }
body:not(#_) .co-exc-open .co-exc-name:focus { border-color:var(--gize-blue); background:var(--gize-surface-2); }
body:not(#_) .co-exc-open .co-day-menu summary { width:36px; height:36px; border-radius:50%; border-color:transparent; background:none; }
body:not(#_) .co-exc-open .co-exc-body { display:block; margin-top:6px; }
body:not(#_) .co-exc-open .co-exc-main { display:block; }
body:not(#_) .co-sets-panel { padding:0; background:none; border:0; border-radius:0; }
body:not(#_) .co-sets-panel .co-set-head, body:not(#_) .co-sets-panel .co-set-row { grid-template-columns:44px minmax(0,1fr) minmax(0,1fr) 36px; gap:10px; }
body:not(#_) .co-sets-panel .co-set-head { margin:10px 0 6px; }
body:not(#_) .co-sets-panel .co-set-head span { font-size:11px; font-weight:700; letter-spacing:.08em; color:var(--txt-2); text-align:left; padding:0; }
body:not(#_) .co-sets-panel .co-set-head span:nth-child(2), body:not(#_) .co-sets-panel .co-set-head span:nth-child(3) { padding-left:4px; }
body:not(#_) .co-sets-panel .co-set-row { margin-bottom:8px; }
body:not(#_) .co-sets-panel .co-set-n { width:auto; height:auto; background:none; font-size:15px; font-weight:700; color:var(--txt-2); justify-content:flex-start; padding-left:10px; }
body:not(#_) .co-sets-panel .co-target { height:42px; padding:0 8px; border-radius:12px; background:var(--gize-surface-2); border-color:var(--gize-border); font-size:16px; font-weight:700; text-align:center; }
body:not(#_) .co-sets-panel .co-target:focus { border-color:var(--gize-blue); outline:none; }
body:not(#_) .co-sets-panel .co-set-rm { width:36px; height:36px; display:grid; place-items:center; padding:0; color:var(--txt-3); font-size:14px; }
.co-sets-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:4px; }
body:not(#_) .co-sets-panel .co-set-add { width:auto; min-height:34px; margin:0; padding:0 16px; border-radius:12px; border:1px dashed var(--gize-border); background:none; color:var(--gize-blue); font-size:14px; font-weight:600; }
/* Mi configuración del ejercicio (screens/coach/presets.js): guardarla, volver a ella, o la marca
   de que ya está así. Chico, al lado de «+ Serie». */
body:not(#_) .co-preset { display:inline-flex; align-items:center; gap:6px; min-height:34px; margin:0; padding:0 12px; border-radius:12px;
  border:1px solid color-mix(in srgb, var(--gize-blue) 40%, var(--gize-border)); background:none; color:var(--txt-2); font-size:13px; font-weight:600; cursor:pointer; }
body:not(#_) .co-preset svg { width:14px; height:14px; flex:none; }
body:not(#_) button.co-preset:hover { color:var(--gize-text); border-color:var(--gize-blue); }
body:not(#_) .co-preset.ok { border-color:transparent; color:var(--gize-blue); cursor:default; padding:0 4px; }
body:not(#_) .co-sets-foot .co-last-line { margin:0; justify-content:flex-end; font-size:12.5px; color:var(--txt-2); }
body:not(#_) .co-sets-foot .co-last-line i { background:none; border:0; padding:0; border-radius:0; color:var(--txt-2); }
body:not(#_) .co-sets-foot .co-last-line i::before { content:"·"; margin-right:6px; color:var(--txt-3); }

/* «Más opciones» */
.co-more { margin-top:14px; border-top:1px solid var(--gize-border); }
.co-more-btn { display:flex; align-items:center; gap:12px; width:100%; padding:14px 2px 12px; background:none; border:0; font:inherit; font-size:14px; font-weight:600; color:var(--txt-2); text-align:left; cursor:pointer; transition:var(--transition-tap); }
.co-more-btn:hover, .co-more-btn.on { color:var(--txt); }
.co-more-btn em { margin-left:auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-style:normal; font-size:12.5px; font-weight:500; color:var(--txt-3); }
.co-more-btn.on em { display:none; }
.co-more-btn svg { width:16px; height:16px; flex:none; color:var(--txt-3); transition:transform .15s; }
.co-more-btn.on svg { transform:rotate(180deg); margin-left:auto; }
.co-more-btn em + svg { margin-left:0; }
.co-more-panel[hidden] { display:none; }
.co-more-panel { padding:2px 0 10px; }
body:not(#_) .co-more-panel .co-mode { margin:0 0 12px; }
body:not(#_) .co-more-panel .co-cfg-row { margin:0 0 12px; }
body:not(#_) .co-more-panel .co-tiles { gap:8px; }
body:not(#_) .co-more-panel .co-tile-btn { min-height:44px; border-radius:12px; padding:8px 14px; }
body:not(#_) .co-tile-btn.empty { border-style:dashed; }
body:not(#_) .co-tile-btn.empty span { color:var(--gize-blue); }
body:not(#_) .co-more-panel .co-exc-fold { margin-top:12px; }

/* Menú «⋯» del ejercicio abierto: la tarjeta (y su superserie) pasan adelante y no recortan el menú
   (antes «Quitar ejercicio» quedaba cortado abajo); .up lo abre para arriba si abajo no entra. */
body:not(#_) .co-exc.co-menu-on { overflow:visible; z-index:30; }
body:not(#_) .co-ss-group.co-menu-on { position:relative; z-index:30; }
body:not(#_) .co-day-menu.up .co-day-pop { top:auto; bottom:calc(100% + 6px); }
.co-pop-sep { flex:none; height:1px; margin:3px 8px; border:0; background:var(--gize-border); }

/* ---------- Agregar entre ejercicios (rt-ins): una línea de neón finita con «+ Agregar ejercicio» ----------
   Ocupa el hueco de la lista (márgenes negativos: casi no la alarga). En pantallas táctiles se ve
   siempre y el área para tocar es más alta; con mouse y menos de 900 px se ve tenue y se prende al
   pasar. En la compu (900 px o más, con mouse) es un «+» redondo sin línea: ver «Compu», abajo. */
body:not(#_) .co-ins { position:relative; display:flex; align-items:center; justify-content:center; width:100%; height:20px; min-height:0; margin:-10px 0; padding:0;
  background:none; border:0; border-radius:0; box-shadow:none; color:var(--gize-blue); font:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; }
body:not(#_) .co-ins::before { content:""; position:absolute; left:18px; right:18px; top:50%; height:1px; pointer-events:none;
  background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--gize-blue) 55%, transparent) 18%, color-mix(in srgb, var(--gize-blue) 55%, transparent) 82%, transparent);
  opacity:.45; transition:opacity .15s; }
.co-ins-b { position:relative; display:inline-flex; align-items:center; gap:5px; padding:1px 10px 1px 8px; border-radius:999px; font-size:11px; font-weight:600; line-height:14px; white-space:nowrap;
  background:var(--gize-surface); border:1px solid color-mix(in srgb, var(--gize-blue) 40%, var(--gize-border)); opacity:.6; transition:opacity .15s, border-color .15s; }
.co-ins-b svg { width:11px; height:11px; flex:none; }
body:not(#_) .co-ins:hover::before, body:not(#_) .co-ins:focus-visible::before { opacity:1; }
body:not(#_) .co-ins:hover .co-ins-b, body:not(#_) .co-ins:focus-visible .co-ins-b { opacity:1; border-color:color-mix(in srgb, var(--gize-blue) 75%, transparent); }
body:not(#_) .co-ins:focus-visible { outline:none; }
body:not(#_) .co-ss-group .co-ins { margin:-6px 0 2px; }
@media (hover:none), (pointer:coarse){
  body:not(#_) .co-ins { height:28px; margin:-10px 0; }
  body:not(#_) .co-ss-group .co-ins { margin:-8px 0 0; }
  body:not(#_) .co-ins::before { opacity:.6; }
  .co-ins-b { opacity:.85; }
}
html.sin-neon body:not(#_) .co-ins::before { background:linear-gradient(90deg, transparent, rgba(255,255,255,.22) 18%, rgba(255,255,255,.22) 82%, transparent); }
html.sin-neon .co-ins-b { border-color:rgba(255,255,255,.22); }
html.tema-luz.sin-neon body:not(#_) .co-ins::before { background:linear-gradient(90deg, transparent, rgba(11,13,17,.2) 18%, rgba(11,13,17,.2) 82%, transparent); }
html.tema-luz.sin-neon .co-ins-b { border-color:rgba(11,13,17,.2); }

/* ---------- Agregar ejercicio y pie con «Guardar rutina» ---------- */
body:not(#_) .co-rt-add-end { margin:2px 0 0; padding:15px; border:1px dashed var(--gize-border); border-radius:16px; background:none; color:var(--gize-blue); font-size:14px; font-weight:600; }
body:not(#_) .co-rt-add-end:hover { background:color-mix(in srgb, var(--gize-blue) 7%, transparent); }
.co-rt-add-end span { margin-right:4px; }
.co-savebar { position:static; display:flex; align-items:center; justify-content:space-between; gap:12px; max-width:860px; margin-top:16px; padding:14px 0 calc(14px + env(safe-area-inset-bottom));
  border-top:1px solid var(--gize-border); }
body:not(#_) .co-savebar .co-save-rt { flex:0 0 auto; width:auto; min-width:150px; height:44px; margin:0; padding:0 26px; border-radius:14px; font-size:15px; font-weight:700; }
body:not(#_) .co-savebar .co-more-actions summary { width:auto; height:44px; padding:0 20px; border-radius:14px; font-size:14px; font-weight:600; letter-spacing:0; background:none; }
.co-savebar .co-more-actions .co-day-pop { top:auto; bottom:calc(100% + 8px); left:0; right:auto; min-width:250px; }
@media (max-width: 899px){
  .co-savebar { padding-bottom:12px; max-width:none; }
  body:not(#_) .co-savebar .co-save-rt { flex:1; }
}

/* Con el neón apagado, lo marcado va con filete blanco. */
html.sin-neon body:not(#_) :is(.co-daytab.on, .co-exc-open, .co-exc-head .co-exc-ord.ss, .co-exc-open .co-exc-head .co-exc-ord) { border-color:rgba(255,255,255,.4); }
html.sin-neon body:not(#_) .co-exc-open .co-exc-name:focus { border-color:rgba(255,255,255,.5); }
html.sin-neon body:not(#_) .co-sets-panel .co-target:focus { border-color:rgba(255,255,255,.5); }

/* ---------- Compu (900 px o más, con mouse): más aire y un «+» a la vista entre las tarjetas ----------
   Pedidos: «en el celular se ve bien, el tema es en la PC, se ve como más angosto» y «están muy juntos
   los botones de agregar ejercicio y la línea azul hace que se vea raro». Medido a 1100, 1280, 1440 y
   1920 px: las tarjetas tenían el alto y el relleno del celular (66 px, 12 px) en filas de 788 a 860 px
   (tiras finitas: 13 veces más anchas que altas, en el celular 5), el hueco entre una y otra era más
   chico que en el celular (20 px contra 28) y la píldora lo llenaba (a 2 px de cada tarjeta, con la
   línea azul de punta a punta). Y la lista se cortaba en 860 px, más angosta que la cabecera, las
   pestañas y «Programar una rutina nueva» de arriba (a 1440 px quedaban 268 px vacíos a su derecha).
   En la compu: toda la pantalla del editor en una columna de lectura de 960 px como máximo (cabecera,
   pestañas, «Programar una rutina nueva», el día y la lista terminan en el mismo borde: sin franja
   vacía abajo de la cabecera y sin tiras de punta a punta en pantallas grandes) y tarjetas de 76 px
   con más relleno.
   Después: «quiero más espacio entre el más y los ejercicios, en la computadora aparecen muy pegados y
   no quiero que desaparezca, quiero que esté visible». El «+» de 24 px quedaba en un hueco de 16 px
   (se metía 4 px en cada tarjeta) y solo aparecía al pasar el mouse. Ahora entre tarjeta y tarjeta
   hay 52 px y el «+» redondo de 24 px se ve siempre, en el medio, con 14 px libres arriba y abajo:
   quieto, gris (el gris de los textos secundarios, en el aro y en la cruz); al pasar el mouse o llegar
   con el teclado se prende con el color de la marca (y el anillo de foco con el teclado). Sin texto ni
   línea («Agregar ejercicio acá» va en el title y, con entre qué ejercicios queda, en el aria-label).
   El botón sigue tapando todo el hueco (de una tarjeta a la otra, del ancho de la tarjeta): tocar
   cualquier parte agrega ahí. Con 7 ejercicios a 1440 px la lista pasa de 738 a 924 px de alto.
   Celular, tabletas (pantalla táctil) y ventanas de menos de 900 px quedan como estaban. */
@media (min-width: 900px) and (hover: hover) and (pointer: fine){
  /* 960 px + los 40 de cada lado del panel. Solo en la pestaña Rutina y en el editor de «Mis rutinas»
     (las otras pantallas del panel siguen con su tope de 1240 px). */
  body:not(#_) .cv-wrap:has(.co-exc-grid, .co-sched) { max-width:1040px; }
  body:not(#_) :is(.co-day-bar, .co-exc-section-head, .co-drag-hint, .co-unsaved, .co-exc-grid, .co-savebar) { max-width:none; }
  /* El botón es una fila de la grilla de 52 px con -8 de margen arriba y abajo (su fila mide 36): con
     los 8 px de la grilla a cada lado, 52 px entre tarjetas, y el botón tapa justo ese hueco. Al final,
     16 px hasta «Agregar ejercicio» (sin «+» en el medio). */
  body:not(#_) .co-exc-grid { gap:8px; }
  body:not(#_) .co-rt-add-end { margin-top:8px; }
  /* 76 px: 17 + la cabecera de 40 (la misma que la abierta, así la flecha no se mueve al abrirla) + 17. */
  body:not(#_) .co-exc-collapsed { min-height:0; padding:17px 14px 17px 20px; }
  body:not(#_) .co-exc-collapsed .co-exc-head { min-height:40px; }
  /* El número y el nombre, a la altura del resumen y de la flecha (bajaban 4 px). */
  body:not(#_) .co-exc-collapsed .co-exc-cname { padding-top:0; }
  body:not(#_) .co-exc-open { padding:17px 14px 8px 20px; }
  body:not(#_) .co-exc-collapsed .co-exc-cfoot { right:58px; }
  /* Reps y kg de la tarjeta abierta: 220 px cada uno como máximo (para «10-12» o «80» sobraba; con
     la columna entera quedaban de casi 500 px), y la ✕ al lado de su serie. */
  body:not(#_) .co-sets-panel :is(.co-set-head, .co-set-row) { grid-template-columns:44px repeat(2, minmax(0,220px)) 36px; }
  body:not(#_) .co-ss-group { padding:14px 14px 6px; }
  /* Adentro de la superserie, el mismo hueco de 52 px con el «+» en el medio. «Sin descanso» pasa a la
     izquierda, a la altura de A1 y A2, sin las rayas (cruzaban el «+»): no se pisan nunca. El botón
     tapa todo el hueco, también el cartelito (que no toma el mouse). */
  body:not(#_) .co-ss-group .ss-div { justify-content:flex-start; height:52px; margin:0; padding:0 20px; pointer-events:none; }
  body:not(#_) .co-ss-group .ss-div::before, body:not(#_) .co-ss-group .ss-div::after { content:none; }

  body:not(#_) .co-ins { z-index:2; height:52px; margin:-8px 0; }
  /* -8 arriba: arranca en el borde de la tarjeta (se come su margen de 8); -52 abajo: no ocupa lugar
     (el lugar lo ocupa «sin descanso», de 52 px). */
  body:not(#_) .co-ss-group .co-ins { height:52px; margin:-8px 0 -52px; }
  body:not(#_) .co-ins::before { content:none; }
  .co-ins-t { display:none; }
  /* Quieto: gris, el aro y la cruz del color de los textos secundarios (el aro, un poco más suave).
     Medido: ≥ 3:1 la cruz contra su relleno y el aro contra el fondo, en todas las apariencias. */
  body:not(#_) .co-ins .co-ins-b { justify-content:center; width:24px; height:24px; padding:0; gap:0; border-radius:50%; opacity:1;
    color:var(--gize-text-2); border-color:color-mix(in srgb, var(--gize-text-2) 72%, transparent); box-shadow:none;
    transition:color .15s, border-color .15s, background-color .15s, box-shadow .15s; }
  body:not(#_) .co-ins .co-ins-b svg { width:12px; height:12px; }
  /* En «Claro» el relleno es blanco translúcido y el fondo va de celeste arriba a azul abajo: el aro,
     entero (al 72 % quedaba en 3:1 en el medio de la pantalla y menos abajo). */
  html.tema-luz body:not(#_) .co-ins .co-ins-b { border-color:var(--gize-text-2); }
  /* Con el mouse o el teclado: la cruz y el aro, del color de la marca, con el relleno teñido. */
  html body:not(#_) :is(.co-ins:hover, .co-ins:focus-visible) .co-ins-b { color:var(--gize-blue); border-color:var(--gize-blue);
    background-color:color-mix(in srgb, var(--gize-blue) 16%, var(--gize-surface)); box-shadow:0 4px 12px -4px rgba(0,0,0,.35); }
  body:not(#_) .co-ins:focus-visible .co-ins-b { outline:2px solid var(--gize-blue); outline-offset:2px; }
  html.sin-neon body:not(#_) :is(.co-ins:hover, .co-ins:focus-visible) .co-ins-b { border-color:rgba(255,255,255,.6); }
  html.sin-neon body:not(#_) .co-ins:focus-visible .co-ins-b { outline-color:rgba(255,255,255,.7); }
  /* En «Claro» el azul de la marca (marino) es casi el gris del «+» quieto y el relleno teñido lo
     apagaba: se prende al revés, lleno de marino con la cruz blanca (el aro, un poco más oscuro, para
     que el borde contra el fondo no quede más suave que quieto). Sin neón, lleno de negro, sin color. */
  html.tema-luz body:not(#_) :is(.co-ins:hover, .co-ins:focus-visible) .co-ins-b { color:#fff; background-color:var(--gize-blue);
    border-color:color-mix(in srgb, var(--gize-blue) 70%, #000); }
  html.tema-luz.sin-neon body:not(#_) :is(.co-ins:hover, .co-ins:focus-visible) .co-ins-b { color:#fff; background-color:var(--gize-text); border-color:var(--gize-text); }
  html.tema-luz.sin-neon body:not(#_) .co-ins:focus-visible .co-ins-b { outline-color:var(--gize-text); }
  /* Arrastrando una tarjeta (para armar una superserie): los «+» se apagan como las tarjetas y no se
     prenden al pasar (soltar en un hueco no hace nada). El destino se busca con elementFromPoint, que
     saltea lo que no toma el mouse. */
  body:not(#_).co-drag-on .co-ins { pointer-events:none; }
  body:not(#_).co-drag-on .co-ins .co-ins-b { opacity:.55; }
}
/* Con «reducir movimiento», cambia de una (sin fundido). */
@media (min-width: 900px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: reduce){
  body:not(#_) .co-ins .co-ins-b { transition:none; }
}

/* ---------- Bloque / mesociclo: las semanas de descarga en azul, como dice la leyenda ----------
   En «Oscuro» y «Claro» el fondo de los botones de css/ui/estetica-login.css y claro-frozen.css le
   ganaba a .bw.dl (botones-rediseno.css): la semana de descarga quedaba igual que las otras y su
   número, oscuro sobre oscuro (o blanco sobre blanco), no se leía. */
html:not(#_) body.silk-coach:not(#_):not(#__) .bw-grid .bw.dl { background:var(--acc); border-color:var(--acc); }

/* «Borrar rutina» / «Borrar programación»: acción destructiva, en rojo. */
html:not(#_):not(#__) body:not(#_) .co-logout[data-coach="tpl-del"] { color: var(--gize-danger); border-color: color-mix(in srgb, var(--gize-danger) 55%, transparent); background: color-mix(in srgb, var(--gize-danger) 10%, transparent); }
html:not(#_):not(#__) body:not(#_) .co-logout[data-coach="tpl-del"]:hover { color: var(--gize-danger); border-color: var(--gize-danger); background: color-mix(in srgb, var(--gize-danger) 18%, transparent); }
