/* =========================================================
   Fitnessindramas — Barra del cliente (21/10/2026)
   ========================================================= */
/* #108 mensajes sin leer en «Chat» */
.tb .tbi{position:relative;}
.tb-badge{position:absolute;top:2px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 4px;border-radius:var(--r-ctl);
  background:var(--danger,var(--danger));color:#fff;font:700 var(--fs-xs)/18px var(--f-mono);text-align:center;box-shadow:0 0 0 2px var(--bg, #fff);pointer-events:none;}
.tb-badge.hide{display:none;}

/* #106 apartados plegables de la ficha del cliente */
.alta-label.fp-lbl{cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;min-height:40px;margin-bottom:8px;}
.alta-label.fp-lbl::after{display:none;}
.fp-lbl .fp-t{flex:none;}
.fp-lbl .fp-res{flex:1;min-width:0;font:500 var(--fs-s) var(--f-body, inherit);letter-spacing:0;text-transform:none;color:var(--dim-45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right;}
.fp-lbl .fp-chev{flex:none;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--chip, rgba(0,0,0,.05));font:600 var(--fs-l)/1 var(--f-body, inherit);transition:transform var(--dur-m);transform:rotate(90deg);}
.fp-lbl.fp-abierto .fp-chev{transform:rotate(-90deg);}
.fp-lbl:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--r-ctl);}
.fp-oculto{display:none !important;}
/* ordenador: sin tarjetas vacías en la ficha (p. ej. nutrición sin datos para Domingo) */
.esc-grupo.fp-vacio{display:none !important;}
.esc-grupo > div > .alta-label.fp-lbl:first-child, .esc-grupo > .alta-label.fp-lbl:first-child{margin-top:0;}
.fp-lbl:not(.fp-abierto){margin-bottom:0;}

/* #115 seguimientos del cliente: una sola columna (lista), el más reciente arriba */
html.esc #seguiList{display:flex;flex-direction:column;gap:16px;padding-left:max(28px, calc((100% - 880px) / 2));padding-right:max(28px, calc((100% - 880px) / 2));}
html.esc #seguiList > *{flex-shrink:0;}
html.esc #seguiList > .esc-tabla-wrap{max-width:none;}
/* móvil: «Descargar en PDF» dentro del margen, no a todo lo ancho */
html:not(.esc) #view-coach-seguimientos > .mj-pdf{align-self:flex-start;width:auto;margin:8px 24px 0;padding:0 16px;min-height:36px;}

/* #112 foto también en los mensajes propios, a la izquierda de la burbuja */
#view-chat #chatList .bubble.msg-mio{position:relative;}
#view-chat #chatList .bubble.msg-mio:not(.sin-av), #view-chat #chatList .bubble.msg-mio.sin-av{margin-left:40px;}

/* #116 Pagos en columnas: Nombre · Tarifa · Alta · Estado */
.pagos-lista.pg-tabla{display:flex;flex-direction:column;gap:8px;}
.pg-cab,.pg-fila{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.85fr) minmax(54px,.85fr) minmax(0,1.45fr);gap:8px;align-items:center;}
.pg-cab{padding:0 12px 2px;font:700 var(--fs-xs) var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--dim-55);}
.pg-fila.pago-fila{padding:12px 12px;border-radius:var(--r-ctl);}
.pg-c{display:flex;flex-direction:column;gap:2px;min-width:0;font:500 var(--fs-s)/1.3 var(--f-body);color:var(--ink);}
.pg-c small{font:500 var(--fs-xs)/1.25 var(--f-body);color:var(--dim-6);overflow:hidden;text-overflow:ellipsis;}
.pg-nom b{font:700 var(--fs-s)/1.25 var(--f-body);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.pg-alta{font-family:var(--f-mono);font-size:var(--fs-xs);}
.pg-est{align-items:flex-start;}
.pg-est .pago-est{max-width:100%;text-align:left;white-space:normal;}
.pg-fila:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
html.esc .pg-cab,html.esc .pg-fila{grid-template-columns:minmax(0,2fr) minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.6fr);gap:16px;}
html.esc .pg-fila.pago-fila{padding:12px 20px;}
html.esc .pg-cab{padding:0 20px 2px;font-size:var(--fs-xs);}
html.esc .pg-c{font-size:var(--fs-m);}
html.esc .pg-nom b{font-size:var(--fs-m);}
html.esc .pg-alta{font-size:var(--fs-s);}
@media (max-width:360px){ .pg-cab,.pg-fila{gap:8px;} .pg-fila.pago-fila{padding:8px 8px;} .pg-c{font-size:var(--fs-xs);} .pg-nom b{font-size:var(--fs-s);} }
.pg-f-l{display:none;} html.esc .pg-f-l{display:inline;} html.esc .pg-f-c{display:none;}
html:not(.esc) .pg-est .pago-est{font-size:var(--fs-xs);letter-spacing:.02em;padding:4px 8px;}
html:not(.esc) .pg-alta{font-family:var(--f-body);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;}

/* #119 tarjetas de clientes: el nombre nunca se queda en una columna estrecha;
   si no cabe, la etiqueta de estado baja a la línea de abajo */
#listaClientes .kc-top{flex-wrap:wrap;row-gap:8px;}
#listaClientes .kc-top .cliente-info{flex:1 1 150px;min-width:0;}
#listaClientes .kc-top .cliente-flags{order:5;flex:0 1 auto;}
#listaClientes .kc-top .kc-plan-btn{order:4;}
/* #119 calculadora: las casillas alineadas aunque una etiqueta ocupe dos líneas */
.calc-row label{justify-content:flex-end;}
/* ordenador: los filtros de clientes saltan de línea en vez de cortarse */
html.esc #exFiltros{flex-wrap:wrap;overflow:visible;}

/* #118 Seguimientos: nota grande, «Ver resumen» como botón y filtros */
.sg-filtros{margin:4px 0 12px;}
.sg-filtros .sg-fn{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;margin-left:4px;border-radius:var(--r-ctl);background:rgba(0,0,0,.08);font:700 var(--fs-xs) var(--f-mono);}
.sg-filtros .chip.selected .sg-fn{background:rgba(255,255,255,.35);}
.sg-glob.sg-nota-g{display:inline-flex;align-items:baseline;gap:1px;padding:8px 12px;border-radius:var(--r-ctl);background:var(--card);border:1.5px solid currentColor;line-height:1;}
.sg-glob.sg-nota-g b{font:800 var(--fs-3xl)/1 Archivo,sans-serif;font-variant-numeric:tabular-nums;}
.sg-glob.sg-nota-g small{font:700 var(--fs-xs) var(--f-mono);opacity:.75;}
.sg-cab-der{gap:12px;}
.sg-ver.sg-ver-btn{min-height:40px;padding:0 16px;border-radius:var(--r-pill);border:1.5px solid var(--accent);background:var(--accent-wash, rgba(120,170,230,.12));color:var(--ink);font:700 var(--fs-s) var(--f-body);}
.sg-ver.sg-ver-btn:hover{background:var(--accent);color:var(--on-accent);}
.sg-linea{flex-wrap:wrap;row-gap:8px;}
@media (max-width:420px){
  .sg-cab{flex-wrap:wrap;}
  .sg-cab .cliente-info{flex:1 1 140px;min-width:0;}
  .sg-cab-der{width:100%;justify-content:space-between;}
  .sg-linea .sg-ver-btn{width:100%;}
}
html:not(.esc) .sg-filtros{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-left:-20px;margin-right:-20px;padding:0 20px;}
html:not(.esc) .sg-filtros::-webkit-scrollbar{display:none;}
html:not(.esc) .sg-filtros .chip{flex:none;}

/* #107 progreso de un vistazo en Hoy */
.hoy-prog{margin-top:16px;}
.hoy-prog .card-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;}
.hoy-prog .card-head span{font:600 var(--fs-s) var(--f-mono);color:var(--dim-6);}
.hp-barra{height:8px;border-radius:var(--r-pill);background:var(--wash-med, rgba(0,0,0,.08));overflow:hidden;margin-bottom:12px;}
.hp-barra i{display:block;height:100%;border-radius:var(--r-pill);background:var(--accent);}
.hp-datos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.hp-datos div{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 8px;border-radius:var(--r-ctl);background:var(--wash-soft, rgba(0,0,0,.04));text-align:center;}
.hp-datos b{font:800 var(--fs-l) var(--f-mono);color:var(--ink);}
.hp-datos span{font:600 var(--fs-xs) var(--f-body);color:var(--dim-6);}
.hp-rachas{display:flex;flex-wrap:wrap;gap:8px 16px;margin:12px 2px 0;font:500 var(--fs-s) var(--f-body);color:var(--dim-6);}
.hp-ver{width:100%;margin-top:16px;min-height:44px;}
#perfAcciones{margin-top:16px;}

/* #123 Seguimientos en el ordenador: números y tamaños acordes al espacio */
html.esc .segui-card{padding:20px 24px;border-radius:var(--r-card);}
html.esc .segui-head{margin-bottom:16px;}
html.esc .segui-week{font-size:var(--fs-xl);gap:12px;}
html.esc .sem-badge{font-size:var(--fs-xs);padding:4px 12px;}
html.esc .segui-peso{font-size:var(--fs-l);color:var(--ink);font-weight:700;}
html.esc .segui-med{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-bottom:16px;}
html.esc .med{padding:12px 16px;border-radius:var(--r-ctl);gap:4px;}
html.esc .med .segui-lbl{font-size:var(--fs-xs) !important;}
html.esc .med-val{font-size:var(--fs-2xl);}
html.esc .med-val small{font-size:var(--fs-s);}
html.esc .med .flecha{font-size:var(--fs-s);}
html.esc .segui-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;margin-bottom:16px;}
html.esc .segui-stats>div{padding:12px 8px;border-radius:var(--r-ctl);background:var(--wash-soft);gap:4px;}
html.esc .segui-stats .segui-lbl{font-size:var(--fs-xs) !important;}
html.esc .segui-val{font-size:var(--fs-2xl);}
html.esc .segui-pasos{font-size:var(--fs-m);margin-top:4px;}
html.esc .segui-note{font-size:var(--fs-m);line-height:1.55;margin-top:8px;}

