/* ════════════════════════════════════════════════════════════════
   MOVEO · mv-coach — Panel del COACH en el mapa (Pieza 3, v27.3.1)
   Espejo de mv-me (alumno) para el contexto coach. Todo namespaced
   .mvcoach-* para no colisionar con la CSS global de index.html
   (.btn/.filters/.status/.map/.grid/.today… son globales ahí).
   Tokens con fallback por si la página no define gold/amber/green.
   NO toca me-core, pin-coach, ni nada existente.
   ════════════════════════════════════════════════════════════════ */

.mvcoach-sheet-backdrop{
  position:fixed; inset:0; background:rgba(26,26,26,.28);
  opacity:0; pointer-events:none; transition:opacity .25s ease; z-index:1100;
}
.mvcoach-sheet-backdrop.is-open{ opacity:1; pointer-events:auto; }

.mvcoach-sheet{
  position:fixed; left:0; right:0; bottom:0;
  background:var(--paper,#FBF7EF); border-top:1px solid var(--rule,#E7DFD1);
  border-radius:24px 24px 0 0; transform:translateY(100%);
  transition:transform .38s cubic-bezier(.32,.72,.32,1.04);
  z-index:1110; box-shadow:0 -20px 40px rgba(63,53,43,.18);
  padding:8px 16px 24px; max-width:560px; margin:0 auto;
  /* [APP-NATIVA v27.4] altura FIJA 88svh + header/grid fijos + body scroll independiente */
  height:88vh; height:88svh; min-height:88vh; min-height:88svh; max-height:88vh; max-height:88svh;
  display:flex; flex-direction:column; overflow:hidden; padding-bottom:env(safe-area-inset-bottom);
}
.mvcoach-sheet__handle{ flex:none; }
.mvcoach-sheet__header{ flex:none; }
.mvcoach-grid{ flex:none; }
.mvcoach-sheet.is-open{ transform:translateY(0); }

.mvcoach-sheet__handle{ width:42px; height:4px; background:var(--rule,#E7DFD1); border-radius:99px; margin:6px auto 12px; cursor:grab; }
.mvcoach-sheet__header{ display:flex; align-items:center; gap:11px; padding:0 4px 14px; border-bottom:1px dashed var(--rule,#E7DFD1); }
.mvcoach-sheet__avatar{
  width:42px; height:42px; border-radius:50%; background:var(--sand-2,#E8DFCC) center/cover;
  border:2px solid var(--ink,#241F18); flex:none; display:flex; align-items:center; justify-content:center;
  font-family:var(--serif,'Cormorant Garamond',Georgia,serif); font-size:18px; color:var(--ink,#241F18); font-weight:500;
}
.mvcoach-sheet__title{ flex:1; min-width:0; line-height:1.15; }
.mvcoach-sheet__title h4{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-style:normal; font-weight:600; font-size:13.5px; letter-spacing:.15em; text-transform:uppercase; color:var(--ink,#241F18); margin:0; }
.mvcoach-sheet__title small{ display:block; font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:9px; letter-spacing:.2em; color:var(--taupe,#8A7E68); text-transform:uppercase; }
.mvcoach-story{ width:40px; height:40px; flex:none; position:relative; border:none; padding:2.5px; border-radius:50%; cursor:pointer; background:conic-gradient(from 135deg,var(--gold,#B8956A),#C98AB0,var(--olive,#7A916F),var(--gold,#B8956A)); }
.mvcoach-story .sr-av{ display:block; width:100%; height:100%; border-radius:50%; background:var(--sand-2,#E8DFCC) center/cover; border:2px solid var(--paper,#FBF7EF); }
.mvcoach-story .sr-plus{ position:absolute; right:-2px; bottom:-2px; width:17px; height:17px; border-radius:50%; background:var(--ink,#241F18); color:#fff; font-size:12px; line-height:15px; text-align:center; border:2px solid var(--paper,#FBF7EF); }
.mvcoach-sheet__close{ width:28px; height:28px; border-radius:50%; background:var(--sand-2,#E8DFCC); border:none; color:var(--ink,#241F18); cursor:pointer; font-size:14px; line-height:1; display:flex; align-items:center; justify-content:center; }

/* quick-grid 4-col [BUG219] "Mi mapa" restaurado en el grid coach (era 3-col en 171 P2 PARTE 1) */
.mvcoach-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin:14px 0 12px; }
.mvcoach-qa{ display:flex; flex-direction:column; align-items:center; gap:5px; padding:11px 4px; border:1px solid var(--rule,#E7DFD1); border-radius:13px; background:var(--sand,#F2EBDE); text-decoration:none; color:var(--ink,#241F18); cursor:pointer; }
.mvcoach-qa.is-active{ background:var(--ink,#241F18); color:var(--paper,#FBF7EF); border-color:var(--ink,#241F18); }
.mvcoach-qa svg{ width:20px; height:20px; }
.mvcoach-qa .lab{ font-size:10px; font-weight:600; }

/* [APP-NATIVA] el data-box es el BODY scrollable independiente. */
.mvcoach-data{ margin-top:2px; flex:1 1 auto; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.mvcoach-data::-webkit-scrollbar{ display:none; }
.mvcoach-view.hidden{ display:none; }
/* [BUG219] Vista "Mi mapa" del sheet coach */
/* [v6.21 / Arantxa pantalla 1] Mi zona activa más estrecho — 300px → 100px (≈ tercio) */
#mvcoach-view-map .mvcoach-myloc__map{ height:100px; }
.mvcoach-mapback{ margin-top:12px; display:block; width:100%; text-align:center; background:var(--ink,#241F18); color:var(--paper,#FBF7EF); border:none; border-radius:13px; padding:14px; font-family:var(--sans,'DM Sans',system-ui,sans-serif); font-size:14px; font-weight:600; cursor:pointer; }
/* [APP-NATIVA] fundido 200ms al cambiar de tab */
@keyframes mvcoachFade{ from{ opacity:0 } to{ opacity:1 } }
.mvcoach-view{ animation:mvcoachFade .2s ease; }
.mvcoach-tev.hidden{ display:none; }

/* Tu día de hoy */
.mvcoach-today{ margin-bottom:14px; }
.mvcoach-today__label{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:10px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--espresso,#3B332A); margin-bottom:8px; }
.mvcoach-today__track{ position:relative; height:50px; background:var(--sand,#F2EBDE); border:1px solid var(--rule,#E7DFD1); border-radius:13px; overflow:hidden; }
.mvcoach-today__now{ position:absolute; top:0; bottom:0; width:2px; background:var(--gold,#B8956A); opacity:.9; }
.mvcoach-today__now::before{ content:"AHORA"; position:absolute; top:3px; left:4px; font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:7px; letter-spacing:.12em; color:var(--gold,#B8956A); }
.mvcoach-tblk{ position:absolute; top:8px; bottom:8px; min-width:34px; border-radius:8px; display:flex; align-items:center; justify-content:center; overflow:hidden; cursor:pointer; border-left:3px solid; padding:0 2px; }
.mvcoach-tblk span{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:8.5px; font-weight:500; color:var(--ink,#241F18); white-space:nowrap; }
.mvcoach-tblk.confirmed{ background:rgba(59,122,75,.16); border-left-color:var(--green,#3B7A4B); }
.mvcoach-tblk.pending{ background:rgba(200,145,31,.18); border-left-color:var(--amber,#C8911F); }
.mvcoach-today__empty{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--serif,'Cormorant Garamond',Georgia,serif); font-style:italic; font-size:13px; color:var(--taupe,#8A7E68); }
.mvcoach-today__axis{ display:flex; justify-content:space-between; margin-top:5px; font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:9px; letter-spacing:.06em; color:var(--taupe,#8A7E68); }
.mvcoach-today__list{ margin-top:9px; display:flex; flex-direction:column; gap:6px; }
.mvcoach-tev{ display:flex; align-items:center; gap:8px; padding:8px 10px; border:1px solid var(--rule,#E7DFD1); border-radius:10px; background:var(--paper,#FBF7EF); font-size:12.5px; border-left:3px solid var(--green,#3B7A4B); }
.mvcoach-tev.pending{ border-left-color:var(--amber,#C8911F); }
.mvcoach-tev b{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:11px; }
.mvcoach-tev .sp{ color:var(--espresso,#3B332A); }
.mvcoach-tev .co{ color:var(--taupe,#8A7E68); }
.mvcoach-tev__txt{ flex:1; min-width:0; }
.mvcoach-tev__x{ flex:none; border:none; background:none; color:var(--taupe,#8A7E68); font-size:11px; line-height:1; cursor:pointer; padding:3px; border-radius:6px; opacity:.55; }
.mvcoach-tev__x:hover{ opacity:1; color:var(--ink,#241F18); }
.mvcoach-today__hint{ font-family:var(--serif,'Cormorant Garamond',Georgia,serif); font-style:italic; font-size:11px; color:var(--taupe,#8A7E68); text-align:center; margin-top:7px; }

/* segmentado (4) */
/* [APP-NATIVA] tabs STICKY dentro del body (wrapper paper) */
.mvcoach-tabs{ position:sticky; top:0; z-index:2; background:var(--paper,#FBF7EF); padding:2px 0 0; margin:0 0 14px; }
.mvcoach-seg{ display:flex; gap:4px; background:var(--sand-2,#E8DFCC); padding:4px; border-radius:12px; margin-bottom:0; overflow-x:auto; scrollbar-width:none; }
.mvcoach-seg::-webkit-scrollbar{ display:none; }
/* [v7.12] flex:1 → las pestañas se reparten y LLENAN la barra (antes flex:none = pegadas
   a la izq con hueco a la derecha). min-width:max-content evita cortar el texto en móvil
   (si no caben, la barra hace scroll en vez de recortar). */
.mvcoach-seg button{ flex:1 1 auto; min-width:max-content; text-align:center; white-space:nowrap; border:none; background:transparent; font-family:var(--sans,'DM Sans',system-ui,sans-serif); font-size:12.5px; font-weight:600; color:var(--espresso,#3B332A); padding:9px 10px; border-radius:9px; cursor:pointer; }
.mvcoach-seg button.on{ background:var(--paper,#FBF7EF); color:var(--ink,#241F18); box-shadow:0 1px 4px rgba(40,33,24,.14); }

.mvcoach-eyebrow{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:9.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--taupe,#8A7E68); margin:16px 0 8px; display:flex; align-items:center; gap:8px; }
.mvcoach-eyebrow::after{ content:""; flex:1; height:1px; background:var(--rule,#E7DFD1); }
.mvcoach-eyebrow .badge{ flex:none; background:var(--amber,#C8911F); color:#fff; font-size:9px; border-radius:999px; padding:1px 7px; letter-spacing:.04em; }

/* KPIs */
.mvcoach-kpis{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:2px 0 12px; }
.mvcoach-kpi{ border:1px solid var(--rule,#E7DFD1); border-radius:13px; background:var(--paper,#FBF7EF); padding:12px 13px; }
.mvcoach-kpi.dark{ background:var(--ink,#241F18); border-color:var(--ink,#241F18); }
.mvcoach-kpi .kpi-k{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:8px; letter-spacing:.16em; text-transform:uppercase; color:var(--taupe,#8A7E68); }
.mvcoach-kpi.dark .kpi-k{ color:rgba(231,222,207,.7); }
.mvcoach-kpi .kpi-v{ font-family:var(--serif,'Cormorant Garamond',Georgia,serif); font-size:26px; line-height:1.1; margin-top:4px; }
.mvcoach-kpi.dark .kpi-v{ color:var(--paper,#FBF7EF); }
.mvcoach-kpi .kpi-s{ font-size:10.5px; color:var(--taupe,#8A7E68); margin-top:2px; }
.mvcoach-kpi.dark .kpi-s{ color:#9DBCA0; }
.mvcoach-all{ display:block; text-align:center; font-size:11px; letter-spacing:.04em; color:var(--ink,#241F18); padding-top:12px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }

/* filtros */
.mvcoach-filters{ display:flex; gap:6px; margin:2px 0 4px; flex-wrap:wrap; }
.mvcoach-fchip{ border:1px solid var(--rule,#E7DFD1); background:var(--paper,#FBF7EF); border-radius:999px; padding:6px 13px; font-size:11.5px; font-weight:600; color:var(--espresso,#3B332A); cursor:pointer; font-family:var(--sans,'DM Sans',system-ui,sans-serif); }
.mvcoach-fchip.on{ background:var(--ink,#241F18); color:var(--paper,#FBF7EF); border-color:var(--ink,#241F18); }

/* solicitudes pendientes (coach) */
.mvcoach-req{ background:var(--paper,#FBF7EF); border:1px solid var(--rule,#E7DFD1); border-left:3px solid var(--amber,#C8911F); border-radius:13px; padding:11px 13px; margin-bottom:9px; }
.mvcoach-req__hero{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.mvcoach-req__hero .av{ width:38px; height:38px; border-radius:50%; background:var(--sand-2,#E8DFCC) center/cover; border:2px solid var(--ink,#241F18); flex:none; display:flex; align-items:center; justify-content:center; font-family:var(--serif,'Cormorant Garamond',Georgia,serif); font-size:15px; color:var(--ink,#241F18); }
.mvcoach-req__hero .who{ flex:1; min-width:0; }
.mvcoach-req__hero .nm{ font-family:var(--serif,'Cormorant Garamond',Georgia,serif); font-style:italic; font-size:17px; line-height:1.05; color:var(--ink,#241F18); }
.mvcoach-req__hero .id{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:9px; letter-spacing:.1em; color:var(--taupe,#8A7E68); text-transform:uppercase; margin-top:3px; }
.mvcoach-req__cta{ display:flex; gap:7px; }
.mvcoach-req__cta .mvcoach-btn{ flex:1; padding:9px; }
/* [BUG224] solicitud clickable (toda la card abre la ficha previa). Sin botones inline. */
.mvcoach-req.is-tap{ cursor:pointer; transition:border-color .15s, box-shadow .15s, transform .06s; -webkit-tap-highlight-color:transparent; }
.mvcoach-req.is-tap .mvcoach-req__hero{ margin-bottom:0; }
.mvcoach-req.is-tap:hover{ border-color:var(--amber,#C8911F); box-shadow:0 6px 18px -12px rgba(40,33,24,.45); }
.mvcoach-req.is-tap:active{ transform:scale(.99); }
.mvcoach-req__chev{ flex:none; color:var(--taupe,#8A7E68); font-size:22px; line-height:1; padding-left:4px; }

/* ficha próxima sesión */
.mvcoach-ficha{ background:var(--paper,#FBF7EF); border:1px solid var(--rule,#E7DFD1); border-radius:16px; overflow:hidden; }
.mvcoach-soon{ display:flex; align-items:center; gap:7px; background:rgba(200,145,31,.13); color:var(--amber,#C8911F); font-size:11.5px; font-weight:600; padding:8px 12px; border-bottom:1px solid var(--rule,#E7DFD1); }
.mvcoach-soon svg{ width:14px; height:14px; flex:none; }
.mvcoach-ficha__hero{ display:flex; align-items:center; gap:11px; padding:14px 15px; }
.mvcoach-av{ width:40px; height:40px; border-radius:50%; background:var(--sand-2,#E8DFCC) center/cover; border:2px solid var(--ink,#241F18); flex:none; display:flex; align-items:center; justify-content:center; font-family:var(--serif,'Cormorant Garamond',Georgia,serif); font-size:16px; color:var(--ink,#241F18); }
.mvcoach-who{ flex:1; min-width:0; }
.mvcoach-who .nm{ font-family:var(--serif,'Cormorant Garamond',Georgia,serif); font-style:italic; font-size:18px; line-height:1.05; color:var(--ink,#241F18); }
.mvcoach-who .id{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:9px; letter-spacing:.14em; color:var(--taupe,#8A7E68); text-transform:uppercase; margin-top:3px; }
.mvcoach-herometa{ display:flex; flex-direction:column; gap:5px; align-items:flex-end; }
.mvcoach-status{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:9px; letter-spacing:.14em; text-transform:uppercase; padding:5px 10px; border-radius:999px; white-space:nowrap; background:var(--sand,#F2EBDE); color:var(--espresso,#3B332A); }
.mvcoach-status.confirmed{ background:rgba(59,122,75,.13); color:var(--green,#3B7A4B); }
.mvcoach-status.pending{ background:rgba(200,145,31,.16); color:var(--amber,#C8911F); }
.mvcoach-status.cancelled{ background:rgba(192,73,47,.13); color:var(--red,#C0492F); }
.mvcoach-status.done{ background:var(--sand,#F2EBDE); color:var(--taupe,#8A7E68); }
.mvcoach-pay{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:8.5px; letter-spacing:.1em; text-transform:uppercase; padding:3px 8px; border-radius:999px; background:rgba(200,145,31,.16); color:var(--amber,#C8911F); }
.mvcoach-stats{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--rule,#E7DFD1); }
.mvcoach-stat{ padding:11px 8px; text-align:center; border-right:1px solid var(--rule,#E7DFD1); }
.mvcoach-stat:last-child{ border-right:none; }
.mvcoach-stat .k{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:8px; letter-spacing:.14em; color:var(--taupe,#8A7E68); text-transform:uppercase; }
.mvcoach-stat .v{ font-family:var(--serif,'Cormorant Garamond',Georgia,serif); font-size:16px; margin-top:3px; color:var(--ink,#241F18); }
.mvcoach-stat .v small{ font-size:11px; color:var(--taupe,#8A7E68); }
.mvcoach-locblk{ padding:13px 15px; border-top:1px solid var(--rule,#E7DFD1); }
.mvcoach-locblk .addr{ display:flex; align-items:center; gap:7px; font-size:13px; color:var(--espresso,#3B332A); margin-bottom:9px; }
.mvcoach-locblk .addr svg{ color:var(--gold,#B8956A); flex:none; width:13px; height:15px; }
.mvcoach-locblk .addr span{ flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mvcoach-route{ color:var(--gold,#B8956A); text-decoration:underline; text-underline-offset:2px; font-size:12px; white-space:nowrap; cursor:pointer; flex:none; }
.mvcoach-minimap{ height:96px; border-radius:11px; border:1px solid var(--rule,#E7DFD1); overflow:hidden; position:relative; background:repeating-linear-gradient(135deg,#EDE6D6 0 11px,#E6DDC9 11px 22px); }
.mvcoach-minimap .tag{ position:absolute; left:8px; bottom:7px; font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:8px; letter-spacing:.14em; text-transform:uppercase; color:var(--taupe,#8A7E68); background:rgba(251,247,239,.82); padding:2px 6px; border-radius:5px; }
.mvcoach-cta{ display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:13px 15px; border-top:1px solid var(--rule,#E7DFD1); }
.mvcoach-btn{ text-align:center; padding:11px; border-radius:11px; font-size:13px; font-weight:600; cursor:pointer; border:1px solid var(--ink,#241F18); font-family:var(--sans,'DM Sans',system-ui,sans-serif); background:transparent; color:var(--ink,#241F18); }
.mvcoach-btn.ink{ background:var(--ink,#241F18); color:var(--paper,#FBF7EF); }
.mvcoach-btn.gold{ background:var(--gold,#B8956A); color:#fff; border-color:var(--gold,#B8956A); }
.mvcoach-btn.red{ background:transparent; color:var(--red,#C0492F); border-color:var(--red,#C0492F); }
.mvcoach-cta-note{ display:flex; align-items:center; gap:6px; justify-content:center; font-size:11px; line-height:1.4; color:var(--amber,#C8911F); text-align:center; padding:9px 15px 0; }
.mvcoach-cta-note svg{ width:13px; height:13px; flex:none; }
.mvcoach-ics{ display:flex; align-items:center; justify-content:center; gap:6px; font-size:11.5px; color:var(--gold,#B8956A); text-decoration:none; font-weight:600; padding:11px 15px; border-top:1px solid var(--rule,#E7DFD1); cursor:pointer; }
.mvcoach-ics svg{ width:14px; height:14px; }
.mvcoach-cancel{ text-align:center; color:var(--red,#C0492F); font-size:11.5px; padding:11px 0; text-decoration:underline; text-underline-offset:2px; cursor:pointer; border-top:1px solid var(--rule,#E7DFD1); }

/* listas */
.mvcoach-list{ margin-top:4px; }
.mvcoach-li{ display:flex; align-items:center; gap:9px; padding:10px 2px; border-top:1px solid var(--rule,#E7DFD1); text-decoration:none; color:inherit; cursor:pointer; }
.mvcoach-li:first-child{ border-top:none; }
.mvcoach-dot{ width:7px; height:7px; border-radius:50%; flex:none; background:var(--taupe,#8A7E68); }
.mvcoach-dot.confirmed{ background:var(--green,#3B7A4B); }
.mvcoach-dot.pending{ background:var(--amber,#C8911F); }
.mvcoach-dot.done{ background:var(--taupe,#8A7E68); }
.mvcoach-dot.cancelled{ background:var(--red,#C0492F); }
.mvcoach-li__nm{ flex:1; min-width:0; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--ink,#241F18); }
.mvcoach-li__meta{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:9.5px; letter-spacing:.08em; color:var(--taupe,#8A7E68); text-transform:uppercase; flex:none; }
.mvcoach-again{ flex:none; color:var(--gold,#B8956A); font-size:10px; font-weight:700; font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); letter-spacing:.04em; }

/* estado vacío */
.mvcoach-empty{ text-align:center; padding:22px 14px; border:1px dashed var(--rule,#E7DFD1); border-radius:14px; margin-top:12px; }
.mvcoach-empty .ic{ width:42px; height:42px; border-radius:50%; background:var(--sand,#F2EBDE); display:flex; align-items:center; justify-content:center; margin:0 auto 8px; color:var(--taupe,#8A7E68); }
.mvcoach-empty .ic svg{ width:20px; height:20px; }
.mvcoach-empty b{ display:block; font-family:var(--serif,'Cormorant Garamond',Georgia,serif); font-style:italic; font-size:17px; color:var(--ink,#241F18); }
.mvcoach-empty span{ font-size:12px; color:var(--taupe,#8A7E68); }

/* mini-cal mensual */
.mvcoach-cal{ background:var(--paper,#FBF7EF); border:1px solid var(--rule,#E7DFD1); border-radius:16px; padding:14px 14px 12px; }
.mvcoach-cal__title{ font-family:var(--serif,'Cormorant Garamond',Georgia,serif); font-size:19px; text-transform:capitalize; margin-bottom:10px; color:var(--ink,#241F18); }
.mvcoach-cal__wk{ display:grid; grid-template-columns:repeat(7,1fr); gap:3px; text-align:center; font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:9px; letter-spacing:.06em; color:var(--taupe,#8A7E68); margin-bottom:4px; }
.mvcoach-cal__grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
.mvcoach-cell{ min-height:54px; border:none; background:transparent; border-radius:9px; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:1px; padding:4px 2px; font-family:var(--sans,'DM Sans',system-ui,sans-serif); font-size:12px; color:var(--ink,#241F18); cursor:default; line-height:1.05; }
.mvcoach-cell.empty{ visibility:hidden; }
.mvcoach-cell.has{ cursor:pointer; background:var(--sand,#F2EBDE); }
.mvcoach-cell.muted{ color:var(--taupe,#8A7E68); }
.mvcoach-cell.today{ background:var(--ink,#241F18); color:var(--paper,#FBF7EF); font-weight:700; }
.mvcoach-cell .num{ font-size:12px; }
.mvcoach-cell .ev{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:8px; line-height:1.1; text-align:center; margin-top:2px; width:100%; overflow:hidden; }
.mvcoach-cell .ev .h{ display:block; font-weight:600; font-size:8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.mvcoach-cell .ev .sp{ display:block; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.mvcoach-cell.confirmed .ev{ color:var(--green,#3B7A4B); }
.mvcoach-cell.pending .ev{ color:var(--amber,#C8911F); }
.mvcoach-cell.done .ev{ color:var(--taupe,#8A7E68); }
.mvcoach-cell.today .ev{ color:#E7DECF; }
/* [v7.36] FIX dark: en oscuro la celda 'today' tiene fondo crema (--ink invertido),
   y el .ev fijo #E7DECF quedaba crema-sobre-crema = invisible. Texto oscuro en dark. */
html[data-theme="dark"] .mvcoach-cell.today .ev{ color:#2B2117; }
.mvcoach-cal__legend{ display:flex; flex-wrap:wrap; gap:11px; margin-top:11px; font-size:10.5px; color:var(--taupe,#8A7E68); }
.mvcoach-cal__legend span{ display:inline-flex; align-items:center; gap:5px; }
.mvcoach-cal__legend i{ width:7px; height:7px; border-radius:50%; display:inline-block; }
.mvcoach-cal__legend i.c-confirmed{ background:var(--green,#3B7A4B); }
.mvcoach-cal__legend i.c-pending{ background:var(--amber,#C8911F); }
.mvcoach-cal__legend i.c-done{ background:var(--taupe,#8A7E68); }
.mvcoach-cal__hint{ font-size:11px; color:var(--taupe,#8A7E68); text-align:center; margin-top:10px; font-style:italic; font-family:var(--serif,'Cormorant Garamond',Georgia,serif); }

/* Disponibilidad (READ-ONLY en Pieza 3) */
.mvcoach-avail-sync{ font-size:11.5px; line-height:1.5; color:var(--espresso,#3B332A); background:var(--sand,#F2EBDE); border:1px solid var(--rule,#E7DFD1); border-radius:11px; padding:10px 12px; margin:2px 0 12px; display:flex; gap:8px; }
.mvcoach-avail-sync svg{ flex:none; color:var(--gold,#B8956A); width:16px; height:16px; margin-top:1px; }
.mvcoach-av-week{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; padding:2px; }
.mvcoach-av-day{ border:1px solid var(--rule,#E7DFD1); border-radius:10px; background:var(--paper,#FBF7EF); padding:6px 1px; display:flex; flex-direction:column; align-items:center; gap:2px; }
.mvcoach-av-day .d{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:8px; letter-spacing:.08em; color:var(--taupe,#8A7E68); text-transform:uppercase; }
.mvcoach-av-day .n{ font-size:13.5px; font-family:var(--serif,'Cormorant Garamond',Georgia,serif); color:var(--ink,#241F18); }
.mvcoach-av-day.on{ background:rgba(59,122,75,.13); border-color:var(--green,#3B7A4B); }
.mvcoach-av-day.on .n{ color:var(--green,#3B7A4B); }
.mvcoach-av-day.off{ opacity:.45; }
/* [PIEZA5] Disponibilidad editable */
.mvcoach-av-day{ cursor:pointer; font-family:inherit; }
.mvcoach-av-day.sel{ box-shadow:inset 0 0 0 2px var(--ink,#241F18); border-color:var(--ink,#241F18); opacity:1; }
.mvcoach-av-recurring{ font-size:11px; line-height:1.45; color:var(--espresso,#3B332A); background:rgba(59,122,75,.08); border:1px solid rgba(59,122,75,.25); border-radius:10px; padding:8px 11px; margin:10px 0 2px; }
.mvcoach-av-slots{ display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.mvcoach-slot{ border:1px solid var(--rule,#E7DFD1); border-radius:999px; background:var(--paper,#FBF7EF); padding:8px 4px; font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:11px; cursor:pointer; color:var(--espresso,#3B332A); }
.mvcoach-slot.on{ background:var(--ink,#241F18); color:var(--paper,#FBF7EF); border-color:var(--ink,#241F18); }
.mvcoach-av-save{ width:100%; margin-top:14px; padding:12px; border:none; border-radius:12px; background:var(--green,#3B7A4B); color:#fff; font-weight:700; font-size:13px; cursor:pointer; font-family:inherit; }
.mvcoach-av-save:disabled{ opacity:.7; cursor:default; }
.mvcoach-av-foot{ font-family:var(--serif,'Cormorant Garamond',Georgia,serif); font-style:italic; font-size:11px; color:var(--taupe,#8A7E68); text-align:center; margin-top:9px; }
/* [PIEZA5 · BUG180/181] Perfil in-sheet */
.mvcoach-pf-card{ background:var(--paper,#FBF7EF); border:1px solid var(--rule,#E7DFD1); border-radius:16px; padding:15px 16px; margin-bottom:12px; }
.mvcoach-pf-h{ font-family:var(--serif,'Cormorant Garamond',Georgia,serif); font-size:17px; color:var(--ink,#241F18); display:flex; align-items:center; gap:7px; margin-bottom:4px; }
.mvcoach-pf-h .cnt{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:10px; color:var(--taupe,#8A7E68); font-weight:400; }
.mvcoach-pf-desc{ margin:0 0 10px; font-size:11.5px; color:var(--taupe,#8A7E68); line-height:1.4; }
.mvcoach-pf-hint{ margin:8px 0 0; font-size:11px; color:var(--taupe,#8A7E68); line-height:1.4; }
.mvcoach-pf-gallery{ display:flex; gap:8px; flex-wrap:wrap; }
.mvcoach-pf-slot{ width:56px; height:56px; border-radius:11px; flex:none; padding:0; }
.mvcoach-pf-slot.add{ border:1.5px dashed var(--rule,#E7DFD1); background:var(--sand,#F2EBDE); color:var(--taupe,#8A7E68); font-size:22px; cursor:pointer; display:flex; align-items:center; justify-content:center; font-family:inherit; }
.mvcoach-pf-slot.filled{ background:var(--sand-2,#E8DFCC) center/cover no-repeat; border:1px solid var(--rule,#E7DFD1); position:relative; }
.mvcoach-pf-slot .rm{ position:absolute; top:-6px; right:-6px; width:18px; height:18px; border-radius:50%; background:var(--ink,#241F18); color:#fff; border:2px solid var(--paper,#FBF7EF); font-size:11px; line-height:1; cursor:pointer; padding:0; }
.mvcoach-pf-input{ width:100%; border:1px solid var(--rule,#E7DFD1); border-radius:10px; padding:10px 12px; font-family:inherit; font-size:13px; background:var(--sand-50,#EFEAE0); color:var(--ink,#241F18); box-sizing:border-box; }
.mvcoach-pf-counts{ display:flex; justify-content:space-between; font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:9px; color:var(--taupe,#8A7E68); margin-top:6px; }
.mvcoach-pf-actions{ display:flex; gap:7px; margin-top:10px; flex-wrap:wrap; }
.mvcoach-pf-btn{ flex:1; min-width:88px; text-align:center; padding:11px; border-radius:11px; font-size:13px; font-weight:600; cursor:pointer; border:1px solid var(--ink,#241F18); font-family:inherit; background:transparent; color:var(--ink,#241F18); }
.mvcoach-pf-btn.ink{ background:var(--ink,#241F18); color:var(--paper,#FBF7EF); }
.mvcoach-pf-btn.danger{ color:var(--red,#C0492F); border-color:var(--red,#C0492F); }
.mvcoach-mode{ display:flex; align-items:center; gap:11px; padding:11px 12px; border:1px solid var(--rule,#E7DFD1); border-radius:11px; margin-top:8px; cursor:pointer; width:100%; background:var(--paper,#FBF7EF); font-family:inherit; text-align:left; }
.mvcoach-mode.on{ border-color:var(--green,#3B7A4B); background:rgba(59,122,75,.08); }
.mvcoach-mode .dot{ width:11px; height:11px; border-radius:50%; background:var(--taupe,#8A7E68); flex:none; }
.mvcoach-mode.on .dot{ background:var(--green,#3B7A4B); }
.mvcoach-mode b{ font-size:13px; color:var(--ink,#241F18); }
.mvcoach-mode .ms{ font-size:11px; color:var(--taupe,#8A7E68); display:block; margin-top:1px; }
.mvcoach-pf-cta{ display:block; text-align:center; padding:13px; border-radius:12px; background:var(--ink,#241F18); color:var(--paper,#FBF7EF); font-weight:600; font-size:13.5px; cursor:pointer; text-decoration:none; margin-top:4px; }
/* [v6.19 / BUG 241] CTA secundario (Cobros) — más ligero que el ink principal */
.mvcoach-pf-cta.sub{ background:transparent; color:var(--ink,#241F18); border:1px solid var(--rule,#E7DFD1); margin-top:10px; font-size:12.5px; padding:11px; }
.mvcoach-pf-cta.sub:hover{ background:var(--sand-50,#EFEAE0); }
/* [v6.19] Earn row — "Este mes 1.250€" */
.mvcoach-pf-earn-row{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; padding:10px 0 4px; border-top:1px solid var(--rule,#E7DFD1); margin-top:8px; }
.mvcoach-pf-earn-label{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:10px; letter-spacing:.14em; color:var(--taupe,#8A7E68); text-transform:uppercase; }
.mvcoach-pf-earn-amount{ font-family:var(--serif,'Cormorant Garamond',Georgia,serif); font-size:26px; font-weight:500; color:var(--ink,#241F18); }
/* [v6.19→v6.20] Price row — input texto libre (coach pone su moneda) + "/h" fuera */
.mvcoach-pf-price-row{ display:flex; align-items:baseline; gap:8px; margin-top:8px; }
.mvcoach-pf-price-row .mvcoach-pf-input{ flex:1; font-size:16px; font-weight:600; text-align:right; padding:12px 14px; }
.mvcoach-pf-price-per{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:11px; letter-spacing:.18em; color:var(--taupe,#8A7E68); text-transform:uppercase; flex-shrink:0; padding-right:4px; }
/* [v6.20] Grey-out card mientras guarda — no se puede tocar nada */
.mvcoach-pf-card.is-saving{ position:relative; pointer-events:none; opacity:.55; transition:opacity .15s ease; }
.mvcoach-pf-card.is-saving::after{ content:''; position:absolute; inset:0; border-radius:16px; background:rgba(36,31,24,.04); cursor:not-allowed; }
.mvcoach-pf-card.is-saving .mvcoach-pf-input{ background:var(--sand-100,#E8DFCC); color:var(--taupe,#8A7E68); }
.mvcoach-pf-card.is-saving .mvcoach-pf-btn{ opacity:.7; }
.mvcoach-pf-toast{ position:absolute; left:50%; bottom:18px; transform:translateX(-50%) translateY(10px); background:var(--ink,#241F18); color:var(--paper,#FBF7EF); font-size:12px; padding:9px 15px; border-radius:999px; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; z-index:5; white-space:nowrap; max-width:90%; }
.mvcoach-pf-toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
.mvcoach-av-manage{ width:100%; margin-top:14px; padding:12px; border:1px solid var(--ink,#241F18); border-radius:12px; background:var(--ink,#241F18); color:var(--paper,#FBF7EF); font-weight:600; font-size:13px; cursor:pointer; font-family:var(--sans,'DM Sans',system-ui,sans-serif); }

/* [v6.22 / Mockup 1] Mensajes INLINE — vista propia en el sheet coach */
.mvcoach-msg-head{ display:flex; align-items:center; justify-content:space-between; padding:6px 4px 8px; }
.mvcoach-msg-head h3{ font-family:var(--serif,'Cormorant Garamond',Georgia,serif); font-style:italic; font-weight:500; font-size:22px; margin:0; color:#241F18; }
.mvcoach-msg-head .count{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#8A7E68; }
.mvcoach-msg-filters{ display:flex; gap:5px; padding:4px 0 14px; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.mvcoach-msg-filters::-webkit-scrollbar{ display:none; }
.mvcoach-msg-chip{ display:inline-flex; align-items:center; gap:4px; padding:5px 10px; border-radius:999px; background:transparent !important; border:1px solid #E7DFD1; color:#3B332A !important; font-family:inherit; font-size:11px; font-weight:600; cursor:pointer; white-space:nowrap; flex-shrink:0; }
.mvcoach-msg-chip:hover{ background:#EFEAE0 !important; }
.mvcoach-msg-chip.on{ background:#241F18 !important; color:#FBF7EF !important; border-color:#241F18; }
.mvcoach-msg-chip .n{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:9px; opacity:.6; margin-left:2px; }
.mvcoach-msg-chip.danger{ color:#C0492F !important; border-color:rgba(192,73,47,.25); }
.mvcoach-msg-chip.danger:hover{ background:#FFF1EA !important; }
.mvcoach-msg-chip.danger.on{ background:#C0492F !important; color:#FBF7EF !important; border-color:#C0492F; }

.mvcoach-msg-list{ display:flex; flex-direction:column; gap:10px; }
.mvcoach-msg-card{ background:#FBF7EF !important; border:1px solid #E7DFD1; border-radius:14px; padding:0; overflow:hidden; }
.mvcoach-msg-row{ display:flex; align-items:center; gap:12px; padding:13px 12px 10px; position:relative; }
.mvcoach-msg-ava{ width:44px; height:44px; border-radius:50%; flex:none; background:#E8DFCC center/cover; border:1px solid #E7DFD1; position:relative; }
.mvcoach-msg-ava::after{ content:''; position:absolute; right:-1px; bottom:-1px; width:11px; height:11px; border-radius:50%; background:#4CAF50; border:2px solid #FBF7EF; }
.mvcoach-msg-body{ flex:1; min-width:0; }
.mvcoach-msg-name{ font-family:var(--sans,'DM Sans',system-ui,sans-serif); font-size:14px; font-weight:600; color:#241F18; }
.mvcoach-msg-preview{ font-size:12.5px; color:#8A7E68; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mvcoach-msg-tag{ display:inline-block; font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:8.5px; letter-spacing:.14em; text-transform:uppercase; padding:2px 7px; border-radius:6px; margin-top:5px; }
.mvcoach-msg-tag.completed{ background:#E5E0F2; color:#5B4D8F; }
.mvcoach-msg-tag.confirmed{ background:rgba(75,93,74,.16); color:#4B5D4A; }
.mvcoach-msg-tag.noshow{ background:#E8DFCC; color:#3B332A; }
.mvcoach-msg-meta{ flex:none; display:flex; flex-direction:column; align-items:flex-end; gap:6px; position:relative; }
.mvcoach-msg-time{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:10.5px; color:#8A7E68; }
.mvcoach-msg-badge{ display:inline-block; min-width:20px; height:20px; padding:0 6px; line-height:20px; text-align:center; border-radius:99px; background:#241F18 !important; color:#FBF7EF !important; font-family:var(--sans,'DM Sans',system-ui,sans-serif); font-size:10.5px; font-weight:600; }
.mvcoach-msg-3dot{ background:transparent; border:none; padding:4px 8px; cursor:pointer; color:#8A7E68; font-size:18px; line-height:1; }
.mvcoach-msg-3dot:hover{ color:#241F18; }

.mvcoach-msg-popover{ position:absolute; right:8px; top:36px; background:#FBF7EF !important; border:1px solid #E7DFD1; border-radius:11px; box-shadow:0 12px 30px -10px rgba(0,0,0,.4); padding:6px; min-width:200px; z-index:30; display:flex; flex-direction:column; gap:2px; }
.mvcoach-msg-popover button{ display:flex; align-items:center; gap:9px; padding:9px 11px; border:none; background:transparent; cursor:pointer; font-family:inherit; font-size:12.5px; font-weight:500; color:#241F18; text-align:left; border-radius:7px; }
.mvcoach-msg-popover button:hover{ background:#EFEAE0; }
.mvcoach-msg-popover button.danger{ color:#C0492F; }

.mvcoach-msg-notes{ padding:0 12px 10px; }
.mvcoach-msg-notes-label{ display:flex; align-items:center; gap:5px; font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:9px; letter-spacing:.16em; color:#8A7E68; text-transform:uppercase; margin-bottom:5px; }
.mvcoach-msg-notes-input{ width:100%; min-height:38px; max-height:90px; resize:vertical; padding:8px 10px; border:1px solid #E7DFD1; border-radius:9px; background:#EFEAE0 !important; color:#241F18 !important; font-family:inherit; font-size:12.5px; line-height:1.4; outline:none; box-sizing:border-box; }
.mvcoach-msg-notes-input:focus{ border-color:#B8956A; background:#FBF7EF !important; }

.mvcoach-msg-actions{ padding:2px 12px 12px; display:flex; gap:8px; }
.mvcoach-msg-action{ flex:1; padding:8px 10px; border-radius:8px; border:1px solid #E7DFD1; background:transparent !important; cursor:pointer; font-family:inherit; font-size:11.5px; font-weight:600; color:#241F18 !important; display:inline-flex; align-items:center; justify-content:center; gap:4px; }
.mvcoach-msg-action:hover{ background:#EFEAE0 !important; }
.mvcoach-msg-action.primary{ background:#241F18 !important; color:#FBF7EF !important; border-color:#241F18; }

/* ─── [v7.07] DARK MODE bandeja de mensajes (alumno + coach comparten mvcoach-msg-*).
   Estaba TODO hardcodeado a claro con !important y sin override → salía crema en
   oscuro. Espejo oscuro con !important para ganarle a los !important de arriba. ─── */
html[data-theme="dark"] .mvcoach-msg-head h3{ color:#EDE6D8 !important; }
html[data-theme="dark"] .mvcoach-msg-head .count{ color:#9A8C78 !important; }
html[data-theme="dark"] .mvcoach-msg-chip{ border-color:#3A332A !important; color:#C9C0A8 !important; }
html[data-theme="dark"] .mvcoach-msg-chip:hover{ background:#2C2820 !important; }
html[data-theme="dark"] .mvcoach-msg-chip.on{ background:#EDE6D8 !important; color:#241F18 !important; border-color:#EDE6D8 !important; }
html[data-theme="dark"] .mvcoach-msg-chip.danger{ color:#E0857A !important; border-color:rgba(224,133,122,.30) !important; }
html[data-theme="dark"] .mvcoach-msg-chip.danger:hover{ background:#3A2A26 !important; }
html[data-theme="dark"] .mvcoach-msg-chip.danger.on{ background:#C0564A !important; color:#FBF7EF !important; border-color:#C0564A !important; }
html[data-theme="dark"] .mvcoach-msg-card{ background:#2C2820 !important; border-color:#3A332A !important; }
html[data-theme="dark"] .mvcoach-msg-ava{ background:#3A332A center/cover !important; border-color:#3A332A !important; }
html[data-theme="dark"] .mvcoach-msg-ava::after{ border-color:#2C2820 !important; }
html[data-theme="dark"] .mvcoach-msg-name{ color:#EDE6D8 !important; }
html[data-theme="dark"] .mvcoach-msg-preview{ color:#9A8C78 !important; }
html[data-theme="dark"] .mvcoach-msg-tag.completed{ background:rgba(123,107,160,.26) !important; color:#C9BEE8 !important; }
html[data-theme="dark"] .mvcoach-msg-tag.confirmed{ background:rgba(95,160,111,.20) !important; color:#8FB08C !important; }
html[data-theme="dark"] .mvcoach-msg-tag.noshow{ background:#3A332A !important; color:#C9C0A8 !important; }
html[data-theme="dark"] .mvcoach-msg-time{ color:#9A8C78 !important; }
html[data-theme="dark"] .mvcoach-msg-badge{ background:#EDE6D8 !important; color:#241F18 !important; }
html[data-theme="dark"] .mvcoach-msg-3dot{ color:#9A8C78 !important; }
html[data-theme="dark"] .mvcoach-msg-3dot:hover{ color:#EDE6D8 !important; }
html[data-theme="dark"] .mvcoach-msg-popover{ background:#2C2820 !important; border-color:#3A332A !important; }
html[data-theme="dark"] .mvcoach-msg-popover button{ color:#EDE6D8 !important; }
html[data-theme="dark"] .mvcoach-msg-popover button:hover{ background:#3A332A !important; }
html[data-theme="dark"] .mvcoach-msg-popover button.danger{ color:#E0857A !important; }
html[data-theme="dark"] .mvcoach-msg-notes-label{ color:#9A8C78 !important; }
html[data-theme="dark"] .mvcoach-msg-notes-input{ background:#14110D !important; color:#EDE6D8 !important; border-color:#3A332A !important; }
html[data-theme="dark"] .mvcoach-msg-notes-input:focus{ background:#1F1B14 !important; border-color:#B8956A !important; }
html[data-theme="dark"] .mvcoach-msg-action{ background:#2C2820 !important; color:#EDE6D8 !important; border-color:#3A332A !important; }
html[data-theme="dark"] .mvcoach-msg-action:hover{ background:#3A332A !important; }
html[data-theme="dark"] .mvcoach-msg-action.primary{ background:#B8956A !important; color:#1A1815 !important; border-color:#B8956A !important; }

/* ─── [v7.10] Calendario coach → tarjeta-resumen del día (acciones inline) ─── */
.mvcoach-csum-wrap{ margin-top:14px; }
.mvcoach-csum{ background:var(--sand,#F2EBDE); border:1px solid var(--rule,#E7DFD1); border-radius:16px; padding:14px; animation:mvcsumpop .22s ease both; }
@keyframes mvcsumpop{ from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:none} }
.mvcoach-csum__eyebrow{ font-family:var(--mono,'IBM Plex Mono',monospace); font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--taupe,#8A7E68); margin-bottom:9px; display:flex; align-items:center; gap:6px; }
.mvcoach-csum__eyebrow .d{ width:6px; height:6px; border-radius:50%; background:var(--gold,#B8956A); }
.mvcoach-csum__hero{ display:flex; align-items:center; gap:11px; }
.mvcoach-csum__av{ width:46px; height:46px; border-radius:50%; flex:none; background:var(--sand-2,#E8DFCC) center/cover; border:1px solid var(--rule,#E7DFD1); }
.mvcoach-csum__who{ flex:1; min-width:0; }
.mvcoach-csum__who .nm{ font-family:var(--sans,'DM Sans',system-ui,sans-serif); font-size:15px; font-weight:700; color:var(--ink,#241F18); }
.mvcoach-csum__who .meta{ font-size:12px; color:var(--taupe,#8A7E68); margin-top:2px; }
.mvcoach-csum__st{ flex:none; font-family:var(--mono,'IBM Plex Mono',monospace); font-size:8.5px; letter-spacing:.1em; text-transform:uppercase; padding:4px 9px; border-radius:999px; font-weight:600; }
.mvcoach-csum__st.confirmed{ background:rgba(59,122,75,.16); color:var(--green,#3B7A4B); }
.mvcoach-csum__st.pending{ background:rgba(184,149,106,.18); color:#9c7c3e; }
.mvcoach-csum__st.done{ background:rgba(154,148,136,.22); color:var(--taupe,#8A7E68); }
.mvcoach-csum__st.cancelled{ background:rgba(192,73,47,.14); color:var(--red,#C0492F); }
.mvcoach-csum__btns{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:13px; }
.mvcoach-csum__b{ display:inline-flex; align-items:center; justify-content:center; gap:5px; background:var(--paper,#FBF7EF); border:1px solid var(--rule,#E7DFD1); border-radius:11px; padding:11px 8px; font:600 12.5px var(--sans,'DM Sans',system-ui,sans-serif); color:var(--ink,#241F18); cursor:pointer; }
.mvcoach-csum__b:hover{ background:var(--sand-2,#EFEAE0); }
.mvcoach-csum__b.green{ background:var(--green,#3B7A4B); border-color:var(--green,#3B7A4B); color:#fff; }
.mvcoach-csum__b.red{ color:var(--red,#C0492F); border-color:rgba(192,73,47,.3); }
.mvcoach-csum__b.ficha{ grid-column:1 / -1; background:var(--ink,#241F18); border-color:var(--ink,#241F18); color:var(--paper,#FBF7EF); }
.mvcoach-csum__b:disabled{ opacity:.5; cursor:default; }
.mvcoach-cell.sel{ outline:2px solid var(--gold,#B8956A); outline-offset:-1px; border-radius:9px; }

/* ─── [v7.09] Lista de conversaciones estilo WhatsApp (fila compacta, tap abre chat) ─── */
.mvcoach-cvlist{ display:flex; flex-direction:column; }
.mvcoach-cv{ display:flex; align-items:center; gap:13px; padding:12px 6px; border-bottom:1px solid #F0E9DB; cursor:pointer; position:relative; }
.mvcoach-cv:hover{ background:#FCF8F1; }
.mvcoach-cv.unread{ background:#FBF6EC; }
.mvcoach-cv__ava{ width:50px; height:50px; border-radius:50%; flex:none; background:#E8DFCC center/cover; border:1px solid #E7DFD1; }
.mvcoach-cv__mid{ flex:1; min-width:0; }
.mvcoach-cv__top{ display:flex; align-items:center; gap:7px; }
.mvcoach-cv__nm{ font-family:var(--sans,'DM Sans',system-ui,sans-serif); font-size:15px; font-weight:600; color:#241F18; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.mvcoach-cv__tag{ flex:none; font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:8px; letter-spacing:.1em; text-transform:uppercase; padding:2px 6px; border-radius:5px; font-weight:500; }
.mvcoach-cv__tag.confirmed{ background:rgba(75,93,74,.16); color:#4B5D4A; }
.mvcoach-cv__tag.completed{ background:#E5E0F2; color:#5B4D8F; }
.mvcoach-cv__tag.noshow{ background:#E8DFCC; color:#3B332A; }
.mvcoach-cv__pv{ font-size:13px; color:#8A7E68; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mvcoach-cv__pv.b{ color:#241F18; font-weight:500; }
.mvcoach-cv__right{ flex:none; display:flex; flex-direction:column; align-items:flex-end; gap:5px; position:relative; }
.mvcoach-cv__tm{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:10.5px; color:#8A7E68; }
.mvcoach-cv__badge{ min-width:20px; height:20px; padding:0 6px; line-height:20px; text-align:center; border-radius:999px; background:#3B7A4B; color:#fff; font-size:11px; font-weight:700; }
.mvcoach-cv__dot{ background:transparent; border:none; color:#B6AC97; font-size:17px; line-height:1; cursor:pointer; padding:0 3px; }
/* [v7.17] Clase finalizada / cerrada → conversación en gris (apagada) */
.mvcoach-cv.is-closed{ opacity:.6; }
.mvcoach-cv.is-closed .mvcoach-cv__nm{ font-weight:500; }
.mvcoach-cv__dot:hover{ color:#241F18; }
/* dark */
html[data-theme="dark"] .mvcoach-cv{ border-bottom-color:#2A251D; }
html[data-theme="dark"] .mvcoach-cv:hover{ background:#211D16; }
html[data-theme="dark"] .mvcoach-cv.unread{ background:#211D16; }
html[data-theme="dark"] .mvcoach-cv__ava{ background:#3A332A center/cover; border-color:#3A332A; }
html[data-theme="dark"] .mvcoach-cv__nm{ color:#EDE6D8; }
html[data-theme="dark"] .mvcoach-cv__pv{ color:#9A8C78; }
html[data-theme="dark"] .mvcoach-cv__pv.b{ color:#EDE6D8; }
html[data-theme="dark"] .mvcoach-cv__tm{ color:#9A8C78; }
html[data-theme="dark"] .mvcoach-cv__tag.confirmed{ background:rgba(95,160,111,.20); color:#8FB08C; }
html[data-theme="dark"] .mvcoach-cv__tag.completed{ background:rgba(123,107,160,.26); color:#C9BEE8; }
html[data-theme="dark"] .mvcoach-cv__tag.noshow{ background:#3A332A; color:#C9C0A8; }
html[data-theme="dark"] .mvcoach-cv__dot{ color:#8A7E68; }
html[data-theme="dark"] .mvcoach-cv__dot:hover{ color:#EDE6D8; }

/* [BUG210] Bloque "Mi zona" arriba del panel coach (espejo de .mvme-myloc).
   OFF → botón "Configurar mi zona"; ON → mini-mapa ESTÁTICO con pin + halo de zona. */
.mvcoach-myloc{ margin-bottom:16px; }
.mvcoach-myloc__label{ font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:10px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--espresso,#3B332A); margin-bottom:8px; display:flex; align-items:center; gap:8px; }
.mvcoach-myloc__dot{ width:6px; height:6px; border-radius:50%; flex:none; }
.mvcoach-myloc__dot.on{ background:var(--green,#3B7A4B); }
.mvcoach-myloc__dot.off{ background:var(--taupe,#8A7E68); }
.mvcoach-myloc__cta{ width:100%; display:flex; align-items:center; gap:13px; text-align:left; cursor:pointer; border:1.5px dashed var(--gold,#B8956A); background:linear-gradient(180deg,rgba(184,149,106,.08),rgba(184,149,106,.03)); border-radius:15px; padding:14px 15px; color:var(--ink,#241F18); font-family:var(--sans,'DM Sans',system-ui,sans-serif); min-height:44px; }
.mvcoach-myloc__cta:hover{ background:rgba(184,149,106,.12); }
.mvcoach-myloc__ic{ width:40px; height:40px; flex:none; border-radius:50%; background:var(--ink,#241F18); color:var(--paper,#FBF7EF); display:flex; align-items:center; justify-content:center; }
.mvcoach-myloc__tx{ flex:1; min-width:0; }
.mvcoach-myloc__tx b{ display:block; font-size:14.5px; font-weight:700; letter-spacing:-.01em; }
.mvcoach-myloc__tx span{ display:block; font-size:11.5px; color:var(--espresso,#3B332A); margin-top:2px; line-height:1.35; }
.mvcoach-myloc__arrow{ color:var(--gold,#B8956A); flex:none; }
.mvcoach-myloc__map{ position:relative; height:122px; border-radius:15px; overflow:hidden; border:1px solid var(--rule,#E7DFD1); cursor:pointer; background:radial-gradient(140px 100px at 26% 26%, #EFEADD 0%, transparent 70%), radial-gradient(160px 120px at 74% 64%, #E9E2D0 0%, transparent 72%), linear-gradient(160deg,#F2ECDD,#E7DECA); }
.mvcoach-myloc__water{ position:absolute; right:-20px; bottom:-30px; width:150px; height:120px; border-radius:50%; background:radial-gradient(circle at 40% 40%, rgba(122,145,111,.22), rgba(122,145,111,.10)); }
.mvcoach-myloc__streets{ position:absolute; inset:0; }
.mvcoach-myloc__streets path{ fill:none; stroke-linecap:round; }
.mvcoach-myloc__streets .minor{ stroke:rgba(255,255,255,.55); stroke-width:3; }
.mvcoach-myloc__streets .major{ stroke:#fff; opacity:.85; stroke-width:6; }
.mvcoach-myloc__bldg{ position:absolute; background:rgba(155,138,108,.30); border-radius:2px; }
.mvcoach-myloc__zone{ position:absolute; left:50%; top:48%; width:96px; height:96px; transform:translate(-50%,-50%); border-radius:50%; background:rgba(122,145,111,.18); border:1.5px solid var(--olive,#7A916F); }
.mvcoach-myloc__pin{ position:absolute; left:50%; top:48%; transform:translate(-50%,-50%); display:flex; align-items:center; justify-content:center; }
.mvcoach-myloc__ring{ position:absolute; width:58px; height:58px; border-radius:50%; border:2px solid var(--olive,#7A916F); opacity:.5; animation:mvcoachPing 2.4s ease-out infinite; }
.mvcoach-myloc__ring.b{ animation-delay:1.2s; }
@keyframes mvcoachPing{ 0%{ transform:scale(.5); opacity:.7 } 100%{ transform:scale(1.5); opacity:0 } }
.mvcoach-myloc__ava{ width:38px; height:38px; border-radius:50%; border:2.5px solid var(--paper,#FBF7EF); background:radial-gradient(circle at 40% 34%, #BBA98A, #87764F) center/cover; box-shadow:0 3px 10px rgba(40,33,24,.3); position:relative; z-index:1; }
.mvcoach-myloc__chip{ position:absolute; left:10px; top:10px; font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace); font-size:9px; letter-spacing:.1em; text-transform:uppercase; background:rgba(251,247,239,.92); border:1px solid var(--rule,#E7DFD1); border-radius:999px; padding:4px 9px; color:var(--espresso,#3B332A); }
.mvcoach-myloc__hide{ position:absolute; right:10px; bottom:10px; font-family:var(--sans,'DM Sans',system-ui,sans-serif); font-size:11px; font-weight:600; background:rgba(251,247,239,.94); border:1px solid var(--rule,#E7DFD1); border-radius:999px; padding:7px 11px; color:var(--red,#C0492F); cursor:pointer; min-height:32px; }

/* [v6.2] Link "Ver en mapa" en header sheet — closeSheet + flyTo zona */
.mvcoach-mapview{
  display:inline-block;margin-top:6px;font-family:var(--sans,'DM Sans',system-ui,sans-serif);
  font-size:11.5px;font-weight:600;color:var(--accent-2,#4B5D4A);
  text-decoration:none;letter-spacing:.01em;
  padding:3px 0;
}
.mvcoach-mapview:hover{color:var(--ink,#241F18);text-decoration:underline}
/* [v7.32] Switch de modo (cuenta dual coach↔alumno) en el header del sheet.
   [v7.36] display:block + width:max-content → cae DEBAJO de "Ver perfil en el mapa"
   (su propia línea) manteniendo la forma de píldora (no se estira). */
.mvcoach-modeswitch,.mvme-modeswitch{
  display:block;width:max-content;max-width:100%;margin-top:7px;font-family:var(--sans,'DM Sans',system-ui,sans-serif);
  font-size:11.5px;font-weight:700;color:var(--gold,#B8956A);text-decoration:none;letter-spacing:.01em;
  padding:4px 10px;border:1px solid var(--gold,#B8956A);border-radius:999px;
}
.mvcoach-modeswitch:hover,.mvme-modeswitch:hover{background:var(--gold,#B8956A);color:var(--paper,#FBF7EF)}

/* [v6.5] Deporte/categoría del coach en header sheet */
.mvcoach-sheet__sport{
  font-family:var(--mono,'IBM Plex Mono',ui-monospace,monospace);
  font-size:10px;letter-spacing:.22em;
  color:var(--accent-2,#4B5D4A);text-transform:uppercase;font-weight:600;
  margin:3px 0 2px;
}
