:root{--bg: #f4f6fb;--surface: #ffffff;--surface-2: #edf1f9;--ink: #1c2333;--muted: #5d687e;--line: #dce2ee;--brand: #2d6cdf;--brand-2: #1f55b8;--brand-soft: #e2ebfc;--sun: #ffc53d;--sun-ink: #3a2900;--ok: #1b7f4c;--ok-bg: #dcf3e5;--warn: #9a5a00;--warn-bg: #fdefcf;--bad: #c23b32;--bad-bg: #fbe1de;--info: #2457b0;--info-bg: #dfe8fa;--f-display: "Nunito", ui-rounded, system-ui, sans-serif;--f-body: "Nunito Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #11151e;--surface: #191f2c;--surface-2: #212839;--ink: #e6ebf4;--muted: #9ba6bb;--line: #2c3447;--brand: #3d78e3;--brand-2: #6b9bf2;--brand-soft: #1e2c4a;--ok: #5fcf93;--ok-bg: #16301f;--warn: #f2b85e;--warn-bg: #382a10;--bad: #f28c83;--bad-bg: #3c1b18;--info: #93b6f3;--info-bg: #1b2944;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.5}h1,h2,h3{font-family:var(--f-display);margin:0;font-weight:800;letter-spacing:-.01em;text-wrap:balance}h1{font-size:28px}h2{font-size:20px}h3{font-size:17px}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.num,.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.label{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--muted)}.err{color:var(--bad);font-weight:700;font-size:14px}.ok-msg{color:var(--ok);background:var(--ok-bg);padding:10px 12px;border-radius:10px;font-weight:700}.btn{border:1px solid var(--line);background:var(--surface);padding:9px 14px;border-radius:11px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:14px}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--brand);color:#fff;border-color:transparent}.btn.primary:hover{background:var(--brand-2)}.btn.sun{background:var(--sun);color:var(--sun-ink);border-color:transparent}.btn.ok{background:var(--ok);color:#fff;border-color:transparent}.btn.bad{color:var(--bad);border-color:var(--bad)}.btn.sm{padding:6px 10px;font-size:13px;border-radius:9px}.btn.block{width:100%;padding:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.link{border:0;background:none;color:var(--brand-2);font-weight:700;cursor:pointer;padding:4px}.chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.chip:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.c-ok{color:var(--ok);background:var(--ok-bg)}.c-warn{color:var(--warn);background:var(--warn-bg)}.c-bad{color:var(--bad);background:var(--bad-bg)}.c-info{color:var(--info);background:var(--info-bg)}.c-mute{color:var(--muted);background:var(--surface-2)}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:10px;align-items:center}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:9px 11px}textarea{min-height:90px;resize:vertical}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field>span{font-size:13px;font-weight:700}.field small{color:var(--muted);font-size:12px}.check{display:flex;gap:8px;align-items:center;font-size:14px;cursor:pointer}.check input{width:18px;height:18px;accent-color:var(--brand)}.acceso{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.acceso .card{width:100%;max-width:420px;padding:24px}.logo{width:40px;height:40px;border-radius:12px;background:var(--brand);color:var(--sun);display:grid;place-items:center;font-family:var(--f-display);font-weight:900;font-size:20px}.qr{background:#fff;border-radius:12px;padding:10px;width:200px;height:200px;align-self:center}.publica{margin:0 auto;padding:32px 20px 56px;display:flex;flex-direction:column;gap:14px}.publica h2{margin-top:10px}.publica ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.publica a{color:var(--brand-2);font-weight:700}.publica .marca{color:var(--ink);text-decoration:none}.publica footer{margin-top:24px;padding-top:14px;border-top:1px solid var(--line);gap:16px;font-size:13.5px}.app{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:230px minmax(0,1fr);gap:24px;padding:24px max(16px,env(safe-area-inset-right)) 56px max(16px,env(safe-area-inset-left));align-items:start}.side{display:flex;flex-direction:column;gap:2px;position:sticky;top:16px}.side a{text-decoration:none;padding:9px 12px;border-radius:10px;font-weight:700;color:var(--muted);display:flex;justify-content:space-between;align-items:center}.side a:hover{background:var(--surface)}.side a.active{background:var(--brand-soft);color:var(--brand-2)}.badge{background:var(--sun);color:var(--sun-ink);font-size:11.5px;font-weight:800;border-radius:999px;padding:1px 7px}.escuela{padding:4px 12px 14px;border-bottom:1px solid var(--line);margin-bottom:8px;font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:6px}.escuela b{color:var(--ink);font-family:var(--f-display);font-size:15px}.main{display:flex;flex-direction:column;gap:18px;min-width:0}.head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;min-width:0}.kpi .v{font-family:var(--f-display);font-size:26px;font-weight:900;margin-top:2px}.kpi .s{font-size:12.5px;color:var(--muted);font-family:var(--f-mono)}.kpi.alerta{border-color:var(--sun);box-shadow:inset 0 4px 0 var(--sun)}.barra{height:12px;background:var(--surface-2);border-radius:6px;overflow:hidden}.barra>div{height:100%;background:var(--brand);border-radius:6px}.tabla{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.tabla table{width:100%;border-collapse:collapse;font-size:14px;min-width:680px}.tabla th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}.tabla td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.tabla tr:last-child td{border-bottom:0}.tabla .r{text-align:right}.tabla tr.clic{cursor:pointer}.tabla tr.clic:hover td{background:var(--surface-2)}.filtros{display:flex;gap:8px;flex-wrap:wrap}.filtros>*{width:auto}.filtros input[type=search]{flex:1 1 240px}.paginas{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13.5px}.vacio{padding:28px;text-align:center;color:var(--muted);border:1.5px dashed var(--line);border-radius:14px}.pago{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:16px}.pago dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 16px;margin:10px 0 0}.pago dt{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.pago dd{margin:0;overflow-wrap:anywhere}.acciones{display:flex;flex-direction:column;gap:8px}.alumno-fila{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 90px 100px;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}.cajon{position:fixed;top:0;right:0;bottom:0;left:0;background:#141c2d73;display:flex;justify-content:flex-end;z-index:30}.cajon>div{background:var(--bg);width:min(640px,100%);height:100%;overflow-y:auto;padding:24px 20px;display:flex;flex-direction:column;gap:14px}.log div{display:grid;grid-template-columns:150px 180px minmax(0,1fr);gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:13.5px}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:20px;background:var(--ink);color:var(--bg);padding:11px 16px;border-radius:12px;font-weight:700;z-index:60;box-shadow:0 8px 24px #00000040;max-width:min(92vw,520px)}@media (max-width: 900px){.app{grid-template-columns:1fr}.side{position:static;flex-direction:row;flex-wrap:wrap}.side a{white-space:nowrap}.escuela{flex:0 0 100%}.escuela .link{text-decoration:none}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.grid2,.grid3,.pago{grid-template-columns:1fr}.pago dl{grid-template-columns:repeat(2,minmax(0,1fr))}.acciones{flex-direction:row;flex-wrap:wrap}.alumno-fila{grid-template-columns:1fr 1fr}.log div{grid-template-columns:1fr;gap:2px}}
