/* =============================================================================
   TREBEDE · FACELIFT DEL CALENDARIO   ·   trebede-facelift-calendario.css
   -----------------------------------------------------------------------------
   Capa de modernización que se ENCHUFA sobre el HTML que ya emite el backend.
   NO toca PHP: usa los selectores reales de lib_presentacion.php (calen_*).
   Cargar DESPUÉS de trebede122.css y trebede-facelift.css.

   Cubre las 4 vistas con el MISMO marcado de producción:
     · Semana / Día  → table > .cal-semana-dia > .calendariosemanahora + .calendariosemanahoratitulo
     · Mes / 3 sem.  → table.calendario > .cal-cell > .calendariomesdia > .calendariomesencabezadodia
     · Eventos       → p.calendar-blue-row.fXXXX  (conserva su color de etiquetas-colores.css)
     · Botones       → .bottom-nav a  (Anterior/Actual/Siguiente)  y  .botonespeque a (selector de vista)
     · Nº de semana  → .tb-weeknum (lo inyecta trebede-calendario.js; aquí solo su estilo)

   Tokens usados (de colors_and_type.css): --brand, --brand-strong, --gray-*, --fg-*,
   --line, --radius-*, sombras. Re-tematiza solo con --brand (marca blanca incluida).
   ============================================================================= */

