/* flots · css/paginas/est-agenda.css
   Estudio · Agenda (/estudio/agenda) — AdminAgenda.
   Semana a 60 px por hora (9 a 20 h), bloques ubicados por hora y duración reales,
   editor "Tus horarios" de 320 px a la derecha. Celular (sin artboard): lista por día y el editor debajo. */

/* ---------- Cabecera: título + semana + navegación ---------- */
.est-ag-cabecera-der{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:12px 16px;
  min-width:0;
}
.est-ag-semana{ font-size:16px; }
.est-ag-nav{ display:inline-flex; align-items:center; gap:6px; }
.est-ag-flecha{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  padding:0;
  border:1px solid var(--line-input);
  background:var(--surface);
  color:var(--ink);
  transition:border-color .15s ease;
}
.est-ag-flecha:hover{ border-color:var(--ink); }
.est-ag-nueva .icono{ margin-left:-2px; }

/* ---------- Grilla: calendario + editor (320 px) ---------- */
.est-ag-grilla{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 320px;
  gap:24px;
  align-items:start;
  min-width:0;
}
.est-ag-principal{ display:flex; flex-direction:column; gap:12px; min-width:0; }
.est-ag-principal:focus{ outline:none; }
.est-ag-lado{ min-width:0; }
.est-ag-cargando{ background:var(--surface); }

/* ---------- Calendario ---------- */
.est-ag-calendario{
  --est-ag-cabeza:41px;
  display:grid;
  grid-template-columns:48px repeat(var(--est-ag-dias, 5), minmax(0, 1fr));
  padding:16px 20px 20px;
  background:var(--surface);
  min-width:0;
}
.est-ag-horas{ display:flex; flex-direction:column; }
.est-ag-cabeza-vacia{ display:block; height:var(--est-ag-cabeza); }
.est-ag-horas-cuerpo{ position:relative; height:var(--est-ag-alto, 660px); }
.est-ag-hora{
  position:absolute;
  left:0;
  font-size:12px;
  line-height:1.2;
  color:var(--muted);
  font-variant-numeric:tabular-nums;
}

.est-ag-dia{ display:flex; flex-direction:column; min-width:0; }
.est-ag-dia-cabeza{
  display:block;
  height:var(--est-ag-cabeza);
  padding:10px 4px;
  border-bottom:1px solid var(--line);
  font-size:14px;
  font-weight:600;
  line-height:20px;
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.est-ag-dia-cuerpo{
  position:relative;
  height:var(--est-ag-alto, 660px);
  border-left:1px solid var(--line-soft);
  background-image:repeating-linear-gradient(180deg, transparent 0 59px, var(--hour-line) 59px 60px);
}
/* Día actual: cabecera en acento (con la raya de la pestaña elegida) y fondo apenas teñido */
.est-ag-dia-hoy .est-ag-dia-cabeza{ color:var(--accent); box-shadow:inset 0 -2px 0 var(--accent); }
.est-ag-dia-hoy .est-ag-dia-cuerpo{ background-color:var(--accent-tint); }

/* Línea de "ahora" en el día actual */
.est-ag-ahora{
  position:absolute;
  left:0;
  right:0;
  z-index:1;
  height:2px;
  margin-top:-1px;
  background:var(--danger);
  pointer-events:none;
}
.est-ag-ahora::before{
  content:'';
  position:absolute;
  left:-4px;
  top:-3px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--danger);
}

