/* Siber Herramientas: estilos base con la marca de Siber (brandbook actual).
   Montserrat · verde #289643 · lima #B7C72F · texto #4C4C4B · petróleo #02605E */

:root {
  --verde: #289643;
  --lima: #B7C72F;
  --verde-claro: #3EB44A;
  --petroleo: #02605E;
  --texto: #4C4C4B;
  --texto-suave: #7A7A79;
  --borde: #E3E5E1;
  --fondo: #F4F5F2;
  --tarjeta: #FFFFFF;
  --alta: #C8553D;
  --media: #E0A33A;
  --baja: #8EA05B;
  --radio: 10px;
  --sombra: 0 1px 2px rgba(30, 40, 30, .06), 0 2px 8px rgba(30, 40, 30, .04);
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 14px;
  color: var(--texto);
  background: var(--fondo);
  display: flex;
  min-height: 100vh;
}
a { color: var(--verde); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3 { font-weight: 600; margin: 0; }
h1 { font-size: 22px; }
h2 { font-size: 15px; }
h3 { font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--texto-suave); }
.muted { color: var(--texto-suave); }
.small { font-size: 12px; }

/* ── Navegación lateral ── */
.sidebar {
  width: 214px;
  flex-shrink: 0;
  background: linear-gradient(180deg, var(--verde) 0%, var(--petroleo) 100%);
  color: #fff;
  padding: 22px 14px;
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
}
.marca { padding: 0 10px 26px; line-height: 1.15; }
.marca b { font-size: 22px; font-weight: 700; letter-spacing: -.01em; }
.marca span { display: block; font-weight: 300; font-size: 13px; opacity: .9; }
.nav { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.nav a, .nav .off {
  display: flex; align-items: center; gap: 11px;
  padding: 9px 10px; border-radius: 8px;
  color: #fff; font-weight: 500;
}
.nav a:hover { background: rgba(255, 255, 255, .1); text-decoration: none; }
.nav a.activo { background: rgba(255, 255, 255, .16); box-shadow: inset 3px 0 0 var(--lima); }
.nav .off { opacity: .5; cursor: default; align-items: flex-start; }
.nav .off .tag { display: block; margin: 1px 0 0; border: 0; padding: 0; font-size: 9px; letter-spacing: .04em; }
.nav svg { width: 18px; height: 18px; flex-shrink: 0; }
.nav .tag {
  margin-left: auto; font-size: 8.5px; font-weight: 600; text-transform: uppercase;
  border: 1px solid rgba(255, 255, 255, .6); border-radius: 99px; padding: 1px 6px; white-space: nowrap;
}
.nav-sep { height: 1px; background: rgba(255, 255, 255, .18); margin: 10px 8px; }
.sidebar-pie { margin-top: auto; font-size: 11px; opacity: .75; padding: 0 10px; line-height: 1.5; }
.sidebar-pie .sesion { margin-top: 8px; display: flex; align-items: center; gap: 4px; }
.sidebar-pie .sesion a, .sidebar-pie .sesion button { color: inherit; font: inherit; text-decoration: underline; background: none; border: 0; padding: 0; cursor: pointer; }
.sidebar-pie .sesion form { display: inline; }

/* ── Barra superior ── */
.main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.topbar {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap; row-gap: 8px;
  padding: 12px 28px; background: var(--tarjeta); border-bottom: 1px solid var(--borde);
  position: sticky; top: 0; z-index: 5;
}
.topbar .buscar { flex: 1; max-width: 420px; }
.topbar .buscar input { width: 100%; }
.temporada { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--texto-suave); }
.borrador {
  margin-left: auto;
  font-size: 11.5px; font-weight: 600; color: #6B5A12;
  background: #FFF6D6; border: 1px dashed #D9B84A; border-radius: 99px; padding: 4px 11px;
  white-space: nowrap;
}
.demo-controles { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.demo-controles .borrador { margin-left: 0; }
.demo-hoy label { display: flex; align-items: center; gap: 5px; font-size: 11.5px; color: var(--texto-suave); }
.demo-hoy input[type=date] { padding: 3px 6px; font-size: 12px; border-radius: 6px; }
.btn-mini { font-size: 11.5px; padding: 4px 9px; font-weight: 500; }
/* «Comentario» (D13): flotante, a cualquier anchura y en las dos herramientas; los avisos salen por encima */
.btn-comentario {
  position: fixed; right: 22px; bottom: 22px; z-index: 40;
  display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; cursor: pointer;
  font: inherit; font-size: 13px; font-weight: 600; color: var(--verde); background: #fff;
  border: 1.5px solid var(--verde); border-radius: 99px; padding: 9px 16px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .16);
}
.btn-comentario:hover { background: #EEF5EE; }
.btn-comentario svg { width: 16px; height: 16px; }
@media (max-width: 767px) { .btn-comentario { padding: 10px; } .btn-comentario .lbl { display: none; } }
.tipos-comentario { display: flex; gap: 6px; flex-wrap: wrap; }
.tipos-comentario label { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; border: 1px solid var(--borde); border-radius: 99px; padding: 5px 12px; cursor: pointer; }
.tipos-comentario label:has(input:checked) { border-color: var(--verde); background: #EEF5EE; color: var(--verde); }
.dialogo-comentario textarea { font-weight: 400; resize: vertical; }
.usuario { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; white-space: nowrap; }
.avatar {
  width: 30px; height: 30px; border-radius: 50%;
  background: var(--lima); color: #fff; font-weight: 700; font-size: 12px;
  display: grid; place-items: center;
}

.content { padding: 22px 22px 84px; }  /* abajo, sitio para «Comentario» */
.cabecera { display: flex; align-items: flex-end; gap: 16px; margin-bottom: 18px; flex-wrap: wrap; }
.cabecera .sub { color: var(--texto-suave); font-size: 13px; margin-top: 4px; }
.chip {
  display: inline-block; font-size: 11px; font-weight: 600; vertical-align: middle;
  background: #EEF3E0; color: #5E6B12; border-radius: 6px; padding: 2px 7px; margin-left: 6px;
}

/* ── Controles ── */
input, select, textarea {
  font: inherit; color: inherit;
  border: 1px solid var(--borde); border-radius: 8px; padding: 7px 10px; background: #fff;
}
input:focus, select:focus, textarea:focus { outline: 2px solid color-mix(in srgb, var(--verde) 35%, transparent); border-color: var(--verde); }
textarea { width: 100%; min-height: 80px; resize: vertical; }
.btn {
  font: inherit; font-weight: 600; font-size: 13px;
  border: 1px solid var(--borde); background: #fff; color: var(--texto);
  border-radius: 8px; padding: 7px 13px; cursor: pointer; white-space: nowrap;
  display: inline-flex; align-items: center; gap: 6px;
}
.btn:hover { border-color: var(--verde); color: var(--verde); text-decoration: none; }
.btn-primario { background: var(--verde); border-color: var(--verde); color: #fff; }
.btn-primario:hover { background: #217E38; color: #fff; }
.btn[disabled], .btn.off { opacity: .45; cursor: not-allowed; }
.btn[disabled]:hover, .btn.off:hover { border-color: var(--borde); color: var(--texto); }
.btn-primario[disabled]:hover { background: var(--verde); color: #fff; }
.mas-adelante { font-size: 10px; font-weight: 600; text-transform: uppercase; color: var(--texto-suave); letter-spacing: .03em; }

.tarjeta { background: var(--tarjeta); border-radius: var(--radio); box-shadow: var(--sombra); }

/* ── Fases ── */
.fase {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 600; white-space: nowrap;
  padding: 3px 9px 3px 7px; border-radius: 99px;
  background: color-mix(in srgb, var(--fase) 20%, white);
  color: color-mix(in srgb, var(--fase) 55%, #2c2c2c);
}
.fase::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--fase); }

.resumen-fases { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.resumen-fases button {
  font: inherit; cursor: pointer; border: 1px solid transparent; background: none; padding: 0;
}
.resumen-fases .fase b { font-weight: 700; margin-left: 2px; }
.resumen-fases .fase { border: 1.5px solid transparent; }

/* ── Filtros y tabla ── */
.filtros {
  display: flex; gap: 8px; flex-wrap: wrap; align-items: center;
  padding: 12px 14px; border-bottom: 1px solid var(--borde);
}
.filtros select { padding: 6px 8px; font-size: 13px; }
.filtros input[type=search] { min-width: 200px; font-size: 13px; padding: 6px 10px; }
.filtros label.check { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; }
.filtros .derecha { margin-left: auto; display: flex; align-items: center; gap: 8px; }

.tabla-wrap { overflow-x: auto; }
table.jornadas { width: 100%; border-collapse: collapse; font-size: 12px; }
table.jornadas .fase { font-size: 11px; padding: 2px 8px 2px 6px; }
table.jornadas th {
  text-align: left; font-weight: 600; font-size: 10.5px; text-transform: uppercase; letter-spacing: .03em;
  color: var(--texto-suave); padding: 9px 7px; border-bottom: 1px solid var(--borde);
  background: #FAFBF8; position: sticky; top: 0; white-space: nowrap;
}
table.jornadas th a { color: inherit; }
table.jornadas th a.ord { color: var(--verde); }
table.jornadas td { padding: 8px 7px; border-bottom: 1px solid #EEF0EC; vertical-align: middle; }
table.jornadas tbody tr { cursor: pointer; box-shadow: inset 4px 0 0 var(--fase); }
table.jornadas tbody tr:hover { background: color-mix(in srgb, var(--fase) 7%, white); }
table.jornadas .nowrap { white-space: nowrap; }
table.jornadas .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.entidad b { display: block; font-weight: 600; color: var(--texto); white-space: nowrap; }
.entidad span { font-size: 11.5px; color: var(--texto-suave); }
.fecha-celda { white-space: nowrap; font-variant-numeric: tabular-nums; }
.fecha-celda.aprox { color: var(--texto-suave); font-style: italic; }
.pendiente { font-size: 11.5px; font-weight: 600; padding: 2px 7px; border-radius: 5px; background: #F0F1EE; white-space: nowrap; }
.pendiente.Colegio { background: #E7EEF8; color: #3B5F8E; }
.pendiente.Ponente { background: #F6EDDD; color: #8A5B12; }
.pendiente.Siber { background: #E3F1E6; color: #1F6E33; }
.accion { display: flex; align-items: flex-start; gap: 7px; min-width: 180px; max-width: 230px; line-height: 1.35; }
.accion.sin-alerta { color: var(--texto-suave); }
.dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; margin-top: 4px; }
.dot.alta { background: var(--alta); }
.dot.media { background: var(--media); }
.dot.baja { background: var(--baja); }
.reprog { font-weight: 700; color: var(--alta); }
.vacio { padding: 48px 24px; text-align: center; color: var(--texto-suave); }
.vacio b { display: block; color: var(--texto); font-size: 15px; margin-bottom: 6px; }

/* ── Ficha ── */
.migas { font-size: 12.5px; margin-bottom: 10px; color: var(--texto-suave); }
.ficha-cabecera { padding: 20px 22px; margin-bottom: 16px; }
.ficha-top { display: flex; gap: 24px; align-items: flex-start; flex-wrap: wrap; }
.ficha-top .titulo { flex: 1; min-width: 280px; }
.ficha-top .titulo .sub { margin-top: 5px; color: var(--texto-suave); }
.datos-clave { display: flex; gap: 26px; flex-wrap: wrap; }
.datos-clave div { min-width: 90px; }
.datos-clave small { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .03em; color: var(--texto-suave); margin-bottom: 3px; }
.datos-clave b { font-size: 15px; font-weight: 600; }

.barra-fases { display: flex; margin-top: 20px; gap: 3px; align-items: stretch; }
.barra-fases button {
  flex: 1; font: inherit; font-size: 11.5px; font-weight: 600; cursor: pointer;
  border: 0; padding: 8px 6px; color: var(--texto-suave); background: #EEF0EC;
  clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%, 8px 50%);
}
.barra-fases button:first-child { clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%); border-radius: 6px 0 0 6px; }
.barra-fases button.hecha { background: color-mix(in srgb, var(--fase) 28%, white); color: color-mix(in srgb, var(--fase) 50%, #2c2c2c); }
.barra-fases button.actual { background: var(--fase); color: #fff; }
.barra-fases button:hover { filter: brightness(.96); }
.fuera-camino { margin-top: 10px; font-size: 13px; }

.progreso { font-size: 10.5px; color: var(--texto-suave); margin-top: 3px; white-space: nowrap; }
.lista-fase { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 14px; font-size: 12.5px; }
.lista-fase b { font-weight: 600; margin-right: 4px; }
.lista-fase span { color: #9A9D98; }
.lista-fase span.ok { color: var(--verde); font-weight: 500; }
.radios.una-columna { grid-template-columns: 1fr; }
.alertas { display: flex; flex-direction: column; gap: 6px; margin-top: 16px; }
.alerta {
  display: flex; gap: 10px; align-items: center; padding: 9px 12px; border-radius: 8px; font-size: 13px;
  background: color-mix(in srgb, var(--color) 12%, white); border-left: 4px solid var(--color);
}
.alerta.alta { --color: var(--alta); }
.alerta.media { --color: var(--media); }
.alerta.baja { --color: var(--baja); }
.alerta b { font-weight: 600; }

.ficha-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, .85fr); gap: 16px; align-items: start; }
.bloque { padding: 16px 18px; }
.bloque + .bloque { margin-top: 0; }
.bloque h2 { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.bloque h2 .editar { margin-left: auto; font-size: 11px; font-weight: 500; color: var(--texto-suave); }
.grupo { margin-bottom: 16px; }
.grupo:last-child { margin-bottom: 0; }
.grupo h3 { margin-bottom: 8px; padding-bottom: 5px; border-bottom: 1px solid var(--borde); }
dl.campos { display: grid; grid-template-columns: 150px 1fr; gap: 6px 12px; margin: 0; font-size: 13px; }
dl.campos dt { color: var(--texto-suave); }
dl.campos dd { margin: 0; font-weight: 500; overflow-wrap: anywhere; }
dl.campos dd.vacio-campo { color: #B5B7B3; font-weight: 400; }
.si { color: var(--verde); font-weight: 600; }
.no { color: var(--alta); font-weight: 600; }
.checks { display: flex; flex-wrap: wrap; gap: 5px; }
.checks span { font-size: 11.5px; padding: 2px 7px; border-radius: 5px; background: #F0F1EE; color: #A0A39E; }
.checks span.ok { background: #E3F1E6; color: #1F6E33; }

.timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.timeline::before { content: ""; position: absolute; left: 13px; top: 6px; bottom: 6px; width: 2px; background: var(--borde); }
.timeline li { position: relative; padding: 0 0 14px 38px; font-size: 13px; }
.timeline .icono {
  position: absolute; left: 0; top: 0; width: 28px; height: 28px; border-radius: 50%;
  display: grid; place-items: center; background: #fff; border: 2px solid var(--borde); font-size: 13px;
}
.timeline .nota .icono { border-color: #9DBBDA; }
.timeline .llamada .icono { border-color: var(--lima); }
.timeline .correo .icono { border-color: #6F9BCB; }
.timeline .cambio_fase .icono, .timeline .cambio_fecha .icono { border-color: var(--media); }
.timeline .inscritos .icono { border-color: var(--verde-claro); }
.timeline .meta { font-size: 11.5px; color: var(--texto-suave); margin-bottom: 2px; }
.timeline .sistema { color: var(--texto-suave); font-style: italic; }

.acciones { display: flex; flex-direction: column; gap: 6px; }
.acciones .btn { justify-content: flex-start; width: 100%; }
.marcas { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; font-size: 13px; }
.marcas label { display: flex; align-items: center; gap: 8px; }
.copiar { display: flex; flex-direction: column; gap: 6px; }
.asociados { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 13px; }
.asociados small { display: block; font-size: 10.5px; text-transform: uppercase; letter-spacing: .03em; color: var(--texto-suave); font-weight: 600; }
.lista-off { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 12.5px; color: #A0A39E; }
.lista-off li::before { content: "○ "; }

/* ── Diálogo y avisos ── */
dialog {
  border: 0; border-radius: 14px; padding: 0; width: min(520px, 94vw);
  box-shadow: 0 20px 60px rgba(0, 0, 0, .25); color: var(--texto);
}
dialog::backdrop { background: rgba(20, 40, 30, .35); }
dialog header { padding: 18px 22px 10px; }
dialog header .sub { font-size: 12.5px; color: var(--texto-suave); margin-top: 3px; }
dialog .cuerpo { padding: 6px 22px 16px; display: flex; flex-direction: column; gap: 12px; }
dialog label.campo { display: flex; flex-direction: column; gap: 5px; font-size: 12.5px; font-weight: 600; }
dialog label.campo input, dialog label.campo select { font-weight: 400; }
dialog .fila { display: flex; gap: 10px; }
dialog .fila > * { flex: 1; }
dialog footer {
  display: flex; align-items: center; gap: 8px; padding: 12px 22px;
  background: #FAFBF8; border-top: 1px solid var(--borde);
}
dialog footer .nota-maqueta { margin-right: auto; font-size: 11.5px; color: #8A6D12; }
.info { font-size: 12px; color: var(--texto-suave); background: #F5F7F1; border-radius: 8px; padding: 9px 11px; line-height: 1.45; }
.aviso-festivo { font-size: 12.5px; color: #8A3B26; background: #FBE9E4; border-radius: 8px; padding: 8px 11px; }
.radios { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.radios label { display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 500; }

.toasts { position: fixed; right: 22px; bottom: 76px; display: flex; flex-direction: column; gap: 8px; z-index: 50; }
.toast {
  background: #2F3A33; color: #fff; padding: 11px 16px; border-radius: 10px; font-size: 13px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
  animation: toast 4.5s forwards;
}
@keyframes toast { 0% { opacity: 0; transform: translateY(8px); } 8%, 85% { opacity: 1; transform: none; } 100% { opacity: 0; visibility: hidden; } }

/* ── Qué toca hoy ── */
.contadores { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.contador { padding: 14px 16px; }
.contador small { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--texto-suave); font-weight: 600; }
.contador b { font-size: 28px; font-weight: 700; }
.contador.alta b { color: var(--alta); }
.contador.media b { color: var(--media); }
.contador.baja b { color: var(--baja); }
.reglas { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; }
.reglas span { font-size: 12px; background: #fff; border: 1px solid var(--borde); border-radius: 99px; padding: 3px 10px; }
.reglas b { font-weight: 700; }
.tareas { display: flex; flex-direction: column; gap: 8px; }
.tareas h2 { margin: 12px 0 2px; display: flex; align-items: center; gap: 8px; }
.tarea { display: flex; align-items: center; gap: 14px; padding: 12px 16px; }
.tarea .que { flex: 1; min-width: 0; }
.tarea .que b { font-weight: 600; }
.tarea .que .meta { font-size: 12px; color: var(--texto-suave); margin-top: 3px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.tarea .botones { display: flex; gap: 6px; }
.tarea-marcada { color: var(--texto-suave); font-size: 13px; background: #F7F8F5; box-shadow: none; }

@media (max-width: 1200px) {
  .ficha-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .ficha-grid > :last-child { grid-column: 1 / -1; }
}

/* ── Ficha v2: bloque «Ahora», pasos, campos editables ── */
.datos-clave div > span { display: block; font-size: 11.5px; color: var(--texto-suave); margin-top: 2px; }
.datos-clave .pronto { color: var(--alta); font-weight: 600; }
.ahora { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 0; margin-bottom: 16px; overflow: hidden; }
.ahora-toca { padding: 16px 18px; border-right: 1px solid var(--borde); }
.ahora-info { padding: 16px 18px; background: #FAFBF8; }
.ahora h2 { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.ahora h2 .editar { margin-left: auto; font-size: 11px; font-weight: 500; color: var(--texto-suave); }
.ahora-info h3 { margin-bottom: 10px; }
.sub-h3 { margin: 14px 0 6px; }
.pasos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.paso { display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 8px; font-size: 13px; }
.paso + .paso { border-top: 1px solid #F0F1EE; }
.paso .simbolo { width: 20px; text-align: center; font-size: 14px; color: #9A9D98; flex-shrink: 0; }
.paso.hecho .simbolo { color: var(--verde); }
.paso.hecho .nombre { color: var(--texto-suave); }
.paso.toca .simbolo, .paso.es-accion .simbolo { color: var(--alta); }
.paso.reabierto .simbolo { color: var(--media); font-weight: 700; }
.paso.esperando .simbolo { color: #3B5F8E; }
.paso.informativo .simbolo, .paso.disponible .simbolo { color: #B5B7B3; }
.paso.es-accion { background: #FFF8EC; }
.paso-texto { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.paso-texto .meta { font-size: 11.5px; color: var(--texto-suave); }
.paso-texto .meta .reabierto { color: #8A5B12; }
.paso-texto .meta .quien { margin-left: 2px; }
.paso-botones { display: flex; gap: 5px; flex-shrink: 0; flex-wrap: wrap; justify-content: flex-end; }
.vencido { color: var(--alta); }
.vacio-paso { color: var(--texto-suave); }
.inline { display: inline; }
.btn-link { background: none; border: 0; padding: 0; font: inherit; font-size: 11.5px; color: var(--texto-suave); cursor: pointer; text-decoration: underline; }
.btn-link:hover { color: var(--alta); }
.acciones-rapidas { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--borde); }
.alerta { justify-content: space-between; margin-bottom: 8px; }
.alerta > div:first-child { flex: 1; }
.alerta.info-aviso { --color: #6F9BCB; }
.alerta.sin-accion { --color: #D9B84A; }
.espera-banner { font-size: 13px; background: #E7EEF8; color: #3B5F8E; border-radius: 8px; padding: 9px 12px; margin-bottom: 8px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.espera-banner .btn { margin-left: auto; }
dl.info-fase { display: grid; grid-template-columns: 120px 1fr; gap: 7px 12px; margin: 0; font-size: 13px; }
dl.info-fase dt { color: var(--texto-suave); }
dl.info-fase dd { margin: 0; overflow-wrap: anywhere; }
.pelota { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 10px; background: #F0F1EE; margin-bottom: 14px; }
.pelota small { font-size: 11px; text-transform: uppercase; letter-spacing: .03em; color: var(--texto-suave); font-weight: 600; }
.pelota b { font-size: 18px; }
.pelota span { font-size: 12.5px; color: var(--texto-suave); }
.pelota.Colegio { background: #E7EEF8; } .pelota.Colegio b { color: #3B5F8E; }
.pelota.Ponente { background: #F6EDDD; } .pelota.Ponente b { color: #8A5B12; }
.pelota.Siber { background: #E3F1E6; } .pelota.Siber b { color: #1F6E33; }
.cuenta-atras { display: flex; align-items: baseline; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.cuenta-atras small { font-size: 11px; text-transform: uppercase; letter-spacing: .03em; color: var(--texto-suave); font-weight: 600; }
.cuenta-atras b { font-size: 22px; }
.cuenta-atras span { font-size: 12.5px; color: var(--texto-suave); }
.ficha-grid.dos { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); margin-bottom: 16px; }
.filtros-timeline { display: flex; gap: 5px; margin-bottom: 12px; flex-wrap: wrap; }
.chip-filtro { font: inherit; font-size: 11.5px; font-weight: 600; border: 1px solid var(--borde); background: #fff; border-radius: 99px; padding: 3px 10px; cursor: pointer; color: var(--texto-suave); }
.chip-filtro.sel { border-color: var(--verde); color: var(--verde); background: #EEF5EE; }

.timeline .paso .icono { border-color: var(--lima); }
.timeline .tarea .icono { border-color: #9DBBDA; }
.todos-datos summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 10px; }
.todos-datos summary::before { content: "▸"; color: var(--texto-suave); }
.todos-datos[open] summary::before { content: "▾"; }
.grupos-datos { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px 28px; margin-top: 14px; }
dl.campos dd.editable { cursor: pointer; border-radius: 5px; padding: 1px 4px; margin-left: -4px; }
dl.campos dd.editable:hover { background: #EEF5EE; outline: 1px dashed var(--verde); }
dl.campos dd.editando { margin: 0; }
.campo-inline { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.campo-inline input, .campo-inline select { padding: 4px 8px; font-size: 13px; }
.error-form { font-size: 12.5px; color: #8A3B26; background: #FBE9E4; border-radius: 8px; padding: 8px 11px; }
.toast.error { background: #8A3B26; }
.toast.info { background: #3B5F8E; }
@media (max-width: 1100px) { .ahora, .ficha-grid.dos { grid-template-columns: 1fr; } .ahora-toca { border-right: 0; border-bottom: 1px solid var(--borde); } }

/* ── Qué toca hoy v2 ── */
.contadores.dos { grid-template-columns: 160px 220px 1fr; align-items: center; }
.contador span { display: block; font-weight: 400; }
.resumen-hoy { padding-left: 8px; }
.tareas h2 { position: relative; }
.derecha-h2 { margin-left: auto; }
.accion-fila .meta .etiqueta { font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; border-radius: 4px; padding: 1px 6px; background: #F0F1EE; color: var(--texto-suave); }
.etiqueta.origen-aviso { background: #FBE9E4; color: #8A3B26; }
.etiqueta.origen-espera { background: #E7EEF8; color: #3B5F8E; }
.etiqueta.origen-tarea { background: #EEF3E0; color: #5E6B12; }
.accion-fila .mas { color: var(--verde); font-weight: 600; }
.accion-fila .sugerencia { font-size: 12px; color: #8A5B12; margin-top: 3px; }
.mas-detalle { font-size: 12px; color: var(--texto-suave); margin-top: 4px; }
.mas-detalle summary { cursor: pointer; }
.mas-detalle ul { margin: 4px 0 0; padding-left: 4px; list-style: none; }
.mas-detalle li { display: flex; align-items: center; gap: 6px; }
.mas-detalle .dot { width: 7px; height: 7px; margin-top: 0; }
.accion-fila .botones { align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.accion-fila.futura { padding: 8px 16px; background: #FBFCFA; box-shadow: none; border: 1px solid var(--borde); }
.accion-fila.futura .que b { font-weight: 500; }
.espera-fila { background: #F6F9FC; box-shadow: none; border: 1px solid #E1E9F3; }
.simbolo-espera { font-size: 16px; }
.resumen-contacto { background: #F7F8F5; box-shadow: none; border: 1px dashed var(--borde); }
.vacio-seccion { padding: 12px 16px; color: var(--texto-suave); font-size: 13px; box-shadow: none; border: 1px dashed var(--borde); }
.seccion-plegable summary { list-style: none; cursor: pointer; }
.seccion-plegable summary h2::after { content: "▸"; color: var(--texto-suave); font-size: 12px; margin-left: 4px; }
.seccion-plegable[open] summary h2::after { content: "▾"; }
.menu-posponer { position: relative; }
.menu-posponer summary { list-style: none; }
.menu-posponer form { position: absolute; right: 0; top: calc(100% + 4px); background: #fff; border: 1px solid var(--borde); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.12); padding: 6px; display: flex; flex-direction: column; gap: 2px; min-width: 190px; z-index: 20; }
.menu-posponer form button { font: inherit; font-size: 12.5px; text-align: left; background: none; border: 0; padding: 6px 8px; border-radius: 6px; cursor: pointer; color: var(--texto); }
.menu-posponer form button:hover { background: #EEF5EE; color: var(--verde); }
.menu-posponer form label { display: flex; align-items: center; gap: 4px; font-size: 12px; padding: 4px 8px; }
.menu-posponer form label input { padding: 3px 5px; font-size: 12px; }

/* ── Nueva jornada ── */
.nueva-form { max-width: 760px; display: flex; flex-direction: column; gap: 16px; }
.campo-grande { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; }
.campo-grande input, .campo-grande select { font-weight: 400; }
.campo-grande select[size] { font-size: 13px; padding: 4px; }
.entidad-info { font-size: 13px; background: #F5F7F1; border-radius: 8px; padding: 10px 12px; margin-top: -6px; }
fieldset.campo-grande { border: 0; padding: 0; margin: 0; }
fieldset.campo-grande legend { padding: 0; margin-bottom: 6px; }
.puntos { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 8px; }
.punto { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; border: 1px solid var(--borde); border-radius: 10px; padding: 10px 12px; cursor: pointer; font-weight: 400; }
.punto:has(input:checked) { border-color: var(--verde); background: #F3F8F3; }
.punto input { margin: 0; }
.mas-datos summary { cursor: pointer; font-weight: 600; font-size: 13px; }
.grid-mas { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; margin-top: 12px; }
.acciones-form { display: flex; gap: 8px; padding-top: 6px; border-top: 1px solid var(--borde); }

/* ── Lista v2 ── */
.barra-tabla { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px 0; flex-wrap: wrap; }
.barra-tabla + .barra-tabla { padding-bottom: 10px; }
.chips { display: flex; gap: 6px; flex-wrap: wrap; }
.chip-pocos b { color: var(--alta); }
.chip-sin_accion { border-color: #D9B84A; color: #6B5A12; background: #FFF6D6; }
.orden { font-size: 12px; color: var(--texto-suave); display: flex; gap: 4px; align-items: center; }
.btn-orden { font: inherit; font-size: 12px; font-weight: 600; background: none; border: 0; padding: 3px 7px; border-radius: 6px; cursor: pointer; color: var(--texto-suave); }
.btn-orden.sel { color: var(--verde); background: #EEF5EE; }
.resumen-fases { margin-bottom: 0; }
table.jornadas.v2 { font-size: 12.5px; }
table.jornadas.v2 td { padding: 9px 8px; vertical-align: middle; }
table.jornadas.v2 th.fija, table.jornadas.v2 td.fija { position: sticky; left: 0; background: #fff; z-index: 2; box-shadow: inset -1px 0 0 var(--borde); }
table.jornadas.v2 th.fija { z-index: 3; background: #FAFBF8; }
table.jornadas.v2 tbody tr:hover td.fija { background: #F5F8F3; }
table.jornadas.v2 .entidad b { font-size: 13px; }
table.jornadas.v2 .fecha-celda .dias { font-size: 11.5px; color: var(--texto-suave); }
table.jornadas.v2 .fecha-celda .dias.pronto { color: var(--alta); font-weight: 700; }
table.jornadas.v2 .festivo { color: var(--media); cursor: help; }
.sub-celda { font-size: 11px; color: var(--texto-suave); margin-top: 2px; white-space: nowrap; }
.sub-celda.retraso { color: #B4621F; font-weight: 600; }
.inscritos-celda.aviso b { color: #B4621F; }
.inscritos-celda.peligro b { color: var(--alta); }
.inscritos-celda .sub-celda { text-align: right; }
table.jornadas.v2 .secundaria { font-size: 11.5px; color: var(--texto-suave); white-space: nowrap; }
.dot.gris { background: #C5C8C3; }
.dot.amarillo { background: #E2C84A; }
tr.divisor td { background: #F7F8F5; color: var(--texto-suave); font-size: 11px; text-transform: uppercase; letter-spacing: .04em; font-weight: 600; cursor: default; }

/* ── Filtros de la lista: un solo lenguaje para «activo» en las dos filas (D10) ── */
.etiqueta-fila { font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--texto-suave); margin-right: 2px; align-self: center; }
.barra-tabla .chips, .barra-tabla .resumen-fases { align-items: center; }
.barra-tabla .chip-filtro { border-width: 1.5px; }
.barra-tabla .chip-filtro.sel { border-color: var(--texto); color: var(--texto); background: #fff; font-weight: 700; }
.chip-accion b { color: var(--alta); }
.resumen-fases button.sel .fase { border-color: var(--texto); font-weight: 700; }
.resumen-fases button.apagada .fase { background: #fff; color: var(--texto-suave); border-color: var(--borde); }
.quitar-filtros { font-weight: 600; }
.timeline .mensaje .icono { border-color: #6F9BCB; }
.timeline .respuesta_colegio .icono, .timeline .respuesta_ponente .icono { border-color: var(--verde); }
.timeline .excel .icono { border-color: #B8BDC2; }
.etiqueta-tl { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; background: #F0F1EE; border-radius: 4px; padding: 0 5px; }

/* ── Colegios y asociaciones (D11) ── */
.derecha-cabecera { margin-left: auto; }
.acciones-entidad { display: flex; gap: 6px; flex-wrap: wrap; align-items: flex-start; }
table.mini-tabla { width: 100%; border-collapse: collapse; font-size: 12.5px; margin-bottom: 12px; }
table.mini-tabla th { text-align: left; font-size: 10.5px; text-transform: uppercase; letter-spacing: .03em; color: var(--texto-suave); padding: 6px 6px; border-bottom: 1px solid var(--borde); }
table.mini-tabla td { padding: 7px 6px; border-bottom: 1px solid #F0F1EE; }
table.mini-tabla tbody tr { cursor: pointer; }
table.mini-tabla tbody tr:hover { background: #F7F9F5; }
table.mini-tabla .num { text-align: right; }
.form-datos { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.form-datos .campo-grande { width: 100%; }
.sin-correo { color: #B4621F; font-weight: 600; }
.elegir-jornada { justify-content: flex-start; width: 100%; }
.contactos-lista li { position: relative; }
.aviso-duplicado { background: #FFF6D6; border: 1px solid #D9B84A; border-radius: 10px; padding: 10px 14px; font-size: 13px; }
.aviso-duplicado ul { margin: 6px 0 8px; padding-left: 18px; }
.aviso-duplicado li { margin-bottom: 4px; }
.crear-entidad { font-weight: 500; color: var(--texto-suave); }
.crear-entidad.destacado { color: #6B5A12; background: #FFF6D6; border-radius: 6px; padding: 4px 8px; }
.crear-entidad.destacado a { font-weight: 700; }
.acciones-contacto { margin-left: 6px; display: inline-flex; gap: 8px; }
.contactos-lista + .btn { margin-top: 8px; }
.paso2 { display: flex; flex-direction: column; gap: 10px; border-top: 1px solid var(--borde); padding-top: 12px; }
.existente { font-size: 13px; background: #F5F7F1; border-radius: 8px; padding: 9px 11px; }

/* ── Ajustes: Cómo funciona (K6) ── */
.aviso-ajustes { font-size: 14px; font-weight: 600; background: #EEF5EE; color: #1F6E33; border-radius: 10px; padding: 10px 14px; margin: 0 0 14px; }
.indice-fases { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.fase-recorrido { margin-bottom: 14px; }
.fase-recorrido h2 { margin-bottom: 10px; }
table.recorrido td { vertical-align: top; }
table.recorrido tbody tr { cursor: default; }
table.recorrido tr.informativo td { color: var(--texto-suave); }
@media print {
  .sidebar, .topbar, .no-imprimir, .toasts, .btn-comentario { display: none !important; }
  body { background: #fff; display: block; }
  .content { padding: 0; }
  .tarjeta { box-shadow: none; border: 1px solid #ccc; }
  .fase-recorrido { break-inside: avoid; }
  table.mini-tabla { font-size: 10.5px; }
  .fase { border: 1px solid #999; }
}
.nav-titulo { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; opacity: .7; padding: 4px 10px 2px; }
.etiqueta-rol { font-size: 11px; font-weight: 600; background: #F0F1EE; border-radius: 5px; padding: 1px 6px; margin-right: 4px; white-space: nowrap; }
tr.inactivo td { color: var(--texto-suave); }
.nuevo-festivo { padding: 12px 14px; border-top: 1px solid var(--borde); }
.acciones-festivo { display: flex; gap: 10px; }
table.festivos tbody tr { cursor: default; }

/* Selector de herramienta (jornadas, redes…): el menú lateral solo muestra la herramienta elegida */
.selector-eina { position: relative; margin: -12px 0 16px; }
.selector-eina summary { list-style: none; cursor: pointer; display: flex; flex-direction: column; padding: 8px 30px 8px 10px; border-radius: 8px; background: rgba(255, 255, 255, .12); font-weight: 600; font-size: 14px; position: relative; }
.selector-eina summary::-webkit-details-marker { display: none; }
.selector-eina summary::after { content: "▾"; position: absolute; right: 11px; top: 50%; transform: translateY(-50%); opacity: .8; }
.selector-eina summary small { font-size: 9.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; opacity: .7; }
.selector-eina summary:hover { background: rgba(255, 255, 255, .18); }
.selector-eina ul { position: absolute; z-index: 30; left: 0; right: -40px; top: calc(100% + 4px); list-style: none; margin: 0; padding: 6px; background: #fff; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, .18); }
.selector-eina a { display: block; padding: 8px 10px; border-radius: 7px; color: var(--texto); }
.selector-eina a:hover { background: #EEF5EE; text-decoration: none; }
.selector-eina a b { display: block; font-size: 13.5px; }
.selector-eina a span { font-size: 11.5px; color: var(--texto-suave); }
