/* BrianBooks — estilos base. Paleta sobria azul/blanco. */
:root{
  --azul:#1e4e8c; --azul-d:#163a68; --rojo:#c0392b; --verde:#1e7d4e; --morado:#6a3d9a;
  --gris:#f4f6f9; --linea:#dfe4ea; --texto:#22303f; --suave:#6b7785;
  --ok:#1e7d4e; --err:#c0392b; --warn:#b8860b;
  --radius:8px; --sombra:0 1px 3px rgba(20,40,70,.12);
}
*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,sans-serif;color:var(--texto);background:var(--gris);line-height:1.45}
a{color:var(--azul);text-decoration:none}
a:hover{text-decoration:underline}

/* Topbar */
.topbar{display:flex;align-items:center;gap:1.5rem;background:var(--azul);color:#fff;padding:0 1.2rem;height:56px;box-shadow:var(--sombra)}
.topbar .brand a{color:#fff;font-weight:700;font-size:1.15rem}
.navtoggle{display:none;background:none;border:1px solid rgba(255,255,255,.45);color:#fff;font-size:1.25rem;line-height:1;padding:.25rem .55rem;border-radius:var(--radius);cursor:pointer}
.navtoggle:hover{background:rgba(255,255,255,.15)}
.mainnav{display:flex;gap:1rem;flex:1}
.mainnav a{color:#dbe6f5;padding:.35rem .2rem;font-size:.95rem}
.mainnav a:hover{color:#fff;text-decoration:none;border-bottom:2px solid #fff}
.userbox{display:flex;align-items:center;gap:1rem;font-size:.85rem}
.userbox .ctx{background:rgba(255,255,255,.15);padding:.2rem .6rem;border-radius:20px}
.userbox .ctx-logo{padding:.12rem;background:#fff;border-radius:8px;display:inline-flex;align-items:center;line-height:0}
.userbox .inst-logo{height:30px;width:auto;max-width:120px;display:block;border-radius:5px;object-fit:contain}
.userbox .who{color:#eef4fb}
.role{font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;background:#fff;color:var(--azul);padding:.1rem .4rem;border-radius:4px;font-weight:700}
.logout{color:#fff;border:1px solid rgba(255,255,255,.5);padding:.25rem .7rem;border-radius:var(--radius)}
.logout:hover{background:rgba(255,255,255,.15);text-decoration:none}

/* Layout */
.container{max-width:1080px;margin:1.5rem auto;padding:0 1.2rem}
.foot{text-align:center;color:var(--suave);font-size:.8rem;padding:2rem 0 1rem}

/* Cards */
.card{background:#fff;border:1px solid var(--linea);border-radius:var(--radius);box-shadow:var(--sombra);padding:1.5rem;margin-bottom:1.2rem}
.card h1{margin-top:0;font-size:1.5rem}
.card h2{font-size:1.15rem;color:var(--azul-d)}
.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
.page-head h1{margin:0;font-size:1.5rem}
.muted{color:var(--suave)}
.error-card{text-align:center;max-width:480px;margin:4rem auto}
.error-card h1{font-size:3rem;color:var(--azul);margin:.2rem}

/* Botones */
.btn{display:inline-block;background:var(--azul);color:#fff;border:none;padding:.55rem 1rem;border-radius:var(--radius);cursor:pointer;font-size:.92rem}
.btn:hover{background:var(--azul-d);text-decoration:none}
.btn-sec{background:#fff;color:var(--azul);border:1px solid var(--azul)}
.btn-sec:hover{background:#eef4fb}
.btn-danger{background:var(--rojo)}
.btn-danger:hover{background:#962d22}
.btn-sm{padding:.3rem .6rem;font-size:.82rem}

/* Formularios */
form .field{margin-bottom:1rem}
label{display:block;font-weight:600;margin-bottom:.3rem;font-size:.9rem}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{
  width:100%;padding:.55rem .7rem;border:1px solid var(--linea);border-radius:var(--radius);font-size:.95rem;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid #bcd3f0;border-color:var(--azul)}
.row{display:flex;gap:1rem;flex-wrap:wrap}
.row .field{flex:1;min-width:160px}
.hint{font-size:.8rem;color:var(--suave);margin-top:.2rem}
.checkline{display:flex;align-items:center;gap:.5rem}
.checkline input{width:auto}

/* Login */
.login-wrap{max-width:380px;margin:5vh auto}
.login-wrap .brand{text-align:center;font-size:1.6rem;font-weight:700;color:var(--azul);margin-bottom:1rem}

/* Tablas */
table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:.6rem .7rem;border-bottom:1px solid var(--linea);text-align:left;font-size:.9rem}
th{background:#f0f4f9;color:var(--azul-d);font-weight:600}
tr:hover td{background:#fafcfe}
.tag{font-size:.75rem;padding:.15rem .5rem;border-radius:20px;background:#eef2f6;color:var(--suave)}
.check{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--texto);cursor:pointer}
.check input{width:auto;margin:0}
.lnk-danger{background:none;border:none;color:var(--rojo);cursor:pointer;font-size:.78rem;padding:0;margin-left:.5rem;text-decoration:underline}
.lnk-danger:hover{color:#962d22}
.tag-ok{background:#e3f3ea;color:var(--ok)}
.tag-off{background:#fbe7e4;color:var(--err)}
.retirado td{color:#999;text-decoration:line-through}

/* Flash */
.flash{padding:.8rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.92rem}
.flash-ok{background:#e3f3ea;color:#155d38;border:1px solid #b9e0c9}
.flash-error{background:#fbe7e4;color:#8c241a;border:1px solid #f0bdb6}
.flash-info{background:#e7f0fb;color:#1e4e8c;border:1px solid #c2d9f3}

/* Ciclos / grupos */
.ciclo-group{margin-bottom:1.5rem}
.ciclo-group h3{color:var(--azul-d);border-bottom:2px solid var(--linea);padding-bottom:.3rem}
.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}
.curso-card{display:block;background:#fff;border:1px solid var(--linea);border-left:4px solid var(--azul);border-radius:var(--radius);padding:1rem;box-shadow:var(--sombra)}
.curso-card:hover{text-decoration:none;border-left-color:var(--azul-d);transform:translateY(-1px)}
.curso-card .n{font-weight:700;font-size:1.05rem;color:var(--texto)}
.curso-card .meta{font-size:.8rem;color:var(--suave);margin-top:.3rem}

/* Vista previa de plantilla */
.preview-list{list-style:none;padding:0;margin:0}
.preview-list li{display:flex;justify-content:space-between;padding:.4rem .2rem;border-bottom:1px dashed var(--linea);font-size:.9rem}
.preview-list .sub{padding-left:1.4rem;color:var(--suave)}
.pond{font-size:.78rem;color:var(--suave)}
.badge-concepto{background:#f3eef9;color:var(--morado);font-size:.72rem;padding:.1rem .4rem;border-radius:4px}

/* ===== Grilla de notas (Fase 4) ===== */
.periodo-tabs{display:flex;gap:.3rem;margin-bottom:0;flex-wrap:wrap}
.periodo-tabs a{padding:.45rem .9rem;border:1px solid var(--linea);border-bottom:none;border-radius:8px 8px 0 0;background:#eef1f5;color:var(--suave);font-size:.9rem}
.periodo-tabs a:hover{text-decoration:none;background:#fff}
.periodo-tabs a.activa{color:#fff;font-weight:600}
.p1 .periodo-tabs a.activa,.p1 .grilla th.calc-h{background:var(--azul)}
.p2 .periodo-tabs a.activa,.p2 .grilla th.calc-h{background:var(--rojo)}
.p3 .periodo-tabs a.activa,.p3 .grilla th.calc-h{background:var(--verde)}
.p4 .periodo-tabs a.activa,.p4 .grilla th.calc-h{background:var(--morado)}
.grilla-wrap{border:1px solid var(--linea);border-radius:0 8px 8px 8px;background:#fff;overflow-x:auto}
.p1 .grilla-wrap{border-top:3px solid var(--azul)}
.p2 .grilla-wrap{border-top:3px solid var(--rojo)}
.p3 .grilla-wrap{border-top:3px solid var(--verde)}
.p4 .grilla-wrap{border-top:3px solid var(--morado)}
table.grilla{border-collapse:collapse;width:100%;font-size:.86rem}
table.grilla th,table.grilla td{border:1px solid var(--linea);padding:.25rem;text-align:center;white-space:nowrap}
table.grilla th{background:#f0f4f9;color:var(--azul-d);font-weight:600;position:sticky;top:0}
table.grilla th.calc-h{color:#fff}
table.grilla td.nombre,table.grilla th.nombre{text-align:left;position:sticky;left:0;background:#fff;z-index:1;min-width:200px}
table.grilla th.nombre{background:#f0f4f9}
table.grilla td.nlista{color:var(--suave);width:34px}
table.grilla input.nota{width:46px;border:1px solid transparent;background:transparent;text-align:center;padding:.3rem 0;font-size:.86rem;border-radius:4px}
table.grilla input.nota:focus{outline:none;border-color:var(--azul);background:#fff;box-shadow:0 0 0 2px #bcd3f0}
table.grilla input.nota.rojo{color:var(--rojo);font-weight:600}
table.grilla input.nota.pend{background:#fdf3cf}
table.grilla input.nota:disabled{color:#aaa}
table.grilla td.calc{background:#eaf5ee;font-weight:600}
table.grilla td.calc.rojo{background:#fbe7e4;color:var(--rojo)}
table.grilla td.prev{background:#f4f6f9;color:var(--suave);font-style:italic}
table.grilla tr.retirado td{background:#fbecea;color:#b3b3b3}
table.grilla tr.retirado input{text-decoration:line-through}
.cell-saving{box-shadow:0 0 0 2px #f0c14b !important}
.cell-saved{box-shadow:0 0 0 2px #56b881 !important}
.cell-error{box-shadow:0 0 0 2px var(--rojo) !important;background:#fbe7e4 !important}
.grid-meta{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:.5rem 0;flex-wrap:wrap}
.grid-meta .divisor{font-size:.82rem;color:var(--suave)}
.col-head{display:flex;flex-direction:column;align-items:center;gap:.1rem}
.col-head .colname{font-size:.78rem}
.col-head .coldate{font-size:.66rem;color:var(--suave);font-weight:400}
.col-tools{display:flex;gap:.2rem;margin-top:.1rem}
.col-tools form{display:inline}
.col-tools button{border:none;background:none;cursor:pointer;font-size:.7rem;color:var(--suave);padding:0 .15rem}
.col-tools button:hover{color:var(--rojo)}

/* ---- FASE 5: pendientes y promedios ---- */
.periodo-tabs a.activa{background:var(--azul);color:#fff}
table.grilla th.calc-h{background:var(--azul)}
.menu-curso .curso-card{border-left-color:var(--azul)}
table.grilla.pend-matrix th.rot{font-size:.72rem;max-width:46px;white-space:normal;line-height:1.05}
table.grilla.pend-matrix th.asig{font-size:.7rem;min-width:62px;max-width:104px;white-space:normal;word-break:break-word;line-height:1.1;vertical-align:bottom;padding:6px 4px}
table.grilla td.pend-zero{color:#cdd5dd}
table.grilla td.pend-amber{background:#fff3cd;color:#8a6d1b;font-weight:600}
table.grilla td.calc.sem-ok{background:#d4edda;color:#1e7d4e}
table.grilla td.calc.sem-medio{background:#fff3cd;color:#8a6d1b}
table.grilla td.calc.sem-alto{background:#f8d7da;color:var(--rojo)}
table.grilla tfoot td{background:#f7f9fc;border-top:2px solid var(--linea)}
table.grilla td.rojo{color:var(--rojo);font-weight:600}
/* tabla de finales con grupos por asignatura */
table.grilla-final th.grp{background:var(--azul-d);color:#fff;font-size:.74rem;border-left:2px solid #fff}
table.grilla-final th.sub{font-size:.7rem;background:#eaeff6}
table.grilla-final th.sub.nf,table.grilla-final td.nf{background:#eaf5ee}
table.grilla-final td.psem{color:var(--suave)}
table.grilla-final td.nf.rojo,table.grilla-final td.psem.rojo{color:var(--rojo)}

/* ---- FASE 6: informes ---- */
.btn-row{display:flex;gap:.5rem;flex-wrap:wrap}
.flash-info{background:#eef4fb;color:#1a4a7a;border:1px solid #bcd3f0}

/* ---- FASE 7: personalidad ---- */
table.perso-form{width:100%;border-collapse:collapse}
table.perso-form th,table.perso-form td{border-bottom:1px solid var(--linea);padding:.4rem .5rem;font-size:.9rem}
table.perso-form th.op,table.perso-form td.op{text-align:center;width:88px}
table.perso-form th.op span{font-size:.66rem;color:var(--suave);font-weight:400}
table.perso-form td.ind{text-align:left}
table.perso-form td.op input{width:auto}

/* ===== Polish de UI (round de correcciones) ===== */
/* Botones secundarios visibles (antes blancos "perdidos") */
.btn-sec{background:#eaf1fb;color:var(--azul-d);border:1px solid #aac6ea}
.btn-sec:hover{background:#d8e6f8;color:var(--azul-d)}
.btn{box-shadow:0 1px 2px rgba(22,58,104,.18)}
.btn-sm{padding:.4rem .7rem;font-size:.85rem}
.btn-danger{background:var(--rojo);color:#fff;border:none}
.btn-danger:hover{background:#9c2c20}
/* Agrupar botones del page-head con aire */
.page-head > div{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
/* ✕ de eliminar columna: más visible y menos misclic */
.col-tools button{font-size:.95rem;line-height:1;color:#c0392b;opacity:.45;padding:.1rem .3rem;border-radius:4px;transition:opacity .12s,background .12s}
.col-tools button:hover{opacity:1;background:#fbe3e0;color:#9c2c20}
/* Tarjetas de menú con acento de color por sección */
.grid-cards.menu-curso .curso-card{border-left-width:5px}
.menu-curso .curso-card:nth-child(1){border-left-color:#c0392b}
.menu-curso .curso-card:nth-child(2){border-left-color:#1e7d4e}
.menu-curso .curso-card:nth-child(3){border-left-color:#6a3d9a}
.menu-curso .curso-card:nth-child(4){border-left-color:#1e4e8c}
.menu-curso .curso-card:nth-child(5){border-left-color:#d68910}
.curso-card .n{color:var(--azul-d)}
/* Nav superior: hover/activo más claro */
.mainnav a{padding:.35rem .6rem;border-radius:6px}
.mainnav a:hover{background:rgba(255,255,255,.18);text-decoration:none}
/* Botón primario de acción dominante (verde para "generar/guardar" opcional) */
.btn-ok{background:var(--verde);color:#fff;border:none}
.btn-ok:hover{background:#155c39}

/* ===== FASE 11: asistencia ===== */
.asis-tabla{width:100%;border-collapse:collapse}
.asis-tabla th,.asis-tabla td{padding:.4rem .6rem;border-bottom:1px solid var(--linea);font-size:.9rem}
.asis-tabla td.nombre{text-align:left}
.asis-btns{white-space:nowrap}
.asis-b{width:34px;height:30px;margin:0 2px;border:1.5px solid var(--c);background:#fff;color:var(--c);border-radius:6px;font-weight:700;font-size:.8rem;cursor:pointer}
.asis-b:hover{background:color-mix(in srgb, var(--c) 12%, #fff)}
.asis-b.on{background:var(--c);color:#fff}
.asis-b:disabled{opacity:.4;cursor:default}
.asis-obs{width:100%;border:1px solid var(--linea);border-radius:5px;padding:.3rem .5rem;font-size:.85rem}
.asis-mensual td,.asis-mensual th{font-size:.78rem;padding:.2rem .3rem}
/* calendario */
.cal-year{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1rem}
.cal-mes h4{margin:.2rem 0;color:var(--azul-d);font-size:.92rem}
.cal-dias{display:flex;flex-wrap:wrap;gap:3px}
.cal-chip{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;font-size:.72rem;color:#333}
.cal-chip.lect{background:#d4edda;color:#1e7d4e}
.cal-chip.nolect{background:#f8d7da;color:#c0392b}
.cal-chip.finde{background:#eef1f5;color:#9aa6b2}
.cal-chip.sindef{background:#fff;border:1px dashed #cdd5dd;color:#cdd5dd}

/* ===== Menús desplegables de la barra superior ===== */
.nav-dd{position:relative}
.nav-dd-btn{background:none;border:none;color:#dbe6f5;font:inherit;font-size:.95rem;padding:.35rem .6rem;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem}
.nav-dd-btn:hover{background:rgba(255,255,255,.18);color:#fff}
.nav-dd.open .nav-dd-btn{background:rgba(255,255,255,.24);color:#fff}
.nav-dd .caret{font-size:.7rem;transition:transform .12s}
.nav-dd.open .caret{transform:rotate(180deg)}
.nav-dd-menu{display:none;position:absolute;top:calc(100% + 6px);left:0;min-width:190px;background:#fff;border:1px solid var(--linea);border-radius:var(--radius);box-shadow:0 6px 18px rgba(22,58,104,.22);padding:.35rem;z-index:50}
.nav-dd.open .nav-dd-menu{display:block}
.nav-dd-menu a{display:block;color:var(--texto);padding:.5rem .7rem;border-radius:6px;font-size:.92rem}
.nav-dd-menu a:hover{background:#eef3fa;color:var(--azul-d);text-decoration:none;border-bottom:none}

/* ===== Responsive (móvil) ===== */
@media (max-width:760px){
  .topbar{flex-wrap:wrap;height:auto;padding:.5rem .8rem;gap:.5rem}
  .navtoggle{display:inline-block;order:1}
  .topbar .brand{order:2;flex:1}
  .userbox{order:3;margin-left:auto;flex-wrap:wrap}
  /* El menú se oculta y se despliega vertical al pulsar la hamburguesa. */
  .mainnav{order:4;width:100%;flex-direction:column;gap:.1rem;display:none}
  .mainnav.open{display:flex}
  .mainnav a{padding:.6rem .4rem;border-radius:6px;border-bottom:1px solid rgba(255,255,255,.12)}
  .mainnav a:hover{border-bottom:1px solid rgba(255,255,255,.12)}
  /* Desplegables como acordeón dentro del menú móvil */
  .nav-dd{position:static}
  .nav-dd-btn{width:100%;text-align:left;padding:.6rem .4rem;border-bottom:1px solid rgba(255,255,255,.12);border-radius:6px;justify-content:space-between;display:flex}
  .nav-dd-menu{position:static;background:rgba(255,255,255,.08);border:none;box-shadow:none;min-width:0;padding:.15rem .2rem;margin:.15rem 0 .3rem}
  .nav-dd-menu a{color:#dbe6f5;padding:.55rem .9rem}
  .nav-dd-menu a:hover{background:rgba(255,255,255,.15);color:#fff}
  .container{padding:0 .6rem}
  .page-head{flex-direction:column;align-items:flex-start;gap:.5rem}
  .row{flex-direction:column}
  .grid-cards{grid-template-columns:1fr}
  table.grilla{font-size:.8rem}
  .card{padding:1rem}
}

/* ===== Asignaturas como bloques + tonalidades ===== */
.asig-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.8rem;margin-top:.6rem}
.asig-card{display:block;background:#fff;border:1px solid var(--linea);border-left:6px solid var(--azul);border-radius:var(--radius);padding:.9rem 1rem;box-shadow:var(--sombra)}
.asig-card.link{transition:transform .1s,box-shadow .1s}
.asig-card.link:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 3px 10px rgba(22,58,104,.15)}
.asig-card .n{font-weight:700;color:var(--texto)}
.asig-card .meta{font-size:.8rem;color:var(--suave);margin-top:.3rem}
.asig-card .subs{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.6rem}
.editar-malla > summary{cursor:pointer;margin-bottom:.3rem}
.editar-malla{border:1px dashed var(--linea);border-radius:8px;padding:.6rem}
.badge-concepto{font-size:.68rem;background:#ede7f6;color:#6a3d9a;padding:.1rem .4rem;border-radius:10px}
/* Tonalidades suaves por tipo de tarjeta de menú ya definidas en .menu-curso */
.card h2{border-bottom:2px solid #eef2f7;padding-bottom:.35rem;margin-top:0}

/* ===== v1.5.0: colores por ciclo, dashboard de inicio, botones volver/inicio ===== */
:root{
  --c-ciclo1:#0f8a8a; --c-ciclo2:#1e4e8c; --c-em:#6a3d9a; --c-tp:#c47d12;
}
/* Encabezados de grupo de ciclo con acento de color */
.ciclo-group.cg-1er h3{color:var(--c-ciclo1);border-bottom-color:var(--c-ciclo1)}
.ciclo-group.cg-2do h3{color:var(--c-ciclo2);border-bottom-color:var(--c-ciclo2)}
.ciclo-group.cg-em  h3{color:var(--c-em);border-bottom-color:var(--c-em)}
.ciclo-group.cg-tp  h3{color:var(--c-tp);border-bottom-color:var(--c-tp)}
.ciclo-chip{display:inline-block;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;
  padding:.08rem .45rem;border-radius:10px;vertical-align:middle;margin-left:.4rem;color:#fff}
.cg-1er .ciclo-chip,.chip-1er{background:var(--c-ciclo1)}
.cg-2do .ciclo-chip,.chip-2do{background:var(--c-ciclo2)}
.cg-em  .ciclo-chip,.chip-em {background:var(--c-em)}
.cg-tp  .ciclo-chip,.chip-tp {background:var(--c-tp)}
/* Tarjetas de curso coloreadas por ciclo */
.curso-card.cc-1er{border-left-color:var(--c-ciclo1)}
.curso-card.cc-2do{border-left-color:var(--c-ciclo2)}
.curso-card.cc-em {border-left-color:var(--c-em)}
.curso-card.cc-tp {border-left-color:var(--c-tp)}
.curso-card.cc-1er:hover{border-left-color:#0b6c6c}
.curso-card.cc-2do:hover{border-left-color:var(--azul-d)}
.curso-card.cc-em:hover {border-left-color:#542f7c}
.curso-card.cc-tp:hover {border-left-color:#9c6310}

/* Dashboard de inicio: secciones y tarjetas con icono */
.dash-sec{font-size:1rem;color:var(--azul-d);margin:1.4rem 0 .6rem;padding-bottom:.3rem;border-bottom:2px solid #eef2f7}
.grid-cards.menu-inicio .curso-card{border-left-width:5px;transition:transform .1s,box-shadow .1s}
.grid-cards.menu-inicio .curso-card:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgba(22,58,104,.16)}
.menu-inicio .curso-card .card-head{display:flex;align-items:center;gap:.55rem;margin-bottom:.3rem}
.menu-inicio .curso-card .ico{line-height:0;flex-shrink:0}

/* ===== Grilla: EX/AU destacados + separadores ===== */
table.grilla th.exau{background:#fdf1dc;color:#b9770e}
table.grilla td.exau{background:#fffaf0}
table.grilla td.exau .nota{background:transparent}
table.grilla th.exau-ini,table.grilla td.exau-ini{border-left:3px solid #d68910}
table.grilla th.pf-col,table.grilla td.cell-pf{border-left:3px solid var(--azul)}

/* ===== Asignaciones: selección múltiple por curso ===== */
.asg-group{display:none;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.25rem .8rem;margin-top:.5rem}
.asg-group.on{display:grid}
.asg-item{display:flex;align-items:center;gap:.45rem;padding:.3rem .45rem;border-radius:6px;font-size:.92rem}
.asg-item:hover{background:#f2f6fb}
.asg-item.ya{color:var(--suave)}
.asg-item.ya .tag{background:#e8eef7;color:#1e4e8c}
.asg-all{margin-top:.5rem}

/* ===== Botón "Soy apoderado" en el login ===== */
.login-sep{display:flex;align-items:center;gap:.7rem;margin:1.1rem 0 .6rem;color:var(--suave);font-size:.82rem}
.login-sep::before,.login-sep::after{content:"";flex:1;height:1px;background:var(--linea)}
.btn-apoderado{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.7rem 1rem;
  background:#fff;border:1.5px solid var(--verde);border-radius:var(--radius);color:var(--verde);
  font-weight:600;font-size:.95rem;box-shadow:var(--sombra)}
.btn-apoderado:hover{background:var(--verde);color:#fff;text-decoration:none}

/* ===== Iconos SVG en línea (v1.6.2, reemplazo de emojis) ===== */
.icn{vertical-align:-.18em;flex-shrink:0}
.brand .icn,.navtoggle .icn{vertical-align:-.22em}
.navtoggle{line-height:0}
.menu-inicio .curso-card .n{color:var(--azul-d);font-size:1.05rem}
.menu-inicio .curso-card .meta{margin-top:.25rem}

/* Botones de Volver / Inicio destacados */
.btn-back{background:#dfeafb;color:#163a68;border:1px solid #9cc0ea;font-weight:600}
.btn-back:hover{background:#cadcf6;color:#0f2c52;text-decoration:none}
.btn-home{background:#0f8a8a;color:#fff;border:none;font-weight:600}
.btn-home:hover{background:#0b6c6c;color:#fff;text-decoration:none}
/* Enlace Inicio en la barra de navegación */
.mainnav a.nav-home{background:rgba(255,255,255,.16);font-weight:600}
.mainnav a.nav-home:hover{background:rgba(255,255,255,.30)}

/* Editar columna (popover en encabezado de grilla) */
.col-edit{position:relative;display:inline-block}
.col-edit > summary{cursor:pointer;color:var(--azul);list-style:none;font-size:.95rem;opacity:.55;padding:0 .2rem}
.col-edit > summary::-webkit-details-marker{display:none}
.col-edit > summary:hover{opacity:1}
.col-edit[open] > .col-edit-form{position:absolute;z-index:30;top:100%;left:0;background:#fff;border:1px solid var(--azul);
  border-radius:8px;box-shadow:0 4px 14px rgba(0,0,0,.18);padding:.6rem;width:170px;text-align:left}
.col-edit-form label{display:block;font-size:.7rem;color:var(--suave);margin-top:.3rem}
.col-edit-form input{width:100%;font-size:.8rem;padding:.3rem}
.col-edit-form button{margin-top:.5rem}