/* #125 Pagos: Clientes | Últimos movimientos y columnas más legibles */
.pg-seg{display:flex;gap:4px;padding:4px;margin:12px 0 16px;border-radius:var(--r-ctl);background:var(--wash-soft, rgba(0,0,0,.05));}
.pg-seg button{flex:1;min-height:40px;border:none;border-radius:var(--r-ctl);background:none;color:var(--dim-6);font:700 var(--fs-s) var(--f-body);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;}
.pg-seg button.on{background:var(--card, #fff);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08);}
#pgMovsCaja[hidden],.pagos-lista[hidden],.pagos-filtros[hidden]{display:none !important;}
/* filas: franja de color a la izquierda en vez de marco grueso, texto más grande */
.pg-fila.pago-fila{border:1px solid var(--line);border-left:5px solid var(--line-strong);background:var(--card);}
.pg-fila.pago-fila.roj{border-color:color-mix(in srgb, var(--danger) 35%, transparent);border-left-color:var(--danger);background:color-mix(in srgb, var(--danger) 5%, transparent);}
.pg-fila.pago-fila.nar{border-color:color-mix(in srgb, var(--warn) 35%, transparent);border-left-color:var(--warn);}
.pg-fila.pago-fila.amb{border-color:color-mix(in srgb, var(--v3) 35%, transparent);border-left-color:var(--v3);}
.pg-fila.pago-fila.ok{border-left-color:var(--fat);}
.pg-fila:hover{filter:brightness(.985);}
html.esc .pg-cab{font-size:var(--fs-xs);letter-spacing:.08em;padding:0 20px 4px 24px;}
html.esc .pg-fila.pago-fila{padding:16px 20px;border-radius:var(--r-ctl);}
html.esc .pg-c{font-size:var(--fs-m);}
html.esc .pg-nom b{font-size:var(--fs-l);}
html.esc .pg-c small{font-size:var(--fs-s);}
html.esc .pg-tar{font-weight:600;}
html.esc .pg-alta{font-size:var(--fs-m);color:var(--dim-6);}
html.esc .pg-est .pago-est{font-size:var(--fs-xs);padding:4px 12px;}
html.esc .pg-est small{font-size:var(--fs-s);margin-top:2px;}
html.esc .pagos-lista.pg-tabla{gap:8px;}
/* #113 aviso de borrado en la ficha */
.pg-borrado{margin:8px 2px 4px;padding:12px 12px;border-radius:var(--r-ctl);background:color-mix(in srgb, var(--danger) 8%, transparent);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);font:500 var(--fs-s)/1.45 var(--f-body);color:var(--ink);}
.pg-borrado b{color:var(--danger-text);}
/* #114 términos en el consentimiento */
.cs-terminos{margin:4px 0 12px;font:500 var(--fs-s)/1.45 var(--f-body);color:var(--dim-6);}

/* #111 ordenador en ventanas más estrechas: menú lateral en iconos */
html.esc.esc-mini{--esc-menu:72px;}
html.esc.esc-mini #coachTabs{padding:16px 8px;align-items:center;}
html.esc.esc-mini #coachTabs .tbi{position:relative;justify-content:center;width:52px;padding:8px 0;font-size:0;gap:0;}
html.esc.esc-mini #coachTabs .tbi .tl-largo,html.esc.esc-mini #coachTabs .tbi .tl-corto{display:none !important;}
html.esc.esc-mini #coachTabs .tbi-emo{font-size:var(--fs-xl);}
html.esc.esc-mini #coachTabs .tab-badge{position:absolute;top:2px;right:2px;margin:0;font-size:var(--fs-xs);}
html.esc.esc-mini .esc-logo{padding:2px 0 16px;justify-content:center;}
html.esc.esc-mini .esc-logo > div,html.esc.esc-mini .esc-logo b,html.esc.esc-mini .esc-logo span{display:none;}
html.esc.esc-mini .esc-pie{align-items:center;}
html.esc.esc-mini .esc-pie-btn{justify-content:center;width:52px;font-size:0;padding:8px 0;}
html.esc.esc-mini .esc-pie-btn > span:first-child,html.esc.esc-mini .esc-pie-btn > svg{font-size:var(--fs-xl);}
html.esc.esc-mini .esc-pie-btn .bell-badge{position:absolute;top:2px;right:2px;margin:0;}
html.esc.esc-mini .esc-pie > :not(.esc-pie-btn){display:none;}
@media (max-width:1099px){ :root{--esc-lista:300px;} }
html.esc .alta-top,html.esc .alta-body{padding-left:max(20px, calc((100% - 1120px) / 2));padding-right:max(20px, calc((100% - 1120px) / 2));}
/* #122 barra vertical para ajustar el ancho de la lista */
.esc-divisor{display:none;}
html.esc .esc-divisor:not([hidden]){display:block;position:fixed;top:0;bottom:0;left:calc(var(--esc-menu) + var(--esc-lista) - 5px);width:10px;cursor:col-resize;z-index:calc(var(--z-barra) + 10);touch-action:none;}
html.esc .esc-divisor::after{content:"";position:absolute;top:0;bottom:0;left:4px;width:2px;background:transparent;transition:background var(--dur-r);}
html.esc .esc-divisor:hover::after,html.esc .esc-divisor:focus-visible::after,html.esc.esc-arrastrando .esc-divisor::after{background:var(--accent);}
html.esc .esc-divisor::before{content:"";position:absolute;top:50%;left:1px;width:8px;height:42px;margin-top:-20px;border-radius:5px;background:var(--line-strong);opacity:.0;transition:opacity var(--dur-r);}
html.esc .esc-divisor:hover::before,html.esc.esc-arrastrando .esc-divisor::before{opacity:1;background:var(--accent);}
html.esc.esc-arrastrando,html.esc.esc-arrastrando *{cursor:col-resize !important;user-select:none !important;}
/* lista estrecha (ventana pequeña o barra movida): las cifras de cada cliente en 2 × 2 */
html.esc .screen.esc-dual > .esc-izq{container-type:inline-size;}
@container (max-width:350px){
  #listaClientes .kcard .kc-grid{flex-wrap:wrap;}
  #listaClientes .kcard .kc-grid > .kc{flex:1 1 calc(33% - 4px);min-width:0;}
  .panel-stats .panel-stat .lbl{font-size:var(--fs-xs);}
}
/* 21/10 14:35: el peso ya sale en su casilla; fuera el repetido arriba a la derecha */
.segui-card:has(.segui-med) .segui-head .segui-peso{display:none;}
/* #130 Domingo también ve «Nutrición de un vistazo» en la ficha (una regla antigua lo ocultaba) */
.esp-entreno #view-coach-cliente #fichaNutri .nu-vista:not(.fp-oculto),.esp-nutri #view-coach-cliente #fichaEntrenoRes .fe-card:not(.fp-oculto){display:block !important;}

/* 21/10 15:00 · Todas las notificaciones en el mismo rojo */
.tab-badge,.bell-badge,.mj-bell-badge,.tb-badge,.acc-n,.chat-fila-n,#coachTabs .tab-badge{background:var(--danger,var(--danger)) !important;color:#fff !important;}
.tb-badge{background:var(--danger,var(--danger));}

/* #120 tiempo con la rutina actual */
.rut-ficha{margin:8px 0 12px;padding:8px 12px;border-radius:var(--r-ctl);font:500 var(--fs-s)/1.4 var(--f-body);color:var(--ink);background:var(--wash-soft);}
.rut-ficha.amb{background:color-mix(in srgb, var(--v3) 16%, transparent);color:#7A4E0F;}
.rut-ficha.roj{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger-text);}
.rut-tag{font:600 var(--fs-xs) var(--f-body);padding:2px 8px;border-radius:var(--r-pill);background:var(--wash-med);color:var(--dim-6);white-space:nowrap;}
.rut-tag.amb{background:color-mix(in srgb, var(--v3) 20%, transparent);color:var(--carb-text);}
.rut-tag.roj{background:color-mix(in srgb, var(--danger) 15%, transparent);color:var(--danger-text);}

/* #127 gráfico de evolución en Seguimientos */
.gr-box{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:16px 16px 12px;margin:0 0 16px;}
.gr-chips{margin:0 0 12px;}
html:not(.esc) .gr-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;}
html:not(.esc) .gr-chips .chip{flex:none;}
.gr-chips .chip[disabled]{opacity:.4;cursor:default;}
.gr-cab{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:2px 4px 8px;}
.gr-tit{display:block;font:600 var(--fs-xs) var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--dim-6);}
.gr-val{font:800 var(--fs-3xl)/1.1 Archivo,sans-serif;color:var(--ink);}
.gr-val small{font:600 var(--fs-s) var(--f-body);color:var(--dim-6);}
.gr-dif{font:600 var(--fs-s) var(--f-body);color:var(--dim-6);text-align:right;}
.gr-vacio{padding:24px 8px;text-align:center;font:500 var(--fs-s) var(--f-body);color:var(--dim-6);}
.gr-plot{position:relative;}
.gr-plot svg{display:block;overflow:visible;}
.gr-grid{stroke:var(--line);stroke-width:1;}
.gr-ax{fill:var(--dim-55, #888);font:500 var(--fs-xs) var(--f-mono);}
.gr-linea{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;}
.gr-area{fill:var(--accent);opacity:.08;}
.gr-pt{fill:var(--accent);stroke:var(--card, #fff);stroke-width:2;}
.gr-pt.ult{r:5;}
.gr-cruz{stroke:var(--dim-45, #999);stroke-width:1;stroke-dasharray:3 3;}
.gr-hl{fill:var(--card, #fff);stroke:var(--accent);stroke-width:3;}
.gr-hit{fill:transparent;cursor:crosshair;}
.gr-tip{position:absolute;transform:translateX(-50%);pointer-events:none;background:var(--ink);color:var(--bg);border-radius:var(--r-ctl);padding:8px 12px;display:flex;flex-direction:column;align-items:center;gap:1px;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.18);}
.gr-tip[hidden]{display:none;}
.gr-tip span{font:500 var(--fs-xs) var(--f-body);opacity:.8;}
.gr-tip b{font:700 var(--fs-m) var(--f-mono);}
.gr-tabla-btn{display:block;margin:8px 0 0 auto;border:none;background:none;color:var(--accent-text);font:600 var(--fs-s) var(--f-body);cursor:pointer;padding:8px 4px;}
.gr-tabla-btn[hidden],#seguiList .esc-tabla-wrap[hidden]{display:none !important;}

/* #135 cada profesional en su área */
html.esc #coachTabs #ctab-recetas.ar-fuera,#ctab-recetas.ar-fuera{display:none !important;}
.ar-solo-ver{cursor:default;}
.ar-solo-ver .lnk{color:var(--dim-6);font-weight:500;}
/* Fátima: el registro de pesos y el tonelaje son cosa del entreno */
html.ar-dietista #fichaEntrenoRes .fe-registro,html.ar-dietista #fichaRegistro,html.ar-dietista #view-coach-cliente .tonelaje-card{display:none !important;}

/* #134 Planes de nutrición (Fátima): buscador, fotos, lista y resumen */
.pl-busca input{width:100%;height:44px;border-radius:var(--r-ctl);border:1px solid var(--line-strong);background:var(--wash-soft);color:var(--ink);padding:0 16px;font:500 var(--fs-m) var(--f-body);margin:4px 0 12px;}
.pl-busca input:focus{outline:none;border-color:var(--accent);}
.plan-fila{position:relative;padding-left:64px;text-align:left;}
.plan-fila .pl-av{position:absolute;left:12px;top:12px;}
.pl-av{width:40px;height:40px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font:700 var(--fs-l) Archivo,sans-serif;background-size:cover;background-position:center;}
.plan-fila.pl-sel{outline:2px solid var(--accent);outline-offset:-2px;}
.plan-fila[hidden]{display:none !important;}
.pl-prev-movil{margin:-4px 0 12px;padding:12px;border:1px solid var(--accent-line, var(--line));border-top:none;border-radius:0 0 var(--r-card) var(--r-card);background:var(--card);}
.pl-prev-h{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.pl-prev-h b{display:block;font:700 var(--fs-l) var(--f-body);color:var(--ink);}
.pl-prev-h span{font:500 var(--fs-s) var(--f-body);color:var(--dim-6);}
.pl-nu{cursor:default;margin-bottom:12px;}
.pl-abrir{width:100%;}
.pl-prev-vacio{display:flex;flex-direction:column;align-items:center;gap:8px;padding:60px 20px;text-align:center;color:var(--dim-6);font:500 var(--fs-s) var(--f-body);}
.pl-prev-vacio span:first-child{font-size:var(--fs-3xl);}
.pl-prev-vacio b{color:var(--ink);font-size:var(--fs-m);}
.pl-der{display:none;}
html.esc .pl-split{display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:20px;align-items:start;}
html.esc .pl-der{display:block;position:sticky;top:12px;padding:16px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--card);}
html.esc .pl-izq{min-width:0;}
.pl-prev-movil .pl-prev-h{display:none;}

/* #139 Chat: fuera el panel de emojis propio; se usan los del teclado del móvil (y Win + . / Ctrl + Cmd + Espacio en el ordenador) */
#emojiBtn,#emojiPanel{display:none !important;}

/* #144 un seguimiento por semana */
.sg-hecho{display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin:4px 0 16px;padding:16px;border-radius:var(--r-card);background:rgba(116,188,138,.14);border:1.5px solid rgba(116,188,138,.5);font:500 var(--fs-s)/1.45 var(--f-body);color:var(--ink);}
.sg-hecho[hidden]{display:none;}
.sg-hecho b{font:700 var(--fs-l) var(--f-body);}
.sg-hecho-ico{font-size:var(--fs-3xl);}
.sg-hecho .btn-primary,.sg-hecho .btn-eq{width:100%;margin:4px 0 0;}
#view-seguimiento.sg-editando .sg-hecho{background:var(--accent-wash, rgba(120,170,230,.12));border-color:var(--accent-line, var(--accent));}
#view-seguimiento.sg-ya > :not(.view-top):not(#sgHecho):not(.section-lbl):not(#historialSegui):not(.mj-pdf){display:none !important;}
/* aviso de versión nueva (app instalada) */
.fsd-nueva-version{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:calc(var(--z-superior) + 1);padding:12px 20px;border:none;border-radius:var(--r-pill);background:var(--ink);color:var(--bg);font:700 var(--fs-m) var(--f-body);box-shadow:0 6px 20px rgba(0,0,0,.25);cursor:pointer;}

/* ---------- #140 seguimiento: colores y caras ---------- */
.esc-row.sg-agujetas .esc-btn{border-color:var(--tono);color:var(--tono);background:color-mix(in srgb, var(--tono) 10%, var(--card, #fff));}
.esc-row.sg-agujetas .esc-btn.on{background:var(--tono);border-color:var(--tono);color:#fff;}
.esc-row.sg-motiv .esc-btn{height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:var(--fs-xs);line-height:1;}
.esc-row.sg-motiv .esc-btn::before{font-size:var(--fs-2xl);line-height:1;font-family:system-ui,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;}
.esc-row.sg-motiv .esc-btn:nth-child(1)::before{content:"😞";}
.esc-row.sg-motiv .esc-btn:nth-child(2)::before{content:"🙁";}
.esc-row.sg-motiv .esc-btn:nth-child(3)::before{content:"😐";}
.esc-row.sg-motiv .esc-btn:nth-child(4)::before{content:"🙂";}
.esc-row.sg-motiv .esc-btn:nth-child(5)::before{content:"😄";}
.sg-cara{font-size:var(--fs-3xl);line-height:1;min-width:30px;text-align:center;font-family:system-ui,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;}
#hoyToca{display:none !important;}
#view-hoy .entreno-hoy,#view-hoy .nutri-hoy{cursor:pointer;transition:transform var(--dur-r) var(--ease-sal);}
#view-hoy .entreno-hoy:active,#view-hoy .nutri-hoy:active{transform:scale(.985);}
.kc-info{margin:4px 0 0;font:500 var(--fs-s)/1.35 var(--f-body);color:var(--dim-6);}
/* la semana anterior en agujetas: borde discontinuo de su propio color, sin tapar el tono */
.esc-row.sg-agujetas .esc-btn.esc-ant:not(.on){border-style:dashed;border-width:2px;border-color:var(--tono);box-shadow:none;color:var(--tono);background:color-mix(in srgb, var(--tono) 10%, var(--card, #fff));}

/* ---------- #142 protocolos en PDF ---------- */
.pr-ficha{margin:12px 0 16px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--card-hi, var(--wash-soft));}
.pr-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;font:600 var(--fs-s) var(--f-body);color:var(--ink);}
.pr-subir{font:600 var(--fs-s) var(--f-body);color:var(--accent-text);cursor:pointer;padding:8px 12px;border-radius:var(--r-ctl);background:var(--accent-wash);}
.pr-nota{font:500 var(--fs-xs) var(--f-body);color:var(--dim-55);}
.pr-vacio{margin:8px 0 0;font:500 var(--fs-s)/1.4 var(--f-body);color:var(--dim-6);}
.pr-lista{display:flex;flex-direction:column;gap:8px;margin-top:12px;}
.pr-cliente{margin:20px 0;}
.pr-cliente .pr-lista{margin-top:0;}
.pr-it{display:flex;align-items:center;gap:8px;}
.pr-abrir{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:12px 12px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--card, #fff);text-align:left;cursor:pointer;color:var(--ink);}
.pr-abrir:hover{border-color:var(--accent-line, var(--accent));}
.pr-ico{font-size:var(--fs-xl);}
.pr-t{flex:1;min-width:0;display:flex;flex-direction:column;}
.pr-t b{font:600 var(--fs-m) var(--f-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pr-t small{font:500 var(--fs-xs) var(--f-mono);color:var(--dim-55);}
.pr-desc{font:600 var(--fs-s) var(--f-body);color:var(--accent-text);}
.pr-x{width:34px;height:34px;border-radius:var(--r-ctl);border:1px solid var(--line);background:none;color:var(--dim-6);cursor:pointer;}

/* ---------- #156 ¿Cómo renovar? ---------- */
#hoyPago.rn-con{flex-wrap:wrap;}
.rn-box{flex:1 1 100%;margin-top:12px;border-top:1px solid var(--line);padding-top:8px;text-align:left;}
.rn-box summary{cursor:pointer;font:700 var(--fs-m) var(--f-body);color:var(--ink);list-style:none;display:flex;align-items:center;gap:8px;}
.rn-box summary::-webkit-details-marker{display:none;}
.rn-box summary::after{content:"▾";font-size:var(--fs-s);color:var(--dim-55);}
.rn-box[open] summary::after{content:"▴";}
.rn-cuerpo{margin-top:8px;}
.rn-t{margin:12px 0 4px;font:600 var(--fs-xs) var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--dim-6);}
.rn-fila{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;margin-bottom:4px;border-radius:var(--r-ctl);background:var(--card, #fff);border:1px solid var(--line);}
.rn-fila span{display:flex;flex-direction:column;min-width:0;}
.rn-fila small{font:500 var(--fs-xs) var(--f-body);color:var(--dim-55);}
.rn-fila b{font:600 var(--fs-m) var(--f-mono);color:var(--ink);overflow-wrap:anywhere;}
.rn-cp{flex:none;padding:8px 12px;border-radius:var(--r-ctl);border:none;background:var(--accent-wash);color:var(--accent-text);font:600 var(--fs-s) var(--f-body);cursor:pointer;}
.rn-nota{margin:8px 0 0;font:500 var(--fs-s)/1.4 var(--f-body);color:var(--dim-6);}
html.esc #escInstalar{color:var(--accent-text);font-weight:700;}

/* ---------- #157 fotos de progreso en el seguimiento ---------- */
.sg-fotos{margin-top:16px;}
.sg-fotos-fila{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:8px;}
.sg-foto-hueco{position:relative;aspect-ratio:3/4;border-radius:var(--r-ctl);border:1.5px dashed var(--accent-line, var(--accent));background:var(--wash-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;overflow:hidden;color:var(--accent-text);}
.sg-foto-hueco.con{border-style:solid;}
.sg-foto-hueco img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.sg-foto-mas{font-size:var(--fs-2xl);line-height:1;}
.sg-foto-lbl{font:600 var(--fs-s) var(--f-body);position:relative;z-index:var(--z-contenido);}
.sg-foto-hueco.con .sg-foto-lbl{position:absolute;left:6px;bottom:6px;padding:2px 8px;border-radius:var(--r-ctl);background:rgba(0,0,0,.55);color:#fff;}
.sg-foto-x{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;border:none;background:rgba(0,0,0,.55);color:#fff;font-size:var(--fs-s);cursor:pointer;z-index:calc(var(--z-contenido) + 1);}
.sg-fotos-res{display:flex;gap:8px;margin-top:12px;}
.sg-fr{flex:0 0 72px;padding:0;border:none;background:none;cursor:pointer;display:flex;flex-direction:column;gap:4px;font:500 var(--fs-xs) var(--f-body);color:var(--dim-6);}
.sg-fr img{width:72px;height:96px;object-fit:cover;border-radius:var(--r-ctl);background:var(--wash-med);}
.sg-foto-grande{position:fixed;inset:0;z-index:calc(var(--z-flotante) + 40);background:rgba(0,0,0,.88);display:none;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px;}
.sg-foto-grande.show{display:flex;}
.sg-foto-grande img{max-width:100%;max-height:85vh;border-radius:var(--r-ctl);}
.sg-foto-grande span{color:#fff;font:500 var(--fs-s) var(--f-body);}
#app.coach-edit:not(.coach-view) .add-meal-btn,#app.coach-edit:not(.coach-view) .calc-card{display:none !important;}
#app:not(.coach-view) #enHerr,#app:not(.coach-view) .ses-del,#app:not(.coach-view) .ru-cambiar,#app:not(.coach-view) .ru-ren,#app:not(.coach-view) .calc-card,#app:not(.coach-view) .add-meal-btn,#app:not(.coach-view) .nu-rapido,#app:not(.coach-view) .add-sesion-btn,#app:not(.coach-view) .add-ej-btn,#app:not(.coach-view) .chip-add,#app:not(.coach-view) .chip-x,#app:not(.coach-view) .ex-del,#app:not(.coach-view) .meal-del{display:none !important;}
/* #163 Entrenamientos de Domingo: lista + entreno a la derecha */
.ent-lista{display:flex !important;flex-direction:column;gap:8px;}
.ent-lista .plan-fila{margin:0;}
.ent-prev-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:4px 0 12px;}
.ent-prev-stats > div{padding:12px 12px;border-radius:var(--r-ctl);background:var(--card-hi, var(--wash-soft));border:1px solid var(--line);display:flex;flex-direction:column;gap:2px;}
.ent-prev-stats small{font:600 var(--fs-xs) var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--dim-55);}
.ent-prev-stats b{font:700 var(--fs-xl) var(--f-body);color:var(--ink);}
.ent-prev-stats span{font:500 var(--fs-xs) var(--f-body);color:var(--dim-6);}
.ent-prev-card{cursor:default;margin-bottom:12px;}
html.esc .ent-split .pl-der{max-height:calc(100vh - 140px);overflow:auto;}

/* ---------- cardio en el creador de rutinas ---------- */
.ex-item.cd-item .ex-series,.ex-item.cd-item .ru-res,.ex-item.cd-item .ru-ss,.ex-item.cd-item .sr-filas,.ex-item.cd-item .sr-plan,.ex-item.cd-item .srf,.ex-item.cd-item .ex-table-row > span:not(.ex-name-cell):not(.ru-asa){display:none !important;}
.cd-box{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 4px;padding:8px 12px;border-radius:var(--r-ctl);background:var(--accent-wash);color:var(--ink);font:600 var(--fs-s) var(--f-body);}
.cd-box.cd-edit{flex-direction:column;align-items:stretch;background:var(--wash-soft);border:1px dashed var(--accent-line, var(--accent));}
.cd-ico{font-size:var(--fs-xl);}
.cd-txt{flex:1;min-width:0;}
.cd-ok{border:1px solid var(--accent);background:none;color:var(--accent-text);border-radius:var(--r-ctl);padding:8px 12px;font:700 var(--fs-s) var(--f-body);cursor:pointer;}
.cd-ok.on{background:var(--accent);color:var(--on-accent,#fff);}
.cd-modos,.cd-presets{display:flex;flex-wrap:wrap;gap:8px;}
.cd-chip{border:1px solid var(--line-strong);background:var(--card,#fff);color:var(--ink);border-radius:var(--r-pill);padding:4px 12px;font:600 var(--fs-s) var(--f-body);cursor:pointer;}
.cd-chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent,#fff);}
.cd-campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;}
.cd-f{display:flex;flex-direction:column;gap:4px;font:600 var(--fs-xs) var(--f-body);color:var(--dim-6);}
.cd-f input{height:36px;border-radius:var(--r-ctl);border:1px solid var(--line-strong);background:var(--card,#fff);color:var(--ink);padding:0 12px;font:600 var(--fs-m) var(--f-mono);min-width:0;}
.cd-res{font:600 var(--fs-s) var(--f-mono);color:var(--accent-text);}
.cd-nota{margin:0;font:500 var(--fs-s)/1.4 var(--f-body);color:var(--dim-6);}
html.ru-plegable #sesionesCont .ex-item.cd-item:not(.ru-foco) > .cd-box.cd-box:not(.ru-res){display:flex !important;}
html.ru-compacto #sesionesCont .ex-item.cd-item:not(.ru-foco) > .cd-box{margin:0;padding:4px 8px;}
.cd-box .cd-mini{display:none;}
.cd-box.cd-edit .cd-ed{display:flex;flex-direction:column;gap:8px;}
html.ru-plegable #sesionesCont .ex-item:not(.ru-foco) .cd-box.cd-edit{background:var(--accent-wash);border:none;padding:4px 8px;}
html.ru-plegable #sesionesCont .ex-item:not(.ru-foco) .cd-box.cd-edit .cd-ed{display:none;}
html.ru-plegable #sesionesCont .ex-item:not(.ru-foco) .cd-box.cd-edit .cd-mini{display:inline;font:600 var(--fs-s) var(--f-mono);color:var(--accent-text);}

/* 21/10 · Tarjetas de Clientes sin la casilla «Mensajes» (ya se ven en Chats) */
.kc-grid > .kc-msgs{display:none !important;}
.kc-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.ex-filtros{flex-wrap:wrap;overflow:visible;}
.cd-hecho{display:block;margin-top:2px;font:600 var(--fs-s) var(--f-body);color:var(--ok-text);}
.cd-reg{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:4px;}
.cd-reg .cd-f{flex:1 1 120px;}
.cd-reg-btns{display:flex;gap:8px;margin-left:auto;}

/* Mejora 5 · Antes / Ahora */
.ff-lista{display:flex;flex-direction:column;gap:12px;margin-bottom:16px;}
.ff-pos > b{display:block;font:600 var(--fs-s) var(--f-body);color:var(--ink);margin-bottom:8px;}
.ff-par{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:360px;}
.ff-c{display:flex;flex-direction:column;gap:4px;padding:0;border:none;background:none;cursor:pointer;text-align:left;}
.ff-c img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r-ctl);background:var(--wash-med);}
.ff-c small{font:500 var(--fs-xs) var(--f-mono);color:var(--dim-6);}
.ff-vacio{display:flex;aspect-ratio:3/4;align-items:center;justify-content:center;border:1.5px dashed var(--line-strong);border-radius:var(--r-ctl);color:var(--dim-55);font:500 var(--fs-s) var(--f-body);text-align:center;}

/* Mejora 7 · detalles */
@media (max-width:1180px){ html.esc #coachBarLabel{display:none;} html.esc #coachBarName{min-width:120px;} html.esc .en-deshacer-txt{display:none;} }
@media (max-width:400px){ .exg-rachas span{font-size:var(--fs-xs) !important;line-height:1.25;} .exg-rachas > div{padding-left:8px !important;padding-right:8px !important;} }
.ent-filtros{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;}
.ent-filtros button{height:32px;padding:0 12px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--bg);color:var(--dim-6);font:600 var(--fs-s) var(--f-body);cursor:pointer;}
.ent-filtros button.sel{background:var(--accent);border-color:var(--accent);color:var(--on-accent,#fff);}
.ent-filtros button b{font-family:var(--f-mono);margin-left:4px;}
.plan-fila.ent-fuera{display:none !important;}

/* ---------- Mapa muscular semanal ---------- */
:root{ --mu0:#C9D2DC; --mu1:#8FB3D9; --mu2:#F0C24B; --mu3:#36A269; --mu4:#E0623A; --mu-piel:#F4F6F8; --mu-borde:#D3DAE2; --mu-neutro:#AEB8C3; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --mu0:#3A4654; --mu-piel:#1D252E; --mu-borde:#3A4552; --mu-neutro:#56626F; } }
:root[data-theme="dark"]{ --mu0:#3A4654; --mu-piel:#1D252E; --mu-borde:#3A4552; --mu-neutro:#56626F; }
.mu-box{margin:8px 0 12px;}
.mu-cab{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px;}
.mu-cab b{font:700 var(--fs-m) var(--f-body);color:var(--ink);}
.mu-cab span{font:600 var(--fs-xs) var(--f-mono);color:var(--dim-6);}
.mu-figs{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:420px;margin:0 auto;}
.mu-figs figure{margin:0;text-align:center;}
.mu-figs figcaption{font:600 var(--fs-xs) var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim-55);}
.mu-svg{width:100%;height:auto;max-height:340px;}
.mu-sil{pointer-events:none;fill:var(--mu-piel);stroke:var(--mu-borde);stroke-width:6;stroke-linejoin:round;}
.mu-neutro,.mu-cabeza,.mu-pelo{pointer-events:none;fill:var(--mu-neutro);}
.mu-cabeza{opacity:.55;}
.mu-pelo{opacity:.9;}
.mu-lin line{stroke:rgba(0,0,0,.18);stroke-width:1;}
.mu-z{cursor:pointer;stroke:none;transition:filter var(--dur-r);}
.mu-z:hover{filter:brightness(1.08);}
.mu-z.n0{fill:var(--mu0);} .mu-z.n1{fill:var(--mu1);} .mu-z.n2{fill:var(--mu2);} .mu-z.n3{fill:var(--mu3);} .mu-z.n4{fill:var(--mu4);}
.mu-z.sel{stroke:var(--ink);stroke-width:7;}
.mu-z:focus{outline:none;stroke:var(--accent);stroke-width:7;}
.mu-ley{display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:center;margin:8px 0 4px;}
.mu-ley-i{display:inline-flex;align-items:center;gap:4px;font:500 var(--fs-xs) var(--f-body);color:var(--dim-6);}
.mu-ley-i b{font:700 var(--fs-xs) var(--f-mono);color:var(--ink);}
.mu-ley i,.mu-fila i{width:12px;height:12px;border-radius:4px;display:inline-block;flex:none;}
i.n0{background:var(--mu0);} i.n1{background:var(--mu1);} i.n2{background:var(--mu2);} i.n3{background:var(--mu3);} i.n4{background:var(--mu4);}
.mu-nota{margin:4px 0 8px;font:500 var(--fs-xs)/1.45 var(--f-body);color:var(--dim-6);text-align:center;}
.mu-det{padding:8px 12px;border-radius:var(--r-ctl);background:var(--wash-soft);font:500 var(--fs-s)/1.45 var(--f-body);color:var(--dim-6);margin-bottom:8px;}
.mu-det b{color:var(--ink);}
.mu-det ul{margin:4px 0 0;padding-left:20px;}
.mu-tag{display:inline-block;padding:1px 8px;border-radius:var(--r-pill);font:700 var(--fs-xs) var(--f-mono);color:#1b1b1b;}
.mu-tag.n0{background:var(--mu0);} .mu-tag.n1{background:var(--mu1);} .mu-tag.n2{background:var(--mu2);} .mu-tag.n3{background:var(--mu3);color:#fff;} .mu-tag.n4{background:var(--mu4);color:#fff;}
.mu-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;}
.mu-fila{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:8px 12px;border-radius:var(--r-ctl);border:1px solid var(--line);background:var(--card,#fff);text-align:left;cursor:pointer;color:var(--ink);}
.mu-fila span{font:600 var(--fs-s) var(--f-body);}
.mu-fila b{font:700 var(--fs-m) var(--f-mono);}
.mu-fila small{grid-column:1 / -1;font:500 var(--fs-xs) var(--f-body);color:var(--dim-55);}
.mu-fila.sel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);}
.mu-card summary{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;list-style:none;font:700 var(--fs-m) var(--f-body);color:var(--ink);}
.mu-card summary::-webkit-details-marker{display:none;}
.mu-card summary small{font:600 var(--fs-s) var(--f-body);color:var(--accent-text);}
.mu-ton{display:flex;flex-direction:column;align-items:center;padding:12px;border-radius:var(--r-card);background:var(--accent-wash);margin-bottom:12px;}
.mu-ton small{font:600 var(--fs-xs) var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--dim-6);}
.mu-ton b{font:800 var(--fs-3xl) var(--f-body);color:var(--ink);}
.mu-modos{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 8px;}
/* Domingo: figura y cifras lado a lado para leerlo de un vistazo */
.mu-compacto .mu-cuerpo{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:12px;align-items:start;}
.mu-compacto .mu-figs{gap:2px;}
.mu-compacto .mu-svg{max-height:360px;}
.mu-compacto .mu-lista{grid-template-columns:1fr;gap:4px;}
.mu-compacto .mu-fila{padding:4px 8px;}
.mu-compacto .mu-fila small{font-size:var(--fs-xs);}
@media (max-width:520px){ .mu-compacto .mu-cuerpo{grid-template-columns:1fr;} .mu-compacto .mu-lista{grid-template-columns:repeat(2,1fr);} }
.mu-card.mu-nuevo{box-shadow:0 0 0 3px var(--accent);transition:box-shadow var(--dur-l);}

/* #174 Completar seguimiento */
.sg-rev{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);}
.sg-rev-btn{width:auto;padding:0 16px !important;height:40px !important;margin:0;}
.sg-rev.abierto .sg-rev-btn{display:none;}
.sg-rev-form{display:none;flex:1 1 100%;flex-direction:column;gap:8px;}
.sg-rev.abierto .sg-rev-form{display:flex;}
.sg-rev-form label{font:600 var(--fs-s) var(--f-body);color:var(--dim-6);}
.sg-rev-acts{display:flex;gap:8px;justify-content:flex-end;}
.sg-rev-acts .btn-primary,.sg-rev-acts .btn-eq{width:auto;height:40px;padding:0 16px;margin:0;}
.sg-rev-ok{flex:1;font:600 var(--fs-s) var(--f-body);color:var(--ok-text);}
.sg-rev-otro{font:500 var(--fs-s) var(--f-body);color:var(--dim-6);}
.sg-bloque.sg-saliendo{opacity:0;transform:translateX(16px);transition:opacity var(--dur-l),transform var(--dur-l);}
.sg-por-rev{margin:0 0 8px;font:500 var(--fs-s) var(--f-body);color:var(--dim-6);}
.sg-por-rev b{color:var(--ink);font-family:var(--f-mono);}
.bubble.mencion{border-left:3px solid var(--accent);}
.mencion-tag{display:block;font:700 var(--fs-xs) var(--f-mono);letter-spacing:.04em;color:var(--accent-text);margin:2px 0 4px;}

/* #148 emojis en el ordenador */
html.esc #emojiBtn{display:inline-flex !important;}
html.esc #emojiPanel:not([hidden]){display:block !important;max-height:260px;padding:8px 8px 8px;overflow-y:auto;border:1px solid var(--line);box-shadow:0 8px 24px rgba(0,0,0,.08);}
.emo-tabs{display:flex;gap:2px;position:sticky;top:-6px;background:var(--card);padding:4px 0;z-index:var(--z-contenido);border-bottom:1px solid var(--line);}
.emo-tab{width:38px;height:34px;border:none;border-radius:var(--r-ctl);background:none;font-size:var(--fs-xl);cursor:pointer;opacity:.6;}
.emo-tab.on{opacity:1;background:var(--accent-wash);}
.emo-tab:hover{opacity:1;}
.emo-tit{font:600 var(--fs-xs) var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--dim-55);margin:8px 2px 2px;}
.emo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:2px;}
.emo-b{height:38px;border:none;border-radius:var(--r-ctl);background:none;font-size:var(--fs-2xl);line-height:1;cursor:pointer;}
.emo-b:hover{background:var(--wash-med);}
.pr-sin{display:block;margin:12px auto 0;border:none;background:none;color:var(--dim-6);font:500 var(--fs-s) var(--f-body);text-decoration:underline;cursor:pointer;}

/* =========================================================
   22/10 · Sesión del cliente más legible: cada ejercicio en su tarjeta,
   la pauta en etiquetas («3 series» destacada) y series más ligeras
   ========================================================= */
#app:not(.coach-edit) #view-entreno .sesion-body .ex-item{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-card);padding:12px 12px 12px;margin-top:12px;box-shadow:0 1px 3px rgba(18,21,26,.05);}
#app:not(.coach-edit) #view-entreno .sesion-body .ex-item.en-en-grupo{border-left:3px solid var(--accent);padding-left:12px;}
#app:not(.coach-edit) #view-entreno .sesion-body .ex-item.ej-hecho{border-color:rgba(116,188,138,.55);}
#app:not(.coach-edit) #view-entreno .ex-table-row{gap:12px;padding:0 0 12px;}
#app:not(.coach-edit) #view-entreno .ex-name-cell{flex:1 1 auto;min-width:0;display:flex;align-items:center;font:700 var(--fs-l)/1.25 var(--f-body);}
#app:not(.coach-edit) #view-entreno .ex-name-cell::before{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:0;margin-right:12px;border-radius:var(--r-ctl);background:var(--accent-wash);color:var(--accent-text);font:700 var(--fs-s) var(--f-mono);}
#app:not(.coach-edit) #view-entreno .ex-item.ej-hecho .ex-name-cell::before{background:rgba(116,188,138,.2);color:var(--ok-text);}
/* progreso del ejercicio */
.ej-prog{display:none;}
#app:not(.coach-edit) #view-entreno .ej-prog{flex:none;display:flex;align-items:center;gap:4px;font-style:normal;}
.ex-table-row .ej-prog .ej-prog-n{flex:none;margin-right:4px;font:600 var(--fs-xs) var(--f-mono);color:var(--dim-6);}
.ej-prog i{width:7px;height:7px;border-radius:50%;border:1.5px solid var(--accent-line);}
.ej-prog i.si{background:var(--accent);border-color:var(--accent);}
.ex-item.ej-hecho .ej-prog i.si{background:var(--ok);border-color:var(--ok);}
/* pauta en etiquetas */
.srf-cab{flex-direction:column;align-items:flex-start;gap:8px;}
.srf-pauta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.srf-chip{display:inline-flex;align-items:baseline;gap:4px;height:28px;align-items:center;padding:0 12px;border-radius:var(--r-pill);border:1.5px solid var(--line-strong);background:var(--bg);color:var(--dim-6);font:500 var(--fs-s) var(--f-mono);white-space:nowrap;}
.srf-cab .srf-chip b{padding:0;border:none;border-radius:0;font:700 var(--fs-m) var(--f-mono);color:var(--ink);}
.srf-chip-s{background:var(--accent);border-color:var(--accent);color:var(--on-accent);}
.srf-cab .srf-chip-s b{color:var(--on-accent);font-size:var(--fs-m);}
.srf-chip-rir.rir-n{border-color:var(--rc);background:color-mix(in srgb, var(--rc) 12%, transparent);color:color-mix(in srgb, var(--rc) 85%, #000);}
.srf-cab .srf-chip-rir.rir-n b{color:inherit;}
.srf-ref{font:500 var(--fs-s) var(--f-mono);color:var(--dim-6);}
/* series: filas ligeras; la que toca, resaltada */
#app:not(.coach-edit) #view-entreno .sr-filas{gap:8px;margin-top:0;}
#app:not(.coach-edit) #view-entreno .ex-video-row:not(:has(.ex-video.on)):not(:has(.ru-video)){display:none;}
#app:not(.coach-edit) #view-entreno .ex-item > .ex-series{margin-bottom:8px;}
#app:not(.coach-edit) #view-entreno .srf{background:none;border:1px solid var(--line);border-radius:var(--r-ctl);padding:8px;}
#app:not(.coach-edit) #view-entreno .srf.actual{border:1.5px solid var(--accent);background:var(--accent-wash);}
#app:not(.coach-edit) #view-entreno .srf.ok{background:rgba(116,188,138,.1);border-color:rgba(116,188,138,.45);}
#app:not(.coach-edit) #view-entreno .srf .srf-n{height:40px;border:none;background:var(--wash-soft);}
#app:not(.coach-edit) #view-entreno .srf.actual .srf-n{background:var(--bg);}
#app:not(.coach-edit) #view-entreno .srf-reps,#app:not(.coach-edit) #view-entreno .srf-peso,#app:not(.coach-edit) #view-entreno .srf-ok{height:40px;}
#app:not(.coach-edit) #view-entreno .srf.ok .srf-ok{background:var(--ok);border-color:var(--ok);color:#fff;}
#app:not(.coach-edit) #view-entreno .srf-l2{margin-top:8px;}
#app:not(.coach-edit) #view-entreno .srf-rir,#app:not(.coach-edit) #view-entreno .srf-nota-b{height:32px;}
/* el RIR solo se despliega en la serie que toca (o al tocar otra); en las demás, su etiqueta */
#app:not(.coach-edit) #view-entreno .srf:not(.actual):not(:focus-within):not(:has(.srf-opc:not([hidden]))) .srf-l2{display:none;}
#app:not(.coach-edit) #view-entreno .srf:not(.actual) .srf-rirb{display:block;white-space:nowrap;margin-top:2px;padding:1px 4px;border-radius:var(--r-ctl);font:700 var(--fs-xs)/1.2 var(--f-mono);}
@media (min-width:900px){ #app:not(.coach-edit) #view-entreno .sr-filas{max-width:620px;} }

/* modo pruebas: botón para cambiar de profesional */
.pb-btn{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 84px);left:10px;z-index:var(--z-flotante);height:32px;padding:0 12px;border-radius:var(--r-pill);border:1.5px solid var(--accent);background:var(--card);color:var(--ink);font:700 var(--fs-s) var(--f-body);box-shadow:0 4px 14px -6px rgba(0,0,0,.35);cursor:pointer;}
.pb-btn:active{transform:scale(.97);}
@media (min-width:900px){ .pb-btn{top:8px;bottom:auto;left:auto;right:8px;} }

/* dudas entre profesionales en el chat */
.dd-chip{display:flex;margin:8px 0 -2px;max-width:100%;}
.dd-chip button,.dd-tag button{border:1.5px solid var(--accent);background:var(--card);color:var(--ink);border-radius:var(--r-pill);height:28px;padding:0 12px;font:700 var(--fs-s) var(--f-body);cursor:pointer;white-space:nowrap;}
.dd-chip button{box-shadow:0 3px 10px -6px rgba(0,0,0,.4);}
#chatList .bubble.dd-marca{outline:2px solid var(--carb);outline-offset:2px;}
.dd-tag{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-4px -8px 8px;padding:4px 8px 4px 12px;border-radius:var(--r-ctl);background:rgba(227,166,89,.2);color:var(--carb-text);font:700 var(--fs-xs) var(--f-body);}
.dd-tag button{height:24px;padding:0 8px;font-size:var(--fs-xs);border-color:var(--carb);background:var(--bg);}
.coach-view #view-chat .bubble.in .dd-tag{color:#6b4a10;}
#chatList .bubble.dd-flash{animation:ddFlash 1.2s ease-in-out 2;}
@keyframes ddFlash{0%,100%{box-shadow:0 0 0 0 rgba(227,166,89,0);}50%{box-shadow:0 0 0 8px rgba(227,166,89,.45);}}
.dd-fila{color:var(--v3-text) !important;font-weight:700;}

/* menú de cada mensaje del chat */
.cm-menu{position:fixed;z-index:calc(var(--z-flotante) + 50);min-width:210px;padding:8px;border-radius:var(--r-ctl);background:var(--card);border:1px solid var(--line-strong);box-shadow:0 14px 34px -10px rgba(0,0,0,.45);display:flex;flex-direction:column;}
.cm-menu button{display:flex;align-items:center;gap:16px;height:42px;padding:0 16px;border:none;background:none;border-radius:var(--r-ctl);color:var(--ink);font:500 var(--fs-m) var(--f-body);text-align:left;cursor:pointer;}
.cm-menu button:hover,.cm-menu button:focus-visible{background:var(--wash-soft);outline:none;}
.cm-menu button svg{flex:none;color:var(--dim-6);}
.cm-menu button.peligro,.cm-menu button.peligro svg{color:var(--danger-text);}
#chatList .bubble.cm-on{outline:2px solid var(--accent);outline-offset:2px;}
#chatList .bubble.cm-flash{animation:ddFlash 1.2s ease-in-out 2;}
.rp-q{margin:0 0 8px;padding:4px 8px;border-left:3px solid var(--accent);border-radius:var(--r-ctl);background:rgba(18,21,26,.07);cursor:pointer;display:flex;flex-direction:column;gap:1px;max-width:100%;}
.rp-q b{font:700 var(--fs-xs) var(--f-body);color:var(--accent-text);}
.rp-q span{font:400 var(--fs-s)/1.35 var(--f-body);color:inherit;opacity:.85;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.coach-view #view-chat .bubble.in .rp-q{background:rgba(255,255,255,.3);border-left-color:var(--on-accent);}
.coach-view #view-chat .bubble.in .rp-q b{color:var(--on-accent);}
#view-chat:not(.x) .bubble.out:not(.in) .rp-q{background:rgba(255,255,255,.3);border-left-color:var(--on-accent);}
.fw-tag{margin:0 0 4px;font:600 var(--fs-xs) var(--f-body);opacity:.75;font-style:italic;}
.bubble.msg-del{opacity:.75;}
.msg-del-t{font:400 var(--fs-s) var(--f-body);font-style:italic;opacity:.85;}
.cm-reply{display:flex;align-items:center;gap:12px;margin:0 0 -2px;padding:8px 12px;border-left:3px solid var(--accent);border-radius:var(--r-ctl);background:var(--wash-soft);}
.cm-reply-t{flex:1;min-width:0;display:flex;flex-direction:column;}
.cm-reply-t b{font:700 var(--fs-s) var(--f-body);color:var(--accent-text);}
.cm-reply-t span{font:400 var(--fs-s) var(--f-body);color:var(--dim-6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cm-reply button,.cm-pin button,.cm-selbar button{border:none;background:none;color:var(--dim-6);font:600 var(--fs-l) var(--f-body);cursor:pointer;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.cm-pin{display:flex;align-items:center;gap:12px;margin:8px 0 0;padding:8px 8px 8px 12px;border:1px solid var(--accent-line);border-radius:var(--r-ctl);background:var(--accent-wash);cursor:pointer;flex:none;}
.cm-pin-i{color:var(--accent-text);display:flex;}
.cm-pin-t{flex:1;min-width:0;display:flex;flex-direction:column;}
.cm-pin-t b{font:700 var(--fs-xs) var(--f-body);color:var(--accent-text);}
.cm-pin-t span{font:400 var(--fs-s) var(--f-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cm-selbar{display:flex;align-items:center;gap:4px;margin:8px 0 0;padding:4px 8px;border-radius:var(--r-ctl);background:var(--card);border:1px solid var(--line-strong);flex:none;}
.cm-selbar b{font:700 var(--fs-s) var(--f-body);margin-left:4px;}
.cm-selbar-sp{flex:1;}
.cm-selbar button:disabled{opacity:.35;}
.cm-selbar button.peligro{color:var(--danger-text);}
#chatList.cm-selmodo .bubble{cursor:pointer;}
#chatList .bubble.sel-on{outline:2.5px solid var(--accent);outline-offset:2px;}
.cm-fw{position:fixed;inset:0;z-index:calc(var(--z-flotante) + 60);display:none;align-items:flex-end;justify-content:center;background:rgba(8,10,13,.5);}
.cm-fw.show{display:flex;}
.cm-fw-in{width:100%;max-width:520px;max-height:78vh;display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:var(--r-card) var(--r-card) 0 0;background:var(--bg);color:var(--ink);}
html.esc .cm-fw{align-items:center;}
html.esc .cm-fw-in{border-radius:var(--r-card);}
.cm-fw-top{display:flex;align-items:center;justify-content:space-between;font:700 var(--fs-l) var(--f-body);}
.cm-fw-x{border:none;background:none;color:var(--dim-6);font-size:var(--fs-l);cursor:pointer;width:34px;height:34px;}
.cm-fw-q{height:42px;border-radius:var(--r-ctl);border:1px solid var(--line-strong);background:var(--card);color:var(--ink);padding:0 12px;font:500 var(--fs-m) var(--f-body);}
.cm-fw-lista{overflow:auto;display:flex;flex-direction:column;gap:4px;}
.cm-fw-lista button{height:44px;border:none;background:none;text-align:left;padding:0 12px;border-radius:var(--r-ctl);color:var(--ink);font:500 var(--fs-m) var(--f-body);cursor:pointer;}
.cm-fw-lista button:hover{background:var(--wash-soft);}

/* adherencias dentro de su apartado */
.fp-adh{display:block;margin:0 0 12px;}
.fp-adh .stat-card{width:100%;box-sizing:border-box;}
.fp-adh.fp-oculto,.fp-adh.sec-oculta{display:none !important;}

/* nutrición de un vistazo: anillo + macros con emoji */
.nu-macros{display:grid;grid-template-columns:128px 1fr;gap:16px;align-items:center;}
.nu-dona{position:relative;width:128px;height:128px;}
.nu-dona svg{width:100%;height:100%;display:block;}
.nu-dona-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.nu-dona-c b{font:800 var(--fs-xl) var(--f-body);line-height:1;}
.nu-dona-c span{font:600 var(--fs-xs) var(--f-mono);text-transform:uppercase;color:var(--dim-55);margin-top:4px;}
.nu-mlista{display:flex;flex-direction:column;gap:8px;min-width:0;}
.nu-m{display:grid;grid-template-columns:34px 1fr auto;grid-template-rows:auto 5px;column-gap:12px;row-gap:4px;align-items:center;padding:8px 12px;border-radius:var(--r-ctl);background:var(--wash-soft);}
.nu-m.p{background:rgba(136,185,230,.16);} .nu-m.c{background:rgba(227,166,89,.17);} .nu-m.f{background:rgba(116,188,138,.17);}
.nu-m-e{grid-row:1 / 3;font-size:var(--fs-2xl);line-height:1;text-align:center;}
.nu-m-t b{display:block;font:800 var(--fs-m) var(--f-body);line-height:1.1;}
.nu-m-t span{font:600 var(--fs-xs) var(--f-mono);text-transform:uppercase;color:var(--dim-55);}
.nu-m-pc{font:700 var(--fs-s) var(--f-mono);color:var(--dim-6);}
.nu-m-bar{grid-column:2 / 4;height:5px;border-radius:3px;background:rgba(0,0,0,.08);overflow:hidden;display:block;}
.nu-m-bar u{display:block;height:100%;border-radius:3px;text-decoration:none;}
@media (max-width:380px){.nu-macros{grid-template-columns:1fr;justify-items:center;}.nu-mlista{width:100%;}}

/* emojis recientes (ordenador) */
.emo-rec{padding:2px 0 8px;border-bottom:1px solid var(--line);margin-bottom:2px;}
.emo-rec .emo-tit{display:flex;justify-content:space-between;align-items:center;}
.emoji-panel .emo-borrar{height:auto;font-size:var(--fs-xs);border:none;background:none;color:var(--dim-6);font:600 var(--fs-xs) var(--f-mono);text-transform:uppercase;cursor:pointer;padding:2px 4px;}
.emo-borrar:hover{color:var(--accent-text);}
.emo-rec-vacio{font:500 var(--fs-s) var(--f-body);color:var(--dim-55);padding:8px 2px 4px;}
html.esc .emoji-panel{max-height:290px;}

/* móvil táctil: tocar o mantener pulsado un mensaje no selecciona texto (evita el panel «buscar con Google» de Android);
   copiar se hace desde el menú del mensaje. El campo de escribir sigue siendo seleccionable. */
@media (pointer: coarse){
  #chatList .bubble, #chatList .bubble *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;}
  #chatList .bubble{-webkit-tap-highlight-color:transparent;}
  #chatInput{-webkit-user-select:text;user-select:text;}
}

/* 24/10 · tarjeta de cliente en móvil con el mismo aspecto que en escritorio:
   sin la línea de pie (último seguimiento / evolución) y los indicadores con el rótulo encima */
#listaClientes .kcard .kc-pie{display:none !important;}
@media (max-width:1099px){
  #listaClientes .kcard .kc{flex-direction:column;align-items:flex-start;justify-content:center;gap:0;padding:8px 8px;}
  #listaClientes .kcard .kc-l{font-size:var(--fs-xs) !important;letter-spacing:.02em;}
  #listaClientes .kcard .kc-v{font-size:var(--fs-m);}
  #listaClientes .kcard .kc-v small,#listaClientes .kcard .kc-v i{display:inline;}
}

/* fotos del chat ampliadas */
#chatList .bubble img{cursor:zoom-in;}
.cm-visor{position:fixed;inset:0;z-index:var(--z-visor);background:rgba(8,10,13,.92);display:flex;align-items:center;justify-content:center;padding:64px 12px 24px;animation:cmVisorIn var(--dur-m) var(--ease-sal);}
@keyframes cmVisorIn{from{opacity:0}to{opacity:1}}
.cm-visor-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--r-ctl);box-shadow:0 20px 60px rgba(0,0,0,.5);}
.cm-visor-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:calc(12px + env(safe-area-inset-top)) 12px 12px;}
.cm-visor-volver,.cm-visor-x{border:none;background:rgba(255,255,255,.14);color:#fff;font:600 var(--fs-m) var(--f-body);height:38px;border-radius:var(--r-card);cursor:pointer;}
.cm-visor-volver{padding:0 16px 0 12px;display:flex;align-items:center;gap:8px;}
.cm-visor-volver span{font-size:var(--fs-xl);line-height:1;}
.cm-visor-x{width:38px;font-size:var(--fs-l);}
.cm-visor-volver:hover,.cm-visor-x:hover{background:rgba(255,255,255,.24);}

/* temporizador de descanso (cliente) */
.ds-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(92px + env(safe-area-inset-bottom));z-index:calc(var(--z-hoja) + 30);width:min(440px,calc(100% - 24px));border-radius:var(--r-card);background:var(--ink);color:var(--bg);box-shadow:0 14px 34px -10px rgba(0,0,0,.45);overflow:hidden;}
.ds-bar[hidden],.ds-bar.ds-fuera{display:none;}
.ds-prog{height:4px;background:rgba(255,255,255,.15);}
.ds-prog i{display:block;height:100%;background:var(--accent);transition:width var(--dur-m) linear;}
.ds-fila{display:flex;align-items:center;gap:8px;padding:12px 12px 8px;}
.ds-c{flex:1;text-align:center;display:flex;flex-direction:column;}
.ds-c small{font:600 var(--fs-xs) var(--f-mono);text-transform:uppercase;letter-spacing:.08em;opacity:.7;}
.ds-t{font:800 var(--fs-3xl) var(--f-body);line-height:1.1;font-variant-numeric:tabular-nums;}
.ds-b{min-width:52px;height:40px;border:none;border-radius:var(--r-ctl);background:rgba(255,255,255,.12);color:inherit;font:700 var(--fs-m) var(--f-body);cursor:pointer;}
.ds-b.ds-x{background:var(--accent);color:var(--on-accent,#12151A);}
.ds-opc{display:flex;gap:8px;justify-content:center;padding:0 12px 12px;}
.ds-opc button{border:1px solid rgba(255,255,255,.25);background:none;color:inherit;border-radius:var(--r-pill);padding:4px 12px;font:600 var(--fs-xs) var(--f-mono);cursor:pointer;opacity:.75;}
.ds-opc button.on{background:rgba(255,255,255,.18);opacity:1;border-color:transparent;}
.ds-bar.fin{background:color-mix(in srgb, var(--ok) 80%, #000);}
.ds-bar.fin .ds-t{font-size:var(--fs-xl);}
html.esc .ds-bar{bottom:24px;}
/* peso de la semana pasada: más visible que un «kg» vacío */
#sesionesCont .srf-peso input::placeholder{color:var(--dim-6);opacity:.75;}

/* nutrición del cliente: el día de un vistazo */
.nh-card{margin:0 0 16px;padding:16px;border-radius:var(--r-card);background:var(--card);border:1.5px solid var(--accent-line);}
.nh-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px;}
.nh-eye{font:600 var(--fs-xs) var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text);}
.nh-quedan{font:500 var(--fs-s) var(--f-body);color:var(--dim-6);}
.nh-quedan b{color:var(--ink);}
.nh-anillos{display:grid;grid-template-columns:132px 1fr;gap:16px;align-items:center;}
.nh-anillo{position:relative;}
.nh-anillo svg{display:block;width:100%;height:100%;}
.nh-anillo svg circle{transition:stroke-dashoffset var(--dur-l) var(--ease-sal);}
.nh-grande{width:132px;height:132px;}
.nh-peq{width:44px;height:44px;flex:none;}
.nh-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.nh-grande .nh-c b{font:800 var(--fs-2xl) var(--f-body);line-height:1;}
.nh-grande .nh-c small{font:600 var(--fs-xs) var(--f-mono);color:var(--dim-55);margin-top:4px;text-transform:uppercase;}
.nh-peq .nh-c span{font-size:var(--fs-xl);}
.nh-macros{display:flex;flex-direction:column;gap:8px;min-width:0;}
.nh-m{display:flex;align-items:center;gap:12px;}
.nh-m-t b{display:block;font:800 var(--fs-m) var(--f-body);line-height:1.1;}
.nh-m-t b small{font:500 var(--fs-xs) var(--f-body);color:var(--dim-55);}
.nh-m-t span{font:600 var(--fs-xs) var(--f-mono);text-transform:uppercase;color:var(--dim-55);}
.nh-agua{margin-top:16px;padding-top:12px;border-top:1px solid var(--line);}
.nh-agua-h{display:flex;align-items:baseline;gap:8px;margin-bottom:8px;font:600 var(--fs-s) var(--f-body);}
.nh-agua-h b{font:700 var(--fs-s) var(--f-body);margin-left:auto;}
.nh-agua-h small{font:500 var(--fs-xs) var(--f-mono);color:var(--dim-55);}
.nh-vasos{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.nh-vaso{width:26px;height:32px;border:1.5px solid rgba(88,160,220,.55);border-radius:4px 4px var(--r-ctl) var(--r-ctl);background:none;cursor:pointer;padding:0;position:relative;overflow:hidden;}
.nh-vaso.on{background:linear-gradient(to top,#6FB3E8 0 78%,transparent 78%);border-color:#58A0DC;}
.nh-agua-mas{margin-left:auto;height:32px;padding:0 12px;border-radius:var(--r-ctl);border:1px solid var(--accent-line);background:var(--accent-wash);color:var(--accent-text);font:700 var(--fs-s) var(--f-body);cursor:pointer;}
.nh-ahora{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-top:16px;padding:12px 40px 12px 16px;border-radius:var(--r-ctl);border:1.5px solid var(--fat-line);background:rgba(116,188,138,.12);color:var(--ink);text-align:left;cursor:pointer;}
.nh-ahora-eye{font:600 var(--fs-xs) var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ok-text);}
.nh-ahora b{font:700 var(--fs-m) var(--f-body);}
.nh-ahora-sub{font:500 var(--fs-s) var(--f-body);color:var(--dim-6);}
.nh-ahora-cta{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:var(--fs-2xl);color:var(--ok-text);}
@media (max-width:360px){.nh-anillos{grid-template-columns:1fr;justify-items:center;}.nh-macros{width:100%;}}
#nhCard + #planResumen{display:none;}   /* la tarjeta «Hoy» ya muestra el objetivo */

/* lista de la compra y sustituciones */
.nh-compra-btn{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:12px;padding:12px 16px;border-radius:var(--r-ctl);border:1px solid var(--line-strong);background:var(--wash-soft);color:var(--ink);font:600 var(--fs-s) var(--f-body);cursor:pointer;}
.nh-compra-btn span{font-size:var(--fs-xl);color:var(--accent-text);}
.nh-compra{max-width:520px;}
.nh-compra-nota{margin:0;font:500 var(--fs-s) var(--f-body);color:var(--dim-6);}
.nh-compra-lista{overflow:auto;display:flex;flex-direction:column;gap:12px;}
.nh-compra-gt{font:600 var(--fs-xs) var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--dim-55);margin:0 0 4px;}
.nh-compra-f{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--line);cursor:pointer;}
.nh-compra-f input{width:20px;height:20px;accent-color:var(--accent);flex:none;}
.nh-compra-n{flex:1;font:500 var(--fs-m) var(--f-body);}
.nh-compra-c{font:700 var(--fs-s) var(--f-mono);color:var(--dim-6);}
.nh-compra-f.on .nh-compra-n,.nh-compra-f.on .nh-compra-c{text-decoration:line-through;opacity:.5;}
.nh-compra-acts{display:flex;gap:8px;align-items:center;}
.nh-compra-acts .btn-primary{flex:1;}
.nh-compra-reset{border:none;background:none;color:var(--dim-6);font:600 var(--fs-s) var(--f-body);cursor:pointer;padding:8px;}
#app:not(.coach-view) #comidasCont .meal-body.open::before{content:'Toca una opción para añadirla o quitarla: puedes combinar hasta 3 por fila y las cantidades se ajustan solas.';display:block;margin:0 0 12px;font:500 var(--fs-s) var(--f-body);color:var(--dim-6);}

/* bienvenida del cliente */
.ob-capa{position:fixed;inset:0;z-index:calc(var(--z-flotante) + 70);background:var(--bg);display:flex;align-items:center;justify-content:center;padding:24px 20px calc(24px + env(safe-area-inset-bottom));overflow:auto;}
.ob-in{position:relative;width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;min-height:min(560px,100%);justify-content:center;}
.ob-saltar{position:absolute;top:0;right:0;border:none;background:none;color:var(--dim-6);font:600 var(--fs-s) var(--f-body);cursor:pointer;padding:8px;}
.ob-e{font-size:56px;line-height:1;margin-top:24px;}
.ob-in h2{margin:8px 0 0;font:400 var(--fs-3xl) var(--f-display);color:var(--ink);}
.ob-txt{font:400 var(--fs-m)/1.55 var(--f-body);color:var(--dim-6);width:100%;}
.ob-txt p{margin:0 0 12px;}
.ob-txt b{color:var(--ink);}
.ob-sitios{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px;text-align:left;}
.ob-sitios li{display:flex;gap:12px;align-items:center;padding:12px 12px;border-radius:var(--r-ctl);background:var(--wash-soft);}
.ob-sitios li span{font-size:var(--fs-2xl);width:32px;text-align:center;flex:none;}
.ob-sitios li b{display:block;font:700 var(--fs-m) var(--f-body);color:var(--ink);}
.ob-sitios li div{font:400 var(--fs-s)/1.35 var(--f-body);}
.ob-lista{text-align:left;margin:8px 0 12px;padding-left:24px;}
.ob-lista li{margin:0 0 8px;}
.ob-nota{font-size:var(--fs-s);}
.ob-ok{font:600 var(--fs-m) var(--f-body);color:var(--ok-text);}
.ob-puntos{display:flex;gap:8px;margin:12px 0 4px;}
.ob-puntos i{width:8px;height:8px;border-radius:50%;background:var(--line-strong);}
.ob-puntos i.on{background:var(--accent);width:22px;border-radius:4px;}
.ob-acts{display:flex;gap:12px;width:100%;margin-top:8px;}
.ob-acts .btn-primary{flex:1;}
.ob-ant{border:1px solid var(--line-strong);background:none;color:var(--ink);border-radius:var(--r-ctl);padding:0 20px;font:600 var(--fs-m) var(--f-body);cursor:pointer;}
.ob-guia{margin:0 0 16px;padding:16px 16px;border-radius:var(--r-card);background:var(--accent-wash);border:1px solid var(--accent-line);font:400 var(--fs-s)/1.45 var(--f-body);color:var(--ink);}
.ob-guia-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.ob-guia-h b{font:700 var(--fs-m) var(--f-body);}
.ob-guia-h button{border:none;background:none;color:var(--dim-6);font-size:var(--fs-m);cursor:pointer;width:30px;height:30px;}
.ob-guia ul{margin:0 0 8px;padding-left:20px;}
.ob-guia .ob-guia-i{color:var(--ink);font-size:var(--fs-s);margin:0 0 8px;}
.ob-guia li{margin:0 0 4px;}
.ob-guia p{margin:0;color:var(--dim-6);font-size:var(--fs-s);}

/* herramientas de profesionales */
.nu-pl-res{display:block;font:500 var(--fs-xs) var(--f-body);color:var(--dim-55);margin-top:2px;}
.pr-adh{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);}
.pr-adh-t{font:600 var(--fs-xs) var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--dim-55);margin-bottom:8px;}
.pr-adh-f{display:grid;grid-template-columns:minmax(80px,1fr) 2fr auto;gap:8px;align-items:center;font:500 var(--fs-s) var(--f-body);margin:4px 0;}
.pr-adh-b{display:block;height:6px;border-radius:3px;background:var(--wash-med);overflow:hidden;}
.pr-adh-b u{display:block;height:100%;border-radius:3px;text-decoration:none;}
.pr-adh-b u.ok{background:#4FA36C;} .pr-adh-b u.med{background:var(--carb);} .pr-adh-b u.mal{background:var(--danger);}
.pr-adh-f b{font:700 var(--fs-xs) var(--f-mono);} .pr-adh-f b.mal{color:var(--danger-text);}
.pr-adh-nota{margin-top:8px;font:500 var(--fs-s) var(--f-body);color:var(--dim-6);}
.pr-renov{margin:0 0 16px;padding:12px 16px;border-radius:var(--r-card);border:1px solid var(--carb);background:rgba(227,166,89,.1);}
.pr-renov-t{font:700 var(--fs-s) var(--f-body);margin-bottom:8px;}
.pr-renov-f{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--line);}
.pr-renov-f:first-of-type{border-top:none;}
.pr-renov-f b{display:block;font:600 var(--fs-s) var(--f-body);}
.pr-renov-f span{font:500 var(--fs-s) var(--f-body);color:var(--dim-6);}
.pr-sg-chat{margin-left:auto;}
.sg-rev{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
/* factura: al imprimir solo se ve la factura */
#prFacturaPrint{display:none;}
@media print{
  html.imprimiendo-factura body > *:not(#prFacturaPrint){display:none !important;}
  html.imprimiendo-factura #prFacturaPrint{display:block !important;}
  html.imprimiendo-factura, html.imprimiendo-factura body{background:#fff !important;}
}
.fp-hoja{font:400 var(--fs-s)/1.5 Archivo,sans-serif;color:#111;padding:28px;max-width:720px;margin:0 auto;}
.fp-cab{display:flex;justify-content:space-between;gap:24px;border-bottom:2px solid #111;padding-bottom:16px;margin-bottom:20px;}
.fp-cab h1{margin:0;font:400 var(--fs-3xl) 'Archivo Black',Archivo,sans-serif;}
.fp-num{font:700 var(--fs-m) 'IBM Plex Mono',monospace;}
.fp-em{text-align:right;}
.fp-cli{margin-bottom:20px;}
.fp-cli span{display:block;font:600 var(--fs-xs) 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.08em;color:#666;}
.fp-tabla,.fp-tot{width:100%;border-collapse:collapse;}
.fp-tabla th{text-align:left;font:600 var(--fs-xs) 'IBM Plex Mono',monospace;text-transform:uppercase;color:#666;border-bottom:1px solid #999;padding:8px 0;}
.fp-tabla td{padding:12px 0;border-bottom:1px solid #ddd;vertical-align:top;}
.fp-tabla th:last-child,.fp-tabla td:last-child,.fp-tot td:last-child{text-align:right;}
.fp-tot{width:300px;margin:16px 0 0 auto;}
.fp-tot td{padding:4px 0;}
.fp-total td{font-weight:700;font-size:var(--fs-m);border-top:2px solid #111;padding-top:8px;}
.fp-nota{margin-top:24px;font-size:var(--fs-xs);color:#555;}

/* pulido: los botones responden al tocarlos */
.btn-primary,.btn-eq,.mini-btn,.chip,.acc-btn,.cm-menu button,.nh-agua-mas,.nh-vaso,.ds-b,.srf-ok,.meal-eat,.tb button,.ob-ant,.nh-compra-btn,.nh-ahora{transition:transform var(--dur-r) var(--ease-sal), background-color var(--dur-r) var(--ease-sal), box-shadow var(--dur-r) var(--ease-sal), opacity var(--dur-r) var(--ease-sal);}
.btn-primary:active,.btn-eq:active,.mini-btn:active,.chip:active,.acc-btn:active,.nh-agua-mas:active,.nh-vaso:active,.ds-b:active,.srf-ok:active,.meal-eat:active,.ob-ant:active,.nh-compra-btn:active,.nh-ahora:active{transform:scale(.96);}
.btn-primary:focus-visible,.btn-eq:focus-visible,.mini-btn:focus-visible,.chip:focus-visible,.acc-btn:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.pg-graf .gr-box{margin-top:8px;}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
}

/* #212 plegables en Planes de entrenamiento */
.pu-fold{margin:12px 0;border:1px solid var(--line);border-radius:var(--r-card);background:var(--card);}
.pu-fold > summary{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;list-style:none;}
.pu-fold > summary::-webkit-details-marker{display:none;}
.pu-fold-t{font:700 var(--fs-m) var(--f-body);}
.pu-fold-r{margin-left:auto;font:500 var(--fs-s) var(--f-body);color:var(--dim-6);text-align:right;}
.pu-fold-ch{width:28px;height:28px;border-radius:50%;background:var(--wash-soft);display:flex;align-items:center;justify-content:center;font-size:var(--fs-l);color:var(--dim-6);transform:rotate(90deg);transition:transform var(--dur-m);flex:none;}
.pu-fold[open] > summary .pu-fold-ch{transform:rotate(-90deg);}
.pu-fold > .ent-prev-card,.pu-fold > .mu-box{margin:0 12px 12px;}
.pu-fold .mu-cab b{display:none;}
.alim-emo{display:inline-block;width:1.4em;margin-right:4px;text-align:center;font-size:var(--fs-m);}

/* =========================================================
   #218 · Plegables con estado claro (todo el mismo patrón)
   ========================================================= */
@keyframes plIn{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}
/* flecha: círculo gris cerrada · círculo de color y girada abierta */
.fp-lbl .fp-chev,.pu-fold-ch,.sesion-chevron,.meal-chevron,.aj-sec-v{
  flex:none;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  background:var(--wash-soft);color:var(--dim-6);font:700 var(--fs-m)/1 var(--f-body);transform:none;
  transition:transform var(--dur-m) var(--ease-sal), background-color var(--dur-m), color var(--dur-m);}
.fp-lbl .fp-chev::before,.pu-fold-ch::before{content:none;}
.fp-lbl.fp-abierto .fp-chev,.pu-fold[open] > summary .pu-fold-ch,.sesion-chevron.open,.meal-chevron.open,.aj-sec.abierta .aj-sec-v{
  transform:rotate(180deg);background:var(--accent);color:var(--on-accent);}
/* título del apartado: se resalta al pasar el ratón y se tiñe al abrir */
.alta-label.fp-lbl{padding:8px 8px 8px 12px;margin-left:-12px;margin-right:-8px;border-radius:var(--r-ctl);transition:background-color var(--dur-m), box-shadow var(--dur-m);}
.alta-label.fp-lbl.fp-abierto{background:var(--accent-wash);box-shadow:inset 3px 0 0 var(--accent);}
.alta-label.fp-lbl.fp-abierto .fp-t{color:var(--ink);}
.pu-fold > summary{border-radius:var(--r-card);transition:background-color var(--dur-m);}
.pu-fold[open]{border-color:var(--accent-line);box-shadow:0 0 0 1px var(--accent-line);}
.pu-fold[open] > summary{background:var(--accent-wash);border-radius:var(--r-ctl) var(--r-ctl) 0 0;}
.pu-fold[open] > summary .pu-fold-t{color:var(--ink);}
.sesion-card,.meal-block{transition:box-shadow var(--dur-m), border-color var(--dur-m);}
.meal-block:has(> .meal-body.open){box-shadow:0 0 0 1.5px var(--accent-line);}
.meal-block.ahora:has(> .meal-body.open){box-shadow:0 0 0 1.5px var(--fat-line);}
.aj-sec.abierta .aj-sec-h{color:var(--accent-text);}
@media (hover:hover){
  .alta-label.fp-lbl:not(.fp-abierto):hover,.pu-fold:not([open]) > summary:hover,.sesion-head:hover,.meal-head:hover,.aj-sec-h:hover{background:var(--wash-soft);}
  .alta-label.fp-lbl:hover .fp-chev,.pu-fold > summary:hover .pu-fold-ch,.sesion-head:hover .sesion-chevron,.meal-head:hover .meal-chevron{box-shadow:0 0 0 2px var(--accent-line);}
}
.sesion-head:focus-visible,.meal-head:focus-visible,.pu-fold > summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}
/* contenido: entra deslizando y, en la ficha, queda unido a su título */
.fp-dentro,.sesion-card.open > .sesion-body,.meal-body.open,.pu-fold[open] > :not(summary),.aj-sec.abierta .aj-sec-c,details[open] > :not(summary){animation:plIn var(--dur-m) var(--ease-sal);}
.fp-dentro{margin-left:4px !important;padding-left:12px;border-left:2px solid var(--accent-line);}
.fp-dentro-fin{margin-bottom:20px;}
@media (prefers-reduced-motion: reduce){.fp-dentro,.sesion-card.open > .sesion-body,.meal-body.open,.pu-fold[open] > :not(summary),.aj-sec.abierta .aj-sec-c,details[open] > :not(summary){animation:none;}}
/* ficha del ordenador: dos columnas que no se reparten solas */
html.esc .esc-ficha-grid.pu-cols{columns:auto;display:flex;flex-wrap:wrap;align-items:flex-start;gap:0 24px;}
html.esc .esc-ficha-grid.pu-cols > .esc-col{flex:1 1 330px;min-width:0;}
html.esc .esc-ficha-grid.pu-cols > .esc-col:not(:has(> .esc-grupo:not([hidden]):not(.sec-oculta):not(.fp-vacio))){display:none;}

/* #221 Pagos: suscripción desplegada bajo la fila del cliente */
.pg-fila.pg-plegable{cursor:pointer;position:relative;}
.pg-fila.pg-abierta{box-shadow:0 0 0 2px var(--accent);border-bottom-left-radius:var(--r-ctl);border-bottom-right-radius:var(--r-ctl);}
.pg-panel{margin:-2px 0 8px;padding:12px 12px 12px;border:1px solid var(--line);border-top:0;border-radius:0 0 var(--r-ctl) var(--r-ctl);background:var(--accent-wash);animation:plIn var(--dur-m) var(--ease-sal);}
.pg-panel .list-group{margin:0;}
.pg-panel .pg-borrado{margin-top:12px;}
.pg-ficha-lnk{display:block;text-align:right;margin-top:12px;font-size:var(--fs-s);}
html.esc .pg-panel{padding:16px 20px 16px;}
@media (prefers-reduced-motion:reduce){ .pg-panel{animation:none;} }

/* acceso directo sin contraseña (modo pruebas) */
.pb-recordar{display:flex;gap:12px;align-items:flex-start;margin:4px 0 12px;font-size:var(--fs-s);line-height:1.3;cursor:pointer;}
.pb-recordar input{width:20px;height:20px;margin-top:1px;flex:none;accent-color:var(--accent);}
.pb-recordar small{display:block;color:var(--dim-45,#888);font-size:var(--fs-xs);margin-top:2px;}
.pb-marca{text-align:center;font-size:var(--fs-s);margin:-2px 0 8px;color:var(--dim-45,#888);}

/* #227 chat del ordenador sin nombre repetido ni «Volver» */
html.esc-chat-pro #coachBar .coach-bar-left{display:none;}

/* #225 emoji del tipo de alimento en las opciones del plan */
.macro-group .chip[data-emo]::before{content:attr(data-emo);margin-right:4px;font-size:1.05em;}

/* #235 periodo del pago */
.mj-pg-res{margin:12px 0 4px;font-size:var(--fs-m);line-height:1.4;}
.mj-pg-otro{display:grid;grid-template-columns:1fr 1.4fr;gap:12px;margin-top:12px;}

/* Chat 1 · móvil del profesional: cabecera compacta de una línea */
.chat-acc-pro,.chat-av-pro{display:none;}
html.chat-pro-movil #view-chat > .view-top,html.chat-pro-movil #view-chat > .team-row{display:none;}
html.chat-pro-movil #coachBar{display:flex;align-items:center;gap:8px;padding-top:8px;padding-bottom:8px;}
html.chat-pro-movil #coachBar .coach-bar-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0;}
html.chat-pro-movil #coachBarLabel,html.chat-pro-movil #coachBar .nu-nav{display:none !important;}
html.chat-pro-movil #chatList{padding-top:12px;}
html.chat-pro-movil #coachBarName{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-m);}
html.chat-pro-movil .chat-av-pro{display:inline-flex;flex:none;width:34px;height:34px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-wash);color:var(--accent-text);font:700 var(--fs-m) var(--f-body);overflow:hidden;}
html.chat-pro-movil .chat-av-pro img{width:100%;height:100%;object-fit:cover;}
html.chat-pro-movil .chat-acc-pro{display:flex;flex:none;gap:4px;}
html.chat-pro-movil .chat-acc-pro button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 4px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--card);color:var(--ink);cursor:pointer;}
html.chat-pro-movil .chat-acc-pro button span{font-size:var(--fs-l);line-height:1;}
html.chat-pro-movil .chat-acc-pro button small{font:600 var(--fs-xs) var(--f-mono);letter-spacing:.02em;margin-top:2px;color:var(--dim-55);}
html.chat-pro-movil .chat-acc-pro button:active{transform:scale(.95);}
html.chat-pro-movil #app > nav.tb,html.chat-pro-movil #app nav.tb{display:none !important;}

/* Chat 3 · niveles de espera en la lista de chats */
.chat-fila.espera{border-color:var(--line);border-left:4px solid var(--accent);}
.chat-fila.nv-amb{border-color:var(--line);border-left:4px solid var(--warn);background:var(--card);}
.chat-fila.nv-amb .chat-fila-est{background:color-mix(in srgb, var(--warn) 16%, transparent);color:var(--warn-text);}
.chat-fila.nv-roj{border-color:var(--line);border-left:4px solid var(--danger);background:var(--card);}
.chat-fila.nv-roj .chat-fila-est{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger-text);}
.chat-fila.espera .chat-fila-est{background:var(--accent-wash);color:var(--ink);}

/* Chat 4 · buscador y filtros de la lista de chats */
.pu-chat-barra{margin:4px 0 12px;}
.pu-chat-q{width:100%;height:44px;border:1.5px solid var(--line);border-radius:var(--r-ctl);background:var(--wash-soft);padding:0 16px;font:500 var(--fs-m) var(--f-body);color:var(--ink);}
.pu-chat-q:focus{outline:none;border-color:var(--accent);}
.pu-chat-chips{margin-top:8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;}
.pu-chat-chips::-webkit-scrollbar{display:none;}
.pu-chat-chips .chip{flex:none;}
#chatsPro .chat-fila[hidden],#chatsPro .chat-filas[hidden],#chatsPro .alta-label[hidden]{display:none !important;}

/* Chat 5 · días y horas */
.chat-dia{display:flex;justify-content:center;margin:12px 0 8px;pointer-events:none;}
.chat-dia span{font:700 var(--fs-xs) var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--dim-55);background:var(--wash-soft);border:1px solid var(--line);padding:4px 12px;border-radius:var(--r-pill);}
.bubble[data-hora]::after{content:attr(data-hora);display:block;text-align:right;margin-top:4px;font:500 var(--fs-xs) var(--f-mono);opacity:.6;}

/* Chat 6 · mensajes nuevos y botón para bajar */
.chat-nuevos{display:flex;align-items:center;gap:12px;margin:12px 0 8px;pointer-events:none;}
.chat-nuevos::before,.chat-nuevos::after{content:'';flex:1;height:1px;background:var(--accent);opacity:.5;}
.chat-nuevos span{font:700 var(--fs-xs) var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);}
#view-chat{position:relative;}
.chat-bajar{position:absolute;right:18px;bottom:96px;z-index:calc(var(--z-contenido) + 4);width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);font:700 var(--fs-xl) var(--f-body);box-shadow:0 6px 18px rgba(0,0,0,.15);cursor:pointer;}
.chat-bajar[hidden]{display:none;}

/* Chat 8 · marcar como resuelto */
.chat-pend{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 8px;padding:8px 8px 8px 12px;border-radius:var(--r-ctl);background:var(--wash-soft);border:1px solid var(--line);font:500 var(--fs-s) var(--f-body);color:var(--dim-6);}
.chat-pend[hidden]{display:none;}
.chat-pend button{flex:none;border:1px solid var(--accent-line);background:var(--card);color:var(--ink);border-radius:var(--r-ctl);padding:8px 12px;font:700 var(--fs-s) var(--f-body);cursor:pointer;}
.chat-pend button:active{transform:scale(.97);}

/* Chat 12 · galería de fotos */
.pu-gal-chip{cursor:pointer;font-weight:700;}
.pu-gal{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 12px;}
html.esc .pu-gal{grid-template-columns:repeat(4,1fr);}
.pu-gal-it{position:relative;aspect-ratio:1;padding:0;border:0;border-radius:var(--r-ctl);overflow:hidden;background:var(--wash-soft);cursor:pointer;}
.pu-gal-it img{width:100%;height:100%;object-fit:cover;display:block;}
html.chat-pro-movil #coachBarName{font-size:var(--fs-m);}

/* Chat 14 · ordenador: la lista de chats algo más ancha (si no la has ajustado a mano con la barra) */
html.esc:not([style*="--esc-lista"]) #view-coach-chats.esc-izq{flex:0 0 clamp(380px, 31vw, 440px) !important;}

/* Chat · tarjeta de YouTube */
.yt-card{display:block;margin-top:8px;max-width:300px;border-radius:var(--r-ctl);overflow:hidden;background:var(--card);border:1px solid var(--line);color:var(--ink);text-decoration:none;}
.yt-img{position:relative;display:block;aspect-ratio:16/9;background:#111;}
.yt-img img{width:100%;height:100%;object-fit:cover;display:block;}
.yt-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:48px;height:34px;border-radius:var(--r-ctl);background:rgba(220,0,0,.9);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--fs-m);}
.yt-txt{display:flex;flex-direction:column;gap:2px;padding:8px 12px;}
.yt-txt b{font:700 var(--fs-s) var(--f-body);line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.yt-txt small{font:500 var(--fs-xs) var(--f-mono);color:var(--dim-55);}

/* Peso actual y próxima revisión, aparte y arriba */
.stat-row.fp-peso-arriba{margin:8px 0 16px;}
html.esc .esc-col > .stat-row.fp-peso-arriba{margin:0 0 16px;}

/* #223 · recorrido de 5 toques */
.ob-capa.ob-tour{background:rgba(8,10,13,.55);display:block;padding:0;overflow:hidden;}
.obt-foco{position:fixed;border-radius:var(--r-card);box-shadow:0 0 0 3px var(--accent),0 0 0 9999px rgba(8,10,13,.0);transition:all var(--dur-m) var(--ease-sal);pointer-events:none;background:rgba(255,255,255,.08);}
.obt-card{position:fixed;left:50%;transform:translateX(-50%);bottom:110px;width:min(420px,calc(100% - 32px));background:var(--card);color:var(--ink);border-radius:var(--r-card);padding:16px 20px 12px;box-shadow:0 18px 50px rgba(0,0,0,.28);animation:plIn var(--dur-m) var(--ease-sal);}
.obt-hola{margin:0 0 8px;font:600 var(--fs-s) var(--f-body);color:var(--accent-text);}
.obt-top{display:flex;align-items:center;gap:12px;}
.obt-e{font-size:var(--fs-3xl);line-height:1;}
.obt-top h2{flex:1;margin:0;font:400 var(--fs-2xl) var(--f-display);}
.obt-n{font:700 var(--fs-xs) var(--f-mono);color:var(--dim-55);}
.obt-l{margin:12px 0 8px;padding-left:20px;font-size:var(--fs-m);line-height:1.45;}
.obt-l li{margin:4px 0;}
.obt-tip{margin:8px 0;font-size:var(--fs-s);color:var(--dim-6);}
.obt-acts{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;}
.obt-saltar{background:none;border:0;color:var(--dim-55);font:600 var(--fs-s) var(--f-body);padding:12px 8px;cursor:pointer;}
.obt-sig{flex:0 0 auto;min-width:150px;}
.ob-tour .ob-puntos{justify-content:center;margin-top:8px;}
@media (prefers-reduced-motion:reduce){ .obt-foco{transition:none;} .obt-card{animation:none;} }

/* #223 · cuestionario inicial */
.cq-sheet{display:flex;flex-direction:column;}
.cq-prog{margin:-2px 0 12px;font:600 var(--fs-s) var(--f-mono);color:var(--dim-55);}
.cq-barra{height:6px;border-radius:var(--r-pill);background:var(--wash-soft);margin-top:8px;overflow:hidden;}
.cq-barra i{display:block;height:100%;background:var(--accent);border-radius:var(--r-pill);transition:width var(--dur-m);}
.cq-e{font-size:var(--fs-4xl);text-align:center;margin:2px 0 8px;}
.cq-intro{font-size:var(--fs-m);color:var(--dim-6);margin:0 0 12px;}
.cq-f label{line-height:1.35;}
.cq-req{color:var(--danger-text);}
.cq-in{position:relative;}
.cq-in.con-u input{padding-right:52px;}
.cq-u{position:absolute;right:14px;top:50%;transform:translateY(-50%);font:600 var(--fs-s) var(--f-mono);color:var(--dim-55);pointer-events:none;}
.cq-nota{display:block;margin-top:4px;font-size:var(--fs-s);color:var(--dim-55);}
.cq-err{display:block;margin-top:4px;font-size:var(--fs-s);color:var(--danger-text);font-weight:600;}
.cq-f.cq-mal input,.cq-f.cq-mal textarea{border-color:var(--danger);}
.cq-chips,.cq-multi{flex-wrap:wrap;}
.cq-escala{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;}
.cq-escala button{height:40px;border-radius:var(--r-ctl);border:1.5px solid var(--line);background:var(--card);font:700 var(--fs-m) var(--f-mono);color:var(--ink);cursor:pointer;padding:0;}
.cq-escala button.on{background:var(--accent);border-color:var(--accent);color:#fff;}
.cq-alg{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;padding:12px 16px;border-radius:var(--r-ctl);border:1.5px solid var(--accent-line);background:var(--wash-soft);font:600 var(--fs-m) var(--f-body);color:var(--ink);cursor:pointer;text-align:left;}
.cq-aviso{margin:12px 0 4px;padding:12px 12px;border-radius:var(--r-ctl);background:var(--accent-wash);font-size:var(--fs-s);line-height:1.4;}
.cq-acts{display:grid;grid-template-columns:1fr 1.4fr;gap:12px;margin-top:auto;padding-top:16px;position:sticky;bottom:0;background:var(--card);padding-bottom:4px;}
.cq-fin{align-items:center;text-align:center;justify-content:center;}
.cq-fin h3{font:400 var(--fs-3xl) var(--f-display);margin:4px 0;}
.cq-fin .cq-acts{width:100%;margin-top:20px;position:static;}
.cq-qas{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-ctl);overflow:hidden;margin-bottom:12px;}
.cq-qa{display:flex;flex-direction:column;gap:4px;padding:12px 16px;}
.cq-qa + .cq-qa{border-top:1px solid var(--line);}
.cq-qa > span{font-size:var(--fs-s);color:var(--dim-55);}
.cq-qa > b{font:500 var(--fs-m) var(--f-body);color:var(--ink);white-space:pre-wrap;}
.alg-gastro{margin-top:8px;font-size:var(--fs-s);}
.cq-sheet > *{flex-shrink:0;}
.cq-sheet > .cq-acts{flex-shrink:0;}
.obt-acts .obt-sig{width:auto;flex:1 1 auto;min-width:0;max-width:240px;margin:0;}
.acc-btn.acc-pend{opacity:.6;}

/* Pantalla completa (ordenador grande): el contenido aprovecha el ancho y los accesos de la ficha se alinean con las tarjetas */
html.esc .ficha-accesos{max-width:none;}
@media (min-width:1600px){
  html.esc .alta-top,html.esc .alta-body{padding-left:max(32px, calc((100% - 1480px) / 2));padding-right:max(32px, calc((100% - 1480px) / 2));}
  html.esc .esc-izq .alta-top,html.esc .esc-izq .alta-body{padding-left:20px;padding-right:20px;}
}

/* Pantallas muy anchas (pantalla completa en monitores grandes): sin hueco entre la lista y la ficha,
   contenido pegado a la lista y un poco más grande para que se lea bien */
@media (min-width:1600px){
  html.esc .esc-dual > :not(.esc-izq) .alta-top,
  html.esc .esc-dual > :not(.esc-izq) .alta-body{padding-left:40px;padding-right:max(40px, calc(100% - 1560px));}
  html.esc .esc-dual > :not(.esc-izq) .ficha-accesos{max-width:900px;}
}

/* Al desplegar un apartado, el navegador no debe «anclar» lo de abajo y empujar el título hacia arriba */
.alta-body,.sc,#content,.fsd-sheet{overflow-anchor:none;}

/* Ficha del cliente más limpia: fuera «Semana X de 12 · objetivo», los filtros (Todo, Datos y medidas…) y los resúmenes a la derecha de cada apartado */
#view-coach-cliente #cd-meta,#view-coach-cliente #fichaSecciones,#view-coach-cliente .fp-lbl .fp-res{display:none !important;}
#view-coach-cliente .fp-lbl .fp-chev{margin-left:auto;}

/* 0.79.1-1: plan del cliente más limpio, sin «Ahora toca» ni lista de la compra */
#nhCard .nh-ahora,#nhCard .nh-compra-btn{display:none !important;}

/* 0.79.2-1: teclado abierto en el móvil → sin barra de pestañas */
html.fsd-teclado .tb{display:none !important;}
#dsBar{display:none !important;}
/* 0.79.4: cambios del plan resaltados al abrir el aviso */
.pc-marca{position:relative;outline:2.5px solid var(--accent) !important;outline-offset:2px;background:rgba(120,170,225,.10) !important;border-radius:var(--r-ctl);animation:pcLatir 1.2s ease-in-out 2;}
@keyframes pcLatir{50%{outline-color:transparent;}}
.pc-tag{display:inline-block;margin:0 0 8px;padding:2px 8px;border-radius:var(--r-pill);background:var(--accent);color:#fff;font:700 var(--fs-xs) var(--f-mono);letter-spacing:.06em;text-transform:uppercase;}
.pc-banner{margin:0 0 16px;padding:16px 16px;border-radius:var(--r-card);border:1.5px solid var(--accent);background:var(--wash-soft);color:var(--ink);}
.pc-banner > b{display:block;font:700 var(--fs-m) var(--f-body);margin-bottom:8px;}
.pc-banner ul{margin:0 0 12px;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;font:400 var(--fs-s) var(--f-body);}
.pc-banner li span{font-weight:600;}
.pc-banner li em{font-style:normal;color:var(--dim-6);font-family:var(--f-mono);font-size:var(--fs-s);}
.pc-banner li.pc-fuera span{text-decoration:line-through;color:var(--dim-6);}
.pc-ok{padding:8px 16px;border-radius:var(--r-pill);border:0;background:var(--accent);color:#fff;font:600 var(--fs-s) var(--f-body);cursor:pointer;}
.pc-banner{scroll-margin-top:84px;}

/* ===== 0.79.4 · #259 vista multitarea del escritorio (lista · contenido · chat) ===== */
.mt-vista{display:none;}
html.esc .mt-vista{display:flex;gap:4px;padding:4px;margin-bottom:8px;border-radius:var(--r-ctl);background:var(--wash-med);}
html.esc .mt-vista button{flex:1 1 0;display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;padding:8px 8px;border:0;border-radius:var(--r-ctl);background:none;color:var(--dim-6);font:600 var(--fs-s) var(--f-body);cursor:pointer;}
html.esc .mt-vista button:hover{color:var(--ink);}
html.esc .mt-vista button.on{background:var(--bg);color:var(--ink);box-shadow:0 1px 3px rgba(18,21,26,.12);}
html.esc .mt-vista button.mt-estrecha{opacity:.55;}
html.esc.esc-mini .mt-vista{flex-direction:column;}
html.esc.esc-mini .mt-vista span{display:none;}
/* columna del chat */
.esc-chat-col{display:none;}
html.esc .esc-chat-col.on{display:flex;flex-direction:column;flex:0 0 clamp(340px, 27vw, 440px);min-width:0;height:100%;order:99;border-left:1px solid var(--line);background:var(--bg);}
html.esc .esc-chat-col .mt-cab{flex:none;display:flex;align-items:center;gap:12px;padding:16px 16px 12px;border-bottom:1px solid var(--line);}
html.esc .esc-chat-col .mt-av{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;overflow:hidden;background:var(--accent);color:var(--on-accent);font:700 var(--fs-m) var(--f-body);}
html.esc .esc-chat-col .mt-av img{width:100%;height:100%;object-fit:cover;}
html.esc .esc-chat-col .mt-cab-txt{flex:1;min-width:0;display:flex;flex-direction:column;}
html.esc .esc-chat-col .mt-cab-txt small{font:500 var(--fs-xs) var(--f-mono);color:var(--accent-text);text-transform:uppercase;letter-spacing:.06em;}
html.esc .esc-chat-col .mt-cab-txt b{font:700 var(--fs-m) var(--f-body);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
html.esc .esc-chat-col .mt-grande{flex:none;width:34px;height:34px;border-radius:var(--r-ctl);border:1px solid var(--line-strong);background:var(--wash-soft);color:var(--ink);font-size:var(--fs-l);cursor:pointer;}
html.esc .esc-chat-col .mt-grande:hover{border-color:var(--accent);}
html.esc .esc-chat-col #view-chat{display:flex !important;flex-direction:column;flex:1 1 0;min-height:0;height:auto;padding:0 12px !important;animation:none;}
html.esc .esc-chat-col #view-chat > .view-top,html.esc .esc-chat-col #view-chat > .team-row{display:none !important;}
html.esc .esc-chat-col #chatList{flex:1 1 0;min-height:0;overflow-y:auto;padding-top:12px;}
html.esc .esc-chat-col .composer{flex:none;padding-bottom:12px;}
/* con tres columnas el contenido central usa su ancho sin márgenes enormes */
html.esc.mt-con-chat .screen > [id^="view-"]:not(.esc-izq) .alta-top,
html.esc.mt-con-chat .screen > [id^="view-"]:not(.esc-izq) .alta-body{padding-left:28px !important;padding-right:28px !important;}
html.esc.mt-con-chat #app .sc{padding-left:24px;padding-right:24px;}
/* izquierda = lista de seguimientos, compacta: solo nombre, nota y estado */
html.esc #view-coach-segs.esc-izq .sg-bloque > :not(.sg-cab),
html.esc #view-coach-segs.esc-izq .panel-stats,
html.esc #view-coach-segs.esc-izq .segui-leyenda{display:none !important;}
html.esc #view-coach-segs.esc-izq .sg-bloque{padding:12px 12px;margin-bottom:8px;cursor:pointer;}
html.esc #view-coach-segs.esc-izq .sg-cab{cursor:pointer;}
html.esc #view-coach-segs.esc-izq .sg-bloque.esc-sel{outline:2px solid var(--accent);outline-offset:-1px;background:var(--wash-soft);}
/* izquierda = lista de planes (Entrenamientos / Nutrición): sin la vista previa */
html.esc #view-coach-planes.esc-izq .pl-split,html.esc #view-coach-planes.esc-izq .ent-split{display:block;}
html.esc #view-coach-planes.esc-izq .pl-der,
html.esc #view-coach-planes.esc-izq .panel-stats{display:none !important;}
html.esc #view-coach-segs.esc-izq .sg-cab{flex-wrap:wrap;margin-bottom:0;}
html.esc #view-coach-segs.esc-izq .sg-cab .cliente-info{flex:1 1 calc(100% - 64px);min-width:0;}
html.esc #view-coach-segs.esc-izq .sg-cab-der{width:100%;padding-left:52px;justify-content:flex-start;}
html.esc.mt-con-chat #coachBar [data-mt-chat]{display:none !important;}
@media (min-width:900px){ html.esc.mt-con-chat .pb-btn{top:auto;bottom:12px;right:calc(clamp(340px, 27vw, 440px) + 16px);} }
html.esc.mt-con-chat #coachBar{flex-wrap:wrap;row-gap:8px;}
html.esc.mt-con-chat #coachBar button[onclick*="tab-chat"]{display:none !important;}
/* centro estrecho (tres columnas): la calculadora de nutrición pasa encima en vez de al lado */
html.esc.mt-con-chat #app{container-type:inline-size;container-name:mtcentro;}
@container mtcentro (max-width: 900px){
  html.esc #app.coach-edit #view-plan.active{display:block;}
  html.esc #app.coach-edit #view-plan.active > #calcCard{position:static;max-height:none;overflow:visible;margin:12px 0 16px;}
}
html.esc.mt-con-chat #coachBar .coach-bar-left{flex:0 0 auto;min-width:max-content;}
html.esc.mt-con-chat #coachBar #coachBarLabel,html.esc.mt-con-chat #coachBar #coachBarName{display:none;}
/* ===== 0.79.4-1 · barras verticales de la multitarea y contenido que se adapta a su ancho ===== */
html.esc .esc-chat-col.on{flex:0 0 var(--mt-chat, clamp(340px, 27vw, 440px));}
html.esc .mt-divisor:not([hidden]){left:auto;right:calc(var(--mt-chat, clamp(340px, 27vw, 440px)) - 5px);}
@media (min-width:900px){ html.esc.mt-con-chat .pb-btn{right:calc(var(--mt-chat, clamp(340px, 27vw, 440px)) + 16px);} }
/* asa siempre visible (suave) para que se sepa que se puede mover */
html.esc.mt-on .esc-divisor::before{opacity:.85;}
html.esc.mt-on .esc-divisor:hover::before,html.esc.mt-on.esc-arrastrando .esc-divisor::before{opacity:1;}
/* el centro se adapta a SU ancho (no al de la ventana) */
html.esc.mt-on .screen > [id^="view-"]:not(.esc-izq){container-type:inline-size;container-name:mtcentro;}
html.esc.mt-on #app{container-type:inline-size;container-name:mtcentro;}
html.esc.mt-on .esc-chat-col{container-type:inline-size;container-name:mtchat;}
@container mtcentro (max-width: 760px){
  html.esc .pl-split{display:block;}
  html.esc .pl-der{position:static;margin-top:16px;}
  html.esc .ent-split .pl-der{max-height:none;}
}
@container mtcentro (max-width: 620px){
  html.esc .ficha-accesos{grid-template-columns:repeat(2,1fr);}
  html.esc .panel-stats{flex-wrap:wrap;}
  html.esc .panel-stat{flex:1 1 40%;}
  html.esc .alta-top,html.esc .alta-body{padding-left:16px !important;padding-right:16px !important;}
  html.esc #app .sc{padding-left:16px !important;padding-right:16px !important;}
}
@container mtchat (max-width: 360px){
  html.esc .esc-chat-col #view-chat .bubble{max-width:86%;}
}
@container mtchat (min-width: 560px){
  html.esc .esc-chat-col #view-chat .bubble{max-width:70%;}
}
/* 26/10 · multitarea: los accesos de la ficha ocupan el mismo ancho que las tarjetas de debajo */
html.esc.mt-on .esc-dual > :not(.esc-izq) .ficha-accesos{max-width:none;}
/* 26/10 · multitarea: la ficha en una sola columna, centrada, aunque se ensanche el centro con la barra
   (antes, al ganar ancho, saltaba a dos columnas y el contenido se movía de sitio) */
html.esc.mt-on .esc-ficha-grid.pu-cols > .esc-col{flex:1 1 100%;}
html.esc.mt-on #view-coach-cliente:not(.esc-izq) .alta-body,
html.esc.mt-on #view-coach-cliente:not(.esc-izq) .alta-top{padding-left:max(28px, calc((100% - 860px) / 2)) !important;padding-right:max(28px, calc((100% - 860px) / 2)) !important;}
/* 26/10 · también en la vista ampliada (y a pantalla completa): ficha en una columna, centrada, sin hueco ni saltos */
html.esc .esc-ficha-grid.pu-cols > .esc-col{flex:1 1 100%;}
html.esc #view-coach-cliente:not(.esc-izq) .alta-body,
html.esc #view-coach-cliente:not(.esc-izq) .alta-top{padding-left:max(28px, calc((100% - 860px) / 2)) !important;padding-right:max(28px, calc((100% - 860px) / 2)) !important;}
html.esc #view-coach-cliente:not(.esc-izq) .ficha-accesos{max-width:none;}
/* 26/10 · centro estrecho (multitarea): barra del plan y calculadora ordenadas */
.calc-row label:not(:has(.nu-g))::after{content:"\00a0";display:block;visibility:hidden;height:11px;margin-top:4px;line-height:11px;}
@container mtcentro (max-width: 900px){
  html.esc #coachBar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px;padding-left:16px;padding-right:16px;}
  html.esc #coachBar #enDeshacerBtn{margin-left:auto;}
  html.esc #coachBar #editarBtn{flex:1 1 100%;order:9;}
  html.esc #calcCard .nu-rapido,html.esc #calcCard .nu-plantillas{display:inline-flex;align-items:center;justify-content:center;width:calc(50% - 4px);height:42px;margin:4px 0 12px;vertical-align:top;}
  html.esc #calcCard .nu-rapido{margin-right:8px;}
}
/* 26/10 · #234 ilustraciones de los ejercicios (cliente) */
.il-box{display:flex;align-items:center;gap:12px;margin:8px 0 12px;}
.il-fig{flex:none;width:92px;height:70px;padding:2px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--wash-soft);cursor:zoom-in;color:var(--ink);transition:width var(--dur-m) var(--ease-sal), height var(--dur-m) var(--ease-sal);}
.il-box.il-grande{flex-direction:column;align-items:stretch;}
.il-box.il-grande .il-fig{width:100%;height:190px;cursor:zoom-out;}
.il-svg{display:block;width:100%;height:100%;}
.il-txt{margin:0;font:400 var(--fs-s)/1.4 var(--f-body);color:var(--dim-6);}
.il-txt-suave{font-style:italic;}
.il-cuerpo{stroke:currentColor;stroke-width:3.4;stroke-linecap:round;fill:none;}
.il-cabeza{fill:currentColor;}
.il-disco{fill:none;stroke:var(--accent);stroke-width:3;}
.il-peso{fill:var(--accent);}
.il-placa{stroke:var(--accent);stroke-width:4;stroke-linecap:round;}
.il-cable{stroke:var(--accent);stroke-width:1.4;opacity:.7;}
.il-banda{stroke-dasharray:3 2;}
.il-mueble{stroke:var(--dim-45, #9aa3ad);stroke-width:3;stroke-linecap:round;fill:var(--line);}
.il-fondo{stroke:var(--line-strong);stroke-width:1.6;stroke-linecap:round;fill:none;}
#app.coach-view .il-box{display:none;}
.il-mueble.il-sin{fill:none;}
.il-rodillo{fill:var(--accent);stroke:var(--bg, #fff);stroke-width:1;}
.il-barra{stroke:var(--accent);stroke-width:3;stroke-linecap:round;}
/* 26/10 · móvil con el teclado abierto: los buscadores (ejercicios, alimentos…) a pantalla completa,
   cabecera compacta y la lista usando todo el hueco que queda encima del teclado */
html.fsd-teclado .picker-overlay{align-items:stretch;}
html.fsd-teclado .picker-overlay .picker-sheet{height:100%;max-height:none;border-radius:0;border-top:0;padding:12px 16px 8px;}
html.fsd-teclado .picker-overlay .picker-head{margin-bottom:8px;align-items:center;}
html.fsd-teclado .picker-overlay .picker-eyebrow{display:none;}
html.fsd-teclado .picker-overlay .picker-title{font-size:var(--fs-l);line-height:1.2;}
html.fsd-teclado .picker-overlay .picker-filters{margin-bottom:8px;flex-wrap:nowrap;overflow-x:auto;}
html.fsd-teclado .picker-overlay .picker-new-btn{display:none;}
html.fsd-teclado .picker-overlay .picker-list{flex:1 1 0;min-height:0;}
html.fsd-teclado .pb-btn{display:none !important;}
/* 26/10 · aviso de cambios compacto */
.pc-banner .pc-sub{margin:0 0 12px;font:500 var(--fs-s)/1.4 var(--f-body);color:var(--dim-6);}
.pc-banner .pc-det{margin:0 0 12px;}
.pc-banner .pc-det summary{cursor:pointer;font:600 var(--fs-s) var(--f-body);color:var(--accent-text);margin-bottom:8px;}
.pc-banner .pc-det ul{max-height:220px;overflow-y:auto;}
.pc-dia{display:inline-block;margin:4px 0 0;padding:2px 8px;border-radius:var(--r-pill);background:var(--accent);color:#fff;font:700 var(--fs-xs) var(--f-mono);letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;}
.meal-head-txt .pc-dia{margin-left:0;}
.il-mango{fill:none;stroke:var(--accent);stroke-width:2.4;}
.il-balon{fill:var(--accent);opacity:.85;}
.il-respaldo{opacity:.55;}
.il-cuerda{stroke-width:2.6;opacity:.9;stroke-dasharray:5 3;}
.il-agua{stroke:var(--accent);opacity:.5;}
.sg-desc + .sg-text{margin-top:12px;}
/* 26/10 · «Completar seguimiento» en los seguimientos del cliente */
.sg-rev-centro{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 20px;border-bottom:1px solid var(--line);background:var(--wash-soft);}
html.esc .sg-rev-centro{padding-left:28px;padding-right:28px;}
.sg-rev-centro .sg-rev-btn{width:auto;padding:0 20px;}
.sg-rev-centro .sg-rev-de{font:500 var(--fs-s) var(--f-body);color:var(--dim-6);}
.sg-rev-centro .sg-rev-form{flex:1 1 100%;}
.sg-buscar{display:block;width:100%;height:42px;margin:0 0 12px;padding:0 16px;border-radius:var(--r-ctl);border:1px solid var(--line-strong);background:var(--wash-soft);color:var(--ink);font:500 var(--fs-m) var(--f-body);}
.sg-buscar:focus{outline:1.5px solid var(--accent);}
.sg-bloque.sg-busca-oculto{display:none !important;}

/* Diseño · Fase 1: zonas táctiles de 44 px en el móvil sin cambiar el dibujo.
   Se amplía solo la zona que se toca con un ::before transparente.
   En filas de botones juntos (vasos, RIR, −/+) se amplía solo el alto,
   para no invadir el botón vecino. */
html:not(.esc) :is(.srf-q,.srf-nota-b,.bell,.cmp-ico,.view-back,.pu-gal-chip,.srf-ok,.srf-n,.nh-vaso,.nh-agua-mas,.rir-n,.srf-peso>button){position:relative;}
html:not(.esc) :is(.srf-q,.srf-nota-b,.bell,.cmp-ico,.view-back,.pu-gal-chip,.srf-ok,.srf-n)::before{content:'';position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%);}
html:not(.esc) :is(.nh-vaso,.nh-agua-mas,.rir-n,.srf-peso>button)::before{content:'';position:absolute;left:0;right:0;top:50%;height:max(100%,44px);transform:translateY(-50%);}

/* #284 · Seguimiento de la semana ya enviado */
.segui-aviso.hecho{background:color-mix(in srgb, var(--ok) 10%, transparent);border-color:color-mix(in srgb, var(--ok) 35%, transparent);}
.segui-aviso.hecho .segui-aviso-main{color:var(--ok-text);}
