/* =====================================================
   Kiosko Informativo Digital - C.T.P. Bolívar (v3)
   Layout: cabecera + (rotación principal | panel fijo ausentes) + cintíllo
   ===================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700;800&display=swap');

:root{
  --navy-950: #071527;
  --navy-900: #0B1F3A;
  --navy-800: #13294B;
  --navy-700: #1C3A63;
  --gold: #C9A227;
  --gold-soft: #E4C766;
  --red-alert: #D9534F;
  --white: #F7F9FC;
  --white-dim: rgba(247,249,252,0.66);
  --white-faint: rgba(247,249,252,0.28);
  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Inter', system-ui, sans-serif;
}

*{ box-sizing: border-box; margin:0; padding:0; }
html, body{ width:100%; height:100%; background: var(--navy-950); color: var(--white); font-family: var(--font-body); overflow:hidden; }

#kiosko-shell{
  width:100vw; height:100vh;
  display:flex; flex-direction:column;
  background:
    radial-gradient(1200px 600px at 85% -10%, rgba(201,162,39,0.10), transparent 60%),
    linear-gradient(180deg, var(--navy-900) 0%, var(--navy-950) 100%);
  position:relative;
}
#kiosko-shell::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background: linear-gradient(90deg, transparent, var(--gold) 20%, var(--gold-soft) 50%, var(--gold) 80%, transparent);
  opacity:0.85;
}

/* ---------- Header ---------- */
#kiosko-header{
  display:flex; align-items:center; justify-content:space-between;
  padding: 2vh 3vw 1.4vh;
  border-bottom: 1px solid var(--white-faint);
  flex-shrink:0;
}
.marca{ display:flex; flex-direction:column; gap:.3vh; }
.marca-nombre{ font-family: var(--font-display); font-weight:600; font-size: 28px; font-size: clamp(1.5rem, 2.3vw, 2.3rem); }
.marca-tagline{ font-size: 14px; font-size: clamp(.75rem, .9vw, .95rem); color: var(--gold-soft); font-weight:500; letter-spacing:.4px; text-transform:uppercase; }
.reloj{ font-family: var(--font-body); font-variant-numeric: tabular-nums; font-weight:700; font-size: 28px; font-size: clamp(1.5rem, 2.6vw, 2.6rem); text-align:right; line-height:1; }
.reloj .fecha{ display:block; font-size:.38em; font-weight:500; color: var(--white-dim); text-transform:capitalize; margin-top:.5vh; }

/* ---------- Cuerpo: columna izquierda (video + stage) + panel fijo ---------- */
#kiosko-cuerpo{
  flex:1; display:flex; min-height:0;
}

#kiosko-columna-izquierda{
  flex: 1 1 72%;
  display:flex; flex-direction:column;
  min-height:0;
  border-right: 1px solid var(--white-faint);
}

/* --- Espacio fijo de video --- */
#video-wrap{
  flex: 0 0 42%;
  position:relative;
  background: var(--navy-950);
  border-bottom: 1px solid var(--white-faint);
  overflow:hidden;
}
#video-embed{ width:100%; height:100%; }
#video-embed iframe{ width:100%; height:100%; border:0; display:block; }
#video-vacio{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  color: var(--white-dim);
  font-size: clamp(.85rem, 1vw, 1rem);
}
#btn-sonido-video{
  position:absolute; right:10px; bottom:10px; z-index:5;
  background: rgba(7,21,39,0.72);
  color: var(--white);
  border: 1px solid var(--white-faint);
  border-radius: 20px;
  padding: 6px 14px;
  font-size: 13px;
  font-family: var(--font-body);
  cursor: pointer;
  display:none;
  align-items:center; gap:6px;
  backdrop-filter: blur(2px);
}
#btn-sonido-video.visible{ display:flex; }
#btn-sonido-video:hover{ background: rgba(7,21,39,0.9); }
#btn-sonido-video.activo{ border-color: var(--gold); color: var(--gold-soft); }

/* --- Stage rotativo (avisos/horario/directorio/calendario/imagen) --- */
#kiosko-stage{
  flex: 1 1 auto;
  position:relative;
  display:flex; align-items:center; justify-content:center;
  padding: 2vh 3vw;
  overflow:hidden;
  min-height:0;
}
#loading-msg{ color: var(--white-dim); font-size:1.15rem; }

.slide{
  position:absolute; top: 2vh; left: 3vw; right: 3vw; bottom: 2vh;
  display:flex; flex-direction:column; justify-content:flex-start;
  padding-top: 2vh;
  min-height: 0;
  opacity:0; transform: translateY(14px);
  transition: opacity .6s ease, transform .6s ease;
  pointer-events:none;
}
.slide.activo{ opacity:1; transform:none; pointer-events:auto; }

