/* Agenda propia (spec 2026-08-23). Piel de la pantalla Agenda: tablero semanal
   con tarjetas flotantes (no filas pegadas), sub-vista de ajustes con el kit
   de controles grandes y el selector de huecos.
   Tokens en helix-tokens.css / helix-signature.css. Sin emojis: iconos SVG. */

body[data-screen="agenda"] #helix-bg { opacity: 0.55; }

/* ── Barra de la semana ─────────────────────────────────────────────────── */
.hx-agenda-toolbar {
  display: flex; align-items: center; gap: var(--s-3);
  flex-wrap: wrap; margin-bottom: var(--s-4);
}
.hx-agenda-toolbar .hx-agenda-rango { font-weight: 600; font-size: 15px; color: var(--text-1); }
.hx-agenda-toolbar .hx-agenda-espacio { flex: 1 1 auto; }

/* ── Tablero semanal ────────────────────────────────────────────────────── */
.hx-agenda-semana {
  display: grid; grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: var(--s-3); align-items: start;
}
.hx-agenda-dia {
  background: var(--veil); border: 1px solid var(--glass-border);
  border-radius: var(--r-lg); padding: var(--s-3); min-height: 160px;
}
.hx-agenda-dia.is-hoy { box-shadow: 0 0 0 2px var(--accent-ring); }
.hx-agenda-dia-cab {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: var(--s-2); margin-bottom: var(--s-3);
}
.hx-agenda-dia-cab b { font-size: 14px; color: var(--text-1); }
.hx-agenda-dia-cab span { font-size: 12px; color: var(--text-3); white-space: nowrap; }

/* Tarjetas flotantes, nunca filas pegadas: cada cita es su propia superficie. */
.hx-agenda-cita,
.hx-agenda-bloqueo {
  border-radius: var(--r-md); padding: var(--s-2) var(--s-3);
  margin-bottom: var(--s-2); font-size: 13px; line-height: 1.35;
  border: 1px solid var(--border-1); background: var(--bg-elevated);
  box-shadow: var(--shadow-1); cursor: pointer;
}
.hx-agenda-cita:hover { border-color: var(--accent); }
.hx-agenda-cita .hx-agenda-hora { font-weight: 600; color: var(--text-1); }
.hx-agenda-cita .hx-agenda-nombre { color: var(--text-2); display: block; }
.hx-agenda-cita .hx-agenda-meta { color: var(--text-3); font-size: 12px; }
.hx-agenda-bloqueo {
  background: var(--bg-sunken); color: var(--text-3);
  border-style: dashed; cursor: default;
}
.hx-agenda-bloqueo[data-bloqueo] { cursor: pointer; }
/* Ocupado externo (Google/.ics, rebanada 2): no clicable, rayas sutiles para
   distinguirlo de una cita real de un vistazo. Mismo radius que las tarjetas. */
.hx-agenda-externo {
  border-radius: var(--r-md); padding: var(--s-2) var(--s-3);
  margin-bottom: var(--s-2); font-size: 12px; line-height: 1.35;
  border: 1px dashed var(--border-1); color: var(--text-3); opacity: .75;
  background: repeating-linear-gradient(135deg,
    var(--bg-elevated), var(--bg-elevated) 6px, var(--bg-sunken) 6px, var(--bg-sunken) 12px);
}
.hx-agenda-vacio { color: var(--text-3); font-size: 12px; padding: var(--s-2) 0; }

/* ── Selector de huecos ─────────────────────────────────────────────────── */
.hx-agenda-huecos {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: var(--s-2); margin: var(--s-2) 0 var(--s-3);
}
.hx-agenda-hueco {
  border: 1px solid var(--border-1); border-radius: var(--r-md);
  padding: var(--s-2); background: var(--bg-elevated);
  text-align: center; cursor: pointer; font-size: 13px; color: var(--text-1);
}
.hx-agenda-hueco:hover,
.hx-agenda-hueco.is-sel { border-color: var(--accent); background: var(--accent-bg); }
.hx-agenda-dia-titulo {
  font-weight: 600; margin: var(--s-3) 0 var(--s-1);
  color: var(--text-1); font-size: 13px; text-transform: capitalize;
}

