/* CARIP ASISTENCIA V51 - Hoja unificada de producción.
   Compatibilidad histórica: el primer bloque procede de app.css.
   Componentes Tailwind v4 compilados: segundo bloque.
   No eliminar estilos históricos hasta validar todas las vistas. */
:root{--bg:#f4f7fb;--card:#fff;--text:#0f1f3d;--muted:#718096;--line:#e6ebf2;--nav:#071a35;--nav2:#123b6d;--accent:#14b8a6;--accent2:#0f766e;--shadow:0 12px 34px rgba(15,31,61,.07);--input:#fff}html[data-theme=dark]{--bg:#07111f;--card:#0e1c2f;--text:#edf4ff;--muted:#94a3b8;--line:#203149;--nav:#050e1c;--nav2:#102c52;--input:#0b1728;--shadow:0 12px 34px rgba(0,0,0,.2)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}a{color:inherit;text-decoration:none}button,input,select{font:inherit}aside{position:fixed;inset:0 auto 0 0;width:250px;background:linear-gradient(180deg,var(--nav),var(--nav2));color:#fff;padding:25px 16px;display:flex;flex-direction:column;z-index:30}.logo{display:flex;align-items:center;gap:12px;font-size:18px;padding:0 8px 28px}.logo b{display:block;font-size:11px;letter-spacing:2px;color:#5eead4}.logo small{display:block;color:#9fb3ce;font-size:10px;margin-top:4px}.logoicon{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,#2dd4bf,#0ea5e9);display:grid;place-items:center;font-weight:800;font-size:20px;box-shadow:0 8px 20px #0004}nav{display:flex;flex-direction:column;gap:6px}nav a{padding:12px 13px;border-radius:11px;display:flex;gap:12px;align-items:center;color:#dce8f8}nav a i{font-style:normal;width:20px;text-align:center;color:#7dd3fc}nav a:hover,nav a.on{background:#ffffff16;color:#fff}.navlabel{font-size:10px;letter-spacing:1.5px;color:#7290b5;margin:22px 12px 5px}.sidefoot{margin-top:auto;padding:14px 10px;color:#c7d8ed;font-size:12px}.sidefoot small{display:block;margin-top:7px;color:#7592b5}.dot{display:inline-block;width:7px;height:7px;background:#34d399;border-radius:50%;margin-right:5px}.shell{margin-left:250px;min-height:100vh}.shell>header{height:76px;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 30px;position:sticky;top:0;z-index:20}.desktop-menu{display:none}.headtitle{display:flex;flex-direction:column}.headtitle span{font-size:12px;color:var(--muted);margin-top:4px}.head-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.iconbtn,.notif{border:1px solid var(--line);background:var(--card);color:var(--text);width:40px;height:40px;border-radius:12px;display:grid;place-items:center;cursor:pointer}.notif{position:relative}.notif em{position:absolute;right:-3px;top:-5px;background:#ef4444;color:#fff;font-size:9px;border-radius:10px;padding:2px 5px;font-style:normal}.profilechip{display:flex;align-items:center;gap:9px;padding-left:6px}.profilechip>span:last-child{display:flex;flex-direction:column}.profilechip small{font-size:10px;color:var(--muted);margin-top:2px}.avatar{width:39px;height:39px;border-radius:12px;background:linear-gradient(135deg,#14b8a6,#2563eb);color:#fff;display:grid;place-items:center;font-weight:800}main{padding:30px;max-width:1500px;margin:auto}.title{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.title h1{font-size:27px;margin:4px 0 5px}.title p{color:var(--muted);margin:0}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:800;color:var(--accent2)}.live{background:#dff8ee;color:#087a56;border-radius:30px;padding:10px 14px;font-size:12px}.primary{border:0;background:linear-gradient(135deg,#0f766e,#0ea5a5);color:#fff;border-radius:11px;padding:11px 17px;cursor:pointer;font-weight:700;box-shadow:0 7px 18px #0f766e2b}.secondary{border:1px solid var(--line);background:var(--card);padding:10px 16px;border-radius:11px}.full{width:100%}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.stat,.card{background:var(--card);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow)}.stat{padding:20px;position:relative;min-height:132px}.stat span{display:block;color:var(--muted);font-size:12px}.stat strong{display:block;font-size:29px;margin:11px 0 5px}.stat small{color:var(--muted)}.staticon{position:absolute;right:17px;top:17px;width:39px;height:39px;border-radius:12px;background:#14b8a615;color:#0f766e;display:grid;place-items:center;font-weight:800}.dashboardgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.dashboardgrid.lower{grid-template-columns:1.3fr .7fr}.card{padding:20px}.sectiontitle{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.sectiontitle h2{font-size:15px;margin:0}.sectiontitle span,.sectiontitle a{font-size:11px;color:var(--muted)}.chartbox{height:260px}.row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}.row:last-child{border:0}.school{display:flex;align-items:center;gap:10px}.school>span{width:35px;height:35px;border-radius:10px;background:#0f766e15;color:#0f766e;display:grid;place-items:center;font-weight:800}.school div{display:flex;flex-direction:column}.school small{color:var(--muted);margin-top:3px}.feature{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.feature:last-child{border:0}.feature i{font-style:normal;width:26px;height:26px;background:#dcfce7;color:#15803d;border-radius:8px;display:grid;place-items:center}.feature span{display:flex;flex-direction:column}.feature small{color:var(--muted);margin-top:3px}.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:13px}.toolbar input{max-width:430px}.toolbar span{margin-left:auto;color:var(--muted);font-size:12px}.tablewrap{overflow:auto;padding:0}table{border-collapse:collapse;width:100%;min-width:850px}th,td{text-align:left;padding:14px 17px;border-bottom:1px solid var(--line)}th{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);background:var(--bg)}td{font-size:13px}.badge{padding:6px 9px;border-radius:20px;font-size:10px;font-weight:700;background:#e9eef5}.s-active{background:#dcfce7;color:#15803d}.s-trial{background:#dbeafe;color:#1d4ed8}.s-suspended,.s-expired,.s-cancelled{background:#fee2e2;color:#b91c1c}.s-expiring{background:#fef3c7;color:#a16207}.actions{display:flex;gap:7px}.actions a,.actions button{width:32px;height:32px;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:9px;display:grid;place-items:center;cursor:pointer}.actions form{margin:0}dialog{width:min(820px,94vw);border:0;border-radius:20px;background:var(--card);color:var(--text);box-shadow:0 30px 90px #0006;padding:0}dialog::backdrop{background:#071a3588;backdrop-filter:blur(3px)}dialog form{padding:24px}.modalhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modalhead h2{margin:4px 0}.close{font-size:27px;color:var(--muted)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{font-size:12px;font-weight:600;color:var(--muted);display:flex;flex-direction:column;gap:7px}input,select{width:100%;border:1px solid var(--line);background:var(--input);color:var(--text);border-radius:10px;padding:11px 12px;outline:none}input:focus,select:focus{border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a618}.checks{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:10px 0 20px}.checks label{flex-direction:row;align-items:center;border:1px solid var(--line);padding:10px;border-radius:10px;color:var(--text)}.checks input{width:auto}.modalactions{display:flex;justify-content:flex-end;gap:10px}.profilegrid{display:grid;grid-template-columns:300px 1fr;gap:18px}.profilehero{text-align:center;padding:38px 20px}.bigavatar{width:90px;height:90px;border-radius:28px;background:linear-gradient(135deg,#14b8a6,#2563eb);color:#fff;display:grid;place-items:center;font-size:36px;font-weight:800;margin:0 auto 18px}.profilehero h2{margin:0}.profilehero p{color:var(--muted)}.formcard h2{margin-top:0}.formcard .primary{margin-top:18px}.switchrow{display:flex;justify-content:space-between;align-items:center;padding:17px 0;border-bottom:1px solid var(--line)}.switchrow div{display:flex;flex-direction:column;gap:4px}.switchrow small{color:var(--muted)}.switch{position:relative}.switch input{display:none}.switch span{display:block;width:46px;height:25px;border-radius:20px;background:#cbd5e1;position:relative}.switch span:after{content:'';position:absolute;width:19px;height:19px;background:#fff;border-radius:50%;left:3px;top:3px;transition:.2s}.switch input:checked+span{background:#14b8a6}.switch input:checked+span:after{left:24px}.toast{background:#dcfce7;color:#166534;padding:12px 15px;border-radius:11px;margin-bottom:15px}.empty,.emptybig{text-align:center;color:var(--muted);padding:50px 20px}.emptyicon{font-size:42px}.mobilebar{display:none}.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,#0f766e30,transparent 30%),linear-gradient(135deg,var(--bg),#dceafa);padding:20px}.login-card{width:min(430px,100%);background:var(--card);border:1px solid var(--line);border-radius:24px;padding:38px;box-shadow:0 25px 70px #071a3520;text-align:center}.login-card h1{margin:10px 0 5px}.login-card p{color:var(--muted);margin-bottom:24px}.login-card form{text-align:left}.login-card label{margin:12px 0}.login-card small{display:block;color:var(--muted);margin-top:22px}.brand-mark{width:58px;height:58px;margin:auto;border-radius:18px;background:linear-gradient(135deg,#14b8a6,#2563eb);color:#fff;display:grid;place-items:center;font-size:25px;font-weight:800}.alert{background:#fee2e2;color:#991b1b;padding:10px;border-radius:9px}.theme-float{position:fixed;right:20px;top:20px;width:42px;height:42px;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:13px;cursor:pointer}@media(max-width:1000px){.stats{grid-template-columns:1fr 1fr}.dashboardgrid,.dashboardgrid.lower{grid-template-columns:1fr}.profilegrid{grid-template-columns:1fr}.profilehero{padding:25px}.desktop-menu{display:block;border:0;background:none;color:var(--text);font-size:20px;margin-right:15px;cursor:pointer}aside{transform:translateX(-100%);transition:.25s}body.sidebar-open aside{transform:translateX(0)}.shell{margin-left:0}}@media(max-width:650px){.mobilebar{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 15px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:25}.mobilebar button{border:0;background:none;color:var(--text);font-size:20px}.shell>header{display:none}main{padding:18px 14px}.title{align-items:flex-start;gap:14px}.title h1{font-size:23px}.title .primary{white-space:nowrap}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:15px;min-height:115px}.stat strong{font-size:24px}.staticon{display:none}.grid2{grid-template-columns:1fr}.checks{grid-template-columns:1fr 1fr}.toolbar{flex-direction:column;align-items:stretch}.toolbar span{margin:0}.chartbox{height:220px}.login-card{padding:28px 22px}}@media(max-width:430px){.stats{grid-template-columns:1fr}.checks{grid-template-columns:1fr}.title{flex-direction:column}.title .primary{width:100%}}/* V3 Super Admin refinements */
.brandimg{width:42px;height:42px;object-fit:contain;border-radius:12px;background:#fff;padding:4px}.avatar.photo,.bigavatar.photo{object-fit:cover;padding:0}.avatar.photo{width:38px;height:38px}.bigavatar.photo{width:108px;height:108px;border-radius:28px}.logouticon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;text-decoration:none;border:1px solid var(--border);color:var(--text)}.plangrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.plancard{padding:24px}.planhead{display:flex;justify-content:space-between;align-items:center}.planhead a{text-decoration:none;font-size:20px}.plancard h2{margin:18px 0 5px}.plancard p{min-height:40px;color:var(--muted)}.price{font-size:32px;font-weight:800;margin-top:20px}.price small{font-size:13px;color:var(--muted)}.yearprice{color:var(--muted);margin-bottom:18px}.planlimits{display:grid;gap:9px;border-top:1px solid var(--border);padding-top:16px}.notice{background:rgba(14,165,164,.08);border:1px solid rgba(14,165,164,.18);border-radius:16px;padding:15px 18px;margin:18px 0;display:grid;gap:5px}.notice small{color:var(--muted)}.channelgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}.channel{border:1px solid var(--border);border-radius:18px;padding:20px;display:grid;gap:8px}.channel.active{background:rgba(14,165,164,.06);border-color:rgba(14,165,164,.25)}.channel span,.channel p{color:var(--muted);margin:0}.channel strong{color:#059669}.wide{margin-top:18px}.chartbox.tall{height:390px}.finance-stats{grid-template-columns:repeat(3,1fr)}.full{grid-column:1/-1}textarea{min-height:90px;resize:vertical}input[type=file]{padding:9px;background:var(--surface)}
.loginbody{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:var(--bg)}.loginvisual{min-height:100vh;background:radial-gradient(circle at 25% 20%,rgba(35,211,203,.22),transparent 30%),linear-gradient(145deg,#06152d,#0c3767 60%,#0c7a7a);display:flex;align-items:flex-end;padding:8vw;color:white}.visualcopy{max-width:650px;margin-bottom:7vh}.visualcopy h1{font-size:clamp(38px,5vw,68px);line-height:1.02;margin:15px 0}.visualcopy p{font-size:18px;color:#d9e9f8;max-width:560px}.eyebrow.light{color:#5eead4}.loginfeatures{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.loginfeatures span{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);padding:9px 13px;border-radius:999px}.loginpanel{display:grid;place-items:center;position:relative;padding:30px}.login-theme{position:absolute;right:30px;top:30px}.loginbox{width:min(430px,100%);background:var(--surface);border:1px solid var(--border);box-shadow:0 24px 70px rgba(2,12,27,.12);border-radius:26px;padding:36px}.loginbrand{display:flex;align-items:center;gap:13px;margin-bottom:38px}.loginbrand img{width:54px;height:54px;object-fit:contain}.loginbrand div{display:grid}.loginbrand small{color:var(--muted)}.loginbox h2{font-size:30px;margin-bottom:5px}.loginbox>p{color:var(--muted);margin-top:0;margin-bottom:26px}.loginbox label{display:grid;gap:7px;margin:15px 0;font-weight:600}.loginbtn{width:100%;margin-top:10px}.secure{display:block;text-align:center;color:var(--muted);margin-top:20px}.errorbox{background:#fff1f2;color:#be123c;border:1px solid #fecdd3;padding:12px;border-radius:12px}.logoicon.big{width:54px;height:54px}
@media(max-width:1000px){.plangrid{grid-template-columns:1fr 1fr}.channelgrid{grid-template-columns:1fr}.loginbody{grid-template-columns:1fr}.loginvisual{display:none}.loginpanel{min-height:100vh}.finance-stats{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:700px){.plangrid,.finance-stats{grid-template-columns:1fr}.loginbox{padding:24px;border-radius:20px}.head-actions .profilechip span:last-child{display:none}.logouticon{display:none}}
@media print{aside,header,.mobilebar,.title .primary,.title .secondary{display:none!important}.shell{margin:0!important}.shell main{padding:0!important;background:white!important}}
/* V4 UX, tablas y validación en vivo */
.card,.stat,.plancard{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.card:hover,.stat:hover,.plancard:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(15,31,61,.10)}
.smart-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 14px}.searchbox{flex:1;min-width:260px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:0 12px}.searchbox input{border:0;box-shadow:none!important;padding-left:0}.smart-toolbar select{width:auto;min-width:90px}.table-count{margin-left:auto;color:var(--muted);font-size:12px}.table-pager{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:12px 2px 20px;color:var(--muted)}.table-pager button{width:36px;height:34px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text);cursor:pointer}.table-pager button:disabled{opacity:.35;cursor:not-allowed}
.field-status{font-size:10px;font-weight:500;color:var(--muted)}.field-status.ok{color:#059669}.field-status.bad{color:#dc2626}.is-valid{border-color:#10b981!important;box-shadow:0 0 0 3px rgba(16,185,129,.10)!important}.is-invalid{border-color:#ef4444!important;box-shadow:0 0 0 3px rgba(239,68,68,.10)!important}
input::placeholder,textarea::placeholder{color:#9aa8ba}.actions a,.actions button{transition:.18s}.actions a:hover,.actions button:hover{transform:translateY(-2px);border-color:#14b8a6;color:#0f766e;box-shadow:0 7px 16px rgba(20,184,166,.12)}
@media(max-width:700px){.smart-toolbar{align-items:stretch}.searchbox{min-width:100%}.smart-toolbar select,.smart-toolbar .secondary{flex:1}.table-count{width:100%;margin-left:0}.table-pager{justify-content:center}}

/* V5 PREMIUM UI — CARIP Asistencia */
:root{--radius:18px;--radius-sm:13px;--focus:rgba(45,212,191,.16)}
body{background:linear-gradient(135deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 92%,#dff7f5 8%) 100%)}
aside{background:linear-gradient(180deg,#06162f 0%,#0b2d56 58%,#0b4770 100%);box-shadow:18px 0 50px rgba(4,18,40,.08)}
nav a{position:relative;overflow:hidden;transition:.22s ease;border:1px solid transparent}nav a:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(45,212,191,.14),transparent);opacity:0;transition:.22s}nav a:hover:before,nav a.on:before{opacity:1}nav a:hover,nav a.on{transform:translateX(3px);border-color:rgba(255,255,255,.08);background:rgba(255,255,255,.09)}
.shell>header{background:color-mix(in srgb,var(--card) 90%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.card,.stat,.plancard{border-radius:22px;border-color:color-mix(in srgb,var(--line) 76%,transparent);box-shadow:0 10px 35px rgba(15,31,61,.055)}.card:hover,.stat:hover,.plancard:hover{transform:translateY(-3px);box-shadow:0 20px 55px rgba(15,31,61,.10);border-color:rgba(20,184,166,.24)}
.primary{border-radius:13px;background:linear-gradient(135deg,#0d9488,#0891b2);box-shadow:0 10px 24px rgba(13,148,136,.22);transition:.2s}.primary:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(13,148,136,.28);filter:saturate(1.08)}.secondary{border-radius:13px;transition:.2s}.secondary:hover{transform:translateY(-1px);border-color:rgba(20,184,166,.45);box-shadow:0 8px 20px rgba(15,31,61,.06)}
input,select,textarea{min-height:46px;border-radius:13px;border:1px solid color-mix(in srgb,var(--line) 92%,#9fb5ca 8%);transition:border .18s,box-shadow .18s,transform .18s;background:var(--input)}input:hover,select:hover,textarea:hover{border-color:#b9c8d8}input:focus,select:focus,textarea:focus{border-color:#14b8a6;box-shadow:0 0 0 4px var(--focus)}label{gap:8px}.grid2{gap:18px 16px}
.formcard{padding:26px}.formcard h2{font-size:18px}.formcard label{font-weight:700;color:color-mix(in srgb,var(--text) 70%,var(--muted) 30%)}
/* file picker custom */
input[type=file]{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;padding:0!important}
.file-picker{display:flex;align-items:center;gap:13px;min-height:64px;padding:10px 12px;border:1px dashed #a9bacb;border-radius:15px;background:linear-gradient(135deg,color-mix(in srgb,var(--card) 94%,#ecfeff 6%),var(--card));cursor:pointer;transition:.2s}.file-picker:hover{border-color:#14b8a6;background:color-mix(in srgb,var(--card) 92%,#ccfbf1 8%);transform:translateY(-1px)}.file-picker-icon{width:42px;height:42px;flex:0 0 42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#ccfbf1,#dbeafe);color:#0f766e;font-size:19px}.file-picker-copy{min-width:0;display:grid;gap:3px}.file-picker-copy b{font-size:12px;color:var(--text)}.file-picker-copy small{font-weight:500;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:310px}.file-picker-action{margin-left:auto;padding:8px 11px;border-radius:10px;background:var(--card);border:1px solid var(--line);font-size:11px;font-weight:800;color:var(--text)}
/* premium notifications */
.toast{position:relative;padding:15px 18px 15px 50px;border-radius:15px;border:1px solid rgba(16,185,129,.18);background:linear-gradient(135deg,rgba(236,253,245,.96),rgba(240,253,250,.96));color:#065f46;box-shadow:0 12px 35px rgba(16,185,129,.08);animation:toastIn .35s ease}.toast:before{content:'✓';position:absolute;left:15px;top:50%;transform:translateY(-50%);width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#10b981;color:white;font-weight:900}@keyframes toastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
/* custom confirmation */
.confirm-layer{position:fixed;inset:0;z-index:9999;background:rgba(3,13,30,.58);backdrop-filter:blur(7px);display:none;place-items:center;padding:20px}.confirm-layer.show{display:grid;animation:fadeIn .18s ease}.confirm-box{width:min(440px,100%);background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:24px;padding:25px;box-shadow:0 30px 90px rgba(0,0,0,.3);animation:popIn .2s ease}.confirm-icon{width:54px;height:54px;border-radius:17px;background:linear-gradient(135deg,#fef3c7,#fee2e2);display:grid;place-items:center;font-size:24px;margin-bottom:17px}.confirm-box h3{font-size:20px;margin:0 0 8px}.confirm-box p{margin:0;color:var(--muted);line-height:1.55}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:23px}.danger-btn{border:0;background:linear-gradient(135deg,#e11d48,#ef4444);color:white;border-radius:12px;padding:10px 16px;font-weight:800;cursor:pointer}.confirm-cancel{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:12px;padding:10px 16px;font-weight:700;cursor:pointer}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes popIn{from{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:none}}
/* modal and tables */
dialog{border-radius:26px;box-shadow:0 40px 120px rgba(3,13,30,.42)}dialog form{padding:28px}.modalhead{padding-bottom:16px;border-bottom:1px solid var(--line)}.close{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:var(--card);display:grid;place-items:center;cursor:pointer}
.smart-toolbar{padding:10px;border:1px solid var(--line);background:var(--card);border-radius:17px;box-shadow:0 8px 25px rgba(15,31,61,.04)}.searchbox{border:0;background:var(--bg)}th{padding-top:16px;padding-bottom:16px}tbody tr{transition:.16s}tbody tr:hover{background:color-mix(in srgb,var(--card) 92%,#ccfbf1 8%)}.actions a,.actions button{border-radius:11px}
.plangrid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.plancard{position:relative;overflow:hidden;min-height:0}.plancard:before{content:'';position:absolute;width:130px;height:130px;border-radius:50%;right:-55px;top:-55px;background:radial-gradient(circle,rgba(45,212,191,.14),transparent 70%)}.price{margin-top:16px}.planlimits{margin-top:16px}
.profilehero{background:linear-gradient(145deg,var(--card),color-mix(in srgb,var(--card) 90%,#ccfbf1 10%))}.bigavatar{box-shadow:0 14px 34px rgba(37,99,235,.2)}
@media(max-width:700px){main{padding:20px 14px}.formcard{padding:18px}.grid2{grid-template-columns:1fr}.file-picker-copy small{max-width:170px}.file-picker-action{display:none}.title{align-items:flex-start;gap:14px;flex-direction:column}.title>button,.title>.primary{width:100%}.smart-toolbar{padding:8px}}

/* V6 Plans + institution relation */
.plan-modern-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:22px}.plan-modern{background:var(--card,#fff);border:1px solid var(--line,#e4eaf2);border-radius:24px;padding:24px;box-shadow:0 12px 36px rgba(15,23,42,.07);transition:.25s transform,.25s box-shadow;position:relative;overflow:hidden}.plan-modern:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#14b8a6,#2563eb)}.plan-modern:hover{transform:translateY(-4px);box-shadow:0 18px 45px rgba(15,23,42,.12)}.plan-disabled{opacity:.68;filter:saturate(.7)}.plan-top{display:flex;justify-content:space-between;gap:16px}.plan-top h2{font-size:24px;margin:12px 0 5px}.plan-top p{margin:0;color:var(--muted,#64748b);min-height:40px}.plan-menu a{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--soft,#f1f5f9);text-decoration:none}.plan-price{margin:24px 0 18px;display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}.plan-price strong{font-size:34px;letter-spacing:-1px}.plan-price>small{width:100%;color:var(--muted,#64748b)}.plan-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px}.plan-metrics span{padding:12px 8px;background:var(--soft,#f8fafc);border-radius:14px;text-align:center;font-size:11px}.plan-metrics b{display:block;font-size:14px;margin-bottom:3px}.module-chips{display:flex;flex-wrap:wrap;gap:7px}.module-chip{font-size:11px;font-weight:700;padding:7px 10px;border-radius:999px;background:rgba(37,99,235,.08);color:#1d4ed8}.module-chip.fixed{background:rgba(20,184,166,.12);color:#0f766e}.plan-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line,#e5e7eb);margin-top:20px;padding-top:16px}.plan-footer .actions{display:flex;gap:6px}.plan-footer .actions form{display:inline}.danger-action{color:#dc2626!important}.plan-preview{margin:18px 0;padding:20px;border-radius:20px;background:linear-gradient(135deg,rgba(20,184,166,.08),rgba(37,99,235,.08));border:1px solid rgba(20,184,166,.2)}.plan-preview-empty{text-align:center;color:var(--muted,#64748b);padding:12px}.plan-preview-head{display:flex;justify-content:space-between;align-items:center}.plan-preview-head h3{margin:3px 0}.plan-preview-head strong{font-size:24px}.plan-preview-head strong small{font-size:11px}.plan-preview-metrics{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.plan-preview-metrics span{background:var(--card,#fff);padding:8px 11px;border-radius:10px;font-size:12px;font-weight:700}.disabled-row{opacity:.48;pointer-events:none}.helper{color:var(--muted,#64748b);font-size:13px;margin-top:-5px}.modern-checks label span{display:flex;flex-direction:column;gap:2px}.modern-checks label small{font-weight:400;color:var(--muted,#64748b)}
@media(max-width:700px){.plan-modern-grid{grid-template-columns:1fr}.plan-metrics{grid-template-columns:1fr}.plan-preview-head{align-items:flex-start;gap:12px}.plan-preview-head strong{font-size:20px}}
.lead-nuevo{background:#eef2ff;color:#4338ca}.lead-atendido{background:#e0f2fe;color:#0369a1}.lead-procesado{background:#dcfce7;color:#15803d}.lead-rechazado{background:#fee2e2;color:#b91c1c}.detail-dialog{max-width:720px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.detail-grid>div{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.detail-grid small,.detail-grid b{display:block}.detail-grid small{margin-bottom:5px;color:var(--muted)}@media(max-width:650px){.detail-grid{grid-template-columns:1fr}.actions{min-width:210px}}

/* V9 — interfaz Aurora SaaS */
:root{--bg:#f6f8fc;--card:rgba(255,255,255,.94);--text:#17233c;--muted:#71809b;--line:#e7ebf3;--nav:#10182a;--nav2:#172640;--accent:#6d5dfc;--accent2:#5146d9;--aqua:#14b8a6;--shadow:0 18px 55px rgba(26,39,70,.08);--input:#fbfcff}
html[data-theme=dark]{--bg:#0b1020;--card:rgba(18,27,47,.96);--text:#edf2ff;--muted:#9ba8c2;--line:#25314b;--nav:#080d19;--nav2:#121c31;--input:#111a2d;--shadow:0 18px 55px rgba(0,0,0,.28)}
body{background:radial-gradient(circle at 82% 0%,rgba(109,93,252,.08),transparent 30%),var(--bg);letter-spacing:-.01em}aside{background:linear-gradient(180deg,var(--nav) 0%,var(--nav2) 100%);border-right:1px solid #ffffff0d}.logoicon{background:linear-gradient(135deg,#7c6cff,#20c7b7);border-radius:14px}.shell>header{backdrop-filter:blur(16px);background:color-mix(in srgb,var(--card) 88%,transparent)}nav a{border:1px solid transparent;transition:.2s ease}nav a:hover{transform:translateX(3px);background:#ffffff0c}nav a.on{background:linear-gradient(90deg,rgba(109,93,252,.25),rgba(20,184,166,.12));border-color:#ffffff12;box-shadow:inset 3px 0 #8b7cff}.card,dialog,.activation-queue{border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px}.primary{background:linear-gradient(135deg,#6d5dfc,#5146d9)!important;box-shadow:0 10px 25px rgba(109,93,252,.22);border:0!important}.primary:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(109,93,252,.3)}input,select,textarea{background:var(--input)!important;border:1px solid var(--line)!important;border-radius:12px!important;transition:.2s ease!important}input:focus,select:focus,textarea:focus{border-color:#8b7cff!important;box-shadow:0 0 0 4px rgba(109,93,252,.1)!important;outline:0}.premium-table{overflow-x:auto;border-radius:20px}.premium-table table{min-width:1120px}.premium-table thead th{background:color-mix(in srgb,var(--bg) 72%,var(--card));font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:15px 14px;white-space:nowrap}.premium-table tbody td{padding:16px 14px;vertical-align:middle;border-top:1px solid var(--line);white-space:nowrap}.premium-table tbody tr{transition:.18s ease}.premium-table tbody tr:hover{background:rgba(109,93,252,.035)}.cell-code{font-variant-numeric:tabular-nums;font-weight:650}.cell-email{display:block;max-width:220px;overflow:hidden;text-overflow:ellipsis}.actions{display:flex!important;gap:7px;align-items:center}.actions a,.actions button{width:34px!important;height:34px!important;border-radius:10px!important;display:grid!important;place-items:center!important;background:var(--card)!important;border:1px solid var(--line)!important;box-shadow:0 5px 14px rgba(20,30,55,.04);transition:.18s ease}.actions a:hover,.actions button:hover{transform:translateY(-2px);border-color:#b7afff!important;color:#5b4be8}.actions .action-accent{background:linear-gradient(135deg,#6d5dfc,#5146d9)!important;color:#fff!important;border:0!important}.badge{border-radius:999px!important;padding:7px 10px!important;font-size:10px!important;font-weight:750!important}.lead-procesado{background:#e9fbf4!important;color:#087a56!important}.lead-nuevo{background:#f0edff!important;color:#5b4be8!important}.lead-atendido{background:#eaf6ff!important;color:#176caa!important}.lead-rechazado{background:#fff0f2!important;color:#be3450!important}.detail-dialog{width:min(720px,calc(100vw - 30px))!important}.detail-grid{gap:12px!important}.detail-grid>div{background:linear-gradient(145deg,var(--input),var(--card));border:1px solid var(--line)!important;border-radius:14px!important;padding:14px 16px!important}.activation-queue{padding:20px;margin-bottom:22px;background:linear-gradient(135deg,rgba(109,93,252,.07),rgba(20,184,166,.055)),var(--card)}.queue-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:15px}.queue-head h3{margin:5px 0 4px;font-size:18px}.queue-head p{margin:0;color:var(--muted);font-size:12px}.queue-count{background:#edeaff;color:#5b4be8;padding:8px 11px;border-radius:999px;font-size:11px;font-weight:750}.queue-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px}.queue-card{display:flex;align-items:center;gap:12px;padding:13px;background:var(--card);border:1px solid var(--line);border-radius:15px}.queue-avatar{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#6d5dfc,#20c7b7);color:#fff;font-weight:800}.queue-info{min-width:0;display:flex;flex-direction:column;gap:3px}.queue-info b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-info span{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-action{margin-left:auto;white-space:nowrap;font-size:11px;font-weight:750;color:#5b4be8;background:#f0edff;padding:9px 10px;border-radius:10px}.toast{border:1px solid rgba(109,93,252,.15)!important;background:linear-gradient(135deg,#f0edff,#ecfffb)!important;color:#293350!important;box-shadow:0 12px 32px rgba(41,51,80,.08)!important}html[data-theme=dark] .toast{background:linear-gradient(135deg,#29234d,#143b3a)!important;color:#eef2ff!important}.file-picker{border:1.5px dashed #c8c3ff!important;background:linear-gradient(135deg,rgba(109,93,252,.045),rgba(20,184,166,.035))!important}.plan-modern{border-radius:20px!important;transition:.2s ease}.plan-modern:hover{transform:translateY(-4px);box-shadow:0 22px 55px rgba(26,39,70,.12)}
@media(max-width:900px){.premium-table table{min-width:1050px}.queue-head{flex-direction:column}.queue-grid{grid-template-columns:1fr}.queue-card{align-items:flex-start;flex-wrap:wrap}.queue-action{margin-left:52px}.shell>header{padding:0 16px}}

/* V10 — Modal system: compact, modern and consistent */
body:has(dialog[open]){overflow:hidden}
dialog{width:min(760px,calc(100vw - 32px));max-height:min(88vh,820px);overflow:hidden;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:24px;background:var(--card);box-shadow:0 30px 100px rgba(2,12,27,.28);padding:0!important}
dialog::backdrop{background:rgba(6,18,36,.58);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
dialog[open]{animation:modalIn .18s ease-out}
@keyframes modalIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
dialog form{padding:0!important;display:flex;flex-direction:column;max-height:min(88vh,820px)}
.modalhead{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0!important;padding:22px 24px 18px;background:color-mix(in srgb,var(--card) 94%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.modalhead>div{min-width:0}.modalhead .eyebrow{display:block;margin-bottom:5px}.modalhead h2{font-size:20px;line-height:1.2;margin:0!important;letter-spacing:-.3px}.close{flex:0 0 auto;width:38px;height:38px;border:1px solid var(--line)!important;border-radius:12px;background:var(--input)!important;color:var(--muted)!important;display:grid!important;place-items:center;font-size:22px!important;line-height:1;cursor:pointer;transition:.18s ease}.close:hover{color:var(--text)!important;border-color:#94a3b8!important;transform:rotate(3deg);background:color-mix(in srgb,var(--input) 80%,#eef2ff)!important}
dialog form>.grid2,dialog form>.checks,dialog form>.modern-checks,dialog form>.switchrow,dialog form>.plan-preview,dialog form>.field-status,dialog form>p:not(.modalactions){margin-left:24px;margin-right:24px}
dialog form>.grid2{padding:22px 0 8px;overflow-y:auto;overscroll-behavior:contain}
.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 18px}.grid2 .full{grid-column:1/-1}
label{gap:8px;font-size:11.5px;font-weight:700;color:var(--muted);letter-spacing:.01em}
input,select,textarea{width:100%;min-height:44px;border:1px solid var(--line);background:var(--input);color:var(--text);border-radius:12px;padding:11px 13px;outline:none;transition:border-color .16s,box-shadow .16s,background .16s;font:inherit}textarea{min-height:92px;resize:vertical;line-height:1.45}input::placeholder,textarea::placeholder{color:#9aa9bd;opacity:.9}input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--line) 35%,#64748b)}input:focus,select:focus,textarea:focus{border-color:#6366f1!important;box-shadow:0 0 0 4px rgba(99,102,241,.10)!important}
.modalactions{position:sticky;bottom:0;z-index:4;margin:14px 0 0!important;padding:15px 24px 20px;background:color-mix(in srgb,var(--card) 96%,transparent);border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px;backdrop-filter:blur(12px)}
.modalactions .primary,.modalactions .secondary{min-height:42px;padding:10px 18px;border-radius:12px}.modalactions .secondary{cursor:pointer;color:var(--text)}
/* Detail/read-only modal */
.detail-dialog{width:min(700px,calc(100vw - 32px))}.detail-dialog>.modalhead{padding:22px 24px 18px}.detail-dialog>.detail-grid{margin:0!important;padding:22px 24px 10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;max-height:56vh;overflow:auto}.detail-grid>div{min-height:72px;border:1px solid var(--line);border-radius:14px;padding:13px 14px;background:color-mix(in srgb,var(--input) 92%,#f8fafc);display:flex;flex-direction:column;justify-content:center;gap:5px}.detail-grid small{font-size:10.5px;color:var(--muted)}.detail-grid b{font-size:13px;line-height:1.35;overflow-wrap:anywhere}.detail-dialog>.modalactions{margin-top:10px!important}
/* Controls directly inside detail dialogs (status/action area) */
.detail-dialog>label,.detail-dialog>.status-editor{margin:8px 24px 0}.detail-dialog>select{width:calc(100% - 48px);margin:8px 24px 0}
/* File upload — hide native browser control completely */
input[type=file][data-enhanced="1"]{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}.file-picker{min-height:62px!important;border:1px dashed color-mix(in srgb,var(--line) 55%,#6366f1)!important;border-radius:14px!important;background:color-mix(in srgb,var(--input) 94%,#eef2ff)!important;padding:10px 12px!important;display:flex!important;flex-direction:row!important;align-items:center!important;gap:11px!important;cursor:pointer!important;color:var(--text)!important;transition:.18s}.file-picker:hover{border-color:#6366f1!important;background:color-mix(in srgb,var(--input) 88%,#eef2ff)!important}.file-picker-icon{width:38px;height:38px;border-radius:11px;background:rgba(99,102,241,.11);color:#6366f1;display:grid;place-items:center;font-size:18px}.file-picker-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}.file-picker-copy b{font-size:12px}.file-picker-copy small{font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-picker-action{font-size:11px;font-weight:800;padding:7px 10px;border-radius:9px;background:var(--card);border:1px solid var(--line)}
/* Confirmation dialog */
.confirm-layer{backdrop-filter:blur(7px)!important;background:rgba(6,18,36,.58)!important}.confirm-box{width:min(390px,calc(100vw - 32px))!important;border-radius:22px!important;border:1px solid var(--line)!important;background:var(--card)!important;box-shadow:0 28px 90px rgba(2,12,27,.3)!important;padding:27px!important;text-align:center}.confirm-icon{margin:0 auto 15px!important;width:48px!important;height:48px!important;border-radius:15px!important;background:#fff1f2!important;color:#e11d48!important;display:grid!important;place-items:center!important;font-weight:900!important;font-size:22px!important}.confirm-box h3{font-size:19px!important;margin:0 0 8px!important}.confirm-box p{color:var(--muted)!important;line-height:1.5!important;margin:0 0 22px!important}.confirm-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}.confirm-actions button{min-height:43px!important;border-radius:12px!important}
@media(max-width:640px){dialog{width:calc(100vw - 18px);max-height:92vh;border-radius:20px}.modalhead{padding:18px 17px 15px}.modalhead h2{font-size:18px}dialog form>.grid2{margin-left:17px;margin-right:17px;padding-top:17px}.grid2,.detail-dialog>.detail-grid{grid-template-columns:1fr}.detail-dialog>.detail-grid{padding:17px;margin:0!important}.modalactions{padding:13px 17px 17px}.modalactions>*{flex:1;text-align:center}.checks,.modern-checks{grid-template-columns:1fr!important}.detail-dialog>select{width:calc(100% - 34px);margin-left:17px;margin-right:17px}}

/* =========================================================
   V11 — CARIP NEXUS UI
   Visual-only redesign. Business logic and routes unchanged.
   ========================================================= */
:root{
 --bg:#f7f8fc;--card:rgba(255,255,255,.88);--card-solid:#fff;--text:#172033;--muted:#74809a;
 --line:#e8eaf2;--nav:#11152b;--nav2:#191f3d;--accent:#6c5ce7;--accent2:#5548d9;
 --cyan:#12b8b0;--input:#fbfcff;--shadow:0 18px 55px rgba(31,38,74,.08);
 --shadow-sm:0 8px 25px rgba(31,38,74,.06);--radius:20px;--danger:#ef476f;--success:#19a974;
}
html[data-theme=dark]{
 --bg:#0b0d17;--card:rgba(20,24,43,.9);--card-solid:#14182b;--text:#f4f6ff;--muted:#929bb2;
 --line:#272d48;--nav:#0c0f20;--nav2:#151a34;--input:#171c31;--shadow:0 22px 65px rgba(0,0,0,.26);
}
html{scroll-behavior:smooth}body{font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;background:
 radial-gradient(circle at 82% -10%,rgba(108,92,231,.10),transparent 28%),
 radial-gradient(circle at 18% 105%,rgba(18,184,176,.07),transparent 25%),var(--bg);letter-spacing:-.005em}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.34;background-image:linear-gradient(rgba(100,116,139,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(100,116,139,.025) 1px,transparent 1px);background-size:28px 28px;z-index:-1}

/* Navigation */
aside{width:264px;padding:22px 14px;background:linear-gradient(180deg,var(--nav) 0%,var(--nav2) 58%,#111a37 100%);border-right:1px solid rgba(255,255,255,.06);box-shadow:18px 0 50px rgba(13,17,38,.08)}
.logo{padding:4px 10px 24px;gap:12px;font-weight:760;letter-spacing:.02em}.logoicon,.brandimg{width:42px!important;height:42px!important;border-radius:14px!important;box-shadow:0 10px 28px rgba(108,92,231,.24)}.logo b{color:#62e6db;font-size:10px}.logo small{color:#8e9bb8;font-size:9.5px}
nav{gap:4px}nav a{position:relative;padding:11px 13px;border-radius:12px;color:#c8d0e3;transition:.18s ease;font-weight:550}nav a i{width:22px;color:#8f9bd1;font-size:15px}nav a:hover{background:rgba(255,255,255,.06);transform:translateX(2px)}nav a.on{background:linear-gradient(100deg,rgba(108,92,231,.28),rgba(108,92,231,.12));color:#fff;box-shadow:inset 0 0 0 1px rgba(166,155,255,.15)}nav a.on:before{content:"";position:absolute;left:-4px;top:9px;bottom:9px;width:3px;border-radius:6px;background:#8b7cf6;box-shadow:0 0 15px #8b7cf6}.navlabel{margin:22px 12px 7px;color:#657195;font-size:9px;font-weight:800;letter-spacing:1.7px}.sidefoot{border-top:1px solid rgba(255,255,255,.07);margin:18px 6px 0;padding:16px 8px 4px}.shell{margin-left:264px}

/* Top bar */
.shell>header{height:78px;padding:0 30px;background:color-mix(in srgb,var(--card-solid) 82%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.headtitle b{font-size:13px}.headtitle span{font-size:10.5px}.head-actions{gap:9px}.iconbtn,.notif,.logouticon{width:39px;height:39px;border-radius:12px;border:1px solid var(--line);background:var(--card-solid);box-shadow:var(--shadow-sm);transition:.18s ease}.iconbtn:hover,.notif:hover,.logouticon:hover{transform:translateY(-2px);border-color:#c7c2fa}.profilechip{padding:6px 8px;border-radius:14px;transition:.18s}.profilechip:hover{background:rgba(108,92,231,.06)}.avatar{border-radius:12px;background:linear-gradient(135deg,#6c5ce7,#19bdb4);box-shadow:0 8px 18px rgba(108,92,231,.18)}

/* Page rhythm */
main{padding:32px 34px 48px;max-width:1540px}.title{margin-bottom:22px;gap:18px}.title h1{font-size:29px;letter-spacing:-.7px;font-weight:780}.title p{font-size:12.5px;line-height:1.55;max-width:760px}.eyebrow{color:#6758df;font-size:9.5px;letter-spacing:1.8px}.primary{background:linear-gradient(135deg,#6c5ce7,#5749d7);border-radius:12px;padding:11px 17px;box-shadow:0 10px 25px rgba(108,92,231,.22);transition:.18s ease}.primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(108,92,231,.28)}.secondary{border-radius:12px;background:var(--card-solid);box-shadow:0 4px 14px rgba(31,38,74,.03);transition:.18s}.secondary:hover{transform:translateY(-1px);border-color:#c7c2fa;color:#5b4be8}

/* Cards + dashboard */
.card,.stat{border:1px solid color-mix(in srgb,var(--line) 88%,transparent);border-radius:var(--radius);background:var(--card);backdrop-filter:blur(16px);box-shadow:var(--shadow)}.stats{gap:14px}.stat{min-height:126px;padding:19px 20px;overflow:hidden;transition:.2s ease}.stat:after{content:"";position:absolute;width:90px;height:90px;right:-35px;bottom:-40px;border-radius:50%;background:rgba(108,92,231,.055)}.stat:hover{transform:translateY(-3px);box-shadow:0 22px 55px rgba(31,38,74,.11)}.stat strong{font-size:28px;letter-spacing:-.8px}.staticon{border-radius:13px;background:linear-gradient(135deg,rgba(108,92,231,.12),rgba(18,184,176,.09));color:#6556dd}.dashboardgrid{gap:15px}.card{padding:21px}.sectiontitle h2{font-size:14px;font-weight:750}.live{background:#eafaf5;color:#11835f;border:1px solid #d3f4e8}

/* Toolbars */
.smart-toolbar,.toolbar{padding:10px!important;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:var(--shadow-sm);gap:9px!important}.searchbox{border:0!important;background:var(--input)!important;border-radius:11px!important;min-height:42px!important}.searchbox input{border:0!important;box-shadow:none!important;background:transparent!important}.smart-toolbar select{width:auto!important;min-width:82px}.smart-toolbar .secondary{white-space:nowrap}

/* Tables */
.tablewrap{border-radius:18px!important;overflow:auto!important}.premium-table{padding:0!important;border:1px solid var(--line)!important;box-shadow:var(--shadow)!important}.premium-table table{border-collapse:separate!important;border-spacing:0!important}.premium-table thead th{position:sticky;top:0;z-index:2;background:color-mix(in srgb,var(--bg) 92%,var(--card-solid))!important;color:#77819a!important;font-size:9.5px!important;letter-spacing:.85px!important;font-weight:800!important;padding:13px 15px!important;border-bottom:1px solid var(--line)!important}.premium-table td{padding:13px 15px!important;vertical-align:middle!important;border-bottom:1px solid color-mix(in srgb,var(--line) 78%,transparent)!important;font-size:12.5px!important;white-space:nowrap}.premium-table tbody tr{transition:.16s ease}.premium-table tbody tr:hover{background:rgba(108,92,231,.035)!important}.premium-table tbody tr:last-child td{border-bottom:0!important}.school>span{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,rgba(108,92,231,.12),rgba(18,184,176,.12));color:#5c50cf}.school b{font-size:12px}.school small{font-size:10px}.cell-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--text)}.cell-email{font-size:11.5px;color:var(--muted)}.actions{gap:6px!important}.actions a,.actions button{width:34px!important;height:34px!important;border-radius:11px!important;box-shadow:none!important}.actions a:hover,.actions button:hover{background:#f2f0ff!important;transform:translateY(-1px)!important}.table-pager{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:12px 3px;color:var(--muted);font-size:11px}.table-pager button{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:var(--card-solid);color:var(--text)}

/* Forms */
label{font-size:11px!important;color:#68748f!important;font-weight:700!important}input,select,textarea{min-height:45px!important;border-radius:12px!important;border:1px solid #e1e5ef!important;background:var(--input)!important;padding:11px 13px!important;font-size:12.5px!important;box-shadow:0 1px 2px rgba(31,38,74,.015);transition:.17s ease!important}html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea{border-color:#303750!important}input:hover,select:hover,textarea:hover{border-color:#c6cbe0!important}input:focus,select:focus,textarea:focus{border-color:#7568e8!important;box-shadow:0 0 0 4px rgba(108,92,231,.09)!important}.field-status{font-size:10px!important}.switch span{background:#d6dbea}.switch input:checked+span{background:linear-gradient(90deg,#6c5ce7,#12b8b0)}

/* File picker */
.file-picker{min-height:68px!important;border:1px dashed #c9c5ed!important;border-radius:15px!important;background:linear-gradient(135deg,rgba(108,92,231,.035),rgba(18,184,176,.025))!important;padding:11px 12px!important}.file-picker-icon{width:40px!important;height:40px!important;border-radius:12px!important;background:linear-gradient(135deg,rgba(108,92,231,.13),rgba(18,184,176,.10))!important;color:#6355db!important}.file-picker-action{border-radius:10px!important;padding:8px 11px!important;background:var(--card-solid)!important}.file-picker:hover{border-color:#7568e8!important;box-shadow:0 0 0 4px rgba(108,92,231,.05)}

/* Plans */
.plan-modern{position:relative;overflow:hidden;border:1px solid var(--line)!important;border-radius:22px!important;background:var(--card)!important;box-shadow:var(--shadow)!important}.plan-modern:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#6c5ce7,#12b8b0)}.plan-modern:hover{transform:translateY(-5px)!important;box-shadow:0 25px 65px rgba(31,38,74,.13)!important}.module-chip{border-radius:999px!important;background:#f3f1ff!important;color:#5b4be8!important;border:1px solid #e5e1ff!important}.module-chip.fixed{background:#e9fbf7!important;color:#0e8178!important;border-color:#d3f5ee!important}html[data-theme=dark] .module-chip{background:#29254a!important;border-color:#39325f!important;color:#c4bcff!important}

/* Modal architecture */
dialog{width:min(720px,calc(100vw - 30px))!important;max-height:88vh!important;border-radius:22px!important;border:1px solid rgba(255,255,255,.55)!important;background:var(--card-solid)!important;box-shadow:0 35px 120px rgba(13,17,38,.34)!important}html[data-theme=dark] dialog{border-color:#2d3450!important}dialog::backdrop{background:rgba(12,16,34,.58)!important;backdrop-filter:blur(10px)!important}.modalhead{padding:20px 22px 17px!important;background:var(--card-solid)!important}.modalhead h2{font-size:19px!important;font-weight:780!important}.close{width:36px!important;height:36px!important;border-radius:11px!important;font-size:20px!important}.close:hover{transform:rotate(5deg)!important;background:#f3f1ff!important;color:#5c50cf!important}.grid2{gap:15px 16px!important}dialog form>.grid2{padding:19px 0 8px!important;margin-left:22px!important;margin-right:22px!important}.modalactions{padding:14px 22px 18px!important;background:var(--card-solid)!important}.detail-dialog{width:min(650px,calc(100vw - 30px))!important}.detail-dialog>.detail-grid{padding:18px 22px 8px!important;gap:10px!important}.detail-grid>div{min-height:66px!important;border-radius:13px!important;padding:12px 14px!important;background:var(--input)!important}.detail-grid small{font-size:10px!important}.detail-grid b{font-size:12.5px!important}.detail-dialog>select{width:calc(100% - 44px)!important;margin:8px 22px 0!important}.confirm-layer{background:rgba(12,16,34,.60)!important;backdrop-filter:blur(10px)!important}.confirm-box{border-radius:22px!important;padding:26px!important;background:var(--card-solid)!important}.confirm-icon{background:linear-gradient(135deg,#fff0f3,#fce7ee)!important}.toast{position:relative;border-radius:14px!important;padding:13px 16px!important;background:linear-gradient(135deg,#eeecff,#eafbf8)!important;border:1px solid #ded9ff!important;color:#39345f!important;box-shadow:var(--shadow-sm)!important}

/* Profile/settings */
.profilegrid{gap:16px}.profilehero{background:linear-gradient(160deg,var(--card-solid),rgba(108,92,231,.04))}.bigavatar{border-radius:26px;background:linear-gradient(135deg,#6c5ce7,#12b8b0);box-shadow:0 15px 35px rgba(108,92,231,.22)}.formcard{padding:23px!important}.switchrow{padding:15px 0}

/* Login */
.login-body{background:radial-gradient(circle at 18% 15%,rgba(108,92,231,.22),transparent 28%),radial-gradient(circle at 85% 85%,rgba(18,184,176,.15),transparent 25%),#f6f7fb;position:relative;overflow:hidden}.login-body:before,.login-body:after{content:"";position:fixed;border-radius:50%;filter:blur(1px);pointer-events:none}.login-body:before{width:320px;height:320px;left:-120px;bottom:-120px;background:rgba(108,92,231,.10)}.login-body:after{width:250px;height:250px;right:-90px;top:-80px;background:rgba(18,184,176,.10)}.login-card{position:relative;width:min(420px,100%);border-radius:26px;padding:38px 36px;border:1px solid rgba(255,255,255,.75);background:rgba(255,255,255,.88);backdrop-filter:blur(22px);box-shadow:0 35px 100px rgba(31,38,74,.14)}html[data-theme=dark] .login-card{background:rgba(20,24,43,.92);border-color:#2c334d}.brand-mark{border-radius:18px;background:linear-gradient(135deg,#6c5ce7,#12b8b0);box-shadow:0 14px 32px rgba(108,92,231,.24)}.login-card h1{font-size:25px;letter-spacing:-.6px}.login-card .primary{min-height:47px;margin-top:8px}

@media(max-width:1000px){aside{width:264px}.shell{margin-left:0}main{padding:24px 18px 40px}.shell>header{padding:0 18px}.title h1{font-size:25px}.smart-toolbar{flex-wrap:wrap}.smart-toolbar .searchbox{flex:1 1 100%}.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){main{padding:20px 12px 34px}.stats{grid-template-columns:1fr}.title{align-items:flex-start;flex-direction:column}.title>.primary{width:100%}.card{padding:16px}.smart-toolbar{padding:8px!important}.smart-toolbar select,.smart-toolbar .secondary{flex:1}.profilechip>span:last-child{display:none}.grid2{grid-template-columns:1fr!important}dialog{width:calc(100vw - 16px)!important;border-radius:18px!important}.modalhead{padding:17px 16px 14px!important}dialog form>.grid2{margin-left:16px!important;margin-right:16px!important}.modalactions{padding:12px 16px 16px!important}.detail-dialog>.detail-grid{padding:15px 16px 6px!important}.detail-dialog>select{width:calc(100% - 32px)!important;margin-left:16px!important;margin-right:16px!important}.login-card{padding:30px 22px}}

/* V12 — iconografía profesional + modal de planes compacto */
nav a i[data-lucide]{width:18px;height:18px;stroke-width:1.9;color:#a5b4fc;flex:0 0 18px}
nav a.on i[data-lucide],nav a:hover i[data-lucide]{color:#fff}
.plan-dialog{width:min(760px,94vw);max-height:90vh;overflow:hidden}
.plan-dialog>form{padding:0;max-height:90vh;display:flex;flex-direction:column}
.plan-dialog .modalhead{padding:22px 24px 17px;margin:0;border-bottom:1px solid var(--line);background:var(--card);position:sticky;top:0;z-index:3}
.plan-dialog .grid2{padding:20px 24px 8px;overflow:visible}
.plan-dialog .notice{margin:10px 24px 0}
.plan-dialog .plan-benefits{margin:14px 24px 0}
.plan-dialog .modalactions{padding:16px 24px 20px;margin-top:16px;border-top:1px solid var(--line);background:var(--card);position:sticky;bottom:0;z-index:3}
.plan-dialog .modalactions .primary{display:inline-flex;align-items:center;gap:8px}.plan-dialog .modalactions svg{width:16px;height:16px}
.plan-pwa{display:grid!important;grid-template-columns:38px 1fr auto;align-items:center;gap:12px;padding:13px 14px!important;border-radius:14px!important;background:linear-gradient(135deg,#ecfeff,#eff6ff)!important;border:1px solid #bae6fd!important;color:#0f2942!important}
html[data-theme=dark] .plan-pwa{background:linear-gradient(135deg,#0c2a33,#12233c)!important;border-color:#21435a!important;color:#e6f7ff!important}
.notice-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:#fff;color:#2563eb;box-shadow:0 4px 12px #0f172a12}.notice-icon svg{width:18px;height:18px}.plan-pwa>span:nth-child(2){display:flex;flex-direction:column;gap:3px}.plan-pwa small{color:var(--muted)}.core-pill{font-size:9px;font-weight:800;letter-spacing:1px;padding:5px 8px;border-radius:999px;background:#dbeafe;color:#1d4ed8}
.plan-benefits{border:1px solid var(--line);border-radius:15px;background:var(--card);overflow:hidden}
.plan-benefits summary{list-style:none;display:grid;grid-template-columns:38px 1fr 20px;align-items:center;gap:12px;padding:14px;cursor:pointer;user-select:none}.plan-benefits summary::-webkit-details-marker{display:none}.plan-benefits summary:hover{background:color-mix(in srgb,var(--bg) 65%,transparent)}
.summary-icon{width:36px;height:36px;border-radius:11px;background:#ede9fe;color:#6d28d9;display:grid;place-items:center}.summary-icon svg{width:18px;height:18px}.plan-benefits summary>span:nth-child(2){display:flex;flex-direction:column;gap:3px}.plan-benefits summary small{font-weight:400;color:var(--muted)}.summary-chevron{width:18px;height:18px;transition:.2s}.plan-benefits[open] .summary-chevron{transform:rotate(180deg)}
.benefits-body{padding:4px 14px 14px;border-top:1px solid var(--line)}.benefits-body .helper{margin:12px 2px;color:var(--muted)}
.plan-benefits .modern-checks{grid-template-columns:repeat(2,1fr);margin:0;gap:8px}.plan-benefits .modern-checks label{position:relative;display:grid;grid-template-columns:26px 1fr;gap:10px;padding:11px 12px;border-radius:12px;cursor:pointer;transition:.18s}.plan-benefits .modern-checks label:hover{transform:translateY(-1px);border-color:#a5b4fc;background:#6366f108}.plan-benefits .modern-checks input{position:absolute;opacity:0;pointer-events:none}.check-ui{width:24px;height:24px;border:1px solid var(--line);border-radius:7px;display:grid;place-items:center;color:transparent;background:var(--input);transition:.18s}.check-ui svg{width:14px;height:14px}.plan-benefits .modern-checks input:checked+.check-ui{background:#4f46e5;border-color:#4f46e5;color:#fff}.plan-benefits .modern-checks label>span:last-child{display:flex;flex-direction:column;gap:2px}.plan-benefits .modern-checks small{font-size:10px;font-weight:400;color:var(--muted)}
@media(max-width:650px){.plan-dialog{width:96vw;max-height:94vh}.plan-dialog .grid2{padding:16px}.plan-dialog .notice,.plan-dialog .plan-benefits{margin-left:16px;margin-right:16px}.plan-benefits .modern-checks{grid-template-columns:1fr}.core-pill{display:none}}
\n/* V13 — navegación Lucide + modal de planes realmente desplazable */\n.head-actions .iconbtn,.head-actions .logouticon,.head-actions .notif{width:40px;height:40px;display:grid;place-items:center;padding:0;border-radius:12px}.head-actions .iconbtn svg,.head-actions .logouticon svg,.head-actions .notif svg,.desktop-menu svg,.mobilebar svg{width:18px;height:18px;stroke-width:2;color:currentColor}.head-actions .notif{position:relative}.head-actions .notif em{position:absolute;right:-3px;top:-5px;min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;border-radius:999px;font-size:10px;font-style:normal}.desktop-menu{display:grid;place-items:center}.plan-dialog>form{overflow-y:auto!important;overscroll-behavior:contain;scrollbar-width:thin}.plan-dialog .modalhead{flex:0 0 auto}.plan-dialog .modalactions{flex:0 0 auto}.plan-dialog .plan-benefits{flex:0 0 auto;overflow:visible}.plan-benefits summary{position:relative;min-height:68px}.plan-benefits summary:after{content:"Abrir";font-size:10px;font-weight:800;letter-spacing:.4px;color:#4f46e5;background:#eef2ff;border-radius:999px;padding:5px 8px;margin-left:auto}.plan-benefits[open] summary:after{content:"Cerrar"}.plan-benefits[open] summary{background:color-mix(in srgb,var(--bg) 72%,transparent)}html[data-theme=dark] .plan-benefits summary:after{background:#24224d;color:#c4b5fd}.summary-chevron{margin-left:2px}.plan-dialog .grid2{flex:0 0 auto}.plan-dialog .notice{flex:0 0 auto}@media(max-height:760px){.plan-dialog{max-height:96vh}.plan-dialog>form{max-height:96vh}.plan-dialog .modalhead{padding-top:15px;padding-bottom:12px}.plan-dialog .grid2{padding-top:14px}.plan-dialog .modalactions{padding-top:10px;padding-bottom:12px}}\n
/* V14 — acciones limpias, tooltips y finanzas */
.action-icons{display:flex!important;align-items:center;gap:7px;white-space:nowrap}.action-icons form{display:inline-flex;margin:0}.action-icon,.receipt-eye{position:relative;display:inline-grid!important;place-items:center;width:34px;height:34px;padding:0!important;border:1px solid var(--line)!important;border-radius:10px!important;background:var(--card-solid)!important;color:var(--text)!important;transition:.18s ease;box-shadow:none!important;text-decoration:none!important}.action-icon svg,.receipt-eye svg{width:15px;height:15px;stroke-width:1.9}.action-icon:hover,.receipt-eye:hover{transform:translateY(-2px);border-color:#8b7cf6!important;color:#6255df!important;background:#f6f4ff!important;box-shadow:0 8px 18px rgba(76,65,170,.12)!important}.action-whatsapp:hover{color:#168a61!important;background:#edfff7!important;border-color:#9be6c9!important}.action-money:hover{color:#a06a00!important;background:#fff9e9!important;border-color:#f1d78b!important}.action-danger:hover{color:#d14343!important;background:#fff1f2!important;border-color:#fecdd3!important}.action-success:hover{color:#168a61!important;background:#edfff7!important;border-color:#9be6c9!important}.action-icon[data-tip]:after,.receipt-eye[data-tip]:after{content:attr(data-tip);position:absolute;z-index:80;left:50%;bottom:calc(100% + 9px);transform:translate(-50%,5px);opacity:0;pointer-events:none;white-space:nowrap;padding:7px 9px;border-radius:8px;background:#111827;color:#fff;font-size:10px;font-weight:650;letter-spacing:.1px;box-shadow:0 8px 22px rgba(0,0,0,.22);transition:.16s ease}.action-icon[data-tip]:before,.receipt-eye[data-tip]:before{content:"";position:absolute;z-index:81;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);opacity:0;border:5px solid transparent;border-top-color:#111827;transition:.16s ease}.action-icon[data-tip]:hover:after,.action-icon[data-tip]:hover:before,.receipt-eye[data-tip]:hover:after,.receipt-eye[data-tip]:hover:before{opacity:1}.action-icon[data-tip]:hover:after,.receipt-eye[data-tip]:hover:after{transform:translate(-50%,0)}.concept-cell{display:flex;align-items:center;gap:9px}.receipt-eye{width:30px;height:30px;flex:0 0 30px}.receipt-eye svg{width:14px;height:14px}html[data-theme=dark] .action-icon:hover,html[data-theme=dark] .receipt-eye:hover{background:#252744!important;border-color:#5850a9!important;color:#c9c4ff!important}html[data-theme=dark] .action-whatsapp:hover{background:#12362d!important;color:#75e2ba!important}html[data-theme=dark] .action-money:hover{background:#3a3118!important;color:#f5d36e!important}html[data-theme=dark] .action-danger:hover{background:#3c2028!important;color:#ff9eaa!important}

/* V15 — formularios alineados + sidebar agrupado */
nav{gap:7px}.navlabel{display:none}.navgroup{border:1px solid transparent;border-radius:14px;overflow:hidden}.navgroup[open]{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.055)}.navgroup summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border-radius:12px;color:#b9c5db;font-size:12px;font-weight:800;letter-spacing:.2px;cursor:pointer;user-select:none;transition:.18s}.navgroup summary::-webkit-details-marker{display:none}.navgroup summary>span{display:flex;align-items:center;gap:11px}.navgroup summary svg{width:17px;height:17px;stroke-width:1.9}.navgroup summary .navchev{width:15px;height:15px;transition:transform .18s}.navgroup[open] summary .navchev{transform:rotate(180deg)}.navgroup summary:hover{background:rgba(255,255,255,.06);color:#fff}.navchildren{padding:0 5px 6px}.navchildren a{min-height:39px;padding:9px 10px 9px 16px;margin:2px 0;border-radius:10px;font-size:12px}.navchildren a i[data-lucide]{width:16px;height:16px}.navchildren a.on{background:linear-gradient(135deg,rgba(99,102,241,.28),rgba(124,58,237,.18));box-shadow:inset 0 0 0 1px rgba(139,124,246,.25)}

/* Formularios y modales: una sola rejilla, alturas y espacios consistentes */
dialog{max-height:92vh;overflow:hidden}dialog>form{max-height:92vh;overflow:auto;scrollbar-width:thin}.grid2{align-items:start}.grid2>label,.formcard .grid2>label{min-width:0;align-self:start;margin:0}.grid2>label.full{grid-column:1/-1}.grid2 label>input,.grid2 label>select,.grid2 label>textarea{height:46px;min-height:46px;margin:0}.grid2 label>textarea{height:auto;min-height:88px;resize:vertical}.grid2 label>small{min-height:0;line-height:1.35}.modalhead{min-height:74px}.modalactions{align-items:center}.modalactions .primary,.modalactions .secondary{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:7px}.modalactions button{margin:0}
/* Cobros y formularios operativos */
.payment-grid,.expense-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;align-items:start}.payment-grid label,.expense-grid label{margin:0;min-width:0}.payment-grid input,.payment-grid select,.expense-grid input,.expense-grid select{height:46px}.payment-grid .full,.expense-grid .full{grid-column:1/-1}
.file-drop,.file-upload{min-height:70px;display:flex;align-items:center}.file-drop input[type=file],.file-upload input[type=file]{height:auto}
@media(max-width:640px){.payment-grid,.expense-grid{grid-template-columns:1fr}.payment-grid .full,.expense-grid .full{grid-column:auto}.navgroup summary{padding:11px}.navchildren a{padding-left:14px}}

/* V16 — Sidebar CARIP compacto/profesional inspirado en el patrón aprobado */
aside{width:238px;padding:20px 11px 14px;background:linear-gradient(180deg,#17172f 0%,#1d173a 54%,#211442 100%);border-right:1px solid rgba(167,139,250,.12);box-shadow:14px 0 34px rgba(20,15,55,.10)}
.shell{margin-left:238px}.logo{padding:0 11px 20px;gap:11px;font-size:16px;font-weight:800}.logo b{color:#a78bfa;font-size:10px;letter-spacing:1.4px}.logo small{color:#a8a4c7;font-size:9px}.logoicon,.brandimg{width:38px;height:38px;border-radius:11px;background:#fff;object-fit:contain;padding:3px;box-shadow:0 7px 18px rgba(0,0,0,.22)}
nav{gap:8px}.nav-home{min-height:43px;padding:11px 13px!important;border-radius:11px!important;font-weight:750;color:#eceafd!important}.nav-home svg{width:18px!important;height:18px!important;color:#9f8cff!important}.nav-home.on{background:linear-gradient(90deg,#6546d8,#39236d)!important;border-left:3px solid #a78bfa;box-shadow:0 10px 24px rgba(80,48,180,.22)}
.navgroup{border:1px solid transparent;border-radius:12px;overflow:hidden;background:transparent}.navgroup[open]{background:rgba(255,255,255,.025);border-color:rgba(167,139,250,.11)}.navgroup summary{min-height:43px;padding:11px 12px;color:#d9d5ec;font-size:12px;font-weight:800;border-radius:11px}.navgroup summary>span{gap:10px}.navgroup summary>span>svg{width:17px;height:17px;color:#9f8cff}.navgroup summary .navchev{width:14px;height:14px;color:#b9b0e8}.navgroup summary:hover{background:rgba(124,92,225,.10);color:#fff}.navgroup[open] summary{color:#fff;background:rgba(124,92,225,.08)}
.navchildren{padding:2px 7px 8px}.navchildren a{min-height:36px;padding:8px 10px 8px 17px;margin:2px 0;border-radius:9px;font-size:11px;font-weight:650;color:#bbb6d5;gap:10px}.navchildren a svg{width:14px!important;height:14px!important;color:#8e7be9!important;stroke-width:2}.navchildren a:hover{background:rgba(124,92,225,.10);color:#fff}.navchildren a.on{background:linear-gradient(90deg,rgba(105,72,214,.35),rgba(84,49,157,.28));color:#fff;box-shadow:inset 2px 0 #9b87f5,inset 0 0 0 1px rgba(155,135,245,.12)}
.side-profile{margin-top:auto;min-height:57px;border:1px solid rgba(167,139,250,.18);border-radius:13px;background:linear-gradient(135deg,rgba(106,72,205,.22),rgba(73,43,139,.22));display:grid;grid-template-columns:34px minmax(0,1fr) 15px;align-items:center;gap:9px;padding:9px 10px;color:#fff;transition:.18s}.side-profile:hover,.side-profile.on{border-color:rgba(167,139,250,.38);background:linear-gradient(135deg,rgba(112,78,218,.34),rgba(76,43,151,.30));transform:translateY(-1px)}.side-profile img,.side-avatar{width:34px;height:34px;border-radius:10px;object-fit:cover;background:linear-gradient(135deg,#7c5cff,#4f46e5);display:grid;place-items:center;font-weight:900}.side-profile-copy{min-width:0;display:flex;flex-direction:column}.side-profile-copy b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-profile-copy small{font-size:8px;color:#aaa3cc;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-profile>svg{width:13px;height:13px;color:#9f8cff}.sidefoot{display:none}
@media(max-width:1000px){.shell{margin-left:0}aside{width:238px}}

/* V19 — SISTEMA ÚNICO DE FORMULARIOS / MODALES CARIP */
.modal,.modal.wide{padding:0!important;border:0!important;width:min(760px,calc(100vw - 32px))!important;max-height:90vh!important;overflow:hidden!important;border-radius:24px!important;background:var(--card-solid,var(--card))!important;box-shadow:0 30px 90px rgba(15,23,42,.30)!important}
.modal.wide{width:min(920px,calc(100vw - 32px))!important}
.modal::backdrop{background:rgba(15,23,42,.58)!important;backdrop-filter:blur(8px)!important}
.modal>form{display:flex!important;flex-direction:column!important;max-height:90vh!important;overflow:hidden!important;margin:0!important}
.modal-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:20px!important;min-height:82px!important;padding:20px 26px 18px!important;border-bottom:1px solid var(--line)!important;background:var(--card-solid,var(--card))!important;flex:0 0 auto!important}
.modal-head>div{min-width:0}.modal-head .eyebrow{display:block!important;margin:0 0 5px!important;font-size:10px!important;font-weight:850!important;letter-spacing:1.35px!important;color:#6558e8!important}.modal-head h2{margin:0!important;font-size:21px!important;line-height:1.2!important;letter-spacing:-.35px!important;color:var(--text)!important}
.modal-x{flex:0 0 38px!important;width:38px!important;height:38px!important;border:1px solid var(--line)!important;border-radius:12px!important;background:var(--input)!important;color:var(--muted)!important;display:grid!important;place-items:center!important;font-size:0!important;cursor:pointer!important;transition:.18s ease!important}.modal-x:before{content:'×';font-size:24px;line-height:1;font-weight:400}.modal-x:hover{background:#f1efff!important;border-color:#c9c3ff!important;color:#5b4ee6!important;transform:rotate(4deg)}
.modal-body{padding:22px 26px 24px!important;overflow:auto!important;overscroll-behavior:contain!important;scrollbar-width:thin!important;flex:1 1 auto!important;background:var(--card-solid,var(--card))!important}
.modal-body>.grid2{margin:0!important;padding:0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px 18px!important;align-items:start!important}
.modal-body .grid2>label,.modal-body>label,.formcard label{display:flex!important;flex-direction:column!important;gap:7px!important;margin:0!important;min-width:0!important;font-size:11px!important;line-height:1.25!important;font-weight:750!important;color:#64748b!important}
.modal-body .grid2>label.full{grid-column:1/-1!important}
.modal-body input,.modal-body select,.modal-body textarea,.formcard input,.formcard select,.formcard textarea{width:100%!important;border:1px solid #dbe3ef!important;background:var(--input)!important;color:var(--text)!important;border-radius:13px!important;outline:0!important;box-shadow:0 1px 2px rgba(15,23,42,.02)!important;transition:border-color .18s,box-shadow .18s,background .18s!important}
.modal-body input,.modal-body select,.formcard input,.formcard select{height:46px!important;min-height:46px!important;padding:0 14px!important}.modal-body textarea,.formcard textarea{min-height:92px!important;padding:12px 14px!important;resize:vertical!important}
.modal-body input:focus,.modal-body select:focus,.modal-body textarea:focus,.formcard input:focus,.formcard select:focus,.formcard textarea:focus{border-color:#7568ef!important;box-shadow:0 0 0 4px rgba(101,88,232,.10)!important}.modal-body input::placeholder,.modal-body textarea::placeholder,.formcard input::placeholder,.formcard textarea::placeholder{color:#a3afc2!important;font-weight:550!important}
.modal-body label small,.formcard label small{display:block!important;margin-top:0!important;color:#94a3b8!important;font-size:10px!important;font-weight:550!important;line-height:1.4!important}
.modal-foot{display:flex!important;justify-content:flex-end!important;align-items:center!important;gap:10px!important;min-height:72px!important;padding:14px 26px 18px!important;border-top:1px solid var(--line)!important;background:var(--card-solid,var(--card))!important;flex:0 0 auto!important}.modal-foot .primary,.modal-foot .secondary{min-height:43px!important;margin:0!important;padding:0 18px!important;border-radius:12px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important}
.modal-body .benefits-accordion{margin:22px 0 0!important;border:1px solid var(--line)!important;border-radius:15px!important;overflow:hidden!important;background:var(--input)!important}.modal-body .benefits-accordion summary{padding:15px 17px!important;font-weight:800!important;cursor:pointer!important}.modal-body .permission-grid{padding:0 16px 16px!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.modal-body .permission-card{min-height:58px!important;padding:11px 12px!important;border:1px solid var(--line)!important;border-radius:12px!important;display:flex!important;flex-direction:row!important;align-items:center!important;gap:10px!important;background:var(--card-solid,var(--card))!important}.modal-body .permission-card input{width:17px!important;height:17px!important;min-height:17px!important;padding:0!important}.modal-body .permission-card span{display:flex;flex-direction:column;gap:2px}.modal-body .permission-card b{font-size:11.5px;color:var(--text)}.modal-body .permission-card small{font-size:9.5px}
/* Los formularios de configuración académica usan la misma escala visual */
.formcard{padding:22px!important}.formcard h2{margin:0 0 18px!important;font-size:17px!important}.formcard form{display:grid!important;gap:15px!important}.formcard .grid2{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:15px!important}.formcard .primary{justify-self:start!important;margin-top:2px!important}
/* Compatibilidad: modales administrativos antiguos adoptan el mismo ritmo */
dialog:not(.modal) .modalhead{min-height:78px!important;padding:19px 24px 17px!important}dialog:not(.modal) form>.grid2{padding:20px 0 10px!important;margin-left:24px!important;margin-right:24px!important;gap:17px 18px!important}dialog:not(.modal) form>.grid2>label{gap:7px!important}dialog:not(.modal) .modalactions{padding:14px 24px 18px!important;min-height:68px!important}
html[data-theme=dark] .modal-body input,html[data-theme=dark] .modal-body select,html[data-theme=dark] .modal-body textarea,html[data-theme=dark] .formcard input,html[data-theme=dark] .formcard select,html[data-theme=dark] .formcard textarea{border-color:#2b3950!important}html[data-theme=dark] .modal-x:hover{background:#242144!important;border-color:#514b8e!important}
@media(max-width:700px){.modal,.modal.wide{width:calc(100vw - 18px)!important;border-radius:19px!important}.modal-head{padding:17px 17px 15px!important;min-height:72px!important}.modal-head h2{font-size:18px!important}.modal-body{padding:18px 17px 20px!important}.modal-body>.grid2,.modal-body .permission-grid,.formcard .grid2{grid-template-columns:1fr!important}.modal-body .grid2>label.full{grid-column:auto!important}.modal-foot{padding:12px 17px 16px!important;min-height:64px!important}.modal-foot>*{flex:1!important}.formcard{padding:17px!important}}

/* V21 - formularios institucionales estables */
#userModal,#roleModal{font-family:Inter,"Segoe UI",Arial,sans-serif!important}
#userModal .modal-head,#roleModal .modal-head{background:linear-gradient(180deg,var(--card),color-mix(in srgb,var(--card) 96%,#6d5dfc 4%))!important}
#userModal .modal-body,#roleModal .modal-body{padding:26px!important}
#userModal .modal-body>.grid2,#roleModal .modal-body>.grid2{gap:20px!important}
#userModal label,#roleModal label{font-size:12px!important;font-weight:700!important;color:var(--muted)!important;gap:8px!important}
#userModal input,#userModal select,#roleModal input,#roleModal select{height:48px!important;border-radius:12px!important;padding:0 14px!important;font-size:13px!important}
#userModal .modal-foot,#roleModal .modal-foot{padding:16px 26px 20px!important}
#userModal .modal-x,#roleModal .modal-x{font-size:0!important}
#userModal .modal-x:before,#roleModal .modal-x:before{content:'×'!important;font-size:24px!important}
#roleModal .benefits-accordion{margin-top:24px!important}
#roleModal .permission-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
#roleModal .permission-card{cursor:pointer!important;transition:.18s ease!important}
#roleModal .permission-card:hover{border-color:#8b7cf6!important;transform:translateY(-1px)!important;box-shadow:0 8px 22px rgba(79,70,229,.08)!important}
@media(max-width:900px){#roleModal .permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:700px){#userModal .modal-body,#roleModal .modal-body{padding:18px!important}#roleModal .permission-grid{grid-template-columns:1fr!important}}
.permission-notice{display:flex;gap:.55rem;align-items:center;padding:1rem 1.15rem;margin:1rem 0;border:1px solid rgba(99,102,241,.16);background:rgba(99,102,241,.06)}
.permission-notice span{font-size:.86rem;color:var(--muted,#64748b)}
/* V24 — académico + matrícula profesional */
.academic-stack{display:grid;gap:18px}.academic-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.academic-card{overflow:hidden}.academic-card .sectiontitle{padding:18px 20px 12px;margin:0}.academic-card .tablewrap{border:0;box-shadow:none;border-radius:0}.academic-card table{min-width:0}.academic-card th,.academic-card td{padding:14px 16px}.actions-col{width:190px}.row-actions{display:flex;align-items:center;gap:7px;white-space:nowrap}.row-actions form{display:inline-flex;margin:0}.action-dot{width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:var(--input);display:inline-grid;place-items:center;cursor:pointer;color:#64748b;transition:.18s}.action-dot svg{width:15px;height:15px}.action-dot:hover{transform:translateY(-2px);box-shadow:0 7px 18px rgba(15,23,42,.09)}.action-dot.view:hover{color:#2563eb;border-color:#bfdbfe;background:#eff6ff}.action-dot.edit:hover{color:#6d28d9;border-color:#ddd6fe;background:#f5f3ff}.action-dot.toggle:hover{color:#b45309;border-color:#fde68a;background:#fffbeb}.action-dot.danger:hover{color:#dc2626;border-color:#fecaca;background:#fef2f2}.soft-add{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--input);color:var(--text);border-radius:11px;padding:9px 12px;font-weight:750;cursor:pointer}.soft-add svg{width:15px}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.detail-item{padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--input);display:flex;flex-direction:column;gap:5px}.detail-item span{font-size:10px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.detail-item b{font-size:13px}
.enrollment-modal{width:min(960px,calc(100vw - 32px))!important}.enrollment-modal .modal-head p{margin:6px 0 0;color:var(--muted);font-size:11px}.wizard-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:14px 26px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--card) 96%,#6d5dfc 4%)}.wizard-step{border:0;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:7px;padding:9px;border-radius:10px;font-size:11px;font-weight:800;cursor:pointer}.wizard-step span{width:23px;height:23px;border-radius:8px;background:var(--input);border:1px solid var(--line);display:grid;place-items:center}.wizard-step.active{color:#5b4ee6;background:rgba(101,88,232,.08)}.wizard-step.active span{background:#6558e8;color:white;border-color:#6558e8}.wizard-pane{display:none}.wizard-pane.active{display:block}.pane-title{display:flex;gap:12px;align-items:center;margin:0 0 20px;padding-bottom:14px;border-bottom:1px solid var(--line)}.pane-title>svg{width:20px;height:20px;color:#6558e8}.pane-title h3{margin:0;font-size:16px}.pane-title p{margin:4px 0 0;color:var(--muted);font-size:11px}.guardian-choice{padding:14px;border:1px solid rgba(101,88,232,.18);background:rgba(101,88,232,.05);border-radius:14px;margin-bottom:18px}.guardian-choice label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:750;color:#64748b}.guardian-choice select{height:46px;border:1px solid #dbe3ef;border-radius:12px;padding:0 14px;background:var(--input);color:var(--text)}.check-card{flex-direction:row!important;align-items:center!important;border:1px solid var(--line);border-radius:13px;padding:12px 14px;background:var(--input)}.check-card input{width:18px!important;height:18px!important;min-height:18px!important}.check-card span{display:flex;flex-direction:column;gap:2px}.check-card b{color:var(--text)}.linked-note,.privacy-note{display:flex;align-items:center;gap:9px;margin-top:16px;padding:12px 14px;border-radius:12px;background:#f8fafc;border:1px solid var(--line);font-size:11px;color:var(--muted)}.linked-note svg,.privacy-note svg{width:17px;color:#6558e8}.privacy-note{background:#fffbeb;border-color:#fde68a}.privacy-note svg{color:#b45309}.wizard-spacer{flex:1}.wizard-foot{justify-content:flex-start!important}
@media(max-width:900px){.academic-grid{grid-template-columns:1fr}.wizard-nav{grid-template-columns:repeat(2,1fr)}.academic-card table{min-width:650px}}
@media(max-width:650px){.wizard-nav{padding:10px 14px}.wizard-step{font-size:10px}.detail-grid{grid-template-columns:1fr}.wizard-foot{flex-wrap:wrap}.wizard-spacer{display:none}.wizard-foot>*{flex:1}}
/* V25 · formularios institucionales y gestión escolar */
.enrollment-modal{width:min(920px,calc(100vw - 36px))!important;max-height:min(820px,calc(100vh - 34px))!important;border-radius:24px!important;overflow:hidden!important}.enrollment-modal form{display:flex;flex-direction:column;max-height:inherit}.enrollment-modal .modal-head{padding:22px 28px 18px!important;min-height:auto!important}.enrollment-modal .modal-head h2{font-size:22px!important}.enrollment-modal .modal-head p{font-size:12px!important;line-height:1.5!important}.enrollment-modal .wizard-nav{display:flex!important;gap:7px!important;padding:12px 28px!important;background:var(--card)!important;overflow-x:auto}.enrollment-modal .wizard-step{flex:1;min-width:135px;justify-content:flex-start!important;padding:10px 12px!important;border:1px solid var(--line)!important;background:var(--input)!important;border-radius:12px!important}.enrollment-modal .wizard-step.active{background:rgba(101,88,232,.09)!important;border-color:rgba(101,88,232,.28)!important;color:#5b4ee6!important}.enrollment-modal .wizard-body{padding:24px 28px 28px!important;overflow-y:auto!important;min-height:0!important}.enrollment-modal .pane-title{margin-bottom:18px!important;padding:0 0 14px!important}.enrollment-modal .grid2{gap:17px 18px!important}.enrollment-modal label{gap:7px!important;font-size:11px!important}.enrollment-modal input,.enrollment-modal select,.enrollment-modal textarea{min-height:44px!important;padding:0 13px!important;font-size:12px!important}.enrollment-modal textarea{min-height:92px!important;padding-top:12px!important}.enrollment-modal .modal-foot{padding:14px 28px!important;background:var(--card)!important;border-top:1px solid var(--line)!important}.modal-x{width:38px!important;height:38px!important;border-radius:12px!important;border:1px solid var(--line)!important;background:var(--input)!important;color:var(--text)!important;display:grid!important;place-items:center!important}.modal-x svg{width:18px!important;height:18px!important}.pane-title>svg{padding:8px;width:38px!important;height:38px!important;border-radius:11px;background:rgba(101,88,232,.08)}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.compact-grid label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:750;color:var(--muted)}.compact-grid input,.compact-grid select{min-height:44px}.span2{grid-column:span 2}.span3{grid-column:span 3}.promotion-card,.attendance-console{padding:22px;margin-bottom:20px}.promotion-list{margin-top:20px;border:1px solid var(--line);border-radius:16px;overflow:hidden}.list-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--input);border-bottom:1px solid var(--line)}.list-head>div{display:flex;flex-direction:column;gap:3px}.list-head small{color:var(--muted)}.select-all{display:flex;align-items:center;gap:8px;font-size:11px}.promo-check{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);cursor:pointer}.promo-check:last-child{border-bottom:0}.promo-check:hover{background:rgba(101,88,232,.035)}.promo-check>input{width:18px!important;height:18px!important;min-height:18px!important}.promo-check>span:last-child{display:flex;flex-direction:column;gap:2px}.promo-check small{color:var(--muted)}.student-dot{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(101,88,232,.1);color:#5b4ee6;font-weight:850}.form-actions{display:flex;justify-content:flex-end;margin-top:18px}.attendance-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.section-picker{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:15px;background:var(--input)}.section-picker>p{margin:4px 0 12px;color:var(--muted);font-size:11px}.section-picker label{display:flex;flex-direction:row;align-items:center;gap:10px;padding:9px 6px;border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.section-picker input{width:18px!important;height:18px!important;min-height:18px!important}.attendance-badge{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:800}.a-present{background:#dcfce7;color:#15803d}.a-late{background:#ffedd5;color:#c2410c}.a-justified_late{background:#e0f2fe;color:#0369a1}.a-absent{background:#fee2e2;color:#b91c1c}
@media(max-width:900px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.span3{grid-column:span 2}.attendance-stats{grid-template-columns:1fr}.enrollment-modal .wizard-step{min-width:150px}}
@media(max-width:650px){.enrollment-modal{width:calc(100vw - 14px)!important;max-height:calc(100vh - 14px)!important}.enrollment-modal .modal-head,.enrollment-modal .wizard-body,.enrollment-modal .modal-foot{padding-left:16px!important;padding-right:16px!important}.enrollment-modal .wizard-nav{padding-left:16px!important;padding-right:16px!important}.grid4{grid-template-columns:1fr}.span2,.span3{grid-column:auto}.list-head{align-items:flex-start;gap:10px;flex-direction:column}}
/* V26 · promoción profesional, QR/carnets y cámara */
.promotion-pro{display:flex;flex-direction:column;gap:18px}.promo-flow,.promo-roster,.promo-submit{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 35px rgba(15,23,42,.05)}.promo-flow{padding:22px}.promo-flow-head{display:flex;align-items:center;gap:13px;margin-bottom:20px}.promo-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,#6658e8,#7c3aed);color:#fff}.promo-icon svg{width:20px}.promo-flow h2,.promo-roster h2{margin:0;font-size:16px}.promo-flow p,.promo-roster p{margin:4px 0 0;color:var(--muted);font-size:11px}.promo-selectors{display:grid;grid-template-columns:1fr 1.35fr 42px 1fr 1.35fr;gap:12px;align-items:end}.promo-selectors label{display:flex;flex-direction:column;gap:7px}.promo-selectors label>span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:var(--muted)}.promo-selectors select{height:46px;border:1px solid var(--line);border-radius:12px;padding:0 13px;background:var(--input);color:var(--text)}.promo-arrow{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:rgba(101,88,232,.09);color:#6558e8;margin-bottom:4px}.promo-roster{overflow:hidden}.promo-roster-head{padding:18px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.select-pill{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);border-radius:11px;font-size:11px;font-weight:750;cursor:pointer}.select-pill input{width:16px;height:16px}.promo-student-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px}.promo-student{position:relative;display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--input);cursor:pointer;transition:.18s}.promo-student:hover{border-color:rgba(101,88,232,.35);transform:translateY(-1px)}.promo-student>input{position:absolute;opacity:0}.student-avatar{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#ede9fe,#dbeafe);color:#5b4ee6;font-weight:900}.student-info{display:flex;flex-direction:column;min-width:0;gap:2px}.student-info b{font-size:12px}.student-info small{font-size:10px;color:var(--muted)}.student-info em{font-size:9px;color:#6558e8;font-style:normal;font-weight:700}.check-mark{margin-left:auto;width:26px;height:26px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;color:transparent}.promo-student:has(input:checked){border-color:#8b7cf6;background:rgba(101,88,232,.055)}.promo-student:has(input:checked) .check-mark{background:#6558e8;color:#fff;border-color:#6558e8}.check-mark svg{width:14px}.promo-empty{text-align:center;padding:44px 20px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:6px}.promo-empty svg{width:34px;height:34px;color:#8b7cf6}.promo-empty b{color:var(--text)}.promo-submit{padding:14px 18px;display:flex;justify-content:space-between;align-items:center}.promo-submit>div{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px}.promo-submit>div svg{width:17px;color:#10b981}
.id-toolbar{padding:14px;display:grid;grid-template-columns:minmax(240px,2fr) repeat(3,minmax(135px,1fr)) auto;gap:10px;align-items:end;margin-bottom:16px}.id-toolbar label{font-size:10px;font-weight:800;color:var(--muted);display:flex;flex-direction:column;gap:6px}.id-toolbar select{height:42px;border:1px solid var(--line);border-radius:11px;background:var(--input);color:var(--text);padding:0 11px}.id-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.id-summary>div{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid var(--line);border-radius:16px;background:var(--card)}.id-summary svg{width:22px;color:#6558e8}.id-summary span{display:flex;flex-direction:column}.id-summary b{font-size:11px}.id-summary small{font-size:9px;color:var(--muted);margin-top:2px}.id-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.student-id-card{position:relative;border:1px solid var(--line);border-radius:19px;background:var(--card);overflow:hidden;box-shadow:0 10px 30px rgba(15,23,42,.05)}.card-select{position:absolute;right:14px;top:14px;z-index:2}.card-select input{width:18px;height:18px;accent-color:#6558e8}.id-card-top{padding:14px 18px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,rgba(101,88,232,.07),rgba(20,184,166,.05))}.mini-brand img,.mini-brand span{width:36px;height:36px;border-radius:10px;object-fit:contain;background:#fff;display:grid;place-items:center}.id-card-top>div:last-child{display:flex;flex-direction:column}.id-card-top small{font-size:9px;color:var(--muted)}.id-card-top b{font-size:11px;letter-spacing:.08em;color:#5b4ee6}.id-card-body{padding:16px 18px;display:grid;grid-template-columns:58px 1fr 88px;align-items:center;gap:13px}.student-photo{width:56px;height:66px;border-radius:13px;background:var(--input);border:1px solid var(--line);display:grid;place-items:center;color:#94a3b8}.student-photo svg{width:25px}.student-card-data h3{font-size:13px;margin:0 0 6px}.student-card-data p{font-size:10px;color:var(--muted);margin:3px 0}.qr-box{width:84px;height:84px;padding:1px;background:#fff}.qr-box img,.qr-box canvas{width:82px!important;height:82px!important}.id-card-actions{display:flex;justify-content:flex-end;gap:7px;padding:10px 14px;border-top:1px solid var(--line)}.mini-action{width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:var(--input);color:#64748b;display:grid;place-items:center;cursor:pointer}.mini-action:hover{color:#6558e8;border-color:#c4b5fd}.mini-action svg{width:16px}.qr-modal{width:min(430px,calc(100vw - 24px))!important}.qr-preview-box{width:280px;height:280px;padding:10px;background:#fff;border-radius:18px;margin:0 auto;display:grid;place-items:center}.qr-help{text-align:center;color:var(--muted);font-size:11px}.title-actions{display:flex;gap:9px}.camera-modal{width:min(560px,calc(100vw - 20px))!important}.camera-stage{position:relative;aspect-ratio:1/1;max-height:520px;border-radius:20px;overflow:hidden;background:#050816}.camera-stage video{width:100%;height:100%;object-fit:cover}.scan-frame{position:absolute;inset:17%;border-radius:22px}.scan-frame>span{position:absolute;width:44px;height:44px;border-color:#fff}.scan-frame>span:nth-child(1){left:0;top:0;border-left:4px solid;border-top:4px solid;border-radius:12px 0 0 0}.scan-frame>span:nth-child(2){right:0;top:0;border-right:4px solid;border-top:4px solid;border-radius:0 12px 0 0}.scan-frame>span:nth-child(3){left:0;bottom:0;border-left:4px solid;border-bottom:4px solid;border-radius:0 0 0 12px}.scan-frame>span:nth-child(4){right:0;bottom:0;border-right:4px solid;border-bottom:4px solid;border-radius:0 0 12px 0}.scan-line{position:absolute;left:8%;right:8%;height:2px;background:#5eead4;box-shadow:0 0 12px #2dd4bf;animation:scanmove 2.2s ease-in-out infinite}@keyframes scanmove{0%,100%{top:12%}50%{top:88%}}.camera-status{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);white-space:nowrap;padding:8px 12px;border-radius:999px;background:rgba(15,23,42,.72);color:#fff;font-size:10px;backdrop-filter:blur(8px)}.camera-tip{display:flex;align-items:center;justify-content:center;gap:7px;color:var(--muted);font-size:10px}.camera-tip svg{width:15px}
@media(max-width:1050px){.promo-selectors{grid-template-columns:1fr 1fr}.promo-arrow{display:none}.id-toolbar{grid-template-columns:1fr 1fr}.id-grid{grid-template-columns:1fr}}@media(max-width:650px){.promo-selectors,.promo-student-grid,.id-toolbar,.id-summary{grid-template-columns:1fr}.promo-roster-head,.promo-submit{align-items:flex-start;flex-direction:column;gap:12px}.promo-submit .primary{width:100%;justify-content:center}.id-card-body{grid-template-columns:50px 1fr 78px}.qr-box,.qr-box img,.qr-box canvas{width:74px!important;height:74px!important}.title-actions{width:100%;flex-direction:column}.title-actions button{justify-content:center}}
@media print{body.printing-one *,body.printing-selected *{visibility:hidden!important}.printing-one .student-id-card.print-me,.printing-one .student-id-card.print-me *,.printing-selected .student-id-card.print-me,.printing-selected .student-id-card.print-me *{visibility:visible!important}.printing-one .student-id-card.print-me,.printing-selected .student-id-card.print-me{position:relative!important;display:inline-block!important;width:86mm!important;height:54mm!important;margin:4mm!important;break-inside:avoid;border:1px solid #ddd!important}.printing-one .id-card-actions,.printing-selected .id-card-actions,.printing-one .card-select,.printing-selected .card-select{display:none!important}.printing-one aside,.printing-selected aside,.printing-one header,.printing-selected header{display:none!important}}

/* V27 carnet templates + notifications */
.nav-count{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:grid;place-items:center;background:#ef4444;color:#fff;font-size:10px;font-style:normal;font-weight:800}.card-template-modal{width:min(900px,94vw)}.template-layout{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(300px,1.1fr);gap:28px;align-items:start}.template-preview{margin:auto;border-radius:24px;background:#eef2ff center/cover no-repeat;box-shadow:0 24px 60px #17255426;position:relative;overflow:hidden;border:1px solid #dbe3f1;transition:.25s}.template-preview.vertical{width:270px;aspect-ratio:54/86}.template-preview.horizontal{width:390px;aspect-ratio:86/54}.template-preview:after,.student-id-card[style*="background-image"]:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#ffffff0d,#ffffffc7);z-index:0;pointer-events:none}.template-safe{position:absolute;inset:18px;z-index:1;border:1px dashed #ffffffaa;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;color:#111827}.fake-photo{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:#fff}.fake-photo svg{width:30px}.fake-qr{width:58px;height:58px;background:#fff;border-radius:10px;display:grid;place-items:center}.fake-qr svg{width:42px;height:42px}.template-controls{display:grid;gap:16px}.upload-zone{min-height:96px;border:1.5px dashed #a5b4fc;border-radius:18px;padding:18px;display:flex!important;align-items:center;gap:14px;background:#f8faff;cursor:pointer}.upload-zone input{display:none}.upload-zone>svg{width:28px;height:28px;color:#5b4df5}.upload-zone span{display:flex;flex-direction:column;gap:3px}.upload-zone small{font-weight:400;color:#74809a}.field-options{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.field-options>b{grid-column:1/-1}.field-options label{display:flex!important;flex-direction:row!important;align-items:center;gap:9px;padding:11px 12px;border:1px solid #e2e8f0;border-radius:12px}.field-options input{width:17px;height:17px}.student-id-card{background-position:center;background-size:cover;position:relative}.student-id-card>*{position:relative;z-index:1}.student-id-card.horizontal{min-height:245px}.notification-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.notification-list{display:grid;gap:10px}.notification-item{display:grid;grid-template-columns:46px 1fr auto;gap:14px;align-items:center;padding:16px 18px;border:1px solid #e5eaf3;border-radius:18px;background:#fff;box-shadow:0 8px 28px #1725540a}.notification-item.unread{border-color:#c7d2fe;background:linear-gradient(90deg,#f5f3ff,#fff)}.notification-icon{width:42px;height:42px;border-radius:13px;background:#eeecff;color:#5b4df5;display:grid;place-items:center}.notification-icon svg{width:20px}.notification-copy>div{display:flex;justify-content:space-between;gap:14px}.notification-copy p{margin:5px 0;color:#39455f}.notification-copy small,.notification-copy span{color:#8993a8;font-size:11px}.empty-state{padding:50px;display:flex;flex-direction:column;align-items:center;gap:8px;border:1px dashed #dbe2ee;border-radius:20px;color:#7b879e}.empty-state svg{width:34px;height:34px}
@media(max-width:760px){.template-layout{grid-template-columns:1fr}.template-preview.horizontal{width:min(390px,100%)}.notification-summary{grid-template-columns:1fr}.notification-item{grid-template-columns:42px 1fr}.notification-item form{grid-column:2}.field-options{grid-template-columns:1fr}}

/* V28 student UX */
.row-actions{display:flex;align-items:center;gap:7px;white-space:nowrap}.row-actions form{display:inline-flex;margin:0}.row-actions .iconbtn{width:36px;height:36px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e1e6f0;background:#fff;color:#44506a;transition:.18s}.row-actions .iconbtn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(48,43,92,.12);color:#5b4ff1;border-color:#cfc9ff}.row-actions .iconbtn svg{width:17px;height:17px;stroke-width:1.8}.row-actions .danger-soft:hover{color:#d63d55;background:#fff4f6;border-color:#ffd1d8}.row-actions .success-soft:hover{color:#12805c;background:#effcf6;border-color:#bcebd8}.student-photo-upload{display:flex;align-items:center;gap:16px;padding:14px 16px;margin:0 0 18px;border:1px solid #e2e7f1;border-radius:16px;background:#fafbfe}.student-photo-preview{width:74px;height:82px;border-radius:15px;background:#f0efff;color:#6658f5;display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 auto}.student-photo-preview img{width:100%;height:100%;object-fit:cover}.student-photo-preview svg{width:24px}.student-photo-upload label{display:flex;flex-direction:column;gap:5px;flex:1}.student-photo-upload label span{font-size:12px;color:#77829b}.student-photo-upload input[type=file]{margin-top:5px;padding:9px;border:1px dashed #cbd3e2;border-radius:10px;background:#fff}@media(max-width:800px){.row-actions{gap:5px}.row-actions .iconbtn{width:34px;height:34px}.student-photo-upload{align-items:flex-start}}

/* V29 carnet renderer + reportes */
.card-template-modal{width:min(980px,calc(100vw - 28px))!important;overflow:hidden}.card-template-modal form{display:flex;flex-direction:column;max-height:90vh}.card-template-modal .modal-body{overflow:auto;padding:22px!important}.template-layout{grid-template-columns:360px minmax(0,1fr)!important;gap:24px!important}.template-preview{position:sticky!important;top:0;z-index:1;max-width:100%;box-sizing:border-box}.template-preview.vertical{width:250px!important}.template-preview.horizontal{width:350px!important}.template-controls{min-width:0}.student-photo{overflow:hidden}.student-photo img{width:100%;height:100%;object-fit:cover;display:block}.student-id-card.vertical{max-width:340px;margin:auto;min-height:500px}.student-id-card.vertical .id-card-body{grid-template-columns:1fr;text-align:center}.student-id-card.vertical .student-photo{margin:auto;width:92px;height:108px}.student-id-card.vertical .qr-box{margin:auto}.student-id-card.horizontal .id-card-body{grid-template-columns:68px 1fr 88px}.report-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.report-stats>div{position:relative;padding:18px 20px;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:0 10px 30px rgba(15,23,42,.04)}.report-stats span{display:block;color:var(--muted);font-size:11px}.report-stats b{font-size:26px;display:block;margin-top:6px}.report-stats svg{position:absolute;right:18px;top:18px;width:22px;color:#6558e8}.report-filter{display:grid;grid-template-columns:1fr 1fr 2fr auto;gap:12px;align-items:end;margin-bottom:16px}.report-filter label{font-size:10px;font-weight:800;color:var(--muted)}.report-filter input,.report-filter select{margin-top:6px}.status-pill{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:800}.status-present{background:#dcfce7;color:#15803d}.status-late,.status-justified_late{background:#fef3c7;color:#a16207}.status-absent{background:#fee2e2;color:#b91c1c}@media(max-width:800px){.template-layout{grid-template-columns:1fr!important}.template-preview{position:relative!important}.report-stats{grid-template-columns:1fr 1fr}.report-filter{grid-template-columns:1fr}}
@media print{body.printing-one .student-id-card.print-me,body.printing-selected .student-id-card.print-me{width:86mm!important;height:54mm!important;min-height:54mm!important;max-width:86mm!important;margin:3mm!important;border-radius:3mm!important;box-shadow:none!important;overflow:hidden!important}.printing-one .student-id-card.print-me.vertical,.printing-selected .student-id-card.print-me.vertical{width:54mm!important;height:86mm!important;min-height:86mm!important;max-width:54mm!important}.printing-one .student-id-card.print-me .id-card-top,.printing-selected .student-id-card.print-me .id-card-top{padding:3mm!important}.printing-one .student-id-card.print-me .id-card-body,.printing-selected .student-id-card.print-me .id-card-body{padding:3mm!important}.printing-one .student-id-card.print-me .student-photo,.printing-selected .student-id-card.print-me .student-photo{width:15mm!important;height:18mm!important}.printing-one .student-id-card.print-me.vertical .student-photo,.printing-selected .student-id-card.print-me.vertical .student-photo{width:20mm!important;height:24mm!important}.printing-one .student-id-card.print-me .qr-box,.printing-selected .student-id-card.print-me .qr-box{width:20mm!important;height:20mm!important}.printing-one .student-id-card.print-me .qr-box img,.printing-selected .student-id-card.print-me .qr-box img,.printing-one .student-id-card.print-me .qr-box canvas,.printing-selected .student-id-card.print-me .qr-box canvas{width:20mm!important;height:20mm!important}.report-filter,.title .secondary,aside,.shell>header{display:none!important}.report-table{box-shadow:none!important;border:0!important}.report-stats>div{box-shadow:none!important}}

/* V30 - Impresion profesional de carnets CR80 y selector alineado */
.card-select{left:12px!important;right:auto!important;top:12px!important;width:28px;height:28px;display:grid!important;place-items:center;background:#fff;border:1px solid #dbe3f1;border-radius:9px;box-shadow:0 4px 14px rgba(15,23,42,.10)}
.card-select input{appearance:none;-webkit-appearance:none;width:17px!important;height:17px!important;margin:0!important;border:1.5px solid #94a3b8;border-radius:5px;background:#fff;display:grid;place-content:center;cursor:pointer}
.card-select input:checked{background:#5b4df5;border-color:#5b4df5}.card-select input:checked:after{content:'✓';color:#fff;font-size:12px;font-weight:900;line-height:1}
@page{size:A4 portrait;margin:10mm}
@media print{
 html,body{margin:0!important;padding:0!important;background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
 body.printing-one .shell,body.printing-selected .shell{margin:0!important;padding:0!important;display:block!important}
 body.printing-one main,body.printing-selected main{margin:0!important;padding:0!important;width:auto!important;background:#fff!important}
 body.printing-one #idGrid,body.printing-selected #idGrid{visibility:visible!important;position:absolute!important;left:0!important;top:0!important;width:190mm!important;display:grid!important;grid-template-columns:repeat(3,54mm)!important;grid-auto-rows:86mm!important;gap:5mm 7mm!important;align-content:start!important;justify-content:start!important;margin:0!important;padding:0!important}
 body.printing-one .student-id-card:not(.print-me),body.printing-selected .student-id-card:not(.print-me){display:none!important}
 body.printing-one .student-id-card.print-me,body.printing-selected .student-id-card.print-me{visibility:visible!important;position:relative!important;display:block!important;margin:0!important;box-sizing:border-box!important;break-inside:avoid!important;page-break-inside:avoid!important;background-position:center!important;background-size:100% 100%!important;background-repeat:no-repeat!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
 body.printing-one .student-id-card.print-me *,body.printing-selected .student-id-card.print-me *{visibility:visible!important}
 body.printing-one .student-id-card.print-me.vertical,body.printing-selected .student-id-card.print-me.vertical{width:54mm!important;height:86mm!important;min-height:86mm!important;max-width:54mm!important}
 body.printing-one .student-id-card.print-me.horizontal,body.printing-selected .student-id-card.print-me.horizontal{width:86mm!important;height:54mm!important;min-height:54mm!important;max-width:86mm!important}
 body.printing-one #idGrid:has(.student-id-card.horizontal.print-me),body.printing-selected #idGrid:has(.student-id-card.horizontal.print-me){grid-template-columns:repeat(2,86mm)!important;grid-auto-rows:54mm!important;gap:6mm 8mm!important}
 .printing-one .student-id-card.print-me:after,.printing-selected .student-id-card.print-me:after{display:none!important}
 .printing-one .id-card-actions,.printing-selected .id-card-actions,.printing-one .card-select,.printing-selected .card-select{display:none!important}
}
\n\n/* V31 · ajuste fino de carnet CR80, QR y selector lateral */
/* Selector fuera del área imprimible del carnet para no tapar la plantilla */
#idGrid{column-gap:34px!important;row-gap:24px!important;padding-left:38px!important}
.student-id-card{overflow:visible!important}
.student-id-card:after{border-radius:19px}
.card-select{left:-38px!important;right:auto!important;top:18px!important;width:30px!important;height:30px!important;border-radius:10px!important;background:var(--card)!important;box-shadow:0 6px 18px rgba(15,23,42,.12)!important}
.card-select:hover{border-color:#a99fff!important;box-shadow:0 8px 22px rgba(91,77,245,.18)!important}
/* QR ligeramente menor y un poco más alto */
.qr-box{width:74px!important;height:74px!important;padding:1px!important;transform:translateY(-7px)}
.qr-box img,.qr-box canvas{width:72px!important;height:72px!important;display:block!important}
.student-id-card.vertical .qr-box{margin-top:-2px!important}
@media(max-width:760px){#idGrid{padding-left:34px!important;grid-template-columns:1fr!important}.card-select{left:-34px!important}}
@media print{
 /* La hoja útil A4 queda ordenada: vertical 3 por fila, horizontal 2 por fila. */
 body.printing-one #idGrid,body.printing-selected #idGrid{padding:0!important;column-gap:7mm!important;row-gap:5mm!important;grid-template-columns:repeat(3,54mm)!important;grid-auto-rows:86mm!important}
 body.printing-one #idGrid:has(.student-id-card.horizontal.print-me),body.printing-selected #idGrid:has(.student-id-card.horizontal.print-me){grid-template-columns:repeat(2,86mm)!important;grid-auto-rows:54mm!important;column-gap:8mm!important;row-gap:6mm!important}
 body.printing-one .student-id-card.print-me,body.printing-selected .student-id-card.print-me{overflow:hidden!important}
 .printing-one .student-id-card.print-me .qr-box,.printing-selected .student-id-card.print-me .qr-box{width:17mm!important;height:17mm!important;transform:translateY(-2mm)!important}
 .printing-one .student-id-card.print-me .qr-box img,.printing-selected .student-id-card.print-me .qr-box img,.printing-one .student-id-card.print-me .qr-box canvas,.printing-selected .student-id-card.print-me .qr-box canvas{width:17mm!important;height:17mm!important}
}

/* V32 · cierre de carnets: proporción física CR80 + QR único + selector limpio */
#idGrid{grid-template-columns:repeat(auto-fit,minmax(54mm,54mm))!important;justify-content:space-around!important;gap:24px 28px!important;padding:12px 42px!important;align-items:start!important}
.student-id-card.vertical{width:54mm!important;height:86mm!important;min-height:86mm!important;max-width:54mm!important;margin:0!important;box-sizing:border-box!important;background-size:100% 100%!important;background-position:center!important;background-repeat:no-repeat!important;overflow:visible!important}
.student-id-card.horizontal{width:86mm!important;height:54mm!important;min-height:54mm!important;max-width:86mm!important;margin:0!important;box-sizing:border-box!important;background-size:100% 100%!important;background-position:center!important;background-repeat:no-repeat!important;overflow:visible!important}
.student-id-card .id-card-top,.student-id-card .id-card-body{box-sizing:border-box!important}
.student-id-card.vertical .id-card-top{padding:10px 12px!important}
.student-id-card.vertical .id-card-body{padding:12px 10px 8px!important;gap:8px!important}
.student-id-card.vertical .student-photo{width:22mm!important;height:25mm!important;max-width:84px!important;max-height:95px!important}
.student-id-card.vertical .student-card-data h3{font-size:12px!important;line-height:1.15!important;margin:2px 0 6px!important}
.student-id-card.vertical .student-card-data p{font-size:9px!important;line-height:1.2!important;margin:2px 0!important}
/* QRCode.js crea canvas + img en algunos navegadores: mostramos una sola representación. */
.qr-box{width:18mm!important;height:18mm!important;max-width:68px!important;max-height:68px!important;padding:0!important;margin:2px auto 0!important;transform:translateY(-4px)!important;overflow:hidden!important;background:#fff!important}
.qr-box canvas{display:none!important}
.qr-box img{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;margin:0!important}
/* selector circular, fuera del fotocheck */
.card-select{position:absolute!important;left:-34px!important;top:12px!important;width:24px!important;height:24px!important;padding:0!important;border:0!important;border-radius:50%!important;background:#fff!important;box-shadow:0 3px 12px rgba(15,23,42,.14)!important;display:grid!important;place-items:center!important;z-index:8!important;cursor:pointer!important}
.card-select input{appearance:none!important;-webkit-appearance:none!important;width:20px!important;height:20px!important;margin:0!important;border:2px solid #cbd5e1!important;border-radius:50%!important;background:#fff!important;display:grid!important;place-items:center!important;cursor:pointer!important}
.card-select input:checked{border-color:#5b4df5!important;background:#5b4df5!important}
.card-select input:checked:after{content:'✓'!important;color:#fff!important;font-size:12px!important;font-weight:900!important;line-height:1!important}
.card-select span{display:none!important}
@media(max-width:760px){#idGrid{grid-template-columns:1fr!important;justify-items:center!important;padding-left:46px!important}.student-id-card.horizontal{max-width:calc(100vw - 90px)!important}}
@media print{
 @page{size:A4 portrait;margin:10mm!important}
 body.printing-one #idGrid,body.printing-selected #idGrid{position:absolute!important;left:0!important;top:0!important;width:190mm!important;display:grid!important;grid-template-columns:repeat(3,54mm)!important;grid-auto-rows:86mm!important;column-gap:7mm!important;row-gap:4mm!important;justify-content:start!important;align-content:start!important;padding:0!important;margin:0!important}
 body.printing-one #idGrid:has(.student-id-card.horizontal.print-me),body.printing-selected #idGrid:has(.student-id-card.horizontal.print-me){grid-template-columns:repeat(2,86mm)!important;grid-auto-rows:54mm!important;column-gap:8mm!important;row-gap:5mm!important}
 body.printing-one .student-id-card.print-me.vertical,body.printing-selected .student-id-card.print-me.vertical{width:54mm!important;height:86mm!important;min-height:86mm!important;max-width:54mm!important}
 body.printing-one .student-id-card.print-me.horizontal,body.printing-selected .student-id-card.print-me.horizontal{width:86mm!important;height:54mm!important;min-height:54mm!important;max-width:86mm!important}
 body.printing-one .student-id-card.print-me,body.printing-selected .student-id-card.print-me{margin:0!important;background-size:100% 100%!important;background-position:center!important;background-repeat:no-repeat!important;overflow:hidden!important}
 .printing-one .student-id-card.print-me .qr-box,.printing-selected .student-id-card.print-me .qr-box{width:18mm!important;height:18mm!important;max-width:18mm!important;max-height:18mm!important;transform:translateY(-1.5mm)!important}
 .printing-one .student-id-card.print-me .qr-box canvas,.printing-selected .student-id-card.print-me .qr-box canvas{display:none!important}
 .printing-one .student-id-card.print-me .qr-box img,.printing-selected .student-id-card.print-me .qr-box img{display:block!important;width:18mm!important;height:18mm!important}
 .printing-one .card-select,.printing-selected .card-select,.printing-one .id-card-actions,.printing-selected .id-card-actions{display:none!important}
}

/* V33 · configuración institucional, lector QR y reportes inteligentes */
.school-settings-card{max-width:1080px}.settings-brand{display:flex;align-items:center;gap:18px;padding:4px 0 24px;margin-bottom:22px;border-bottom:1px solid var(--border)}.school-logo-preview{width:82px;height:82px;border-radius:22px;background:linear-gradient(145deg,#f5f3ff,#ecfeff);border:1px solid #ddd9ff;display:grid;place-items:center;overflow:hidden}.school-logo-preview img{width:100%;height:100%;object-fit:contain;padding:10px}.school-logo-preview svg{width:34px;height:34px;color:#6557f5}.upload-pro{padding:14px;border:1px dashed #c9c4ff;border-radius:16px;background:linear-gradient(145deg,rgba(101,87,245,.04),rgba(34,211,238,.03))}.upload-pro input{margin-top:8px}.camera-modal{width:min(560px,94vw)!important}.camera-modal .modal-body{padding:22px!important}.camera-stage{width:min(390px,78vw)!important;aspect-ratio:1/1!important;margin:0 auto!important;border-radius:26px!important;overflow:hidden!important;background:#0b1020!important;box-shadow:0 20px 50px rgba(15,23,42,.22)!important}.camera-stage video{width:100%!important;height:100%!important;object-fit:cover!important}.scan-frame{inset:50%!important;transform:translate(-50%,-50%)!important;width:66%!important;height:66%!important}.camera-tip{text-align:center!important;margin:16px 0 0!important;color:var(--muted)!important}.report-auto{display:grid!important;grid-template-columns:minmax(280px,1.7fr) repeat(3,minmax(150px,1fr))!important;gap:14px!important;align-items:end!important}.smart-search{position:relative}.smart-search>svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;z-index:2}.smart-search input{padding-left:42px!important}.smart-results{display:none;position:absolute;z-index:40;left:0;right:0;top:calc(100% + 8px);background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:0 18px 45px rgba(15,23,42,.16);padding:7px;max-height:320px;overflow:auto}.smart-results.show{display:block}.smart-results button{width:100%;border:0;background:transparent;color:inherit;text-align:left;padding:11px 12px;border-radius:11px;display:flex;flex-direction:column;gap:3px;cursor:pointer}.smart-results button:hover{background:rgba(101,87,245,.08)}.smart-results small{color:var(--muted)}.report-table .row-actions{flex-wrap:nowrap}.action-dot svg{width:17px!important;height:17px!important;stroke-width:1.9!important}@media(max-width:980px){.report-auto{grid-template-columns:1fr 1fr!important}.report-student-search{grid-column:1/-1}}@media(max-width:640px){.report-auto{grid-template-columns:1fr!important}.report-student-search{grid-column:auto}.settings-brand{align-items:flex-start}.school-settings-card .grid2{grid-template-columns:1fr!important}}
/* V34 */
.weekday-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:14px 0 22px}.weekday-grid label{display:flex;align-items:center;gap:9px;border:1px solid var(--line,#e5e7eb);border-radius:14px;padding:12px;background:var(--card,#fff);cursor:pointer}.weekday-grid input{width:18px;height:18px;accent-color:#6557f5}.switch-row{display:flex!important;align-items:flex-start;gap:12px;padding:15px 16px;border:1px solid var(--line,#e5e7eb);border-radius:15px;margin:12px 0;background:rgba(101,87,245,.035)}.switch-row input{width:20px;height:20px;accent-color:#6557f5}.switch-row span{display:grid;gap:3px}.switch-row small{color:#77819a}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}@media(max-width:800px){.grid3{grid-template-columns:1fr}}
/* V35 Portal familiar + calendario visual */
.parent-portal main{max-width:1500px;margin:auto}.parent-childbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:22px}.parent-childbar h1{margin:4px 0;font-size:28px}.parent-childbar p{margin:0;color:var(--muted)}.child-switcher{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.child-chip{display:flex;align-items:center;gap:10px;padding:9px 13px;border:1px solid var(--border);border-radius:15px;background:var(--card);color:inherit;text-decoration:none;box-shadow:0 7px 22px rgba(15,23,42,.04)}.child-chip>span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#f0efff;color:#5b4df5;font-weight:900}.child-chip div{display:flex;flex-direction:column}.child-chip small{color:var(--muted);font-size:10px}.child-chip.active{border-color:#776af7;box-shadow:0 9px 28px rgba(91,77,245,.14);background:linear-gradient(135deg,rgba(91,77,245,.08),var(--card))}.parent-bell{position:relative}.parent-bell span{position:absolute;right:-4px;top:-5px;min-width:17px;height:17px;border-radius:20px;background:#ef4444;color:white;font-size:9px;display:grid;place-items:center;font-weight:800}.parent-user{display:flex;flex-direction:column}.parent-user small{color:var(--muted);font-size:10px}.parent-portal aside nav a{position:relative}.parent-portal aside nav a em{margin-left:auto;background:#ef4444;color:#fff;font-style:normal;font-size:9px;min-width:18px;height:18px;border-radius:10px;display:grid;place-items:center}.parent-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.parent-kpis article{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--border);border-radius:20px;padding:18px;box-shadow:0 10px 32px rgba(15,23,42,.045)}.parent-kpis article>div{display:flex;flex-direction:column}.parent-kpis small,.parent-kpis em{font-style:normal;color:var(--muted);font-size:10px}.parent-kpis b{font-size:25px;line-height:1.2;margin:3px 0}.kicon{width:45px;height:45px;border-radius:14px;display:grid;place-items:center}.kicon svg{width:21px}.kicon.ok{background:#dcfce7;color:#15803d}.kicon.warn{background:#fef3c7;color:#b45309}.kicon.bad{background:#fee2e2;color:#b91c1c}.kicon.info{background:#ede9fe;color:#6d28d9}.parent-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:18px}.donut-wrap{display:flex;align-items:center;justify-content:center;gap:42px;padding:20px}.donut{--p:0;width:175px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(#5b4df5 calc(var(--p)*1%),#e9eaf2 0)}.donut:after{content:'';position:absolute;inset:17px;background:var(--card);border-radius:50%}.donut strong,.donut span{z-index:1;position:absolute}.donut strong{font-size:32px;transform:translateY(-8px)}.donut span{font-size:10px;color:var(--muted);transform:translateY(20px)}.chart-legend{min-width:190px}.chart-legend>div{display:grid;grid-template-columns:12px 1fr auto;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.dot{width:9px;height:9px;border-radius:50%}.dot.present{background:#5b4df5}.dot.late{background:#f59e0b}.dot.absent{background:#ef4444}.parent-event-list{display:grid;gap:9px}.parent-event{display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:center;padding:11px;border:1px solid var(--border);border-radius:15px}.parent-event time{height:48px;border-radius:12px;background:#f4f3ff;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#5b4df5}.parent-event time b{font-size:18px}.parent-event time span{font-size:8px}.parent-event>div{display:flex;flex-direction:column}.parent-event small{color:var(--muted);margin-top:3px}.parent-event.off time{background:#fee2e2;color:#b91c1c}.parent-event.academic time{background:#fef3c7;color:#b45309}.calendar-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:16px}.calendar-head h1{margin:4px 0}.calendar-head p{color:var(--muted);margin:0}.calendar-nav{display:flex;align-items:center;gap:7px}.calendar-nav a{min-height:38px;padding:0 13px;border:1px solid var(--border);background:var(--card);border-radius:11px;display:flex;align-items:center;justify-content:center;color:inherit;text-decoration:none}.calendar-nav svg{width:17px}.month-calendar{background:var(--card);border:1px solid var(--border);border-radius:22px;overflow:hidden;box-shadow:0 12px 35px rgba(15,23,42,.045)}.weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays b{padding:12px;text-align:center;font-size:10px;color:var(--muted);background:rgba(100,116,139,.05)}.day{min-height:120px;border-top:1px solid var(--border);border-right:1px solid var(--border);padding:9px;overflow:hidden}.day:nth-child(7n){border-right:0}.day>span{width:26px;height:26px;display:grid;place-items:center;font-size:11px;font-weight:800}.day.today>span{background:#5b4df5;color:#fff;border-radius:50%}.day.muted{background:rgba(100,116,139,.025)}.cal-event{font-size:9px;padding:5px 7px;border-radius:7px;margin-top:5px;background:#eeecff;color:#4f46e5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event.off{background:#fee2e2;color:#b91c1c}.cal-event.academic{background:#fef3c7;color:#a16207}.day>small{font-size:8px;color:var(--muted)}
@media(max-width:1100px){.parent-kpis{grid-template-columns:1fr 1fr}.parent-grid{grid-template-columns:1fr}.parent-childbar{align-items:flex-start;flex-direction:column}.child-switcher{justify-content:flex-start}.day{min-height:95px}.cal-event{font-size:8px}}
@media(max-width:650px){.parent-kpis{grid-template-columns:1fr}.donut-wrap{flex-direction:column;gap:20px}.month-calendar{overflow-x:auto}.weekdays,.month-grid{min-width:760px}.parent-user{display:none}.child-chip{flex:1 1 140px}}
/* V36 Portal familia/estudiante */
.parent-portal .app{margin-left:238px;min-width:0}.parent-portal .app>header{left:238px}.parent-portal main{padding:30px 32px 50px;overflow:hidden}.parent-portal .parent-childbar{background:var(--card);border:1px solid var(--border);border-radius:22px;padding:18px 20px}.portal-pagehead{display:flex;align-items:end;justify-content:space-between;margin:0 0 18px}.portal-pagehead h1{font-size:28px;margin:5px 0}.portal-pagehead p{margin:0;color:var(--muted)}.report-filter{display:flex;gap:12px;align-items:end;padding:16px;background:var(--card);border:1px solid var(--border);border-radius:18px;margin-bottom:16px}.report-filter label,.profile-fields label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:800;color:var(--muted)}.report-filter input,.profile-fields input{height:44px;border:1px solid var(--border);border-radius:12px;background:var(--input);padding:0 13px;color:var(--text)}.report-filter button,.profile-actions .primary{height:44px;border:0;border-radius:12px;background:#5b4df5;color:#fff;padding:0 17px;font-weight:800;display:flex;align-items:center;gap:8px}.report-filter svg,.profile-actions svg{width:17px}.profile-card{display:grid;grid-template-columns:230px 1fr;gap:28px;background:var(--card);border:1px solid var(--border);border-radius:24px;padding:26px;max-width:920px}.profile-photo{display:flex;flex-direction:column;align-items:center;gap:14px}.profile-photo>img,.profile-photo>svg{width:150px;height:150px;border-radius:30px;object-fit:cover;background:var(--input);padding:12px}.profile-photo label{cursor:pointer;display:flex;align-items:center;gap:7px;font-weight:800}.profile-photo label svg{width:17px}.profile-photo input{display:none}.profile-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.profile-fields label:last-of-type{grid-column:1/-1}.profile-fields small{font-weight:500}.profile-actions{grid-column:1/-1;display:flex;justify-content:flex-end}.notification-list{display:grid;gap:12px;max-width:1050px}.notification-item{display:flex;gap:14px;align-items:flex-start;background:var(--card);border:1px solid var(--border);border-radius:18px;padding:17px}.notification-icon{width:42px;height:42px;border-radius:13px;background:#f0efff;color:#5b4df5;display:grid;place-items:center;flex:0 0 auto}.notification-icon svg{width:20px}.notification-copy{flex:1}.notification-copy>div{display:flex;justify-content:space-between;gap:15px}.notification-copy span,.notification-copy p{color:var(--muted)}.notification-copy p{margin:6px 0 0}.empty-state{min-height:240px;border:1px dashed var(--border);border-radius:22px;background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted)}.empty-state svg{width:38px}.student-portal aside{background:linear-gradient(180deg,#11162f,#1d1642)}
@media(max-width:900px){.parent-portal .app{margin-left:0}.parent-portal .app>header{left:0}.parent-portal main{padding:22px 16px 40px}.profile-card{grid-template-columns:1fr}.profile-fields{grid-template-columns:1fr}.profile-fields label:last-of-type{grid-column:auto}}
@media print{.parent-portal aside,.parent-portal header,.parent-childbar,.report-filter{display:none!important}.parent-portal .app{margin:0!important}.parent-portal main{padding:0!important}.report-card{border:0!important;box-shadow:none!important}}
/* V37 - Portal familiar: cabecera y calendario premium */
.parent-portal .app>header,.student-portal .app>header{height:74px;position:sticky;top:0;z-index:24;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid #e9eaf3;box-shadow:0 5px 22px rgba(27,31,59,.035)}
.parent-portal .app>header>div:first-child,.student-portal .app>header>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}.parent-portal .app>header>div:first-child b,.student-portal .app>header>div:first-child b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.parent-portal .app>header>div:first-child small,.student-portal .app>header>div:first-child small{font-size:10px;color:var(--muted)}
.parent-portal .topactions,.student-portal .topactions{margin-left:auto;display:flex;align-items:center;gap:11px}.parent-portal .iconbtn,.student-portal .iconbtn{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;border:1px solid #e5e7f0;background:#fff;box-shadow:0 5px 14px rgba(20,24,50,.04);transition:.18s}.parent-portal .iconbtn:hover,.student-portal .iconbtn:hover{transform:translateY(-2px);border-color:#c9c3ff;color:#5b4df5}.parent-portal .iconbtn svg,.student-portal .iconbtn svg{width:18px;height:18px}
.parent-portal .parent-user{padding:0 7px 0 2px}.parent-portal .parent-user b{font-size:12px}.parent-portal .parent-user small{font-size:9px}
.parent-portal main{padding-top:24px}.parent-portal .parent-childbar{box-shadow:0 12px 34px rgba(27,31,59,.045);background:linear-gradient(135deg,#fff 0%,#fbfaff 62%,#f5f3ff 100%)}
.parent-portal .calendar-head,.student-portal .calendar-head{background:linear-gradient(135deg,#17172f 0%,#32256a 58%,#5b4df5 100%);color:#fff;border-radius:24px;padding:22px 24px;margin-bottom:14px;box-shadow:0 18px 40px rgba(50,37,106,.18);align-items:center}.parent-portal .calendar-head .eyebrow,.student-portal .calendar-head .eyebrow{color:#c9c3ff}.parent-portal .calendar-head h1,.student-portal .calendar-head h1{font-size:27px;margin:5px 0 4px}.parent-portal .calendar-head p,.student-portal .calendar-head p{color:#d9d7ec;font-size:12px}.parent-portal .calendar-nav a,.student-portal .calendar-nav a{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.12);color:#fff;min-width:42px;height:42px;border-radius:13px;backdrop-filter:blur(8px)}.parent-portal .calendar-nav a:hover,.student-portal .calendar-nav a:hover{background:#fff;color:#352a70}.parent-portal .calendar-nav a:nth-child(2),.student-portal .calendar-nav a:nth-child(2){padding:0 18px;font-weight:800}
.calendar-legend{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 0 13px}.calendar-legend span{display:flex;align-items:center;gap:7px;padding:7px 10px;background:#fff;border:1px solid #e9eaf2;border-radius:999px;font-size:10px;color:#667085}.calendar-legend i{width:8px;height:8px;border-radius:50%;background:#6d5dfc}.calendar-legend .l-off i{background:#ef4444}.calendar-legend .l-academic i{background:#f59e0b}.calendar-legend .l-today i{background:#14b8a6}
.parent-portal .month-calendar,.student-portal .month-calendar{border-radius:22px;border:1px solid #e8e9f2;box-shadow:0 14px 40px rgba(27,31,59,.06);overflow:hidden;background:#fff}.parent-portal .weekdays,.student-portal .weekdays{background:#f8f8fc;border-bottom:1px solid #ececf4}.parent-portal .weekdays b,.student-portal .weekdays b{padding:13px 8px;background:transparent;font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:#7b8195}.parent-portal .weekdays b:nth-child(6),.parent-portal .weekdays b:nth-child(7),.student-portal .weekdays b:nth-child(6),.student-portal .weekdays b:nth-child(7){color:#9b72d9}
.parent-portal .day,.student-portal .day{min-height:108px;padding:9px 10px;border-color:#eef0f5;background:#fff;transition:.16s}.parent-portal .day:hover,.student-portal .day:hover{background:#fafaff;box-shadow:inset 0 0 0 1px #dedaff}.parent-portal .day:nth-child(7n+6),.parent-portal .day:nth-child(7n),.student-portal .day:nth-child(7n+6),.student-portal .day:nth-child(7n){background:#fcfbff}.parent-portal .day>span,.student-portal .day>span{width:29px;height:29px;border-radius:9px;font-size:11px;color:#30364a}.parent-portal .day.today,.student-portal .day.today{background:linear-gradient(180deg,#f0fffc,#fff)}.parent-portal .day.today>span,.student-portal .day.today>span{background:linear-gradient(135deg,#14b8a6,#0ea5a5);box-shadow:0 6px 14px rgba(20,184,166,.22)}
.parent-portal .cal-event,.student-portal .cal-event{position:relative;margin-top:5px;border-radius:8px;padding:6px 7px 6px 10px;background:#f0edff;color:#5146d9;font-size:9px;font-weight:750;line-height:1.25;border:1px solid #e4e0ff}.parent-portal .cal-event:before,.student-portal .cal-event:before{content:'';position:absolute;left:0;top:5px;bottom:5px;width:3px;border-radius:5px;background:#6d5dfc}.parent-portal .cal-event.off,.student-portal .cal-event.off{background:#fff1f2;color:#b4233f;border-color:#ffe0e4}.parent-portal .cal-event.off:before,.student-portal .cal-event.off:before{background:#ef4444}.parent-portal .cal-event.academic,.student-portal .cal-event.academic{background:#fff8e7;color:#9a6500;border-color:#fbe8b4}.parent-portal .cal-event.academic:before,.student-portal .cal-event.academic:before{background:#f59e0b}
@media(max-width:900px){.parent-portal .app>header,.student-portal .app>header{left:0!important;padding:0 16px;height:68px}.parent-portal .calendar-head,.student-portal .calendar-head{padding:18px;border-radius:19px;align-items:flex-start;gap:16px}.parent-portal .calendar-head h1,.student-portal .calendar-head h1{font-size:23px}.parent-portal .calendar-head p,.student-portal .calendar-head p{max-width:520px}.parent-portal .month-calendar,.student-portal .month-calendar{overflow-x:auto}.parent-portal .weekdays,.parent-portal .month-grid,.student-portal .weekdays,.student-portal .month-grid{min-width:760px}}
@media(max-width:600px){.parent-portal .app>header>div:first-child{max-width:155px}.parent-portal .calendar-head,.student-portal .calendar-head{flex-direction:column}.parent-portal .calendar-nav,.student-portal .calendar-nav{width:100%;justify-content:flex-end}.parent-portal .parent-childbar{padding:15px}.parent-portal .parent-childbar h1{font-size:22px}}

/* V38 · navegación móvil portal familias / estudiante */
.portal-menu-btn,.portal-menu-overlay{display:none}
@media(max-width:900px){
  .parent-portal aside,.student-portal aside{width:min(290px,84vw);transform:translateX(-105%);transition:transform .28s cubic-bezier(.2,.8,.2,1);z-index:80;box-shadow:22px 0 55px rgba(17,22,47,.22)}
  .parent-portal.portal-menu-open aside,.student-portal.portal-menu-open aside{transform:translateX(0)}
  .portal-menu-btn{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;margin-right:11px;border:1px solid #e5e7f0;border-radius:13px;background:#fff;color:#252a3d;box-shadow:0 5px 14px rgba(20,24,50,.05);cursor:pointer}
  .portal-menu-btn svg{width:20px;height:20px}
  .portal-menu-overlay{position:fixed;inset:0;z-index:70;border:0;background:rgba(12,16,34,.44);backdrop-filter:blur(3px);cursor:pointer}
  .parent-portal.portal-menu-open .portal-menu-overlay,.student-portal.portal-menu-open .portal-menu-overlay{display:block}
  .parent-portal .app>header,.student-portal .app>header{display:flex!important;align-items:center!important}
  .parent-portal .app>header>div:first-of-type,.student-portal .app>header>div:first-of-type{flex:1;min-width:0}
  .parent-portal aside .logo,.student-portal aside .logo{padding-top:4px}
  .parent-portal aside nav a,.student-portal aside nav a{min-height:46px}
}
@media(max-width:480px){
  .parent-portal .app>header,.student-portal .app>header{padding:0 12px!important}
  .portal-menu-btn{width:40px;height:40px;margin-right:9px}
  .parent-portal .topactions,.student-portal .topactions{gap:7px}
  .parent-portal .iconbtn,.student-portal .iconbtn{width:39px;height:39px}
}

/* V39 — Super Admin visual refresh */
aside .logo{flex-direction:column;align-items:flex-start;gap:7px;padding:2px 12px 22px}
aside .logo .brandimg{width:112px!important;height:58px!important;max-width:100%;object-fit:contain!important;object-position:left center;padding:0!important;background:transparent!important;border-radius:0!important;box-shadow:none!important}
aside .logo>div{font-size:12px;line-height:1.15}aside .logo>div>b{font-size:9px;margin-top:4px}aside .logo>div>small{font-size:8.5px;margin-top:4px}
.toast{display:flex!important;align-items:center;gap:11px;min-height:52px;padding:13px 17px!important;border:1px solid #c8eee7!important;background:linear-gradient(135deg,#f0fffb,#f4f2ff)!important;color:#24324b!important;border-radius:16px!important;box-shadow:0 12px 30px rgba(32,41,77,.08)!important;font-weight:650}.toast:before{content:'✓';width:28px;height:28px;flex:0 0 28px;display:grid;place-items:center;border-radius:50%;background:#10b981;color:white;font-weight:900}.toast:after{content:'';position:absolute;left:0;bottom:0;width:34%;height:3px;border-radius:99px;background:linear-gradient(90deg,#6c5ce7,#19bdb4)}
#modal{width:min(760px,calc(100vw - 30px))!important}#modal .modalhead{background:linear-gradient(135deg,#faf9ff,#f4fffd)!important}#modal form>.grid2{display:grid;grid-template-columns:1fr 1fr;gap:17px 18px!important;padding:22px 0 12px!important}#modal label{font-weight:700;color:#53627c;gap:7px}#modal input{height:47px;border-radius:13px;background:#fbfcff;border:1px solid #dce3f0;padding:0 14px;transition:.18s}#modal input:focus{border-color:#7568ee;box-shadow:0 0 0 4px rgba(108,92,231,.09);outline:0}#modal .notice{margin:10px 22px 2px!important;border:1px solid #d7e8ff;background:linear-gradient(135deg,#f5f8ff,#f0fffb);border-radius:14px;padding:13px 15px}#modal .notice b,#modal .notice small{display:block}#modal .notice small{margin-top:4px;color:#72809a}
.actions button,.actions a{border-radius:11px!important;transition:.18s!important}.actions button:hover,.actions a:hover{transform:translateY(-2px);border-color:#bcb4ff!important;background:#f6f4ff!important;color:#5b4ee5!important}.actions svg{width:16px;height:16px;stroke-width:1.9}.actions .danger-action{color:#dc3545!important}.actions .danger-action:hover{background:#fff1f2!important;border-color:#fecdd3!important;color:#be123c!important}
.stats .stat{overflow:hidden;border:1px solid rgba(218,223,239,.85);background:linear-gradient(145deg,var(--card),color-mix(in srgb,var(--card) 92%,#eeecff));box-shadow:0 16px 40px rgba(30,37,70,.07)}.stats .stat:after{content:'';position:absolute;width:88px;height:88px;border-radius:50%;right:-30px;bottom:-36px;background:linear-gradient(135deg,rgba(108,92,231,.13),rgba(25,189,180,.08))}.chartcard{position:relative;overflow:hidden}.chartcard:before{content:'';position:absolute;left:0;top:0;width:100%;height:3px;background:linear-gradient(90deg,#6c5ce7,#19bdb4)}.chartbox{height:290px!important}
@media(max-width:640px){aside .logo .brandimg{width:96px!important;height:50px!important}#modal form>.grid2{grid-template-columns:1fr!important}}

/* V40 — Super Admin claro, modales adaptativos y auditoría moderna */
:root{--side-light:#ffffff;--side-text:#26324a;--side-muted:#7b86a2;--side-hover:#f5f3ff;--side-active:#ede9fe}
aside{background:var(--side-light)!important;color:var(--side-text)!important;border-right:1px solid #e8eaf2!important;box-shadow:10px 0 35px rgba(35,40,75,.045)!important}
aside .logo{color:var(--side-text)!important}aside .logo b{color:#6d5ce7!important}aside .logo small{color:var(--side-muted)!important}aside nav a,aside .navgroup summary{color:#59647d!important}aside nav a svg,aside .navgroup summary svg{color:#7767e8!important}aside nav a:hover,aside nav a.on,aside .navchildren a.on{background:var(--side-active)!important;color:#4939b7!important}aside .navgroup{border-color:#ececf4!important;background:#fbfbfe!important}aside .navgroup[open]>summary{color:#332a72!important}aside .side-profile{background:#f8f7ff!important;border:1px solid #e5e1ff!important;color:#26324a!important}aside .side-profile small{color:#7b86a2!important}
/* los formularios nunca pierden sus acciones */
dialog{max-height:calc(100dvh - 28px)!important;margin:auto!important;overflow:hidden!important}dialog>form{padding:0!important;max-height:calc(100dvh - 28px)!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}.modalhead{flex:0 0 auto!important;margin:0!important;border-bottom:1px solid var(--line)!important}.grid2{overflow-y:auto!important;overscroll-behavior:contain!important;scrollbar-width:thin!important;flex:1 1 auto!important;min-height:0!important}.modalactions{position:relative!important;bottom:auto!important;flex:0 0 auto!important;margin:0!important;border-top:1px solid var(--line)!important;box-shadow:0 -12px 30px rgba(27,31,55,.055)!important;z-index:5!important}.plan-dialog>form{overflow:hidden!important}.plan-dialog .grid2{overflow-y:auto!important}.plan-dialog .plan-benefits{flex:0 0 auto!important}.plan-dialog .modalactions{position:relative!important;bottom:auto!important;margin-top:12px!important}.plan-dialog{max-height:calc(100dvh - 28px)!important}.plan-dialog>form{max-height:calc(100dvh - 28px)!important}
/* Auditoría */
.audit-toolbar{padding:12px!important;display:flex;gap:10px;align-items:center;margin-bottom:14px}.audit-search{height:44px;display:flex;align-items:center;gap:10px;flex:1;min-width:240px;background:#f7f8fc;border:1px solid #e8eaf2;border-radius:13px;padding:0 13px}.audit-search svg{width:17px;color:#7b86a2}.audit-search input{border:0!important;box-shadow:none!important;background:transparent!important;padding:0!important}.audit-toolbar select{width:105px;height:44px}.audit-toolbar .secondary{height:44px;display:flex;align-items:center;gap:7px}.audit-toolbar .secondary svg{width:16px}.audit-toolbar>span{font-size:12px;color:var(--muted);white-space:nowrap}.audit-card{border-radius:17px!important}.audit-action{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eefcf5;color:#16845d;font-size:10px;font-weight:800}.audit-pager{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:14px}.audit-pager button{width:38px;height:38px;border:1px solid var(--line);background:var(--card);border-radius:11px;display:grid;place-items:center;color:var(--text)}.audit-pager button:disabled{opacity:.35}.audit-pager svg{width:16px}.audit-pager span{font-size:12px;color:var(--muted)}
@media(max-width:760px){.audit-toolbar{flex-wrap:wrap}.audit-search{flex-basis:100%}.audit-toolbar select{flex:1}.audit-toolbar .secondary{flex:1;justify-content:center}dialog{width:calc(100vw - 14px)!important;max-height:calc(100dvh - 14px)!important}dialog>form{max-height:calc(100dvh - 14px)!important}.modalactions{padding-bottom:max(14px,env(safe-area-inset-bottom))!important}}

/* V41 · cierre visual superadmin: logo responsive + modales premium */
aside .logo{align-items:center!important;text-align:center!important;padding:12px 10px 24px!important}
aside .logo .brandimg{width:min(168px,88%)!important;height:92px!important;object-fit:contain!important;object-position:center!important}
aside .logo>div{display:none!important}
@media(max-width:900px){aside .logo .brandimg{width:min(150px,86%)!important;height:78px!important}}

/* Cobranza y acceso institucional: estructura limpia y respirable */
dialog[id^="pay"],dialog[id^="access"]{width:min(720px,calc(100vw - 28px))!important;border:0!important;border-radius:24px!important;box-shadow:0 30px 80px rgba(16,24,40,.24)!important}
dialog[id^="pay"]>form,dialog[id^="access"]>form{background:#fff!important}
dialog[id^="pay"] .modalhead,dialog[id^="access"] .modalhead{padding:24px 26px 18px!important;background:linear-gradient(135deg,#fbfaff,#f4fbff)!important}
dialog[id^="pay"] .modalhead h2,dialog[id^="access"] .modalhead h2{font-size:22px!important;margin-top:5px!important}
dialog[id^="pay"] .close,dialog[id^="access"] .close{width:40px!important;height:40px!important;border-radius:13px!important;border:1px solid #e2e6ef!important;background:#fff!important;color:#59647d!important;font-size:20px!important}
dialog[id^="pay"] .grid2,dialog[id^="access"] .grid2{padding:22px 26px!important;gap:18px!important;background:#fff!important}
dialog[id^="pay"] label,dialog[id^="access"] label{font-size:12px!important;font-weight:750!important;color:#53627c!important;gap:7px!important}
dialog[id^="pay"] input,dialog[id^="pay"] select,dialog[id^="pay"] textarea,dialog[id^="access"] input,dialog[id^="access"] select,dialog[id^="access"] textarea{min-height:48px!important;border:1px solid #dfe5ef!important;border-radius:14px!important;background:#fbfcff!important;padding:0 14px!important;font-size:13px!important;color:#172033!important;box-shadow:none!important}
dialog[id^="pay"] textarea,dialog[id^="access"] textarea{min-height:92px!important;padding-top:13px!important;resize:vertical!important}
dialog[id^="pay"] input:focus,dialog[id^="pay"] select:focus,dialog[id^="pay"] textarea:focus,dialog[id^="access"] input:focus,dialog[id^="access"] select:focus,dialog[id^="access"] textarea:focus{outline:0!important;border-color:#7568ee!important;box-shadow:0 0 0 4px rgba(108,92,231,.09)!important;background:#fff!important}
dialog[id^="pay"] input[type="file"]{padding:10px 12px!important;height:auto!important;min-height:58px!important;border-style:dashed!important;background:linear-gradient(135deg,#faf9ff,#f7fbff)!important}
dialog[id^="access"] label.full small{display:block!important;margin-top:2px!important;color:#8792a8!important;font-weight:500!important;line-height:1.45!important}
dialog[id^="pay"] .modalactions,dialog[id^="access"] .modalactions{padding:16px 26px 20px!important;background:#fff!important;gap:10px!important}
dialog[id^="pay"] .modalactions button,dialog[id^="access"] .modalactions button{min-height:44px!important;border-radius:13px!important;padding:0 19px!important}
@media(max-width:640px){dialog[id^="pay"] .grid2,dialog[id^="access"] .grid2{grid-template-columns:1fr!important;padding:18px!important}dialog[id^="pay"] .modalhead,dialog[id^="access"] .modalhead{padding:19px 18px 15px!important}dialog[id^="pay"] .modalactions,dialog[id^="access"] .modalactions{padding:13px 18px 17px!important}dialog[id^="pay"] .modalactions button,dialog[id^="access"] .modalactions button{flex:1!important}}

/* V42 - consistencia de formularios y acciones */
.v42-all{display:flex!important;align-items:center;gap:12px;padding:14px 16px;background:#f0edff;border:1px solid #d8d0ff;border-radius:12px;margin:8px 0 16px;color:#35228c}.v42-all input{width:19px;height:19px;accent-color:#6652ec}.modal .modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px}.modal .modal-foot{position:sticky;bottom:0;background:#fff;z-index:4;display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid #e7eaf1}.modal .modal-body{overflow-y:auto;min-height:0;padding:20px 24px}.modal{max-height:min(92dvh,850px);overflow:hidden;border-radius:20px}.iconbtn{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;border-radius:10px;transition:background .15s,transform .15s}.iconbtn:hover{background:#edeaff;transform:translateY(-1px)}@media(max-width:640px){.modal{width:calc(100vw - 20px);max-height:calc(100dvh - 24px)}.modal .modal-head,.modal .modal-body{padding:16px}.modal .modal-foot{padding:12px 16px}}
/* V43: panel analítico responsive */
.insights-panel{margin:20px 0;padding:24px;border:1px solid #e6eaf4;border-radius:22px;background:linear-gradient(135deg,#fff 10%,#f4f6ff 100%);box-shadow:0 15px 40px rgba(32,44,90,.06)}.insights-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px}.insights-heading h2{font-size:22px;margin:6px 0}.insights-heading p,.insights-note{font-size:12px;color:#78849b}.insights-tag{font-size:11px;font-weight:700;color:#5545df;background:#eeebff;border-radius:99px;padding:9px 12px}.insights-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.insights-chart{background:white;border:1px solid #e9edf5;border-radius:18px;padding:22px;min-width:0}.insights-chart h3{font-size:14px;margin:0 0 20px}.donut-layout{display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap}.insights-donut{width:185px;aspect-ratio:1;border-radius:50%;background:conic-gradient(#16b9a0 0 calc(var(--present)*1%),#f4aa45 calc(var(--present)*1%) calc((var(--present) + var(--late))*1%),#f16d7b calc((var(--present) + var(--late))*1%) 100%);display:grid;place-items:center;flex-shrink:0}.insights-donut>div{background:white;width:135px;aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.insights-donut strong{font-size:30px;color:#202842}.insights-donut small{font-size:10px;color:#738098}.insights-legend{display:grid;gap:14px;min-width:130px}.insights-legend span{display:flex;align-items:center;gap:9px;font-size:12px}.insights-legend b{margin-left:auto}.insights-legend i{width:10px;height:10px;border-radius:50%}.legend-present{background:#16b9a0}.legend-late{background:#f4aa45}.legend-absent{background:#f16d7b}.insights-bars{display:grid;gap:24px;padding:12px 0}.insights-bar-row{display:grid;grid-template-columns:94px 1fr 32px;gap:12px;align-items:center;font-size:12px}.insights-bar-track{height:14px;border-radius:20px;background:#eef1f7;overflow:hidden}.insights-bar-track>div{height:100%;border-radius:20px;transition:width .35s}.insights-note{margin:20px 0 0}@media(max-width:800px){.insights-grid{grid-template-columns:1fr}.insights-heading{align-items:flex-start;flex-direction:column}.insights-panel{padding:15px}.insights-chart{padding:16px}}

.attendance-suggestions{position:relative;z-index:30;max-height:260px;overflow:auto}.attendance-suggestions.show{display:block}.attendance-suggestions button{display:flex;flex-direction:column;width:100%;text-align:left;padding:10px 14px;border:0;background:#fff;cursor:pointer}.attendance-suggestions button:hover{background:#f2f0ff}.attendance-suggestions small{color:#79849c}

/* V44: capa visual consistente para informes, calendarios y acciones */
#reportInsights.insights-panel{display:block!important;position:relative;margin:24px 0 26px;padding:24px;border:1px solid #e4e9f5;border-radius:24px;background:linear-gradient(145deg,#fff,#f6f8ff);box-shadow:0 16px 42px rgba(36,48,89,.08)}
#reportInsights .insights-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}#reportInsights .insights-heading h2{font-size:clamp(19px,2vw,25px);font-weight:800;letter-spacing:-.6px;margin:7px 0}#reportInsights .insights-heading p{color:#66758f;font-size:13px;margin:0}#reportInsights .insights-tag{display:inline-flex;align-items:center;padding:9px 14px;border-radius:99px;background:#e9f9f4;color:#087d66;font-weight:700;font-size:11px;white-space:nowrap}
#reportInsights .insights-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}#reportInsights .insights-chart{display:block;min-width:0;padding:24px;border:1px solid #e8ecf5;border-radius:20px;background:#fff;box-shadow:0 5px 20px rgba(35,48,89,.035)}#reportInsights .insights-chart h3{font-size:15px;font-weight:800;margin:0 0 22px;color:#1e2940}
#reportInsights .donut-layout{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:24px}#reportInsights .insights-donut{display:grid;place-items:center;flex:0 0 176px;width:176px;height:176px;border-radius:50%;background:conic-gradient(#13b89c 0 calc(var(--present)*1%),#f5a63d calc(var(--present)*1%) calc((var(--present) + var(--late))*1%),#f16c83 calc((var(--present) + var(--late))*1%) 100%);box-shadow:0 12px 28px rgba(22,170,149,.13)}#reportInsights .insights-donut>div{display:flex;flex-direction:column;justify-content:center;align-items:center;width:128px;height:128px;border-radius:50%;background:white;text-align:center}#reportInsights .insights-donut strong{font-size:34px;font-weight:850;line-height:1.2;color:#1d2b45}#reportInsights .insights-donut small{font-size:11px;color:#72809a}
#reportInsights .insights-legend{display:grid;gap:14px;min-width:145px}#reportInsights .insights-legend span{display:flex;align-items:center;gap:10px;font-size:13px;color:#40506c}#reportInsights .insights-legend b{margin-left:auto;color:#1e2940;font-size:15px}#reportInsights .insights-legend i{display:block;width:11px;height:11px;border-radius:50%;flex-shrink:0}#reportInsights .legend-present{background:#13b89c}#reportInsights .legend-late{background:#f5a63d}#reportInsights .legend-absent{background:#f16c83}
#reportInsights .insights-bars{display:grid;gap:25px;padding:16px 0}#reportInsights .insights-bar-row{display:grid;grid-template-columns:100px minmax(0,1fr) 35px;gap:12px;align-items:center;font-size:13px;color:#40506c}#reportInsights .insights-bar-row b{text-align:right;color:#1e2940;font-size:15px}#reportInsights .insights-bar-track{height:15px;overflow:hidden;border-radius:99px;background:#edf0f8}#reportInsights .insights-bar-track>div{height:100%;border-radius:99px;min-width:0;transition:width .4s ease}#reportInsights .insights-note{font-size:12px;line-height:1.6;color:#75829a;margin-top:25px}
.modal .modal-head,.modal .modal-foot{position:relative;z-index:1}.modal .modal-foot{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap;background:#fff}.modal .modal-body{min-height:0;overflow-y:auto}.modal .modal-x{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.modal .modal-x svg{width:18px;height:18px}
@media(max-width:850px){#reportInsights .insights-grid{grid-template-columns:1fr}#reportInsights .insights-heading{align-items:flex-start;flex-direction:column}#reportInsights.insights-panel{padding:15px}#reportInsights .insights-chart{padding:18px}}
@media(max-width:420px){#reportInsights .insights-donut{width:145px;height:145px;flex-basis:145px}#reportInsights .insights-donut>div{width:103px;height:103px}#reportInsights .insights-donut strong{font-size:27px}#reportInsights .insights-bar-row{grid-template-columns:83px minmax(0,1fr) 24px;gap:7px;font-size:11px}}


/* ===== TAILWIND CSS 4 Y COMPONENTES COMPARTIDOS ===== */
/*! tailwindcss v4.1.10 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;
@layer theme {
  :root, :host {
    --font-sans: Inter, "Segoe UI", Arial, sans-serif;
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
      "Courier New", monospace;
    --color-slate-50: oklch(98.4% 0.003 247.858);
    --color-slate-100: oklch(96.8% 0.007 247.896);
    --color-slate-200: oklch(92.9% 0.013 255.508);
    --color-slate-500: oklch(55.4% 0.046 257.417);
    --color-slate-600: oklch(44.6% 0.043 257.281);
    --color-slate-700: oklch(37.2% 0.044 257.287);
    --color-slate-800: oklch(27.9% 0.041 260.031);
    --color-slate-900: oklch(20.8% 0.042 265.755);
    --color-slate-950: oklch(12.9% 0.042 264.695);
    --color-white: #fff;
    --spacing: 0.25rem;
    --text-xs: 0.75rem;
    --text-xs--line-height: calc(1 / 0.75);
    --text-sm: 0.875rem;
    --text-sm--line-height: calc(1.25 / 0.875);
    --text-2xl: 1.5rem;
    --text-2xl--line-height: calc(2 / 1.5);
    --text-3xl: 1.875rem;
    --text-3xl--line-height: calc(2.25 / 1.875);
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-extrabold: 800;
    --tracking-tight: -0.025em;
    --tracking-wide: 0.025em;
    --tracking-widest: 0.1em;
    --leading-relaxed: 1.625;
    --radius-lg: 0.5rem;
    --radius-xl: 0.75rem;
    --radius-2xl: 1rem;
    --blur-sm: 8px;
    --default-transition-duration: 150ms;
    --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
    --color-brand-500: #6254ed;
    --color-brand-600: #5041db;
  }
}
@layer base {
  *, ::after, ::before, ::backdrop, ::file-selector-button {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
  }
  html, :host {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }
  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }
  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }
  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }
  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }
  b, strong {
    font-weight: bolder;
  }
  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }
  small {
    font-size: 80%;
  }
  sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }
  :-moz-focusring {
    outline: auto;
  }
  progress {
    vertical-align: baseline;
  }
  summary {
    display: list-item;
  }
  ol, ul, menu {
    list-style: none;
  }
  img, svg, video, canvas, audio, iframe, embed, object {
    display: block;
    vertical-align: middle;
  }
  img, video {
    max-width: 100%;
    height: auto;
  }
  button, input, select, optgroup, textarea, ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    border-radius: 0;
    background-color: transparent;
    opacity: 1;
  }
  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }
  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }
  ::file-selector-button {
    margin-inline-end: 4px;
  }
  ::placeholder {
    opacity: 1;
  }
  @supports (not (-webkit-appearance: -apple-pay-button))  or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentcolor;
      @supports (color: color-mix(in lab, red, red)) {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }
  textarea {
    resize: vertical;
  }
  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }
  :-moz-ui-invalid {
    box-shadow: none;
  }
  button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
    appearance: button;
  }
  ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
    height: auto;
  }
  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}
@layer utilities {
  .fixed {
    position: fixed;
  }
  .mb-6 {
    margin-bottom: calc(var(--spacing) * 6);
  }
  .flex {
    display: flex;
  }
  .min-w-0 {
    min-width: calc(var(--spacing) * 0);
  }
  .flex-1 {
    flex: 1;
  }
  .flex-wrap {
    flex-wrap: wrap;
  }
  .items-center {
    align-items: center;
  }
  .justify-between {
    justify-content: space-between;
  }
  .justify-end {
    justify-content: flex-end;
  }
  .gap-3 {
    gap: calc(var(--spacing) * 3);
  }
  .gap-4 {
    gap: calc(var(--spacing) * 4);
  }
  .space-y-1 {
    :where(& > :not(:last-child)) {
      --tw-space-y-reverse: 0;
      margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));
      margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
    }
  }
  .rounded-2xl {
    border-radius: var(--radius-2xl);
  }
  .rounded-xl {
    border-radius: var(--radius-xl);
  }
  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }
  .border-t {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }
  .border-b {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
  }
  .border-slate-100 {
    border-color: var(--color-slate-100);
  }
  .border-slate-200 {
    border-color: var(--color-slate-200);
  }
  .bg-slate-50 {
    background-color: var(--color-slate-50);
  }
  .bg-white {
    background-color: var(--color-white);
  }
  .bg-white\/95 {
    background-color: color-mix(in srgb, #fff 95%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-white) 95%, transparent);
    }
  }
  .p-3 {
    padding: calc(var(--spacing) * 3);
  }
  .px-6 {
    padding-inline: calc(var(--spacing) * 6);
  }
  .py-4 {
    padding-block: calc(var(--spacing) * 4);
  }
  .py-5 {
    padding-block: calc(var(--spacing) * 5);
  }
  .text-slate-800 {
    color: var(--color-slate-800);
  }
  .antialiased {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
  .shadow-sm {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
}
@layer components {
  .tw-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    border-radius: .75rem;
    background: #6254ed;
    color: white;
    padding: .65rem 1rem;
    font-weight: 650;
    box-shadow: 0 10px 22px #6254ed25;
  }
  .tw-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: .75rem;
    border: 1px solid #e2e8f0;
    background: #fff;
  }
  .tw-surface {
    border-radius: 1rem;
    border: 1px solid #e2e8f0;
    background: #fff;
    box-shadow: 0 4px 12px #0f172a0a;
  }
  .tw-table-shell {
    width: 100%;
    overflow-x: auto;
    border-radius: 1rem;
    border: 1px solid #e2e8f0;
    background: #fff;
  }
  .tw-modal-shell {
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 24px 64px #0f172a40;
  }
  .tw-eyebrow {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #6254ed;
  }
}
@layer components {
  .ui-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--spacing) * 2);
    border-radius: var(--radius-xl);
    background-color: var(--color-brand-500);
    padding-inline: calc(var(--spacing) * 4);
    padding-block: calc(var(--spacing) * 2.5);
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
    color: var(--color-white);
    --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-brand-600);
      }
    }
    &:disabled {
      opacity: 50%;
    }
  }
  .ui-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--spacing) * 2);
    border-radius: var(--radius-xl);
    border-style: var(--tw-border-style);
    border-width: 1px;
    border-color: var(--color-slate-200);
    background-color: var(--color-white);
    padding-inline: calc(var(--spacing) * 4);
    padding-block: calc(var(--spacing) * 2.5);
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
    color: var(--color-slate-700);
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-slate-50);
      }
    }
  }
  .ui-icon-button {
    display: inline-flex;
    width: calc(var(--spacing) * 10);
    height: calc(var(--spacing) * 10);
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-xl);
    border-style: var(--tw-border-style);
    border-width: 1px;
    border-color: var(--color-slate-200);
    background-color: var(--color-white);
    color: var(--color-slate-600);
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
    &:hover {
      @media (hover: hover) {
        border-color: var(--color-brand-500);
      }
    }
    &:hover {
      @media (hover: hover) {
        color: var(--color-brand-600);
      }
    }
  }
  .ui-panel {
    border-radius: var(--radius-2xl);
    border-style: var(--tw-border-style);
    border-width: 1px;
    border-color: var(--color-slate-200);
    background-color: var(--color-white);
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .ui-table-container {
    width: 100%;
    overflow-x: auto;
    border-radius: var(--radius-2xl);
    border-style: var(--tw-border-style);
    border-width: 1px;
    border-color: var(--color-slate-200);
    background-color: var(--color-white);
  }
  .ui-dialog {
    max-height: min(90dvh, 850px);
    width: min(94vw, 760px);
    border-radius: var(--radius-2xl);
    border-style: var(--tw-border-style);
    border-width: 0px;
    background-color: var(--color-white);
    padding: calc(var(--spacing) * 0);
    --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .ui-dialog-head {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
    border-color: var(--color-slate-100);
    padding-inline: calc(var(--spacing) * 6);
    padding-block: calc(var(--spacing) * 5);
  }
  .ui-dialog-body {
    min-height: calc(var(--spacing) * 0);
    overflow-y: auto;
    padding-inline: calc(var(--spacing) * 6);
    padding-block: calc(var(--spacing) * 5);
  }
  .ui-dialog-foot {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: calc(var(--spacing) * 3);
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
    border-color: var(--color-slate-100);
    background-color: var(--color-white);
    padding-inline: calc(var(--spacing) * 6);
    padding-block: calc(var(--spacing) * 4);
  }
  .ui-page-title {
    margin-bottom: calc(var(--spacing) * 5);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: calc(var(--spacing) * 4);
  }
  .ui-section-title {
    margin-bottom: calc(var(--spacing) * 4);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: calc(var(--spacing) * 3);
  }
  .ui-search {
    display: flex;
    min-width: calc(var(--spacing) * 0);
    align-items: center;
    gap: calc(var(--spacing) * 3);
    border-radius: var(--radius-xl);
    border-style: var(--tw-border-style);
    border-width: 1px;
    border-color: var(--color-slate-200);
    background-color: var(--color-slate-50);
    padding-inline: calc(var(--spacing) * 4);
  }
  .ui-status {
    display: inline-flex;
    align-items: center;
    border-radius: calc(infinity * 1px);
    padding-inline: calc(var(--spacing) * 3);
    padding-block: calc(var(--spacing) * 1);
    font-size: var(--text-xs);
    line-height: var(--tw-leading, var(--text-xs--line-height));
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
  }
}
@layer components {
  .admin-tailwind .ui-page-title h1 {
    font-size: var(--text-2xl);
    line-height: var(--tw-leading, var(--text-2xl--line-height));
    --tw-font-weight: var(--font-weight-extrabold);
    font-weight: var(--font-weight-extrabold);
    --tw-tracking: var(--tracking-tight);
    letter-spacing: var(--tracking-tight);
    color: var(--color-slate-900);
    @media (width >= 48rem) {
      font-size: var(--text-3xl);
      line-height: var(--tw-leading, var(--text-3xl--line-height));
    }
  }
  .admin-tailwind .ui-page-title p {
    margin-top: calc(var(--spacing) * 1);
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
    --tw-leading: var(--leading-relaxed);
    line-height: var(--leading-relaxed);
    color: var(--color-slate-500);
  }
  .admin-tailwind .ui-page-title .eyebrow {
    font-size: var(--text-xs);
    line-height: var(--tw-leading, var(--text-xs--line-height));
    --tw-font-weight: var(--font-weight-bold);
    font-weight: var(--font-weight-bold);
    --tw-tracking: var(--tracking-widest);
    letter-spacing: var(--tracking-widest);
    color: var(--color-brand-600);
    text-transform: uppercase;
  }
  .admin-tailwind .ui-panel {
    border-radius: var(--radius-2xl);
    border-style: var(--tw-border-style);
    border-width: 1px;
    border-color: var(--color-slate-200);
    background-color: var(--color-white);
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .admin-tailwind .smart-toolbar select {
    min-height: calc(var(--spacing) * 10);
    border-radius: var(--radius-xl);
    border-style: var(--tw-border-style);
    border-width: 1px;
    border-color: var(--color-slate-200);
    background-color: var(--color-white);
    padding-inline: calc(var(--spacing) * 3);
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
    color: var(--color-slate-700);
  }
  .admin-tailwind .smart-toolbar input {
    min-height: calc(var(--spacing) * 10);
    width: 100%;
    min-width: calc(var(--spacing) * 0);
    background-color: transparent;
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
    --tw-outline-style: none;
    outline-style: none;
  }
  .admin-tailwind .ui-table-container table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
  }
  .admin-tailwind .ui-table-container thead {
    background-color: var(--color-slate-50);
    text-align: left;
    font-size: var(--text-xs);
    line-height: var(--tw-leading, var(--text-xs--line-height));
    --tw-tracking: var(--tracking-wide);
    letter-spacing: var(--tracking-wide);
    color: var(--color-slate-500);
    text-transform: uppercase;
  }
  .admin-tailwind .ui-table-container th {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
    border-color: var(--color-slate-200);
    padding-inline: calc(var(--spacing) * 4);
    padding-block: calc(var(--spacing) * 3);
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
    white-space: nowrap;
  }
  .admin-tailwind .ui-table-container td {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
    border-color: var(--color-slate-100);
    padding-inline: calc(var(--spacing) * 4);
    padding-block: calc(var(--spacing) * 3);
    vertical-align: middle;
  }
  .admin-tailwind .ui-table-container tbody tr {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-slate-50);
      }
    }
  }
  .admin-tailwind dialog {
    max-height: 90dvh;
    max-width: 94vw;
    border-radius: var(--radius-2xl);
    border-style: var(--tw-border-style);
    border-width: 0px;
    background-color: var(--color-white);
    padding: calc(var(--spacing) * 0);
    --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .admin-tailwind dialog::backdrop {
    background-color: color-mix(in srgb, oklch(12.9% 0.042 264.695) 60%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-slate-950) 60%, transparent);
    }
    --tw-backdrop-blur: blur(var(--blur-sm));
    -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
    backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
  }
  .admin-tailwind dialog form {
    max-height: 90dvh;
    overflow-y: auto;
  }
  .admin-tailwind dialog input:not([type=checkbox]):not([type=radio]):not([type=hidden]), .admin-tailwind dialog select, .admin-tailwind dialog textarea {
    max-width: 100%;
    border-radius: var(--radius-xl);
    border-style: var(--tw-border-style);
    border-width: 1px;
    border-color: var(--color-slate-200);
    background-color: var(--color-white);
    padding-inline: calc(var(--spacing) * 3);
    padding-block: calc(var(--spacing) * 2.5);
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
    color: var(--color-slate-800);
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
    --tw-outline-style: none;
    outline-style: none;
    &:focus {
      border-color: var(--color-brand-500);
    }
    &:focus {
      --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
      box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }
    &:focus {
      --tw-ring-color: color-mix(in srgb, #6254ed 15%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        --tw-ring-color: color-mix(in oklab, var(--color-brand-500) 15%, transparent);
      }
    }
  }
  .admin-tailwind dialog label {
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
    color: var(--color-slate-700);
  }
  .admin-tailwind .navgroup summary {
    cursor: pointer;
    border-radius: var(--radius-xl);
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .admin-tailwind .navchildren a {
    border-radius: var(--radius-lg);
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .admin-tailwind .ui-btn-primary {
    border-radius: var(--radius-xl);
    background-color: var(--color-brand-500);
    padding-inline: calc(var(--spacing) * 4);
    padding-block: calc(var(--spacing) * 2.5);
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
    color: var(--color-white);
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-brand-600);
      }
    }
  }
  .admin-tailwind .ui-btn-secondary {
    border-radius: var(--radius-xl);
    border-style: var(--tw-border-style);
    border-width: 1px;
    border-color: var(--color-slate-200);
    background-color: var(--color-white);
    padding-inline: calc(var(--spacing) * 4);
    padding-block: calc(var(--spacing) * 2.5);
    color: var(--color-slate-700);
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-slate-50);
      }
    }
  }
}
@property --tw-space-y-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-inset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-ring-inset {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-offset-width {
  syntax: "<length>";
  inherits: false;
  initial-value: 0px;
}
@property --tw-ring-offset-color {
  syntax: "*";
  inherits: false;
  initial-value: #fff;
}
@property --tw-ring-offset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-font-weight {
  syntax: "*";
  inherits: false;
}
@property --tw-tracking {
  syntax: "*";
  inherits: false;
}
@property --tw-leading {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-blur {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-brightness {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-contrast {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-grayscale {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-hue-rotate {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-invert {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-opacity {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-saturate {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-sepia {
  syntax: "*";
  inherits: false;
}
@layer properties {
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
    *, ::before, ::after, ::backdrop {
      --tw-space-y-reverse: 0;
      --tw-border-style: solid;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-font-weight: initial;
      --tw-tracking: initial;
      --tw-leading: initial;
      --tw-backdrop-blur: initial;
      --tw-backdrop-brightness: initial;
      --tw-backdrop-contrast: initial;
      --tw-backdrop-grayscale: initial;
      --tw-backdrop-hue-rotate: initial;
      --tw-backdrop-invert: initial;
      --tw-backdrop-opacity: initial;
      --tw-backdrop-saturate: initial;
      --tw-backdrop-sepia: initial;
    }
  }
}

/* V49 institutional compiled compatibility rules */

.school-tailwind{background:#f8fafc;color:#1e293b;-webkit-font-smoothing:antialiased}.school-tailwind .school-header{border-bottom:1px solid #e2e8f0;background:rgba(255,255,255,.96);box-shadow:0 1px 3px #0f172a0b}.school-tailwind .ui-page-title{margin-bottom:1.5rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.school-tailwind .ui-page-title h1{font-size:1.5rem;font-weight:750;letter-spacing:-.025em;color:#0f172a}.school-tailwind .ui-page-title p{margin-top:.25rem;font-size:.875rem;color:#64748b}.school-tailwind .ui-panel{border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 1px 3px #0f172a0b}.school-tailwind .ui-section-title h2{font-size:1.125rem;font-weight:700;color:#0f172a}.school-tailwind .school-toolbar{margin-bottom:1rem;display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff;padding:.75rem}.school-tailwind .school-toolbar .ui-search{flex:1;min-width:0}.school-tailwind .school-toolbar select{border:1px solid #e2e8f0;border-radius:.75rem;background:white;padding:.5rem .75rem;font-size:.875rem}.school-tailwind .ui-table-container{width:100%;overflow-x:auto;border:1px solid #e2e8f0;border-radius:1rem;background:#fff}.school-tailwind .ui-table-container table{width:100%;border-collapse:collapse;font-size:.875rem}.school-tailwind .ui-table-container th{border-bottom:1px solid #e2e8f0;background:#f8fafc;padding:.75rem 1rem;text-align:left;font-size:.75rem;font-weight:700;color:#64748b}.school-tailwind .ui-table-container td{border-bottom:1px solid #f1f5f9;padding:.75rem 1rem;vertical-align:middle}.school-tailwind .ui-table-container tbody tr:hover{background:#f8fafc}.school-tailwind .ui-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.75rem;background:#6254ed;padding:.625rem 1rem;font-weight:650;color:white}.school-tailwind .ui-btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid #e2e8f0;border-radius:.75rem;background:#fff;padding:.625rem 1rem;font-weight:650;color:#334155}.school-tailwind dialog{max-height:90dvh;max-width:94vw;border:0;border-radius:1rem;background:white;padding:0;box-shadow:0 25px 50px #0f172a40}.school-tailwind dialog::backdrop{background:#02061799;backdrop-filter:blur(3px)}.school-tailwind dialog form{max-height:90dvh;overflow-y:auto}.school-tailwind dialog input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.school-tailwind dialog select,.school-tailwind dialog textarea{max-width:100%;border:1px solid #e2e8f0;border-radius:.75rem;background:white;padding:.625rem .75rem;font-size:.875rem;color:#1e293b}.school-tailwind .school-dialog-head{border-bottom:1px solid #f1f5f9;padding:1.25rem 1.5rem}.school-tailwind .school-dialog-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.75rem;border-top:1px solid #f1f5f9;background:white;padding:1rem 1.5rem}.school-tailwind .school-stats,.school-tailwind .school-attendance-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:1rem}.school-tailwind .school-stats .stat,.school-tailwind .school-attendance-stats .stat,.school-tailwind .school-report-stats>div{border:1px solid #e2e8f0;border-radius:1rem;background:white;padding:1.25rem;box-shadow:0 1px 3px #0f172a0b}.school-tailwind .school-report-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.school-tailwind .school-insights{margin:1.25rem 0;border:1px solid #e2e8f0;border-radius:1rem;background:white;padding:1.25rem;box-shadow:0 1px 3px #0f172a0b}.school-tailwind .school-insights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:1.25rem}.school-tailwind .school-academic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,350px),1fr));gap:1rem}.school-tailwind .school-academic-stack{display:grid;gap:1rem}@media(max-width:640px){.school-tailwind .school-toolbar .ui-search{flex-basis:100%}.school-tailwind .school-dialog-head,.school-tailwind .school-dialog-foot{padding:1rem}}

/* V50 portal and login compatibility styles (compiled distribution layer) */
.portal-tailwind{background:#f8fafc;color:#1e293b;-webkit-font-smoothing:antialiased}.portal-tailwind .app>header{border-bottom:1px solid #e2e8f0;background:rgba(255,255,255,.96);backdrop-filter:blur(16px)}.portal-tailwind .portal-hero{border:1px solid #e2e8f0;border-radius:18px;background:#fff;padding:20px;margin-bottom:24px;box-shadow:0 4px 12px #0f172a0a}.portal-tailwind .portal-hero h1{font-size:clamp(24px,3vw,32px);font-weight:800;color:#0f172a}.portal-tailwind .portal-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.portal-tailwind .portal-stats article{border:1px solid #e2e8f0;border-radius:18px;background:#fff;padding:20px;box-shadow:0 3px 12px #0f172a0a}.portal-tailwind .portal-stats article b{font-size:30px;font-weight:800}.portal-tailwind .portal-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.portal-tailwind .ui-panel,.portal-tailwind .portal-calendar,.portal-tailwind .profile-card,.portal-tailwind .portal-notifications .notification-item{border:1px solid #e2e8f0;border-radius:18px;background:#fff;box-shadow:0 3px 12px #0f172a0a}.portal-tailwind .portal-calendar{overflow:hidden}.portal-tailwind .portal-calendar .day{min-height:108px;border-color:#f1f5f9}.portal-tailwind .portal-calendar .cal-event{font-size:10px;font-weight:600}.portal-tailwind .child-chip.active{border-color:#6254ed;background:#f2f0ff}.portal-tailwind .report-filter{display:flex;flex-wrap:wrap;gap:12px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;padding:16px}.portal-tailwind .report-filter input,.portal-tailwind .profile-fields input{border:1px solid #e2e8f0;border-radius:12px;background:#fff}.portal-tailwind .report-filter button,.portal-tailwind .profile-actions .primary{background:#6254ed;color:#fff;border-radius:12px}.portal-tailwind .ui-table-container th{background:#f8fafc;color:#64748b;padding:12px 16px}.portal-tailwind .ui-table-container td{padding:12px 16px;border-bottom:1px solid #f1f5f9}.login-tailwind .portal-login-card{border:1px solid #e2e8f0;border-radius:24px;background:#fff;box-shadow:0 20px 60px #0f172a24}.login-tailwind .portal-login-card input{border-radius:12px}.login-tailwind .portal-login-card button[type=submit]{background:#6254ed;color:#fff;border-radius:12px}@media(max-width:1100px){.portal-tailwind .portal-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-tailwind .portal-columns{grid-template-columns:1fr}}@media(max-width:600px){.portal-tailwind .portal-stats{grid-template-columns:1fr}.portal-tailwind .portal-hero{padding:16px}.portal-tailwind .portal-calendar .day{min-height:72px;padding:4px}.portal-tailwind .portal-calendar .cal-event{font-size:9px;padding:3px}.portal-tailwind .portal-calendar .weekdays b{padding:8px 2px}}


/* V52: consistent administrative dialogs; dialog is the only modal shell */
:where(.school-tailwind,.admin-tailwind) dialog.ui-dialog,
:where(.school-tailwind,.admin-tailwind) dialog.ui-dialog-shell {
  box-sizing:border-box!important;
  width:min(900px,calc(100vw - 40px))!important;
  max-width:calc(100vw - 24px)!important;
  max-height:min(90dvh,900px)!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid #e2e8f0!important;
  border-radius:22px!important;
  background:#fff!important;
  box-shadow:0 30px 100px rgba(15,23,42,.30)!important;
}
:where(.school-tailwind,.admin-tailwind) dialog.enrollment-modal {width:min(980px,calc(100vw - 36px))!important}
:where(.school-tailwind,.admin-tailwind) dialog.ui-dialog>form,
:where(.school-tailwind,.admin-tailwind) dialog.ui-dialog-shell>form {
  display:flex!important;flex-direction:column!important;width:100%!important;
  min-width:0!important;max-height:min(90dvh,900px)!important;
  padding:0!important;margin:0!important;overflow:hidden!important;
}
:where(.school-tailwind,.admin-tailwind) dialog .ui-dialog-head {
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  flex:none!important;gap:20px!important;min-height:76px!important;
  width:100%!important;margin:0!important;padding:18px 26px!important;
  border:0!important;border-bottom:1px solid #e2e8f0!important;
  background:#fff!important;position:relative!important;top:auto!important;
}
:where(.school-tailwind,.admin-tailwind) dialog .ui-dialog-head>div {flex:1!important;min-width:0!important}
:where(.school-tailwind,.admin-tailwind) dialog .ui-dialog-head h2 {margin:3px 0!important;font-size:20px!important;line-height:1.25!important;color:#0f172a!important}
:where(.school-tailwind,.admin-tailwind) dialog .ui-dialog-head p {margin:4px 0 0!important;color:#64748b!important;font-size:12px!important}
:where(.school-tailwind,.admin-tailwind) dialog .ui-dialog-x {
  flex:0 0 38px!important;width:38px!important;height:38px!important;min-height:38px!important;
  display:grid!important;place-items:center!important;margin:0!important;padding:0!important;
  border:1px solid #e2e8f0!important;border-radius:12px!important;
  background:#f8fafc!important;color:#334155!important;cursor:pointer!important;
  font-size:22px!important;line-height:1!important;
}
:where(.school-tailwind,.admin-tailwind) dialog .ui-dialog-x svg {width:18px!important;height:18px!important}
:where(.school-tailwind,.admin-tailwind) dialog .ui-dialog-body,
:where(.school-tailwind,.admin-tailwind) dialog .wizard-body {
  flex:1 1 auto!important;min-width:0!important;min-height:0!important;
  width:100%!important;max-width:100%!important;
  overflow-y:auto!important;overflow-x:hidden!important;
  padding:22px 26px!important;margin:0!important;background:#fff!important;
}
:where(.school-tailwind,.admin-tailwind) dialog .ui-dialog-foot {
  display:flex!important;align-items:center!important;justify-content:flex-end!important;
  flex:none!important;flex-wrap:wrap!important;gap:10px!important;
  width:100%!important;margin:0!important;padding:15px 26px!important;
  border:0!important;border-top:1px solid #e2e8f0!important;background:#fff!important;
  position:relative!important;bottom:auto!important;
}
:where(.school-tailwind,.admin-tailwind) dialog .wizard-nav {flex:none!important;width:100%!important;margin:0!important;padding:12px 26px!important}
:where(.school-tailwind,.admin-tailwind) dialog .grid2 {width:100%!important;max-width:100%!important;min-width:0!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
:where(.school-tailwind,.admin-tailwind) dialog .grid2>* {min-width:0!important}
:where(.school-tailwind,.admin-tailwind) dialog :is(input:not([type=checkbox]):not([type=radio]),select,textarea) {max-width:100%!important;box-sizing:border-box!important}
:where(.school-tailwind,.admin-tailwind) dialog .wizard-pane {width:100%!important;max-width:100%!important}
@media(max-width:700px){
 :where(.school-tailwind,.admin-tailwind) dialog.ui-dialog,
 :where(.school-tailwind,.admin-tailwind) dialog.ui-dialog-shell {width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px)!important;border-radius:16px!important}
 :where(.school-tailwind,.admin-tailwind) dialog.ui-dialog>form,
 :where(.school-tailwind,.admin-tailwind) dialog.ui-dialog-shell>form {max-height:calc(100dvh - 16px)!important}
 :where(.school-tailwind,.admin-tailwind) dialog .ui-dialog-head {padding:15px 18px!important}
 :where(.school-tailwind,.admin-tailwind) dialog .ui-dialog-body,
 :where(.school-tailwind,.admin-tailwind) dialog .wizard-body {padding:18px!important}
 :where(.school-tailwind,.admin-tailwind) dialog .ui-dialog-foot {padding:12px 18px!important}
 :where(.school-tailwind,.admin-tailwind) dialog .wizard-nav {padding:10px 14px!important;gap:5px!important}
 :where(.school-tailwind,.admin-tailwind) dialog .grid2 {grid-template-columns:minmax(0,1fr)!important}
}

/* V53: identidad visual transversal + accesibilidad de temas */
:root{--v53-side-width:264px;--v53-purple:#6857ef;--v53-teal:#10b9aa}
html[data-theme="light"]{color-scheme:light;--bg:#f5f7fc;--card:#fff;--card-solid:#fff;--input:#fff;--text:#19243a;--muted:#63718a;--line:#e5eaf4}
html[data-theme="dark"]{color-scheme:dark;--bg:#0b1020;--card:#171d31;--card-solid:#171d31;--input:#12182a;--text:#e9edfa;--muted:#a7b2c9;--line:#303a53}
html[data-theme="light"] body{background:#f5f7fc!important;color:#19243a!important}
html[data-theme="dark"] body{background:#0b1020!important;color:#e9edfa!important}
html[data-theme="dark"] .shell>header,html[data-theme="dark"] .school-header,html[data-theme="dark"] .mobilebar{background:#141a2b!important;color:#e9edfa!important;border-color:#303a53!important}
html[data-theme="light"] .shell>header,html[data-theme="light"] .school-header{background:rgba(255,255,255,.96)!important;color:#19243a!important}
html[data-theme="dark"] .title h1,html[data-theme="dark"] .headtitle b,html[data-theme="dark"] .sectiontitle h2,html[data-theme="dark"] .modalhead h2,html[data-theme="dark"] .portal-pagehead h1{color:#f3f5ff!important}
html[data-theme="dark"] .title p,html[data-theme="dark"] .headtitle span,html[data-theme="dark"] .stat span,html[data-theme="dark"] .stat small{color:#a7b2c9!important}
html[data-theme="dark"] .card,html[data-theme="dark"] .stat,html[data-theme="dark"] .ui-panel,html[data-theme="dark"] .tablewrap,html[data-theme="dark"] .toolbar,html[data-theme="dark"] .table-toolbar{background:#171d31!important;border-color:#303a53!important;color:#e9edfa!important}
html[data-theme="dark"] th{background:#101626!important;color:#aebad0!important}html[data-theme="dark"] td{color:#e9edfa!important;border-color:#303a53!important}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea{background:#12182a!important;color:#eef2ff!important;border-color:#37435f!important}
html[data-theme="dark"] input::placeholder,html[data-theme="dark"] textarea::placeholder{color:#8e9bb4!important}
html[data-theme="dark"] label{color:#b9c5dd!important}
html[data-theme="dark"] dialog,html[data-theme="dark"] .modal-content,html[data-theme="dark"] .modalhead,html[data-theme="dark"] .modalactions,html[data-theme="dark"] .modal-body{background:#171d31!important;color:#eef2ff!important;border-color:#303a53!important}
html[data-theme="dark"] .iconbtn,html[data-theme="dark"] .secondary,html[data-theme="dark"] .ui-icon-button{background:#202941!important;color:#e9edfa!important;border-color:#3b4660!important}
html[data-theme="dark"] .bg-white,html[data-theme="dark"] .bg-slate-50,html[data-theme="dark"] .bg-white\/95{background-color:#171d31!important}
html[data-theme="dark"] .text-slate-800,html[data-theme="dark"] .text-slate-900{color:#e9edfa!important}
html[data-theme="dark"] .text-slate-500,html[data-theme="dark"] .text-slate-600{color:#a7b2c9!important}
/* Sidebar premium, consistent across every authenticated role */
body>aside{width:var(--v53-side-width)!important;padding:22px 13px 14px!important;background:linear-gradient(170deg,#111c39 0%,#151c3e 54%,#11192f 100%)!important;border-right:1px solid rgba(255,255,255,.09)!important;box-shadow:12px 0 36px rgba(12,18,42,.12)!important;color:#eaf0ff!important;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#46517d transparent}
body>aside::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#7c67ff,#22d3c1,#69a9ff)}
body>aside .logo{min-height:94px;padding:12px 11px 22px!important;gap:12px!important;border-bottom:1px solid rgba(255,255,255,.10);margin-bottom:14px;align-items:center}
body>aside .logo img{max-width:64px;max-height:58px;object-fit:contain;filter:drop-shadow(0 5px 12px rgba(0,0,0,.1))}
body>aside .logo>div:last-child{min-width:0;overflow-wrap:anywhere;font-weight:750;line-height:1.4;font-size:13px}
body>aside .logo b{color:#a99fff!important;letter-spacing:1px!important;font-size:10px!important;margin-top:4px}
body>aside .logo small{color:#a5b3d4!important;font-size:10px}
body>aside nav{display:flex;flex-direction:column;gap:5px;min-height:0}
body>aside nav a,body>aside nav summary{border-radius:12px!important;min-height:42px;padding:11px 12px!important;color:#bfc9e4!important;display:flex;align-items:center;gap:11px;transition:background .18s,color .18s,transform .18s;border:1px solid transparent!important;font-weight:600;font-size:12px;cursor:pointer}
body>aside nav a:hover,body>aside nav summary:hover{background:rgba(136,120,255,.15)!important;color:#fff!important;transform:translateX(2px)}
body>aside nav a.on,body>aside nav a.active{background:linear-gradient(100deg,rgba(119,101,255,.35),rgba(69,106,228,.18))!important;border-color:rgba(175,164,255,.28)!important;color:#fff!important;box-shadow:inset 3px 0 #a99aff,0 5px 18px rgba(11,9,55,.15)}
body>aside nav svg{width:18px!important;height:18px!important;flex-shrink:0;color:#a59aff!important}
body>aside nav .navlabel{color:#8393be!important;font-size:10px!important;letter-spacing:1.2px;margin-top:14px}
body>aside .navgroup{border-radius:13px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);margin-bottom:3px}
body>aside .navgroup[open]{background:rgba(120,112,224,.07);border-color:rgba(171,156,255,.16)}
body>aside .navchildren{padding:2px 5px 7px 8px}
body>aside .navchildren a{font-size:11px;min-height:36px;padding:8px 10px!important}
body>aside .side-profile,body>aside .sidefoot{margin-top:auto;border-radius:15px;background:rgba(255,255,255,.075)!important;border:1px solid rgba(255,255,255,.10)!important;color:#f3f4ff!important}
body>aside .side-profile{padding:11px!important;display:flex;align-items:center;gap:9px}
body>aside .side-profile-copy{min-width:0;overflow:hidden;text-overflow:ellipsis}
body>aside .side-profile-copy b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
body>aside .side-profile-copy small{color:#a7b5d3!important}
body>.shell,.shell,.school-shell{margin-left:var(--v53-side-width)}
body.sidebar-collapsed>aside{width:82px!important;padding-left:9px!important;padding-right:9px!important}
body.sidebar-collapsed>aside .logo{justify-content:center;padding-left:0!important;padding-right:0!important}
body.sidebar-collapsed>aside .logo>div:last-child,body.sidebar-collapsed>aside nav a span,body.sidebar-collapsed>aside .navlabel,body.sidebar-collapsed>aside nav summary span,body.sidebar-collapsed>aside .navchev,body.sidebar-collapsed>aside .side-profile-copy{display:none!important}
body.sidebar-collapsed>aside nav a,body.sidebar-collapsed>aside nav summary{justify-content:center;padding:11px!important}
body.sidebar-collapsed .shell{margin-left:82px!important}
/* Fix role permissions checkbox layout, without changing input names or values */
.permission-list label,.permissions-list label,.role-permissions label,.checks label{display:flex!important;flex-direction:row!important;align-items:center!important;gap:12px!important;min-height:44px!important;line-height:1.4!important}
.permission-list input[type=checkbox],.permissions-list input[type=checkbox],.role-permissions input[type=checkbox],.checks input[type=checkbox]{width:17px!important;height:17px!important;min-height:17px!important;flex:0 0 17px!important;accent-color:#6857ef!important;padding:0!important;margin:0!important}
@media(max-width:900px){body>aside{transform:translateX(-105%);width:min(290px,88vw)!important;transition:transform .22s ease!important;z-index:110!important}body.sidebar-open>aside{transform:translateX(0)!important}body .shell,body .school-shell,body.sidebar-collapsed .shell{margin-left:0!important}body.sidebar-collapsed>aside{width:min(290px,88vw)!important}body.sidebar-collapsed>aside .logo>div:last-child,body.sidebar-collapsed>aside nav a span,body.sidebar-collapsed>aside nav summary span{display:initial!important}body.sidebar-collapsed>aside nav a{justify-content:flex-start!important}body.sidebar-open::after{content:"";position:fixed;inset:0;background:rgba(8,12,28,.58);backdrop-filter:blur(3px);z-index:100;pointer-events:none}body .mobilebar{display:flex!important}body .shell>header{padding:0 15px!important}body main{padding:16px!important}}
@media(min-width:901px){body .mobilebar{display:none!important}body .desktop-menu{display:grid!important}}
@media(prefers-reduced-motion:reduce){body>aside,body>aside nav a{transition:none!important}}


/* V54 - Sistema cromático integral: una paleta por tema y por rol */
:root,[data-theme="light"]{--carip-page:#f1f5ff;--carip-surface:#ffffff;--carip-surface-2:#f8faff;--carip-text:#15233e;--carip-muted:#64748b;--carip-line:#dce5f2;--carip-side:#ffffff;--carip-side-text:#344463;--carip-side-hover:#eef0ff;--carip-active:#ede9ff;--carip-accent:#6246ea;--carip-header:#ffffff}
[data-theme="dark"]{--carip-page:#0c1426;--carip-surface:#172239;--carip-surface-2:#1d2b45;--carip-text:#eef3ff;--carip-muted:#b3c0d7;--carip-line:#34425d;--carip-side:#121e34;--carip-side-text:#d3ddf3;--carip-side-hover:#233450;--carip-active:#343260;--carip-accent:#a39aff;--carip-header:#152039}
body.admin-tailwind,body.school-tailwind,body.parent-portal,body.student-portal{background:var(--carip-page)!important;color:var(--carip-text)!important;min-height:100vh}
body.admin-tailwind>aside,body.school-tailwind>aside,body.parent-portal>aside,body.student-portal>aside{background:var(--carip-side)!important;background-image:none!important;color:var(--carip-side-text)!important;border-right:1px solid var(--carip-line)!important;box-shadow:5px 0 22px rgba(15,23,42,.045)!important}
body>aside::before{background:linear-gradient(90deg,#635bff,#23b8c6)!important;height:3px!important}
body>aside .logo{border-bottom:1px solid var(--carip-line)!important}
body>aside .logo>div:last-child,body>aside .logo b{color:var(--carip-text)!important}
body>aside .logo small{color:var(--carip-muted)!important}
body>aside nav a,body>aside nav summary{color:var(--carip-side-text)!important;background:transparent!important}
body>aside nav a:hover,body>aside nav summary:hover{color:var(--carip-text)!important;background:var(--carip-side-hover)!important;transform:none!important}
body>aside nav a.on,body>aside nav a.active{background:var(--carip-active)!important;color:var(--carip-accent)!important;border-color:color-mix(in srgb,var(--carip-accent) 24%,transparent)!important;box-shadow:inset 3px 0 var(--carip-accent)!important}
body>aside nav svg{color:var(--carip-accent)!important}
body>aside .navgroup,body>aside .navgroup[open]{background:var(--carip-surface-2)!important;border-color:var(--carip-line)!important}
body>aside .navlabel,body>aside .side-profile-copy small{color:var(--carip-muted)!important}
body>aside .side-profile,body>aside .sidefoot{background:var(--carip-surface-2)!important;border-color:var(--carip-line)!important;color:var(--carip-text)!important}
body.admin-tailwind .shell,body.school-tailwind .shell,body.parent-portal .app,body.student-portal .app,body .school-shell{background:var(--carip-page)!important;color:var(--carip-text)!important}
body.admin-tailwind header,body.school-tailwind header,body.parent-portal header,body.student-portal header,body .mobilebar{background:var(--carip-header)!important;color:var(--carip-text)!important;border-color:var(--carip-line)!important}
body.admin-tailwind main,body.school-tailwind main,body.parent-portal main,body.student-portal main{background:var(--carip-page)!important;color:var(--carip-text)!important}
body .card,body .ui-panel,body .portal-hero,body .parent-childbar,body .stat,body .statcard,body .kpi,body .insights-panel,body .insights-chart,body .tablewrap,body .ui-table-container{background:var(--carip-surface)!important;color:var(--carip-text)!important;border-color:var(--carip-line)!important}
body .card p,body .card small,body .ui-panel small,body .title p,body .pagehead p,body .portal-hero p,body .parent-childbar p{color:var(--carip-muted)!important}
body .card h1,body .card h2,body .pagehead h1,body .title h1,body .portal-hero h1,body .parent-childbar h1,body .stat strong{color:var(--carip-text)!important}
body table,body table tbody,body table tr,body table td{color:var(--carip-text)!important;border-color:var(--carip-line)!important}
body table th,body table thead{background:var(--carip-surface-2)!important;color:var(--carip-muted)!important}
body table tbody tr:hover{background:var(--carip-side-hover)!important}
body dialog,body dialog form,body .modalhead,body .modalactions,body .ui-dialog-head,body .ui-dialog-foot{background:var(--carip-surface)!important;color:var(--carip-text)!important;border-color:var(--carip-line)!important}
body dialog input,body dialog select,body dialog textarea,body .ui-panel input,body .ui-panel select,body .ui-panel textarea{background:var(--carip-surface-2)!important;color:var(--carip-text)!important;border-color:var(--carip-line)!important}
body dialog label,body dialog h2,body dialog p{color:var(--carip-text)!important}
body .insights-donut{color:var(--carip-text)!important}
body .topactions,body .parent-user{color:var(--carip-text)!important}
/* Acceso universal: panel de bienvenida + formulario moderno */
body.loginbody{min-height:100vh;background:var(--carip-page)!important;color:var(--carip-text)!important}
body.loginbody .loginvisual{background:radial-gradient(circle at 75% 20%,rgba(55,223,212,.2),transparent 36%),radial-gradient(circle at 20% 85%,rgba(147,126,255,.33),transparent 42%),linear-gradient(145deg,#101c44,#25377e 60%,#192657)!important;position:relative;overflow:hidden}
body.loginbody .loginvisual::after{content:"";position:absolute;width:390px;height:390px;border:1px solid rgba(255,255,255,.16);border-radius:50%;right:-125px;bottom:-145px;box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 150px rgba(255,255,255,.02);pointer-events:none}
body.loginbody .loginvisual h1{font-size:clamp(34px,4vw,64px)!important;line-height:1.08!important;letter-spacing:-.045em;max-width:670px}
body.loginbody .loginvisual p{max-width:550px;line-height:1.75}
body.loginbody .loginpanel{background:var(--carip-page)!important;color:var(--carip-text)!important}
body.loginbody .loginbox{background:var(--carip-surface)!important;color:var(--carip-text)!important;border:1px solid var(--carip-line)!important;border-radius:28px!important;box-shadow:0 25px 75px rgba(20,33,75,.12)!important;padding:clamp(24px,3vw,44px)!important;max-width:480px!important;width:min(92%,480px)!important}
body.loginbody .loginbox h2,body.loginbody .loginbrand b{color:var(--carip-text)!important}
body.loginbody .loginbox p,body.loginbody .loginbox small{color:var(--carip-muted)!important}
body.loginbody .loginbox label{color:var(--carip-text)!important}
body.loginbody .loginbox input{background:var(--carip-surface-2)!important;color:var(--carip-text)!important;border:1px solid var(--carip-line)!important;border-radius:12px!important;min-height:48px!important}
body.loginbody .loginbox input:focus{outline:2px solid var(--carip-accent)!important;outline-offset:1px}
body.loginbody .loginbtn{min-height:50px!important;border-radius:13px!important;background:linear-gradient(110deg,#6252ec,#4d65e7)!important;color:#fff!important;box-shadow:0 12px 24px rgba(87,73,225,.22)!important}
body.loginbody .login-theme{background:var(--carip-surface)!important;color:var(--carip-text)!important;border:1px solid var(--carip-line)!important;border-radius:12px!important;padding:9px 13px!important}
@media(max-width:900px){body.loginbody .loginvisual{display:none!important}body.loginbody .loginpanel{min-height:100dvh!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:20px!important}body.loginbody .loginbox{width:100%!important}}

/* V55: targeted structural fixes */
#roleModal .permission-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;padding:16px!important}
#roleModal .permission-card{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:14px!important;min-height:66px!important;padding:13px 15px!important;position:relative!important;border:1px solid var(--carip-line,#dbe2f0)!important;border-radius:14px!important;background:var(--carip-card,#fff)!important;box-shadow:none!important;cursor:pointer!important;overflow:hidden!important}
#roleModal .permission-card input[type=checkbox]{position:static!important;display:block!important;appearance:auto!important;-webkit-appearance:checkbox!important;flex:0 0 20px!important;width:20px!important;height:20px!important;min-height:20px!important;margin:0!important;padding:0!important;accent-color:#6355e9!important;transform:none!important;box-shadow:none!important}
#roleModal .permission-card span{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:4px!important;min-width:0!important;flex:1!important}
#roleModal .permission-card b{font-size:12px!important;font-weight:750!important;line-height:1.4!important;white-space:normal!important;color:var(--carip-text,#18233b)!important}
#roleModal .permission-card small{font-size:10px!important;color:var(--carip-muted,#64748b)!important;line-height:1.3!important}
#roleModal .permission-card:has(input:checked){border-color:#8577ff!important;background:color-mix(in srgb,#6355e9 8%,var(--carip-card,#fff))!important}
#roleModal .benefits-accordion{margin-top:18px!important;border:1px solid var(--carip-line,#dbe2f0)!important;border-radius:16px!important;overflow:hidden!important}
#roleModal .benefits-accordion>summary{padding:15px 18px!important;font-weight:750!important}
.school-calendar-card .tablewrap{overflow-x:auto!important}
.school-calendar-card table{width:100%!important;min-width:850px!important;table-layout:auto!important;border-collapse:separate!important;border-spacing:0!important}
.school-calendar-card th,.school-calendar-card td{padding:15px 17px!important;vertical-align:middle!important;line-height:1.45!important;white-space:normal!important;overflow-wrap:anywhere!important}
.school-calendar-card th:nth-child(1),.school-calendar-card td:nth-child(1){min-width:115px!important;white-space:nowrap!important}
.school-calendar-card th:nth-child(2),.school-calendar-card td:nth-child(2){min-width:250px!important;width:38%!important}
.school-calendar-card td:nth-child(2) b,.school-calendar-card td:nth-child(2) small{display:block!important;margin-bottom:4px!important}
.school-calendar-card th:nth-child(3),.school-calendar-card td:nth-child(3){min-width:120px!important}
.school-calendar-card th:nth-child(4),.school-calendar-card td:nth-child(4){min-width:110px!important}
.school-calendar-card th:nth-child(5),.school-calendar-card td:nth-child(5){min-width:145px!important}
.id-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(215px,1fr))!important;justify-items:center!important;align-items:start!important;gap:22px!important}
.id-grid .student-id-card{position:relative!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important;overflow:hidden!important;max-width:100%!important;box-sizing:border-box!important}
.id-grid .student-id-card.vertical{width:54mm!important;min-width:54mm!important;height:86mm!important;min-height:86mm!important}
.id-grid .student-id-card.horizontal{width:86mm!important;min-width:min(86mm,100%)!important;height:54mm!important;min-height:54mm!important}
.id-grid .student-id-card .card-select{position:absolute!important;top:8px!important;right:8px!important;z-index:5!important;width:auto!important;height:auto!important;padding:0!important;background:transparent!important;border:0!important}
.id-grid .student-id-card .card-select input{width:19px!important;height:19px!important;accent-color:#6355e9!important}
.id-grid .student-id-card .id-card-top{display:flex!important;align-items:center!important;gap:8px!important;padding:10px!important;min-width:0!important}
.id-grid .student-id-card .id-card-top>div:last-child{min-width:0!important}
.id-grid .student-id-card .id-card-top small{font-size:8px!important;overflow-wrap:anywhere!important}
.id-grid .student-id-card .id-card-top b{font-size:9px!important}
.id-grid .student-id-card .id-card-body{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:6px!important;min-height:0!important;flex:1!important;padding:8px 10px!important;text-align:center!important}
.id-grid .student-id-card .student-photo{width:60px!important;height:70px!important;flex:0 0 auto!important;overflow:hidden!important}
.id-grid .student-id-card .student-photo img{width:100%!important;height:100%!important;object-fit:cover!important}
.id-grid .student-id-card .student-card-data{width:100%!important;min-width:0!important}
.id-grid .student-id-card .student-card-data h3{font-size:10px!important;line-height:1.25!important;margin:0 0 3px!important;overflow-wrap:anywhere!important}
.id-grid .student-id-card .student-card-data p{font-size:8px!important;line-height:1.3!important;margin:1px 0!important}
.id-grid .student-id-card .qr-box{width:62px!important;height:62px!important;flex:0 0 auto!important;margin:0 auto!important}
.id-grid .student-id-card .qr-box img,.id-grid .student-id-card .qr-box canvas{width:60px!important;height:60px!important}
.id-grid .student-id-card .id-card-actions{display:flex!important;justify-content:center!important;gap:8px!important;padding:5px!important}
body.student-portal .app{margin-left:238px!important;width:calc(100% - 238px)!important;min-width:0!important;box-sizing:border-box!important}
body.student-portal .app>header{left:auto!important;right:auto!important;width:100%!important;box-sizing:border-box!important}
body.student-portal .app main{width:100%!important;max-width:100%!important;box-sizing:border-box!important;padding:24px!important;overflow-x:hidden!important}
body.student-portal .portal-hero,body.student-portal .portal-stats,body.student-portal .portal-columns{min-width:0!important;max-width:100%!important}
body.student-portal .portal-columns>*{min-width:0!important}
@media(max-width:900px){#roleModal .permission-grid{grid-template-columns:1fr!important}body.student-portal .app{margin-left:0!important;width:100%!important}body.student-portal .app main{padding:16px!important}}
@media print{.id-grid{display:grid!important;grid-template-columns:repeat(3,54mm)!important;gap:4mm!important}.id-grid .student-id-card{break-inside:avoid!important;box-shadow:none!important}.id-grid .student-id-card .id-card-actions,.id-grid .student-id-card .card-select{display:none!important}}


/* V56 | Layout administrativo y portales. Capa de corrección final. */
:root{--v56-accent:#6354e9;--v56-edge:#dfe5f2;--v56-surface:#fff}
/* Formulario modal: una sola columna de scroll, campos contenidos en su ancho */
body.admin-tailwind dialog,body.school-tailwind dialog{width:min(760px,calc(100vw - 32px))!important;max-width:calc(100vw - 32px)!important;max-height:calc(100dvh - 32px)!important;box-sizing:border-box!important;overflow:hidden!important;border-radius:22px!important;padding:0!important}
body.admin-tailwind dialog>form,body.school-tailwind dialog>form{width:100%!important;max-width:100%!important;min-width:0!important;max-height:calc(100dvh - 32px)!important;box-sizing:border-box!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}
body.admin-tailwind dialog .modalhead,body.school-tailwind dialog .modalhead{width:100%!important;box-sizing:border-box!important;min-width:0!important;padding:20px 24px!important;flex-shrink:0!important}
body.admin-tailwind dialog .grid2,body.school-tailwind dialog .grid2{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:16px!important;row-gap:18px!important;align-items:start!important;width:100%!important;min-width:0!important;max-width:100%!important;padding:22px 24px!important;box-sizing:border-box!important;overflow-x:hidden!important;overflow-y:auto!important;flex:1 1 auto!important}
body.admin-tailwind dialog .grid2>*,body.school-tailwind dialog .grid2>*{min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
body.admin-tailwind dialog label,body.school-tailwind dialog label{min-width:0!important;max-width:100%!important;box-sizing:border-box!important;overflow-wrap:break-word!important}
body.admin-tailwind dialog input:not([type=checkbox]):not([type=radio]),body.admin-tailwind dialog select,body.admin-tailwind dialog textarea,body.school-tailwind dialog input:not([type=checkbox]):not([type=radio]),body.school-tailwind dialog select,body.school-tailwind dialog textarea{width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
body.admin-tailwind dialog .modalactions,body.school-tailwind dialog .modalactions{width:100%!important;box-sizing:border-box!important;min-width:0!important;flex-shrink:0!important;padding:15px 24px!important;position:relative!important;z-index:2!important}
body.admin-tailwind dialog .close,body.school-tailwind dialog .close{flex-shrink:0!important}
/* Las acciones de las tablas usan un mismo patrón de botón con Lucide */
body :is(td.actions,td.actions-col,td.row-actions,.actions.action-icons,.row-actions){vertical-align:middle!important}
body :is(td.actions,td.actions-col,.actions.action-icons,.row-actions){gap:7px!important}
body :is(td.actions,td.actions-col,.actions.action-icons,.row-actions) :is(button,a){display:inline-flex!important;align-items:center!important;justify-content:center!important;vertical-align:middle!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;border:1px solid var(--carip-line,var(--v56-edge))!important;border-radius:11px!important;background:var(--carip-surface,var(--v56-surface))!important;color:var(--carip-text,#334155)!important;box-shadow:0 1px 2px rgba(15,23,42,.04)!important;text-decoration:none!important;transition:background .18s,border-color .18s,color .18s,transform .18s!important}
body :is(td.actions,td.actions-col,.actions.action-icons,.row-actions) :is(button,a):hover{background:color-mix(in srgb,var(--v56-accent) 9%,var(--carip-surface,#fff))!important;border-color:var(--v56-accent)!important;color:var(--v56-accent)!important;transform:translateY(-1px)!important}
body :is(td.actions,td.actions-col,.actions.action-icons,.row-actions) :is(button,a):focus-visible{outline:3px solid #a5b4fc!important;outline-offset:2px!important}
body :is(td.actions,td.actions-col,.actions.action-icons,.row-actions) :is(svg,i[data-lucide]){width:17px!important;height:17px!important;stroke-width:1.9!important;flex:none!important}
body :is(td.actions,td.actions-col,.actions.action-icons,.row-actions) form{display:inline-flex!important;margin:0!important}
body :is(td.actions,td.actions-col,.actions.action-icons,.row-actions) .danger-action{color:#dc2626!important}
/* Estudiante y familia: gutter consistente, header y contenedores limitados */
body:is(.student-portal,.parent-portal){--v56-side-width:210px}
body:is(.student-portal,.parent-portal)>aside{width:var(--v56-side-width)!important;box-sizing:border-box!important}
body:is(.student-portal,.parent-portal) .app{margin-left:var(--v56-side-width)!important;width:calc(100% - var(--v56-side-width))!important;max-width:calc(100% - var(--v56-side-width))!important;min-width:0!important;box-sizing:border-box!important;overflow-x:clip!important}
body:is(.student-portal,.parent-portal) .app>header{position:sticky!important;left:auto!important;right:auto!important;top:0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;padding-inline:24px!important;gap:18px!important}
body:is(.student-portal,.parent-portal) .app>header>div:first-of-type{min-width:0!important;flex:1!important;overflow:hidden!important}
body:is(.student-portal,.parent-portal) .app>header>div:first-of-type :is(b,small){display:block!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
body:is(.student-portal,.parent-portal) .app main{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;padding:24px!important;margin:0!important;overflow-x:clip!important}
body:is(.student-portal,.parent-portal) .app main>*{max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
body:is(.student-portal,.parent-portal) .app main .portal-hero{margin:0 0 20px!important;width:100%!important;padding:22px 26px!important}
body:is(.student-portal,.parent-portal) .app main :is(.portal-stats,.portal-columns,.stats-grid,.dashboard-grid,.calendar-grid){min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
body:is(.student-portal,.parent-portal) .app main :is(.portal-stats,.portal-columns,.stats-grid,.dashboard-grid)>*{min-width:0!important;box-sizing:border-box!important}
body:is(.student-portal,.parent-portal) .app main :is(.calendar-head,.calendar-grid,.calendar-legend,.report-card,.profile-card){max-width:100%!important;box-sizing:border-box!important}
@media(max-width:900px){body:is(.student-portal,.parent-portal) .app{margin-left:0!important;width:100%!important;max-width:100%!important}body:is(.student-portal,.parent-portal) .app main{padding:18px!important}body:is(.student-portal,.parent-portal) .app>header{padding-inline:18px!important}body.admin-tailwind dialog .grid2,body.school-tailwind dialog .grid2{grid-template-columns:minmax(0,1fr)!important}}
@media(max-width:560px){body:is(.student-portal,.parent-portal) .app main{padding:14px!important}body:is(.student-portal,.parent-portal) .app main .portal-hero{padding:18px!important}body.admin-tailwind dialog,body.school-tailwind dialog{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important}body.admin-tailwind dialog .grid2,body.school-tailwind dialog .grid2{padding:16px!important}body.admin-tailwind dialog .modalhead,body.school-tailwind dialog .modalhead,body.admin-tailwind dialog .modalactions,body.school-tailwind dialog .modalactions{padding:14px 16px!important}}
html[data-theme=dark] body :is(td.actions,td.actions-col,.actions.action-icons,.row-actions) :is(button,a){background:var(--carip-surface,#1b253b)!important;color:#e2e8f0!important;border-color:var(--carip-line,#35415a)!important}


/* V57 - MODALES DEL SUPERADMINISTRADOR: contención real, sin recortes laterales. */
body.admin-tailwind dialog:not(.detail-dialog){
  width:min(800px,calc(100vw - 36px))!important;max-width:calc(100vw - 36px)!important;
  max-height:calc(100dvh - 36px)!important;box-sizing:border-box!important;
  overflow:hidden!important;padding:0!important;margin:auto!important;
  border-radius:22px!important;
}
body.admin-tailwind dialog:not(.detail-dialog)>form{
  display:flex!important;flex-direction:column!important;width:100%!important;
  min-width:0!important;max-width:100%!important;max-height:calc(100dvh - 36px)!important;
  overflow-y:auto!important;overflow-x:hidden!important;padding:0!important;
  box-sizing:border-box!important;scrollbar-gutter:stable;
}
body.admin-tailwind dialog:not(.detail-dialog)>form>.modalhead{
  position:sticky!important;top:0!important;z-index:8!important;flex:0 0 auto!important;
  width:100%!important;max-width:100%!important;min-width:0!important;
  margin:0!important;padding:20px 26px!important;box-sizing:border-box!important;
  background:var(--carip-surface,var(--card,#fff))!important;
}
body.admin-tailwind dialog:not(.detail-dialog)>form>.grid2{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px!important;flex:0 0 auto!important;align-content:start!important;
  width:100%!important;max-width:100%!important;min-width:0!important;
  margin:0!important;padding:24px 26px!important;box-sizing:border-box!important;
  overflow:visible!important;max-height:none!important;
}
body.admin-tailwind dialog:not(.detail-dialog)>form>.grid2>label{
  display:flex!important;flex-direction:column!important;align-items:stretch!important;
  gap:7px!important;width:auto!important;min-width:0!important;max-width:100%!important;
  margin:0!important;padding:0!important;box-sizing:border-box!important;
}
body.admin-tailwind dialog:not(.detail-dialog)>form>.grid2>label.full{grid-column:1/-1!important}
body.admin-tailwind dialog:not(.detail-dialog)>form>.grid2 input:not([type=checkbox]):not([type=radio]),
body.admin-tailwind dialog:not(.detail-dialog)>form>.grid2 select,
body.admin-tailwind dialog:not(.detail-dialog)>form>.grid2 textarea{
  display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;
  box-sizing:border-box!important;margin:0!important;
}
body.admin-tailwind dialog:not(.detail-dialog)>form>.grid2 input[type=file]{
  padding:10px!important;height:auto!important;white-space:normal!important;
}
body.admin-tailwind dialog:not(.detail-dialog)>form>.notice,
body.admin-tailwind dialog:not(.detail-dialog)>form>.plan-benefits,
body.admin-tailwind dialog:not(.detail-dialog)>form>.plan-preview,
body.admin-tailwind dialog:not(.detail-dialog)>form>.checks,
body.admin-tailwind dialog:not(.detail-dialog)>form>.modern-checks{
  flex:0 0 auto!important;min-width:0!important;max-width:calc(100% - 52px)!important;
  width:calc(100% - 52px)!important;box-sizing:border-box!important;
  margin:0 26px 18px!important;overflow-wrap:anywhere!important;
}
body.admin-tailwind dialog:not(.detail-dialog)>form>.modalactions{
  position:sticky!important;bottom:0!important;z-index:8!important;
  flex:0 0 auto!important;display:flex!important;justify-content:flex-end!important;
  flex-wrap:wrap!important;gap:10px!important;width:100%!important;
  margin:0!important;padding:15px 26px!important;box-sizing:border-box!important;
  background:var(--carip-surface,var(--card,#fff))!important;
  border-top:1px solid var(--carip-line,var(--line,#e5e7eb))!important;
}
body.admin-tailwind dialog:not(.detail-dialog)>form>.modalactions>*{max-width:100%!important}
body.admin-tailwind dialog:not(.detail-dialog) .file-picker,
body.admin-tailwind dialog:not(.detail-dialog) .file-upload,
body.admin-tailwind dialog:not(.detail-dialog) .file-picker-copy{min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
@media(max-width:680px){
 body.admin-tailwind dialog:not(.detail-dialog){width:calc(100vw - 18px)!important;max-width:calc(100vw - 18px)!important;max-height:calc(100dvh - 18px)!important}
 body.admin-tailwind dialog:not(.detail-dialog)>form{max-height:calc(100dvh - 18px)!important}
 body.admin-tailwind dialog:not(.detail-dialog)>form>.grid2{grid-template-columns:minmax(0,1fr)!important;padding:18px!important;gap:16px!important}
 body.admin-tailwind dialog:not(.detail-dialog)>form>.modalhead{padding:17px 18px!important}
 body.admin-tailwind dialog:not(.detail-dialog)>form>.modalactions{padding:12px 18px!important}
 body.admin-tailwind dialog:not(.detail-dialog)>form>.notice,
 body.admin-tailwind dialog:not(.detail-dialog)>form>.plan-benefits,
 body.admin-tailwind dialog:not(.detail-dialog)>form>.plan-preview,
 body.admin-tailwind dialog:not(.detail-dialog)>form>.checks,
 body.admin-tailwind dialog:not(.detail-dialog)>form>.modern-checks{width:calc(100% - 36px)!important;max-width:calc(100% - 36px)!important;margin:0 18px 16px!important}
}

/* CARIP V58 - modal layout and SaaS administration */
body.admin-tailwind dialog:not(.swal2-popup){box-sizing:border-box!important;max-width:min(760px,calc(100vw - 32px))!important;width:min(760px,calc(100vw - 32px))!important;max-height:calc(100dvh - 40px)!important;overflow:hidden!important;border-radius:22px!important;padding:0!important}
body.admin-tailwind dialog:not(.swal2-popup)>form{display:flex!important;flex-direction:column!important;width:100%!important;max-width:100%!important;max-height:calc(100dvh - 40px)!important;overflow:hidden!important;box-sizing:border-box!important;margin:0!important}
body.admin-tailwind dialog:not(.swal2-popup) .modalhead{flex:0 0 auto!important;padding:22px 26px!important;margin:0!important}
body.admin-tailwind dialog:not(.swal2-popup) form>.grid2{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:18px!important;row-gap:16px!important;padding:22px 26px!important;margin:0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;overflow-y:auto!important;overflow-x:hidden!important;align-content:start!important}
body.admin-tailwind dialog:not(.swal2-popup) form>.grid2>label{min-width:0!important;width:100%!important;max-width:100%!important;margin:0!important;box-sizing:border-box!important}
body.admin-tailwind dialog:not(.swal2-popup) form>.grid2>label.full{grid-column:1/-1!important}
body.admin-tailwind dialog:not(.swal2-popup) input,body.admin-tailwind dialog:not(.swal2-popup) select,body.admin-tailwind dialog:not(.swal2-popup) textarea{box-sizing:border-box!important;min-width:0!important;max-width:100%!important;width:100%!important}
body.admin-tailwind dialog:not(.swal2-popup) form>.notice,body.admin-tailwind dialog:not(.swal2-popup) form>.plan-benefits{margin-left:26px!important;margin-right:26px!important;box-sizing:border-box!important;max-width:calc(100% - 52px)!important}
body.admin-tailwind dialog:not(.swal2-popup) .modalactions{margin:0!important;padding:16px 26px!important;flex:0 0 auto!important}
body.admin-tailwind dialog:not(.swal2-popup) .close{display:grid!important;place-items:center!important;flex:0 0 36px!important;width:36px!important;height:36px!important;border:1px solid var(--carip-line,#dce4f2)!important;border-radius:11px!important;font-size:22px!important;line-height:1!important}
.carip-pricing-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))!important;gap:22px!important;align-items:stretch!important}
.carip-pricing-card{display:flex!important;flex-direction:column!important;gap:16px!important;padding:26px!important;border:1px solid var(--carip-line,#e2e8f0)!important;border-radius:24px!important;background:var(--carip-card,#fff)!important;box-shadow:0 12px 38px rgba(30,42,75,.06)!important;transition:transform .2s,box-shadow .2s!important}
.carip-pricing-card:hover{transform:translateY(-3px)!important;box-shadow:0 20px 50px rgba(30,42,75,.11)!important}
.carip-pricing-card .plan-top{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:14px!important}
.carip-pricing-card .plan-top h2{font-size:25px!important;font-weight:800!important;letter-spacing:-.04em!important;margin:12px 0 5px!important}
.carip-pricing-card .plan-top p{font-size:13px!important;line-height:1.6!important}
.carip-pricing-card .plan-price{display:flex!important;flex-wrap:wrap!important;align-items:baseline!important;gap:5px!important;padding:14px 0!important}
.carip-pricing-card .plan-price strong{font-size:36px!important;font-weight:850!important;letter-spacing:-.055em!important}
.carip-pricing-card .plan-price small{display:block!important;width:100%!important;margin-top:6px!important}
.carip-plan-limits{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
.carip-plan-limits span{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;min-width:0!important;padding:13px 6px!important;border-radius:13px!important;background:var(--carip-bg,#f4f7fd)!important;font-size:11px!important}
.carip-plan-limits b{font-size:17px!important;margin-bottom:4px!important}
.carip-plan-features{display:flex!important;flex-wrap:wrap!important;gap:7px!important;align-content:flex-start!important;flex:1!important}
.carip-plan-features .module-chip{border-radius:999px!important;padding:7px 10px!important;font-size:11px!important;font-weight:650!important}
.carip-plan-footer{margin-top:auto!important;padding-top:16px!important;border-top:1px solid var(--carip-line,#e2e8f0)!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important}
.carip-plan-footer .actions{display:flex!important;align-items:center!important;gap:7px!important}
.carip-plan-footer .actions button,.carip-pricing-card .plan-menu button{display:grid!important;place-items:center!important;width:37px!important;height:37px!important;border-radius:11px!important;border:1px solid var(--carip-line,#e2e8f0)!important;background:var(--carip-card,#fff)!important;color:var(--carip-text,#17213b)!important;transition:background .2s,transform .2s!important}
.carip-plan-footer .actions button:hover,.carip-pricing-card .plan-menu button:hover{background:#edeaff!important;color:#5b50ed!important;transform:translateY(-2px)!important}
.carip-plan-footer .actions button svg,.carip-pricing-card .plan-menu button svg{width:17px!important;height:17px!important}
.carip-executive{display:flex;flex-direction:column;gap:22px;padding-bottom:30px}.carip-exec-hero{background:linear-gradient(115deg,#1b2148,#4439b8 70%,#6458ef);border-radius:24px;padding:30px 34px;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;box-shadow:0 16px 35px rgba(47,48,123,.18)}.carip-exec-hero .eyebrow{color:#bdb9ff!important;font-size:11px;font-weight:800;letter-spacing:.13em}.carip-exec-hero h1{font-size:32px;line-height:1.2;font-weight:850;letter-spacing:-.04em;margin:10px 0}.carip-exec-hero p{color:#dcdcff;font-size:13px}.carip-exec-hero-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.carip-live,.carip-exec-link{display:inline-flex;align-items:center;gap:8px;border-radius:11px;padding:11px 13px;font-size:12px;font-weight:750;background:rgba(255,255,255,.13);color:#fff}.carip-exec-link{background:#fff;color:#3831a2;text-decoration:none}.carip-exec-hero svg{width:17px;height:17px}.carip-exec-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.carip-exec-kpi{background:var(--carip-card,#fff);border:1px solid var(--carip-line,#e1e7f1);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:9px;min-width:0;box-shadow:0 7px 23px rgba(20,31,65,.04)}.carip-kpi-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center}.carip-kpi-icon svg{width:22px;height:22px}.carip-kpi-icon.violet{background:#eeeaff;color:#6554e9}.carip-kpi-icon.blue{background:#e4efff;color:#2777e8}.carip-kpi-icon.teal{background:#d9f8f1;color:#089e89}.carip-kpi-icon.amber{background:#fff0d9;color:#d18410}.carip-exec-kpi>span{font-size:12px;color:var(--carip-muted,#64748b)}.carip-exec-kpi strong{font-size:26px;font-weight:850;letter-spacing:-.04em;line-height:1.2;color:var(--carip-text,#18233b);overflow-wrap:anywhere}.carip-exec-kpi small{font-size:11px;color:var(--carip-muted,#64748b)}.carip-exec-finance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.carip-exec-finance>div{background:var(--carip-card,#fff);border:1px solid var(--carip-line,#e1e7f1);border-radius:15px;padding:16px 20px;display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.carip-exec-finance span{font-size:12px;color:var(--carip-muted,#64748b)}.carip-exec-finance strong{font-size:17px;color:var(--carip-text,#17213b)}.carip-exec-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.carip-exec-panel{background:var(--carip-card,#fff);border:1px solid var(--carip-line,#e1e7f1);border-radius:20px;padding:23px;min-width:0}.carip-exec-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px}.carip-exec-heading h2{font-size:16px;font-weight:800;color:var(--carip-text,#17213b)}.carip-exec-heading p{font-size:12px;margin-top:4px;color:var(--carip-muted,#64748b)}.carip-exec-heading>svg{color:#6a5cf1;width:21px;height:21px}.carip-exec-heading a{display:flex;align-items:center;gap:5px;font-size:12px;color:#6658ef;font-weight:700}.carip-exec-heading a svg{width:15px}.carip-exec-canvas{height:280px;position:relative}.carip-exec-school{display:flex;align-items:center;gap:13px;padding:13px 0;border-top:1px solid var(--carip-line,#e1e7f1)}.carip-school-avatar{height:40px;width:40px;display:grid;place-items:center;background:#eeebff;color:#6556ec;border-radius:13px;flex:0 0 auto}.carip-school-avatar svg{width:19px}.carip-exec-school>div:nth-child(2){display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.carip-exec-school b{font-size:13px;color:var(--carip-text,#17213b)}.carip-exec-school small{font-size:11px;color:var(--carip-muted,#64748b);overflow-wrap:anywhere}.carip-exec-empty{padding:25px;color:var(--carip-muted,#64748b)}
@media(max-width:1050px){.carip-exec-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.carip-exec-finance{grid-template-columns:1fr}.carip-exec-charts{grid-template-columns:1fr}}@media(max-width:600px){body.admin-tailwind dialog:not(.swal2-popup) form>.grid2{grid-template-columns:1fr!important;padding:16px!important}body.admin-tailwind dialog:not(.swal2-popup) .modalhead,body.admin-tailwind dialog:not(.swal2-popup) .modalactions{padding:16px!important}body.admin-tailwind dialog:not(.swal2-popup) form>.notice,body.admin-tailwind dialog:not(.swal2-popup) form>.plan-benefits{margin-left:16px!important;margin-right:16px!important;max-width:calc(100% - 32px)!important}.carip-exec-kpis{grid-template-columns:1fr}.carip-exec-hero{padding:24px}.carip-exec-hero h1{font-size:25px}.carip-plan-limits{grid-template-columns:1fr 1fr}}

/* V59: Superadmin - robust layout fixes (avoid inherited grid and form overflow) */
body.admin-tailwind #modal{width:min(760px,calc(100vw - 32px))!important;max-width:calc(100vw - 32px)!important;box-sizing:border-box!important}
body.admin-tailwind #modal>form{display:flex!important;flex-direction:column!important;max-height:calc(100dvh - 40px)!important;overflow:hidden!important}
body.admin-tailwind #modal .admin-fields-shell{padding:24px 26px 14px!important;margin:0!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow-y:auto!important;overflow-x:hidden!important;box-sizing:border-box!important;flex:1 1 auto!important}
body.admin-tailwind #modal .admin-fields-shell>.grid2{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important;margin:0!important;padding:0!important;width:100%!important;max-width:100%!important;overflow:visible!important;box-sizing:border-box!important}
body.admin-tailwind #modal .admin-fields-shell>.grid2>label{display:flex!important;flex-direction:column!important;gap:7px!important;min-width:0!important;width:100%!important;margin:0!important;padding:0!important;box-sizing:border-box!important}
body.admin-tailwind #modal .admin-fields-shell>.grid2 input{display:block!important;box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:100%!important;margin:0!important}
body.admin-tailwind #modal .notice{margin:12px 26px 14px!important;flex:0 0 auto!important}
body.admin-tailwind #modal .modalactions{width:100%!important;box-sizing:border-box!important;flex:0 0 auto!important}
body.admin-tailwind .modern-actions{white-space:nowrap!important;vertical-align:middle!important}
body.admin-tailwind .modern-actions>button,body.admin-tailwind .modern-actions>a,body.admin-tailwind .modern-actions form>button{width:35px!important;height:35px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 35px!important;border-radius:11px!important;border:1px solid var(--carip-line,#dbe2f0)!important;background:var(--carip-card,#fff)!important;color:#6655e9!important;box-shadow:0 2px 6px rgba(28,38,73,.05)!important;transition:background .15s,transform .15s!important}
body.admin-tailwind .modern-actions>button:hover,body.admin-tailwind .modern-actions>a:hover,body.admin-tailwind .modern-actions form>button:hover{background:#edeaff!important;transform:translateY(-2px)!important}
body.admin-tailwind .modern-actions svg{width:16px!important;height:16px!important;stroke-width:1.9!important}
.carip-live-stats{padding:22px 24px;display:flex;flex-direction:column;gap:18px;min-height:230px;justify-content:center}.carip-live-stat-top{display:flex;align-items:center;gap:10px;color:var(--carip-text,#1a2540);font-size:13px}.carip-live-stat-top strong{margin-left:auto;font-size:18px}.carip-dot{width:10px;height:10px;border-radius:50%;background:#6655ed}.carip-dot.teal{background:#15b8aa}.carip-dot.amber{background:#f59e0b}.carip-meter{height:9px;background:var(--carip-line,#edf0f7);border-radius:20px;overflow:hidden;margin-top:8px}.carip-meter span{display:block;height:100%;background:#6655ed;border-radius:20px}.carip-meter span.teal{background:#15b8aa}.carip-meter span.amber{background:#f59e0b}.carip-data-note{font-size:12px;color:var(--carip-muted,#64748b);margin:8px 0}.carip-month-row{display:grid;grid-template-columns:75px minmax(0,1fr) 150px;align-items:center;gap:12px;font-size:12px}.carip-month-row small{text-align:right}.carip-month-bars{display:flex;flex-direction:column;gap:5px}.carip-month-bar{height:9px;background:var(--carip-line,#e9edf5);border-radius:20px;overflow:hidden}.carip-month-bar span{height:100%;background:#6655ed;display:block;border-radius:20px}.carip-month-bar.expense span{background:#15b8aa}.carip-chart-legend{display:flex;gap:20px;font-size:12px;color:var(--carip-muted,#64748b)}.carip-chart-legend span:first-child{color:#6655ed}.carip-chart-legend span:last-child{color:#15b8aa}
@media(max-width:640px){body.admin-tailwind #modal .admin-fields-shell{padding:18px!important}body.admin-tailwind #modal .admin-fields-shell>.grid2{grid-template-columns:1fr!important}.carip-month-row{grid-template-columns:55px minmax(0,1fr)}.carip-month-row small{grid-column:2;text-align:left}}

/* V60 - contraste nocturno unificado, componentes con superficies coherentes */
:root,[data-theme="light"]{--carip-ink:#14213a;--carip-secondary:#56647e;--carip-panel:#fff;--carip-panel-border:#dae2f0}
[data-theme="dark"]{--carip-ink:#edf3ff;--carip-secondary:#b5c4df;--carip-panel:#17243b;--carip-panel-border:#33445e;color-scheme:dark}
[data-theme="dark"] body:not(.loginbody){background:#0c1426!important;color:var(--carip-ink)!important}
[data-theme="dark"] .app,[data-theme="dark"] .app main,[data-theme="dark"] .main,[data-theme="dark"] .content,[data-theme="dark"] .page-content{color:var(--carip-ink)}
[data-theme="dark"] .carip-executive .carip-exec-kpi,[data-theme="dark"] .carip-executive .carip-exec-stat,[data-theme="dark"] .carip-executive .carip-exec-panel,[data-theme="dark"] .carip-executive .carip-live-stat,[data-theme="dark"] .carip-executive .carip-exec-chart,[data-theme="dark"] .carip-executive .card,[data-theme="dark"] .carip-executive .ui-panel{background:var(--carip-panel)!important;border-color:var(--carip-panel-border)!important;color:var(--carip-ink)!important}
[data-theme="dark"] .carip-executive .carip-exec-kpi *,[data-theme="dark"] .carip-executive .carip-exec-stat *,[data-theme="dark"] .carip-executive .carip-exec-panel *,[data-theme="dark"] .carip-executive .carip-live-stat *{color:inherit}
[data-theme="dark"] .carip-executive h2,[data-theme="dark"] .carip-executive h3,[data-theme="dark"] .carip-executive strong,[data-theme="dark"] .carip-executive b,[data-theme="dark"] .carip-executive .carip-live-stat-top{color:var(--carip-ink)!important}
[data-theme="dark"] .carip-executive p,[data-theme="dark"] .carip-executive small,[data-theme="dark"] .carip-executive .carip-exec-muted,[data-theme="dark"] .carip-executive .carip-exec-label{color:var(--carip-secondary)!important}
[data-theme="dark"] .carip-executive .carip-exec-hero,[data-theme="dark"] .carip-executive .carip-exec-hero *{color:#fff!important}
[data-theme="dark"] .carip-executive .carip-exec-hero .carip-exec-muted{color:#e2e8ff!important}
[data-theme="dark"] .card,[data-theme="dark"] .ui-panel,[data-theme="dark"] .tw-surface,[data-theme="dark"] .formcard,[data-theme="dark"] .modal-content,[data-theme="dark"] .modalbox{border-color:var(--carip-panel-border)}
[data-theme="dark"] .card h1,[data-theme="dark"] .card h2,[data-theme="dark"] .card h3,[data-theme="dark"] .ui-panel h1,[data-theme="dark"] .ui-panel h2,[data-theme="dark"] .ui-panel h3{color:var(--carip-ink)}
/* Marca de acceso: logo legible sobre fondo blanco, título y subtítulo centrados */
body.loginbody .loginbox .loginbrand{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:12px!important;text-align:center!important;margin:0 auto 30px!important;width:100%!important}
body.loginbody .loginbox .loginbrand img{width:100%!important;max-width:150px!important;height:72px!important;object-fit:contain!important;display:block!important}
body.loginbody .loginbox .loginbrand>div:last-child{display:flex!important;flex-direction:column!important;align-items:center!important;gap:4px!important;text-align:center!important}
body.loginbody .loginbox .loginbrand b{font-size:16px!important;letter-spacing:.025em!important;font-weight:800!important}
body.loginbody .loginbox .loginbrand small{font-size:12px!important}
body.loginbody .loginbox .loginbrand .login-logo-frame{display:flex!important;align-items:center!important;justify-content:center!important;width:178px!important;height:94px!important;padding:12px 16px!important;background:#fff!important;border:1px solid #e6ebf4!important;border-radius:20px!important;box-shadow:0 10px 28px rgba(0,0,0,.1)!important}
body.loginbody .loginbox .loginbrand .login-logo-frame img{filter:none!important;opacity:1!important}
body.loginbody .loginbox h2{text-align:center!important;font-weight:800!important}
body.loginbody .loginbox>p{text-align:center!important;max-width:320px!important;margin-left:auto!important;margin-right:auto!important;line-height:1.6!important}
[data-theme="dark"] body.loginbody .loginbox{background:#18243b!important;border-color:#35455f!important}
[data-theme="dark"] body.loginbody .loginbox .login-logo-frame{background:#fff!important}
@media(max-width:700px){body.loginbody .loginbox .loginbrand{margin-bottom:20px!important}body.loginbody .loginbox .loginbrand .login-logo-frame{height:78px!important;width:150px!important}}

/* V61 - Reporte financiero sin dependencia de canvas/Chart.js */
.finance-visual{padding:20px 18px 24px;min-height:290px;width:100%;box-sizing:border-box;color:var(--carip-text,#1e293b)}.finance-visual-legend{display:flex;gap:20px;flex-wrap:wrap;justify-content:flex-end;font-size:12px;margin-bottom:18px}.finance-visual-legend span{display:flex;align-items:center;gap:7px}.finance-legend-dot{width:11px;height:11px;display:inline-block;border-radius:4px}.finance-legend-dot.income,.finance-bar.income{background:#6355e9}.finance-legend-dot.expense,.finance-bar.expense{background:#0ea5a4}.finance-bars{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;min-height:245px}.finance-month{display:flex;flex-direction:column;min-width:0;text-align:center;gap:6px}.finance-month-bars{display:flex;align-items:flex-end;justify-content:center;gap:8px;flex:1;min-height:180px;border-bottom:1px solid #cbd5e1;background:repeating-linear-gradient(to top,transparent 0,transparent calc(25% - 1px),rgba(148,163,184,.14) calc(25% - 1px),rgba(148,163,184,.14) 25%)}.finance-bar{width:min(34%,42px);min-height:0;border-radius:8px 8px 0 0;transition:filter .2s}.finance-bar:hover{filter:brightness(1.2)}.finance-month strong{font-size:12px;color:inherit}.finance-month small{font-size:10px;color:var(--carip-muted,#64748b);white-space:normal;line-height:1.3}.finance-visual-empty{display:grid;place-items:center;min-height:220px;text-align:center;color:var(--carip-muted,#64748b);font-size:14px;padding:25px}@media(max-width:680px){.finance-visual{overflow-x:auto}.finance-bars{min-width:570px}}

/* V65: Tarjetas comerciales premium, diseño independiente de estilos anteriores */
.v65-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,410px),1fr));gap:22px;align-items:start}.v65-plan{background:var(--card,#fff);color:var(--text,#14213b);border:1px solid var(--line,#e2e8f0);border-radius:22px;overflow:hidden;box-shadow:0 14px 35px rgba(15,23,42,.06);padding:26px;display:flex;flex-direction:column;gap:17px;min-width:0}.v65-plan-off{opacity:.65}.v65-plan-heading{display:flex;align-items:center;gap:13px}.v65-plan-mark{height:48px;width:48px;flex-shrink:0;display:grid;place-items:center;border-radius:15px;background:linear-gradient(135deg,#6257ee,#25b7c6);color:white}.v65-plan-mark svg{width:23px;height:23px}.v65-plan-identity{flex:1;min-width:0}.v65-plan-kicker{font-size:10px;letter-spacing:.14em;font-weight:800;color:#6656e9}.v65-plan-identity h2{margin:3px 0 0!important;font-size:23px!important;font-weight:850!important;letter-spacing:-.04em}.v65-plan-status{font-size:10px;font-weight:750;color:#15803d;background:#dcfce7;padding:7px 9px;border-radius:100px;white-space:nowrap}.v65-plan-desc{margin:0;color:var(--muted,#64748b);font-size:13px;min-height:0;line-height:1.5}.v65-plan-pricebox{display:grid;grid-template-columns:1fr 1fr;gap:12px}.v65-plan-pricebox>div{background:linear-gradient(140deg,rgba(101,87,238,.09),rgba(37,183,198,.05));border:1px solid rgba(101,87,238,.12);border-radius:15px;padding:16px;min-width:0}.v65-plan-pricebox span{display:block;color:var(--muted,#64748b);font-size:11px;margin-bottom:6px}.v65-plan-pricebox strong{display:block;font-size:clamp(18px,2.1vw,27px);letter-spacing:-.045em;line-height:1.15;overflow-wrap:anywhere}.v65-plan-section-title{font-size:12px;font-weight:800;letter-spacing:.01em}.v65-plan-capacity{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.v65-plan-capacity>div{display:flex;flex-direction:column;align-items:center;gap:6px;border:1px solid var(--line,#e2e8f0);border-radius:13px;padding:13px 5px;text-align:center;min-width:0}.v65-plan-capacity svg{width:18px;height:18px;color:#6656e9}.v65-plan-capacity strong{font-size:14px;overflow-wrap:anywhere}.v65-plan-capacity span{font-size:10px;color:var(--muted,#64748b)}.v65-plan-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.v65-plan-features>span{display:flex;align-items:center;gap:8px;font-size:12px;min-width:0}.v65-plan-features svg{width:15px;height:15px;flex-shrink:0;color:#0d9488}.v65-plan-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line,#e2e8f0);padding-top:16px}.v65-plan-bottom>span{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted,#64748b)}.v65-plan-bottom>span svg{width:15px}.v65-plan-controls{display:flex;align-items:center;gap:7px}.v65-plan-controls form{margin:0}.v65-plan-controls button{display:flex;align-items:center;justify-content:center;gap:7px;min-width:36px;height:36px;padding:0 10px;border:1px solid var(--line,#e2e8f0);border-radius:10px;color:var(--text,#14213b);background:var(--card,#fff);cursor:pointer}.v65-plan-controls button svg{width:16px;height:16px}.v65-plan-controls .v65-plan-edit{background:#5e50e8;color:white;border-color:#5e50e8;font-size:12px;font-weight:700}.v65-ticket-action{display:inline-flex;align-items:center;gap:6px;border:1px solid #c9c5ff;border-radius:10px;padding:8px 10px;color:#5845d9;background:#f4f2ff;font-size:12px;font-weight:700;text-decoration:none;white-space:nowrap}.v65-ticket-action svg{width:15px;height:15px}@media(max-width:650px){.v65-plan{padding:17px}.v65-plan-pricebox{grid-template-columns:1fr}.v65-plan-features{grid-template-columns:1fr}}html[data-theme=dark] .v65-plan-status{background:#123b31;color:#a7f3d0}html[data-theme=dark] .v65-ticket-action{background:#29244d;color:#d9d2ff;border-color:#4b408c}

/* V66: colores y analítica administrativa */
.v66-colored-stats .stat:nth-child(1){background:linear-gradient(140deg,#eff6ff,#fff);border-left:5px solid #2563eb}.v66-colored-stats .stat:nth-child(1) strong{color:#1d4ed8}.v66-colored-stats .stat:nth-child(2){background:linear-gradient(140deg,#fef2f2,#fff);border-left:5px solid #dc2626}.v66-colored-stats .stat:nth-child(2) strong{color:#b91c1c}.v66-colored-stats .stat:nth-child(3){background:linear-gradient(140deg,#ecfdf5,#fff);border-left:5px solid #059669}.v66-colored-stats .stat:nth-child(3) strong{color:#047857}.v66-backup-grid,.v66-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:20px 0}.v66-backup-card,.v66-chart-panel{padding:26px!important}.v66-backup-card>svg{color:#6155e8;width:35px;height:35px}.v66-backup-card h2,.v66-chart-panel h2{margin:14px 0;font-size:19px}.v66-backup-card p{margin:12px 0 24px;line-height:1.6}.v66-backup-card a{display:inline-block;padding:12px 18px;text-decoration:none;border-radius:12px}.v66-backup-warning{padding:24px!important;border-left:5px solid #f59e0b!important}.v66-backup-warning h2{display:flex;align-items:center;gap:8px}.v66-analytics-select{display:flex;align-items:center;gap:14px;margin:24px 0}.v66-analytics-select select{width:min(450px,100%);padding:12px;border:1px solid #cbd5e1;border-radius:12px;background:var(--surface,#fff);color:var(--text,#17233b)}.v66-chart-row{margin:18px 0}.v66-chart-row>div:first-child{display:flex;justify-content:space-between;margin-bottom:8px}.v66-track{height:16px;border-radius:20px;background:#e2e8f0;overflow:hidden}.v66-track span{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,#2563eb,#6554ed)}.v66-track.alt span{background:linear-gradient(90deg,#0d9488,#22c55e)}.v66-analytics-note{padding:15px;color:var(--muted,#64748b)}html[data-theme=dark] .v66-colored-stats .stat,body.dark .v66-colored-stats .stat{background:#18233a;color:#e2e8f0}html[data-theme=dark] .v66-colored-stats .stat strong,body.dark .v66-colored-stats .stat strong{color:#f8fafc}@media(max-width:750px){.v66-backup-grid,.v66-chart-grid{grid-template-columns:1fr}.v66-analytics-select{flex-direction:column;align-items:stretch}}

/* V68: Identidad institucional y estados financieros — hoja efectivamente cargada */
#subTable .inst-logo-col{width:76px;min-width:76px;text-align:center;padding-inline:10px}
.v68-institution-logo{width:52px;height:52px;margin:auto;border-radius:15px;background:#fff;border:1px solid #dbe5f5;box-shadow:0 5px 15px rgba(22,45,90,.09);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:5px}
.v68-institution-logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.v68-logo-fallback{width:100%;height:100%;align-items:center;justify-content:center;color:#6155e8;background:#eef2ff;border-radius:10px;display:flex}
.v68-logo-fallback svg{width:23px;height:23px}
.admin-tailwind .stats.v66-colored-stats{gap:18px!important}
.admin-tailwind .stats.v66-colored-stats>.stat{border:1px solid #bfdbfe!important;border-top:5px solid #2563eb!important;background:linear-gradient(115deg,#dbeafe 0%,#eff6ff 42%,#fff 100%)!important;box-shadow:0 10px 26px rgba(37,99,235,.11)!important;border-radius:19px!important;min-height:132px!important}
.admin-tailwind .stats.v66-colored-stats>.stat:nth-child(2){border-color:#fecaca!important;border-top-color:#dc2626!important;background:linear-gradient(115deg,#fee2e2 0%,#fff1f2 42%,#fff 100%)!important;box-shadow:0 10px 26px rgba(220,38,38,.09)!important}
.admin-tailwind .stats.v66-colored-stats>.stat:nth-child(3){border-color:#a7f3d0!important;border-top-color:#059669!important;background:linear-gradient(115deg,#d1fae5 0%,#ecfdf5 42%,#fff 100%)!important;box-shadow:0 10px 26px rgba(5,150,105,.09)!important}
.admin-tailwind .stats.v66-colored-stats>.stat:first-child strong{color:#1d4ed8!important}
.admin-tailwind .stats.v66-colored-stats>.stat:nth-child(2) strong{color:#b91c1c!important}
.admin-tailwind .stats.v66-colored-stats>.stat:nth-child(3) strong{color:#047857!important}
.admin-tailwind .stats.v66-colored-stats>.stat>span{font-weight:700!important;color:#334155!important}
html[data-theme=dark] .admin-tailwind .stats.v66-colored-stats>.stat{background:linear-gradient(120deg,#142c55,#18253d)!important;border-color:#2859a3!important}
html[data-theme=dark] .admin-tailwind .stats.v66-colored-stats>.stat:nth-child(2){background:linear-gradient(120deg,#4b1d29,#2a202f)!important;border-color:#9f3646!important}
html[data-theme=dark] .admin-tailwind .stats.v66-colored-stats>.stat:nth-child(3){background:linear-gradient(120deg,#104735,#182e2b)!important;border-color:#167a59!important}
html[data-theme=dark] .admin-tailwind .stats.v66-colored-stats>.stat>span{color:#e2e8f0!important}
html[data-theme=dark] .admin-tailwind .stats.v66-colored-stats>.stat:first-child strong{color:#93c5fd!important}
html[data-theme=dark] .admin-tailwind .stats.v66-colored-stats>.stat:nth-child(2) strong{color:#fca5a5!important}
html[data-theme=dark] .admin-tailwind .stats.v66-colored-stats>.stat:nth-child(3) strong{color:#6ee7b7!important}
@media(max-width:760px){.admin-tailwind .stats.v66-colored-stats{grid-template-columns:1fr!important}.v68-institution-logo{width:42px;height:42px}}

/* V69: contraste accesible del menu lateral en modo oscuro */
html[data-theme="dark"] .admin-tailwind aside.sidebar nav a,html[data-theme="dark"] .admin-tailwind aside.sidebar .navgroup summary,html[data-theme="dark"] .admin-tailwind aside.sidebar .navchildren a,html[data-theme="dark"] .admin-tailwind aside.sidebar .side-profile{color:#dbeafe!important;opacity:1!important}
html[data-theme="dark"] .admin-tailwind aside.sidebar svg,html[data-theme="dark"] .admin-tailwind aside.sidebar i[data-lucide]{color:#a5b4fc!important;stroke:#a5b4fc!important;opacity:1!important}
html[data-theme="dark"] .admin-tailwind aside.sidebar a.on,html[data-theme="dark"] .admin-tailwind aside.sidebar a.on span{color:#fff!important}
html[data-theme="dark"] .admin-tailwind aside.sidebar a.on svg{color:#fff!important;stroke:#fff!important}
/* Panel ejecutivo: graficas circulares y columnas, sin dependencias */
.v69-dashboard-visuals{display:grid;grid-template-columns:1fr 1.25fr;gap:20px;margin:20px 0}.v69-viz{min-width:0;padding:25px;border:1px solid var(--line,#dce5f3);background:var(--card,#fff);border-radius:22px;box-shadow:0 12px 28px rgba(20,30,65,.045)}.v69-viz-title{display:flex;justify-content:space-between;align-items:start;gap:12px}.v69-viz-title>svg{color:#6658ec;width:24px;height:24px}.v69-viz-title span{color:#6658ec;font-size:10px;font-weight:850;letter-spacing:.14em}.v69-viz-title h2{font-size:20px!important;margin:6px 0!important;color:var(--text,#15213a)}.v69-viz-title p{font-size:12px;color:var(--muted,#64748b)}.v69-donut-layout{display:flex;align-items:center;gap:28px;justify-content:center;margin-top:27px;flex-wrap:wrap}.v69-donut{width:clamp(150px,17vw,220px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#6254ed 0 calc(var(--p1)*1%),#14b8a6 calc(var(--p1)*1%) calc((var(--p1) + var(--p2))*1%),#f59e0b calc((var(--p1) + var(--p2))*1%) 100%);position:relative;flex-shrink:0}.v69-donut:before{content:"";position:absolute;inset:19%;border-radius:50%;background:var(--card,#fff)}.v69-donut>div{z-index:1;display:flex;flex-direction:column;align-items:center}.v69-donut strong{font-size:37px;color:var(--text,#15213a)}.v69-donut small{color:var(--muted,#64748b)}.v69-donut-legend{min-width:140px;flex:1}.v69-donut-legend>div{display:flex;align-items:center;gap:9px;margin:16px 0;color:var(--text,#15213a);font-size:13px}.v69-donut-legend>div span{height:10px;width:10px;border-radius:50%;background:var(--legend)}.v69-donut-legend>div strong{margin-left:auto;font-size:16px}.v69-columns{height:240px;display:flex;align-items:stretch;gap:13px;margin-top:25px;padding:0 5px 0;border-bottom:1px solid var(--line,#dce5f3);background:repeating-linear-gradient(to top,transparent 0,transparent calc(25% - 1px),rgba(148,163,184,.13) 25%);}.v69-column-group{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:8px}.v69-column-pair{width:100%;height:calc(100% - 30px);display:flex;align-items:end;justify-content:center;gap:5px}.v69-column{width:min(35%,38px);border-radius:8px 8px 0 0;min-height:0;transition:height .25s}.v69-column.income{background:linear-gradient(#7368f6,#5042d4)}.v69-column.expense{background:linear-gradient(#fb7185,#dc2626)}.v69-column-group>span{font-size:11px;color:var(--muted,#64748b);white-space:nowrap}.v69-finance-legend{display:flex;justify-content:center;gap:25px;margin-top:18px;font-size:12px;color:var(--text,#15213a)}.v69-finance-legend span{display:flex;align-items:center;gap:7px}.v69-finance-legend i{width:10px;height:10px;border-radius:3px}.v69-finance-legend i.income{background:#6254ed}.v69-finance-legend i.expense{background:#dc2626}html[data-theme="dark"] .v69-viz{background:#18243a;border-color:#34435f}html[data-theme="dark"] .v69-donut:before{background:#18243a}html[data-theme="dark"] .v69-viz-title h2,html[data-theme="dark"] .v69-donut strong,html[data-theme="dark"] .v69-donut-legend>div{color:#f1f5f9}@media(max-width:900px){.v69-dashboard-visuals{grid-template-columns:1fr}}@media(max-width:550px){.v69-viz{padding:17px}.v69-columns{gap:5px;height:190px}.v69-column-group>span{font-size:9px}}
html[data-theme="dark"] .admin-tailwind .admin-sidebar nav a,html[data-theme="dark"] .admin-tailwind .admin-sidebar nav summary,html[data-theme="dark"] .admin-tailwind .admin-sidebar .side-profile{color:#dbeafe!important;opacity:1!important}
html[data-theme="dark"] .admin-tailwind .admin-sidebar nav svg,html[data-theme="dark"] .admin-tailwind .admin-sidebar nav i[data-lucide]{stroke:#a5b4fc!important;color:#a5b4fc!important;opacity:1!important}
html[data-theme="dark"] .admin-tailwind .admin-sidebar nav a.on,html[data-theme="dark"] .admin-tailwind .admin-sidebar nav a.on svg{color:#fff!important;stroke:#fff!important}


/* V70: coherencia cromática del tema oscuro (superadministrador) */
html[data-theme="dark"] .admin-tailwind dialog,
html[data-theme="dark"] .admin-tailwind dialog[open]{background:#172238!important;color:#edf3ff!important;border:1px solid #34435f!important;box-shadow:0 30px 85px #0009!important}
html[data-theme="dark"] .admin-tailwind dialog .modalhead,
html[data-theme="dark"] .admin-tailwind dialog .modal-head{background:#1b2a43!important;color:#f6f8ff!important;border-bottom:1px solid #34435f!important}
html[data-theme="dark"] .admin-tailwind dialog .modalhead h2,
html[data-theme="dark"] .admin-tailwind dialog .modal-head h2,
html[data-theme="dark"] .admin-tailwind dialog h2{color:#f6f8ff!important;opacity:1!important}
html[data-theme="dark"] .admin-tailwind dialog .modalhead .eyebrow{color:#a8a0ff!important}
html[data-theme="dark"] .admin-tailwind dialog .admin-fields-shell,
html[data-theme="dark"] .admin-tailwind dialog .grid2,
html[data-theme="dark"] .admin-tailwind dialog form{color:#eef2ff!important}
html[data-theme="dark"] .admin-tailwind dialog label{color:#dce6fa!important}
html[data-theme="dark"] .admin-tailwind dialog input,
html[data-theme="dark"] .admin-tailwind dialog select,
html[data-theme="dark"] .admin-tailwind dialog textarea{background:#101b30!important;color:#f1f5ff!important;border-color:#3b4b69!important}
html[data-theme="dark"] .admin-tailwind dialog input::placeholder,
html[data-theme="dark"] .admin-tailwind dialog textarea::placeholder{color:#9cabc4!important;opacity:1!important}
html[data-theme="dark"] .admin-tailwind dialog .notice{background:#202e48!important;border:1px solid #435778!important;color:#e9f0ff!important}
html[data-theme="dark"] .admin-tailwind dialog .notice b{color:#f4f7ff!important}
html[data-theme="dark"] .admin-tailwind dialog .notice small{color:#bdcbe2!important}
html[data-theme="dark"] .admin-tailwind dialog .modalactions,
html[data-theme="dark"] .admin-tailwind dialog .modal-foot{background:#19263d!important;border-top:1px solid #34435f!important}
html[data-theme="dark"] .admin-tailwind dialog .close{color:#e5edff!important;border-color:#61718c!important;background:#24344f!important}
html[data-theme="dark"] .admin-tailwind dialog .secondary{background:#263750!important;color:#f1f5ff!important;border-color:#435575!important}
html[data-theme="dark"] .admin-sidebar .navchildren a.on,
html[data-theme="dark"] .admin-sidebar nav a.on{background:#35315f!important;color:#f5f3ff!important;border-color:#7565da!important}
html[data-theme="dark"] .admin-sidebar .navchildren a.on i,
html[data-theme="dark"] .admin-sidebar .navchildren a.on svg,
html[data-theme="dark"] .admin-sidebar nav a.on i,
html[data-theme="dark"] .admin-sidebar nav a.on svg{color:#c6baff!important;stroke:#c6baff!important;opacity:1!important}
html[data-theme="dark"] .admin-sidebar .navchildren a:not(.on){color:#d7e2f6!important}
html[data-theme="dark"] .admin-sidebar .navchildren a:not(.on) svg{color:#a9b9d5!important;stroke:#a9b9d5!important}
html[data-theme="dark"] .admin-tailwind .v66-backup-card,
html[data-theme="dark"] .admin-tailwind .v66-backup-warning{background:#19263e!important;color:#eaf1ff!important;border-color:#34435f!important}
html[data-theme="dark"] .admin-tailwind .v66-backup-card h2,
html[data-theme="dark"] .admin-tailwind .v66-backup-warning h2{color:#f5f7ff!important}
html[data-theme="dark"] .admin-tailwind .v66-backup-card p,
html[data-theme="dark"] .admin-tailwind .v66-backup-warning p{color:#b8c8e2!important}

/* V71: área desplazable única para el formulario de planes; permite desplegar todos los módulos. */
body.admin-tailwind #planModal{height:min(92dvh,850px)!important;max-height:calc(100dvh - 24px)!important;overflow:hidden!important;}
body.admin-tailwind #planModal>form{height:100%!important;max-height:100%!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;}
body.admin-tailwind #planModal .plan-scroll-content{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;scrollbar-width:thin;padding:0 0 22px;}
body.admin-tailwind #planModal .plan-scroll-content>.grid2{display:grid!important;flex:none!important;overflow:visible!important;min-height:initial!important;}
body.admin-tailwind #planModal .plan-scroll-content>.notice,body.admin-tailwind #planModal .plan-scroll-content>.plan-benefits{width:calc(100% - 52px)!important;max-width:calc(100% - 52px)!important;margin:14px 26px 0!important;box-sizing:border-box!important;flex:none!important;}
body.admin-tailwind #planModal .plan-benefits[open]{overflow:visible!important;}
body.admin-tailwind #planModal .modalhead,body.admin-tailwind #planModal .modalactions{flex:0 0 auto!important;position:relative!important;z-index:2!important;}
body.admin-tailwind #planModal .plan-benefits summary{cursor:pointer!important;}
@media(max-width:650px){body.admin-tailwind #planModal .plan-scroll-content>.notice,body.admin-tailwind #planModal .plan-scroll-content>.plan-benefits{width:calc(100% - 32px)!important;max-width:calc(100% - 32px)!important;margin-left:16px!important;margin-right:16px!important;}}

/* V72 logos de instituciones */
#instTable .inst-logo-col{width:76px;min-width:76px;text-align:center}#instTable .v72-logo-wrap{height:48px;width:54px;margin:auto;display:flex;align-items:center;justify-content:center;border-radius:14px;background:#fff;border:1px solid #dbe4f2;padding:5px;box-shadow:0 3px 10px #0f172a0d}#instTable .v72-logo-wrap img{max-width:100%;max-height:100%;object-fit:contain}#instTable .v72-logo-fallback{align-items:center;justify-content:center;color:#635bff}#instTable .v72-logo-fallback svg{height:23px;width:23px}

/* V76: soporte, suscripción y retratos */
.v76-avatar{width:42px;height:42px;border-radius:13px;background:#eef2ff;color:#6555ef;display:grid;place-items:center;overflow:hidden;border:1px solid #dbe3f5}.v76-avatar img{width:100%;height:100%;object-fit:cover}.v76-avatar svg{width:21px}.v76-current{display:flex;justify-content:space-between;gap:22px;flex-wrap:wrap;padding:28px;border-radius:22px;background:linear-gradient(120deg,#30267b,#5c4cf0);color:white}.v76-current h2{font-size:30px;font-weight:800;margin:6px 0}.v76-current strong{display:block;font-size:26px}.v76-current small{display:block;margin-top:8px}.v76-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.v76-plan,.v76-ticket{background:var(--surface,#fff);border:1px solid var(--border,#dce4f3);border-radius:20px;padding:24px;color:var(--text,#17233d)}.v76-plan h3{font-size:23px;font-weight:800;margin:10px 0}.v76-plan p{min-height:36px;color:var(--muted,#687791)}.v76-plan strong{display:block;font-size:27px;margin:18px 0}.v76-plan strong small{font-size:13px}.v76-plan-meta{margin-bottom:20px;color:var(--muted,#687791)}.v76-ticket-list{display:grid;gap:16px;margin-top:18px}.v76-ticket>div:first-child{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.v76-ticket h3{font-size:18px;font-weight:750;margin:12px 0}.v76-ticket p{line-height:1.6}.v76-ticket blockquote{margin:15px 0 0;padding:14px;border-left:4px solid #6354f4;background:rgba(99,84,244,.07);border-radius:8px}.v76-state{padding:6px 12px;border-radius:99px;font-weight:700;font-size:12px;background:#fef3c7;color:#92400e}.v76-state.attended{background:#dbeafe;color:#1d4ed8}.v76-state.resolved{background:#dcfce7;color:#166534}.v76-ticket form{margin-top:20px}.v76-ticket form button{margin-top:12px}html[data-theme="dark"] .v76-plan,html[data-theme="dark"] .v76-ticket{background:#17233c;border-color:#35435e;color:#f3f6ff}html[data-theme="dark"] .v76-plan p,html[data-theme="dark"] .v76-plan-meta{color:#b6c4db}html[data-theme="dark"] .v76-avatar{background:#253352;border-color:#42547a;color:#c4b5fd}
/* V77 - tablas, cabecera y soporte institucional */
body.school-tailwind #studentsTable{min-width:1120px!important;width:100%;table-layout:auto}
body.school-tailwind #studentsTable thead th,body.school-tailwind #studentsTable tbody td{text-align:left!important;vertical-align:middle!important;white-space:nowrap!important;padding:14px 12px!important}
body.school-tailwind #studentsTable th:first-child,body.school-tailwind #studentsTable td:first-child{width:70px!important;min-width:70px!important;text-align:center!important}
body.school-tailwind #studentsTable th:nth-child(2),body.school-tailwind #studentsTable td:nth-child(2){min-width:225px!important}
body.school-tailwind #studentsTable th:last-child,body.school-tailwind #studentsTable td:last-child{min-width:285px!important}
body.school-tailwind #studentsTable .row-actions{display:flex!important;align-items:center;gap:5px;flex-wrap:nowrap}
body.school-tailwind .school-header .head-actions{display:flex;align-items:center;gap:12px;min-width:0;margin-left:auto}
body.school-tailwind .school-header .profilechip{display:flex;align-items:center;gap:10px;min-width:0;max-width:265px;padding:5px 9px}
body.school-tailwind .school-header .profilechip>.avatar{flex:0 0 36px;width:36px;height:36px;display:grid;place-items:center}
body.school-tailwind .school-header .profilechip>span:last-child{min-width:0;max-width:205px;overflow:hidden}
body.school-tailwind .school-header .profilechip b,body.school-tailwind .school-header .profilechip small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.school-tailwind .school-header .headtitle{min-width:0;overflow:hidden}
body.school-tailwind .school-header .headtitle b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.school-tailwind .school-header .head-actions>.iconbtn,body.school-tailwind .school-header .head-actions>a.iconbtn{flex:0 0 38px}
body.school-tailwind .v77-toast{position:fixed!important;top:96px;right:24px;left:auto!important;bottom:auto!important;width:min(440px,calc(100vw - 32px));max-width:440px;z-index:1100!important;display:flex!important;align-items:center;justify-content:space-between;gap:12px;line-height:1.45;padding:15px 18px!important;box-sizing:border-box;animation:v77toast .25s ease}
body.school-tailwind .v77-toast>span{flex:1;min-width:0;overflow-wrap:anywhere}
body.school-tailwind .v77-toast button{background:transparent;border:0;color:inherit;font-size:22px;cursor:pointer;padding:0 5px}
@keyframes v77toast{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.v77-renewal-section{margin-top:22px;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--card-solid,var(--card));box-shadow:var(--shadow-sm)}
.v77-renewal-section h2{font-size:18px;font-weight:800;margin:0 0 6px}
.v77-renewal-section>p,.v77-plan-intro{color:var(--muted);font-size:12px;margin:0 0 14px}
.v77-renewal-list{display:grid;gap:10px}.v77-renewal{display:flex;align-items:center;gap:16px;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--bg)}
.v77-renewal-check{color:#059669}.v77-renewal>div{flex:1;min-width:0}.v77-renewal b,.v77-renewal small{display:block}.v77-renewal small{color:var(--muted);margin-top:4px}.v77-renewal>strong{white-space:nowrap}
.v77-empty-renewal{padding:16px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:12px}
@media(max-width:700px){body.school-tailwind .school-header .profilechip>span:last-child{display:none}.v77-renewal{flex-wrap:wrap}.v77-renewal .badge{margin-left:0}body.school-tailwind .v77-toast{right:12px;top:76px}}
/* V79 · pensiones y matrículas */
.fee-year-picker{margin:0 0 18px;display:flex;justify-content:flex-end}.fee-year-picker label{display:flex;align-items:center;gap:12px;font-weight:700}.fee-year-picker select{min-width:145px}.fee-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.fee-card{padding:24px!important;margin-bottom:18px}.fee-card-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:20px}.fee-card-head>svg{width:44px;height:44px;padding:11px;border-radius:14px;background:#eef2ff;color:#584df4;flex-shrink:0}.fee-card h2{font-size:19px;font-weight:800;margin:0 0 6px}.fee-card p{margin:0;color:#64748b;font-size:13px}.fee-form{display:grid;gap:14px}.fee-form label{display:grid;gap:6px;font-weight:650;font-size:12px}.fee-form input,.fee-form select{width:100%;border:1px solid #d8e2f3;border-radius:11px;padding:11px 12px;background:#f8faff;color:#14233f;min-height:43px}.fee-form .grid2{gap:12px}.fee-checks{display:flex;flex-wrap:wrap;gap:14px;margin:8px 0}.fee-checks label{display:flex;align-items:center;gap:8px}.fee-checks input{width:auto;min-height:0}.fee-hint{margin-top:12px!important;line-height:1.6}.fee-generate{display:flex;justify-content:space-between;align-items:center;gap:20px}.fee-generate p{max-width:700px}.fee-discounts{margin-top:18px;padding-top:14px;border-top:1px solid #e2e8f0}.fee-discounts h3{font-weight:800;margin-bottom:10px}.fee-discounts p{padding:7px 0}.fee-status{padding:6px 10px;border-radius:99px;font-size:11px;font-weight:800;background:#eef2ff;color:#4338ca}.fee-pagado{background:#dcfce7;color:#166534}.fee-vencido{background:#fee2e2;color:#b91c1c}.fee-parcial{background:#fef3c7;color:#92400e}.fee-card td small{display:block;color:#64748b;margin-top:3px}.fee-card td{white-space:nowrap}.fee-card td:first-child{white-space:normal;min-width:180px}#feePrivateOptions[hidden]{display:none!important}html[data-theme=dark] .fee-card-head>svg{background:#312e81;color:#c4b5fd}html[data-theme=dark] .fee-form input,html[data-theme=dark] .fee-form select{background:#101827;color:#f8fafc;border-color:#334155}html[data-theme=dark] .fee-card p{color:#cbd5e1}@media(max-width:1000px){.fee-grid{grid-template-columns:1fr}}@media(max-width:640px){.fee-card{padding:16px!important}.fee-generate{display:grid}.fee-form .grid2{grid-template-columns:1fr}}

/* V80 · Historial de pensiones */
.fee-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0}.fee-filters label{display:grid;gap:7px;font-size:12px;font-weight:700;color:var(--text,#1e293b)}.fee-filters select{width:100%;min-height:43px;border:1px solid #d9e2f4;border-radius:12px;padding:0 12px;background:var(--surface,#fff);color:inherit}.fee-searchbar{margin-bottom:15px}.fee-student-table th:last-child,.fee-student-table td:last-child{text-align:center}.fee-empty{text-align:center!important;padding:30px!important;color:#64748b}.fee-empty svg{margin:0 auto 8px}.fee-eye{color:#5649e8!important}.fee-history-dialog{width:min(1100px,96vw)!important;max-width:1100px!important}.fee-history-dialog .ui-dialog-body{max-height:70vh;overflow:auto}.fee-history-actions{display:flex;justify-content:flex-end;gap:10px;margin-bottom:14px}.fee-history-actions button{display:inline-flex;align-items:center;gap:7px}.fee-history-actions svg{width:16px;height:16px}.fee-confirm{max-width:520px!important}.fee-confirm .ui-dialog-body{text-align:center;padding:25px}.fee-confirm-icon{width:60px;height:60px;display:grid;place-items:center;border-radius:20px;background:#eef2ff;color:#5c4be9;margin:0 auto 14px}.fee-confirm-icon svg{width:30px;height:30px}.fee-confirm h3{font-size:18px;margin:0 0 10px}.fee-confirm p{line-height:1.6;color:#64748b}@media(max-width:750px){.fee-filters{grid-template-columns:1fr}.fee-history-dialog{width:98vw!important}.fee-history-actions{justify-content:flex-start}}html[data-theme="dark"] .fee-filters label{color:#e2e8f0}html[data-theme="dark"] .fee-filters select{background:#141e33;border-color:#35435f;color:#e2e8f0}html[data-theme="dark"] .fee-confirm-icon{background:#293058;color:#a9a2ff}

/* V83: modern attendance overview, shared across student and parent portals */
.attendance-v83{padding:24px;margin:0 0 22px;border-radius:22px;background:linear-gradient(135deg,#fff,#eef5ff);border:1px solid #dce6f8;box-shadow:0 12px 35px #283a6410}.attendance-v83-heading{display:flex;align-items:center;gap:14px;margin-bottom:20px}.attendance-v83-icon{width:48px;height:48px;border-radius:16px;background:#e8e5ff;color:#6152ed;display:grid;place-items:center}.attendance-v83-icon svg{width:25px}.attendance-v83-kicker{font-size:10px;letter-spacing:1.6px;color:#6554e8;font-weight:900}.attendance-v83 h2{font-size:21px;color:#16264b;margin:3px 0}.attendance-v83 p{font-size:12px;color:#64748b;margin:0}.attendance-v83-grid{display:grid;grid-template-columns:minmax(185px,1fr) 2fr;gap:22px;align-items:center}.attendance-v83-score{text-align:center}.attendance-v83-ring{width:156px;height:156px;margin:0 auto 10px;border-radius:50%;background:conic-gradient(#16b8a7 calc(var(--progress)*1%),#dce5f5 0);display:grid;place-items:center;box-shadow:0 12px 30px #16b8a725}.attendance-v83-ring>div{width:120px;height:120px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column}.attendance-v83-ring strong{font-size:32px;color:#152647}.attendance-v83-ring small{font-size:12px;color:#64748b}.attendance-v83-stats{display:grid;gap:10px}.attendance-v83-stat{display:flex;align-items:center;justify-content:space-between;border-radius:13px;padding:16px;background:white;border:1px solid #e2e8f0}.attendance-v83-stat span{display:flex;align-items:center;gap:10px;font-weight:700;font-size:13px;color:#334155}.attendance-v83-stat svg{width:20px;height:20px}.attendance-v83-stat strong{font-size:25px}.attendance-v83-stat.green strong,.attendance-v83-stat.green svg{color:#059669}.attendance-v83-stat.amber strong,.attendance-v83-stat.amber svg{color:#d97706}.attendance-v83-stat.rose strong,.attendance-v83-stat.rose svg{color:#e11d48}[data-theme=dark] .attendance-v83{background:linear-gradient(135deg,#1c2740,#142038);border-color:#33435f}[data-theme=dark] .attendance-v83 h2,[data-theme=dark] .attendance-v83-ring strong{color:#eef5ff}[data-theme=dark] .attendance-v83-stat,[data-theme=dark] .attendance-v83-ring>div{background:#202e49;border-color:#344661}[data-theme=dark] .attendance-v83-stat span{color:#e4eaf5}@media(max-width:680px){.attendance-v83{padding:16px}.attendance-v83-grid{grid-template-columns:1fr}.attendance-v83-heading{align-items:flex-start}}

/* V84 - Formulario de roles: encabezado y acciones siempre visibles */
#roleModal.ui-dialog-shell{width:min(840px,calc(100vw - 32px))!important;max-width:840px!important;max-height:min(92dvh,850px)!important;overflow:hidden!important;padding:0!important;border-radius:22px!important}
#roleModal.ui-dialog-shell>form{height:min(88dvh,810px);max-height:88dvh;display:flex!important;flex-direction:column!important;min-height:0}
#roleModal .ui-dialog-head{flex:0 0 auto!important;padding:20px 26px!important;background:var(--surface,#fff)!important}
#roleModal .ui-dialog-body{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overscroll-behavior:contain;padding:22px 26px!important}
#roleModal .ui-dialog-foot{flex:0 0 auto!important;position:relative!important;bottom:auto!important;padding:15px 26px!important;background:var(--surface,#fff)!important;border-top:1px solid var(--border,#dbe4f2)!important;display:flex!important;justify-content:flex-end!important;gap:10px!important}
#roleModal .permission-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
#roleModal .permission-card{min-width:0!important;display:flex!important;align-items:center!important;gap:12px!important;padding:13px!important;overflow-wrap:anywhere}
#roleModal .permission-card span{min-width:0}
#roleModal .permission-card input{flex:0 0 auto}
@media(max-width:650px){#roleModal.ui-dialog-shell{width:calc(100vw - 16px)!important;max-height:96dvh!important}#roleModal.ui-dialog-shell>form{height:94dvh;max-height:94dvh}#roleModal .permission-grid{grid-template-columns:1fr!important}#roleModal .ui-dialog-head,#roleModal .ui-dialog-body,#roleModal .ui-dialog-foot{padding-left:16px!important;padding-right:16px!important}}

/* V86: progreso de ingreso institucional */
.arrival-progress{margin:0 0 20px;padding:24px!important;border-radius:22px!important;background:linear-gradient(125deg,#fff,#eef9ff)!important;border:1px solid #d9e6fb!important}.arrival-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.arrival-head h2{font-size:22px;margin:5px 0}.arrival-head p{font-size:13px;color:#61738c;margin:0 0 16px}.arrival-head>strong{font-size:42px;color:#2456e8;white-space:nowrap}.arrival-track{height:17px;border-radius:99px;background:#dce7f8;overflow:hidden}.arrival-track>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#16b6aa,#4e6bfa);transition:width .6s ease}.arrival-overview{font-size:13px;color:#405674;margin:10px 0 20px}.arrival-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.arrival-group{padding:14px;border:1px solid #dbe7f6;border-radius:14px;background:#fff}.arrival-group>div:first-child{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:12px;margin-bottom:10px}.arrival-group b{color:#20324f}.arrival-group span{white-space:nowrap;color:#4268ac}.arrival-track-small{height:8px}[data-theme="dark"] .arrival-progress,body.dark .arrival-progress{background:linear-gradient(125deg,#19253c,#182e3b)!important;border-color:#394b65!important}[data-theme="dark"] .arrival-group,body.dark .arrival-group{background:#19243a;border-color:#394b65}[data-theme="dark"] .arrival-group b,body.dark .arrival-group b{color:#edf5ff}[data-theme="dark"] .arrival-head p,body.dark .arrival-head p{color:#bdcce2}@media(max-width:640px){.arrival-progress{padding:16px!important}.arrival-head>strong{font-size:30px}.arrival-head h2{font-size:18px}}

/* V90: modal de matrícula con encabezado, pasos y pie fijos; únicamente el contenido se desplaza. */
#studentModal.enrollment-modal{width:min(920px,calc(100vw - 24px))!important;height:min(760px,calc(100dvh - 28px))!important;max-height:calc(100dvh - 28px)!important;padding:0!important;overflow:hidden!important;box-sizing:border-box!important;}
#studentModal.enrollment-modal>form{height:100%!important;max-height:100%!important;min-height:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;}
#studentModal .school-dialog-head{flex:0 0 auto!important;padding:17px 24px!important;}
#studentModal .wizard-nav{flex:0 0 auto!important;padding:10px 24px!important;overflow-x:auto!important;}
#studentModal .wizard-body{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overscroll-behavior:contain!important;padding:20px 24px!important;}
#studentModal .wizard-foot{flex:0 0 auto!important;position:relative!important;bottom:auto!important;min-height:72px!important;padding:12px 24px!important;display:flex!important;align-items:center!important;gap:9px!important;flex-wrap:nowrap!important;background:var(--card,#fff)!important;border-top:1px solid var(--line,#dbe3ef)!important;z-index:5!important;}
#studentModal .wizard-foot button{min-height:43px!important;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;flex:0 0 auto;}
#studentModal .wizard-foot button[style*="display:none"]{display:none!important;}
#studentModal .wizard-foot .wizard-spacer{flex:1 1 auto!important;}
#studentModal .wizard-step{cursor:pointer!important;}
#studentModal .wizard-step:focus-visible{outline:2px solid #6558e8;outline-offset:2px;}
@media(max-width:640px){#studentModal.enrollment-modal{height:calc(100dvh - 14px)!important;max-height:calc(100dvh - 14px)!important;}#studentModal .school-dialog-head{padding:12px 14px!important;}#studentModal .wizard-nav{padding:9px 14px!important;}#studentModal .wizard-body{padding:15px 14px!important;}#studentModal .wizard-foot{padding:10px 12px!important;gap:6px!important;min-height:66px!important;}#studentModal .wizard-foot button{font-size:11px!important;padding:9px!important;}}

/* V95 - Avisos universales: icono en su propia columna, sin superposicion */
body .toast, body .toast.v77-toast, body.school-tailwind .v77-toast {
  box-sizing:border-box!important; display:grid!important;
  grid-template-columns:30px minmax(0,1fr) auto!important;
  align-items:center!important; column-gap:12px!important; row-gap:4px!important;
  padding:14px 16px!important; min-height:60px!important;
  width:min(440px,calc(100vw - 24px))!important; max-width:calc(100vw - 24px)!important;
  white-space:normal!important; overflow-wrap:anywhere!important; line-height:1.5!important;
  font-size:13px!important; isolation:isolate!important;
}
body .toast::before,body .toast.v77-toast::before,body.school-tailwind .v77-toast::before {
  content:'✓'!important; position:static!important; inset:auto!important; transform:none!important;
  grid-column:1!important; grid-row:1!important; margin:0!important;
  width:28px!important; height:28px!important; min-width:28px!important;
  display:grid!important;place-items:center!important; flex:none!important;
  background:#10b981!important; color:white!important; border-radius:50%!important;
  font-size:16px!important; font-weight:800!important;
}
body .toast>span,body .toast.v77-toast>span {
  grid-column:2!important; grid-row:1!important; display:block!important; min-width:0!important;
  overflow-wrap:anywhere!important; line-height:1.5!important; margin:0!important;
}
body .toast>button,body .toast.v77-toast>button {
  grid-column:3!important; grid-row:1!important; align-self:center!important;
  position:static!important; margin:0!important; padding:0!important;
  width:30px!important; height:30px!important; min-width:30px!important;
  display:grid!important; place-items:center!important; background:transparent!important;
  border:0!important; color:inherit!important; cursor:pointer!important; font-size:20px!important;
}
body .toast::after {pointer-events:none!important}
@media(max-width:600px){body .toast,body .toast.v77-toast,body.school-tailwind .v77-toast{right:12px!important;left:auto!important;top:76px!important;column-gap:9px!important;padding:12px!important}}

/* CARIP V96: navegacion exclusiva de familias y estudiantes */
@media(min-width:1001px){
body.parent-portal.portal-tailwind aside,body.student-portal.portal-tailwind aside{width:286px!important;max-width:286px!important;transform:none!important;display:flex!important;flex-direction:column!important;position:fixed!important;inset:0 auto 0 0!important;z-index:50!important}
body.parent-portal.portal-tailwind .app,body.student-portal.portal-tailwind .app{margin-left:286px!important;width:calc(100% - 286px)!important}
body.parent-portal.portal-tailwind .app>header,body.student-portal.portal-tailwind .app>header{left:286px!important;width:calc(100% - 286px)!important}
}
body.parent-portal.portal-tailwind aside,body.student-portal.portal-tailwind aside{background:linear-gradient(165deg,#111d38 0%,#111b34 56%,#1d2350 100%)!important;border-right:1px solid rgba(180,196,255,.13)!important;color:#f8faff!important;box-sizing:border-box;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#475479 transparent}
body.parent-portal.portal-tailwind aside:before,body.student-portal.portal-tailwind aside:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#24c7c5,#6556f5,#aa8cff)}
body.parent-portal.portal-tailwind aside .logo,body.student-portal.portal-tailwind aside .logo{display:flex!important;align-items:center!important;gap:13px!important;margin:0 16px 18px!important;padding:30px 10px 24px!important;min-height:108px!important;border-bottom:1px solid rgba(226,232,255,.15)!important;color:#fff!important;text-align:left!important}
body.parent-portal.portal-tailwind aside .logo .brandimg,body.student-portal.portal-tailwind aside .logo .brandimg{width:67px!important;height:67px!important;max-width:67px!important;object-fit:contain!important;flex:0 0 67px!important;filter:drop-shadow(0 5px 9px rgba(0,0,0,.15))}
body.parent-portal.portal-tailwind aside .logo>div,body.student-portal.portal-tailwind aside .logo>div{min-width:0;font-size:12px!important;font-weight:800!important;line-height:1.4!important;overflow-wrap:anywhere}
body.parent-portal.portal-tailwind aside .logo b,body.student-portal.portal-tailwind aside .logo b{display:block!important;margin-top:5px!important;font-size:10px!important;letter-spacing:.11em!important;color:#9dacf5!important;font-weight:700!important}
body.parent-portal.portal-tailwind aside nav,body.student-portal.portal-tailwind aside nav{display:flex!important;flex-direction:column!important;gap:7px!important;padding:8px 15px 26px!important;margin:0!important}
body.parent-portal.portal-tailwind aside nav:before,body.student-portal.portal-tailwind aside nav:before{content:'MENÚ PRINCIPAL';display:block;padding:4px 15px 9px;color:#8e9cbd;font-size:10px;font-weight:800;letter-spacing:.16em}
body.parent-portal.portal-tailwind aside nav a,body.student-portal.portal-tailwind aside nav a{display:flex!important;align-items:center!important;gap:14px!important;min-height:51px!important;padding:10px 14px!important;margin:0!important;border-radius:13px!important;border:1px solid transparent!important;color:#c5d0ec!important;font-size:13px!important;font-weight:650!important;letter-spacing:.005em;text-decoration:none!important;transition:background .18s,color .18s,transform .18s,border-color .18s!important}
body.parent-portal.portal-tailwind aside nav a svg,body.student-portal.portal-tailwind aside nav a svg{width:19px!important;height:19px!important;flex-shrink:0!important;color:#9eaaf9!important;stroke-width:1.9!important}
body.parent-portal.portal-tailwind aside nav a span,body.student-portal.portal-tailwind aside nav a span{flex:1;white-space:normal!important}
body.parent-portal.portal-tailwind aside nav a:hover,body.student-portal.portal-tailwind aside nav a:hover{background:rgba(120,113,255,.14)!important;color:#fff!important;transform:translateX(2px)}
body.parent-portal.portal-tailwind aside nav a.on,body.student-portal.portal-tailwind aside nav a.on{background:linear-gradient(105deg,rgba(109,94,245,.32),rgba(71,112,226,.17))!important;border-color:rgba(169,161,255,.45)!important;color:#fff!important;box-shadow:inset 3px 0 #a89bff,0 7px 22px rgba(0,0,0,.09)!important}
body.parent-portal.portal-tailwind aside nav a.on svg,body.student-portal.portal-tailwind aside nav a.on svg{color:#c4bbff!important}
body.parent-portal.portal-tailwind aside nav a em,body.student-portal.portal-tailwind aside nav a em{background:#ef445a!important;color:white!important;padding:3px 6px!important;min-width:21px!important;border-radius:999px!important;font-size:10px!important}
@media(max-width:1000px){body.parent-portal.portal-tailwind aside,body.student-portal.portal-tailwind aside{width:min(310px,86vw)!important;max-width:310px!important;z-index:85!important}body.parent-portal.portal-tailwind .app,body.student-portal.portal-tailwind .app{margin-left:0!important;width:100%!important}body.parent-portal.portal-tailwind .app>header,body.student-portal.portal-tailwind .app>header{left:0!important;width:100%!important}}
@media(max-width:600px){body.parent-portal.portal-tailwind aside .logo,body.student-portal.portal-tailwind aside .logo{min-height:92px!important;padding-top:17px!important}body.parent-portal.portal-tailwind aside nav a,body.student-portal.portal-tailwind aside nav a{min-height:49px!important}}

/* V97: reparar desplazamiento y ancho del encabezado, y fotografía real de hijos */
@media(min-width:1001px){
body:is(.parent-portal,.student-portal).portal-tailwind .app{margin-left:286px!important;width:calc(100% - 286px)!important;max-width:calc(100% - 286px)!important;min-width:0!important;box-sizing:border-box!important}
body:is(.parent-portal,.student-portal).portal-tailwind .app>header{position:sticky!important;left:auto!important;right:auto!important;top:0!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important}
}
body:is(.parent-portal,.student-portal).portal-tailwind .app main{max-width:100%!important;box-sizing:border-box!important;overflow-x:hidden!important}
body.parent-portal.portal-tailwind .child-switcher{display:flex!important;align-items:stretch!important;gap:10px!important;flex-wrap:wrap!important}
body.parent-portal.portal-tailwind .child-chip{display:flex!important;align-items:center!important;gap:10px!important;min-height:66px!important;min-width:158px!important;max-width:220px!important;padding:10px 12px!important;box-sizing:border-box!important;border-radius:16px!important}
body.parent-portal.portal-tailwind .child-chip .child-avatar{display:grid!important;place-items:center!important;width:45px!important;height:45px!important;min-width:45px!important;border-radius:13px!important;overflow:hidden!important;background:#eae8ff!important;box-shadow:0 0 0 2px rgba(123,113,255,.16)!important}
body.parent-portal.portal-tailwind .child-chip .child-avatar img{display:block;width:100%!important;height:100%!important;object-fit:cover!important;border-radius:12px!important}
body.parent-portal.portal-tailwind .child-chip .child-avatar .child-avatar-fallback{width:100%;height:100%;place-items:center;color:#5144db;font-style:normal;font-size:17px;font-weight:800}
body.parent-portal.portal-tailwind .child-chip>div{min-width:0!important;flex:1!important}
body.parent-portal.portal-tailwind .child-chip b{display:block!important;font-size:12px!important;line-height:1.25!important;white-space:normal!important;overflow-wrap:anywhere!important;color:inherit!important}
body.parent-portal.portal-tailwind .child-chip small{display:block!important;font-size:10px!important;line-height:1.3!important;margin-top:4px!important;white-space:normal!important}
body.parent-portal.portal-tailwind .parent-childbar{gap:20px!important;align-items:center!important}
body.parent-portal.portal-tailwind .parent-childbar>div:first-child{min-width:0!important;flex:1 1 240px!important}
body.parent-portal.portal-tailwind .parent-childbar h1{font-size:clamp(19px,2.1vw,29px)!important;line-height:1.2!important;overflow-wrap:anywhere!important}
@media(max-width:1150px){body.parent-portal.portal-tailwind .parent-childbar{flex-wrap:wrap!important}body.parent-portal.portal-tailwind .child-switcher{justify-content:flex-start!important}}
@media(max-width:1000px){body:is(.parent-portal,.student-portal).portal-tailwind .app>header{position:sticky!important;left:auto!important;width:100%!important;box-sizing:border-box!important}}
@media(max-width:600px){body.parent-portal.portal-tailwind .child-chip{min-width:135px!important;max-width:calc(50% - 5px)!important;flex:1 1 135px!important}body.parent-portal.portal-tailwind .child-chip .child-avatar{width:39px!important;height:39px!important;min-width:39px!important}}


/* V98: componentes tematicos y tarjetas familiares, integrados al paquete Tailwind */
html[data-theme="dark"] body.school-tailwind dialog.tw-modal,
html[data-theme="dark"] body.school-tailwind dialog.ui-dialog-shell,
html[data-theme="dark"] body.school-tailwind dialog#academicModal{background:#152238!important;color:#f0f5ff!important;border:1px solid #334663!important}
html[data-theme="dark"] body.school-tailwind dialog.tw-modal .modalhead,
html[data-theme="dark"] body.school-tailwind dialog.tw-modal .modalactions,
html[data-theme="dark"] body.school-tailwind dialog#academicModal .modalhead,
html[data-theme="dark"] body.school-tailwind dialog#academicModal .modalactions{background:#152238!important;color:#f0f5ff!important;border-color:#334663!important}
html[data-theme="dark"] body.school-tailwind dialog.tw-modal label,
html[data-theme="dark"] body.school-tailwind dialog.tw-modal .eyebrow,
html[data-theme="dark"] body.school-tailwind dialog#academicModal label{color:#cbd9f3!important}
html[data-theme="dark"] body.school-tailwind dialog.tw-modal input:not([type=checkbox]):not([type=radio]),
html[data-theme="dark"] body.school-tailwind dialog.tw-modal select,
html[data-theme="dark"] body.school-tailwind dialog.tw-modal textarea{background:#0e192c!important;color:#f8fafc!important;border-color:#435571!important}
html[data-theme="dark"] body.school-tailwind dialog.tw-modal input::placeholder,
html[data-theme="dark"] body.school-tailwind dialog.tw-modal textarea::placeholder{color:#91a3be!important}
html[data-theme="dark"] body.school-tailwind dialog.tw-modal .close{background:#22314a!important;color:#e2e8f0!important;border-color:#52627b!important}
html[data-theme="light"] body.school-tailwind dialog.tw-modal,
html[data-theme="light"] body.school-tailwind dialog.tw-modal .modalhead,
html[data-theme="light"] body.school-tailwind dialog.tw-modal .modalactions{background:#fff!important;color:#14243e!important}
html[data-theme="light"] body.school-tailwind dialog.tw-modal input:not([type=checkbox]):not([type=radio]),
html[data-theme="light"] body.school-tailwind dialog.tw-modal select,
html[data-theme="light"] body.school-tailwind dialog.tw-modal textarea{background:#f8faff!important;color:#14243e!important;border-color:#d6e0ef!important}
body.parent-portal.portal-tailwind .parent-childbar{display:grid!important;grid-template-columns:minmax(220px,1fr) minmax(300px,1.6fr)!important;gap:24px!important;padding:24px!important}
body.parent-portal.portal-tailwind .child-switcher{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important;gap:12px!important;width:100%!important}
body.parent-portal.portal-tailwind .child-chip{max-width:none!important;min-width:0!important;min-height:94px!important;display:flex!important;gap:12px!important;padding:14px!important;border:1px solid rgba(148,163,184,.28)!important;border-radius:19px!important;background:rgba(255,255,255,.08)!important;box-shadow:0 8px 22px rgba(0,0,0,.10)!important;transition:transform .18s,background .18s,border-color .18s}
body.parent-portal.portal-tailwind .child-chip:hover{transform:translateY(-2px);background:rgba(116,103,255,.19)!important}
body.parent-portal.portal-tailwind .child-chip.active{background:linear-gradient(130deg,#6454e9,#4338ca)!important;border-color:#a5b4fc!important;color:#fff!important}
body.parent-portal.portal-tailwind .child-chip .child-avatar{width:58px!important;height:58px!important;min-width:58px!important;border-radius:16px!important;background:#eef2ff!important}
body.parent-portal.portal-tailwind .child-chip .child-avatar img{border-radius:16px!important}
body.parent-portal.portal-tailwind .child-chip b{font-size:13px!important;line-height:1.35!important;color:inherit!important}
body.parent-portal.portal-tailwind .child-chip small{font-size:11px!important;opacity:.84}
body:is(.parent-portal,.student-portal).portal-tailwind aside{background:linear-gradient(165deg,#101e38 0%,#192b53 68%,#24205d 100%)!important;border-right:1px solid rgba(129,140,248,.24)!important}
body:is(.parent-portal,.student-portal).portal-tailwind aside nav a{color:#dbe7ff!important}
body:is(.parent-portal,.student-portal).portal-tailwind aside nav a.on{background:linear-gradient(95deg,#594de0,#3e4aa8)!important;color:#fff!important;border-color:#a5b4fc!important}
body:is(.parent-portal,.student-portal).portal-tailwind .app>header{background:#152238!important;color:#f8fafc!important;border-color:#334663!important}
html[data-theme="light"] body:is(.parent-portal,.student-portal).portal-tailwind .app>header{background:#fff!important;color:#17243b!important;border-color:#dce5f2!important}
html[data-theme="dark"] body:is(.parent-portal,.student-portal).portal-tailwind .stat{background:#1b2944!important;color:#eef4ff!important;border-color:#354766!important}
html[data-theme="dark"] body:is(.parent-portal,.student-portal).portal-tailwind .stat strong{color:#fff!important}
html[data-theme="dark"] body:is(.parent-portal,.student-portal).portal-tailwind .stat span,
html[data-theme="dark"] body:is(.parent-portal,.student-portal).portal-tailwind .stat small{color:#b6c8e4!important}
@media(max-width:1150px){body.parent-portal.portal-tailwind .parent-childbar{grid-template-columns:1fr!important}}
@media(max-width:680px){body.parent-portal.portal-tailwind .child-switcher{grid-template-columns:1fr!important}body.parent-portal.portal-tailwind .child-chip{min-height:76px!important}}

/* V99 - Theme tokens and dialog contrast, bundled with Tailwind, not app.css */
html[data-theme="dark"]{color-scheme:dark}
html[data-theme="light"]{color-scheme:light}
body.school-tailwind dialog.ui-dialog,body.school-tailwind dialog.ui-dialog form{background:var(--carip-surface)!important;color:var(--carip-text)!important;border:1px solid var(--carip-line)!important}
body.school-tailwind dialog.ui-dialog .ui-dialog-head,body.school-tailwind dialog.ui-dialog .school-dialog-head,body.school-tailwind dialog.ui-dialog .ui-dialog-body,body.school-tailwind dialog.ui-dialog .school-dialog-body,body.school-tailwind dialog.ui-dialog .ui-dialog-foot,body.school-tailwind dialog.ui-dialog .school-dialog-foot{background:var(--carip-surface)!important;color:var(--carip-text)!important;border-color:var(--carip-line)!important}
body.school-tailwind dialog.ui-dialog h2,body.school-tailwind dialog.ui-dialog label,body.school-tailwind dialog.ui-dialog p,body.school-tailwind dialog.ui-dialog .eyebrow{color:var(--carip-text)!important}
body.school-tailwind dialog.ui-dialog input:not([type="checkbox"]):not([type="radio"]),body.school-tailwind dialog.ui-dialog select,body.school-tailwind dialog.ui-dialog textarea{background:var(--carip-surface-2)!important;color:var(--carip-text)!important;border:1px solid var(--carip-line)!important}
body.school-tailwind dialog.ui-dialog input[type="checkbox"]{accent-color:#6655ee}
body.school-tailwind dialog.ui-dialog .ui-dialog-x{background:var(--carip-surface-2)!important;color:var(--carip-text)!important;border:1px solid var(--carip-line)!important}
body.school-tailwind dialog.ui-dialog .eyebrow{color:#897cff!important}
body.school-tailwind dialog.ui-dialog .ui-dialog-head h2{font-weight:750!important}
body.school-tailwind dialog.ui-dialog .ui-dialog-body{overflow-y:auto;min-height:0}
body.school-tailwind dialog.ui-dialog .ui-dialog-foot{position:sticky;bottom:0;z-index:2}
body.school-tailwind dialog.ui-dialog .ui-dialog-head{position:sticky;top:0;z-index:2}
body.school-tailwind dialog.ui-dialog .ui-dialog-head,body.school-tailwind dialog.ui-dialog .ui-dialog-foot{padding:18px 24px!important}
body.school-tailwind dialog.ui-dialog .ui-dialog-body{padding:24px!important}
body.school-tailwind dialog.ui-dialog .ui-dialog-head p{color:var(--carip-muted)!important}
body.school-tailwind dialog.ui-dialog .ui-dialog-body label{color:var(--carip-text)!important}
body.school-tailwind dialog.ui-dialog .ui-dialog-body small{color:var(--carip-muted)!important}
body.school-tailwind dialog.ui-dialog .ui-dialog-body .ui-panel{background:var(--carip-surface-2)!important}

/* V100: selector externo al carnet, no se superpone a la plantilla. */
body.school-tailwind #idGrid{column-gap:42px!important;row-gap:25px!important;padding:14px 16px 20px 36px!important;overflow:visible!important}
body.school-tailwind #idGrid .student-id-card{overflow:visible!important;isolation:isolate!important}
body.school-tailwind #idGrid .student-id-card .card-select{left:-32px!important;right:auto!important;top:8px!important;width:26px!important;height:26px!important;border-radius:9px!important;background:#fff!important;box-shadow:0 3px 12px #17233b24!important;display:grid!important;place-items:center!important}
body.school-tailwind #idGrid .student-id-card .card-select input{appearance:auto!important;-webkit-appearance:checkbox!important;accent-color:#6252e8!important;width:18px!important;height:18px!important;border-radius:4px!important}
body.school-tailwind #idGrid .student-id-card .card-select input:checked:after{content:none!important}
body.school-tailwind #idGrid .student-id-card .id-card-top{border-radius:12px 12px 0 0!important}
body.school-tailwind #idGrid .student-id-card .id-card-actions{border-radius:0 0 12px 12px!important}
@media(max-width:650px){body.school-tailwind #idGrid{padding-left:44px!important;grid-template-columns:1fr!important}}

/* V101 · Componentes de soporte (hoja Tailwind unificada, sin app.css) */
.carip-help-page{padding:4px 0 30px;color:var(--text,#182844)}
.carip-help-hero{background:linear-gradient(115deg,#172451 0%,#3934a8 60%,#6d52e8 100%);color:#fff;isolation:isolate}
.carip-help-glow{position:absolute;right:-80px;top:-145px;width:370px;height:370px;border:1px solid #ffffff38;border-radius:50%;box-shadow:0 0 0 65px #ffffff0b,0 0 0 130px #ffffff07;pointer-events:none}
.carip-help-hero-icon{width:54px;height:54px;display:grid;place-items:center;flex-shrink:0;border-radius:17px;background:#ffffff25;border:1px solid #ffffff35}
.carip-help-hero-icon svg{width:29px;height:29px}
.carip-help-kicker{font-size:10px;font-weight:850;letter-spacing:.15em;color:#6656e8}
.carip-help-hero .carip-help-kicker{color:#d7d3ff}
.carip-help-new{border:0;min-height:48px;transition:transform .15s,box-shadow .15s;cursor:pointer}
.carip-help-new:hover{transform:translateY(-2px);box-shadow:0 14px 25px #10143d38}
.carip-help-new svg{width:19px;height:19px}
.carip-help-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.carip-help-stat{display:flex;align-items:center;gap:15px;min-width:0;border:1px solid #e0e7f5;background:#fff;border-radius:19px;padding:20px}
.carip-help-stat-icon{width:47px;height:47px;border-radius:14px;display:grid;place-items:center;flex-shrink:0}
.carip-help-stat-icon svg{width:22px;height:22px}
.carip-help-stat-icon.indigo{color:#5a4be9;background:#eeeaff}.carip-help-stat-icon.amber{color:#c47a09;background:#fff3d9}.carip-help-stat-icon.blue{color:#2871d7;background:#e8f1ff}.carip-help-stat-icon.green{color:#149b74;background:#dffaf0}
.carip-help-stat span:not(.carip-help-stat-icon){display:block;font-size:12px;color:#697993;line-height:1.4}
.carip-help-stat strong{display:block;margin-top:4px;font-size:29px;font-weight:850;line-height:1.2;color:#172344}
.carip-help-desk{background:#fff;border:1px solid #e0e7f5;border-radius:22px;padding:25px}
.carip-help-section-heading h2{color:#162342;margin:5px 0;font-size:21px}
.carip-help-section-heading p{color:#71809a}
.carip-help-counter{border-radius:100px;background:#f0edff;color:#5944d4;padding:9px 13px;font-size:12px;font-weight:800}
.carip-help-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:22px}
.carip-help-search{min-width:230px;flex:1;display:flex;align-items:center;gap:10px;background:#f7f9fe;border:1px solid #dae3f3;border-radius:12px;padding:0 14px;height:46px}
.carip-help-search svg{width:19px;height:19px;color:#687b9c;flex-shrink:0}
.carip-help-search input{width:100%;min-width:0;outline:none;border:0!important;box-shadow:none!important;background:transparent!important;padding:0!important;color:#172344;font-size:13px}
.carip-help-size{display:flex;align-items:center;gap:9px;font-size:12px;color:#64748b;white-space:nowrap}
.carip-help-size select{width:95px;min-width:95px;height:46px;padding:0 12px;border-radius:12px;border:1px solid #dae3f3;background:#f7f9fe;color:#182844}
.carip-help-export{display:flex;gap:8px}.carip-help-export button,.carip-help-view{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:43px;padding:0 14px;border:1px solid #dae3f3;background:#fff;border-radius:12px;color:#263657;font-size:12px;font-weight:750;cursor:pointer;white-space:nowrap}
.carip-help-export svg,.carip-help-view svg{width:16px;height:16px}.carip-help-export button:hover,.carip-help-view:hover{background:#f0edff;color:#5944d4;border-color:#beb4ff}
.carip-help-tablewrap{margin-top:19px;border:1px solid #e3e9f5;border-radius:16px;overflow-x:auto}
.carip-help-table{width:100%;border-collapse:collapse;min-width:800px;background:#fff}
.carip-help-table th{padding:15px 17px;text-align:left;background:#f4f6fd;color:#6d7b97;font-size:10px;font-weight:850;letter-spacing:.065em;text-transform:uppercase;border-bottom:1px solid #e3e9f5}
.carip-help-table td{padding:17px;border-bottom:1px solid #edf1f9;vertical-align:middle;font-size:12px;color:#243553}
.carip-help-table tbody tr:last-child td{border-bottom:0}.carip-help-table tbody tr:hover{background:#faf9ff}
.carip-help-ticket{font-weight:850;color:#5647db;white-space:nowrap}.carip-help-subject{font-size:13px;font-weight:800;color:#172344;margin-bottom:4px}.carip-help-excerpt{font-size:11px;color:#8290a7;line-height:1.5;max-width:340px}.carip-help-date{white-space:nowrap;color:#6c7b93!important}
.carip-help-replied{display:inline-flex;align-items:center;gap:5px;color:#087f62;font-weight:750;white-space:nowrap}.carip-help-replied svg{width:14px;height:14px}.carip-help-unanswered{color:#9c741b;font-weight:650;white-space:nowrap}
.carip-help-foot{min-height:35px;padding:12px 3px 0;font-size:12px;color:#73819a}
.carip-help-empty{text-align:center;padding:48px 15px;color:#697994}.carip-help-empty>svg{width:44px;height:44px;margin:auto;color:#7564e6}.carip-help-empty h3{font-size:17px;color:#182844;margin:12px 0 4px}.carip-help-empty button{margin-top:16px;border:0;border-radius:10px;background:#5f4ce7;color:#fff;padding:11px 16px;cursor:pointer}
[data-theme="dark"] .carip-help-page,.dark .carip-help-page{color:#e6ecff}
[data-theme="dark"] .carip-help-stat,[data-theme="dark"] .carip-help-desk,.dark .carip-help-stat,.dark .carip-help-desk{background:#18243e;border-color:#34415f}
[data-theme="dark"] .carip-help-stat strong,[data-theme="dark"] .carip-help-section-heading h2,[data-theme="dark"] .carip-help-subject,[data-theme="dark"] .carip-help-empty h3,.dark .carip-help-stat strong,.dark .carip-help-section-heading h2,.dark .carip-help-subject{color:#f0f4ff}
[data-theme="dark"] .carip-help-search,[data-theme="dark"] .carip-help-size select,[data-theme="dark"] .carip-help-export button,[data-theme="dark"] .carip-help-view,.dark .carip-help-search,.dark .carip-help-size select,.dark .carip-help-export button,.dark .carip-help-view{background:#202d49;border-color:#3c4b69;color:#e6ecff}
[data-theme="dark"] .carip-help-search input,.dark .carip-help-search input{color:#f0f4ff}
[data-theme="dark"] .carip-help-table,[data-theme="dark"] .carip-help-tablewrap,.dark .carip-help-table{background:#18243e;border-color:#34415f}
[data-theme="dark"] .carip-help-table th,.dark .carip-help-table th{background:#23304d;border-color:#34415f;color:#b4c2e0}
[data-theme="dark"] .carip-help-table td,.dark .carip-help-table td{color:#d6e0f5;border-color:#34415f}
[data-theme="dark"] .carip-help-table tbody tr:hover,.dark .carip-help-table tbody tr:hover{background:#253452}
@media(max-width:1000px){.carip-help-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.carip-help-hero{padding:22px 18px}.carip-help-hero h1{font-size:24px}.carip-help-stats{gap:9px}.carip-help-stat{padding:12px;gap:9px}.carip-help-stat-icon{width:36px;height:36px}.carip-help-stat strong{font-size:23px}.carip-help-stat span:not(.carip-help-stat-icon){font-size:10px}.carip-help-desk{padding:17px 12px}.carip-help-search{flex-basis:100%}.carip-help-export{width:100%}.carip-help-export button{flex:1}}

/* V102: soporte con diseño autocontenido, independiente de utilidades no compiladas */
body.school-tailwind .carip-help-page{width:100%;max-width:1320px;margin:0 auto;padding:12px 0 38px;box-sizing:border-box}
body.school-tailwind .carip-help-page .carip-help-hero{position:relative;display:block;min-height:185px;padding:32px 35px!important;border:0!important;border-radius:24px!important;background:linear-gradient(115deg,#172451 0%,#3934a8 60%,#6d52e8 100%)!important;color:#fff!important;overflow:hidden;box-shadow:0 18px 35px rgba(47,44,136,.16);box-sizing:border-box}
body.school-tailwind .carip-help-hero>div:last-child{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
body.school-tailwind .carip-help-hero>div:last-child>div{display:flex;align-items:flex-start;gap:18px;max-width:760px}
body.school-tailwind .carip-help-hero h1{color:#fff!important;font-size:29px!important;font-weight:800!important;line-height:1.2!important;margin:9px 0!important}
body.school-tailwind .carip-help-hero p{color:#e6e5ff!important;font-size:14px!important;line-height:1.65!important;margin:0!important}
body.school-tailwind .carip-help-hero .carip-help-kicker{color:#c7c7ff!important;letter-spacing:1.6px}
body.school-tailwind .carip-help-new{display:inline-flex!important;align-items:center;justify-content:center;gap:9px;padding:13px 20px!important;border:0!important;border-radius:13px!important;background:#fff!important;color:#3e35aa!important;font-weight:800!important;font-size:13px!important;white-space:nowrap;box-shadow:0 8px 25px #0c12403d}
body.school-tailwind .carip-help-stats{margin-top:19px!important;margin-bottom:20px!important}
body.school-tailwind .carip-help-desk{padding:28px!important;border-radius:22px!important}
body.school-tailwind .carip-help-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
body.school-tailwind .carip-help-toolbar{display:flex!important;flex-direction:row!important;align-items:flex-end!important;gap:12px!important;margin:24px 0 0!important}
body.school-tailwind .carip-help-search{position:relative!important;display:flex!important;flex-direction:row!important;align-items:center!important;gap:12px!important;flex:1 1 320px!important;min-width:230px!important;height:48px!important;padding:0 15px!important;margin:0!important}
body.school-tailwind .carip-help-search svg{position:static!important;display:block!important;flex:0 0 19px!important;width:19px!important;height:19px!important;margin:0!important}
body.school-tailwind .carip-help-search input{display:block!important;position:static!important;flex:1!important;width:100%!important;height:43px!important;margin:0!important;font-size:13px!important}
body.school-tailwind .carip-help-size{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:5px!important;margin:0!important}
body.school-tailwind .carip-help-size select{height:48px!important;margin:0!important}
body.school-tailwind .carip-help-export{display:flex!important;align-items:center!important;gap:8px!important}
body.school-tailwind .carip-help-export button{height:48px!important;display:inline-flex!important;flex-direction:row!important;gap:7px!important}
body.school-tailwind .carip-help-tablewrap{margin-top:18px!important}
body.school-tailwind .carip-help-page .carip-help-hero-icon{background:#ffffff23!important;color:#fff!important}
@media(max-width:720px){body.school-tailwind .carip-help-page .carip-help-hero{padding:24px 20px!important}body.school-tailwind .carip-help-hero>div:last-child>div{gap:12px}body.school-tailwind .carip-help-hero h1{font-size:23px!important}body.school-tailwind .carip-help-desk{padding:17px!important}body.school-tailwind .carip-help-search{flex-basis:100%!important}body.school-tailwind .carip-help-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* V103: utilidades Tailwind para el dashboard, incluidas en el bundle local. */
#caripSchoolDashboard{display:block;max-width:1600px;margin-inline:auto;color:#0f172a}
#caripSchoolDashboard .space-y-6>*+*{margin-top:1.5rem}
#caripSchoolDashboard .space-y-3>*+*{margin-top:.75rem}
#caripSchoolDashboard .relative{position:relative}
#caripSchoolDashboard .absolute{position:absolute}
#caripSchoolDashboard .inset-0{inset:0}
#caripSchoolDashboard .overflow-hidden{overflow:hidden}
#caripSchoolDashboard .rounded-3xl{border-radius:1.5rem}
#caripSchoolDashboard .rounded-2xl{border-radius:1rem}
#caripSchoolDashboard .rounded-xl{border-radius:.75rem}
#caripSchoolDashboard .rounded-full{border-radius:9999px}
#caripSchoolDashboard .border{border:1px solid}
#caripSchoolDashboard .border-slate-200{border-color:#e2e8f0}
#caripSchoolDashboard .border-slate-100{border-color:#f1f5f9}
#caripSchoolDashboard .bg-white{background-color:#fff}
#caripSchoolDashboard .bg-indigo-50{background-color:#eef2ff}
#caripSchoolDashboard .bg-emerald-50{background-color:#ecfdf5}
#caripSchoolDashboard .bg-amber-50{background-color:#fffbeb}
#caripSchoolDashboard .bg-sky-50{background-color:#f0f9ff}
#caripSchoolDashboard .bg-gradient-to-r{background-image:linear-gradient(110deg,#172554,#3730a3,#7c3aed)}
#caripSchoolDashboard .bg-white\/10{background-color:rgba(255,255,255,.1)}
#caripSchoolDashboard .text-white{color:white}
#caripSchoolDashboard .text-indigo-100{color:#e0e7ff}
#caripSchoolDashboard .text-indigo-200{color:#c7d2fe}
#caripSchoolDashboard .text-indigo-900{color:#312e81}
#caripSchoolDashboard .text-indigo-600{color:#4f46e5}
#caripSchoolDashboard .text-emerald-600{color:#059669}
#caripSchoolDashboard .text-amber-600{color:#d97706}
#caripSchoolDashboard .text-rose-600{color:#e11d48}
#caripSchoolDashboard .text-sky-600{color:#0284c7}
#caripSchoolDashboard .text-slate-900{color:#0f172a}
#caripSchoolDashboard .text-slate-600{color:#475569}
#caripSchoolDashboard .text-slate-500{color:#64748b}
#caripSchoolDashboard .grid{display:grid}
#caripSchoolDashboard .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}
#caripSchoolDashboard .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
#caripSchoolDashboard .flex{display:flex}
#caripSchoolDashboard .inline-flex{display:inline-flex}
#caripSchoolDashboard .flex-wrap{flex-wrap:wrap}
#caripSchoolDashboard .items-center{align-items:center}
#caripSchoolDashboard .items-start{align-items:flex-start}
#caripSchoolDashboard .justify-between{justify-content:space-between}
#caripSchoolDashboard .justify-center{justify-content:center}
#caripSchoolDashboard .flex-col{flex-direction:column}
#caripSchoolDashboard .gap-2{gap:.5rem}
#caripSchoolDashboard .gap-3{gap:.75rem}
#caripSchoolDashboard .gap-4{gap:1rem}
#caripSchoolDashboard .gap-5{gap:1.25rem}
#caripSchoolDashboard .p-3{padding:.75rem}
#caripSchoolDashboard .p-4{padding:1rem}
#caripSchoolDashboard .p-5{padding:1.25rem}
#caripSchoolDashboard .p-6{padding:1.5rem}
#caripSchoolDashboard .p-7{padding:1.75rem}
#caripSchoolDashboard .px-3{padding-left:.75rem;padding-right:.75rem}
#caripSchoolDashboard .px-5{padding-left:1.25rem;padding-right:1.25rem}
#caripSchoolDashboard .py-1{padding-top:.25rem;padding-bottom:.25rem}
#caripSchoolDashboard .py-3{padding-top:.75rem;padding-bottom:.75rem}
#caripSchoolDashboard .py-10{padding-top:2.5rem;padding-bottom:2.5rem}
#caripSchoolDashboard .pb-10{padding-bottom:2.5rem}
#caripSchoolDashboard .mt-2{margin-top:.5rem}
#caripSchoolDashboard .mt-3{margin-top:.75rem}
#caripSchoolDashboard .mt-4{margin-top:1rem}
#caripSchoolDashboard .mb-3{margin-bottom:.75rem}
#caripSchoolDashboard .mb-4{margin-bottom:1rem}
#caripSchoolDashboard .mb-5{margin-bottom:1.25rem}
#caripSchoolDashboard .mx-auto{margin-left:auto;margin-right:auto}
#caripSchoolDashboard .text-xs{font-size:.75rem}
#caripSchoolDashboard .text-sm{font-size:.875rem}
#caripSchoolDashboard .text-lg{font-size:1.125rem}
#caripSchoolDashboard .text-2xl{font-size:1.5rem}
#caripSchoolDashboard .text-4xl{font-size:2.25rem}
#caripSchoolDashboard .font-medium{font-weight:500}
#caripSchoolDashboard .font-bold{font-weight:700}
#caripSchoolDashboard .font-extrabold{font-weight:800}
#caripSchoolDashboard .font-black{font-weight:900}
#caripSchoolDashboard .uppercase{text-transform:uppercase}
#caripSchoolDashboard .tracking-widest{letter-spacing:.1em}
#caripSchoolDashboard .tracking-tight{letter-spacing:-.025em}
#caripSchoolDashboard .text-center{text-align:center}
#caripSchoolDashboard .shadow-sm{box-shadow:0 3px 14px rgba(15,23,42,.06)}
#caripSchoolDashboard .shadow-xl{box-shadow:0 20px 30px rgba(30,27,75,.2)}
#caripSchoolDashboard .shadow-lg{box-shadow:0 10px 15px rgba(0,0,0,.1)}
#caripSchoolDashboard .h-72{height:18rem}
#caripSchoolDashboard .h-64{height:16rem}
#caripSchoolDashboard .h-60{height:15rem}
#caripSchoolDashboard .h-56{height:14rem}
#caripSchoolDashboard .max-w-56{max-width:14rem}
#caripSchoolDashboard .max-w-sm{max-width:24rem}
#caripSchoolDashboard .w-72{width:18rem}
#caripSchoolDashboard .w-56{width:14rem}
#caripSchoolDashboard .pointer-events-none{pointer-events:none}
#caripSchoolDashboard .z-10{z-index:10}
#caripSchoolDashboard .hover\:underline:hover{text-decoration:underline}
@media(min-width:640px){#caripSchoolDashboard .sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:768px){#caripSchoolDashboard .md\:p-9{padding:2.25rem}#caripSchoolDashboard .md\:text-4xl{font-size:2.25rem}}
@media(min-width:1280px){#caripSchoolDashboard .xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}#caripSchoolDashboard .xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}#caripSchoolDashboard .xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}#caripSchoolDashboard .xl\:col-span-2{grid-column:span 2/span 2}}
html.dark #caripSchoolDashboard{color:#f8fafc}
html.dark #caripSchoolDashboard .dark\:bg-slate-900{background-color:#0f172a}
html.dark #caripSchoolDashboard .dark\:border-slate-700{border-color:#334155}
html.dark #caripSchoolDashboard .dark\:text-white{color:#fff}
html.dark #caripSchoolDashboard .dark\:text-slate-300{color:#cbd5e1}
html.dark #caripSchoolDashboard .dark\:text-slate-400{color:#94a3b8}
html.dark #caripSchoolDashboard .dark\:bg-indigo-900{background-color:#312e81}
html.dark #caripSchoolDashboard .dark\:text-indigo-200{color:#c7d2fe}