:root{
  --cal-line:        var(--gray-200, #e5e7eb);
  --cal-line-soft:   var(--gray-150, #eff3f6);
  --cal-head-bg:     var(--gray-100, #f1f3f5);
  --cal-today-tint:  color-mix(in srgb, var(--brand) 7%, #fff);
  --cal-today-edge:  color-mix(in srgb, var(--brand) 35%, #fff);
  --cal-slot-min:    34px;   /* alto mínimo de franja media hora (semana) */
  --cal-cell-min:    116px;  /* alto mínimo de celda de día (mes) */
  /* Alturas mínimas uniformes por nº de elementos (7/6/2026). Cada elemento
     (p.calendar-*-row) ocupa ~25px (12px/1.4 + padding 2+2); la cabecera del
     día ~28px con su aire. Así todas las filas-semana quedan a la misma altura
     en vez de saltar según el día más cargado. */
  --cal-elem-h:      25px;
  --cal-dayhead-h:   34px;
  --cal-3sem-min:    calc(var(--cal-dayhead-h) + 8 * var(--cal-elem-h));  /* 8 elementos = 228px */
  --cal-mes-min:     calc(var(--cal-dayhead-h) + 6 * var(--cal-elem-h));  /* 6 elementos = 178px */
  --cal-radius:      10px;
  --cal-radius-sm:   7px;
}

/* ─────────────────────────────  ENVOLTORIO  ───────────────────────────── */
table.calendario,
table:has(> tbody > tr > td .calendariosemanahora){
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border-left:0;                      /* anula la barra de acento de .table general */
  background:#fff;
  border:1px solid var(--cal-line);
  border-radius:var(--cal-radius);
  overflow:hidden;
  table-layout:fixed;
}

/* Cabecera de días (Lunes, Martes…) */
.cal-celda1{
  background:var(--cal-head-bg);
  color:var(--fg-3, #697885);
  font-weight:600;
  font-size:13px;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-align:center;
  padding:11px 8px;
  border-bottom:1px solid var(--cal-line);
}

/* ════════════════════════  VISTA SEMANA / DÍA  ════════════════════════ */
table:has(.calendariosemanahora) td.valigntop{ vertical-align:top; border-left:1px solid var(--cal-line-soft); }
table:has(.calendariosemanahora) td.valigntop:first-child{ border-left:0; }

.cal-semana-dia{ padding:0; }

/* Fecha de cada día */
.calendariosemanaencabezadodia,
.calendariosemanaencabezadodiahoy{
  text-align:center;
  font-weight:600;
  font-size:13px;
  padding:8px 4px;
  position:sticky; top:0; z-index:2;
  background:#fff;
  border-bottom:1px solid var(--cal-line);
}
.calendariosemanaencabezadodia{ color:var(--fg-2, #585858); }
/* HOY: píldora de marca */
.calendariosemanaencabezadodiahoy{
  color:#fff;
  background:var(--brand);
}

/* Franja de media hora */
.calendariosemanahora{
  position:relative;
  min-height:var(--cal-slot-min);
  border-top:1px solid var(--cal-line-soft);
  padding:0;
  transition:background .12s ease;
}
/* línea más marcada al cambiar de hora en punto (id "10:00---…") */
.calendariosemanahora[id*=":00---"]{ border-top-color:var(--cal-line); }

/* Etiqueta de hora: pequeña, discreta, arriba-izquierda */
a.calendariosemanahoratitulo{
  display:block;
  font-size:11px;
  line-height:1.3;
  color:var(--fg-4, #8a97a1);
  padding:3px 0 3px 8px;
  text-decoration:none;
  font-variant-numeric:tabular-nums;
}
/* Hueco libre: al pasar el ratón insinúa “crear visita” */
.calendariosemanahora:hover{ background:var(--cal-today-tint); }
a.calendariosemanahoratitulo:hover{ color:var(--brand-strong); }
a.calendariosemanahoratitulo::after{
  content:"＋";
  float:right;
  margin-right:8px;
  color:var(--brand);
  opacity:0;
  font-weight:700;
  transition:opacity .12s ease;
}
.calendariosemanahora:hover a.calendariosemanahoratitulo::after{ opacity:.9; }

/* Bloque "Fuera de horario" */
.cal-semana-dia-hora{
  font-size:11px;
  color:var(--fg-4, #8a97a1);
  padding:8px;
  background:var(--cal-line-soft);
  border-top:1px solid var(--cal-line);
}

/* ════════════════════════  VISTA MES / 3 SEMANAS  ════════════════════════ */
/* .cal-cell también existe en la vista día → acotamos a la tabla de mes */
table.calendario td.cal-cell{
  vertical-align:top;
  min-height:var(--cal-cell-min);
  height:var(--cal-cell-min);
  border-top:1px solid var(--cal-line);
  border-left:1px solid var(--cal-line-soft);
  transition:background .12s ease;
  position:relative;
}
table.calendario td.cal-cell:first-child{ border-left:0; }
table.calendario td.cal-cell:hover{ background:var(--cal-today-tint); }

.calendariomesdia,
.calendario3semanasdia{
  padding:0 0 5px;
  min-height:var(--cal-cell-min);
}
/* ── Altura mínima uniforme por vista (7/6/2026) ──────────────────────────
   Antes la altura de cada fila-semana la fijaba el día con más elementos, así
   que las filas saltaban. Ahora todas las celdas reservan, como MÍNIMO, el alto
   de un día con 8 elementos (3 semanas) / 6 elementos (mes); los días con menos
   se rellenan hasta esa altura → rejilla regular. Los días con MÁS siguen
   creciendo. Acotado por :has() a cada vista; sin tocar PHP. */
table.calendario td.cal-cell:has(.calendario3semanasdia){
  height:auto; min-height:var(--cal-3sem-min);
}
.calendario3semanasdia{ min-height:var(--cal-3sem-min); }

table.calendario td.cal-cell:has(.calendariomesdia){
  height:auto; min-height:var(--cal-mes-min);
}
.calendariomesdia{ min-height:var(--cal-mes-min); }
/* Día de otro mes: atenuado */
.calendariomesdia.fgris01{
  background:repeating-linear-gradient(180deg,#fafbfc,#fafbfc);
  color:var(--fg-4,#8a97a1);
  opacity:.7;
}

/* Número de día — bloque a la derecha, plano. Anulamos el padding del CSS
   antiguo (.calendariomesencabezadodia{padding:2px/5px 15px}) que lo deformaba. */
.calendariomesencabezadodia,
.calendariomesencabezadodiahoy{
  display:block;
  padding:3px 8px 0 !important;
  margin:0 0 4px;
  font-size:13px;
  font-weight:600;
  line-height:1.5;
  text-align:right;
  border-radius:0;
  color:var(--fg-3,#697885);
}
.calendariomesencabezadodia a,
.calendariomesencabezadodia{ text-decoration:none; }
/* HOY: cabecera RELLENA a TODO el ancho de la celda — mismo tratamiento que la
   cabecera de la vista de semana (.calendariosemanaencabezadodiahoy), para que
   el día actual resalte igual. Barra plana, sin formas redondas. */
.calendariomesencabezadodiahoy{
  padding:5px 9px !important;
  margin:0 0 6px !important;
  background:var(--brand);
  color:#fff;
  font-weight:700;
}
.calendariomesencabezadodiahoy b,
.calendariomesencabezadodiahoy .negro{ color:#fff!important; }

/* HOY a nivel de CELDA — que el día destaque como en la vista semana:
   tinte de marca + franja sólida superior a todo el ancho de la celda.
   :has() cubre mes (.calendariomesdia) y 3 semanas (.calendario3semanasdia). */
table.calendario td.cal-cell:has(.calendariomesencabezadodiahoy){
  background: color-mix(in srgb, var(--brand) 9%, #fff);
  box-shadow: inset 0 4px 0 0 var(--brand);
}
table.calendario td.cal-cell:has(.calendariomesencabezadodiahoy):hover{
  background: color-mix(in srgb, var(--brand) 14%, #fff);
}

/* La cabecera del día (número) va alineada a la derecha — mes Y 3 semanas */
.calendariomesdia > a:first-child,
.calendario3semanasdia > a:first-child{ display:block; text-align:right; }

/* ════════════════════════  EVENTOS / VISITAS  ════════════════════════ */
/* p.calendar-blue-row.fXXXX — conserva el color de fondo de etiquetas-colores.css.
   Aquí solo mejoramos forma, espaciado, borde-acento y hover. */
/* Los TRES tipos de elemento comparten forma y tamaño; el ICONO (no el color)
   los distingue. El fondo sigue saliendo de las clases de tipo y de las
   etiquetas-colores (fXXXX). El icono se pinta sobre el <i> real del backend
   (descendiente, esté dentro del <a> o suelto en el <p>), así no depende de
   dónde lo ponga el PHP.
     · calendar-blue-row  → acción REALIZADA  → casilla marcada   (Opción A)
     · calendar-red-row   → acción PENDIENTE  → círculo vacío     (Opción B)
     · calendar-green-row → TAREA / anotación → punto            (Opción B) */
p.calendar-blue-row,
p.calendar-green-row,
p.calendar-red-row{
  margin:2px 5px !important;
  padding:2px 8px !important;
  border:0;
  border-left:3px solid rgba(16,51,73,.14);
  border-radius:var(--cal-radius-sm);
  box-shadow:0 1px 1px rgba(16,51,73,.06);
  overflow:hidden;
  font-size:12px;
  line-height:1.4;
  transition:background .12s ease;
  cursor:pointer;
}
p.calendar-blue-row:hover,
p.calendar-green-row:hover,
p.calendar-red-row:hover{ filter:brightness(.97); }
p.calendar-blue-row a,
p.calendar-green-row a,
p.calendar-red-row a{ text-decoration:none; font-weight:500; }
/* Los envoltorios (tarea: .dchaancho80 · visita arrastrable: .arrastrable) no
   deben alterar el tamaño de la píldora. */
.calendariomesdia .dchaancho80,    .calendario3semanasdia .dchaancho80,
.calendariomesdia .arrastrable,    .calendario3semanasdia .arrastrable{
  display:block; margin:0; width:auto;
}

/* ── ICONO unificado: se pinta sobre el <i> real (elemento, no pseudo, para
   que se vea en todos los navegadores). Se anula el glyph del icon-font. ── */
p.calendar-blue-row i,
p.calendar-green-row i,
p.calendar-red-row i{
  display:inline-block; width:14px; height:14px;
  margin:0 4px 0 0; padding:0; font-size:0;
  vertical-align:-2px;
  background:center / 14px 14px no-repeat;
}
p.calendar-blue-row i::before,
p.calendar-green-row i::before,
p.calendar-red-row i::before{ content:none !important; }

/* REALIZADA (azul) → casilla marcada [Opción A] */
p.calendar-blue-row i{
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%3E%3Crect%20x='2.5'%20y='2.5'%20width='15'%20height='15'%20rx='4'%20fill='%232f3e46'/%3E%3Cpath%20d='M5.8%2010.4l2.7%202.7%205.7-6.1'%20fill='none'%20stroke='%23fff'%20stroke-width='2.3'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
}
/* PENDIENTE (rojo) → círculo vacío [Opción B] */
p.calendar-red-row i{
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%3E%3Ccircle%20cx='10'%20cy='10'%20r='6.2'%20fill='none'%20stroke='%237a8893'%20stroke-width='2'/%3E%3C/svg%3E");
}
/* TAREA (verde) → punto [Opción B] */
p.calendar-green-row i{
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%3E%3Ccircle%20cx='10'%20cy='10'%20r='3.4'%20fill='%235b6b75'/%3E%3C/svg%3E");
}

/* ════════════════════════  Nº DE SEMANA (inyectado por JS)  ════════════════════════ */
.tb-weeknum{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.03em;
  color:var(--brand-strong);
  background:color-mix(in srgb, var(--brand) 12%, #fff);
  border:1px solid color-mix(in srgb, var(--brand) 28%, #fff);
  border-radius:20px;
  padding:2px 9px;
  white-space:nowrap;
}
/* Variante en la esquina de la fila de semana (mes / 3 semanas) */
table.calendario td.cal-cell .tb-weeknum{
  position:absolute;
  margin:4px;
}
/* En la cabecera de la vista semana, junto al H2 */
.header-titulo-principal .tb-weeknum{ margin-left:10px; vertical-align:2px; }

/* ════════════════════════  BOTONES (navegación + selector de vista)  ════════════════════════ */
/* Antes grises (heredados de trebede122). Ahora pastillas de MARCA. */
.bottom-nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:center;
  align-items:center;
  margin:14px 0;
}
/* Navegación (Anterior / Actual / Siguiente).
   IMPORTANTE: los CSS de marca blanca (personalizacion/<cliente>.css) cargan
   DESPUÉS y traen `.bottom-nav a{ color:var(--brand); border:2px solid var(--brand) }`
   con la misma especificidad → ganaban y ponían texto del color de marca sobre
   fondo de marca (texto invisible). Acotamos bajo #main-content (1,1,1 > 0,1,1)
   para que el facelift mande siempre, sea cual sea el color del cliente. */
#main-content .bottom-nav a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:9px 18px;
  border-radius:8px;
  font-size:14px;
  font-weight:600;
  text-decoration:none;
  background:var(--brand);
  color:#fff;
  border:1px solid var(--brand);
  transition:background .12s ease, box-shadow .12s ease;
}
#main-content .bottom-nav a:hover{ background:var(--brand-strong); border-color:var(--brand-strong); color:#fff; }
/* El central (“actual / semana actual”) como acción secundaria contorneada.
   Se marca por SEMÁNTICA, no por posición: o bien la clase explícita
   `.botondestacado` en el <a>, o el `title="Fecha actual"` que el PHP ya imprime.
   Así da igual cuántos botones haya (3 o 5) y en qué orden. */
#main-content .bottom-nav a.botondestacado,
#main-content .bottom-nav a[title="Fecha actual"]{
  background:#fff;
  color:var(--brand);
}
#main-content .bottom-nav a.botondestacado:hover,
#main-content .bottom-nav a[title="Fecha actual"]:hover{
  background:var(--cal-today-tint);
  color:var(--brand-strong);
}

/* Selector de vista (Nuevo cliente · Mes · 3 semanas · Semana · Día) */
p.botonespeque{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  justify-content:center;
  align-items:center;
  margin:12px 0 4px;
}
p.botonespeque a{
  display:inline-flex;
  align-items:center;
  padding:8px 15px;
  border-radius:7px;
  font-size:13px;
  font-weight:600;
  text-decoration:none;
  background:#fff;
  color:var(--brand);
  border:1px solid color-mix(in srgb, var(--brand) 40%, #fff);
  transition:background .12s ease, color .12s ease, border-color .12s ease;
}
p.botonespeque a:hover{
  background:var(--cal-today-tint);
  border-color:var(--brand);
}
/* vista activa */
p.botonespeque a.botonmarcado{
  background:var(--brand);
  color:#fff;
  border-color:var(--brand);
}
/* “Nuevo cliente” (primer enlace): mismo estilo de marca que el resto de la
   barra (contorno rojo); la vista activa sigue siendo la única en rojo sólido. */

/* ════════════════════════  MÓVIL (compactar + ancho mínimo)  ════════════════════════
   En móvil FORZAMOS un ancho mínimo por día (la tabla se desliza en horizontal,
   como en escritorio) → los nombres de cliente se ven completos; y COMPACTAMOS
   (franja menos alta + sin hueco vacío reservado). La vista de escritorio no cambia. */
@media (max-width: 760px){
  :root{ --cal-slot-min:34px; }       /* algo más denso (antes 44) */

  /* ── SEMANA · ancho mínimo por día + scroll horizontal ── */
  /* El calendario scrollea dentro de su contenedor (igual patrón que consultas). */
  article:has(.calendariosemanahora){ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  table:has(.calendariosemanahora){ table-layout:auto; width:auto; min-width:max-content; }
  table:has(.calendariosemanahora) td.valigntop{ min-width:155px; }
  .calendariosemanaencabezadodia,
  .calendariosemanaencabezadodiahoy{ position:static; }
  a.calendariosemanahoratitulo{ font-size:11px; padding:4px 0 4px 8px; }

  /* ── MES / 3 SEMANAS · ancho mínimo + sin hueco vacío reservado ── */
  article:has(table.calendario){ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  table.calendario{ table-layout:auto; width:auto; min-width:max-content; }
  table.calendario td.cal-cell{ min-width:152px; }
  table.calendario td.cal-cell:has(.calendario3semanasdia),
  table.calendario td.cal-cell:has(.calendariomesdia){ min-height:0; height:auto; }
  .calendario3semanasdia,
  .calendariomesdia{ min-height:0; }

  /* Chips de cliente: nombre completo en una línea, más ajustados */
  p.calendar-blue-row,
  p.calendar-green-row,
  p.calendar-red-row{ font-size:12px; padding:3px 8px !important; margin:2px 5px !important; white-space:nowrap; overflow:visible; }

  .bottom-nav a, p.botonespeque a{ padding:11px 16px; font-size:14px; }  /* zona táctil */
  /* el calendario de día ya viene en una sola columna desde el PHP */
}

/* ════════════════════════════  DENSIFICACIÓN MÓVIL — MES / 3 SEMANAS  ═══════════
   Capa aditiva. Chips más apretados y día más estrecho para ver 3,5 días en pantalla.
   Para REVERTIR: eliminar o comentar este bloque. Escritorio: sin cambios. */
@media (max-width:760px){
  /* 1 · Día estrecho (98 px) — width+max-width para ganar al min-width:152px base */
  table.calendario td.cal-cell{
    width:98px !important; min-width:98px !important; max-width:98px !important;
  }

  /* 2 · Icono (check/círculo) oculto en móvil → el nombre arranca desde el borde */
  p.calendar-blue-row i,
  p.calendar-green-row i,
  p.calendar-red-row i{ display:none !important; }

  /* 3 · Chips sin icono: menos relleno izquierdo, más nombre visible */
  p.calendar-blue-row,
  p.calendar-green-row,
  p.calendar-red-row{
    font-size:10.5px !important;
    padding:1px 3px 1px 5px !important;
    margin:0 2px 1px !important;
    line-height:1.15;
  }

  /* 4 · Número de día ultrafino */
  .calendariomesencabezadodia,
  .calendariomesencabezadodiahoy{ padding:2px 4px !important; font-size:10px; }
}



/* ###########################################################################
   VISTA CONSULTAS — AGENDA SEMANA  (añadido)
   Mismo origen que el archivo suelto trebede-facelift-consulta-agenda.css.
   Acotado a `.calendariosemanahoraconsulta` → no afecta a ninguna otra vista.
   ########################################################################### */

:root{
  /* ---- Tokens de la AGENDA DE CONSULTAS (scope global; sólo los consumen las
     franjas `.calendariosemanahoraconsulta`, ninguna otra vista) ----
     Esquema por defecto «suave»: MARCADA azul claro · PENDIENTE ámbar claro. */
  /* MARCADA (asistencia confirmada) → azul03 (#59cdff), un punto más oscuro */
  --mk-bg:    #59cdff;
  --mk-bg-h:  #45c4ff;
  --mk-fg:    #073049;
  --mk-time:  #0a4865;
  --mk-rail:  #0067a3;
  /* SIN MARCAR (pendiente) → azul01 (#a6e4ff), azul claro */
  --pd-bg:    #a6e4ff;
  --pd-bg-h:  #93dcff;
  --pd-fg:    #0a3a52;
  --pd-time:  #2c6d8c;
  --pd-rail:  #1f9ae0;
  /* rejilla */
  --cc-line:      var(--gray-200,#e5e7eb);
  --cc-line-soft: var(--gray-150,#eef3f6);
  --cc-empty-bg:  #fbfcfd;
  --cc-empty-hover:#eef2f5;
  --cc-slot-h: 30px;     /* alto compacto de cada media hora (todas IGUALES) */
  --cc-radius: 11px;
}

/* Variantes de esquema (las activa el atributo data-scheme en la tabla; en
   producción basta con dejar el bloque por defecto de :root). */
[data-scheme="azul"]{   /* Alterno más tenue: ambos en azul pálido, menos saturado */
  --mk-bg:#cdeeff; --mk-bg-h:#bce7ff; --mk-fg:#0a3a52; --mk-time:#2c6d8c; --mk-rail:#0067a3;
  --pd-bg:#eef6fb; --pd-bg-h:#e2eff8; --pd-fg:#33536a; --pd-time:#6e91a8; --pd-rail:#7ba6c4;
}
[data-scheme="verde"]{  /* MARCADA (atendida) en verde */
  --mk-bg:#e4f3e9; --mk-bg-h:#d5ecdd; --mk-fg:#1c4a31; --mk-time:#54805f; --mk-rail:#2f9a59;
}

/* ════════════════════════════  ENVOLTORIO / REJILLA  ════════════════════════════ */
table:has(.calendariosemanahoraconsulta){
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border-left:0 !important;            /* anula la barra de acento de marca-blanca */
  table-layout:fixed;
  background:#fff;
  border:1px solid var(--cc-line);
  border-radius:var(--cc-radius);
  overflow:hidden;
  box-shadow:var(--shadow-sm,0 1px 2px rgba(16,51,73,.06));
}

/* Cabecera de días de la semana (Lunes, Martes…) */
table:has(.calendariosemanahoraconsulta) .cal-celda1{
  background:var(--gray-100,#f1f3f5);
  color:var(--fg-3,#697885);
  font-weight:600; font-size:12px; letter-spacing:.06em; text-transform:uppercase;
  text-align:center; padding:9px 6px;
  border-bottom:1px solid var(--cc-line);
}
table:has(.calendariosemanahoraconsulta) > tbody > tr > td{
  vertical-align:top;
  border-left:1px solid var(--cc-line-soft);
  padding:0;
}
table:has(.calendariosemanahoraconsulta) > tbody > tr > td:first-child{ border-left:0; }

.cal-semana-dia{ padding:0; }

/* Cabecera de fecha de cada columna (sticky) */
.calendariosemanaencabezadodia,
.calendariosemanaencabezadodiahoy{
  text-align:center;
  font-weight:600; font-size:13px;
  padding:7px 4px;
  position:sticky; top:0; z-index:3;
  background:#fff;
  border-bottom:1px solid var(--cc-line);
  font-variant-numeric:tabular-nums;
}
.calendariosemanaencabezadodia{ color:var(--fg-2,#585858); }
.calendariosemanaencabezadodiahoy{ color:#fff; background:var(--brand,#008fcb); }   /* HOY */

/* ════════════════════════════  FRANJA DE MEDIA HORA  ════════════════════════════
   Una sola línea, altura FIJA e idéntica en todas las columnas → horas alineadas
   entre días.  Sin márgenes: las cajas se tocan (continuidad vertical).          */
.calendariosemanahoraconsulta{
  display:flex;
  align-items:stretch;
  height:var(--cc-slot-h);
  min-height:var(--cc-slot-h);
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-top:1px solid var(--cc-line-soft) !important;
  background:var(--cc-empty-bg);
  font-size:12px;
  line-height:1.1;
  overflow:hidden;
}
.calendariosemanahoraconsulta[id*=":00---"]{ border-top-color:var(--cc-line) !important; }
.cal-semana-dia > .calendariosemanahoraconsulta:first-of-type{ border-top:0 !important; }

/* Hora — canalón izquierdo, discreto, tabular */
.calendariosemanahoraconsulta .calendariosemanahoratitulo{
  flex:0 0 38px;
  display:flex; align-items:center; justify-content:flex-end;
  margin:0 !important; padding:0 6px 0 0 !important;
  font-size:10.5px; font-weight:500;
  color:var(--fg-4,#8a97a1);
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  user-select:none;
}

/* Contenedor de la cita */
.calendariosemanahoraconsulta .calendariosemanahoracita{
  flex:1 1 auto;
  display:flex; align-items:center; gap:5px;
  min-width:0;
  margin:0 !important; padding:0 7px 0 2px !important;
}

/* Texto del paciente / tratamiento — una línea con elipsis */
.calendariosemanahoraconsulta .agentxt{
  flex:1 1 auto; min-width:0;
  margin:0 !important; padding:0 !important; text-indent:0 !important;
  font-size:12px; line-height:1.15;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.calendariosemanahoraconsulta .agentxt a{ color:inherit !important; text-decoration:none; font-weight:500; }
.calendariosemanahoraconsulta .agentxt a:hover{ text-decoration:underline; }

/* Botones-icono (marcar / borrar / agendar) — reseteamos floats del CSS viejo */
.calendariosemanahoraconsulta .agencheck,
.calendariosemanahoraconsulta .agenborrar,
.calendariosemanahoraconsulta .agencitar{
  float:none !important; margin:0 !important; padding:0 !important;
  display:flex; align-items:center; flex:0 0 auto;
}
.calendariosemanahoraconsulta .agencheck a,
.calendariosemanahoraconsulta .agenborrar a,
.calendariosemanahoraconsulta .agencitar a{
  display:flex; align-items:center; justify-content:center;
  line-height:0; text-decoration:none;
}
.calendariosemanahoraconsulta .agencitar{ margin-left:auto !important; }
.calendariosemanahoraconsulta .agenborrar{ margin-left:2px !important; }

/* ── ICONOS: se pintan SOBRE el <i> real (no pseudo) para verse en todo
      navegador y sin depender de la fuente de iconos del cliente. ── */
.calendariosemanahoraconsulta .agencheck i,
.calendariosemanahoraconsulta .agenborrar i,
.calendariosemanahoraconsulta .agencitar i{
  display:inline-block; width:16px; height:16px;
  font-size:0 !important; line-height:0;
  background:center / 16px 16px no-repeat;
}
.calendariosemanahoraconsulta .agencheck i::before,
.calendariosemanahoraconsulta .agenborrar i::before,
.calendariosemanahoraconsulta .agencitar i::before{ content:none !important; }

/* ════════════════════════════  ESTADOS DE VISITA (color)  ════════════════════════════
   Chips CLAROS + riel de color a la izquierda.  El color se aplica a TODA la
   franja de la visita (1ª media hora + continuación).                            */
.calendariosemanahoraconsulta.visitaazul,
.calendariosemanahoraconsulta.visitaazuloscuro{
  background:var(--mk-bg) !important;
  color:var(--mk-fg);
  box-shadow:inset 3px 0 0 var(--mk-rail);
}
.calendariosemanahoraconsulta.visitaazulclaro{
  background:var(--pd-bg) !important;
  color:var(--pd-fg);
  box-shadow:inset 3px 0 0 var(--pd-rail);
}
.calendariosemanahoraconsulta.visitaazul .calendariosemanahoratitulo,
.calendariosemanahoraconsulta.visitaazuloscuro .calendariosemanahoratitulo{ color:var(--mk-time); }
.calendariosemanahoraconsulta.visitaazulclaro .calendariosemanahoratitulo{ color:var(--pd-time); }

/* Continuidad: una visita = su 1ª franja (lleva .agencheck) + las siguientes
   franjas SIN .agencheck.  Sólo la 1ª lleva separador superior → las franjas de
   una misma visita se funden en un único bloque.                                 */
.calendariosemanahoraconsulta.visitaazul:has(.agencheck),
.calendariosemanahoraconsulta.visitaazuloscuro:has(.agencheck){
  border-top:1px solid color-mix(in srgb, var(--mk-rail) 26%, var(--mk-bg)) !important;
}
.calendariosemanahoraconsulta.visitaazulclaro:has(.agencheck){
  border-top:1px solid color-mix(in srgb, var(--pd-rail) 26%, var(--pd-bg)) !important;
}
.calendariosemanahoraconsulta.visitaazul:not(:has(.agencheck)),
.calendariosemanahoraconsulta.visitaazulclaro:not(:has(.agencheck)),
.calendariosemanahoraconsulta.visitaazuloscuro:not(:has(.agencheck)){
  border-top-color:transparent !important;
}

/* Hover */
.calendariosemanahoraconsulta.visitaazul:hover,
.calendariosemanahoraconsulta.visitaazuloscuro:hover{ background:var(--mk-bg-h) !important; }
.calendariosemanahoraconsulta.visitaazulclaro:hover{ background:var(--pd-bg-h) !important; }

/* ── Icono MARCAR ASISTENCIA — misma familia que el calendario comercial ──
   MARCADA   → casilla RELLENA (caja de color + tic blanco)
   SIN MARCAR → casilla VACÍA (contorno)                                     */
.calendariosemanahoraconsulta.visitaazul   .agencheck i,
.calendariosemanahoraconsulta.visitaazuloscuro .agencheck i{
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%3E%3Crect%20x='2.5'%20y='2.5'%20width='15'%20height='15'%20rx='4'%20fill='%230067a3'/%3E%3Cpath%20d='M5.8%2010.4l2.7%202.7%205.7-6.1'%20fill='none'%20stroke='%23ffffff'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
}
.calendariosemanahoraconsulta.visitaazulclaro .agencheck i{
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%3E%3Crect%20x='3'%20y='3'%20width='14'%20height='14'%20rx='4'%20fill='none'%20stroke='%231f9ae0'%20stroke-width='2'/%3E%3C/svg%3E");
}
.calendariosemanahoraconsulta .agencheck a:hover i{ transform:scale(1.12); transition:transform .1s ease; }

/* Esquema VERDE: caja verde rellena en la marcada */
[data-scheme="verde"] .calendariosemanahoraconsulta.visitaazul .agencheck i,
[data-scheme="verde"] .calendariosemanahoraconsulta.visitaazuloscuro .agencheck i{
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%3E%3Crect%20x='2.5'%20y='2.5'%20width='15'%20height='15'%20rx='4'%20fill='%232f9a59'/%3E%3Cpath%20d='M5.8%2010.4l2.7%202.7%205.7-6.1'%20fill='none'%20stroke='%23ffffff'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
}
/* Esquema AZUL (alterno, más tenue): contorno azul grisáceo en la pendiente */
[data-scheme="azul"] .calendariosemanahoraconsulta.visitaazulclaro .agencheck i{
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%3E%3Crect%20x='3'%20y='3'%20width='14'%20height='14'%20rx='4'%20fill='none'%20stroke='%236f97b3'%20stroke-width='2'/%3E%3C/svg%3E");
}

/* ── Icono BORRAR CITA (papelera) — discreto, se realza al pasar el ratón ── */
.calendariosemanahoraconsulta .agenborrar i{
  width:14px; height:14px; background-size:14px 14px; opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%3E%3Cpath%20fill='none'%20stroke='%230a3a52'%20stroke-width='1.6'%20stroke-linecap='round'%20stroke-linejoin='round'%20d='M4%206h12M8%206V4.6A1.6%201.6%200%200%201%209.6%203h.8A1.6%201.6%200%200%201%2012%204.6V6m2.4%200-.5%209a1.6%201.6%200%200%201-1.6%201.5H7.7A1.6%201.6%200%200%201%206.1%2015L5.6%206M8.5%209v4.5M11.5%209v4.5'/%3E%3C/svg%3E");
}
.calendariosemanahoraconsulta .agenborrar a:hover i{ opacity:1; }

/* ── Hueco libre (agendar cita) — afordancia "+" sutil que se enciende al hover ── */
.calendariosemanahoraconsulta .agencitar i{
  width:18px; height:18px; background-size:18px 18px; opacity:.4;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%3E%3Cpath%20fill='none'%20stroke='%238a97a1'%20stroke-width='1.8'%20stroke-linecap='round'%20d='M10%205v10M5%2010h10'/%3E%3C/svg%3E");
  transition:opacity .12s ease;
}
.calendariosemanahoraconsulta:not(.visitaazul):not(.visitaazulclaro):not(.visitaazuloscuro):hover{
  background:var(--cc-empty-hover);
}
.calendariosemanahoraconsulta:hover .agencitar i{ opacity:.85; }
.calendariosemanahoraconsulta .agencitar a:hover i{
  opacity:1;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2020%2020'%3E%3Cpath%20fill='none'%20stroke='%23008fcb'%20stroke-width='2'%20stroke-linecap='round'%20d='M10%205v10M5%2010h10'/%3E%3C/svg%3E");
}

/* ════════════════════════════  PIE DE TOTALES DEL DÍA  ════════════════════════════ */
.consultaagenhueco{
  font-size:10.5px; font-weight:600; letter-spacing:.02em;
  color:var(--fg-4,#8a97a1);
  text-align:center;
  padding:7px 4px 8px;
  border-top:1px solid var(--cc-line);
  background:var(--gray-50,#f9f9f9);
}

/* ════════════════════════════  MÓVIL  ════════════════════════════
   En móvil: FORZAMOS un ancho mínimo por día (scroll horizontal) para que los
   nombres de paciente/tratamiento se vean completos; y COMPACTAMOS el alto de
   franja. La vista de escritorio no cambia. */
@media (max-width:760px){
  .panel{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  table:has(.calendariosemanahoraconsulta){
    table-layout:auto; width:auto; min-width:max-content;
  }
  table:has(.calendariosemanahoraconsulta) > tbody > tr > td{ min-width:150px; }
  .calendariosemanahoraconsulta .agentxt{ overflow:visible; text-overflow:clip; font-size:12.5px; }
  .calendariosemanaencabezadodia,
  .calendariosemanaencabezadodiahoy{ position:static; }
  /* alto compacto fijado directamente (gana a la variable en línea de los Tweaks) */
  .calendariosemanahoraconsulta{ height:28px !important; min-height:28px !important; font-size:12.5px; line-height:1.1; }
  .calendariosemanahoraconsulta .calendariosemanahoratitulo{ flex-basis:36px; font-size:10.5px; }
  .calendariosemanahoraconsulta .agencheck i{ width:17px; height:17px; background-size:17px 17px; }
  .consultaagenhueco{ padding:5px 4px 6px; }
}

/* ════════════════════════════  DENSIFICACIÓN MÓVIL — SEMANA CONSULTAS  ════════════
   Para REVERTIR: eliminar o comentar este bloque. Escritorio: sin cambios. */
@media (max-width:760px){
  /* 1 · HUECOS LIBRES → 20 px: hora visible + tocable para citar */
  .calendariosemanahoraconsulta:not(:has(.agentxt)){
    height:20px !important; min-height:20px !important; max-height:20px !important;
    overflow:hidden !important; background:#fbfcfd; padding:0 2px !important;
  }
  .calendariosemanahoraconsulta:not(:has(.agentxt)) .calendariosemanahoratitulo{
    font-size:6.5px !important; opacity:.5; flex-basis:auto; line-height:20px; padding:0 !important;
  }

  /* 2 · CITAS OCUPADAS → 24 px compactas, legibles */
  .calendariosemanahoraconsulta:has(.agentxt){
    height:24px !important; min-height:24px !important; max-height:24px !important;
    overflow:hidden !important; padding:0 2px !important; gap:2px !important;
  }
  .calendariosemanahoraconsulta:has(.agentxt) .calendariosemanahoratitulo{
    font-size:8px !important; line-height:24px !important; margin:0 !important;
    flex-basis:26px !important; flex-shrink:0; padding:0 !important;
  }
  .calendariosemanahoraconsulta:has(.agentxt) .agentxt{
    font-size:10.5px !important; line-height:1.15; margin:0 !important;
  }

  /* 3 · Ocultar iconos (check + borrar) en móvil */
  .calendariosemanahoraconsulta .agencheck,
  .calendariosemanahoraconsulta .agenborrar{ display:none !important; }

  /* 4 · Columna de día estrecha (106 px) → asoman 3 días
         width + max-width para ganar al min-width:150px del bloque base */
  table:has(.calendariosemanahoraconsulta) > tbody > tr > td{
    width:106px !important; min-width:106px !important; max-width:106px !important;
  }
}
