/* ════════════════════════════════════════════════════════════════════════
   Portal de Noticias · EASD València
   Estética «Redacción»: barra lateral azul tinta pegada al borde, fondo de papel
   frío, cabecera de periódico con «Noticias» grande y filete naranja. Identidad: naranja #FC4921 y Work Sans.
   ════════════════════════════════════════════════════════════════════════ */

@font-face{font-family:'Work Sans';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('/fuentes/worksans-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('/fuentes/worksans-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --naranja:#FC4921; --naranja-osc:#E23A12; --naranja-suave:#FEE3DC; --naranja-tenue:#FFF3EE;
  --oscuro:#16264A; --oscuro-2:#22365F; --tinta:#0F1B33; --texto:#26324A; --gris:#5F6B80; --gris-claro:#8E99AB; --linea:rgba(15,27,51,.16);
  --fondo:#EEF2F7; --campo:#F4F6FA; --blanco:#fff;
  --ok:#1D7A36; --ok-suave:#E3F2E7; --aviso:#9A6200; --aviso-suave:#FBF0D9; --mal:#C0211A; --mal-suave:#FBE4E2;
  --azul:#1C5F92; --azul-suave:#E4EEF6;
  --r:0; --r-peq:0;
  --sombra:0 0 0 transparent;
  --sombra-alta:4px 4px 0 var(--oscuro);
  --curva:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Work Sans',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:15.5px;line-height:1.55;color:var(--texto);
  background:var(--fondo);
  background-attachment:fixed;-webkit-font-smoothing:antialiased;
}
a{color:var(--naranja)}
img{max-width:100%}
h1,h2,h3,h4{color:var(--tinta);margin:0}
p{margin:.4rem 0 .8rem}
.oculto,[hidden]{display:none !important}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}
.suave{color:var(--gris)}
.peq{font-size:.86rem}
.nota{color:var(--gris);font-size:.86rem}

/* ═════════════════════════════ marco: lateral + principal ═════════════ */
.app{display:grid;grid-template-columns:264px 1fr;min-height:100vh}
.lateral{
  position:sticky;top:0;height:100vh;margin:0;
  background:var(--oscuro);color:#EEF2F8;border-radius:0;padding:22px 14px;border-top:6px solid var(--naranja);
  display:flex;flex-direction:column;box-shadow:0 30px 60px -30px rgba(0,0,0,.6);overflow-y:auto;scrollbar-width:none;z-index:20}