.slide-eyebrow{ font-size: 16px; font-size: clamp(.75rem, .9vw, .95rem); color: var(--gold-soft); text-transform:uppercase; letter-spacing:1.6px; font-weight:700; margin-bottom:1.4vh; }
.slide-titulo{ font-family: var(--font-display); font-weight:600; font-size: 42px; font-size: clamp(1.8rem, 3.4vw, 3.4rem); line-height:1.1; margin-bottom:2vh; max-width:94%; }
.slide-cuerpo{ font-size: 22px; font-size: clamp(1rem, 1.4vw, 1.4rem); line-height:1.55; color: var(--white-dim); white-space:pre-line; max-width:78ch; }
.slide-imagen-wrap{
  flex:1;
  min-height: 0;
  display:flex; align-items:center; justify-content:center;
}
.slide-imagen-wrap img{
  max-width:100%; max-height:100%;
  width:auto; height:auto;
  object-fit: contain;
  border-radius:14px;
  box-shadow: 0 20px 60px rgba(0,0,0,.45);
  border: 1px solid var(--white-faint);
}

.directorio-lista{ list-style:none; display:flex; flex-direction:column; gap:1.2vh; }
.directorio-lista li{ display:flex; justify-content:space-between; gap:2rem; font-size: clamp(1rem, 1.3vw, 1.35rem); border-bottom:1px solid var(--white-faint); padding-bottom:1vh; }
.directorio-lista .rol{ color: var(--white-dim); font-weight:500; }
.directorio-lista .nombre{ font-weight:700; }

.eventos-lista{ list-style:none; display:flex; flex-direction:column; gap:1vh; }
.eventos-lista li{ display:flex; align-items:baseline; gap:1.2rem; font-size: clamp(.95rem, 1.2vw, 1.25rem); }
.eventos-fecha{ font-weight:800; color: var(--gold-soft); min-width:9ch; }

/* Dots dentro del stage, esquina inferior */
#dots{ position:absolute; left:3vw; bottom:1.6vh; display:flex; gap:.55rem; z-index:5; }
.dot{ width:7px; height:7px; border-radius:50%; background: var(--white-faint); transition: background .3s ease, transform .3s ease; }
.dot.activo{ background: var(--gold); transform: scale(1.3); }

/* --- Panel fijo: docentes ausentes --- */
#panel-ausentes{
  flex: 0 0 28%;
  max-width: 28%;
  padding: 2.4vh 2vw;
  display:flex; flex-direction:column;
  background: rgba(255,255,255,0.02);
}
.panel-titulo{
  display:flex; align-items:center; gap:.6rem;
  font-family: var(--font-body); font-weight:800;
  font-size: clamp(1rem, 1.3vw, 1.3rem);
  text-transform:uppercase; letter-spacing:.6px;
  color: var(--white);
  padding-bottom: .6vh;
}
.panel-fecha{
  font-size: 13px;
  font-size: clamp(.75rem, .95vw, .95rem);
  color: var(--gold-soft);
  text-transform:capitalize;
  padding-bottom: 1.6vh; margin-bottom: 1.6vh;
  border-bottom: 2px solid var(--gold);
}
.panel-icono{ color: var(--red-alert); font-size:.7em; }

.ausentes-lista{ list-style:none; display:flex; flex-direction:column; gap:1.2vh; overflow-y:auto; }
.ausentes-lista li{
  background: rgba(255,255,255,0.04);
  border-left: 3px solid var(--gold);
  border-radius: 6px;
  padding: 1.1vh 1vw;
}
.ausente-nombre{ display:block; font-weight:700; font-size: clamp(.95rem, 1.15vw, 1.2rem); }
.ausente-motivo{ display:block; font-size: clamp(.78rem, .9vw, .95rem); color: var(--white-dim); margin-top:.3vh; }
.ausentes-vacio{
  background:none !important; border-left:none !important;
  color: var(--white-dim); text-align:center; padding-top:3vh !important;
  font-size: clamp(.9rem, 1.05vw, 1.05rem);
}

/* ---------- Cintíllo de noticias (footer) ---------- */
#kiosko-ticker{
  flex-shrink:0;
  height: 6.4vh;
  display:flex; align-items:stretch;
  border-top: 1px solid var(--white-faint);
  background: var(--navy-800);
}
.ticker-etiqueta{
  flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  padding: 0 2vw;
  background: var(--gold);
  color: var(--navy-950);
  font-weight:800;
  font-size: clamp(.8rem, 1vw, 1rem);
  letter-spacing:1.2px;
}
.ticker-pista{ flex:1; overflow:hidden; position:relative; display:flex; align-items:center; }
.ticker-texto{
  white-space:nowrap;
  font-size: 20px;
  font-size: clamp(1rem, 1.3vw, 1.35rem);
  font-weight:500;
  padding-left:100%;
  animation: ticker-scroll 30s linear infinite;
}
@keyframes ticker-scroll{
  from{ transform: translateX(0); }
  to{ transform: translateX(-100%); }
}

@media (prefers-reduced-motion: reduce){
  .slide, .dot{ transition:none; }
  .ticker-texto{ animation-duration: 60s; }
}