/* Control de Notas: la libreta del docente.
   Pizarra para navegar, papel rayado para trabajar, tinta azul para escribir,
   lápiz rojo para lo que está bajo la nota mínima y resaltador para la celda activa. */
@font-face{font-family:Atkinson;src:url(/fonts/atkinson-hyperlegible-next-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Atkinson;src:url(/fonts/atkinson-hyperlegible-next-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:Atkinson;src:url(/fonts/atkinson-hyperlegible-next-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:AtkinsonMono;src:url(/fonts/atkinson-hyperlegible-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:AtkinsonMono;src:url(/fonts/atkinson-hyperlegible-mono-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Bricolage;src:url(/fonts/bricolage-grotesque-latin-wght-normal.woff2) format("woff2");font-weight:200 800;font-display:swap}

:root{
  color-scheme:light;
  --fondo:#edf2f5;--papel:#fff;--papel2:#f6f9fb;--tinta:#16263a;--tenue:#526477;--renglon:#cbdae6;--renglon2:#e1eaf1;
  --pizarra:#143a32;--pizarra2:#1d4b41;--pizarra3:#2a6155;--tiza:#e9f1ea;--tiza2:#a9c4b8;
  --azul:#1d4fc4;--azul-t:#1a45ab;--azul-suave:#e3ebfb;--sobre-azul:#fff;
  --rojo:#c22a22;--rojo-suave:#fbe6e3;--margen:#e58b84;
  --resaltador:#ffe75a;--sobre-res:#16263a;--res-suave:#fff9d1;
  --ok:#146b4a;--ok-suave:#dcf1e7;--aviso:#7a5200;--aviso-suave:#fdf0cd;
  --c1:#f1f5fd;--c2:#e4ecfb;--c3:#d3e0f8;
  --sombra:0 12px 40px rgba(16,38,58,.22);
  --cuerpo:Atkinson,system-ui,"Segoe UI",Roboto,Arial,sans-serif;--titulo:Bricolage,Atkinson,system-ui,sans-serif;--cifra:AtkinsonMono,ui-monospace,Consolas,monospace;
  box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)
}
@media (prefers-color-scheme:dark){:root:not([data-tema=claro]){
  color-scheme:dark;
  --fondo:#0f1a1e;--papel:#16242a;--papel2:#1b2c33;--tinta:#e6eef0;--tenue:#9db0b8;--renglon:#2f454e;--renglon2:#253840;
  --pizarra:#0d2420;--pizarra2:#16352e;--pizarra3:#22493f;
  --azul:#8fb2ff;--azul-t:#a9c4ff;--azul-suave:#1f3155;--sobre-azul:#0f1a1e;
  --rojo:#ff9186;--rojo-suave:#46201d;--margen:#8f4a45;--res-suave:#3b3710;
  --ok:#6ad6a6;--ok-suave:#123a2c;--aviso:#ffd680;--aviso-suave:#42330f;
  --c1:#1a2f47;--c2:#203a5c;--c3:#284873;--sombra:0 12px 40px rgba(0,0,0,.55)
}}
:root[data-tema=oscuro]{
  color-scheme:dark;
  --fondo:#0f1a1e;--papel:#16242a;--papel2:#1b2c33;--tinta:#e6eef0;--tenue:#9db0b8;--renglon:#2f454e;--renglon2:#253840;
  --pizarra:#0d2420;--pizarra2:#16352e;--pizarra3:#22493f;
  --azul:#8fb2ff;--azul-t:#a9c4ff;--azul-suave:#1f3155;--sobre-azul:#0f1a1e;
  --rojo:#ff9186;--rojo-suave:#46201d;--margen:#8f4a45;--res-suave:#3b3710;
  --ok:#6ad6a6;--ok-suave:#123a2c;--aviso:#ffd680;--aviso-suave:#42330f;
  --c1:#1a2f47;--c2:#203a5c;--c3:#284873;--sombra:0 12px 40px rgba(0,0,0,.55)
}

*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--fondo);color:var(--tinta);font-family:var(--cuerpo);line-height:1.5;font-size:16px;-webkit-font-smoothing:antialiased}
a{color:var(--azul-t)}
svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
h1,h2,h3{font-family:var(--titulo);line-height:1.2}
h2{font-size:1.45rem;font-weight:700;margin:0 0 12px;letter-spacing:-.01em}
h3{font-size:1.06rem;font-weight:650;margin:0 0 10px}
button{font:inherit;cursor:pointer;border:1px solid var(--azul);background:var(--azul);color:var(--sobre-azul);border-radius:6px;padding:8px 14px;font-weight:600;min-height:38px}
button:hover{filter:brightness(1.08)}
button.ghost{background:transparent;color:var(--azul-t);border-color:var(--renglon)}
button.del{background:transparent;color:var(--rojo);border-color:var(--renglon);padding:4px 10px;margin-right:4px;min-height:32px}
button.sec{background:transparent;color:var(--azul-t);border-color:var(--renglon);padding:4px 10px;margin-right:4px;min-height:32px}
button.suave-btn{background:var(--azul-suave);border-color:transparent;color:var(--azul-t)}
button.enlace{background:transparent;border:0;color:var(--azul-t);text-decoration:underline;font-weight:400;padding:4px;min-height:0}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--azul);outline-offset:2px}
button:disabled{opacity:.45;cursor:not-allowed}
.oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.relleno{flex:1}