/* Bloque de reunión (top / height / left / width van en línea: dependen de la hora y la duración) */
.est-ag-evento{
  position:absolute;
  z-index:2;
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
  padding:8px 10px;
  border:0;
  border-radius:0;
  background:var(--accent);
  color:#FFFFFF;
  font:inherit;
  font-size:13px;
  line-height:1.3;
  text-align:left;
  overflow:hidden;
  cursor:pointer;
  transition:background-color .15s ease;
}
.est-ag-evento:hover{ background:var(--accent-deep); }
.est-ag-evento:focus-visible{ z-index:3; outline:2px solid var(--ink); outline-offset:2px; }
.est-ag-evento-titulo,
.est-ag-evento-sub{
  display:block;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.est-ag-evento-titulo{ font-weight:600; }
.est-ag-evento-sub{ opacity:.85; }
/* Reuniones cortas (30 min = 30 px): una sola línea */
.est-ag-evento-corto{ justify-content:center; padding:4px 8px; }
.est-ag-evento-corto .est-ag-evento-sub{ display:none; }

/* ---------- Editor "Tus horarios" ---------- */
.est-ag-editor{
  display:flex;
  flex-direction:column;
  gap:16px;
  padding:24px;
  background:var(--surface);
  min-width:0;
}
.est-ag-editor-titulo{ margin:0; font-size:20px; font-weight:500; line-height:1.25; }
.est-ag-editor-ayuda{ margin:0; font-size:14px; line-height:1.5; color:var(--muted); }

.est-ag-slots{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}
.est-ag-slot{
  height:44px;
  padding:0;
  border:1px solid var(--line-input);
  border-radius:0;
  background:var(--surface);
  color:var(--muted);
  font:inherit;
  font-size:15px;
  font-variant-numeric:tabular-nums;
  cursor:pointer;
  transition:background-color .15s ease, border-color .15s ease, color .15s ease;
}
.est-ag-slot:hover{ border-color:var(--ink); color:var(--ink); }
.est-ag-slot[aria-pressed="true"]{ background:var(--accent); border-color:var(--accent); color:#FFFFFF; }
.est-ag-slot[aria-pressed="true"]:hover{ background:var(--accent-deep); border-color:var(--accent-deep); color:#FFFFFF; }
.est-ag-slot:disabled{ cursor:not-allowed; opacity:.6; }

.est-ag-bloque{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding-top:14px;
  border-top:1px solid var(--line);
  min-width:0;
}
.est-ag-bloque-titulo{ font-size:15px; font-weight:500; line-height:1.35; color:var(--ink); }
.est-ag-bloque-texto{ font-size:14px; line-height:1.45; color:var(--muted); }

.est-ag-dias{
  display:grid;
  grid-template-columns:repeat(7, minmax(0, 1fr));
  gap:4px;
  margin-top:4px;
}
.est-ag-dia-btn{ height:40px; font-size:13px; }

.est-ag-control{ height:44px; font-size:15px; }
select.est-ag-control{ padding-right:40px; background-position:right 14px center; }
.est-ag-sufijo{ display:flex; align-items:center; gap:10px; }
.est-ag-sufijo .est-ag-control{ width:110px; }
.est-ag-sufijo-texto{ font-size:15px; color:var(--muted); }

.est-ag-bloqueo-fila{ display:flex; gap:8px; min-width:0; }
.est-ag-bloqueo-fila .est-ag-control{ flex:1 1 auto; min-width:0; }
.est-ag-bloqueo-agregar{ flex-shrink:0; height:44px; }
.est-ag-bloqueos{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:4px 0 0;
  padding:0;
  list-style:none;
}
.est-ag-bloqueo{
  display:inline-flex;
  align-items:center;
  gap:2px;
  padding-left:10px;
  border:1px solid var(--line-input);
  font-size:14px;
  line-height:1.3;
  color:var(--ink);
}
.est-ag-bloqueo-pasado{ color:var(--muted); }
.est-ag-bloqueo-quitar{ width:32px; height:32px; }
.est-ag-bloque-vacio{ font-size:14px; }

.est-ag-guardar{ display:flex; flex-direction:column; gap:10px; padding-top:6px; }
.est-ag-aviso{ margin:0; font-size:14px; line-height:1.45; color:var(--danger); }
.est-ag-pendiente{ margin:0; font-size:14px; line-height:1.45; color:var(--muted); }

/* ---------- Modales ---------- */
.est-ag-detalle{ font-size:15px; line-height:1.5; grid-template-columns:minmax(96px, 130px) minmax(0, 1fr); }
.est-ag-detalle dd{ color:var(--ink); overflow-wrap:anywhere; }
.est-ag-notas{ white-space:pre-line; }
.est-ag-link{ overflow-wrap:anywhere; word-break:break-word; }
.est-ag-modal .modal-pie .est-ag-cancelar{ margin-right:auto; border-color:var(--danger); color:var(--danger); }
.est-ag-modal .modal-pie .est-ag-cancelar:hover{ background:var(--bg); color:var(--danger); }
.est-ag-modal .modal-pie .est-ag-cancelar:disabled{ border-color:var(--line-soft); color:var(--disabled); }
.est-ag-modal-error{ margin-top:14px; }
.est-ag-form{ display:flex; flex-direction:column; gap:20px; }
.est-ag-form-grilla{ gap:18px 20px; }
.est-ag-form-nota{ margin:0; font-size:14px; line-height:1.5; color:var(--muted); }

/* ---------- Lista por día (celular) ---------- */
.est-ag-lista{ display:flex; flex-direction:column; gap:10px; }
.est-ag-lista-dia{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:14px 16px;
  background:var(--surface);
}
.est-ag-lista-hoy{ border-left:4px solid var(--accent); }
.est-ag-lista-titulo{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  font-size:16px;
  font-weight:600;
  line-height:1.3;
}
.est-ag-lista-hoy .est-ag-lista-titulo{ color:var(--accent); }
.est-ag-lista-marca{
  padding:2px 8px;
  border-radius:12px;
  background:var(--accent);
  color:#FFFFFF;
  font-size:11px;
  font-weight:600;
}
.est-ag-lista-items{ display:flex; flex-direction:column; gap:8px; }
.est-ag-item{
  display:flex;
  align-items:stretch;
  gap:12px;
  width:100%;
  min-height:52px;
  padding:0;
  border:0;
  background:var(--accent);
  color:#FFFFFF;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.est-ag-item:hover{ background:var(--accent-deep); }
.est-ag-item-hora{
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  width:64px;
  padding:8px 0 8px 12px;
  font-size:15px;
  font-weight:600;
  font-variant-numeric:tabular-nums;
}
.est-ag-item-fin{ font-size:12px; font-weight:400; opacity:.85; }
.est-ag-item-texto{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:2px;
  min-width:0;
  padding:8px 12px 8px 0;
}
.est-ag-item-nombre{ font-size:15px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.est-ag-item-tipo{ font-size:13px; opacity:.85; }
.est-ag-lista-vacia{ margin:0; font-size:14px; color:var(--muted); }

/* ---------- Tablet: el editor pasa abajo ---------- */
@media (max-width: 1199px){
  .est-ag-grilla{ grid-template-columns:minmax(0, 1fr); }
  .est-ag-slots{ grid-template-columns:repeat(4, minmax(0, 1fr)); }
  .est-ag-dias{ max-width:420px; }
  .est-ag-bloqueo-fila{ max-width:420px; }
  .est-ag-editor .est-ag-control{ max-width:420px; }
  .est-ag-sufijo .est-ag-control{ width:110px; }
  .est-ag-guardar{ align-items:flex-start; }
  .est-ag-guardar .btn-bloque{ display:inline-flex; width:auto; }
}

/* ---------- Celular: lista por día + editor debajo ---------- */
@media (max-width: 767px){
  .est-ag-cabecera-der{ justify-content:flex-start; gap:12px; width:100%; }
  .est-ag-semana{ flex-basis:100%; }
  .est-ag-nueva{ margin-left:auto; }
  .est-ag-flecha{ width:42px; height:42px; }
  .est-ag-hoy.btn{ height:42px; }
  .est-ag-nueva.btn{ height:42px; }
  .est-ag-grilla{ gap:20px; }
  .est-ag-editor{ padding:20px 16px; }
  .est-ag-slots{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .est-ag-dias{ max-width:none; }
  .est-ag-bloqueo-fila,
  .est-ag-editor .est-ag-control{ max-width:none; }
  .est-ag-sufijo .est-ag-control{ width:110px; }
  .est-ag-guardar{ align-items:stretch; }
  .est-ag-guardar .btn-bloque{ display:flex; width:100%; }
  .est-ag-detalle{ grid-template-columns:minmax(0, 1fr); }
  .est-ag-modal .modal-pie .est-ag-cancelar{ margin-right:0; }
}