/* ── Hojas (sheets) ─────────────────────────────────────────────────────── */
.hx-agenda-sheet {
  position: fixed; inset: 0; background: var(--scrim);
  display: flex; align-items: flex-end; justify-content: center; z-index: 9000;
}
.hx-agenda-sheet-card {
  background: var(--bg-elevated); border: 1px solid var(--border-1);
  border-radius: var(--r-xl) var(--r-xl) 0 0; width: min(720px, 100%);
  max-height: 85vh; overflow: auto; padding: var(--s-5); color: var(--text-1);
}
.hx-agenda-sheet-card h3 { margin: 0 0 var(--s-3); font-size: 17px; color: var(--text-1); }
.hx-agenda-sheet-card .hx-agenda-cuando { color: var(--text-2); font-size: 14px; }
.hx-agenda-acciones { display: flex; gap: var(--s-2); flex-wrap: wrap; margin-top: var(--s-4); }

/* ── Ajustes ────────────────────────────────────────────────────────────── */
.hx-agenda-tipo {
  border: 1px solid var(--border-1); border-radius: var(--r-lg);
  padding: var(--s-3) var(--s-4); margin-bottom: var(--s-3);
  background: var(--bg-elevated); box-shadow: var(--shadow-1);
  display: grid; grid-template-columns: 1fr auto; gap: var(--s-3); align-items: center;
}
.hx-agenda-tipo.is-chat { border-color: var(--accent); }
.hx-agenda-tipo b { color: var(--text-1); }
.hx-agenda-tipo-botones { display: flex; gap: var(--s-2); align-items: center; }
.hx-agenda-horario-fila {
  display: grid; grid-template-columns: 96px 1fr auto; gap: var(--s-3);
  align-items: center; padding: var(--s-2) 0; border-bottom: 1px solid var(--border-1);
}
.hx-agenda-horario-fila > b { color: var(--text-1); font-size: 13px; }
.hx-agenda-franja { display: inline-flex; align-items: center; gap: var(--s-1); margin: 0 var(--s-2) var(--s-1) 0; color: var(--text-2); font-size: 13px; }
.hx-agenda-franja input { width: 104px; }
.hx-agenda-exc-libre { display: inline-flex; align-items: center; gap: var(--s-1); color: var(--text-2); font-size: 13px; margin-right: var(--s-2); }
/* `hidden` del boton de anadir franja: el `display` de .helix-btn le gana al [hidden] del navegador. */
.hx-agenda-exc [data-add-franja-exc][hidden] { display: none; }
.hx-agenda-error { color: var(--danger-text); font-size: 13px; margin-top: var(--s-2); }
.hx-agenda-nota { color: var(--text-3); font-size: 12px; margin-top: var(--s-2); }

/* ── Movil: columnas con snap horizontal, hoja a pantalla completa ──────── */
@media (max-width: 760px) {
  .hx-agenda-semana {
    display: flex; overflow-x: auto; scroll-snap-type: x mandatory;
    gap: var(--s-3); padding-bottom: var(--s-2);
  }
  .hx-agenda-dia { flex: 0 0 84vw; scroll-snap-align: start; }
  .hx-agenda-sheet { align-items: stretch; }
  .hx-agenda-sheet-card { border-radius: 0; max-height: 100vh; width: 100%; }
  .hx-agenda-horario-fila { grid-template-columns: 76px 1fr auto; gap: var(--s-2); }
  .hx-agenda-franja input { width: 88px; }
}

/* Calendario lleno (feedback fd90 24-08): columnas a toda altura, dias cerrados
   atenuados, franjas del horario visibles y marca de autosave. */