/* ---- Marco ---- */
#app{display:flex;min-height:100vh}
#lateral{position:sticky;top:0;align-self:flex-start;width:262px;flex:none;height:100vh;overflow-y:auto;background:var(--pizarra);color:var(--tiza);padding:16px 12px;display:flex;flex-direction:column;gap:14px;scrollbar-color:var(--pizarra3) transparent}
.marca{display:flex;flex:none;align-items:center;gap:10px;padding:0 6px}.marca b{display:block;font-family:var(--titulo);font-size:1.08rem;line-height:1.15}.marca small{color:var(--tiza2)}
.marca img{flex:none}
.tarjeta-colegio{display:flex;flex:none;align-items:center;gap:10px;width:100%;text-align:left;background:var(--pizarra2);color:var(--tiza);border:0;border-radius:6px;padding:8px 10px;font-weight:600}
.tarjeta-colegio img{width:34px;height:34px;object-fit:contain;display:block;background:#fff;border-radius:4px}.tarjeta-colegio b{display:block;font-size:.88rem;line-height:1.25}.tarjeta-colegio small{color:var(--tiza2);font-weight:400}
.logo-letra{display:grid;place-items:center;width:34px;height:34px;border-radius:4px;background:var(--tiza);color:var(--pizarra);font-family:var(--titulo);font-weight:700}
#nav{display:flex;flex-direction:column;gap:1px;flex:1 0 auto}
#nav h6{margin:14px 0 4px;padding:0 10px;font-size:.8rem;color:var(--tiza2);font-weight:600}
#nav button{position:relative;display:flex;align-items:center;gap:10px;font-size:.95rem;white-space:nowrap;background:transparent;border:0;color:var(--tiza);font-weight:400;border-radius:6px;padding:7px 10px;text-align:left;min-height:36px}
#nav button svg{width:19px;height:19px;flex:none;color:var(--tiza2)}
#nav button:hover{background:var(--pizarra2);filter:none}
#nav button[aria-current="page"]{background:var(--tiza);color:var(--pizarra);font-weight:700}#nav button[aria-current="page"] svg{color:var(--pizarra)}
#nav button:focus-visible,.tarjeta-colegio:focus-visible{outline-color:var(--resaltador)}
.pie-marca{margin:0;font-size:.78rem;color:var(--tiza2);padding:0 10px}
body.riel #lateral{width:64px;padding-inline:10px;align-items:center}
body.riel .marca>div,body.riel .pie-marca,body.riel #nav h6,body.riel #nav span,body.riel .tarjeta-colegio>span:last-child{display:none}
body.riel .marca{padding:0}body.riel .tarjeta-colegio{padding:4px;justify-content:center;background:transparent}
body.riel #nav button{padding:8px;justify-content:center}body.riel #nav{width:100%}
#velo{position:fixed;inset:0;background:rgba(10,24,22,.5);z-index:40}
#principal{flex:1;min-width:0;display:flex;flex-direction:column}
header{position:sticky;top:0;z-index:30;background:var(--papel);border-bottom:1px solid var(--renglon);display:flex;align-items:center;gap:10px;padding:8px 20px;flex-wrap:wrap}
header h1{font-size:1.14rem;margin:0;font-weight:700}
button.icono{position:relative;width:38px;height:38px;padding:0;display:grid;place-items:center;background:transparent;border:1px solid var(--renglon);color:var(--tinta);border-radius:6px}.icono svg{width:20px;height:20px}
.icono i{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--rojo);color:#fff;font:700 11px/18px var(--cuerpo);text-align:center}
.buscar-btn{display:flex;align-items:center;gap:8px;background:var(--papel2);color:var(--tenue);border-color:var(--renglon);font-weight:400;min-width:210px;text-align:left}
.buscar-btn svg{width:17px;height:17px}.buscar-btn kbd{margin-left:auto}
kbd{font:600 .74rem var(--cuerpo);border:1px solid var(--renglon);border-bottom-width:2px;border-radius:4px;padding:0 5px;background:var(--papel);color:var(--tenue);white-space:nowrap}
.selector-anio{display:flex;flex-direction:row;align-items:center;gap:6px;border:1px solid var(--renglon);border-radius:6px;padding:0 6px 0 10px;color:var(--tinta)}.selector-anio svg{width:16px;height:16px}.selector-anio select{border:0;background:transparent;font-weight:600;padding:7px 2px}
.estado{display:inline-flex;align-items:center;gap:6px;font-size:.84rem;font-weight:600;color:var(--ok);white-space:nowrap}.estado.off{color:var(--aviso)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--ok)}.dot.off{background:var(--aviso)}.dot.mini{display:inline-block;margin-right:6px}
.usuario-boton{display:flex;align-items:center;gap:8px;background:transparent;border:0;color:var(--tinta);padding:4px 6px;font-size:.9rem;font-weight:600}
.avatar-mini{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--pizarra);color:var(--tiza);font-size:.72rem;font-weight:700}
.pop{position:absolute;z-index:50;background:var(--papel);border:1px solid var(--renglon);border-radius:8px;box-shadow:var(--sombra);padding:6px;min-width:260px}
#popAlertas{top:56px;right:20px}.pop button{display:block;width:100%;text-align:left;background:transparent;border:0;color:var(--tinta);font-weight:400;padding:8px 10px;border-radius:4px}.pop button:hover{background:var(--azul-suave);filter:none}.pop .vacio{margin:0;padding:8px 10px}
main{padding:20px;width:100%;max-width:1400px;margin:0 auto;flex:1}
footer{text-align:center;color:var(--tenue);font-size:.8rem;padding:8px 20px 18px}
.banner{background:var(--aviso-suave);color:var(--aviso);padding:8px 20px;font-size:.92rem;text-align:center}
.panel{background:var(--papel);border:1px solid var(--renglon);border-radius:8px;padding:16px;margin-bottom:16px}
form{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:end}
label{display:flex;flex-direction:column;font-size:.87rem;color:var(--tenue);gap:4px}
input,select{font:inherit;padding:8px 10px;border:1px solid var(--renglon);border-radius:4px;background:var(--papel);color:var(--tinta);min-width:0;min-height:38px}
input[type=search]{flex:1;min-width:180px}
input[type=checkbox]{width:auto;flex:none;margin:0 6px 0 0;min-height:0;accent-color:var(--azul)}
.tabla{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.95rem}
th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--renglon2);white-space:nowrap}
th{color:var(--tenue);font-size:.85rem;font-weight:600}td.ajusta{white-space:normal}
tr.clic{cursor:pointer}tr.clic:hover td{background:var(--azul-suave)}
.pill{padding:2px 9px;border-radius:4px;font-size:.82rem;font-weight:600;white-space:nowrap}
.pill.ok{background:var(--ok-suave);color:var(--ok)}.pill.bad{background:var(--rojo-suave);color:var(--rojo)}.pill.suave{background:var(--papel2);color:var(--tenue)}.pill.aviso{background:var(--aviso-suave);color:var(--aviso)}
.suave{color:var(--tenue)}.vacio{color:var(--tenue);padding:10px 4px}.pie{font-size:.84rem}
.msg{min-height:0;font-weight:600;margin:0}.msg:not(:empty){margin-bottom:10px}.msg.ok{color:var(--ok)}.msg.error{color:var(--rojo)}
.stats{display:flex;gap:28px;flex-wrap:wrap}.stats b{display:block;font-family:var(--titulo);font-size:1.7rem;color:var(--azul-t)}
.col{display:flex;flex-direction:column;align-items:stretch;gap:12px;text-align:left}
.fila{display:flex;gap:6px;flex-direction:row;align-items:center}.fila input{flex:1;min-width:0}label.fila{color:var(--tinta)}
.barra{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px;margin-bottom:16px}
#v-inicio .grid2{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}#v-inicio th,#v-inicio td{padding-inline:7px}#v-inicio .avance{width:70px}.grid2 .panel{margin-bottom:0}
.barra-d{display:inline-block;height:10px;border-radius:2px;background:var(--azul);vertical-align:middle;margin-right:6px}.barra-d.mal{background:var(--rojo)}
pre.log{margin:0;max-height:480px;overflow:auto;background:var(--papel2);border:1px solid var(--renglon);border-radius:4px;padding:10px;font:12.5px/1.5 var(--cifra);white-space:pre-wrap;word-break:break-word}
pre.log .error{color:var(--rojo)}pre.log .aviso{color:var(--aviso)}pre.log .f{color:var(--tenue)}
.res{padding:10px 12px;border-radius:4px;margin-top:6px}.res.ok{background:var(--ok-suave);color:var(--ok)}.res.mal{background:var(--rojo-suave);color:var(--rojo)}.res small{display:block;color:var(--tenue);margin-top:4px;word-break:break-word}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.chip{display:inline-flex;align-items:center;gap:4px;background:var(--papel2);border:1px solid var(--renglon);border-radius:4px;padding:3px 4px 3px 10px;font-size:.9rem}
.chip .x{background:transparent;border:0;color:var(--tenue);padding:0 7px;font-size:1.1rem;line-height:1;min-height:0}.chip .x:hover{color:var(--rojo)}
.sel-docente{border:0;background:transparent;padding:0 2px;font-size:.8rem;color:var(--tenue);max-width:150px;min-height:0}
.desplazable{max-height:340px;overflow:auto;border:1px solid var(--renglon);border-radius:4px;margin:10px 0}.desplazable table{margin:0}
details.panel>summary{cursor:pointer}details.panel p{margin:10px 0 0}
#vistaImportar{margin-top:14px}
.nombre-btn{background:none;border:0;color:inherit;font:inherit;font-weight:600;padding:0;min-height:0;text-align:left;cursor:pointer;text-underline-offset:3px}
.nombre-btn:hover{color:var(--azul-t);filter:none;text-decoration:underline}

