/* ============================================================
   CNAE · componentes propios del Sistema Escalada
   (plano de secciones, lista de alumnos, libreta, casos, aulas, comunicados, portal, constancia)
   ============================================================ */
.g>*,.card,.lienzo-chart{min-width:0}
.pend-t{font-family:var(--sans);font-size:15px;font-weight:700;color:var(--tinta-45);letter-spacing:0}
.kpi .pend-t{color:var(--tinta-45)}

/* control segmentado */
.seg{display:inline-flex;background:var(--fondo-2);border-radius:999px;padding:3px;gap:2px}
.seg button{padding:6px 14px;border-radius:999px;font-size:12px;font-weight:700;color:var(--tinta-70);transition:background .2s,color .2s}
.seg button.on{background:var(--naranja-osc);color:#fff;box-shadow:0 4px 12px rgba(54,59,126,.25)}

/* plano de secciones del hub */
.plano{display:flex;flex-direction:column;gap:14px;margin-top:4px}
.plano__t{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--tinta-45);margin-bottom:7px;display:flex;gap:8px;align-items:baseline}
.plano__t small{letter-spacing:0;text-transform:none;font-weight:600;color:var(--tinta-25)}
.plano__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:7px}
.sala{position:relative;text-align:left;border-radius:12px;padding:8px 9px 8px 11px;color:#fff;overflow:hidden;min-height:66px;display:flex;flex-direction:column;justify-content:space-between;animation:salaIn .45s calc(var(--i) * 28ms) both;transition:transform .2s,box-shadow .2s}
.sala::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--e,rgba(255,255,255,.55))}
.sala:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(16,22,60,.22)}
.sala b{font-size:13px;line-height:1.1}
.sala small{font-size:10px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sala em{font-style:normal;font-family:var(--disp);font-weight:700;font-size:19px;line-height:1}
.sala--ok{background:linear-gradient(140deg,#3B8F6B,#2C6F52)}
.sala--med{background:linear-gradient(140deg,#3F8FC9,#2F6F9F)}
.sala--baja{background:linear-gradient(140deg,#D9822B,#B5651B)}
.sala--pend{background:repeating-linear-gradient(135deg,#E1E4F0 0 8px,#D7DBEA 8px 16px);color:var(--tinta-70)}
.sala--pend::before{background:var(--e,var(--linea-f))}
@keyframes salaIn{from{opacity:0;transform:scale(.85) translateY(6px)}to{opacity:1;transform:none}}

/* lista de alumnos (asistencia) */
.alumnos{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px;max-height:330px;overflow-y:auto;padding:2px}
.al{border-radius:10px;padding:7px 4px;text-align:center;border:1px solid var(--linea);background:#fff;animation:salaIn .35s calc(var(--i) * 14ms) both;transition:transform .15s}
.al:not([disabled]):hover{transform:translateY(-2px)}
.al b{display:block;font-size:13px;font-variant-numeric:tabular-nums}
.al small{display:block;font-size:9.5px;color:var(--tinta-45)}
.al--P{background:#E7F3ED;border-color:#BFDCCB}.al--P b{color:#1F6B42}
.al--T{background:#FBEEDF;border-color:#EDCDA8}.al--T b{color:#8A4B12}
.al--A{background:#FBE5E6;border-color:#EFB8BB}.al--A b{color:#9E2229}
.al--x{opacity:.65;cursor:default}

/* barras clicables */
.barras{display:flex;flex-direction:column;gap:2px}
.fila-btn{display:block;width:100%;text-align:left;border-radius:8px;padding:0 6px;transition:background .15s}
.fila-btn:hover{background:var(--naranja-50)}
.barras .barra-fila{grid-template-columns:minmax(0,180px) minmax(0,1fr) auto}

/* libreta */
.nota-p{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;font-weight:800;font-size:13px;color:#fff}
.nota-p--1{background:var(--rojo)}.nota-p--2{background:#D9822B}.nota-p--3{background:#3F8FC9}.nota-p--4{background:var(--naranja)}.nota-p--5{background:#1F2A5C}
.estp--riesgo{background:#FBE5E6;color:#9E2229}
.estp--pendiente{background:#FBEEDF;color:#8A4B12}.estp--documentacion{background:#E3E6F6;color:#2E3880}.estp--confirmado{background:var(--verde-50);color:#1F6B42}
.estp--sin{background:#FBE5E6;color:#9E2229}.estp--en{background:#E3E6F6;color:#2E3880}.estp--respuesta{background:#EAF6FD;color:#1D5E86}.estp--enviado{background:var(--verde-50);color:#1F6B42}
.tabla-env--alta{max-height:380px;overflow-y:auto}
.tabla-env--alta thead th{position:sticky;top:0;background:#fff;z-index:1}
.cel__lib{background:#fff;border-radius:0 0 24px 24px;padding:12px;display:flex;flex-direction:column;gap:6px;min-height:300px}
.cel__lib>div{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;padding:5px 2px;border-bottom:1px solid var(--linea)}
.cel__lib p{font-size:11.5px;color:var(--tinta-45);margin:6px 0 0}
.cel--ancho{width:100%;border-radius:22px;padding:8px;margin-bottom:4px}
.cel--ancho .cel__top{padding:12px;border-radius:16px 16px 0 0}
.cel--ancho .cel__chat{height:auto;min-height:120px;border-radius:0 0 16px 16px}
.cel--ancho .msg{max-width:96%}

/* matrícula */
.legajos{display:flex;flex-direction:column;gap:6px}
.legajo{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--linea);border-radius:12px}
.legajo b{display:block;font-size:13px}.legajo small{font-size:11px;color:var(--tinta-45)}
.btn--sm{padding:6px 10px;font-size:12px;border-radius:9px}
.btn--sm svg{width:14px;height:14px}
.checks{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.checks>div{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--tinta-45)}
.checks>div.ok{color:var(--tinta)}
.checks svg{width:16px;height:16px;flex:0 0 16px;color:var(--tinta-25)}
.checks .ok svg{color:var(--verde)}
.const{border:1.5px solid var(--linea-f);border-radius:14px;padding:14px;background:linear-gradient(180deg,#fff,#F7F8FD)}
.const__cab{display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--linea);padding-bottom:10px;margin-bottom:10px}
.const__cab img{width:40px;height:auto}
.const__cab b{display:block;font-size:12.5px}.const__cab small{font-size:10.5px;color:var(--tinta-45)}
.const p{font-size:12.5px;line-height:1.55;margin:0 0 12px}
.const__pie{display:flex;gap:12px;align-items:center}
.const__pie small{display:block;font-size:10.5px;color:var(--tinta-45)}
.const__pie b{font-family:ui-monospace,Consolas,monospace;font-size:13px}
.qr-mini{width:58px;height:58px;padding:4px;background:#fff;border:1px solid var(--linea);border-radius:6px;flex:0 0 58px}
.qr-mini svg{width:100%;height:100%;fill:#1F2A5C;shape-rendering:crispEdges}

/* bienestar */
.casos{display:flex;flex-direction:column;gap:6px}
.caso{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;padding:9px 11px;border:1px solid var(--linea);border-radius:12px;background:#fff;animation:sube .4s calc(var(--i) * 40ms) both;transition:border-color .2s,transform .2s}
.caso:hover{border-color:var(--naranja);transform:translateX(3px)}
.caso__n{width:30px;height:30px;border-radius:9px;background:var(--naranja-50);color:var(--naranja-osc);display:grid;place-items:center;font-weight:800}
.caso:first-child .caso__n{background:var(--rojo);color:#fff}
.caso b{display:block;font-size:12.8px}
.caso span{display:block;font-size:11.5px;color:var(--tinta-45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.caso em{font-style:normal;font-family:var(--disp);font-weight:700;font-size:22px;color:var(--rojo)}
.proto{list-style:none;margin:0 0 10px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px;counter-reset:p}
.proto li{counter-increment:p;background:var(--fondo);border-radius:12px;padding:10px 10px 10px 38px;position:relative}
.proto li::before{content:counter(p);position:absolute;left:10px;top:10px;width:20px;height:20px;border-radius:6px;background:var(--naranja-osc);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center}
.proto b{display:block;font-size:12.5px}.proto span{display:block;font-size:11.5px;color:var(--tinta-45)}

/* comedor y aulas */
.aviso-rue{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border-radius:12px;background:#FBEEDF;color:#8A4B12;margin-bottom:12px}
.aviso-rue svg{width:20px;height:20px;flex:0 0 20px}
.aviso-rue b{display:block;font-size:13px}.aviso-rue span{font-size:12px}
.aviso-rue.mal{background:#FBE5E6;color:#9E2229}
.aviso-rue.ok{background:var(--verde-50);color:#1F6B42}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.aulas{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:5px;margin-bottom:6px}
.aula{aspect-ratio:1;border-radius:7px;background:var(--naranja);color:#fff;display:grid;place-items:center;font-size:10.5px;animation:salaIn .35s calc(var(--i) * 20ms) both}
.aula b{font-weight:700}
.aula--mal{background:repeating-linear-gradient(135deg,#D9822B 0 5px,#C46F1F 5px 10px)}

/* familias */
.coms{display:flex;flex-direction:column;gap:10px}
.com{padding:10px 12px;border:1px solid var(--linea);border-radius:12px}
.com--nuevo{border-color:var(--naranja);box-shadow:0 0 0 3px rgba(77,82,151,.12);animation:sube .4s both}
.com__t b{display:block;font-size:12.8px}.com__t small{display:block;font-size:11px;color:var(--tinta-45);margin-bottom:6px}
.com .barra i{transition:width .6s ease}
.com>small{display:block;font-size:11px;color:var(--tinta-70);margin-top:4px;font-variant-numeric:tabular-nums}
.nav-web{border:1px solid var(--linea-f);border-radius:14px;overflow:hidden;background:#fff}
.nav-web__barra{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--fondo-2);border-bottom:1px solid var(--linea)}
.nav-web__barra i{width:9px;height:9px;border-radius:50%;background:#C9CEE6}
.nav-web__barra span{margin-left:8px;font-size:11.5px;color:var(--tinta-45);background:#fff;border-radius:999px;padding:3px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.nav-web__sitio{filter:grayscale(1) blur(1.5px);opacity:.45;transition:filter .8s,opacity .8s}
.nav-web.on .nav-web__sitio{filter:none;opacity:1}
.nav-web.on .nav-web__barra span{color:var(--verde)}
.nav-web header{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#1F2A5C;color:#fff;flex-wrap:wrap}
.nav-web header img{width:30px;height:auto}
.nav-web header b{font-size:13px}
.nav-web header nav{margin-left:auto;display:flex;gap:12px;font-size:11.5px;color:#C3C8E4;flex-wrap:wrap}
.nav-web__hero{padding:22px 18px;background:linear-gradient(130deg,#4D5297,#1F2A5C);color:#fff}
.nav-web__hero small{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#A9DCF7}
.nav-web__hero h4{font-family:var(--disp);font-weight:700;font-size:30px;margin:6px 0;line-height:1}
.nav-web__hero p{margin:0 0 12px;font-size:12.5px;color:#D6DAF0}
.nav-web__hero .btn{background:#fff;color:#1F2A5C;border:0}
.nav-web__cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px}
.nav-web__cards div{border:1px solid var(--linea);border-radius:10px;padding:10px}
.nav-web__cards b{display:block;font-size:12.5px}.nav-web__cards small{font-size:10.5px;color:var(--tinta-45)}

/* propuesta sin montos */
.pp--sin .pp__conv{font-family:var(--disp);font-weight:700;font-size:26px;line-height:1.05;margin:4px 0}
.pp--todo.pp--sin .pp__conv{color:#fff}

/* presentación: arranque solo */
.pres-lam__solo{display:inline-flex;align-items:center;gap:8px;margin-top:20px;font-size:13px;font-weight:600;color:#D6E9FB}
.pres-lam__solo i{width:8px;height:8px;border-radius:50%;background:var(--amarillo);box-shadow:0 0 0 0 rgba(143,208,242,.6);animation:pulsoSolo 1.4s ease-out infinite}
@keyframes pulsoSolo{0%{box-shadow:0 0 0 0 rgba(143,208,242,.6)}100%{box-shadow:0 0 0 12px rgba(143,208,242,0)}}
.pres-lam__wm{width:min(150px,40vw)}
.pres-lam__prods img{width:64px;height:auto;object-fit:contain;border:0;border-radius:0}

/* escudo del gate y del hero */
.gate__logo{width:min(190px,48%)!important;filter:drop-shadow(0 0 22px rgba(143,208,242,.35))!important}
.gate__logo svg.trazo path{stroke:#BDE3F8!important}
.amp3d__fb{height:70%!important;transform:translate(-50%,-50%)!important;border-radius:0!important}
.boot__emb img,.wipe__emb img{max-height:120px;width:auto}

@media (max-width:1180px){.plano__grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.nav-web__cards{grid-template-columns:1fr 1fr}}
@media (max-width:820px){.aulas{grid-template-columns:repeat(8,minmax(0,1fr))}.proto{grid-template-columns:1fr}.nav-web header nav{display:none}.barras .barra-fila{grid-template-columns:minmax(0,120px) minmax(0,1fr) auto}}
@media (max-width:390px){.plano__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.alumnos{grid-template-columns:repeat(4,minmax(0,1fr))}.aulas{grid-template-columns:repeat(6,minmax(0,1fr))}}
.barra-filtros .campo--in{min-width:0;max-width:100%}.barra-filtros .campo--in select{min-width:0;max-width:min(300px,calc(100vw - 120px))}
