/* Activate — Registro de calificaciones STV
   Identidad visual propia sobre la paleta del escudo:
   rojo institucional, tinta, crema, blanco papel. */
:root{
  --rojo:#AC3636; --rojo-osc:#8c2b2b; --rojo-claro:#c45656; --rojo-suave:#f7ecec;
  --tinta:#1f1b18; --tinta-2:#2d2620; --gris:#6f665f; --gris-claro:#a2988d;
  --crema:#faf6ef; --papel:#fffdf9;
  --linea:#e6ddd2; --linea-fuerte:#d9cec0;
  --verde:#2e7d4f; --verde-suave:#eaf4ee;
  --ambre:#a86a10; --ambre-suave:#fbf2e0;
  --azul:#35617a; --azul-suave:#e9f1f6;
  --radio:14px; --radio-sm:10px;
  --sombra:0 1px 2px rgba(31,27,24,.06),0 8px 28px rgba(31,27,24,.07);
  --sombra-alta:0 12px 40px rgba(31,27,24,.16);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:'Segoe UI',system-ui,-apple-system,Roboto,sans-serif;
  background:var(--crema); color:var(--tinta); min-height:100vh;
}
h1,h2,h3,.marca{font-family:Georgia,'Times New Roman',serif;font-weight:700}
button{font:inherit;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
a{color:var(--rojo)}
:focus-visible{outline:2.5px solid var(--rojo);outline-offset:2px;border-radius:6px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- Login: identidad STV ---------- */
.login-wrap{min-height:100vh;display:flex;flex-direction:column}
.login-hero{
  background:
    radial-gradient(900px 600px at 85% -200px, rgba(255,255,255,.14), transparent),
    radial-gradient(700px 500px at -150px 110%, rgba(0,0,0,.18), transparent),
    linear-gradient(150deg,#b03a3a 0%,var(--rojo) 45%,var(--rojo-osc) 100%);
  color:#fbf3ea;padding:44px 26px 80px;position:relative;overflow:hidden;
}

.login-hero .marca-row{display:flex;align-items:center;gap:18px;position:relative;z-index:1}
.login-hero .marca-col{display:flex;flex-direction:column;justify-content:center}
.login-hero .escudo-img{width:96px;height:96px;border-radius:50%;flex:none;
  box-shadow:0 8px 28px rgba(0,0,0,.32),0 0 0 7px rgba(255,255,255,.12),0 0 0 14px rgba(255,255,255,.05)}
.login-hero .escuela{font-size:.72rem;opacity:.85;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px;white-space:nowrap}
.login-hero h1{font-size:2.6rem;letter-spacing:.01em;line-height:1;margin:0}
.login-hero .tagline{font-size:.95rem;opacity:.88;margin-top:18px;position:relative;z-index:1}
.login-body{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:0 20px 44px;background:var(--crema)}
.login-card{width:100%;max-width:430px;background:var(--papel);border:1px solid var(--linea);
  border-radius:20px;box-shadow:var(--sombra-alta);padding:30px 26px;margin-top:-64px;position:relative}
.login-card h2{font-size:1.35rem;margin-bottom:4px}
.login-card .sub-login{color:var(--gris);font-size:.88rem;margin-bottom:22px}
@media(min-width:860px){
  .login-wrap{flex-direction:row}
  .login-hero{flex:1.05;display:flex;flex-direction:column;justify-content:center;
    padding:56px 60px;min-height:100vh}
  .login-hero .marca-row{gap:28px}
  .login-hero .escudo-img{width:140px;height:140px}
  .login-hero .escuela{font-size:.82rem;white-space:normal}
  .login-hero h1{font-size:3.1rem}
  .login-hero .tagline{font-size:1.05rem;margin-top:24px}
  .login-body{flex:1;align-items:center;padding:40px}
  .login-card{margin-top:0;max-width:460px}
}
.campo{text-align:left;margin-bottom:15px}
.campo label{display:block;font-size:.78rem;font-weight:700;color:var(--gris);
  margin-bottom:6px;letter-spacing:.04em;text-transform:uppercase}
.campo input,.campo select,.campo textarea{
  width:100%;padding:13px 14px;border:1.5px solid var(--linea);border-radius:11px;
  background:#fff;font-size:1rem;transition:border-color .15s,box-shadow .15s}
.campo input:focus,.campo select:focus,.campo textarea:focus{
  outline:none;border-color:var(--rojo);box-shadow:0 0 0 3px var(--rojo-suave)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--rojo);color:#fff;border:none;border-radius:12px;
  padding:14px 22px;font-size:1rem;font-weight:700;transition:background .15s,transform .05s;
  min-height:46px}
.btn:hover{background:var(--rojo-osc)}
.btn:active{transform:scale(.98)}
.btn:disabled{opacity:.6;cursor:default}
.btn-block{width:100%}
.btn-ghost{background:transparent;color:var(--tinta);border:1.5px solid var(--linea-fuerte)}
.btn-ghost:hover{background:#f3ede3}
.btn-mini{padding:9px 16px;font-size:.87rem;border-radius:10px;min-height:40px}
.btn-peligro{background:#fff;color:var(--rojo-osc);border:1.5px solid #e5bcbc}
.btn-peligro:hover{background:var(--rojo-suave)}
.error-login{background:#fdecec;border:1px solid #f2c9c9;color:#8c2b2b;
  border-radius:10px;padding:11px 14px;font-size:.88rem;margin-bottom:14px;text-align:left}

/* ---------- Cabecera ---------- */
.topbar{
  position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:13px;
  padding:10px 18px;background:var(--tinta);color:#f5efe6;
  border-bottom:3px solid var(--rojo);
}
.topbar .escudo-img{width:40px;height:40px;flex:none;border-radius:50%;
  box-shadow:0 0 0 2px rgba(250,246,239,.25)}
.topbar .marca{font-size:1.18rem;line-height:1.05;letter-spacing:.01em}
.topbar .sub{font-size:.76rem;opacity:.72}
.topbar .spacer{flex:1}
.topbar .chip-rol{background:var(--rojo);color:#fff;font-size:.74rem;font-weight:700;
  padding:5px 13px;border-radius:99px;letter-spacing:.05em;text-transform:uppercase}
.btn-salir{background:transparent;border:1.5px solid rgba(245,239,230,.35);color:#f5efe6;
  padding:7px 15px;border-radius:99px;font-size:.82rem;font-weight:600}
.btn-salir:hover{background:rgba(255,255,255,.12);border-color:rgba(245,239,230,.6)}

/* ---------- Layout ---------- */
.main{max-width:1150px;margin:0 auto;padding:22px 20px 110px}
@media(min-width:900px){.main{max-width:1320px}}
.seccion-titulo{display:flex;align-items:baseline;gap:12px;margin:4px 0 14px;flex-wrap:wrap}
.seccion-titulo h2{font-size:1.4rem;position:relative;padding-left:15px}
.seccion-titulo h2::before{content:'';position:absolute;left:0;top:3px;bottom:4px;width:5px;border-radius:4px;
  background:linear-gradient(180deg,var(--rojo),var(--ambre))}
.seccion-titulo .nota{color:var(--gris);font-size:.85rem}

/* Tarjetas y KPIs */
.card{background:var(--papel);border:1px solid var(--linea);border-radius:var(--radio);
  box-shadow:var(--sombra);padding:18px}
.grid{display:grid;gap:14px}
@media(min-width:700px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:1fr 1fr 1fr}}
.stats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.stat{background:var(--papel);border:1px solid var(--linea);border-radius:12px;
  padding:10px 16px;min-width:110px;box-shadow:var(--sombra)}
.stat .n{font-size:1.45rem;font-weight:800;line-height:1.1;font-family:Georgia,serif}
.stat .l{font-size:.72rem;color:var(--gris);font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-top:2px}
.stat.alerta{border-color:#e5bcbc;background:#fdf4f3}
.stat.alerta .n{color:var(--rojo-osc)}

/* Píldoras */
.pills{display:flex;flex-wrap:nowrap;gap:8px;margin-bottom:16px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;
  scrollbar-width:none}
.pills::-webkit-scrollbar{display:none}
.pills .pill{flex:none}
.pill{border:1.5px solid var(--linea-fuerte);background:#fff;color:var(--tinta);
  border-radius:99px;padding:10px 17px;font-size:.9rem;font-weight:600;
  min-height:42px;transition:border-color .15s,background .15s}
.pill:hover{border-color:var(--rojo);color:var(--rojo-osc)}
.pill.activa{background:var(--tinta);color:#f5efe6;border-color:var(--tinta)}
.pills.grupo{border-left:3px solid var(--rojo);padding-left:12px}

/* ---------- Vista docente ---------- */
.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}
.toolbar .spacer{flex:1}
.planilla-wrap{overflow-x:auto;border:1px solid var(--linea);border-radius:var(--radio);
  background:#fff;box-shadow:var(--sombra)}
.planilla{width:100%;border-collapse:collapse;background:#fff}
.planilla th,.planilla td{padding:10px 12px;border-bottom:1px solid var(--linea);
  text-align:left;font-size:.92rem;vertical-align:middle}
.planilla thead th{background:var(--tinta);color:#f5efe6;font-weight:600;
  position:sticky;top:0;font-size:.8rem;z-index:5}
.planilla thead th.col-alumno{left:0;z-index:6}
.planilla tbody tr:nth-child(even){background:#fbf8f2}
.planilla tbody tr:hover{background:var(--rojo-suave)}
.planilla td.num,.planilla th.num{text-align:center;width:104px}
.planilla td.alumno{font-weight:600;position:sticky;left:0;background:inherit;
  box-shadow:1px 0 0 var(--linea);min-width:170px}
.planilla tbody tr:nth-child(even) td.alumno{background:#fbf8f2}
.planilla tbody tr:hover td.alumno{background:var(--rojo-suave)}
.planilla tbody tr:nth-child(odd) td.alumno{background:#fff}
.th-act{border:none;background:none;color:#f5efe6;text-align:center;width:100%;
  padding:2px 0}
.th-act .t1{font-weight:700;font-size:.84rem;display:block}
.th-act .t2{font-weight:400;font-size:.71rem;opacity:.75;display:block;margin-top:1px}
.th-act:hover .t1{text-decoration:underline}
.planilla input.nota{width:60px;text-align:center;padding:8px 6px;
  border:1.5px solid var(--linea);border-radius:8px;font-size:1rem;font-weight:700}
.planilla input.nota:focus{outline:none;border-color:var(--rojo);box-shadow:0 0 0 3px var(--rojo-suave)}
.planilla select.estado{padding:6px 4px;border:1.5px solid var(--linea);
  border-radius:8px;font-size:.78rem;background:#fff;margin-top:4px;max-width:96px}
.celda-pend input.nota{border-color:#e8c98f;background:var(--ambre-suave)}
.celda-nopres input.nota{border-color:#e5a9a9;background:#fdf0f0}
.celda-cal input.nota{border-color:#b9d8c6;background:var(--verde-suave)}
.savebar{position:sticky;bottom:0;margin-top:14px;display:flex;align-items:center;gap:12px;
  background:rgba(255,253,249,.92);backdrop-filter:blur(6px);
  border:1px solid var(--linea);border-radius:14px;padding:10px 14px;box-shadow:var(--sombra-alta);z-index:8}
.savebar .pendientes{font-size:.85rem;color:var(--gris)}
.savebar .pendientes b{color:var(--ambre)}
.savebar .spacer{flex:1}
.badge-estado{display:inline-block;padding:4px 11px;border-radius:99px;font-size:.75rem;font-weight:700}
.b-pend{background:var(--ambre-suave);color:var(--ambre)}
.b-nopres{background:#fdecec;color:var(--rojo-osc)}
.b-sin{background:#efeae2;color:var(--gris)}
.b-cal{background:var(--verde-suave);color:var(--verde)}
.b-info{background:var(--azul-suave);color:var(--azul)}

/* ---------- Vista familia / estudiante ---------- */
.hijos-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}
details.materia{background:var(--papel);border:1px solid var(--linea);
  border-radius:var(--radio);margin-bottom:12px;box-shadow:var(--sombra);overflow:hidden}
details.materia summary{list-style:none;display:flex;flex-wrap:wrap;align-items:flex-start;
  gap:10px;padding:14px 18px;cursor:pointer}
details.materia summary::-webkit-details-marker{display:none}
details.materia summary>div:first-child{flex:1;min-width:45%}
details.materia summary .nombre{font-weight:700;font-size:1.04rem;font-family:Georgia,serif}
details.materia summary .docente{color:var(--gris);font-size:.82rem}
details.materia summary .chevron{color:var(--gris);transition:transform .2s;margin-top:2px}
details.materia[open] summary .chevron{transform:rotate(180deg)}
details.materia .cuerpo{border-top:1px solid var(--linea);padding:6px 18px 16px}
details.materia.alerta{border-left:4px solid var(--rojo)}
.sumchips{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.chip{display:inline-block;padding:3px 11px;border-radius:99px;font-size:.76rem;
  font-weight:700;background:var(--rojo-suave);color:var(--rojo-osc)}
.chip.final{background:var(--tinta);color:#f5efe6}
.chip.aviso{background:var(--ambre-suave);color:var(--ambre)}
.chip.ok{background:var(--verde-suave);color:var(--verde)}
.fila-act{display:flex;align-items:center;gap:10px;padding:5px 0}
.fila-act .info{flex:1;min-width:0}
.fila-act .titulo{font-weight:700;font-size:.93rem}
.fila-act .meta{color:var(--gris);font-size:.78rem;margin-top:2px}
.fila-act .act-btn .meta{color:rgba(255,255,255,.78)}
.nota-box{min-width:54px;height:54px;border-radius:13px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;font-weight:800;font-size:1.2rem;
  background:var(--rojo-suave);color:var(--rojo-osc);border:1.5px solid transparent}
.nota-box small{font-size:.58rem;font-weight:700;letter-spacing:.05em}
.nota-box.alerta{background:#fdecec;color:var(--rojo-osc);border-color:var(--rojo)}
.nota-box.vacia{background:#f4f0e8;color:var(--gris-claro)}
.fecha-chip{font-size:.75rem;color:var(--gris)}

/* Agenda de entregas */
.entrega{display:flex;gap:14px;padding:14px 16px;border:1px solid var(--linea);
  border-radius:13px;background:#fff;margin-bottom:10px;align-items:center;
  box-shadow:var(--sombra)}
.entrega .cal{width:54px;text-align:center;flex:none;border-right:1px dashed var(--linea);padding-right:12px}
.entrega .cal .dia{font-size:1.45rem;font-weight:800;line-height:1;font-family:Georgia,serif}
.entrega .cal .mes{font-size:.7rem;text-transform:uppercase;color:var(--gris);font-weight:700;letter-spacing:.05em}
.entrega .info{flex:1;min-width:0}
.entrega.vencida{border-color:#efc6c6;background:#fdf6f5}
.entrega.hoy{border-color:var(--rojo);background:var(--rojo-suave);border-width:1.5px}
.entrega .materia-tag{font-size:.74rem;font-weight:700;color:var(--rojo-osc);
  text-transform:uppercase;letter-spacing:.04em}
.entrega .tit{font-weight:600;font-size:.94rem}
.entrega .meta{color:var(--gris);font-size:.78rem;margin-top:2px}
.entrega .est{margin-left:auto;flex:none}
.dias{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:700;
  padding:4px 10px;border-radius:99px;background:#efeae2;color:var(--gris)}
.dias.pronto{background:var(--ambre-suave);color:var(--ambre)}
.dias.hoy{background:var(--rojo);color:#fff}
.dias.vencio{background:#fdecec;color:var(--rojo-osc)}

/* Estados varios */
.vacio{text-align:center;color:var(--gris);padding:46px 20px;font-size:.95rem}
.vacio .ico{width:52px;height:52px;margin:0 auto 12px;opacity:.45}
.cargando{text-align:center;color:var(--gris);padding:40px}
.aviso{display:flex;gap:10px;align-items:flex-start;border-left:4px solid var(--rojo);
  background:var(--rojo-suave);padding:13px 16px;border-radius:10px;font-size:.89rem;margin-bottom:16px}
.aviso .ico{width:20px;height:20px;flex:none;color:var(--rojo-osc);margin-top:1px}
.aviso.info{border-color:var(--azul);background:var(--azul-suave)}
.aviso.info .ico{color:var(--azul)}
.leyenda{display:flex;flex-wrap:wrap;gap:14px;font-size:.8rem;color:var(--gris);
  padding:12px 2px}
.leyenda b{color:var(--tinta)}
.subt{font-size:1.05rem;margin:20px 0 10px;font-family:Georgia,serif;font-weight:700}
.bloque-sugerida{margin-top:16px;background:var(--azul-suave);border:1.5px solid #b9cfe0;border-radius:var(--radio);padding:12px 14px}
.bloque-sugerida .subt{margin:0 0 8px;color:var(--azul)}
.sug-lista{max-height:300px;overflow-y:auto}
.sug-fila{display:flex;align-items:center;gap:10px;padding:7px 2px;border-bottom:1px solid #d6e3ee;font-size:.9rem}
.sug-fila:last-child{border-bottom:0}
.sug-nom{flex:1;min-width:0;font-weight:600}
.sug-pond{color:var(--gris);font-variant-numeric:tabular-nums}
.sug-nota{min-width:34px;text-align:center;font-weight:800;color:var(--azul);font-size:1.02rem}
.sug-tag{margin-left:5px;font-size:.6rem;font-weight:700;background:#fff;border:1px solid #b9cfe0;border-radius:6px;padding:1px 5px;color:var(--azul);vertical-align:middle}
.card-resumen{margin:12px 0;position:relative;overflow:hidden;padding-top:24px}
.card-resumen::before{content:'';position:absolute;top:0;left:0;right:0;height:7px;
  background:linear-gradient(90deg,var(--rojo),var(--ambre))}
.res-sin{color:var(--gris-claro);font-style:italic}
.res-titulo{font-family:Georgia,serif;font-weight:700;font-size:1.1rem;margin-bottom:8px}
.res-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.res-stat{background:var(--crema);border:1px solid var(--linea);border-radius:10px;padding:8px 6px;text-align:center}
.res-stat b{display:block;font-size:1.15rem;color:var(--rojo)}
.res-stat span{font-size:.66rem;color:var(--gris);text-transform:uppercase;letter-spacing:.04em}
.res-pie{font-size:.72rem;color:var(--gris);margin-top:6px}
.res-trim{margin-top:12px;border-top:1px dashed var(--linea);padding-top:10px}
.res-trim-t{font-weight:700;font-size:.82rem;color:var(--azul);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.res-trim-body{display:flex;gap:14px;align-items:center}
.res-trim-stats{flex:1;display:flex;flex-direction:column;gap:3px;font-size:.8rem;color:var(--texto)}
.res-trim-stats b{color:var(--rojo)}
.torta{width:64px;height:64px;border-radius:50%;flex-shrink:0;position:relative;
  display:flex;align-items:center;justify-content:center}
.torta-centro{width:38px;height:38px;border-radius:50%;background:#fff;
  display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;color:var(--texto)}
.torta-vacia{background:var(--crema);border:1px dashed var(--linea)}
.frase-fondo{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:24px 10px;cursor:pointer}
.frase-card{max-width:520px;background:linear-gradient(160deg,#fff,#fbf2e0);
  border:1px solid var(--linea);border-radius:20px;padding:34px 30px 24px;text-align:center;
  box-shadow:0 10px 30px rgba(90,50,40,.12);position:relative}
.frase-comillas{position:absolute;top:-6px;left:18px;font-family:Georgia,serif;
  font-size:4.5rem;color:var(--ambre);line-height:1;opacity:.55}
.frase-texto{font-family:Georgia,serif;font-size:1.25rem;line-height:1.55;color:var(--texto);margin:0 0 14px}
.frase-autor{font-size:.85rem;color:var(--gris);font-style:italic}
.nota-sug{color:var(--gris);background:#fdfaf4}
.fin-sug{font-size:.62rem;color:var(--gris-claro);line-height:1.1}
.frase-skip{margin-top:20px;font-size:.68rem;color:var(--gris-claro);text-transform:uppercase;letter-spacing:.12em}

/* Modal */
.modal-fondo{position:fixed;inset:0;background:rgba(31,27,24,.55);z-index:50;
  display:flex;align-items:flex-end;justify-content:center}
@media(min-width:640px){.modal-fondo{align-items:center}}
.modal{background:var(--papel);width:100%;max-width:520px;border-radius:20px 20px 0 0;
  padding:26px;max-height:88vh;overflow-y:auto;box-sizing:border-box;position:relative}
.modal-x{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;
  border:1.5px solid var(--linea-fuerte);background:var(--papel);color:var(--gris);
  display:flex;align-items:center;justify-content:center;cursor:pointer}
.modal-x:hover{color:var(--rojo);border-color:var(--rojo);background:var(--rojo-suave)}
@media(min-width:640px){.modal{border-radius:20px}}
.modal h3{margin-bottom:18px;font-size:1.25rem}
.modal .acciones{display:flex;gap:10px;justify-content:flex-end;margin-top:22px;flex-wrap:wrap}
.fila-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.fila-form{grid-template-columns:1fr}}

/* ---------- Selector de curso ---------- */
.pick-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;
  justify-content:center;padding:28px 20px 60px;
  background:radial-gradient(900px 500px at 50% -160px, rgba(172,54,54,.12), transparent), var(--crema)}
.pick-head{text-align:center;margin-bottom:26px}
.pick-head .escudo-img{width:84px;height:84px;border-radius:50%;box-shadow:var(--sombra-alta)}
.pick-head h2{font-size:1.8rem;margin:14px 0 6px}
.pick-head .sub{color:var(--gris);font-size:.9rem;max-width:420px;margin:0 auto}
.pick-grid{display:grid;grid-template-columns:repeat(2,minmax(140px,180px));gap:16px;width:100%;max-width:420px}
@media(min-width:760px){.pick-grid{grid-template-columns:repeat(5,minmax(140px,160px));max-width:860px}}
.pick-btn{position:relative;overflow:hidden;border:none;border-radius:20px;
  padding:26px 14px 18px;display:flex;flex-direction:column;align-items:center;gap:10px;
  background:linear-gradient(160deg,#fffdf8 0%,#fbf2e0 100%);
  box-shadow:0 6px 18px rgba(90,50,40,.10),inset 0 0 0 1.5px var(--linea);
  transition:transform .15s,box-shadow .2s}
.pick-btn:hover{transform:translateY(-3px);
  box-shadow:0 12px 26px rgba(172,54,54,.18),inset 0 0 0 1.5px rgba(172,54,54,.45)}
.pick-btn:active{transform:scale(.97)}
.pk-arco{position:absolute;top:0;left:0;right:0;height:7px;
  background:linear-gradient(90deg,var(--rojo),var(--ambre))}
.pk-fila{display:flex;align-items:center;gap:9px}
.pk-anio{font-family:Georgia,serif;font-weight:800;font-size:2.3rem;line-height:1;color:var(--rojo)}
.pk-div{background:var(--rojo);color:#fbf2e0;font-weight:800;font-size:.95rem;
  min-width:34px;padding:6px 0;border-radius:12px;text-align:center;
  box-shadow:0 3px 8px rgba(172,54,54,.35)}
.pk-txt{font-size:.72rem;color:var(--gris);text-transform:uppercase;letter-spacing:.08em}
.pk-flecha{color:var(--ambre);opacity:.7}
.pick-btn:hover .pk-flecha{color:var(--rojo);opacity:1}
.pick-pie{margin-top:26px}
.btn-curso{background:var(--rojo);color:#fff;border:none;border-radius:99px;
  font-size:.82rem;font-weight:700;padding:7px 14px;letter-spacing:.03em;white-space:nowrap}
.btn-curso:hover{background:var(--rojo-osc)}

/* Buscador de alumno */
.buscar{display:flex;align-items:center;gap:8px;border:1.5px solid var(--linea-fuerte);
  border-radius:99px;background:#fff;padding:0 14px}
.buscar svg{width:15px;height:15px;color:var(--gris);flex:none}
.buscar input{border:none;outline:none;padding:10px 0;font-size:.9rem;width:150px;background:transparent}
tr.oculta{display:none}
@media(max-width:600px){.buscar input{width:100px}}

/* ---------- Login pulido ---------- */
.login-card{overflow:hidden}
.card-lip{position:absolute;top:0;left:0;right:0;height:7px;
  background:linear-gradient(90deg,#6e1a1a 0%,var(--rojo-osc) 30%,#d24a4a 62%,#e0b264 100%)}
.inp-wrap{display:flex;align-items:center;gap:10px;background:#faf6f1;
  border:1.5px solid var(--linea);border-radius:12px;padding:0 14px;transition:border-color .15s,box-shadow .15s}
.inp-wrap svg{width:17px;height:17px;color:var(--gris);flex:none}
.inp-wrap input{border:none !important;background:transparent !important;
  padding:13px 0 !important;box-shadow:none !important;flex:1;font-size:.95rem}
.inp-wrap:focus-within{border-color:var(--rojo);box-shadow:0 0 0 3px rgba(172,54,54,.13);background:#fff}
.campo .inp-wrap{margin-top:2px}
.btn-entrar{margin-top:6px;background:linear-gradient(135deg,#b53d3d,var(--rojo-osc));
  box-shadow:0 6px 18px rgba(139,35,35,.32);font-size:.98rem;padding:13px}
.btn-entrar:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(139,35,35,.38)}
.btn-entrar:active{transform:translateY(0)}
.login-hero{box-shadow:inset 0 -30px 60px -30px rgba(0,0,0,.25)}
.login-card{border-top:none}

/* Navegación de planilla en pantallas chicas */
.nav-tabla{display:flex;gap:6px}
.btn-nav{width:38px;height:38px;border-radius:10px;border:1.5px solid var(--linea-fuerte);
  background:var(--papel);color:var(--tinta);font-size:1.25rem;line-height:1;font-weight:700;
  display:flex;align-items:center;justify-content:center;padding-bottom:3px}
.btn-nav:hover{border-color:var(--rojo);color:var(--rojo);background:var(--rojo-suave)}
.btn-nav:active{transform:scale(.94)}
.planilla-wrap{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}

/* Carga de notas por actividad (modal) y validación */
.fila-act .nf-est{padding:7px 4px;border:1.5px solid var(--linea);border-radius:9px;
  background:var(--papel);font-size:.78rem;max-width:82px}
.fila-act .nf-nota{width:64px;text-align:center;padding:9px 6px;border:1.5px solid var(--linea-fuerte);
  border-radius:10px;font-size:1.02rem;font-weight:700;background:var(--papel)}
.fila-act .nf-nota:disabled{opacity:.4}
input.nota.invalida{border-color:var(--rojo) !important;background:#fdf0f0;
  animation:sacudir .3s}
@keyframes sacudir{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@media (prefers-reduced-motion:reduce){input.nota.invalida{animation:none}}

/* Compacto para celulares */
@media(max-width:520px){
  .topbar{gap:8px;padding:9px 12px}
  .topbar .escudo-img{width:34px;height:34px}
  .topbar .marca{font-size:1rem}
  .topbar .chip-rol{font-size:.62rem;padding:4px 9px}
  .topbar .btn-curso{font-size:.74rem;padding:5px 10px}
  .topbar .btn-salir{padding:6px 10px;font-size:.78rem}
  .main{padding:16px 14px 110px}
  .stat{padding:13px 14px}
  .stat .n{font-size:1.5rem}
  .seccion-titulo h2{font-size:1.35rem}
}

/* savebar en pantallas chicas: que no se corte */
@media(max-width:520px){
  .savebar{flex-wrap:wrap;gap:8px;padding:9px 10px}
  .savebar .pendientes{flex-basis:100%;font-size:.78rem}
  .savebar .btn{padding:9px 11px;font-size:.82rem;flex:1}
  .savebar .btn-mini{padding:9px 8px;font-size:.78rem}
}

/* ===== Impresión de planilla: A4 horizontal, márgenes 1,5 cm ===== */
#print-area{display:none}
@media print{
  @page{size:A4 landscape;margin:1.5cm}
  html,body{background:#fff!important}
  body>*:not(#print-area){display:none!important}
  #print-area{display:block!important;color:#111;font-family:'Atkinson Hyperlegible',system-ui,sans-serif}
  .ph-head{margin-bottom:10px;display:flex;align-items:center;gap:10px}
  .ph-escudo{width:44px;height:auto;flex:none}
  .ph-brand{font-size:8pt;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8a1f24}
  .ph-head h1{font-size:14pt;margin:2px 0 1px;font-family:'Fraunces',Georgia,serif}
  .ph-meta{font-size:8pt;color:#555}
  .ph-tabla{width:100%;border-collapse:collapse;font-size:7.5pt}
  .ph-tabla th,.ph-tabla td{border:.6pt solid #999;padding:2.5pt 3pt;text-align:center}
  .ph-tabla thead th{background:#efe9df;font-weight:700;font-size:7pt;vertical-align:bottom;line-height:1.15}
  .ph-tabla .ph-alumno{text-align:left;white-space:nowrap;font-weight:600}
  .ph-tabla .ph-nota{font-weight:700}
  .ph-tabla .ph-trim{background:#f5f1ea;font-weight:700}
  .ph-tabla .ph-grupo{background:#e7dfd2;font-weight:800;font-size:7.5pt;text-align:center;border-bottom:1pt solid #999}
  .ph-peso{font-weight:400;font-size:6.5pt;color:#555}
  .ph-tabla tbody tr{page-break-inside:avoid}
  .ph-pie{margin-top:8px;font-size:7pt;color:#666}
}

/* Calendario docente */
.calendario { background: var(--papel); border: 1px solid var(--linea); border-radius: 18px; margin-bottom: 18px; overflow: hidden; box-shadow: 0 3px 12px rgba(31,27,24,.06); }
.cal-head { display: flex; align-items: center; gap: 8px; padding: 12px 12px;
  background: linear-gradient(135deg, #b8433f 0%, var(--rojo) 55%, var(--rojo-osc) 100%); }
.cal-tit { flex: 1; text-align: center; font-weight: 800; font-size: 1.05rem; color: #fff; letter-spacing: .02em; }
.cal-nav { width: 34px; height: 34px; border-radius: 50%; border: none; background: rgba(255,255,255,.16);
  color: #fff; font: inherit; font-size: 1.15rem; font-weight: 700; cursor: pointer;
  display: flex; align-items: center; justify-content: center; transition: background .15s; }
.cal-nav:hover { background: rgba(255,255,255,.32); }
.cal-nav:active { transform: scale(.92); }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; padding: 10px 10px 4px; }
.cal-dow { text-align: center; font-size: .66rem; font-weight: 800; color: var(--gris-claro); padding: 2px 0 6px; letter-spacing: .08em; }
.cal-dia { aspect-ratio: 1; border: none; border-radius: 12px; background: transparent; color: var(--tinta);
  font: inherit; font-size: .82rem; font-weight: 600; cursor: pointer; padding: 2px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  transition: background .12s; }
.cal-dia:hover { background: var(--rojo-suave); }
.cal-dia.vacio, .cal-dia.vacio:hover { background: transparent; cursor: default; }
.cal-dia.finde { color: var(--gris-claro); }
.cal-dia > span:first-child { width: 28px; height: 28px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; }
.cal-dia.hoy > span:first-child { background: var(--rojo); color: #fff; font-weight: 800; box-shadow: 0 2px 6px rgba(172,54,54,.4); }
.cal-dia.con-act { background: var(--crema); }
.cal-dia.ev { background: var(--rojo-suave); }
.cal-dia.ev > span:first-child { color: var(--rojo-osc); font-weight: 800; }
.cal-dia.hoy.ev > span:first-child { background: var(--rojo); color: #fff; }
.cal-puntos { display: flex; gap: 3px; min-height: 5px; align-items: center; }
.cal-puntos i, .cal-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--gris-claro); display: inline-block; }
.cal-puntos i.ev, .cal-dot.ev { background: var(--rojo); }
.cal-dia.ev .cal-puntos i:not(.ev) { background: var(--rojo-claro); }
.cal-pie { display: flex; flex-wrap: wrap; gap: 4px 14px; padding: 8px 14px 12px; margin-top: 4px;
  font-size: .72rem; color: var(--gris); border-top: 1px dashed var(--linea); }
.cal-pie span { display: inline-flex; align-items: center; gap: 5px; }

/* Lista de actividades: botones rojos con peso al lado */
.act-btn { flex: 1; min-width: 0; background: var(--rojo); color: #fff; border: 0; border-radius: 13px;
  font: inherit; text-align: left; display: flex; align-items: center; gap: 10px; cursor: pointer;
  padding: 12px 14px; box-shadow: 0 2px 7px rgba(172,54,54,.28); transition: transform .1s, background .15s; }
.act-btn:hover { background: var(--rojo-osc); }
.act-btn:active { background: var(--rojo-osc); transform: scale(.985); }
.act-btn .titulo { color: #fff; }
.act-btn svg { color: rgba(255,255,255,.8); }
.act-btn.mesa { background: var(--tinta); box-shadow: 0 2px 7px rgba(31,27,24,.22); }
.act-btn.mesa:hover, .act-btn.mesa:active { background: #38302a; }
.fila-ed { flex: none; width: 118px; display: flex; flex-direction: column; gap: 6px; }
.fecha-ed { width: 100%; padding: 7px 6px; border: 1.5px solid var(--linea); border-radius: 9px; font: inherit; font-size: .72rem; color: var(--tinta); background: var(--blanco); }
.fecha-ed:focus { outline: 2px solid var(--rojo-suave); border-color: var(--rojo); }
.peso-box { display: flex; align-items: center; gap: 3px; flex: none; }
.peso-box input { width: 52px; text-align: center; padding: 8px 4px; border: 1.5px solid var(--linea); border-radius: 9px; font: inherit; font-weight: 800; color: var(--tinta); background: var(--blanco); }
.peso-box input:focus { outline: 2px solid var(--rojo-suave); border-color: var(--rojo); }
.peso-box span { font-size: .75rem; font-weight: 700; color: var(--gris); }
.act-btn-cal { width: 100%; background: none; border: 0; font: inherit; text-align: left; cursor: pointer; color: inherit; }
.act-btn-cal:hover .titulo { color: var(--rojo); }
.entrega.eval { border-color: var(--rojo); background: var(--rojo-suave); }
.entrega.eval .cal { background: var(--rojo); color: #fff; }

/* Panel de supervisión (preceptor/dirección): barra aprendidos vs desaprobados */
.panel-card{display:block;width:100%;text-align:left;cursor:pointer;margin-bottom:12px;
  transition:transform .12s,box-shadow .15s}
.panel-card:hover{transform:translateY(-2px);box-shadow:var(--sombra-alta);border-color:var(--ambre)}
.panel-card:active{transform:translateY(0)}
.panel-nom{font-family:Georgia,serif;font-weight:800;font-size:1.08rem;margin-bottom:9px;color:var(--tinta)}
.panel-bar{height:15px;border-radius:8px;overflow:hidden;display:flex;background:var(--crema)}
.panel-bar .pb-apr{background:var(--azul)}
.panel-bar .pb-des{background:var(--rojo)}
.panel-bar .pb-vacia{flex:1;background:repeating-linear-gradient(135deg,#ece4d6 0 8px,#f5efe3 8px 16px)}
.panel-det{margin-top:8px;font-size:.82rem;color:var(--gris)}
.panel-det b{color:var(--tinta)}
.panel-vacia .panel-nom{color:var(--gris)}

/* Alerta de estudiantes (preceptor/dirección) */
.btn-alerta{display:flex;align-items:center;gap:8px;width:100%;justify-content:center;
  margin:4px 0 16px;padding:13px 16px;border-radius:12px;cursor:pointer;
  border:1.5px solid var(--rojo);background:var(--rojo-suave);color:var(--rojo-osc);
  font-weight:800;font-size:.95rem;transition:background .15s}
.btn-alerta:hover{background:#f3ddd6}
.btn-alerta .ico{flex:none;width:26px;height:26px}
.busca{width:100%;box-sizing:border-box;margin-bottom:14px;padding:11px 14px;
  border:1.5px solid var(--linea-fuerte);border-radius:12px;font-size:.95rem;background:#fff}
.busca:focus{outline:none;border-color:var(--rojo);box-shadow:0 0 0 3px var(--rojo-suave)}
.alerta-tot{font-size:.85rem;font-weight:700;color:var(--gris);margin-bottom:12px}
.alerta-card{display:block;margin-bottom:12px}
.alerta-nom{font-weight:800;font-size:1.02rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.alerta-count{font-size:.72rem;font-weight:800;background:var(--rojo);color:#fff;
  border-radius:99px;padding:3px 10px;text-transform:uppercase;letter-spacing:.04em}
.alerta-mat{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:9px;
  padding-top:9px;border-top:1px dashed var(--linea)}
.alerta-matnom{font-weight:700;font-size:.88rem;color:var(--tinta);min-width:110px}
.chip-al{font-size:.75rem;font-weight:700;border-radius:8px;padding:4px 9px;display:inline-block;margin:2px 0}
.chip-al.rojo{background:#f7e2de;color:var(--rojo-osc);border:1px solid #e0b3ad}
.chip-al.ambre{background:var(--ambre-suave);color:#8a5508;border:1px solid #e8c98f}
.chip-al.gris{background:#efeae1;color:var(--gris);border:1px solid var(--linea-fuerte)}

/* Alerta por trimestre: grupos 0 pendiente / 1 desaprobado */
.alerta-grupo{margin-top:10px;padding-top:9px;border-top:1px dashed var(--linea)}
.alerta-gtit{font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:7px}
.alerta-grupo.pend .alerta-gtit{color:#8a5508}
.alerta-grupo.des .alerta-gtit{color:var(--rojo-osc)}
.alerta-est{display:flex;align-items:baseline;gap:9px;padding:5px 0;font-size:.9rem}
.alerta-est>span:first-child{font-weight:600}
.alerta-cant{font-size:.76rem;color:var(--gris)}
/* Materias sin actividades cargadas (panel preceptor/dirección) */
.panel-card.panel-cero{border:1.5px solid var(--rojo);background:#fdf3f1}
.panel-card.panel-cero .panel-nom{color:var(--rojo-osc)}
.panel-cero-txt{color:var(--rojo)}
