/* ══════════════════════════════════════════════════════════════════════
   AGENDA CLINICA — CSS
   Organizado: root → topbar → controles → contenido → vistas → modal
   Tokens: LUZOkit exclusivo (--bg-*, --tx-*, --border-*, --c-brand-*)
   ══════════════════════════════════════════════════════════════════════ */

/* ══ 1. ROOT ═════════════════════════════════════════════════════════ */

.ag-root {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  position: relative;
}

/* ══ 2. TOPBAR ═══════════════════════════════════════════════════════ */

.ag-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 20px;
  border-bottom: 1px solid var(--border, #e2e8f0);
  position: sticky; top: 0; z-index: 10;
  background: var(--bg-body, #f1f5f9);
  flex-shrink: 0;
  gap: 12px;
  background: var(--bg-card, #fff);
}

.ag-tb-left {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex-shrink: 0;
}

.ag-tb-center {
  display: flex;
  align-items: center;
  gap: 10px;
}

.ag-tb-right {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
}

.ag-tb-title {
  font-size: var(--font-lg, 16px);
  font-weight: 600;
  color: var(--tx-base, #1e293b);
  white-space: nowrap;
}

.ag-mod-icon {
  color: var(--c-brand, #6d28d9);
  display: flex;
}

/* ══ 3. SEGMENTED CONTROL + VIEW DROPDOWN ════════════════════════════ */

.ag-seg {
  display: flex;
  background: var(--bg-surface, #f8fafc);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 8px;
  padding: 3px;
  gap: 2px;
}

.ag-seg-btn {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px 14px;
  border: none;
  background: transparent;
  color: var(--tx-muted, #64748b);
  font-size: var(--font-sm, 13px);
  font-family: inherit;
  cursor: pointer;
  border-radius: 6px;
  transition: all .15s;
  white-space: nowrap;
}

.ag-seg-btn:hover {
  color: var(--tx-base, #1e293b);
}

.ag-seg-btn--on {
  background: var(--c-brand, #6d28d9);
  color: #fff;
  font-weight: 600;
}

.ag-viewdrop {
  position: relative;
  display: flex;
}

.ag-viewdrop .ag-drop-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  left: auto;
  min-width: 160px;
  z-index: 60;
}

/* ══ 4. DROPDOWN GENERICO (prof, vistas, modalidad) ══════════════════ */

.ag-drop {
  position: relative;
}

.ag-drop-trigger {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: var(--bg-surface, #f8fafc);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: var(--radius-md, 8px);
  color: var(--tx-base, #1e293b);
  font-size: var(--font-sm, 13px);
  font-family: inherit;
  cursor: pointer;
  transition: border-color .15s;
  white-space: nowrap;
}

.ag-drop-trigger:hover {
  border-color: var(--c-brand-soft, #a78bfa);
}

.ag-drop-label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ag-drop-menu {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 180px;
  background: var(--bg-card, #fff);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: var(--radius-md, 8px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, .12);
  z-index: 50;
  padding: 4px;
  max-height: 320px;
  overflow-y: auto;
}

.ag-drop-item {
  padding: 8px 12px;
  border-radius: 6px;
  cursor: pointer;
  font-size: var(--font-sm, 13px);
  color: var(--tx-base, #1e293b);
  display: flex;
  align-items: center;
  gap: 8px;
  transition: background .12s;
}

.ag-drop-item:hover {
  background: var(--bg-hover, rgba(0, 0, 0, .02));
}

.ag-drop-item--on {
  background: var(--c-brand-muted, rgba(109, 40, 217, .06));
  color: var(--c-brand, #6d28d9);
  font-weight: 600;
}

.ag-drop-item--disabled {
  color: var(--tx-dim, #94a3b8);
  cursor: default;
  opacity: .5;
}

.ag-drop-item--disabled:hover {
  background: transparent;
}

.ag-drop-sep {
  height: 1px;
  background: var(--border-soft, #f1f5f9);
  margin: 4px 0;
}

.ag-drop-av {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}

/* ══ 5. DATE NAVIGATION ══════════════════════════════════════════════ */

.ag-date-nav {
  display: flex;
  align-items: center;
  gap: 2px;
}

.ag-nav-btn {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  color: var(--tx-muted, #64748b);
  cursor: pointer;
  border-radius: var(--radius-md, 8px);
  transition: all .15s;
}

.ag-nav-btn:hover {
  background: var(--bg-hover, rgba(0, 0, 0, .02));
  color: var(--tx-base, #1e293b);
}

.ag-nav-today {
  padding: 4px 12px;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: var(--radius-md, 8px);
  background: transparent;
  color: var(--tx-base, #1e293b);
  font-size: var(--font-xs, 11px);
  font-family: inherit;
  cursor: pointer;
  transition: all .15s;
}

.ag-nav-today:hover {
  border-color: var(--c-brand-soft, #a78bfa);
}

.ag-date-label {
  font-size: var(--font-sm, 13px);
  font-weight: 500;
  color: var(--tx-base, #1e293b);
  white-space: nowrap;
}

.ag-btn-new {
  background: var(--c-brand, #6d28d9);
  color: #fff;
  border: none;
  padding: 7px 14px;
  border-radius: var(--radius-md, 8px);
  font-size: var(--font-sm, 13px);
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity .15s;
  display: flex;
  align-items: center;
  gap: 5px;
}

.ag-btn-new:hover {
  opacity: .9;
}

/* ══ 6. CONTENT AREA ═════════════════════════════════════════════════ */

.ag-content {
  flex: 1;
  overflow: auto;
  background: var(--bg-body, #f1f5f9);
}

/* ══ 7. LOADING + EMPTY STATES ═══════════════════════════════════════ */

.ag-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 60px 20px;
  color: var(--tx-muted, #64748b);
  font-size: var(--font-sm, 13px);
}

.ag-spinner {
  width: 24px;
  height: 24px;
  border: 2px solid var(--border, #e2e8f0);
  border-top-color: var(--c-brand, #6d28d9);
  border-radius: 50%;
  animation: ag-spin .6s linear infinite;
}

@keyframes ag-spin {
  to { transform: rotate(360deg); }
}

.ag-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 20px;
  gap: 16px;
}

.ag-empty-icon {
  color: var(--tx-dim, #94a3b8);
  opacity: .5;
}

.ag-empty-text {
  font-size: var(--font-sm, 13px);
  color: var(--tx-muted, #64748b);
}

/* ══ 8. SHARED CITA BLOCK ════════════════════════════════════════════
   Usado por agenda-week.js dentro de .ag-week-col (position:relative).
   position:absolute permite posicionar por hora con top/height inline.
   No afecta a Day (usa .ag-day-card) ni Focus (usa .ag-fc-block).
   ════════════════════════════════════════════════════════════════════ */

.ag-cita {
  position: absolute;
  left: 2px;
  right: 2px;
  z-index: 1;
  background: var(--ag-cita-bg, var(--bg-card, #fff));
  border: 1px solid var(--border-soft, #e2e8f0);
  border-radius: var(--radius-sm, 4px);
  padding: 3px 8px 3px 10px;
  cursor: pointer;
  overflow: hidden;
  font-size: var(--font-xs, 11px);
  line-height: 1.35;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .06);
  transition: border-color .15s, box-shadow .15s;
}

.ag-cita::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--ag-cita-border, var(--c-brand, #6d28d9));
  border-radius: 3px 0 0 3px;
}

.ag-cita:hover {
  border-color: var(--c-brand-soft, #a78bfa);
  box-shadow: 0 2px 6px rgba(0, 0, 0, .1);
}

.ag-cita-time {
  font-size: var(--font-xs, 11px);
  font-weight: 500;
  color: var(--tx-base, #1e293b);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ag-cita-meta {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 2px;
}

.ag-cita.ag-dragging {
  opacity: .5;
  transform: scale(.96);
}

/* ══ 9. BADGES + CONSENT ═════════════════════════════════════════════ */

.ag-badge {
  font-size: 8px;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: .3px;
}

.ag-badge-est {
  background: var(--bg-hover, rgba(0, 0, 0, .04));
  color: var(--tx-muted, #64748b);
}

.ag-badge-estado {
  background: var(--ag-cita-bg, var(--bg-hover, rgba(0, 0, 0, .04)));
  color: var(--ag-cita-border, var(--tx-muted, #64748b));
  border: 1px solid var(--ag-cita-border, var(--border-soft, #e2e8f0));
}

.ag-cita-prof {
  font-size: 9px;
  font-weight: 700;
  background: var(--c-brand-muted, rgba(109, 40, 217, .06));
  color: var(--c-brand, #6d28d9);
  padding: 2px 5px;
  border-radius: 999px;
}

.ag-cs-ok,
.ag-consent-ok {
  color: var(--tx-green, #16a34a);
  display: flex;
  align-items: center;
}

.ag-cs-warn,
.ag-consent-warn {
  color: var(--tx-amber, #d97706);
  display: flex;
  align-items: center;
}

.ag-mod-badge {
  display: flex;
  align-items: center;
  color: var(--tx-muted, #64748b);
}

/* ══ 10. CONTEXT MENU ════════════════════════════════════════════════ */

.ag-ctx {
  position: fixed;
  z-index: 100;
  min-width: 180px;
  background: var(--bg-card, #fff);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: var(--radius-md, 8px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .15);
  padding: 4px;
  animation: ag-ctx-in .1s ease;
}

@keyframes ag-ctx-in {
  from { opacity: 0; transform: scale(.96); }
  to   { opacity: 1; transform: scale(1); }
}

.ag-ctx-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 8px 12px;
  border: none;
  background: transparent;
  color: var(--tx-base, #1e293b);
  font-size: var(--font-sm, 13px);
  font-family: inherit;
  cursor: pointer;
  border-radius: 6px;
  transition: background .12s;
  text-align: left;
}

.ag-ctx-item:hover {
  background: var(--bg-hover, rgba(0, 0, 0, .02));
}

.ag-ctx-item--danger {
  color: var(--tx-red, #dc2626);
}

.ag-ctx-sep {
  height: 1px;
  background: var(--border-soft, #f1f5f9);
  margin: 4px 0;
}

/* ══ 11. NOW LINE ════════════════════════════════════════════════════ */

.ag-now-line {
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--tx-red, #dc2626);
  z-index: 5;
  pointer-events: none;
}

.ag-now-line::before {
  content: '';
  position: absolute;
  left: 0;
  top: -3px;
  width: 8px;
  height: 8px;
  background: var(--tx-red, #dc2626);
  border-radius: 50%;
}

/* ══ 12. ANIMATIONS ══════════════════════════════════════════════════ */

@keyframes ag-fade {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: none; }
}

.ag-view-enter {
  animation: ag-fade .15s ease-out;
  min-height: 100%;
}

/* ══ 13. FOCUS VIEW ══════════════════════════════════════════════════ */

.ag-focus {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}

/* Summary bar */
.ag-fc-summary {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 16px;
  font-size: var(--font-xs, 11px);
  color: var(--tx-muted, #64748b);
  border-bottom: 1px solid var(--border-soft, #f1f5f9);
  flex-shrink: 0;
  flex-wrap: wrap;
  background: var(--bg-card, #fff);
}

.ag-fc-summary strong {
  color: var(--tx-base, #1e293b);
}

.ag-fc-summary svg {
  vertical-align: -2px;
}

/* Summary controls (toggle, modalidad dropdown) */
.ag-fc-ctrl {
  display: flex;
  align-items: center;
  gap: 4px;
  background: var(--bg-surface, #f8fafc);
  border: 1px solid var(--border, #e2e8f0);
  color: var(--tx-muted, #64748b);
  padding: 3px 10px;
  border-radius: var(--radius-md, 8px);
  font-size: 10px;
  font-family: inherit;
  cursor: pointer;
  transition: all .15s;
  white-space: nowrap;
  min-width: 120px;
  justify-content: center;
  text-align: center;
}

.ag-fc-ctrl:hover {
  border-color: var(--c-brand, #6d28d9);
  color: var(--c-brand, #6d28d9);
}

.ag-moddrop {
  position: relative;
}

.ag-moddrop .ag-drop-menu {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 140px;
  z-index: 60;
}

/* Legend */
.ag-fc-legend {
  display: flex;
  gap: 10px;
  margin-left: auto;
}

.ag-fc-legend-item {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
}

.ag-fc-legend-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
}

.ag-fc-legend-dot.ag-st--info  { background: var(--tx-blue, #2563eb); }
.ag-fc-legend-dot.ag-st--warn  { background: var(--tx-amber, #d97706); }
.ag-fc-legend-dot.ag-st--ok    { background: var(--tx-green, #16a34a); }
.ag-fc-legend-dot.ag-st--err   { background: var(--tx-red, #dc2626); }

/* Table */
.ag-fc-table {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
}

/* Header row */
.ag-fc-header-row {
  display: grid;
  grid-template-columns: 220px 1fr;
  border-bottom: 1px solid var(--border, #e2e8f0);
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--bg-card, #fff);
}

.ag-fc-prof--hdr {
  padding: 8px 12px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--tx-muted, #64748b);
  display: flex;
  align-items: flex-end;
}

.ag-fc-track--hdr {
  position: relative;
  height: 28px;
  border-left: 1px solid var(--border-soft, #f1f5f9);
}

/* Hour labels in header */
.ag-fc-hour {
  position: absolute;
  top: 50%;
  font-size: 10px;
  font-family: inherit;
  color: var(--tx-muted, #64748b);
  white-space: nowrap;
  transform: translate(-50%, -50%);
}

/* Data rows */
.ag-fc-row {
  display: grid;
  grid-template-columns: 220px 1fr;
  min-height: 64px;
  border-bottom: 1px solid var(--border-soft, #f1f5f9);
  transition: background .12s;
}

.ag-fc-row:hover {
  background: var(--bg-hover, rgba(0, 0, 0, .02));
}

/* Prof cell */
.ag-fc-prof {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
}

.ag-fc-av {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  overflow: hidden;
  flex-shrink: 0;
}

.ag-fc-av img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.ag-fc-prof-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
}

.ag-fc-name {
  font-size: var(--font-sm, 13px);
  font-weight: 500;
  color: var(--tx-base, #1e293b);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ag-fc-spec {
  font-size: 10px;
  color: var(--tx-dim, #94a3b8);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ag-fc-count {
  font-size: 10px;
  font-weight: 700;
  color: var(--c-brand, #6d28d9);
  background: var(--c-brand-muted, rgba(109, 40, 217, .06));
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* Track (timeline de cada profesional) */
.ag-fc-track {
  position: relative;
  border-left: 1px solid var(--border-soft, #f1f5f9);
  align-self: stretch;
  display: flex;
  align-items: center;
}

.ag-fc-gridline {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--border-soft, #f1f5f9);
}

.ag-fc-track--empty {
  background: repeating-linear-gradient(
    45deg, transparent, transparent 4px,
    var(--border-soft, #f1f5f9) 4px,
    var(--border-soft, #f1f5f9) 5px
  );
  opacity: .6;
}

/* Cita blocks en Focus */
.ag-fc-block {
  position: absolute;
  top: 4px;
  bottom: 4px;
  background: var(--bg-card, #fff);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: var(--radius-md, 8px);
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 7px;
  cursor: pointer;
  overflow: hidden;
  transition: border-color .15s;
}

.ag-fc-block:hover {
  border-color: var(--c-brand-soft, #a78bfa);
}

.ag-fc-block.ag-st--info  { background: rgba(37, 99, 235, .06);  border-color: rgba(37, 99, 235, .22); }
.ag-fc-block.ag-st--warn  { background: rgba(217, 119, 6, .06);  border-color: rgba(217, 119, 6, .22); }
.ag-fc-block.ag-st--ok    { background: rgba(22, 163, 74, .06);  border-color: rgba(22, 163, 74, .22); }
.ag-fc-block.ag-st--err   { background: rgba(220, 38, 38, .06);  border-color: rgba(220, 38, 38, .22); }
.ag-fc-block.ag-st--muted { background: var(--bg-surface, #f8fafc); border-color: var(--border, #e2e8f0); }

/* Block labels */
.ag-fc-blk-hora {
  font-size: var(--font-xs, 11px);
  font-weight: 600;
  color: var(--tx-base, #1e293b);
  white-space: nowrap;
  flex-shrink: 0;
}

.ag-fc-blk-name {
  font-size: var(--font-xs, 11px);
  color: var(--tx-muted, #64748b);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
  min-width: 0;
}

.ag-fc-blk-pill {
  font-size: 8px;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 999px;
  flex-shrink: 0;
  text-transform: uppercase;
  letter-spacing: .3px;
}

.ag-fc-blk-pill.ag-st--info  { background: rgba(37, 99, 235, .12);  color: var(--tx-blue, #2563eb); }
.ag-fc-blk-pill.ag-st--warn  { background: rgba(217, 119, 6, .12);  color: var(--tx-amber, #d97706); }
.ag-fc-blk-pill.ag-st--ok    { background: rgba(22, 163, 74, .12);  color: var(--tx-green, #16a34a); }
.ag-fc-blk-pill.ag-st--err   { background: rgba(220, 38, 38, .12);  color: var(--tx-red, #dc2626); }
.ag-fc-blk-pill.ag-st--muted { background: var(--bg-hover, rgba(0, 0, 0, .04)); color: var(--tx-dim, #94a3b8); }

/* ══ 17. MONTH VIEW (futura) ═════════════════════════════════════════ */

.ag-month {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1px;
  background: var(--border-soft, #f1f5f9);
  border-radius: var(--radius-md, 8px);
  overflow: hidden;
  margin: 16px 20px;
}

.ag-month-header {
  background: var(--bg-card, #fff);
  padding: 8px;
  text-align: center;
  font-size: var(--font-xs, 11px);
  font-weight: 600;
  color: var(--tx-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .5px;
}

.ag-month-cell {
  background: var(--bg-card, #fff);
  padding: 8px;
  min-height: 80px;
  cursor: pointer;
  transition: background .15s;
}

.ag-month-cell:hover {
  background: var(--bg-hover, rgba(0, 0, 0, .02));
}

.ag-month-cell.ag-outside {
  opacity: .35;
}

.ag-month-day {
  font-size: var(--font-sm, 13px);
  font-weight: 600;
  color: var(--tx-base, #1e293b);
  margin-bottom: 4px;
}

.ag-month-cell.ag-today .ag-month-day {
  background: var(--c-brand, #6d28d9);
  color: #fff;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-xs, 11px);
}

.ag-month-dots {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
}

.ag-month-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
}

.ag-month-more {
  font-size: 9px;
  color: var(--tx-muted, #64748b);
  font-weight: 600;
}

.ag-dot-tooltip {
  position: fixed;
  z-index: 20;
  background: var(--bg-card, #fff);
  border: 1px solid var(--border-soft, #f1f5f9);
  border-radius: var(--radius-md, 8px);
  padding: 8px 10px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
  font-size: var(--font-xs, 11px);
  min-width: 140px;
  max-width: 220px;
  pointer-events: none;
  animation: ag-fade .12s ease-out;
}

.ag-dot-tooltip-item {
  padding: 2px 0;
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--tx-base, #1e293b);
}

.ag-legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* ══ 14. WEEK VIEW ═══════════════════════════════════════════════════ */

.ag-week {
  display: grid;
  gap: 0;
  background: var(--bg-card, #fff);
  margin: 0;
  min-height: 100%;
}

.ag-week-gutter {
  grid-row: 2;
  border-right: 1px solid var(--border-soft, #f1f5f9);
}

.ag-week-hcell {
  text-align: center;
  padding: 8px 4px;
  font-size: var(--font-xs, 11px);
  font-weight: 500;
  color: var(--tx-muted, #64748b);
  border-bottom: 1px solid var(--border-soft, #f1f5f9);
  position: sticky;
  top: 0;
  z-index: 3;
  background: var(--bg-card, #fff);
}

.ag-week-hcell.ag-week-today { color: var(--c-brand, #6d28d9); font-weight: 700; }

.ag-week-num {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--c-brand, #6d28d9); color: #fff;
  width: 22px; height: 22px; border-radius: 50%; font-size: 10px; font-weight: 700;
}

.ag-time-label {
  position: absolute;
  right: 6px;
  font-size: 10px;
  color: var(--tx-dim, #94a3b8);
  transform: translateY(-50%);
  pointer-events: none;
}

.ag-hour-line {
  position: absolute;
  left: 0; right: 0;
  height: 1px;
  background: var(--border-soft, #f1f5f9);
  pointer-events: none;
}

.ag-week-col { border-left: 1px solid var(--border-soft, #f1f5f9); }

.ag-slot-available {
  position: absolute; left: 0; right: 0;
  display: flex; align-items: center; justify-content: center;
  color: var(--tx-dim, #94a3b8); font-size: 10px;
  opacity: 0; cursor: pointer; transition: opacity .15s;
  border-radius: 4px; z-index: 0;
}
.ag-slot-available:hover { opacity: 1; background: var(--c-brand-muted, rgba(109,40,217,.04)); }

.ag-slot-unavailable {
  position: absolute; left: 0; right: 0;
  background: repeating-linear-gradient(45deg, transparent, transparent 4px, var(--border-soft, #f1f5f9) 4px, var(--border-soft, #f1f5f9) 5px);
  opacity: .4; pointer-events: none;
}

.ag-drop-target { background: var(--c-brand-muted, rgba(109,40,217,.06)) !important; }

.ag-btn-res {
  display: flex; align-items: center; gap: 5px;
  padding: 7px 14px; border-radius: var(--radius-md, 8px);
  border: 1px solid var(--border, #e2e8f0);
  background: var(--bg-card, #fff); color: var(--tx-base, #1e293b);
  font-size: var(--font-sm, 13px); font-family: inherit; cursor: pointer;
  transition: border-color .15s; white-space: nowrap;
}
.ag-btn-res:hover { border-color: var(--c-brand-soft, #a78bfa); }

.ag-mod-pills { display: flex; gap: 2px; }
.ag-mod-pill {
  display: flex; align-items: center; gap: 3px;
  padding: 4px 10px; border: 1px solid var(--border, #e2e8f0);
  border-radius: 6px; background: transparent;
  color: var(--tx-muted, #64748b); font-size: 10px; font-family: inherit; cursor: pointer;
  transition: all .15s;
}
.ag-mod-pill:hover { color: var(--tx-base, #1e293b); }
.ag-mod-pill--on {
  background: var(--c-brand-muted, rgba(109,40,217,.06));
  color: var(--c-brand, #6d28d9); border-color: var(--c-brand-soft, #a78bfa); font-weight: 600;
}

/* ══ 15. DAY VIEW ════════════════════════════════════════════════════ */

.ag-day { /* overflow handled by parent .ag-content */ }
.ag-day-col { border-left: 1px solid var(--border-soft, #f1f5f9); }

.ag-day-summary {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 20px;
  border-bottom: 1px solid var(--border-soft, #f1f5f9);
  background: var(--bg-card, #fff);
  position: sticky;
  top: 0;
  z-index: 3;
}
.ag-day-title { font-size: var(--font-sm, 13px); font-weight: 600; color: var(--tx-base, #1e293b); }
.ag-day-count { font-size: var(--font-xs, 11px); color: var(--tx-muted, #64748b); }

/* ══ 18. LIST / RESERVAS (agl-*) ═════════════════════════════════════ */

.agl-root { display: flex; flex-direction: column; height: 100%; overflow: hidden; }

.agl-filters {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 16px;
  border-bottom: 1px solid var(--border-soft, #f1f5f9);
  background: var(--bg-surface, #f8fafc);
  flex-shrink: 0; flex-wrap: wrap;
}
.agl-spacer { flex: 1; }

.agl-drop { position: relative; }
.agl-drop-trigger {
  display: flex; align-items: center; gap: 5px;
  padding: 5px 10px; border: 1px solid var(--border, #e2e8f0);
  border-radius: 6px; background: var(--bg-card, #fff);
  font-size: 12px; font-family: inherit; cursor: pointer; color: var(--tx-base, #1e293b);
  transition: border-color .15s;
}
.agl-drop-trigger:hover { border-color: var(--c-brand-soft, #a78bfa); }
.agl-drop-menu {
  position: absolute; top: calc(100% + 4px); left: 0; min-width: 160px; z-index: 50;
  background: var(--bg-card, #fff); border: 1px solid var(--border, #e2e8f0);
  border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,.12); padding: 4px;
  max-height: 280px; overflow-y: auto;
}
.agl-drop-item {
  padding: 6px 10px; border-radius: 5px; cursor: pointer;
  font-size: 12px; color: var(--tx-base, #1e293b); transition: background .12s;
}
.agl-drop-item:hover { background: var(--bg-hover, rgba(0,0,0,.02)); }
.agl-drop-item--on { background: var(--c-brand-muted, rgba(109,40,217,.06)); color: var(--c-brand, #6d28d9); font-weight: 600; }

.agl-search { display: flex; align-items: center; gap: 4px; }
.agl-search-btn {
  width: 30px; height: 30px; border: 1px solid var(--border, #e2e8f0);
  border-radius: 6px; background: var(--bg-card, #fff); cursor: pointer;
  display: flex; align-items: center; justify-content: center; color: var(--tx-muted, #64748b);
}
.agl-search-input {
  width: 180px; height: 30px; border: 1px solid var(--border, #e2e8f0);
  border-radius: 6px; padding: 0 8px; font-size: 12px; font-family: inherit;
  color: var(--tx-base, #1e293b); background: var(--bg-card, #fff); outline: none;
}
.agl-search-input:focus { border-color: var(--c-brand, #6d28d9); }
.agl-search-x {
  width: 24px; height: 24px; border: none; background: transparent;
  cursor: pointer; color: var(--tx-muted, #64748b); display: flex; align-items: center; justify-content: center;
}

.agl-dates { display: flex; align-items: center; gap: 4px; }
.agl-date {
  height: 30px; border: 1px solid var(--border, #e2e8f0); border-radius: 6px;
  padding: 0 8px; font-size: 12px; font-family: inherit; color: var(--tx-base, #1e293b);
  background: var(--bg-card, #fff); width: 130px;
}
.agl-date-sep { font-size: 12px; color: var(--tx-dim, #94a3b8); }

.agl-table-wrap { flex: 1; overflow: auto; }
.agl-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.agl-table th {
  text-align: left; padding: 8px 12px; font-size: 10px; font-weight: 600;
  color: var(--tx-muted, #64748b); text-transform: uppercase; letter-spacing: .04em;
  border-bottom: 1px solid var(--border-soft, #f1f5f9); background: var(--bg-surface, #f8fafc);
  position: sticky; top: 0; z-index: 1;
}
.agl-table td { padding: 10px 12px; border-bottom: 1px solid var(--border-soft, #f1f5f9); color: var(--tx-base, #1e293b); }
.agl-row { cursor: pointer; transition: background .12s; }
.agl-row:hover td { background: var(--bg-hover, rgba(0,0,0,.02)); }
.agl-px-name { font-weight: 500; font-size: 13px; }
.agl-px-rut { font-size: 11px; color: var(--tx-dim, #94a3b8); }
.agl-prof { display: flex; align-items: center; gap: 6px; }
.agl-prof-av {
  width: 22px; height: 22px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 8px; font-weight: 700; color: #fff; flex-shrink: 0;
}
.agl-mod { display: flex; align-items: center; gap: 4px; font-size: 12px; color: var(--tx-muted, #64748b); }
.agl-pill {
  display: inline-block; font-size: 10px; padding: 2px 8px;
  border-radius: 10px; font-weight: 600;
}
.agl-eye {
  width: 28px; height: 28px; border: 1px solid var(--border, #e2e8f0);
  border-radius: 6px; background: var(--bg-card, #fff);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: var(--tx-muted, #64748b);
}
.agl-eye:hover { border-color: var(--c-brand-soft, #a78bfa); }
.agl-empty {
  text-align: center; padding: 48px 20px; color: var(--tx-muted, #64748b);
  font-size: 13px; line-height: 2;
}
.agl-count { padding: 8px 16px; font-size: 12px; color: var(--tx-muted, #64748b); border-top: 1px solid var(--border-soft, #f1f5f9); flex-shrink: 0; }

/* Blade detail */
.agl-blade-body { display: grid; grid-template-columns: 1fr 1fr 1.5fr; min-height: 400px; }
.agl-col { padding: 16px 20px; }
.agl-col-border { border-left: 1px solid var(--border-soft, #f1f5f9); }
.agl-col-title { font-size: 10px; font-weight: 600; color: var(--tx-muted, #64748b); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 14px; }
.agl-detail-header { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.agl-detail-av {
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--c-brand-muted, rgba(109,40,217,.08));
  color: var(--c-brand, #6d28d9); display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 600; flex-shrink: 0;
}
.agl-detail-name { font-size: 14px; font-weight: 600; color: var(--tx-base, #1e293b); }
.agl-detail-rut { font-size: 12px; color: var(--tx-muted, #64748b); }
.agl-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; }
.agl-badges { display: flex; gap: 5px; margin-bottom: 12px; flex-wrap: wrap; }
.agl-badge { font-size: 10px; padding: 2px 8px; border-radius: 10px; font-weight: 500; display: inline-flex; align-items: center; gap: 3px; }
.agl-badge-ok { background: rgba(22,163,74,.08); color: var(--tx-green, #16a34a); }
.agl-badge-warn { background: rgba(217,119,6,.08); color: var(--tx-amber, #d97706); }
.agl-field { margin-bottom: 8px; }
.agl-fl { font-size: 10px; color: var(--tx-dim, #94a3b8); margin-bottom: 1px; display: block; }
.agl-fv { font-size: 13px; color: var(--tx-base, #1e293b); display: flex; align-items: center; gap: 4px; }
.agl-link { font-size: 12px; color: var(--c-brand, #6d28d9); cursor: pointer; background: none; border: none; font-family: inherit; font-weight: 600; padding: 0; }
.agl-link:hover { text-decoration: underline; }
.agl-note { margin-top: 12px; padding: 8px 10px; border-radius: 6px; background: var(--bg-surface, #f8fafc); font-size: 12px; color: var(--tx-muted, #64748b); }

/* Timeline */
.agl-timeline { position: relative; padding-left: 20px; }
.agl-tl-line { position: absolute; left: 6px; top: 8px; bottom: 8px; width: 1px; background: var(--border-soft, #f1f5f9); }
.agl-tl-node { position: relative; margin-bottom: 16px; }
.agl-tl-node:last-child { margin-bottom: 0; }
.agl-tl-dot {
  position: absolute; left: -17px; top: 3px;
  width: 9px; height: 9px; border-radius: 50%;
  border: 1.5px solid var(--border, #e2e8f0); background: var(--bg-card, #fff);
}
.agl-tl-active { background: var(--c-brand, #6d28d9) !important; border-color: var(--c-brand, #6d28d9) !important; }
.agl-tl-ok { background: var(--tx-green, #16a34a) !important; border-color: var(--tx-green, #16a34a) !important; }
.agl-tl-time { font-size: 10px; color: var(--tx-dim, #94a3b8); }
.agl-tl-action { font-size: 12px; color: var(--tx-base, #1e293b); }
.agl-tl-who { font-size: 11px; color: var(--tx-muted, #64748b); }
.agl-tl-resend { font-size: 11px; color: var(--c-brand, #6d28d9); cursor: pointer; background: none; border: none; font-family: inherit; font-weight: 600; padding: 0; margin-top: 2px; }

/* Action bar */
.agl-action-bar {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 20px;
  border-top: 1px solid var(--border-soft, #f1f5f9);
  background: var(--bg-surface, #f8fafc);
}
.agl-act {
  display: flex; align-items: center; gap: 5px;
  padding: 7px 14px; border-radius: 6px;
  border: 1px solid var(--border, #e2e8f0);
  background: var(--bg-card, #fff); color: var(--tx-base, #1e293b);
  font-size: 12px; font-family: inherit; cursor: pointer; font-weight: 500;
  transition: all .15s;
}
.agl-act:hover { border-color: var(--c-brand-soft, #a78bfa); }
.agl-act-primary { background: var(--tx-green, #16a34a); color: #fff; border-color: var(--tx-green, #16a34a); }
.agl-act-primary:hover { opacity: .9; }
.agl-act-danger { color: var(--tx-red, #dc2626); border-color: rgba(220,38,38,.3); }
.agl-act-danger:hover { border-color: var(--tx-red, #dc2626); }
.agl-lock-note { font-size: 11px; color: var(--tx-dim, #94a3b8); display: flex; align-items: center; gap: 4px; }

/* ══ 19. MODAL / BLADE FORM (agm-*) ═════════════════════════════════ */

.agm-form { padding: 16px; }
.agm-row { display: flex; gap: 12px; }
.agm-row > * { flex: 1; }
.agm-field { margin-bottom: 12px; }
.agm-label { display: block; font-size: 10px; font-weight: 600; color: var(--tx-muted, #64748b); margin-bottom: 4px; text-transform: uppercase; letter-spacing: .03em; }
.agm-input, .agm-textarea {
  width: 100%; padding: 8px 10px;
  border: 1px solid var(--border-soft, #f1f5f9); border-radius: 6px;
  font-size: 13px; color: var(--tx-base, #1e293b); background: var(--bg-card, #fff);
  font-family: inherit; transition: border-color .15s; box-sizing: border-box;
}
.agm-input:focus, .agm-textarea:focus { outline: none; border-color: var(--c-brand, #6d28d9); }
.agm-textarea { resize: vertical; min-height: 60px; }
.agm-static { font-size: 13px; color: var(--tx-base, #1e293b); padding: 8px 0; }
.agm-rut { font-size: 11px; color: var(--tx-dim, #94a3b8); margin-left: 6px; }
.agm-pill { display: inline-block; font-size: 10px; padding: 2px 8px; border-radius: 10px; font-weight: 600; }

.agm-drop { position: relative; margin-bottom: 12px; }
.agm-drop-trigger {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; padding: 8px 10px;
  border: 1px solid var(--border-soft, #f1f5f9); border-radius: 6px;
  font-size: 13px; color: var(--tx-base, #1e293b); background: var(--bg-card, #fff);
  font-family: inherit; cursor: pointer; transition: border-color .15s;
}
.agm-drop-trigger:hover { border-color: var(--c-brand-soft, #a78bfa); }
.agm-drop-menu {
  position: absolute; top: calc(100% + 2px); left: 0; right: 0; z-index: 40;
  background: var(--bg-card, #fff); border: 1px solid var(--border, #e2e8f0);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.1); padding: 4px;
  max-height: 200px; overflow-y: auto;
}
.agm-drop-item {
  padding: 6px 10px; border-radius: 5px; cursor: pointer;
  font-size: 12px; color: var(--tx-base, #1e293b); transition: background .12s;
}
.agm-drop-item:hover { background: var(--bg-hover, rgba(0,0,0,.02)); }
.agm-drop-item--on { background: var(--c-brand-muted, rgba(109,40,217,.06)); color: var(--c-brand, #6d28d9); font-weight: 600; }
.agm-prof-opt { display: flex; align-items: center; gap: 6px; }
.agm-av {
  width: 20px; height: 20px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 8px; font-weight: 700; color: #fff; flex-shrink: 0;
}

.agm-px-search { position: relative; }
.agm-px-results {
  position: absolute; top: 100%; left: 0; right: 0; z-index: 30;
  background: var(--bg-card, #fff); border: 1px solid var(--border, #e2e8f0);
  border-radius: 0 0 6px 6px; box-shadow: 0 4px 8px rgba(0,0,0,.1);
  max-height: 200px; overflow-y: auto;
}
.agm-px-item {
  padding: 8px 10px; cursor: pointer; display: flex; justify-content: space-between;
  transition: background .12s;
}
.agm-px-item:hover { background: var(--bg-hover, rgba(0,0,0,.02)); }
.agm-px-item-name { font-size: 13px; color: var(--tx-base, #1e293b); }
.agm-px-item-rut { font-size: 11px; color: var(--tx-dim, #94a3b8); }
.agm-px-empty { padding: 12px; text-align: center; font-size: 12px; color: var(--tx-muted, #64748b); }

.agm-actions { display: flex; gap: 8px; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--border-soft, #f1f5f9); }
.agm-btn-save {
  padding: 8px 20px; border: none; border-radius: 6px;
  background: var(--c-brand, #6d28d9); color: #fff;
  font-size: 13px; font-family: inherit; cursor: pointer; font-weight: 600;
  transition: opacity .15s;
}
.agm-btn-save:hover { opacity: .9; }
.agm-btn-save:disabled { opacity: .5; cursor: not-allowed; }
.agm-btn-cancel {
  padding: 8px 14px; border: 1px solid var(--border, #e2e8f0); border-radius: 6px;
  background: var(--bg-card, #fff); color: var(--tx-muted, #64748b);
  font-size: 13px; font-family: inherit; cursor: pointer;
}

/* ══ 20. MOBILE (agmb-*) ═════════════════════════════════════════════ */

.agmb-root { display: flex; flex-direction: column; height: 100%; overflow: hidden; }

.agmb-header {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 12px; background: var(--bg-card, #fff);
  border-bottom: 1px solid var(--border-soft, #f1f5f9); flex-shrink: 0;
}
.agmb-nav {
  width: 36px; height: 36px; border: none; background: transparent;
  color: var(--tx-muted, #64748b); cursor: pointer; display: flex; align-items: center; justify-content: center;
  border-radius: 8px;
}
.agmb-nav:active { background: var(--bg-hover, rgba(0,0,0,.03)); }
.agmb-date { flex: 1; text-align: center; }
.agmb-date-day { display: block; font-size: 14px; font-weight: 600; color: var(--tx-base, #1e293b); }
.agmb-date-full { display: block; font-size: 11px; color: var(--tx-muted, #64748b); }

.agmb-slots { flex: 1; overflow-y: auto; padding: 8px 12px; }

.agmb-slot { margin-bottom: 6px; }
.agmb-slot-empty {
  display: flex; align-items: center; gap: 10px;
  padding: 12px; border-radius: 8px;
  border: 1px dashed var(--border, #e2e8f0); cursor: pointer;
  transition: background .12s;
}
.agmb-slot-empty:active { background: var(--bg-hover, rgba(0,0,0,.02)); }
.agmb-slot-hora { font-size: 12px; font-weight: 600; color: var(--tx-muted, #64748b); min-width: 40px; }
.agmb-slot-avail { font-size: 12px; color: var(--tx-dim, #94a3b8); }

.agmb-card {
  display: flex; gap: 10px; padding: 10px 12px;
  background: var(--bg-card, #fff); border: 1px solid var(--border-soft, #f1f5f9);
  border-radius: 8px; cursor: pointer; transition: border-color .15s;
}
.agmb-card:active { border-color: var(--c-brand-soft, #a78bfa); }
.agmb-card-left { display: flex; flex-direction: column; align-items: center; min-width: 40px; }
.agmb-card-hora { font-size: 13px; font-weight: 600; color: var(--tx-base, #1e293b); }
.agmb-card-dur { font-size: 9px; color: var(--tx-dim, #94a3b8); }
.agmb-card-body { flex: 1; min-width: 0; }
.agmb-card-name { font-size: 13px; font-weight: 500; color: var(--tx-base, #1e293b); margin-bottom: 4px; }
.agmb-card-meta { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.agmb-card-prof { font-size: 11px; color: var(--tx-muted, #64748b); margin-top: 2px; }
.agmb-pill { display: inline-block; font-size: 9px; padding: 2px 6px; border-radius: 8px; font-weight: 600; }
.agmb-mod { color: var(--tx-dim, #94a3b8); display: flex; align-items: center; }
.agmb-cs { display: flex; align-items: center; }

.agmb-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 60px 20px; gap: 12px; color: var(--tx-muted, #64748b); font-size: 13px; }

.agmb-fab {
  position: fixed; bottom: 72px; right: 16px; z-index: 20;
  width: 48px; height: 48px; border-radius: 50%;
  background: var(--c-brand, #6d28d9); color: #fff; border: none;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 12px rgba(109,40,217,.35); cursor: pointer;
}
.agmb-fab:active { transform: scale(.95); }

/* Bottom sheet */
.agmb-sheet { position: fixed; inset: 0; z-index: 200; }
.agmb-sh-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.4); opacity: 0; transition: opacity .2s; }
.agmb-sheet--open .agmb-sh-overlay { opacity: 1; }
.agmb-sh-body {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: var(--bg-card, #fff); border-radius: 16px 16px 0 0;
  padding: 16px; padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  transform: translateY(100%); transition: transform .25s ease-out;
}
.agmb-sheet--open .agmb-sh-body { transform: none; }
.agmb-sh-header { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.agmb-sh-av {
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--c-brand-muted, rgba(109,40,217,.08)); color: var(--c-brand, #6d28d9);
  display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600;
}
.agmb-sh-name { font-size: 14px; font-weight: 600; color: var(--tx-base, #1e293b); }
.agmb-sh-rut { font-size: 11px; color: var(--tx-muted, #64748b); }
.agmb-sh-info { display: flex; gap: 12px; margin-bottom: 12px; font-size: 12px; color: var(--tx-muted, #64748b); flex-wrap: wrap; }
.agmb-sh-actions { display: flex; flex-direction: column; gap: 6px; }
.agmb-sh-btn {
  display: flex; align-items: center; gap: 8px;
  width: 100%; padding: 12px; border: 1px solid var(--border-soft, #f1f5f9);
  border-radius: 8px; background: var(--bg-card, #fff);
  font-size: 14px; font-family: inherit; cursor: pointer; color: var(--tx-base, #1e293b);
}
.agmb-sh-btn:active { background: var(--bg-hover, rgba(0,0,0,.02)); }
.agmb-sh-primary { background: var(--tx-green, #16a34a); color: #fff; border-color: var(--tx-green, #16a34a); }
.agmb-sh-danger { color: var(--tx-red, #dc2626); }

/* ══ 21. PRINT ═══════════════════════════════════════════════════════ */

@media print {
  .ag-topbar, .ag-fc-summary, .ag-ctx, .agl-filters, .agmb-fab, .agmb-sheet { display: none !important; }
  .ag-content { overflow: visible !important; height: auto !important; }
  .ag-fc-table { overflow: visible !important; }
  .ag-cita { box-shadow: none !important; border: 1px solid #ccc !important; }
}

/* ══ 22. PATCHES (clases faltantes) ══════════════════════════════════ */

.ag-now-dot {
  position: absolute; left: -3px; top: -3px;
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--tx-red, #dc2626);
}

.ag-mod-tele { display: flex; align-items: center; color: var(--tx-muted, #64748b); }

.ag-viewdrop-trigger {
  display: flex; align-items: center; gap: 6px;
  padding: 6px 12px; background: var(--bg-surface, #f8fafc);
  border: 1px solid var(--border, #e2e8f0); border-radius: 8px;
  color: var(--tx-base, #1e293b); font-size: var(--font-sm, 13px);
  font-family: inherit; cursor: pointer; transition: border-color .15s; white-space: nowrap;
}
.ag-viewdrop-trigger:hover { border-color: var(--c-brand-soft, #a78bfa); }
.ag-viewdrop-label { flex: 1; }
.ag-viewdrop-menu {
  position: absolute; top: calc(100% + 4px); right: 0; left: auto;
  min-width: 160px; z-index: 60;
  background: var(--bg-card, #fff); border: 1px solid var(--border, #e2e8f0);
  border-radius: 8px; box-shadow: 0 4px 16px rgba(0,0,0,.12);
  padding: 4px; max-height: 300px; overflow-y: auto;
}

.ag-btn-res--on {
  background: var(--c-brand-muted, rgba(109,40,217,.06));
  color: var(--c-brand, #6d28d9);
  border-color: var(--c-brand-soft, #a78bfa);
  font-weight: 600;
}

/* ══ 23. LIST REFINEMENTS (Apple table + filter labels) ══════════════ */

.agl-table td { border-bottom: none; }
.agl-table tbody tr:nth-child(even) td { background: var(--bg-surface, #f8fafc); }
.agl-row:hover td { background: var(--bg-hover, rgba(0,0,0,.03)) !important; }
.agl-td-num { font-size: 11px; color: var(--tx-dim, #94a3b8); text-align: center; font-variant-numeric: tabular-nums; }
.agl-filter-label { font-size: 10px; font-weight: 600; color: var(--tx-muted, #64748b); text-transform: uppercase; letter-spacing: .04em; }

/* ══ 24. SEARCH BAR INTEGRADA + EMPTY STATE ══════════════════════════ */

.agl-search--open {
  display: flex; align-items: center;
  border: 1px solid var(--border, #e2e8f0); border-radius: 6px;
  background: var(--bg-card, #fff); padding: 0 4px 0 8px;
  transition: width .2s;
}
.agl-search--open:focus-within { border-color: var(--c-brand, #6d28d9); }
.agl-search-icon { display: flex; color: var(--tx-dim, #94a3b8); flex-shrink: 0; }
.agl-search--open .agl-search-input {
  border: none; outline: none; background: transparent;
  width: 160px; height: 28px; padding: 0 6px;
  font-size: 12px; font-family: inherit; color: var(--tx-base, #1e293b);
}
.agl-search--open .agl-search-x {
  width: 20px; height: 20px; border: none; background: transparent;
  cursor: pointer; color: var(--tx-dim, #94a3b8); display: flex;
  align-items: center; justify-content: center; flex-shrink: 0;
}

.agl-empty-wrap { padding: 0 !important; }
.agl-empty-state {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; padding: 60px 20px; gap: 8px;
  color: var(--tx-dim, #94a3b8);
}
.agl-empty-title {
  font-size: 15px; font-weight: 600;
  color: var(--tx-base, #1e293b); margin-top: 8px;
}
.agl-empty-sub {
  font-size: 12px; color: var(--tx-muted, #64748b);
  max-width: 300px; text-align: center; line-height: 1.5;
}

/* ══ 25. SSO AVATAR IMAGES ═══════════════════════════════════════════ */

.agl-prof-av img, .ag-drop-av img, .agl-detail-av img {
  width: 100%; height: 100%; border-radius: 50%; object-fit: cover;
}
.agl-prof-av { overflow: hidden; }
.agl-detail-av { overflow: hidden; }
.ag-drop-av { overflow: hidden; }

/* == 26. BLADE LAYOUT FIX ============================================ */

/* Blade wrapper: flex column para que action bar siempre este al fondo */
#moduleContent .ld-blade-body > div:first-child {
  display: flex; flex-direction: column; height: 100%;
}
.agl-blade-body { flex: 1; min-height: 0; overflow-y: auto; }
.agl-action-bar { flex-shrink: 0; }

/* == 27. BLADE PROPORTIONS =========================================== */

.agl-blade-body {
  grid-template-columns: 280px 1fr 300px !important;
  min-height: auto !important;
  gap: 0 !important;
}
.agl-col { padding: 20px 24px !important; }
.agl-detail-grid { gap: 14px 20px !important; }
.agl-field { margin-bottom: 0 !important; }
.agl-detail-header { margin-bottom: 16px !important; }
.agl-col-title { margin-bottom: 16px !important; font-size: 11px !important; }
.agl-action-bar { padding: 12px 24px !important; }

/* == 28. BLADE v2 HERO LAYOUT ======================================== */

.agl-blade-v2 { display: flex; flex-direction: column; height: 100%; }

.agl-hero {
  display: flex; align-items: center; gap: 16px;
  padding: 16px 24px;
  border-bottom: 1px solid var(--border-soft, #f1f5f9);
  flex-shrink: 0;
}
.agl-hero .agl-detail-av { width: 48px; height: 48px; font-size: 16px; flex-shrink: 0; }
.agl-hero-info { flex: 1; min-width: 0; }
.agl-hero-info .agl-detail-name { font-size: 16px; }
.agl-hero-info .agl-detail-rut { margin-top: 2px; }
.agl-hero-info .agl-badges { margin-top: 6px; }
.agl-hero-actions { display: flex; gap: 6px; flex-shrink: 0; }

.agl-blade-v2 .agl-blade-body {
  display: grid; grid-template-columns: 1fr 300px;
  flex: 1; min-height: 0; overflow-y: auto;
}

.agl-main { padding: 20px 24px; }

.agl-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px 24px; }
.agl-sep { height: 1px; background: var(--border-soft, #f1f5f9); margin: 16px 0; }

.agl-lock-bar {
  padding: 8px 24px;
  border-top: 1px solid var(--border-soft, #f1f5f9);
  flex-shrink: 0;
  text-align: right;
}

/* == 29. BLADE v2 PROPORTION FIX ===================================== */

.agl-blade-v2 .agl-blade-body {
  grid-template-columns: 1fr 260px !important;
}
.agl-grid-3 {
  grid-template-columns: 1fr 1fr !important;
  gap: 12px 20px !important;
}
.agl-main { padding: 20px 24px !important; overflow-y: auto; }

.agl-hero { padding: 14px 24px !important; gap: 14px !important; }
.agl-hero-actions { flex-wrap: wrap; justify-content: flex-end; gap: 5px !important; }
.agl-hero .agl-detail-av { width: 44px !important; height: 44px !important; font-size: 15px !important; }
.agl-note { margin-top: 14px !important; }
.agl-fv { word-break: break-word; }

/* == 30. MODAL NUEVA CITA — WIZARD v4 ================================ */

/* Cancel blade-body padding so wizard fills 100% */
#agm-wrap { margin: -16px; height: calc(100% + 32px); }

.agm-wizard { display: grid; grid-template-columns: 1fr 280px; height: 100%; min-height: 0; overflow: hidden; }
.agm-main { padding: 22px 28px; overflow-y: auto; }
.agm-side { padding: 18px 22px; overflow-y: auto; border-left: 1px solid var(--tx-line, #e2e8f0); background: var(--bg-surface, var(--bg-body, #f8fafc)); }

.agm-step { display: flex; gap: 12px; margin-bottom: 18px; align-items: flex-start; }
.agm-step-num { width: 24px; height: 24px; border-radius: 50%; background: var(--tx-line, #e2e8f0); color: var(--tx-muted, #94a3b8); font-size: 11px; font-weight: 600; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; transition: background .2s; }
.agm-step-done { background: var(--c-brand, #6d28d9); color: #fff; }
.agm-step-body { flex: 1; min-width: 0; }
.agm-step-title { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--c-brand, #6d28d9); font-weight: 600; margin-bottom: 8px; }

.agm-inp { width: 100%; padding: 8px 12px; border: 1px solid var(--tx-line, #cbd5e1); border-radius: 6px; font-size: 13px; font-family: inherit; color: var(--tx-text, #1e293b); background: var(--bg-card, #fff); outline: none; transition: border-color .15s; }
.agm-inp:focus { border-color: var(--c-brand, #6d28d9); box-shadow: 0 0 0 2px rgba(109,40,217,.12); }
.agm-inp-err { border-color: #dc2626 !important; background: rgba(220,38,38,.02) !important; }
.agm-err { font-size: 11px; color: #dc2626; margin-top: 2px; font-weight: 500; }
.agm-textarea { width: 100%; padding: 8px 12px; border: 1px solid var(--tx-line, #cbd5e1); border-radius: 6px; font-size: 13px; font-family: inherit; color: var(--tx-text, #1e293b); background: var(--bg-card, #fff); resize: vertical; min-height: 52px; outline: none; }
.agm-textarea:focus { border-color: var(--c-brand, #6d28d9); }
.agm-field-rel { position: relative; }
.agm-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.agm-val { font-size: 13px; color: var(--tx-text, #1e293b); font-weight: 500; }
.agm-val-s { font-size: 11px; color: var(--tx-muted, #94a3b8); }
.agm-sep { height: 1px; background: var(--tx-line, #e2e8f0); margin: 14px 0; }
.agm-empty { font-size: 12px; color: var(--tx-muted, #94a3b8); padding: 8px 0; }
.agm-link { font-size: 11px; color: var(--c-brand, #6d28d9); background: none; border: none; cursor: pointer; font-family: inherit; font-weight: 600; padding: 3px 8px; border-radius: 4px; }
.agm-link:hover { background: rgba(109,40,217,.06); }

.agm-av { width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 500; color: #fff; flex-shrink: 0; overflow: hidden; background: var(--c-brand, #6d28d9); }
.agm-av-sm { width: 22px; height: 22px; font-size: 9px; }

.agm-px-card { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 6px; border: 1px solid rgba(109,40,217,.25); background: rgba(109,40,217,.03); }
.agm-px-info { flex: 1; min-width: 0; }
.agm-px-name { font-size: 13px; font-weight: 500; color: var(--tx-text, #1e293b); }
.agm-px-rut { font-size: 11px; color: var(--tx-muted, #94a3b8); }

.agm-px-results { position: absolute; left: 0; right: 0; top: 100%; z-index: 20; background: var(--bg-card, #fff); border: 1px solid var(--tx-line, #cbd5e1); border-radius: 6px; max-height: 220px; overflow-y: auto; box-shadow: 0 6px 20px rgba(0,0,0,.1); }
.agm-px-item { display: flex; align-items: center; gap: 8px; padding: 9px 12px; cursor: pointer; font-size: 13px; }
.agm-px-item:hover { background: rgba(109,40,217,.04); }
.agm-px-iname { font-weight: 500; color: var(--tx-text, #1e293b); }
.agm-px-empty { padding: 10px 12px; font-size: 12px; color: var(--tx-muted, #94a3b8); }
.agm-px-create { display: block; width: 100%; text-align: left; padding: 10px 12px; font-size: 12px; font-weight: 600; color: var(--c-brand, #6d28d9); background: rgba(109,40,217,.04); border: none; border-top: 1px solid var(--tx-line, #e2e8f0); cursor: pointer; font-family: inherit; }
.agm-px-create:hover { background: rgba(109,40,217,.08); }

.agm-note-warn { font-size: 11px; display: inline-block; padding: 5px 12px; background: rgba(186,117,23,.12); color: #854F0B; border-radius: 6px; font-weight: 600; margin-bottom: 10px; }
.agm-newpx { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.agm-nf { display: flex; flex-direction: column; gap: 3px; }
.agm-nl { font-size: 9px; text-transform: uppercase; letter-spacing: .04em; color: var(--tx-muted, #94a3b8); }

.agm-badge { font-size: 10px; padding: 3px 10px; border-radius: 10px; font-weight: 600; display: inline-flex; align-items: center; gap: 3px; flex-shrink: 0; }
.agm-b-ok { background: rgba(59,109,17,.12); color: #3B6D11; }
.agm-b-warn { background: rgba(186,117,23,.12); color: #854F0B; }

.agm-tags { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.agm-tag { font-size: 11px; padding: 6px 14px; border-radius: 6px; cursor: pointer; border: 1px solid var(--tx-line, #cbd5e1); color: var(--tx-muted, #64748b); background: transparent; transition: all .15s; font-weight: 500; }
.agm-tag:hover { border-color: rgba(109,40,217,.3); }
.agm-tag-on { background: rgba(109,40,217,.1); color: var(--c-brand, #6d28d9); border-color: rgba(109,40,217,.4); font-weight: 600; }

.agm-dates { border: 1px solid var(--tx-line, #cbd5e1); border-radius: 6px; max-height: 160px; overflow-y: auto; }
.agm-date-item { display: flex; align-items: center; gap: 8px; padding: 8px 12px; cursor: pointer; font-size: 12px; border-bottom: 1px solid var(--tx-line, #f1f5f9); transition: background .1s; }
.agm-date-item:last-child { border-bottom: none; }
.agm-date-item:hover { background: rgba(109,40,217,.03); }
.agm-date-on { background: rgba(109,40,217,.06); border-left: 3px solid var(--c-brand, #6d28d9); }
.agm-date-day { font-weight: 500; color: var(--tx-text, #1e293b); min-width: 70px; }
.agm-date-avail { font-size: 10px; color: var(--c-brand, #6d28d9); font-weight: 600; margin-left: auto; }

.agm-slots { display: flex; flex-wrap: wrap; gap: 6px; }
.agm-slot { display: inline-block; padding: 6px 14px; border: 1px solid var(--tx-line, #cbd5e1); border-radius: 6px; font-size: 12px; color: var(--tx-muted, #64748b); cursor: pointer; transition: all .15s; font-weight: 500; }
.agm-slot:hover { border-color: rgba(109,40,217,.3); color: var(--tx-text, #1e293b); }
.agm-slot-on { background: rgba(109,40,217,.1); color: var(--c-brand, #6d28d9); border-color: rgba(109,40,217,.4); font-weight: 600; }

.agm-drop { position: relative; }
.agm-drop-trigger { display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 12px; border: 1px solid var(--tx-line, #cbd5e1); border-radius: 6px; font-size: 13px; font-family: inherit; color: var(--tx-text, #1e293b); background: var(--bg-card, #fff); cursor: pointer; text-align: left; }
.agm-drop-trigger svg { margin-left: auto; flex-shrink: 0; }
.agm-drop-menu { position: absolute; left: 0; right: 0; top: 100%; z-index: 20; background: var(--bg-card, #fff); border: 1px solid var(--tx-line, #cbd5e1); border-radius: 6px; max-height: 220px; overflow-y: auto; box-shadow: 0 6px 20px rgba(0,0,0,.1); }
.agm-drop-item { display: flex; align-items: center; gap: 8px; padding: 9px 12px; cursor: pointer; font-size: 13px; }
.agm-drop-item:hover { background: rgba(109,40,217,.04); }
.agm-di-on { background: rgba(109,40,217,.06); font-weight: 500; }

.agm-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; padding-top: 14px; border-top: 1px solid var(--tx-line, #e2e8f0); }
.agm-btn-p { padding: 9px 22px; border: none; border-radius: 6px; background: var(--c-brand, #6d28d9); color: #fff; font-size: 13px; font-family: inherit; cursor: pointer; font-weight: 600; }
.agm-btn-p:hover { filter: brightness(1.1); }
.agm-btn-p:disabled { opacity: .5; cursor: not-allowed; }
.agm-btn-s { padding: 9px 16px; border: 1px solid var(--tx-line, #cbd5e1); border-radius: 6px; background: transparent; color: var(--tx-text, #1e293b); font-size: 13px; cursor: pointer; font-family: inherit; }

.agm-side-t { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--c-brand, #6d28d9); font-weight: 600; margin-bottom: 8px; }
.agm-scard { background: var(--bg-card, #fff); border: 0.5px solid var(--tx-line, #e2e8f0); border-radius: 6px; padding: 10px 12px; margin-bottom: 8px; }
.agm-scard-t { font-size: 12px; font-weight: 500; color: var(--tx-text, #1e293b); }
.agm-scard-s { font-size: 10px; color: var(--tx-muted, #94a3b8); margin-top: 2px; }
.agm-check { font-size: 11px; color: var(--tx-text, #475569); display: flex; gap: 8px; align-items: center; line-height: 2; }
.agm-check-i { font-weight: 700; font-size: 10px; min-width: 16px; text-align: center; }
.agm-pday { display: flex; gap: 8px; align-items: center; font-size: 11px; padding: 5px 0; border-bottom: 0.5px solid var(--tx-line, #f1f5f9); }
.agm-pday:last-child { border-bottom: none; }
.agm-pday-h { color: var(--tx-muted, #94a3b8); min-width: 36px; }
.agm-pday-n { color: var(--tx-text, #1e293b); flex: 1; }
.agm-pday-new { background: rgba(109,40,217,.06); border-radius: 4px; padding: 5px 8px; margin: 0 -8px; color: var(--c-brand, #6d28d9); font-weight: 500; }
.agm-pday-new .agm-pday-h { color: var(--c-brand, #6d28d9); }

/* == 31. STICKY BARS FIX ============================================== */
.agl-filters { position: sticky; top: 0; z-index: 8; background: var(--bg-body, #f1f5f9); padding-bottom: 8px; }
.agl-header { position: sticky; top: 48px; z-index: 7; background: var(--bg-body, #f1f5f9); }
.ag-fc-summary { position: sticky; top: 0; z-index: 8; background: var(--bg-body, #f1f5f9); }

/* === agenda-list-v3 CSS === */
.agl-td-folio { font-family:'SF Mono',ui-monospace,monospace; font-size:11px; color:var(--c-brand); font-weight:500; letter-spacing:.3px; }
.agl-folio-bar { display:flex; align-items:center; gap:6px; margin-top:4px; }
.agl-folio-label { font-size:10px; color:var(--tx-dim); font-weight:500; }
.agl-folio-num { font-family:'SF Mono',ui-monospace,monospace; font-size:13px; color:var(--c-brand); font-weight:600; letter-spacing:.5px; }
.agl-folio-copy { background:none; border:none; color:var(--tx-dim); cursor:pointer; padding:3px; border-radius:4px; transition:color .15s,background .15s; display:flex; align-items:center; }
.agl-folio-copy:hover { color:var(--c-brand); background:rgba(109,40,217,.08); }
.agl-th-sort { cursor:pointer; user-select:none; white-space:nowrap; transition:color .15s; }
.agl-th-sort:hover { color:var(--c-brand); }
.agl-th-sort svg { opacity:.6; margin-left:2px; vertical-align:middle; }
.agl-th-active { color:var(--c-brand); }
.agl-active-filters { display:flex; align-items:center; gap:8px; padding:4px 10px; background:rgba(109,40,217,.06); border-radius:6px; font-size:11px; }
.agl-chip-label { color:var(--c-brand); font-weight:500; }
.agl-chip-clear { background:none; border:none; color:var(--tx-dim); cursor:pointer; font-size:11px; text-decoration:underline; font-family:inherit; }
.agl-chip-clear:hover { color:#e2e8f0; }
.agl-drop-cnt { font-size:10px; color:var(--tx-dim); margin-left:auto; padding-left:8px; }
.agl-table thead th { position:sticky; top:0; z-index:2; background:var(--bg-card); }
.agl-tl-expand { display:inline-flex; align-items:center; gap:4px; font-size:10px; color:var(--c-brand); cursor:pointer; margin-top:4px; background:none; border:none; padding:0; font-family:inherit; }
.agl-tl-expand:hover { text-decoration:underline; }
.agl-tl-detail { margin-top:6px; padding:10px 12px; background:rgba(255,255,255,.07); border-radius:6px; border:.5px solid rgba(255,255,255,.12); display:flex; flex-direction:column; gap:5px; }
.agl-tl-detail-row { display:flex; gap:10px; font-size:11px; line-height:1.6; align-items:baseline; }
.agl-tl-dl { color:#cbd5e1; min-width:90px; flex-shrink:0; font-size:10px; font-weight:500; }
/* === agenda-list 1.0.0 CSS === */
.agl-td-folio { font-family:'SF Mono',ui-monospace,monospace; font-size:11px; color:var(--c-brand); font-weight:500; letter-spacing:.3px; }
.agl-folio-bar { display:flex; align-items:center; gap:6px; margin-top:4px; }
.agl-folio-label { font-size:10px; color:var(--tx-dim); font-weight:500; }
.agl-folio-num { font-family:'SF Mono',ui-monospace,monospace; font-size:13px; color:var(--c-brand); font-weight:600; letter-spacing:.5px; }
.agl-folio-copy { background:none; border:none; color:var(--tx-dim); cursor:pointer; padding:3px; border-radius:4px; transition:color .15s,background .15s; display:flex; align-items:center; }
.agl-folio-copy:hover { color:var(--c-brand); background:rgba(109,40,217,.08); }
.agl-th-sort { cursor:pointer; user-select:none; white-space:nowrap; transition:color .15s; }
.agl-th-sort:hover { color:var(--c-brand); }
.agl-th-sort svg { opacity:.6; margin-left:2px; vertical-align:middle; }
.agl-th-active { color:var(--c-brand); }
.agl-clear-x { background:none; border:1px solid rgba(255,255,255,.12); color:var(--tx-dim); cursor:pointer; width:26px; height:26px; border-radius:6px; display:flex; align-items:center; justify-content:center; transition:all .15s; flex-shrink:0; margin-left:4px; }
.agl-clear-x:hover { color:#f1f5f9; border-color:rgba(255,255,255,.25); background:rgba(255,255,255,.06); }
.agl-drop-cnt { font-size:10px; color:var(--tx-dim); margin-left:auto; padding-left:8px; }
.agl-table thead th { position:sticky; top:0; z-index:2; background:var(--bg-card); }
.agl-tl-expand { display:inline-flex; align-items:center; gap:4px; font-size:10px; color:var(--c-brand); cursor:pointer; margin-top:4px; background:none; border:none; padding:0; font-family:inherit; }
.agl-tl-expand:hover { text-decoration:underline; }
.agl-tl-detail { margin-top:6px; padding:10px 12px; background:rgba(255,255,255,.05); border-radius:6px; border:.5px solid rgba(255,255,255,.08); display:flex; flex-direction:column; gap:5px; }
.agl-tl-detail-row { display:flex; gap:10px; font-size:11px; line-height:1.6; align-items:baseline; }
.agl-tl-dl { color:#cbd5e1; min-width:90px; flex-shrink:0; font-size:10px; font-weight:500; }
.agl-blade-v2 { overflow-x:hidden; }
.agl-blade-body { overflow-x:hidden; }
.agl-main { min-width:0; flex:1; }
.agl-tl-node { display:flex; gap:12px; position:relative; padding-bottom:20px; }
.agl-tl-body { display:flex; flex-direction:column; min-width:0; flex:1; }
.agl-tl-time { font-size:11px; color:#cbd5e1; font-family:'SF Mono',ui-monospace,monospace; letter-spacing:.2px; margin-bottom:2px; }
.agl-tl-action { font-size:12px; color:#f1f5f9; font-weight:500; }
.agl-tl-who { font-size:11px; color:var(--tx-dim); margin-top:1px; }

/* === agenda-list 1.0.0 CSS === */
/* table */
.agl-td-folio { font-family:'SF Mono',ui-monospace,monospace; font-size:11px; color:var(--c-brand); font-weight:500; letter-spacing:.3px; }
.agl-th-sort { cursor:pointer; user-select:none; white-space:nowrap; transition:color .15s; }
.agl-th-sort:hover { color:var(--c-brand); }
.agl-th-sort svg { opacity:.6; margin-left:2px; vertical-align:middle; }
.agl-th-active { color:var(--c-brand); }
.agl-table thead th { position:sticky; top:0; z-index:2; background:var(--bg-card); }
.agl-drop-cnt { font-size:10px; color:var(--tx-dim); margin-left:auto; padding-left:8px; }
/* consent dot in table */
.agl-px-cell { display:flex; align-items:center; gap:8px; }
.agl-px-cell svg { flex-shrink:0; }
/* filters */
.agl-drop-trigger { min-width:140px; justify-content:space-between; }
.agl-clear-btn { background:none; border:none; color:var(--c-brand); cursor:pointer; font-size:11px; font-weight:500; font-family:inherit; padding:4px 10px; border-radius:6px; transition:background .15s; white-space:nowrap; margin-left:6px; }
.agl-clear-btn:hover { background:rgba(109,40,217,.08); }
/* folio strip */
.agl-folio-strip { display:flex; align-items:center; gap:8px; padding:8px 24px; border-bottom:.5px solid rgba(255,255,255,.06); background:rgba(109,40,217,.03); }
.agl-folio-strip .agl-folio-label { font-size:10px; color:var(--tx-dim); font-weight:500; text-transform:uppercase; letter-spacing:.5px; }
.agl-folio-strip .agl-folio-num { font-family:'SF Mono',ui-monospace,monospace; font-size:13px; color:var(--c-brand); font-weight:600; letter-spacing:.5px; }
.agl-folio-copy { background:none; border:none; color:var(--tx-dim); cursor:pointer; padding:3px; border-radius:4px; transition:color .15s,background .15s; display:flex; align-items:center; }
.agl-folio-copy:hover { color:var(--c-brand); background:rgba(109,40,217,.08); }
/* hero avatar */
.agl-blade-v2 .agl-detail-av { width:56px !important; height:56px !important; font-size:18px !important; transition:transform .2s ease; }
.agl-blade-v2 .agl-detail-av:hover { transform:scale(1.08); }
@keyframes agl-av-in { 0%{transform:scale(.85);opacity:.4} 100%{transform:scale(1);opacity:1} }
.agl-blade-v2 .agl-detail-av { animation:agl-av-in .3s ease-out; }

/* layout */
.agl-blade-v2 { overflow-x:hidden; }
.agl-blade-body { overflow-x:hidden; }
.agl-main { min-width:0; flex:1; }
.agl-root { display:flex; flex-direction:column; height:100%; min-height:0; }
.agl-table-wrap { flex:1; min-height:0; overflow-y:auto; }
/* timeline — high contrast */
.agl-tl-node { display:flex; gap:12px; position:relative; padding-bottom:20px; }
.agl-tl-body { display:flex; flex-direction:column; min-width:0; flex:1; }
.agl-tl-time { font-size:11px; color:var(--tx-muted); font-family:'SF Mono',ui-monospace,monospace; letter-spacing:.2px; margin-bottom:2px; }
.agl-tl-action { font-size:12px; color:var(--tx-base); font-weight:500; }
.agl-tl-who { font-size:11px; color:var(--tx-muted); margin-top:1px; }
.agl-tl-expand { display:inline-flex; align-items:center; gap:4px; font-size:10px; color:var(--c-brand); cursor:pointer; margin-top:4px; background:none; border:none; padding:0; font-family:inherit; }
.agl-tl-expand:hover { text-decoration:underline; }
.agl-tl-detail { margin-top:6px; padding:10px 12px; background:rgba(255,255,255,.05); border-radius:6px; border:.5px solid rgba(255,255,255,.08); display:flex; flex-direction:column; gap:5px; }
.agl-tl-detail-row { display:flex; gap:10px; font-size:11px; line-height:1.6; align-items:baseline; }
.agl-tl-dl { color:var(--tx-muted); min-width:90px; flex-shrink:0; font-size:10px; font-weight:500; }
/* ═══ SIDEBAR HISTORIAL — DEFINITIVO ═══ */
.agl-blade-v2 { overflow-x: hidden; }
.agl-blade-body {
  display: flex;
  gap: 0;
  overflow-x: hidden;
}
.agl-main {
  flex: 1;
  min-width: 0;
  padding: 20px 28px;
  border-right: 1px solid var(--border-soft, rgba(0,0,0,.06));
}
.agl-side {
  flex: 0 0 420px;
  width: 420px;
  max-width: 420px;
  padding: 20px 24px;
  overflow-y: auto;
  overflow-x: hidden;
}
/* Timeline detail rows: NUNCA cortar texto */
.agl-tl-detail { margin: 6px 0 0 0; }
.agl-tl-detail-row {
  display: flex;
  gap: 8px;
  padding: 2px 0;
  font-size: 11px;
  line-height: 1.4;
}
.agl-tl-dl {
  flex: 0 0 90px;
  color: var(--tx-muted);
  text-align: right;
}
/* Timeline nodes */
.agl-tl-time { color: var(--tx-muted); font-size: 11px; }
.agl-tl-action { color: var(--tx-base); font-size: 12px; font-weight: 500; }
.agl-tl-who { color: var(--tx-muted); font-size: 11px; }
/* Expand toggle */
.agl-tl-expand {
  font-size: 11px;
  color: var(--c-brand, #6d28d9);
  cursor: pointer;
  margin-top: 4px;
  user-select: none;
}
.agl-tl-expand:hover { text-decoration: underline; }

/* ═══ SIDEBAR HISTORIAL v5 — UNICO BLOQUE, NO AGREGAR MAS ═══ */
.agl-blade-v2 { overflow-x: hidden; }
.agl-blade-body { display: flex; gap: 0; overflow-x: hidden; }
.agl-main { flex: 1; min-width: 0; padding: 20px 28px; border-right: 1px solid var(--border-soft, rgba(0,0,0,.06)); }
.agl-side {
  flex: 0 0 420px !important;
  width: 420px !important;
  max-width: 420px !important;
  min-width: 420px !important;
  padding: 20px 24px;
  overflow-y: auto;
  overflow-x: hidden;
  box-sizing: border-box;
}
.agl-tl-detail { margin: 6px 0 0 0; }
.agl-tl-detail-row { display: flex; gap: 8px; padding: 2px 0; font-size: 11px; line-height: 1.4; }
.agl-tl-dl { flex: 0 0 90px; color: var(--tx-muted); text-align: right; white-space: nowrap; }
.agl-tl-dv { flex: 1; min-width: 0; color: var(--tx-base); overflow-wrap: break-word; word-break: break-all; }
.agl-tl-time { color: var(--tx-muted); font-size: 11px; }
.agl-tl-action { color: var(--tx-base); font-size: 12px; font-weight: 500; }
.agl-tl-who { color: var(--tx-muted); font-size: 11px; }
.agl-tl-expand { font-size: 11px; color: var(--c-brand, #6d28d9); cursor: pointer; margin-top: 4px; user-select: none; }
.agl-tl-expand:hover { text-decoration: underline; }
/* ═══ FIN SIDEBAR v5 ═══ */

/* ═══ SIDEBAR FIX FINAL ═══ */
.agl-blade-v2 .agl-side {
  flex: 0 0 480px !important;
  width: 480px !important;
  min-width: 480px !important;
  max-width: 480px !important;
  box-sizing: border-box;
}
.agl-blade-v2 .agl-tl-dv {
  word-break: break-all !important;
  overflow-wrap: break-word !important;
}


/* ══════════════════════════════════════════════════════════════════
   AGENDA POLISH v2 — chips, micro-animations, hatch, dropdowns
   ══════════════════════════════════════════════════════════════════ */

/* ── Filter chips (ag-fc-tog) ──────────────────────────────────── */
.ag-fc-tog {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 11px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  border: 0.5px solid var(--border, #e2e8f0);
  background: var(--bg-surface, #f8fafc);
  color: var(--tx-muted, #64748b);
  transition: background 0.18s cubic-bezier(.4,0,.2,1),
              border-color 0.18s,
              color 0.18s,
              transform 0.14s cubic-bezier(.34,1.56,.64,1);
  white-space: nowrap;
  user-select: none;
  -webkit-user-select: none;
  line-height: 1;
}
.ag-fc-tog:hover {
  border-color: var(--c-brand, #6d28d9);
  color: var(--c-brand, #6d28d9);
  background: rgba(109,40,217,.06);
  transform: translateY(-1px);
}
.ag-fc-tog:active {
  transform: scale(0.96) translateY(0);
  transition-duration: 0.06s;
}
.ag-fc-tog svg { flex-shrink: 0; }
.ag-fc-tog[data-active="1"] {
  background: rgba(109,40,217,.1);
  border-color: rgba(109,40,217,.35);
  color: var(--c-brand, #6d28d9);
}

/* ── Chip clear button (×) ──────────────────────────────────────── */
.agw-tog-x {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: rgba(109,40,217,.15);
  color: var(--c-brand, #6d28d9);
  font-size: 10px;
  line-height: 1;
  transition: background 0.15s;
  flex-shrink: 0;
}
.agw-tog-x:hover { background: rgba(109,40,217,.28); }

/* ── Summary bar layout ──────────────────────────────────────────── */
.agw-sb-left {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.agw-sb-leg {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 10px;
  color: var(--tx-muted, #64748b);
  margin-left: auto;
  flex-wrap: wrap;
}

/* ── Modalidad dropdown ──────────────────────────────────────────── */
.agw-mod-wrap { position: relative; display: inline-flex; }
.agw-drop {
  position: absolute;
  top: calc(100% + 5px);
  left: 0;
  background: var(--bg-card, #fff);
  border: 0.5px solid var(--border, #e2e8f0);
  border-radius: 9px;
  box-shadow: 0 8px 28px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.06);
  min-width: 150px;
  z-index: 80;
  overflow: hidden;
  animation: agw-pop .16s cubic-bezier(.34,1.56,.64,1);
  transform-origin: top left;
  padding: 4px;
}
.agw-drop-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  font-size: 12px;
  cursor: pointer;
  color: var(--tx-base, #0f172a);
  border-radius: 6px;
  transition: background 0.1s;
}
.agw-drop-item:hover { background: var(--bg-surface, #f8fafc); }
.agw-drop-item--on {
  color: var(--c-brand, #6d28d9);
  font-weight: 500;
  background: rgba(109,40,217,.06);
}
.agw-drop-item svg { width: 10px; height: 10px; flex-shrink: 0; opacity: 0.8; }

/* ── General dropdown pop animation ─────────────────────────────── */
.ag-drop-menu,
.ag-viewdrop-menu {
  animation: agw-pop .15s cubic-bezier(.34,1.56,.64,1);
  transform-origin: top left;
  border-radius: 9px !important;
  padding: 4px !important;
  box-shadow: 0 8px 28px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.06) !important;
}

/* ── Keyframes ───────────────────────────────────────────────────── */
@keyframes agw-pop {
  from { opacity: 0; transform: scale(0.90) translateY(-6px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes agw-card-in {
  from { opacity: 0; transform: scale(0.96) translateY(4px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes agw-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes agw-ctx-pop {
  from { opacity: 0; transform: scale(0.92) translateY(-4px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes agw-now-pulse {
  0%, 100% { transform: scale(1);   opacity: 1;  }
  50%       { transform: scale(1.5); opacity: .6; }
}

/* ── Card micro-animations ───────────────────────────────────────── */
.agw-card {
  animation: agw-card-in 0.2s cubic-bezier(.4,0,.2,1) both;
  will-change: transform, opacity;
  transition: transform 0.18s cubic-bezier(.34,1.56,.64,1),
              box-shadow 0.18s,
              filter 0.18s !important;
}
.agw-card:hover {
  transform: translateY(-1px) scale(1.014) !important;
  box-shadow: 0 4px 14px rgba(0,0,0,.14) !important;
  filter: brightness(1.04);
  z-index: 3;
}
.agw-card:active {
  transform: scale(0.96) !important;
  transition-duration: 0.06s !important;
}

/* ── Cell hover (empty slots) ────────────────────────────────────── */
.agw-cell:not(.agw-cell-dom):hover {
  background: rgba(109,40,217,.03);
  transition: background 0.1s;
}

/* ── Context menu ────────────────────────────────────────────────── */
.ag-ctx {
  animation: agw-ctx-pop 0.14s cubic-bezier(.34,1.56,.64,1) !important;
  transform-origin: top left;
  border-radius: 10px !important;
  padding: 4px !important;
}
.ag-ctx-item {
  border-radius: 6px !important;
  transition: background 0.1s !important;
}

/* ── Now-line dot pulse ──────────────────────────────────────────── */
.agw-now-dot { animation: agw-now-pulse 2s ease-in-out infinite; }

/* ── Summary bar fade-in ─────────────────────────────────────────── */
.ag-fc-summary { animation: agw-fade-in 0.22s ease-out; }

/* ── Hatch pattern: boosted visibility ──────────────────────────── */
/* Overrides the fallback in var(--agw-hatch, rgba(...)) */
.agw-cell-dom { --agw-hatch: rgba(100,116,139,0.22) !important; }


/* ══════════════════════════════════════════════════════════════════════════════
   AGENDA CALENDAR TOKENS v3 — 3 themes: light / dark / midnight
   All card & grid colors are token-driven; zero hardcoded values in JS after this.
   ══════════════════════════════════════════════════════════════════════════════ */

/* ─── DARK (default — matches current screenshot) ─────────────────────────── */
:root,
[data-theme="dark"],
.lk-dark,
body.dark {
  /* ── Card backgrounds (estado) */
  --ag-c-res: rgba(245,158,11, 0.16);   /* reservada  — amber   */
  --ag-c-con: rgba(59, 130,246, 0.16);  /* confirmada — blue    */
  --ag-c-pag: rgba(109,40, 217,0.16);   /* pagada     — brand   */
  --ag-c-ate: rgba(34, 197, 94, 0.16);  /* atendida   — green   */
  --ag-c-can: rgba(239, 68, 68, 0.16);  /* cancelada  — red     */
  --ag-c-nop: rgba(100,116,139, 0.14);  /* no_presenta — slate  */
  --ag-c-esp: rgba(234, 88, 12, 0.16);  /* en_espera  — orange  */

  /* ── Card name text (primary, bright for dark bg) */
  --ag-t-res: #fcd34d;
  --ag-t-con: #93c5fd;
  --ag-t-pag: #c4b5fd;
  --ag-t-ate: #86efac;
  --ag-t-can: #fca5a5;
  --ag-t-nop: #94a3b8;
  --ag-t-esp: #fdba74;

  /* ── Card meta text (secondary) */
  --ag-m-res: #fbbf24;
  --ag-m-con: #60a5fa;
  --ag-m-pag: #a78bfa;
  --ag-m-ate: #4ade80;
  --ag-m-can: #f87171;
  --ag-m-nop: #64748b;
  --ag-m-esp: #fb923c;

  /* ── Grid chrome */
  --ag-hdr-bg:        rgba(15,23,42,0.55);
  --ag-hdr-day-tx:    #64748b;
  --ag-hdr-num-tx:    #cbd5e1;
  --ag-hdr-today-tx:  #c4b5fd;
  --ag-hdr-today-bg:  rgba(109,40,217,0.10);
  --ag-hour-tx:       #2d3748;
  --ag-cell-today:    rgba(109,40,217,0.05);
  --ag-hatch:         rgba(148,163,184,0.20);

  /* ── Modalidad icon colors (consistent with IC.pin / IC.monitor) */
  --ag-mod-presencial:   #0d9488;
  --ag-mod-teleconsulta: #3b82f6;
}

/* ─── LIGHT ─────────────────────────────────────────────────────────────────── */
[data-theme="light"],
.lk-light,
body:not(.dark):not(.midnight) {
  --ag-c-res: rgba(217,119,  6, 0.11);
  --ag-c-con: rgba( 37, 99,235, 0.10);
  --ag-c-pag: rgba(109, 40,217, 0.10);
  --ag-c-ate: rgba( 22,163, 74, 0.10);
  --ag-c-can: rgba(220, 38, 38, 0.10);
  --ag-c-nop: rgba(100,116,139, 0.09);
  --ag-c-esp: rgba(234, 88, 12, 0.10);

  --ag-t-res: #92400e;
  --ag-t-con: #1d4ed8;
  --ag-t-pag: #5b21b6;
  --ag-t-ate: #15803d;
  --ag-t-can: #b91c1c;
  --ag-t-nop: #475569;
  --ag-t-esp: #c2410c;

  --ag-m-res: #78350f;
  --ag-m-con: #1e40af;
  --ag-m-pag: #4c1d95;
  --ag-m-ate: #166534;
  --ag-m-can: #991b1b;
  --ag-m-nop: #334155;
  --ag-m-esp: #9a3412;

  --ag-hdr-bg:        #f1f5f9;
  --ag-hdr-day-tx:    #94a3b8;
  --ag-hdr-num-tx:    #1e293b;
  --ag-hdr-today-tx:  #7c3aed;
  --ag-hdr-today-bg:  rgba(109,40,217,0.06);
  --ag-hour-tx:       #94a3b8;
  --ag-cell-today:    rgba(109,40,217,0.04);
  --ag-hatch:         rgba(100,116,139,0.12);

  --ag-mod-presencial:   #0d9488;
  --ag-mod-teleconsulta: #2563eb;
}

/* ─── MIDNIGHT ──────────────────────────────────────────────────────────────── */
[data-theme="midnight"],
.lk-midnight,
body.midnight {
  --ag-c-res: rgba(251,191, 36, 0.18);
  --ag-c-con: rgba( 96,165,250, 0.16);
  --ag-c-pag: rgba(167,139,250, 0.16);
  --ag-c-ate: rgba( 74,222,128, 0.16);
  --ag-c-can: rgba(248,113,113, 0.16);
  --ag-c-nop: rgba(148,163,184, 0.13);
  --ag-c-esp: rgba(251,146, 60, 0.17);

  --ag-t-res: #fde68a;
  --ag-t-con: #bae6fd;
  --ag-t-pag: #ede9fe;
  --ag-t-ate: #bbf7d0;
  --ag-t-can: #fecaca;
  --ag-t-nop: #94a3b8;
  --ag-t-esp: #fed7aa;

  --ag-m-res: #fcd34d;
  --ag-m-con: #93c5fd;
  --ag-m-pag: #c4b5fd;
  --ag-m-ate: #86efac;
  --ag-m-can: #fca5a5;
  --ag-m-nop: #64748b;
  --ag-m-esp: #fdba74;

  --ag-hdr-bg:        rgba(2,6,23,0.72);
  --ag-hdr-day-tx:    #475569;
  --ag-hdr-num-tx:    #94a3b8;
  --ag-hdr-today-tx:  #ddd6fe;
  --ag-hdr-today-bg:  rgba(124,58,237,0.11);
  --ag-hour-tx:       #1e293b;
  --ag-cell-today:    rgba(124,58,237,0.07);
  --ag-hatch:         rgba(148,163,184,0.24);

  --ag-mod-presencial:   #14b8a6;
  --ag-mod-teleconsulta: #60a5fa;
}

/* ─── Apply tokens to header chrome ────────────────────────────────────────── */
.agw-hdr {
  background: var(--ag-hdr-bg) !important;
}
.agw-hdr-today {
  background: var(--ag-hdr-today-bg) !important;
}
.agw-hdr-today span {
  color: var(--ag-hdr-today-tx) !important;
  font-weight: 600 !important;
}

/* ─── Hour column ───────────────────────────────────────────────────────────── */
.agw-time {
  font-variant-numeric: tabular-nums;
}

/* ─── Hatch: use CSS var (overrides inline) ─────────────────────────────────── */
.agw-cell-dom {
  --agw-hatch: var(--ag-hatch, rgba(148,163,184,0.20)) !important;
}

/* ─── Card contrast boost ───────────────────────────────────────────────────── */
.agw-card {
  border: 0.5px solid rgba(255,255,255,0.07);
}
[data-theme="light"] .agw-card,
.lk-light .agw-card {
  border: 0.5px solid rgba(0,0,0,0.06);
}

/* ─── Modalidad icon colors via CSS vars ─────────────────────────────────────── */
.agw-card-meta svg:first-child {
  /* pin / monitor icons inherit color from parent; override via fill if needed */
}

/* ─── Legend dots (summary bar) matched to token colors ─────────────────────── */
.agw-sb-leg .agw-dot { flex-shrink: 0; }

/* ── ag-fc-summary dark/midnight bg override (patch-p2) ── */
[data-theme="dark"] .ag-fc-summary,
.lk-dark .ag-fc-summary {
  background: var(--bg-surface, #1e293b) !important;
  border-bottom-color: rgba(255,255,255,0.06) !important;
}
[data-theme="midnight"] .ag-fc-summary,
.lk-midnight .ag-fc-summary {
  background: var(--bg-surface, #0d1117) !important;
  border-bottom-color: rgba(255,255,255,0.04) !important;
}

/* ag-fc-tog equal width (patch-p3) */
.ag-fc-tog { min-width: 110px; justify-content: center; }


/* ── agw-nosched-bar: banner sin horario (opción B) ── */
.agw-nosched-bar {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 12px; font-size: 11px; flex-wrap: wrap;
  background: rgba(245,158,11,0.10);
  border-bottom: 0.5px solid rgba(245,158,11,0.32);
  color: var(--tx-base, #1e293b);
}
[data-theme="dark"] .agw-nosched-bar,.lk-dark .agw-nosched-bar,
[data-theme="midnight"] .agw-nosched-bar,.lk-midnight .agw-nosched-bar {
  color: #fbbf24;
  background: rgba(245,158,11,0.07);
  border-bottom-color: rgba(245,158,11,0.18);
}
.agw-nosched-bar b { font-weight: 500; }
.agw-nosched-bar svg { flex-shrink: 0; }
.agw-nosched-cfg {
  margin-left: auto; padding: 3px 10px; border-radius: 5px;
  font-size: 10px; font-weight: 500; background: #b45309;
  color: #fff; border: none; cursor: pointer; white-space: nowrap;
  font-family: inherit;
}
.agw-nosched-cfg:hover { opacity: .85; }

/* ── agw-nosched-bar: Apple-style redesign ── */
@keyframes agw-slide-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.agw-nosched-bar {
  display: flex !important; align-items: center !important; gap: 12px !important;
  padding: 10px 16px !important; font-size: 12px !important;
  background: rgba(251,191,36,0.12) !important;
  border-bottom: 1px solid rgba(217,119,6,0.22) !important;
  color: #92400e !important;
  animation: agw-slide-in .25s cubic-bezier(.34,1.56,.64,1) both;
}
.agw-nosched-bar b { color: #b45309 !important; font-weight: 600 !important; }
.agw-nosched-bar svg { color: #d97706 !important; flex-shrink: 0; }
.agw-nosched-cfg {
  margin-left: auto !important; padding: 4px 12px !important;
  border-radius: 6px !important; font-size: 11px !important; font-weight: 600 !important;
  background: #d97706 !important; color: #fff !important;
  border: none !important; cursor: pointer !important;
  font-family: inherit !important; letter-spacing: .2px !important;
  transition: background .15s, transform .1s !important;
}
.agw-nosched-cfg:hover { background: #b45309 !important; transform: scale(1.03) !important; }
[data-theme="dark"] .agw-nosched-bar, .lk-dark .agw-nosched-bar,
[data-theme="midnight"] .agw-nosched-bar, .lk-midnight .agw-nosched-bar {
  background: rgba(251,191,36,0.09) !important;
  border-bottom-color: rgba(217,119,6,0.3) !important;
  color: #fbbf24 !important;
}
[data-theme="dark"] .agw-nosched-bar b, .lk-dark .agw-nosched-bar b,
[data-theme="midnight"] .agw-nosched-bar b, .lk-midnight .agw-nosched-bar b {
  color: #fde68a !important;
}

/* ── agw-nosched-bar: spacing + border pulse ── */
@keyframes agw-border-pulse {
  0%,100% { border-bottom-color: rgba(217,119,6,0.28); }
  50%      { border-bottom-color: rgba(217,119,6,0.72); }
}
.agw-nosched-bar {
  padding: 9px 16px !important;
  gap: 8px !important;
  animation: agw-slide-in .25s cubic-bezier(.34,1.56,.64,1) both,
             agw-border-pulse 3s ease-in-out 1s infinite !important;
  letter-spacing: .1px !important;
}
.agw-nosched-bar b {
  margin: 0 1px !important;
}
[data-theme="dark"] .agw-nosched-bar, .lk-dark .agw-nosched-bar,
[data-theme="midnight"] .agw-nosched-bar, .lk-midnight .agw-nosched-bar {
  animation: agw-slide-in .25s cubic-bezier(.34,1.56,.64,1) both,
             agw-border-pulse-dark 3s ease-in-out 1s infinite !important;
}
@keyframes agw-border-pulse-dark {
  0%,100% { border-bottom-color: rgba(217,119,6,0.38); }
  50%      { border-bottom-color: rgba(217,119,6,0.82); }
}

/* ── agw-hdr dark/midnight text fix ── */
[data-theme="dark"] .agw-hdr-c,
.lk-dark .agw-hdr-c {
  color: var(--tx-muted, #94a3b8) !important;
}
[data-theme="dark"] .agw-hdr-c span,
.lk-dark .agw-hdr-c span {
  color: var(--tx-base, #e2e8f0) !important;
}
[data-theme="midnight"] .agw-hdr-c,
.lk-midnight .agw-hdr-c {
  color: var(--tx-muted, #64748b) !important;
}
[data-theme="midnight"] .agw-hdr-c span,
.lk-midnight .agw-hdr-c span {
  color: var(--tx-base, #cbd5e1) !important;
}

/* ── agw-hdr: colores alineados con columna horas (definitivo) ── */
.agw-hdr-c {
  color: var(--tx-muted, #64748b) !important;
}
.agw-hdr-c span {
  color: var(--tx-base, #0f172a) !important;
}
[data-theme="dark"] .agw-hdr-c span,
.lk-dark .agw-hdr-c span,
[data-theme="midnight"] .agw-hdr-c span,
.lk-midnight .agw-hdr-c span {
  color: var(--tx-base, #e2e8f0) !important;
}
.agw-hdr-today span {
  color: var(--c-brand, #6d28d9) !important;
}