.lateral::-webkit-scrollbar{width:0}
.marca{display:flex;align-items:center;gap:12px;text-decoration:none;padding:4px 8px 18px}
.marca img{width:40px;height:40px;flex-shrink:0;transition:transform .8s var(--curva)}
.marca:hover img{transform:rotate(45deg)}
.marca{flex-direction:column;align-items:flex-start;gap:8px;padding:2px 10px 20px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:6px}
.marca img{width:34px;height:34px}
.marca b{display:block;color:#fff;font-size:2.1rem;font-weight:800;letter-spacing:-.05em;line-height:1}
.marca b::after{content:'.';color:var(--naranja)}
.marca small{display:block;color:#8E99AB;font-size:.74rem;line-height:1.25}
.nav{display:flex;flex-direction:column;gap:2px}
.nav .grupo{color:#7F8BA1;font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;padding:16px 12px 6px}
.nav a{display:flex;align-items:center;gap:11px;color:#C3CDDD;text-decoration:none;border-radius:0;padding:9px 12px;font-size:.93rem;transition:background .15s,color .15s}
.nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.nav a.activo{background:#fff;color:var(--oscuro);font-weight:600;box-shadow:inset 4px 0 0 var(--naranja)}
.nav a .cuenta{margin-left:auto;background:var(--naranja);color:#fff;font-size:.7rem;font-weight:700;border-radius:0;padding:1px 8px;min-width:22px;text-align:center}
.nav a.activo .cuenta{background:var(--naranja)}
.pic{width:20px;height:20px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.lateral-pie{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:14px 4px 0;display:flex;flex-direction:column;gap:2px}
.lateral-pie .quien{padding:4px 8px 10px;font-size:.82rem;color:#8E99AB;line-height:1.3}
.lateral-pie .quien b{display:block;color:#EEF2F8;font-weight:600;font-size:.9rem}
.lateral-pie a,.lateral-pie button{display:flex;align-items:center;gap:11px;width:100%;background:none;border:0;color:#C3CDDD;
  font:inherit;font-size:.88rem;text-align:left;text-decoration:none;border-radius:0;padding:8px 12px;cursor:pointer}
.lateral-pie a:hover,.lateral-pie button:hover{background:rgba(255,255,255,.07);color:#fff}
.lateral-pie a.activo{background:rgba(255,255,255,.12);color:#fff}
.menu-movil{display:none}

.principal{min-width:0;padding:0 0 60px}
.franja{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:16px 44px 0;color:#55617A;font-size:.85rem}
.franja b{color:var(--tinta)}
.franja .chip-pruebas{background:var(--aviso-suave);color:var(--aviso);border-radius:0;padding:2px 10px;font-weight:700;font-size:.72rem;letter-spacing:.06em}
.franja .version{margin-left:auto;color:var(--gris-claro);font-size:.76rem}
.cabecera{position:relative;display:flex;align-items:center;gap:16px;padding:22px 44px 18px;overflow:visible}
.cabecera{border-bottom:2px solid var(--tinta);margin:0 44px 22px;padding-left:0!important;padding-right:0!important}
.cabecera::after{content:"";position:absolute;left:0;bottom:-6px;width:100%;border-bottom:1px solid var(--tinta)}
@keyframes gira{to{transform:rotate(360deg)}}
.pic-titulo{width:46px;height:46px;padding:10px;background:var(--naranja);stroke:#fff!important;border-radius:50%;box-shadow:var(--sombra);flex-shrink:0;stroke:var(--naranja)}
.cabecera-txt{min-width:0;flex:1}
.cabecera h1{font-size:2.6rem;line-height:1.05;letter-spacing:-.04em;font-weight:800}
.cabecera .sub{color:var(--gris);margin:.35rem 0 0;font-size:.98rem;max-width:62ch}
.boton-manual{position:relative;flex-shrink:0;display:inline-flex;align-items:center;gap:8px;border-radius:0;padding:.55rem 1rem;
  background:#fff;color:var(--tinta);text-decoration:none;font-weight:600;font-size:.86rem;box-shadow:var(--sombra)}
.boton-manual:hover{background:var(--tinta);color:#fff}
.boton-manual .pic{width:18px;height:18px}
.contenido{padding:0 44px 0;max-width:1180px}
.contenido.ancho{max-width:none}

/* ═════════════════════════════ tarjetas y bloques ═════════════ */
.tarjeta,.bloque{background:#fff;border-radius:var(--r);border:1px solid var(--linea);box-shadow:var(--sombra)}
.tarjeta{padding:22px 24px}
.bloque{margin-bottom:18px;transition:box-shadow .2s}
.bloque:hover{box-shadow:var(--sombra-alta)}
.bloque-cab{position:relative;display:flex;align-items:center;gap:12px;padding:16px 22px 14px 30px;border-bottom:1px solid var(--linea)}
.bloque-cab::before{content:"";position:absolute;left:12px;top:50%;height:22px;margin-top:-11px;width:4px;border-radius:0;background:var(--zona,var(--naranja))}
.bloque-cab h2,.bloque-cab h3{font-size:1.06rem;font-weight:600;letter-spacing:-.01em;flex:1}
.bloque-cab .ayuda{color:var(--gris);font-size:.82rem}
.bloque-cuerpo{padding:18px 22px 20px}
.bloque.zona-azul{--zona:var(--azul)} .bloque.zona-verde{--zona:var(--ok)} .bloque.zona-gris{--zona:#8C877E} .bloque.zona-ambar{--zona:#D9A43B} .bloque.zona-naranja{--zona:var(--naranja)}
.paso-num{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--naranja-suave);color:var(--naranja);font-weight:700;font-size:.85rem;flex-shrink:0}
.bloque.hecho .paso-num{background:var(--ok);color:#fff}

/* rejilla y «bento» */
.rejilla{display:grid;gap:16px}
.rejilla.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.rejilla.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.rejilla.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.bento{grid-template-columns:2fr 1fr 1fr 1fr}
.cifra{position:relative;overflow:hidden;background:#fff;border:1px solid var(--linea);border-radius:var(--r);box-shadow:var(--sombra);
  padding:20px 22px;min-height:140px;display:flex;flex-direction:column;justify-content:flex-end;text-decoration:none;color:inherit;transition:transform .25s var(--curva),box-shadow .2s}
a.cifra:hover{transform:translateY(-2px);box-shadow:var(--sombra-alta)}
.cifra .n{font-size:3rem;font-weight:600;letter-spacing:-.06em;line-height:1;color:var(--tinta)}
.cifra .et{font-size:.86rem;color:var(--gris);margin-top:6px}
.cifra.oscura{background:var(--oscuro);border-color:var(--oscuro);color:#fff}
.cifra.oscura .n{color:var(--naranja);font-size:4.4rem}
.cifra.oscura .et{color:#C3CDDD}
.cifra.oscura::before{content:"";position:absolute;left:0;top:0;right:0;height:6px;background:var(--naranja)}

.cifra.naranja{background:linear-gradient(160deg,#FF5A33,#F2401A);border-color:transparent;color:#fff}
.cifra.naranja .n,.cifra.naranja .et{color:#fff}

/* llamada a la acción grande */
.llamada{position:relative;overflow:hidden;display:flex;align-items:center;gap:22px;background:var(--oscuro);color:#EEF2F8;border-radius:0;padding:28px 30px;box-shadow:var(--sombra-alta);text-decoration:none}
.llamada::after{content:"";position:absolute;right:-70px;bottom:-80px;width:260px;height:260px;opacity:.18;background:url('/img/escola-icono-general.png') center/contain no-repeat;transition:transform 1s var(--curva)}
.llamada:hover::after{transform:rotate(40deg)}
.llamada h2{color:#fff;font-size:1.6rem;letter-spacing:-.03em;font-weight:600}
.llamada p{color:#B9B4AB;margin:.3rem 0 0}
.llamada .boton{position:relative;z-index:1;margin-left:auto}

/* pasos de «cómo funciona» */
.pasos-guia{counter-reset:p;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;list-style:none;padding:0;margin:0}
.pasos-guia li{counter-increment:p;background:#fff;border:1px solid var(--linea);border-radius:var(--r);padding:18px 18px 16px;box-shadow:var(--sombra)}
.pasos-guia li::before{content:counter(p);display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;
  background:var(--naranja);color:#fff;font-weight:700;margin-bottom:10px}
.pasos-guia b{display:block;color:var(--tinta);margin-bottom:2px}
.pasos-guia.texto b{display:inline;margin:0} .pasos-guia.texto li{font-size:.92rem;color:var(--gris);line-height:1.5}
.pasos-guia span{color:var(--gris);font-size:.9rem}

/* ═════════════════════════════ botones, campos, pastillas ═════════════ */
.boton{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:0;padding:.62rem 1.2rem;cursor:pointer;
  border:1px solid #DDD7CC;background:#fff;color:var(--tinta);font:inherit;font-weight:600;font-size:.92rem;text-decoration:none;
  transition:transform .2s var(--curva),box-shadow .2s,background .2s,color .2s;white-space:nowrap}
.boton:hover{transform:translateY(-1px);box-shadow:0 8px 18px -10px rgba(20,20,20,.5)}
.boton:disabled{opacity:.5;cursor:wait;transform:none;box-shadow:none}
.boton.primario{background:linear-gradient(180deg,#FF5A33,#F2401A);border-color:transparent;color:#fff;box-shadow:0 8px 20px -10px rgba(252,73,33,.8)}
.boton.primario:hover{background:var(--oscuro)}
.boton.oscuro{background:var(--oscuro);border-color:var(--oscuro);color:#fff}
.boton.oscuro:hover{background:var(--naranja);border-color:var(--naranja)}
.boton.peligro{color:var(--mal);border-color:#EBC2BE}
.boton.peligro:hover{background:var(--mal);color:#fff;border-color:var(--mal)}
.boton.secundario{background:#fff}
.boton.pequeno,.boton.boton-pequeno{padding:.42rem .9rem;font-size:.84rem}
.boton.grande{padding:.85rem 1.6rem;font-size:1rem}
.boton .pic{width:18px;height:18px}
.boton-texto{background:none;border:0;padding:0;color:var(--naranja);font:inherit;font-weight:600;cursor:pointer}
.acciones{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-top:16px}

.campo{display:block;margin-bottom:14px}
.campo > span,.etiqueta-campo{display:block;font-size:.82rem;font-weight:600;color:var(--tinta);margin-bottom:6px}
.campo small{display:block;color:var(--gris);font-size:.8rem;margin-top:5px}
input[type=text],input[type=email],input[type=password],input[type=url],input[type=number],input[type=search],select,textarea{
  width:100%;font:inherit;font-size:.95rem;color:var(--tinta);background:var(--campo);border:1px solid transparent;border-radius:var(--r-peq);
  padding:.72rem .9rem;transition:border-color .15s,box-shadow .15s,background .15s}
:is(input,select,textarea):hover{border-color:#DDD7CC}
:is(input,select,textarea):focus{outline:none;background:#fff;border-color:#141414;box-shadow:0 0 0 4px rgba(252,73,33,.16)}
textarea{min-height:130px;resize:vertical;line-height:1.55}
input.grande{font-size:1.15rem;font-weight:500;padding:.9rem 1rem}
.fila{display:flex;flex-wrap:wrap;gap:0 16px}
.fila > *{flex:1 1 220px}
.interruptor{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-weight:600}
.interruptor input{appearance:none;width:44px;height:26px;border-radius:0;background:#C9D3E1;position:relative;cursor:pointer;transition:background .2s;margin:0}
.interruptor input::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s var(--curva);box-shadow:0 1px 3px rgba(0,0,0,.2)}
.interruptor input:checked{background:var(--naranja)}
.interruptor input:checked::after{transform:translateX(18px)}

.sello,.insignia,.chip{display:inline-flex;align-items:center;gap:6px;border-radius:0;padding:3px 10px;font-size:.74rem;font-weight:700;letter-spacing:.02em;
  background:#EFECE6;color:#55617A;white-space:nowrap}
.sello::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.sello.ok,.insignia.ok{background:var(--ok-suave);color:var(--ok)}
.sello.aviso,.insignia.aviso{background:var(--aviso-suave);color:var(--aviso)}
.sello.mal,.insignia.mal{background:var(--mal-suave);color:var(--mal)}
.sello.naranja,.insignia.naranja{background:var(--naranja-suave);color:var(--naranja-osc)}
.sello.azul,.insignia.azul{background:var(--azul-suave);color:var(--azul)}
.insignia.num,.insignia.oscura{background:var(--tinta);color:#fff}
.insignia.suave{background:var(--naranja-suave);color:var(--naranja-osc)}
.insignias{display:flex;flex-wrap:wrap;gap:6px;align-items:center}

/* avisos */
.aviso{border-radius:var(--r-peq);padding:13px 16px;margin:0 0 16px;background:var(--naranja-tenue);border:1px solid var(--naranja-suave);color:var(--texto);font-size:.93rem}
.aviso.error{background:var(--mal-suave);border-color:#F2C3BF;color:#7c1511}
.aviso.ok{background:var(--ok-suave);border-color:#BFE0C8;color:#13491f}
.aviso.info{background:var(--azul-suave);border-color:#C6DAEA;color:#123c5c}
.aviso ul{margin:.4rem 0 0;padding-left:1.2rem}
.aviso b,.aviso strong{color:inherit}

/* notificaciones flotantes */
.toasts{position:fixed;right:22px;bottom:22px;display:flex;flex-direction:column;gap:10px;z-index:200}
.toast{background:var(--oscuro);color:#fff;border-radius:0;padding:12px 16px;box-shadow:var(--sombra-alta);font-size:.9rem;max-width:380px;
  animation:sube .3s var(--curva)}
.toast.ok{border-left:4px solid #3FBF68} .toast.error{border-left:4px solid var(--naranja)}
@keyframes sube{from{transform:translateY(12px);opacity:0}}

/* diálogo */
.modal{position:fixed;inset:0;background:rgba(20,20,20,.45);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;
  overflow-y:auto;padding:6vh 16px;z-index:150}
.modal-caja{background:#fff;border-radius:0;max-width:720px;width:100%;padding:26px 28px;box-shadow:var(--sombra-alta);animation:sube .3s var(--curva)}
.modal-caja h2{font-size:1.4rem;letter-spacing:-.02em;margin-bottom:10px}

/* listas tipo fila */
.lista-filas{display:flex;flex-direction:column;gap:10px}
.fila-item{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--linea);border-radius:0;padding:14px 18px;box-shadow:var(--sombra);
  text-decoration:none;color:inherit;transition:transform .2s var(--curva),box-shadow .2s}
a.fila-item:hover,button.fila-item:hover{transform:translateY(-1px);box-shadow:var(--sombra-alta)}
.fila-item .principal-txt{flex:1;min-width:0}
.fila-item .principal-txt b{display:block;color:var(--tinta);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fila-item .principal-txt small{color:var(--gris);font-size:.82rem}
.fila-item .flecha{color:var(--gris-claro);font-size:1.3rem}
.vacio{text-align:center;color:var(--gris);padding:34px 20px;background:rgba(255,255,255,.6);border:1px dashed #C9D3E1;border-radius:var(--r)}
.vacio img{width:54px;opacity:.5;margin-bottom:8px}

/* pestañas y filtros */
.pestanas{display:inline-flex;gap:4px;background:#E1E7F0;border-radius:0;padding:4px;margin-bottom:16px;flex-wrap:wrap}
.pestanas button{border:0;background:none;font:inherit;font-weight:600;font-size:.88rem;color:#55617A;padding:.45rem 1rem;border-radius:0;cursor:pointer}
.pestanas button.activa{background:#fff;color:var(--tinta);box-shadow:var(--sombra)}
.pestanas button .cuenta{background:var(--naranja);color:#fff;border-radius:0;font-size:.7rem;padding:0 7px;margin-left:4px}

/* ═════════════════════════════ zona de arrastrar y archivos ═════════════ */
.zona-arrastre{border:2px dashed #DCD5C9;border-radius:var(--r);padding:30px 20px;text-align:center;cursor:pointer;background:var(--campo);transition:background .15s,border-color .15s}
.zona-arrastre:hover,.zona-arrastre.encima{background:var(--naranja-tenue);border-color:var(--naranja)}
.zona-arrastre .icono-subir{width:46px;height:46px;stroke:var(--naranja);margin-bottom:6px}
.zona-arrastre p{margin:.2rem 0}
.zona-arrastre strong{color:var(--naranja)}
.miniaturas{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:14px}
.mini{position:relative;border-radius:0;overflow:hidden;background:#fff;border:1px solid var(--linea);box-shadow:var(--sombra)}
.mini img{display:block;width:100%;height:120px;object-fit:cover;background:#EFECE6}
.mini .pie{padding:7px 9px 8px;font-size:.75rem;line-height:1.3}
.mini .pie b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--tinta);font-weight:600}
.mini.mal{border-color:#F2C3BF}
.mini.mal img{opacity:.45;filter:grayscale(.6)}
.mini .quitar{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;border:0;background:rgba(20,20,20,.7);color:#fff;cursor:pointer;font-size:1rem;line-height:1}
.mini .quitar:hover{background:var(--mal)}
.mini.seleccionable{cursor:pointer}
.mini.excluida img{filter:grayscale(1);opacity:.3}
.mini .marca-excluida{position:absolute;top:44px;left:0;right:0;text-align:center;color:var(--mal);font-weight:800;font-size:.72rem;letter-spacing:.1em}
.progreso{height:8px;background:#E1E7F0;border-radius:0;overflow:hidden;margin-top:14px}
.progreso div{height:100%;width:0;background:linear-gradient(90deg,#FF5A33,#F2401A);transition:width .2s}

/* galería antigua (anuario) */
.galeria{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}
.miniatura{position:relative;width:140px;border-radius:0;overflow:hidden;background:#fff;border:1px solid var(--linea);box-shadow:var(--sombra)}
.miniatura img{width:100%;height:96px;object-fit:cover;display:block}
.miniatura button{position:absolute;top:5px;right:5px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(20,20,20,.7);color:#fff;cursor:pointer}
.miniatura .nombre-archivo{font-size:.7rem;color:var(--gris);padding:5px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ═════════════════════════════ editor de texto ═════════════ */
.editor-caja{border:1px solid #E2DDD3;border-radius:var(--r-peq);background:#fff;overflow:hidden}
.editor-caja:focus-within{border-color:#141414;box-shadow:0 0 0 4px rgba(252,73,33,.16)}
.editor-barra{display:flex;align-items:center;gap:2px;flex-wrap:wrap;border-bottom:1px solid #EEE9E1;background:#FAF8F5;padding:6px 8px}
.editor-barra button{background:none;border:1px solid transparent;border-radius:0;font:inherit;font-size:.86rem;color:var(--tinta);min-width:32px;padding:5px 8px;cursor:pointer}
.editor-barra button:hover{background:#fff;border-color:#E2DDD3}
.editor-barra select{width:auto;padding:5px 8px;font-size:.84rem;background:transparent}
.editor-barra .separador{width:1px;height:20px;background:#E2DDD3;margin:0 5px}
.color-boton{position:relative;display:inline-flex;flex-direction:column;align-items:center;font-weight:700;font-size:.86rem;padding:3px 8px 0;cursor:pointer;line-height:1.1}
.color-boton input{position:absolute;inset:0;opacity:0;cursor:pointer}
.color-boton .muestra{width:16px;height:4px;background:var(--naranja);margin-top:2px;border-radius:0}
.editor{min-height:240px;max-height:560px;overflow-y:auto;padding:14px 16px;outline:none;line-height:1.6}
.editor:empty::before{content:attr(data-placeholder);color:#9a958c;pointer-events:none}
.editor ul,.editor ol{padding-left:1.4rem}

/* ═════════════════════════════ entrar / páginas sueltas ═════════════ */
.pagina-suelta{min-height:100vh}
.entrar{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh}
.entrar-lado{position:relative;overflow:hidden;background:var(--oscuro);color:#EEF2F8;padding:48px 52px;display:flex;flex-direction:column;justify-content:space-between;border-radius:0 28px 28px 0}
.entrar-lado::after{content:"";position:absolute;right:-140px;bottom:-140px;width:520px;height:520px;opacity:.22;
  background:url('/img/escola-icono-general.png') center/contain no-repeat;animation:gira 120s linear infinite}
.entrar-lado .marca-grande{display:flex;align-items:center;gap:14px;color:#fff;text-decoration:none}
.entrar-lado .marca-grande img{width:52px}
.entrar-lado .marca-grande b{display:block;font-size:1.25rem;font-weight:600}
.entrar-lado .marca-grande small{color:#8E99AB}
.entrar-lado h1{color:#fff;font-size:3.1rem;letter-spacing:-.05em;line-height:1.02;font-weight:600;max-width:12ch;position:relative;z-index:1}
.entrar-lado h1 em{font-style:normal;color:var(--naranja)}
.entrar-lado ol{position:relative;z-index:1;list-style:none;padding:0;margin:22px 0 0;display:flex;flex-direction:column;gap:12px;max-width:40ch}
.entrar-lado ol li{display:flex;gap:12px;align-items:flex-start;color:#C3CDDD}
.entrar-lado ol li span{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:rgba(252,73,33,.18);color:var(--naranja);font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem}
.entrar-lado .pie-lado{position:relative;z-index:1;color:#7F8BA1;font-size:.8rem}
.entrar-form{display:flex;align-items:center;justify-content:center;padding:40px 24px}
.entrar-form .tarjeta{width:100%;max-width:440px;padding:32px 32px 28px;border-radius:0}
.entrar-form h2{font-size:1.9rem;letter-spacing:-.04em;font-weight:600;margin-bottom:4px}
.suelta{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.suelta-tarjeta{max-width:520px;text-align:center;border-radius:0;padding:36px}
.suelta-sol{width:64px;margin-bottom:12px}
.kicker{color:var(--naranja);font-weight:700;font-size:.74rem;letter-spacing:.09em;text-transform:uppercase;margin:0 0 6px}

/* ═════════════════════════════ publicaciones: editor ═════════════ */
.cab-noticia{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.cab-noticia .datos{flex:1;min-width:240px}
.cab-noticia h2{font-size:1.5rem;letter-spacing:-.03em;font-weight:600;margin-bottom:6px}
.bloque-original{background:var(--naranja-tenue);border-color:var(--naranja-suave)}
.original-toggle{display:flex;align-items:baseline;gap:10px;width:100%;text-align:left;background:none;border:0;cursor:pointer;font:inherit;padding:0}
.original-toggle-icono{color:var(--naranja);font-weight:700;transition:transform .2s}
.original-toggle[aria-expanded=true] .original-toggle-icono{transform:rotate(90deg)}
.original-preview{color:var(--gris);font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.original-toggle[aria-expanded=true] .original-preview{display:none}
.original-detalle{margin-top:14px}
.canales{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.vista-ig{position:sticky;top:20px;background:#fff;border-radius:0;border:1px solid var(--linea);box-shadow:var(--sombra);overflow:hidden}
.vista-ig .ig-cab{display:flex;align-items:center;gap:9px;padding:11px 13px;font-weight:600;font-size:.86rem}
.vista-ig .ig-cab img{width:30px;height:30px;border-radius:50%;background:var(--oscuro);padding:4px}
.vista-ig .ig-foto{aspect-ratio:1/1;background:#EFECE6 center/cover no-repeat;display:flex;align-items:center;justify-content:center;color:var(--gris-claro);font-size:.85rem}
.vista-ig .ig-texto{padding:11px 13px 14px;font-size:.84rem;white-space:pre-wrap;line-height:1.45;max-height:260px;overflow-y:auto}
.vista-web{background:#fff;border-radius:var(--r-peq);border:1px solid var(--linea);padding:18px 20px}
.vista-web h3{font-size:1.4rem;letter-spacing:-.02em;margin-bottom:8px}
.vista-web .entradilla{font-weight:500;color:var(--tinta)}

/* tarjetas del anuario y usuarios */
.tarjeta-evento,.tarjeta-usuario{background:#fff;border:1px solid var(--linea);border-radius:var(--r);box-shadow:var(--sombra);padding:18px 22px;margin-bottom:14px}
.tarjeta-evento h3{font-size:1.1rem;margin:.6rem 0 .4rem;color:var(--tinta)}
.ficha-evento{font-size:.88rem;color:var(--texto);margin:.4rem 0}
.ficha-evento strong{color:var(--naranja)}
.idiomas{display:inline-flex;gap:4px;background:#F1EEE8;border-radius:0;padding:3px;margin:10px 0 8px}
.idiomas button{border:0;background:none;font:inherit;font-size:.78rem;font-weight:600;color:#55617A;padding:.25rem .8rem;border-radius:0;cursor:pointer}
.idiomas button.activa{background:#fff;color:var(--tinta);box-shadow:var(--sombra)}
.texto-idioma{font-size:.94rem}
.previa-seccion{margin-bottom:26px}
.previa-seccion > h2{font-size:1.3rem;letter-spacing:-.02em;border-bottom:2px solid var(--naranja);padding-bottom:6px;margin-bottom:10px}
.previa-subcat{color:var(--naranja);font-size:.78rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;margin:18px 0 8px}
.previa-evento{background:#fff;border-radius:0;border:1px solid var(--linea);padding:14px 18px;margin-bottom:12px}
.previa-titulo{font-weight:700;color:var(--tinta);margin-bottom:4px}
.previa-trad{color:#777;font-style:italic;font-size:.9rem}

/* comprobaciones (servidor) */
.comprobacion{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--linea)}
.comprobacion:last-child{border-bottom:0}
.comprobacion .marca-ok{flex-shrink:0;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem}
.comprobacion.si .marca-ok{background:var(--ok-suave);color:var(--ok)}
.comprobacion.no .marca-ok{background:var(--mal-suave);color:var(--mal)}
.comprobacion b{color:var(--tinta)}
.comprobacion .det{color:var(--gris);font-size:.84rem}

/* manual */
.manual{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:start}
.manual-indice{position:sticky;top:20px;display:flex;flex-direction:column;gap:2px}
.manual-indice a{color:var(--texto);text-decoration:none;font-size:.9rem;padding:6px 12px;border-radius:0}
.manual-indice a:hover{background:#fff}
.manual-indice .grupo{font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--gris-claro);padding:12px 12px 4px}
.manual section{scroll-margin-top:20px}
.manual h2{font-size:1.5rem;letter-spacing:-.03em;margin:4px 0 10px}
.manual h3{font-size:1.05rem;margin:18px 0 6px}
.manual ol,.manual ul{padding-left:1.25rem}
.manual li{margin:4px 0}
.pregunta{border-bottom:1px solid var(--linea);padding:4px 0}
.pregunta summary{cursor:pointer;font-weight:600;color:var(--tinta);padding:10px 0;list-style:none}
.pregunta summary::before{content:"+";display:inline-block;width:22px;color:var(--naranja);font-weight:700}
.pregunta[open] summary::before{content:"–"}

/* tablas */
table.tabla{width:100%;border-collapse:collapse;font-size:.9rem}
.tabla th{text-align:left;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--gris);font-weight:700;border-bottom:1px solid rgba(20,20,20,.12);padding:8px 10px}
.tabla td{border-bottom:1px solid var(--linea);padding:10px}
.tabla tr:hover td{background:#FAF8F5}

/* ═════════════════════════════ móvil ═════════════ */
@media (max-width:1100px){
  .bento{grid-template-columns:1fr 1fr}
  .canales{grid-template-columns:1fr}
  .vista-ig{position:static;max-width:420px}
  .rejilla.c4{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .app{grid-template-columns:1fr}
  .lateral{position:fixed;inset:0 auto 0 0;margin:0;height:100vh;width:290px;border-radius:0;transform:translateX(-105%);transition:transform .3s var(--curva)}
  .lateral.abierto{transform:none}
  .menu-movil{display:inline-flex;align-items:center;gap:8px;position:sticky;top:10px;margin:10px 0 0 14px;z-index:30;border:0;background:var(--oscuro);color:#fff;border-radius:0;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer}
  .velo{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:15}
  .franja,.cabecera,.contenido{padding-left:18px;padding-right:18px}
  .cabecera h1{font-size:1.85rem}
  .cabecera{margin:0 18px 18px}
  .boton-manual span{display:none}
  .rejilla.c2,.rejilla.c3,.rejilla.c4,.bento,.pasos-guia{grid-template-columns:1fr}
  .entrar{grid-template-columns:1fr}
  .entrar-lado{border-radius:0 0 28px 28px;padding:30px 24px}
  .entrar-lado h1{font-size:2.2rem}
  .manual{grid-template-columns:1fr}
  .manual-indice{position:static;flex-direction:row;flex-wrap:wrap}
  .llamada{flex-direction:column;align-items:flex-start}
  .llamada .boton{margin-left:0}
  .toasts{left:12px;right:12px;bottom:12px}
}

/* Listas en columnas estrechas: el estado baja debajo del título en vez de aplastarlo. */
.lista-filas{container-type:inline-size}
.fila-item{flex-wrap:wrap}
.fila-item .principal-txt{flex:1 1 220px}
.fila-item .principal-txt b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.fila-item .insignias{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
@container (max-width:560px){
  .fila-item{gap:8px 12px}
  .fila-item .insignias{flex-basis:100%;order:3}
  .fila-item .flecha{display:none}
}

/* Retoques «rectos»: filetes en lugar de sombras, botones con borde marcado. */
.boton{border-width:1.5px;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}
.boton.primario:hover,.boton:hover{box-shadow:3px 3px 0 var(--oscuro)}
.bloque-cab{background:var(--campo)}
.bloque-cab::before{left:0;top:0;bottom:0;height:auto;margin:0;width:5px}
.cifra{border-top:3px solid var(--oscuro)}
.cifra.oscura{border-top-color:var(--naranja)}
.nav .grupo{border-top:1px solid rgba(255,255,255,.1);margin-top:8px}