/* ---- Entrada: la pizarra del aula ---- */
.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);background:var(--papel)}
.pizarra-lado{background:var(--pizarra);color:var(--tiza);padding:clamp(28px,5vw,64px);display:flex;flex-direction:column;justify-content:space-between;gap:28px;overflow:hidden;border-right:10px solid #7d5a3c}
.pizarra-lado .firma{display:flex;align-items:center;gap:10px;font-size:.95rem}
.pizarra-lado h2{font-size:clamp(2.1rem,4.6vw,3.9rem);font-weight:600;line-height:1.05;margin:0;max-width:13em;letter-spacing:-.02em}
.formula{font-family:var(--cifra);color:var(--tiza2);font-size:clamp(.9rem,1.4vw,1.1rem);line-height:1.9;margin:0}
.formula b{color:#fff;font-weight:400}.formula .ok-nota{color:var(--resaltador);font-weight:700}
.login .tarjeta{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:12px;padding:32px clamp(24px,5vw,64px);width:100%;max-width:520px;margin:0 auto;min-height:100vh}
.tarjeta h1{font-size:1.75rem;margin:0}.tarjeta p{margin:0}
.tarjeta>button[type=submit],.tarjeta form button[type=submit]{min-height:44px}
.tarjeta .sec{min-height:40px;margin:0}

/* ---- Filtros y barra de la planilla ---- */
.caja-filtros{position:relative;display:flex;gap:12px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;margin-bottom:8px}
.filtros{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.filtros label{min-width:110px}.filtros label:has([data-f=materia]){min-width:210px}
.trimestres{display:flex;flex-direction:column;gap:4px}.trimestres>span{font-size:.87rem;color:var(--tenue)}
.seg{display:inline-flex;background:var(--papel);border:1px solid var(--renglon);border-radius:6px;padding:2px;gap:2px}.seg button{background:transparent;border:0;color:var(--tenue);padding:5px 12px;border-radius:4px;font-weight:600;min-height:32px;white-space:nowrap}.seg button[aria-pressed=true]{background:var(--pizarra);color:var(--tiza)}
.acciones{position:relative}.menu{right:0;top:44px}
.contexto{display:flex;flex-wrap:wrap;gap:6px 24px;align-items:center;justify-content:space-between;margin:0 0 8px}
.editando{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0;font-size:.88rem;color:var(--tenue)}.editando:empty{display:none}
.chip-f{background:var(--azul-suave);color:var(--azul-t);border-radius:4px;padding:2px 9px;font-weight:600}.chip-f.fuerte{background:var(--azul);color:var(--sobre-azul)}
.herramientas{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}
.herramientas input[type=search]{flex:0 1 170px;min-width:130px;min-height:34px;padding-block:4px}
.herramientas select{width:auto;min-height:34px;padding-block:4px;font-size:.92rem}
.herramientas button{min-height:34px;padding:3px 10px;font-size:.92rem}.herramientas .seg button{min-height:28px;padding:2px 9px}
.herramientas .activo{background:var(--azul-suave);border-color:var(--azul);color:var(--azul-t)}
.guardado{font-size:.84rem;color:var(--tenue);white-space:nowrap;margin-left:auto}.guardado.pendiente{color:var(--aviso)}
.resumen{display:flex;flex-wrap:wrap;gap:4px 22px;align-items:baseline;margin:0;font-size:.92rem;color:var(--tenue)}
.resumen b{font-family:var(--cifra);font-size:1.05rem;color:var(--tinta);margin-right:4px}.resumen .alerta b{color:var(--rojo)}
.resumen .avance{width:120px}

/* ---- Planilla: una hoja rayada con su margen rojo ---- */
.planilla{overflow:auto;max-height:calc(100vh - 262px);min-height:320px;background:var(--papel);border:1px solid var(--renglon);border-radius:8px}
body.foco .planilla{max-height:calc(100vh - 120px)}
.planilla table{border-collapse:separate;border-spacing:0;font-size:.95rem;width:max-content;min-width:100%}
.planilla th,.planilla td{padding:0;border-bottom:1px solid var(--renglon2);background:var(--papel);text-align:center}
.planilla thead th{position:sticky;z-index:3;background:var(--papel2);border-bottom-color:var(--renglon)}
.planilla thead tr:nth-child(1) th{top:0;height:34px;padding:0 10px}.planilla thead tr:nth-child(2) th{top:34px;height:34px}.planilla thead tr:nth-child(3) th{top:68px;height:24px;font:400 .78rem var(--cifra)}
.planilla .grupo{text-align:left;font-size:.85rem;font-weight:700;color:var(--tinta);white-space:nowrap}.grupo em{font-style:normal;font-family:var(--cifra);font-weight:400;color:var(--tenue);margin-left:8px}
.planilla th.cc{min-width:84px;max-width:110px;padding:0 6px;color:var(--tinta);white-space:normal;line-height:1.1;font-size:.82rem}
.planilla th.calc,.planilla td.calc{min-width:66px;padding:0 6px;background:var(--papel2);color:var(--tenue);font:400 .9rem var(--cifra)}
.planilla.compacta .celda{height:28px;font-size:.9rem}.planilla.compacta .est{padding-block:0}.planilla.compacta .av{display:none}.planilla.compacta{font-size:.9rem}
.planilla .corte{border-left:1px solid var(--renglon)}
.planilla .fijo{position:sticky;z-index:2}.planilla thead .fijo{z-index:5}
.planilla .n{left:0;width:42px;min-width:42px;color:var(--tenue);font-family:var(--cifra);font-size:.8rem}
.planilla .est{left:42px;min-width:290px;max-width:320px;text-align:left;padding:4px 12px 4px 4px;border-right:2px solid var(--margen)}
.planilla thead .est{font-size:.85rem;color:var(--tinta)}
.planilla .der{right:0;min-width:104px;border-left:1px solid var(--renglon);padding:0 8px}.planilla th.der small{display:block;font-weight:400}
.planilla tbody tr:hover td{background:var(--res-suave)}.planilla tbody tr:hover td.calc{background:var(--res-suave)}
.planilla tbody tr:focus-within td{background:var(--res-suave)}
.est div{display:flex;align-items:center;gap:9px}.nom{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.riesgo{flex:none;margin-left:auto;width:8px;height:8px;border-radius:50%;background:var(--rojo)}
.av{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;font-size:.68rem;font-weight:700;background:var(--azul-suave);color:var(--azul-t)}
.celda{display:block;width:100%;min-width:72px;min-height:0;height:38px;border:0;border-radius:0;background:transparent;text-align:center;padding:0 6px;font-family:var(--cifra);font-size:.98rem;color:var(--tinta)}
.celda:focus{outline:2px solid var(--tinta);outline-offset:-2px;background:var(--resaltador)!important;color:var(--sobre-res)!important;font-weight:700}
.celda.mal{outline:2px solid var(--rojo);outline-offset:-2px}.celda[readonly]{color:var(--tenue)}
.celda.baja{color:var(--rojo);font-weight:700}
.con-color .celda.baja{background:var(--rojo-suave)}.con-color .celda.h1{background:var(--c1)}.con-color .celda.h2{background:var(--c2)}.con-color .celda.h3{background:var(--c3)}
.prom{display:inline-block;font-family:var(--cifra);font-weight:700;white-space:nowrap}.prom small{color:var(--tenue);font:600 .8rem var(--cuerpo);margin-left:4px}.prom.baja{color:var(--rojo);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.prom.vacia{color:var(--tenue);font-weight:400}
body.foco #lateral,body.foco header,body.foco footer,body.foco .caja-filtros,body.foco #tabs{display:none!important}body.foco main{max-width:none;padding:12px}

/* ---- Planilla en el teléfono: un estudiante por tarjeta ---- */
.fichas-m{display:flex;flex-direction:column;gap:10px}
.ficha-m{background:var(--papel);border:1px solid var(--renglon);border-left:3px solid var(--margen);border-radius:6px;padding:10px 12px}
.ficha-m>div:first-child{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.ficha-m .der-m{margin-left:auto}
.celdas-m{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:8px}
.celdas-m label{font-size:.76rem;line-height:1.15;justify-content:flex-end}
.celdas-m .celda{border:1px solid var(--renglon);border-radius:4px;min-width:0;height:42px}

/* ---- Inicio ---- */
.portada{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 32px;align-items:start;background:var(--pizarra);color:var(--tiza);border-radius:8px;padding:clamp(18px,2.6vw,28px);margin-bottom:16px}
.portada h2{font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:600;line-height:1.12;letter-spacing:-.015em;margin:0 0 6px;max-width:26em}
.portada p{margin:0;color:var(--tiza2)}
.portada .seg{background:var(--pizarra2);border-color:var(--pizarra3)}.portada .seg button{color:var(--tiza2)}.portada .seg button[aria-pressed=true]{background:var(--tiza);color:var(--pizarra)}
.portada .accion{grid-column:1;display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.portada .accion button{background:var(--resaltador);border-color:var(--resaltador);color:var(--sobre-res);min-height:44px;padding-inline:20px}
.cifras{display:flex;flex-wrap:wrap;margin:0 0 18px;background:var(--papel);border:1px solid var(--renglon);border-radius:8px}
.cifras div{flex:1 1 150px;padding:12px 18px;border-left:1px solid var(--renglon2)}.cifras div:first-child{border-left:0}
.cifras small{display:block;color:var(--tenue);font-size:.86rem}.cifras b{font-family:var(--cifra);font-size:1.7rem;font-weight:700;line-height:1.25}.cifras .alerta b{color:var(--rojo)}
.kpis{display:flex;flex-wrap:wrap;margin-bottom:16px;background:var(--papel);border:1px solid var(--renglon);border-radius:8px}.kpi{flex:1 1 140px;padding:10px 16px;border-left:1px solid var(--renglon2)}.kpi:first-child{border-left:0}.kpi small{display:block;color:var(--tenue)}.kpi b{font-family:var(--cifra);font-size:1.6rem;font-weight:700;line-height:1.25}
.kpis.corto .kpi{padding:7px 14px}.kpis.corto .kpi b{font-size:1.25rem}
.avance{display:inline-block;width:90px;height:7px;border-radius:2px;background:var(--renglon2);vertical-align:middle;overflow:hidden}.avance i{display:block;height:100%;background:var(--azul)}.avance i.lleno{background:var(--ok)}
.histo{display:grid;grid-template-columns:repeat(10,1fr);gap:8px;height:200px}.histo div{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;min-width:0;height:100%}.histo i{display:block;width:min(100%,46px);background:var(--azul);border-radius:2px 2px 0 0;flex:none;max-height:calc(100% - 44px)}.histo .bajo i{background:var(--rojo)}.histo span{font:400 .84rem var(--cifra);color:var(--tinta)}.histo b{font-size:.84rem;color:var(--tenue);font-weight:600}
.marcas{display:flex;gap:4px}.marcas button{width:36px;height:34px;min-height:0;padding:0;background:var(--papel);border:1px solid var(--renglon);color:var(--tenue);border-radius:4px}
.marcas [aria-pressed=true]{color:#fff;border-color:transparent}.marcas .eP[aria-pressed=true]{background:#146b4a}.marcas .eA[aria-pressed=true]{background:#c22a22}.marcas .eJ[aria-pressed=true]{background:#1d4fc4}.marcas .eT[aria-pressed=true]{background:#946100}
table.asis td{padding:6px 10px}
.pasos{margin:0;padding-left:20px}.pasos li{margin-bottom:6px}
.bloques{display:block}.rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;align-items:end}
.logo-prev{display:flex;align-items:center;gap:10px;min-height:42px}.logo-prev img{height:48px;object-fit:contain}

/* ---- Ficha del estudiante ---- */
#ficha{position:fixed;top:0;right:0;bottom:0;width:min(460px,100%);z-index:60;background:var(--papel);border-left:1px solid var(--renglon);box-shadow:var(--sombra);overflow-y:auto;padding:20px;transform:translateX(100%);transition:transform .18s ease-out;visibility:hidden}
#ficha.abierta{transform:none;visibility:visible}
.ficha-cab{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}.ficha-cab h2{margin:0;font-size:1.3rem}.ficha-cab p{margin:0;color:var(--tenue);font-size:.92rem}.ficha-cab .icono{margin-left:auto;flex:none}
.tres{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--renglon);border-radius:6px;margin-bottom:12px}
.tres div{padding:8px 10px;border-left:1px solid var(--renglon2)}.tres div:first-child{border-left:0}.tres small{display:block;color:var(--tenue);font-size:.8rem}.tres b{font:700 1.2rem var(--cifra)}.tres .baja b{color:var(--rojo)}
.necesita{background:var(--res-suave);border-left:3px solid var(--resaltador);padding:10px 12px;margin:0 0 12px;font-size:.95rem}.necesita.dura{background:var(--rojo-suave);border-left-color:var(--rojo)}.necesita b{font-family:var(--cifra)}
#ficha h3{margin-top:18px}#ficha table{font-size:.9rem}#ficha th,#ficha td{padding:6px 6px}#ficha td.c{font-family:var(--cifra);text-align:center}#ficha th.c{text-align:center}#ficha td.c.baja{color:var(--rojo);font-weight:700}
#ficha td.nomb{white-space:normal}

/* ---- Buscador, diálogos y avisos ---- */
dialog{border:1px solid var(--renglon);border-radius:8px;background:var(--papel);color:var(--tinta);box-shadow:var(--sombra);padding:0;max-width:calc(100vw - 32px)}
dialog::backdrop{background:rgba(10,24,22,.5)}
#paleta{width:620px;margin-top:12vh}
#paleta input{width:100%;border:0;border-bottom:1px solid var(--renglon);border-radius:0;padding:14px 16px;font-size:1.05rem;min-height:52px;outline:none}
#paletaLista{max-height:55vh;overflow:auto;padding:6px;margin:0;list-style:none}
#paletaLista h6{margin:8px 10px 2px;font-size:.8rem;color:var(--tenue);font-weight:600}
#paletaLista button{display:flex;gap:10px;align-items:baseline;width:100%;background:transparent;border:0;color:var(--tinta);font-weight:400;padding:7px 10px;text-align:left;border-radius:4px;min-height:36px}
#paletaLista button small{color:var(--tenue);margin-left:auto}
#paletaLista button.activo{background:var(--resaltador);color:var(--sobre-res);filter:none}#paletaLista button.activo small{color:var(--sobre-res)}
.dlg{padding:20px;width:440px}.dlg label{white-space:pre-line;color:var(--tinta);font-size:.95rem}.dlg p{margin:0 0 12px;white-space:pre-line}.dlg input{width:100%;margin-bottom:12px}.dlg .pie-dlg{display:flex;justify-content:flex-end;gap:8px}.dlg button.peligro{background:var(--rojo);border-color:var(--rojo);color:var(--papel)}
.clave-temp{font:700 1.1rem var(--cifra);background:var(--papel2);border:1px solid var(--renglon);border-radius:4px;padding:8px 10px;display:block;margin-bottom:12px;user-select:all;word-break:break-all}
#atajos table{font-size:.95rem}#atajos td{padding:6px 8px;white-space:normal}
#avisos-t{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:80;display:flex;flex-direction:column;gap:8px;align-items:center;width:min(520px,calc(100vw - 32px));pointer-events:none}
.tostada{pointer-events:auto;display:flex;align-items:center;gap:12px;background:var(--tinta);color:var(--papel);border-radius:6px;padding:9px 14px;font-weight:600;box-shadow:var(--sombra)}
.tostada.error{background:var(--rojo);color:var(--papel)}
.tostada button{background:transparent;border:0;color:inherit;text-decoration:underline;padding:0 2px;min-height:0;white-space:nowrap}
#tabs{display:none}
.acc-curso{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}.acc-curso select{min-height:32px;padding-block:3px;font-size:.88rem;max-width:300px}
#filtrosCuadro label:has([data-f=materia]){display:none}
.cuadro td.cifra{font:400 .95rem var(--cifra);min-width:92px;height:38px;cursor:pointer}.cuadro td.cifra:hover{background:var(--res-suave)}
.cuadro td.baja,.nota-baja{color:var(--rojo);font-weight:700}.cuadro td.baja{background:var(--rojo-suave)}
.cuadro thead tr:nth-child(2) th{height:26px;top:48px;font:400 .8rem var(--cifra)}.cuadro thead tr:nth-child(1) th{height:48px;line-height:1.1}.cuadro thead .est small{font:400 .78rem var(--cuerpo);color:var(--tenue)}

@media (max-width:1180px){.buscar-btn{min-width:0}.buscar-btn span,.buscar-btn kbd{display:none}}
@media (max-width:900px){
  #lateral{position:fixed;left:0;top:0;z-index:50;transform:translateX(-100%);transition:transform .18s;width:272px}
  #lateral.abierto{transform:none}
  body.riel #lateral{width:272px;padding-inline:12px;align-items:stretch}body.riel .marca>div,body.riel .pie-marca,body.riel #nav h6,body.riel #nav span{display:revert}
  header{position:static;padding:8px 16px;gap:6px}.usuario-boton #quien{display:none}
  #btnMenu{order:-4}#tituloVista{order:-3;flex:1 1 30%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#btnBuscar{order:-2;width:38px;padding:0;justify-content:center}#btnAlertas{order:-2}#btnMiClave{order:-2;padding:0 2px}
  .relleno{display:none}.selector-anio{flex:1 1 150px;order:1}.selector-anio select{flex:1;min-width:0}.estado{order:2}#btnTema{order:3}#btnSalir{order:3}
  #popAlertas{right:16px;left:16px;min-width:0}
  .contexto .editando,#btnCompacta,#btnFoco,#btnColores,.trimestres>span{display:none}.herramientas input[type=search]{flex:1 1 100%}.herramientas select{flex:1 1 40%}.herramientas .seg{order:-1;flex:1 1 100%;overflow-x:auto}.herramientas .seg button{flex:1 0 auto}.resumen .avance{width:70px}.resumen{gap:2px 14px;font-size:.86rem}
  main{padding:14px 16px 84px}footer{padding-bottom:84px}
  .planilla{max-height:75vh}.planilla .est{min-width:132px;max-width:132px;left:0}.planilla .est .av,.planilla .n{display:none}.nom{white-space:normal;line-height:1.2;font-size:.88rem}.planilla .der{position:static;min-width:88px}
  .seg button{padding:5px 9px;font-size:.88rem}.seg{max-width:100%}.filtros label{flex:1 1 130px}.filtros label:has([data-f=materia]){flex-basis:100%}.trimestres{flex-basis:100%}
  .guardado{margin-left:auto}
  .grid2,#v-inicio .grid2{grid-template-columns:minmax(0,1fr)}
  .portada{grid-template-columns:minmax(0,1fr)}.portada .accion{grid-column:auto}
  .login{grid-template-columns:minmax(0,1fr)}.pizarra-lado{border-right:0;border-bottom:8px solid #7d5a3c;padding:22px 20px;gap:12px}.pizarra-lado h2{font-size:1.65rem}.formula{display:none}.login .tarjeta{min-height:0;max-width:none;padding:22px 20px}
  #avisos-t{bottom:78px}
  #tabs{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:35;background:var(--papel);border-top:1px solid var(--renglon);padding-bottom:env(safe-area-inset-bottom,0px)}
  #tabs button{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;background:transparent;border:0;color:var(--tenue);font-size:.74rem;font-weight:600;padding:7px 2px;border-radius:0;min-height:56px}
  #tabs svg{width:21px;height:21px}#tabs button[aria-current=page]{color:var(--azul-t);box-shadow:inset 0 2px 0 var(--azul)}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{#lateral,header,nav,button,.msg,.banner,.caja-filtros:not(:has(#fReporte)),#pFormAlumno,footer,#tabs,#ficha,#avisos-t{display:none!important}body{background:#fff}#principal,main{display:block}.caja-filtros{border:0;padding:0}}

/* ---- Boletín ---- */
#zonaImpresion{display:none}
.hoja{background:#fff;color:#111;border:1px solid var(--renglon);border-radius:4px;max-width:190mm;margin:0 auto 18px;padding:14mm 15mm;font:13px/1.45 Atkinson,system-ui,'Segoe UI',Arial,sans-serif;color-scheme:light}
.hoja .cab{text-align:center;border-bottom:2px solid #143a32;padding-bottom:8px;margin-bottom:12px}
.hoja .cab h1{margin:0;font-size:1.3rem;color:#143a32}.hoja .cab h2{margin:4px 0 2px;font-size:1rem;letter-spacing:0}.hoja .cab p{margin:0;color:#444}
.hoja .datos{display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px;margin:0 0 12px}.hoja .datos div{border:1px solid #bbb;border-radius:3px;padding:5px 8px}
.hoja dt{font-size:.74rem;color:#555}.hoja dd{margin:0;font-weight:600}
.hoja table{width:100%;border-collapse:collapse}.hoja .notas th,.hoja .notas td{border:1px solid #999;padding:5px 7px;text-align:center;color:#111;background:#fff}
.hoja .notas th{background:#e6eff0;font-size:.8rem}.hoja .notas .mat{text-align:left}.hoja .notas tfoot td{background:#f2f6f6}
.hoja .resultado{margin:8px 0;font-weight:600}.hoja .vacio{color:#777}
.hoja .escala{margin-top:10px;font-size:.78rem;table-layout:fixed}.hoja .escala td{border:1px solid #ccc;padding:4px 7px;color:#222;background:#fff;white-space:normal;vertical-align:top;text-align:center}
.hoja .obs{margin:10px 0 0;border:1px dashed #999;padding:6px 8px}
.hoja .firmas{display:flex;justify-content:space-around;gap:30px;margin-top:46px;text-align:center}.hoja .firmas div{flex:1;max-width:60mm}.hoja .firmas span{display:block;border-top:1px solid #111;margin-bottom:4px}.hoja .firmas small{display:block;color:#555}
.hoja footer{margin-top:22px;text-align:center;font-size:.74rem;color:#666;padding:0}
.hoja .cab img{height:58px;object-fit:contain;display:block;margin:0 auto 6px}
.hoja .asist-b{margin:6px 0;font-size:.88rem}
.hoja.ancha{max-width:none}
@page{size:A4;margin:12mm}
@media print{
  body.imprimiendo>*:not(#zonaImpresion){display:none!important}
  body.imprimiendo #zonaImpresion{display:block}
  body.imprimiendo .hoja{border:0;border-radius:0;margin:0;padding:2mm 3mm;max-width:none;page-break-after:always;break-after:page}
  body.imprimiendo .hoja:last-child{page-break-after:auto;break-after:auto}
  body.imprimiendo .hoja .notas th{background:#e6eff0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