.hx-agenda-semana { align-items: stretch; }
.hx-agenda-dia { min-height: calc(100vh - 320px); display: flex; flex-direction: column; }
.hx-agenda-dia.is-cerrado { opacity: .55; }
.hx-agenda-horas { font-size: 11.5px; color: var(--text-3); margin: -4px 0 10px; letter-spacing: .02em; }
.hx-agenda-vacio { margin-top: auto; margin-bottom: auto; }
.hx-agenda-guardado { color: var(--text-3); font-size: 13px; min-height: 18px; margin-top: 6px; }
@media (max-width: 760px) {
  .hx-agenda-dia { min-height: 46vh; }
}
/* «Sin citas» y «Cerrado» centrados en la columna (feedback fd90 24-08, 2a tanda). */
.hx-agenda-vacio { text-align: center; align-self: center; width: 100%; }

/* ── Calendario v2 (helix-agenda-cal.js): rejilla horaria ───────────────── */
.hx-cal-toolbar { position: relative; z-index: 2; }
.hx-cal-rango {
  display: inline-flex; align-items: center; gap: 4px; height: 30px; padding: 0 10px;
  border: 0; border-radius: 8px; background: transparent; color: var(--text-1);
  font: inherit; font-weight: 600; font-size: 14px; cursor: pointer;
}
.hx-cal-rango:hover { background: var(--layer-2, var(--bg-elevated)); }
.hx-cal-seg { margin: 0; }
.hx-cal {
  display: flex; flex-direction: column;
  border: 1px solid var(--hair, var(--border-1)); border-radius: 10px;
  background: var(--card-bg, var(--bg-elevated)); overflow: hidden;
}
.hx-cal-cab {
  display: grid; grid-template-columns: 56px repeat(7, minmax(0, 1fr));
  border-bottom: 1px solid var(--hair, var(--border-1));
  background: var(--layer-1, transparent);
}
.hx-cal.is-dia .hx-cal-cab { grid-template-columns: 56px 1fr; }
.hx-cal-dia-cab {
  display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 8px 4px 7px;
  border: 0; border-left: 1px solid var(--hair, var(--border-1)); background: transparent;
  color: var(--text-2); font: inherit; cursor: pointer; line-height: 1.1;
}
.hx-cal-dia-cab:hover { background: var(--layer-2, var(--bg-sunken)); }
.hx-cal-dia-cab .hx-cal-dia-nombre { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--text-3); }
.hx-cal-dia-cab .hx-cal-dia-num { font-size: 20px; font-weight: 600; color: var(--text-1); }
.hx-cal-dia-cab .hx-cal-dia-mes { font-size: 11px; color: var(--text-3); }
.hx-cal-dia-cab.is-cerrado .hx-cal-dia-num { color: var(--text-3); font-weight: 500; }
.hx-cal-dia-cab.is-hoy .hx-cal-dia-num {
  display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%;
  background: var(--accent); color: #fff;
}
.hx-cal-cuerpo {
  display: grid; grid-template-columns: 56px 1fr; overflow: auto; padding-top: 10px;
  max-height: calc(100vh - 250px); min-height: 320px; overscroll-behavior: contain;
}
.hx-cal-horas { position: relative; }
.hx-cal-hora {
  box-sizing: border-box; padding: 0 8px 0 0; text-align: right; font-size: 11px; color: var(--text-3);
  transform: translateY(-7px);
}
.hx-cal-cols { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.hx-cal.is-dia .hx-cal-cols { grid-template-columns: 1fr; }
.hx-cal-col {
  position: relative; border-left: 1px solid var(--hair, var(--border-1));
  background-image: repeating-linear-gradient(to bottom,
    var(--hair, var(--border-1)) 0, var(--hair, var(--border-1)) 1px,
    transparent 1px, transparent var(--hx-cal-h, 56px));
  background-color: var(--bg-sunken, transparent); cursor: crosshair;
}
.hx-cal-col.is-hoy { background-color: color-mix(in srgb, var(--accent) 4%, var(--bg-sunken, transparent)); }
/* Horas abiertas mas claras que las cerradas: la franja de trabajo se lee de un vistazo. */
.hx-cal-abierto { position: absolute; left: 0; right: 0; background: rgba(255, 255, 255, 0.045); pointer-events: none; }
:root:not([data-theme="dark"]) .hx-cal-abierto { background: rgba(255, 255, 255, 0.75); }
:root:not([data-theme="dark"]) .hx-cal-col { background-color: rgba(0, 0, 0, 0.035); }
.hx-cal-ev {
  position: absolute; box-sizing: border-box; overflow: hidden; padding: 4px 6px;
  border-radius: 6px; font-size: 12px; line-height: 1.25; cursor: grab; user-select: none;
  display: flex; flex-direction: column; gap: 1px;
}
.hx-cal-ev .hx-cal-ev-titulo { font-weight: 600; color: var(--text-1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hx-cal-ev .hx-cal-ev-meta { color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 11px; }
.hx-cal-ev .hx-cal-ev-hora { color: var(--text-3); font-size: 11px; white-space: nowrap; }
.hx-cal-ev.is-cita {
  background: color-mix(in srgb, var(--accent) 18%, var(--bg-elevated)); border-left: 3px solid var(--accent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent);
}
.hx-cal-ev.is-cita:hover { background: color-mix(in srgb, var(--accent) 26%, var(--bg-elevated)); }
.hx-cal-ev.is-cita.is-manual { border-left-style: double; }
.hx-cal-ev.is-bloqueo {
  background: var(--bg-sunken); box-shadow: inset 0 0 0 1px var(--hair-strong, var(--border-1)); color: var(--text-3);
}
.hx-cal-ev.is-bloqueo .hx-cal-ev-titulo { color: var(--text-2); }
.hx-cal-ev.is-externo {
  cursor: default; opacity: .8; box-shadow: inset 0 0 0 1px var(--hair, var(--border-1));
  background: repeating-linear-gradient(135deg, var(--bg-elevated), var(--bg-elevated) 6px, var(--bg-sunken) 6px, var(--bg-sunken) 12px);
}
.hx-cal-ev.is-externo .hx-cal-ev-titulo { color: var(--text-2); font-weight: 500; }
/* Bloque bajo: hora y nombre en una linea, sin meta (si no, el nombre se recorta a la mitad). */
.hx-cal-ev.is-corta { flex-direction: row; align-items: center; gap: 6px; padding: 0 6px; }
.hx-cal-ev.is-corta .hx-cal-ev-hora { order: -1; flex: 0 0 auto; }
.hx-cal-ev.is-corta .hx-cal-ev-meta { display: none; }
.hx-cal-ev.is-corta .hx-cal-resize { height: 6px; }
.hx-cal-cab, .hx-cal-cuerpo { user-select: none; -webkit-user-select: none; }
/* Trozo de un bloque que empezo otro dia: se ve, no se arrastra. */
.hx-cal-ev.is-parcial { cursor: default; border-top: 2px dashed var(--hair-strong, var(--border-1)); border-top-left-radius: 0; border-top-right-radius: 0; }
.hx-cal-ev.is-origen { opacity: .35; }
.hx-cal-ev.is-ghost { opacity: .92; box-shadow: 0 10px 24px rgba(0, 0, 0, .35), inset 0 0 0 1px var(--accent); pointer-events: none; z-index: 5; cursor: grabbing; }
.hx-cal-ev.is-redim { z-index: 4; }
.hx-cal-resize { position: absolute; left: 0; right: 0; bottom: 0; height: 8px; cursor: ns-resize; }
.hx-cal-resize::after { content: ""; position: absolute; left: 50%; bottom: 2px; width: 22px; height: 2px; margin-left: -11px; border-radius: 2px; background: var(--text-3); opacity: .5; }
.hx-cal-cols.is-arrastrando, .hx-cal-cols.is-arrastrando * { cursor: grabbing; }
.hx-cal-sel {
  position: absolute; left: 2px; right: 2px; border-radius: 6px; z-index: 3; padding: 4px 6px;
  background: color-mix(in srgb, var(--accent) 14%, transparent); box-shadow: inset 0 0 0 1px var(--accent);
  color: var(--text-1); font-size: 11px; font-weight: 600; pointer-events: none;
}
.hx-cal-ahora { position: absolute; left: 0; right: 0; height: 0; border-top: 2px solid var(--danger-text, #ff453a); z-index: 6; pointer-events: none; }
.hx-cal-ahora::before { content: ""; position: absolute; left: -5px; top: -5px; width: 8px; height: 8px; border-radius: 50%; background: var(--danger-text, #ff453a); }
.hx-cal-pista { padding: 8px 12px; border-top: 1px solid var(--hair, var(--border-1)); }
/* Menu tras seleccionar y selector de mes: flotantes densos (encima de todo, como las hojas) */
.hx-cal-menu, .hx-cal-mes {
  position: fixed; z-index: 9100; min-width: 220px; padding: 6px; border-radius: 12px;
  background: var(--bg-elevated); color: var(--text-1);
  box-shadow: 0 0 0 1px var(--hair-strong, var(--border-1)), 0 18px 40px rgba(0, 0, 0, .35);
}
.hx-cal-menu-titulo { padding: 6px 10px 8px; font-size: 12px; color: var(--text-3); }
.hx-cal-menu-item {
  display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 10px; border: 0; border-radius: 8px;
  background: transparent; color: var(--text-1); font: inherit; font-size: 13px; text-align: left; cursor: pointer;
}
.hx-cal-menu-item:hover { background: var(--layer-2, var(--bg-sunken)); }
.hx-cal-mes { width: 272px; padding: 10px; }
.hx-cal-mes-cab { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.hx-cal-mes-cab b { font-size: 13px; }
.hx-cal-mes-sem { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; font-size: 11px; color: var(--text-3); margin-bottom: 2px; }
.hx-cal-mes-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.hx-cal-mes-dia {
  height: 32px; border: 0; border-radius: 8px; background: transparent; color: var(--text-1);
  font: inherit; font-size: 13px; cursor: pointer;
}
.hx-cal-mes-dia:hover { background: var(--layer-2, var(--bg-sunken)); }
.hx-cal-mes-dia.is-otro { color: var(--text-3); }
.hx-cal-mes-dia.is-hoy { box-shadow: inset 0 0 0 1px var(--accent); }
.hx-cal-mes-dia.is-sel { background: var(--accent); color: #fff; }
/* Lista de leads en «Reservar una cita» */
.hx-cal-leads { display: grid; gap: 4px; margin: 6px 0 10px; max-height: 220px; overflow: auto; }
.hx-cal-lead {
  display: flex; justify-content: space-between; align-items: center; gap: 10px; width: 100%; padding: 8px 10px;
  border: 0; border-radius: 8px; background: var(--layer-2, var(--bg-sunken)); color: var(--text-1);
  font: inherit; font-size: 13px; text-align: left; cursor: pointer; box-shadow: inset 0 0 0 1px var(--hair, var(--border-1));
}
.hx-cal-lead span { color: var(--text-3); font-size: 12px; }
.hx-cal-lead:hover { box-shadow: inset 0 0 0 1px var(--hair-strong, var(--border-1)); }
.hx-cal-lead.is-sel { box-shadow: inset 0 0 0 1px var(--accent); background: color-mix(in srgb, var(--accent) 14%, var(--bg-elevated)); }
@media (max-width: 760px) {
  /* Barra en dos lineas: la fecha arriba a todo el ancho; debajo flechas, Hoy, Semana/Dia y el reloj. */
  .hx-cal-toolbar .hx-cal-rango { flex: 1 1 100%; order: -1; padding: 0; justify-content: flex-start; font-size: 16px; }
  .hx-cal-toolbar .hx-agenda-espacio { flex: 1 1 auto; }
  .hx-cal-toolbar [data-bloquear] span { display: none; }
  .hx-cal-cab, .hx-cal-cuerpo { grid-template-columns: 44px 1fr; }
  .hx-cal-cab { grid-template-columns: 44px repeat(7, minmax(0, 1fr)); }
  .hx-cal.is-dia .hx-cal-cab { grid-template-columns: 44px 1fr; }
  .hx-cal-hora { font-size: 10px; padding-right: 4px; }
  .hx-cal-cuerpo { max-height: calc(100dvh - 300px); }
  .hx-cal-dia-cab .hx-cal-dia-num { font-size: 16px; }
  .hx-cal-col { cursor: default; }
  .hx-cal-ev { cursor: pointer; }
}
