:root{--az:#1a3a6b;--az2:#2356a0;--az3:#3a7bd5;--az-bg:#e8f0fb;--az-mid:#b8d0f5;--bg:#f4f7fc;--borde:#cdd8ee;--txt:#1e2d45;--sec:#5a6e8a;--ok:#1a7a3a;--ok-bg:#e6f4ec;--warn:#b85a00;--warn-bg:#fef0e0;--err:#b02020;color:var(--txt);font-family:Segoe UI,system-ui,Arial,sans-serif;font-size:14px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);min-height:100vh}h1{font-size:19px}h2{color:var(--az);margin-bottom:4px;font-size:16px}.sub{opacity:.8;font-size:12px}.nota{color:var(--sec);margin-bottom:12px;font-size:12px}.error{color:var(--err);background:#fde8e8;border:1px solid #e8a0a0;border-radius:8px;margin:12px 0;padding:10px 14px}.cargando,.vacio{text-align:center;color:var(--sec);padding:30px}.cab{background:linear-gradient(135deg, var(--az), var(--az2) 60%, var(--az3));color:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:14px 22px;display:flex}.cab nav{gap:6px;display:flex}.cab nav button{color:#fff;cursor:pointer;background:#ffffff24;border:1px solid #ffffff4d;border-radius:8px;padding:6px 15px;font-family:inherit;font-weight:600}.cab nav button.on{background:#ffffff4d}main{max-width:1100px;margin:22px auto;padding:0 14px 60px}.card{border:1px solid var(--borde);background:#fff;border-radius:10px;padding:18px 22px;box-shadow:0 2px 14px #1a3a6b1a}.login-wrap{place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{border:1px solid var(--borde);background:#fff;border-radius:12px;flex-direction:column;gap:14px;width:100%;max-width:380px;padding:30px;display:flex;box-shadow:0 6px 24px #1a3a6b2e}.login-card h1{color:var(--az)}.login-card .sub{color:var(--sec)}.login-card label{color:var(--sec);flex-direction:column;gap:5px;font-size:12px;font-weight:600;display:flex}input[type=email],input[type=password],.buscador{border:1.5px solid var(--borde);border-radius:8px;height:38px;padding:0 11px;font-family:inherit;font-size:14px}input:focus{border-color:var(--az3);outline:none}.btn{background:linear-gradient(135deg, var(--az), var(--az2));color:#fff;cursor:pointer;border:0;border-radius:9px;height:40px;font-family:inherit;font-weight:600}.btn:disabled{opacity:.6}.fila{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:12px;display:flex}.buscador{flex:1;min-width:200px}.check{color:var(--sec);align-items:center;gap:6px;font-size:13px;display:flex}.tabla{border-collapse:collapse;width:100%}.tabla th{background:var(--az-bg);color:var(--az2);text-transform:uppercase;text-align:left;padding:8px 10px;font-size:11px}.tabla td{border-bottom:1px solid #eef2f9;padding:8px 10px}.tabla tr:hover td{background:#f0f4fa}.c{text-align:center}.barra{vertical-align:middle;background:#dde6f5;border-radius:3px;width:90px;height:6px;display:inline-block;overflow:hidden}.barra span{background:var(--az3);height:100%;display:block}.dos-col{grid-template-columns:270px 1fr;align-items:start;gap:16px;display:grid}@media (width<=800px){.dos-col{grid-template-columns:1fr}}.lista ul{max-height:560px;margin-top:10px;list-style:none;overflow-y:auto}.lista .buscador{width:100%;margin-top:8px}.lista li button{text-align:left;cursor:pointer;width:100%;color:var(--txt);background:0 0;border:0;border-radius:6px;padding:7px 9px;font-family:inherit;font-size:13px}.lista li button:hover{background:var(--az-bg)}.lista li button.sel{background:var(--az-bg);color:var(--az);font-weight:700}.horario{overflow-x:auto}.rejilla{border-collapse:separate;border-spacing:4px;table-layout:fixed;width:100%;min-width:560px}.rejilla th{text-transform:uppercase;color:var(--az2);padding:6px 4px;font-size:11px}.rejilla tbody th{width:54px}.celda{vertical-align:top;border:1px solid #0000;border-radius:7px;height:56px;padding:5px 7px;font-size:12px}.celda.vacia{background:#f6f8fc}.celda.recreo{background:#eee}.celda.clase{background:#dbe9fb;border-color:#9dbdf0 #9dbdf0 #9dbdf0 #2356a0;border-left-style:solid;border-left-width:5px}.celda.guardia{color:#fff;background:#1a7a3a;border-color:#14602d}.celda.guardia .g,.celda.guardia .a{color:#fff}.celda.otro{color:#55606f;background:repeating-linear-gradient(45deg,#eceff3,#eceff3 6px,#dfe3e9 6px 12px);border-color:#b4bcc8}.celda.reunion,.celda.tutoria{color:#8a4300;background:#fde3c4;border-color:#e8a85c}.celda .g{font-weight:600}.celda .a{color:var(--sec);font-size:11px}.fila-recreo .celda{height:22px}.celda.editable{cursor:pointer}.celda.editable:hover{outline:2px solid var(--az3)}.cab-prof{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.acc-prof{gap:6px;display:flex}.btn.peq{height:30px;margin-top:8px;padding:0 12px;font-size:12px}.btn.sec{color:var(--az2);border:1.5px solid var(--az-mid);background:#fff}.btn.peligro{color:var(--err);background:#fde8e8;border:1.5px solid #e8a0a0}.nuevo{background:var(--az-bg);border-radius:8px;flex-direction:column;gap:6px;margin-top:8px;padding:10px;display:flex}.nuevo input{border:1.5px solid var(--borde);border-radius:7px;height:34px;padding:0 9px;font-family:inherit}.acciones{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.acciones .btn{padding:0 18px}.modal-fondo{z-index:50;background:#14233c80;place-items:center;padding:14px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:100%;max-width:560px;max-height:90vh;padding:22px 24px;overflow-y:auto;box-shadow:0 10px 40px #0000004d}.campo{color:var(--sec);flex-direction:column;gap:6px;margin-top:14px;font-size:12px;font-weight:600;display:flex}.campo select{border:1.5px solid var(--borde);border-radius:8px;height:38px;padding:0 10px;font-family:inherit;font-size:14px}.chips{flex-wrap:wrap;gap:5px;display:flex}.chip{border:1.5px solid var(--borde);color:var(--txt);cursor:pointer;background:#fff;border-radius:16px;padding:4px 11px;font-family:inherit;font-size:12px}.chip:hover{border-color:var(--az3)}.chip.on{background:var(--az2);border-color:var(--az2);color:#fff}.aviso{background:var(--warn-bg);color:var(--warn);border:1px solid #e8c080;border-radius:8px;margin-top:10px;padding:8px 11px;font-size:12px}.leyenda{color:var(--sec);flex-wrap:wrap;gap:14px;margin:0 0 12px;font-size:12px;display:flex}.leyenda span{align-items:center;gap:6px;display:inline-flex}.leyenda i{border:1px solid #0000;border-radius:4px;width:22px;height:14px;display:inline-block}.leyenda .l-clase{background:#dbe9fb;border-color:#9dbdf0 #9dbdf0 #9dbdf0 #2356a0;border-left-style:solid;border-left-width:5px}.leyenda .l-guardia{background:#1a7a3a;border-color:#14602d}.leyenda .l-reunion{background:#fde3c4;border-color:#e8a85c}.leyenda .l-otro{background:repeating-linear-gradient(45deg,#eceff3,#eceff3 4px,#dfe3e9 4px 8px);border-color:#b4bcc8}.leyenda .l-libre{background:#f6f8fc;border-color:#cdd8ee}.sep{margin-top:14px}.fecha{border:1.5px solid var(--borde);border-radius:8px;height:38px;padding:0 10px;font-family:inherit;font-size:14px}.sel-ancho{border:1.5px solid var(--borde);background:#fff;border-radius:8px;min-width:240px;max-width:100%;height:36px;padding:0 8px;font-family:inherit;font-size:13px}select{font-family:inherit}.fila select:not(.sel-ancho){border:1.5px solid var(--borde);border-radius:8px;height:36px;padding:0 8px}.ok-msg{background:var(--ok-bg);color:var(--ok);cursor:pointer;border:1px solid #8fcca8;border-radius:8px;margin:0 0 12px;padding:10px 14px}.btn.naranja{background:linear-gradient(135deg,#b85a00,#d97000)}.btn.verde{background:linear-gradient(135deg,#1a7a3a,#2e9e52)}.btn:disabled{opacity:.5;cursor:not-allowed}.resumen{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.resumen .acc-prof{flex-wrap:wrap}.resumen .btn.peq{margin-top:0}.insignia{background:var(--ok-bg);color:var(--ok);border-radius:14px;padding:2px 11px;font-size:12px;font-weight:700}.bloque-hora h3{color:var(--az2);text-transform:uppercase;letter-spacing:.6px;margin-bottom:8px;font-size:13px}.cubre .desc{color:var(--sec);font-size:12px;font-style:italic}.sin{color:var(--err)}.btn-x{width:26px;height:26px;color:var(--err);cursor:pointer;background:#fde8e8;border:1px solid #e8a0a0;border-radius:6px}.btn-x:hover:not(:disabled){background:#f9cfcf}.lapiz{color:var(--az3);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:14px}.lapiz:hover{color:var(--az)}.peque{color:var(--sec);font-size:11px}.edit-g{align-items:center;gap:4px;display:inline-flex}.edit-g input{border:1.5px solid var(--az3);border-radius:6px;width:64px;height:28px;padding:0 6px;font-family:inherit}.btn-x.ok{background:var(--ok-bg);color:var(--ok);border-color:#8fcca8}.modal.ancho{max-width:860px}.pegar{border:1.5px solid var(--borde);resize:vertical;border-radius:8px;width:100%;margin:8px 0 12px;padding:10px;font-family:inherit;font-size:13px}.campo-in{color:var(--sec);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.campo-in select,.tabla-scroll select{border:1.5px solid var(--borde);border-radius:7px;max-width:100%;height:34px;padding:0 8px;font-family:inherit;font-size:13px}.resumen-imp{color:var(--sec);flex-wrap:wrap;gap:18px;margin:12px 0 6px;font-size:13px;display:flex}.resumen-imp .alerta{color:var(--warn)}.tabla-scroll{border:1px solid var(--borde);border-radius:8px;max-height:340px;overflow-y:auto}.fila-warn td{background:var(--warn-bg)}.enlace-btn{align-items:center;margin-top:0;text-decoration:none;display:inline-flex}.btn.peq.enlace-btn{margin-top:0}.tv{color:#fff;background:#0f2447;flex-direction:column;gap:clamp(12px,1.6vw,24px);min-height:100vh;padding:clamp(14px,2.2vw,36px);display:flex}.tv-msg{text-align:center;opacity:.9;margin:auto;font-size:24px;line-height:1.5}.tv-cab{border-bottom:2px solid #fff3;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:14px;display:flex}.tv-cab h1{font-size:clamp(24px,3.4vw,52px)}.tv-cab p{opacity:.75;font-size:clamp(14px,1.5vw,22px)}.tv-fecha{text-transform:capitalize;flex-direction:column;align-items:flex-end;display:flex}.tv-fecha strong{font-size:clamp(18px,2.4vw,38px)}.tv-fecha span{color:#8fb8f5;font-size:clamp(20px,2.8vw,44px);font-weight:300}.tv-aus{background:#ffffff12;border-radius:14px;padding:clamp(12px,1.6vw,24px)}.tv-aus h2,.tv-hora h3{text-transform:uppercase;letter-spacing:1px;color:#8fb8f5;margin-bottom:10px;font-size:clamp(14px,1.6vw,24px)}.tv-aus ul{grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:6px 24px;font-size:clamp(16px,1.9vw,30px);list-style:none;display:grid}.tv-aus li span{opacity:.7;font-size:.8em}.tv-horas{flex:1;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));align-content:start;gap:clamp(10px,1.4vw,20px);display:grid}.tv-hora{color:#17304f;background:#fff;border-radius:14px;padding:clamp(12px,1.4vw,22px)}.tv-hora h3{color:#2356a0}.tv-hora ul{flex-direction:column;gap:9px;font-size:clamp(15px,1.7vw,27px);line-height:1.25;list-style:none;display:flex}.tv-hora li{border-bottom:1px dashed #cdd8ee;padding-bottom:8px}.tv-hora li:last-child{border-bottom:0}.tv-hora small{color:#5a6e8a}.tv-flecha{color:#2356a0;font-weight:700}.tv-sin{color:#b02020;font-weight:600}.tv-tarea{color:#b85a00}.tv-vacio{opacity:.75;font-size:clamp(16px,1.8vw,26px)}.tv-vacio.grande{text-align:center;grid-column:1/-1;padding:40px 0}.tv-aviso{color:#6b3a00;white-space:pre-line;background:#fef0e0;border-radius:12px;padding:clamp(10px,1.4vw,20px) clamp(14px,1.8vw,28px);font-size:clamp(14px,1.6vw,24px);font-weight:600}.th-orden{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.th-orden:hover{background:#dbe7f8}.th-orden .flecha{opacity:.35;margin-left:5px;font-size:10px}.th-orden.activo .flecha{opacity:1;color:var(--az2)}.subtabs{border-bottom:2px solid var(--az-bg);gap:6px;margin-bottom:14px;display:flex}.subtabs button{color:var(--sec);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;margin-bottom:-2px;padding:8px 16px;font-family:inherit;font-size:14px;font-weight:600}.subtabs button.on{color:var(--az2);border-bottom-color:var(--az2)}.dia-sel{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.dia-sel button{border:2px solid var(--borde);min-width:90px;height:40px;color:var(--sec);cursor:pointer;background:#fff;border-radius:10px;flex:1;font-family:inherit;font-weight:600}.dia-sel button.on{background:linear-gradient(135deg, var(--az), var(--az2));border-color:var(--az2);color:#fff}.bloque-tramo{border:1px solid var(--borde);border-radius:10px;margin-bottom:12px;overflow:hidden}.bt-cab{background:linear-gradient(90deg, var(--az), var(--az2));color:#fff;justify-content:space-between;align-items:center;padding:8px 14px;font-size:13px;display:flex}.bt-cab span{opacity:.8;font-size:12px}.bloque-tramo tr.primero td{background:var(--az-bg);font-weight:700}.fila.dos{grid-template-columns:1fr 1fr;gap:12px;display:grid}.campo .texto,.texto{border:1.5px solid var(--borde);border-radius:8px;width:100%;height:38px;padding:0 10px;font-family:inherit;font-size:14px}.cal-nav{align-items:center;gap:8px;margin-bottom:10px;display:flex}.cal-nav .btn.peq{margin-top:0}.cal-mes{text-align:center;text-transform:capitalize;min-width:170px;color:var(--az);font-size:16px}.leyenda-mot{flex-wrap:wrap;gap:6px;margin:4px 0 6px;display:flex}.ch-mot{border:1.5px solid var(--borde);cursor:pointer;color:var(--txt);background:#fff;border-radius:16px;align-items:center;gap:6px;padding:3px 11px;font-family:inherit;font-size:12px;display:inline-flex}.ch-mot i{border-radius:50%;width:11px;height:11px;display:inline-block}.ch-mot i.rayas{background:repeating-linear-gradient(45deg,#b4bcc8,#b4bcc8 2px,#eceff3 2px 4px);border:1px solid #b4bcc8}.ch-mot b{background:var(--az-bg);border-radius:9px;padding:0 7px;font-size:11px}.ch-mot.on{background:var(--az2);border-color:var(--az2);color:#fff}.ch-mot.on b{color:#fff;background:#ffffff40}.ch-mot.pendiente{border-style:dashed}.alerta-txt{color:var(--warn);font-weight:600}.calendario{border:1px solid var(--borde);border-radius:10px;overflow:hidden}.cal-cab,.cal-sem{grid-template-columns:repeat(5,1fr);display:grid}.cal-cab span{background:var(--az-bg);color:var(--az2);text-transform:uppercase;text-align:center;padding:7px;font-size:11px;font-weight:700}.cal-dia{cursor:pointer;border-top:1px solid #eef2f9;border-left:1px solid #eef2f9;flex-direction:column;gap:3px;min-width:0;min-height:96px;padding:4px;display:flex}.cal-dia:first-child{border-left:0}.cal-dia:hover{background:#f6f9ff}.cal-dia.fuera{cursor:default;opacity:.5;background:#f6f8fc}.cal-dia.fuera:hover{background:#f6f8fc}.cal-dia.hoy .num{background:var(--az2);color:#fff;border-radius:50%}.cal-dia .num{color:var(--sec);align-self:flex-start;place-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:inline-grid}.chip-aus{color:#fff;text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border:0;border-radius:5px;padding:2px 6px;font-family:inherit;font-size:11px;overflow:hidden}.chip-aus:hover{filter:brightness(.9)}.chip-aus.sin{color:#55606f;background:repeating-linear-gradient(45deg,#eceff3,#eceff3 5px,#dfe3e9 5px 10px);border:1px dashed #9aa3b0}.tabla-scroll.alta{max-height:520px}.tabla.excel th{z-index:1;position:sticky;top:0}.tabla.excel td{white-space:nowrap;padding:5px 10px}.tabla.excel .nota-col{white-space:normal;max-width:260px;color:var(--sec)}.sel-motivo{border:1.5px solid var(--borde);background:#fff;border-radius:6px;min-width:190px;height:30px;padding:0 6px;font-family:inherit;font-size:13px}.lista-motivos{flex-direction:column;gap:7px;margin:12px 0;list-style:none;display:flex}.lista-motivos li{align-items:center;gap:8px;display:flex}.lista-motivos li.inactivo{opacity:.55}.lista-motivos input[type=color],.fila input[type=color]{border:1.5px solid var(--borde);cursor:pointer;background:#fff;border-radius:7px;width:38px;height:34px;padding:2px}.tabla-scroll select{max-width:100%}.celda .multi+.multi{border-top:1px dotted #0003;margin-top:3px;padding-top:3px}.dos-iguales{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}@media (width<=800px){.dos-iguales{grid-template-columns:1fr}}.lista-cat{flex-direction:column;gap:5px;max-height:480px;margin-top:10px;list-style:none;display:flex;overflow-y:auto}.lista-cat li{align-items:center;gap:6px;display:flex}.lista-cat .texto{height:34px}.titulo-impresion{display:none}@media print{@page{size:landscape;margin:12mm}body{background:#fff}.cab,.no-print,.modal-fondo{display:none!important}main{max-width:none;margin:0;padding:0}.card{box-shadow:none;border:0;padding:0}.titulo-impresion{color:#000;margin:0 0 10px;font-size:18px;display:block}.celda,.celda *{-webkit-print-color-adjust:exact;print-color-adjust:exact}.rejilla{min-width:0}.celda{height:62px}}
