.admin .lateral nav .nav-item{display:flex;align-items:center;gap:10px}.admin .lateral nav .nav-item .ico{width:20px;text-align:center;opacity:.9;font-weight:800;font-size:.9rem}.admin .lateral nav .nav-sub{margin:0 0 6px 30px;border-left:2px solid rgba(255,255,255,.18);padding-left:8px}.admin .lateral nav .nav-sub a{padding:6px 10px;font-size:.88rem;font-weight:600}.admin .bnav,.admin .bnav-mas{display:none}@media (max-width: 860px){.admin .topbar{align-items:center}.admin .topbar .topbar-logo{background:transparent;padding:0;display:flex;flex:none}.admin .topbar .topbar-logo img{height:36px;display:block}.admin .topbar .topbar-nombre{color:#fff;font-weight:700;font-size:.9rem;flex:1;white-space:nowrap}.admin .contenido{padding-bottom:96px}.admin .bnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;background:#fff;border-top:1px solid var(--line);padding:6px 4px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -4px 14px #1e205014}.admin .bnav a,.admin .bnav button{flex:1;background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:2px;font:inherit;font-size:.68rem;font-weight:700;color:var(--muted);padding:4px 2px;text-decoration:none;cursor:pointer}.admin .bnav .i{font-size:1.1rem;color:var(--muted);line-height:1.2}.admin .bnav .on,.admin .bnav .on .i{color:var(--navy)}.admin .bnav a.nu .i{background:var(--navy);color:#fff;border-radius:50%;width:34px;height:34px;display:flex;align-items:center;justify-content:center;margin-top:-16px;border:3px solid #fff;font-size:1.2rem}.admin .bnav-mas{display:block;position:fixed;left:8px;right:8px;bottom:62px;z-index:21;background:#fff;border:1px solid var(--line);border-radius:12px 12px 0 0;padding:6px;box-shadow:0 -8px 24px #1e20502e}.admin .bnav-mas a{display:flex;gap:10px;align-items:center;padding:11px 12px;font-weight:700;color:var(--navy);border-bottom:1px solid #f0f1f7;text-decoration:none}.admin .bnav-mas a:last-child{border-bottom:none}.admin .bnav-mas a.activo{background:#eef0fb;border-radius:8px}}.seg-vista{display:inline-flex;background:#eef0fb;border-radius:8px;padding:3px}.seg-vista button{border:none;background:none;font:inherit;font-weight:700;color:var(--muted);padding:6px 14px;border-radius:6px;font-size:.86rem;cursor:pointer}.seg-vista button.on{background:#fff;color:var(--navy);box-shadow:0 1px 6px #1e205026}.cal-filtros{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}.chip-u{border:1px solid var(--line);background:#fff;color:var(--muted);font:inherit;font-weight:700;font-size:.86rem;padding:7px 14px;border-radius:999px;cursor:pointer}.chip-u.on{color:#fff}.cal-sem{display:grid;grid-template-columns:74px repeat(7,minmax(120px,1fr));gap:6px;min-width:980px}.cal-sem .cab{text-align:center;font-weight:800;font-size:.85rem;padding:7px 4px;background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--navy)}.cal-sem .cab.hoy{background:var(--navy);color:#fff;border-color:var(--navy)}.cal-sem .hora{font-weight:800;font-size:.82rem;color:var(--navy);padding-top:6px}.cal-sem .celda{display:flex;flex-direction:column;gap:6px;min-height:8px}.cal-ev{display:block;width:100%;text-align:left;font:inherit;border:1px solid transparent;border-left:4px solid var(--uc);border-radius:8px;padding:6px 8px;cursor:pointer;line-height:1.25;background:color-mix(in srgb,var(--uc) 12%,#fff);color:var(--ink)}.cal-ev b{display:block;font-size:.82rem}.cal-ev small{display:block;color:var(--muted);font-size:.74rem}.cal-ev.lleno{background:#fde8e8}.cal-ev.bloq{background:#f3f3f6;cursor:default;border-left-color:#b9bccb}.mes-cel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px}.mes-tit{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.mes-tit b{font-family:var(--fuente-titulos);color:var(--navy)}.mes-tit button{border:1px solid var(--line);background:#fff;border-radius:8px;width:34px;height:34px;font-size:1.1rem;color:var(--navy);cursor:pointer}.mes-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.mes-grid .mh{text-align:center;font-size:.72rem;font-weight:800;color:var(--muted);padding:2px 0}.mes-grid .mc{border:1px solid transparent;background:#fff;border-radius:8px;padding:5px 0 4px;min-height:44px;display:flex;flex-direction:column;align-items:center;gap:3px;font:inherit;font-weight:700;color:var(--navy);font-size:.86rem;cursor:pointer}.mes-grid .mc.fuera{color:#b3b6c7}.mes-grid .mc i{display:flex;gap:2px;height:6px}.mes-grid .mc i b{width:6px;height:6px;border-radius:50%;display:block}.mes-grid .mc.hoy:not(.on){border-color:var(--navy)}.mes-grid .mc.on{background:var(--navy);color:#fff}.mes-grid .mc.on i b{box-shadow:0 0 0 1px #fff}.cal-fila{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px}.cal-fila .h{min-width:62px;font-weight:800;color:var(--navy);font-size:.86rem;padding-top:8px}.cal-fila .cal-ev{flex:1}.nuevo-link{text-decoration:none;color:inherit}.nuevo-link .ins-go i{background:var(--ci, var(--c))}.ins-pn img.dec.wide{max-width:94%;height:auto;max-height:140px}.pestanas-res{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;border-bottom:1px solid var(--line);padding-bottom:8px}.pestanas-res a{padding:7px 14px;border-radius:999px;font-weight:700;font-size:.88rem;color:var(--muted);text-decoration:none;background:#fff;border:1px solid var(--line)}.pestanas-res a.activo{background:var(--navy);color:#fff;border-color:var(--navy)}.tablero-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.tablero-cab>div{min-width:0}.tablero-cab h1{margin-bottom:2px}.tablero-fecha:first-letter{text-transform:uppercase}.tablero-nuevo{flex:none;text-decoration:none}.utabs{display:flex;gap:6px;margin:14px 0 16px;border-bottom:1px solid var(--line)}.utabs button{background:none;border:none;border-bottom:4px solid transparent;padding:10px 16px;margin-bottom:-1px;font:inherit;font-weight:700;color:var(--muted);display:inline-flex;align-items:center;gap:8px;white-space:nowrap;cursor:pointer}.utabs button i{flex:none;width:11px;height:11px;border-radius:3px;background:var(--uc)}.utabs button.on{color:var(--navy);border-bottom-color:var(--uc)}.utabs button .c{background:var(--uc);color:#fff;border-radius:999px;padding:1px 8px;font-size:.78rem;font-weight:800}.grupo-titulo{font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:18px 2px 8px}.tablero-u .badge.n-unidad{background:var(--uc);color:#fff;font-weight:800}.kpi.click{cursor:pointer;text-align:left;font:inherit;color:inherit;text-decoration:none;display:block}.kpi.click:hover{border-color:#cfd3ea;box-shadow:0 2px 10px #1e205014}@media (max-width: 860px){.utabs{gap:0;overflow:hidden}.utabs button{flex:1 1 auto;justify-content:center;padding:10px 6px;gap:4px;font-size:.78rem;min-width:0}.utabs button i{display:none}.utabs button .c{padding:0 6px;font-size:.68rem}.tablero-nuevo{padding:8px 12px;font-size:.85rem}}.tablero-u .sec-card{padding:12px 16px;margin-bottom:10px;border-radius:10px}.tablero-u .sec-cab{display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer}.tablero-u .sec-card h2{margin:0;font-size:1rem;font-weight:600;color:var(--navy)}.tablero-u .sec-nota{margin:2px 0 0;font-size:.82rem;font-weight:400}.tablero-u .badge.n-unidad{flex:none;padding:1px 9px;font-size:.8rem}.tablero-u .fila-u{position:relative;padding-left:22px!important}.tablero-u .fila-u:before{content:"";position:absolute;left:4px;top:12px;bottom:12px;width:7px;border-radius:4px;background:var(--uc)}.tablero-u .fila-u .badge:not(.n-unidad){margin-left:8px;font-size:.72rem;padding:2px 8px;vertical-align:1px}.tablero-u .fila-u a:not(.btn){color:var(--navy);text-decoration:none;font-weight:700}.tablero-u .fila-u a:not(.btn):hover{text-decoration:underline}.tablero-u .btn.wa{background:#fff;color:var(--navy);border:1px solid var(--line)}.tablero-u .btn.wa:hover:not(:disabled){background:#f4f5fb}.tablero-u .btn.ok{background:var(--navy);color:#fff;border-color:var(--navy)}.tablero-u .btn.ok:hover:not(:disabled){background:var(--navy-2)}.utabs button .nom-corto{display:none}@media (max-width: 860px){.utabs button .nom-largo{display:none}.utabs button .nom-corto{display:inline}}.tablero-u .opcion.on{background:var(--uc);border-color:var(--uc);color:#fff}.sub2{display:flex;gap:6px;margin:0 0 10px;flex-wrap:wrap;align-items:center}.sub2 .sp{flex:1}.sub2 .ch{border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 12px;font:inherit;font-size:.82rem;font-weight:700;color:var(--navy);cursor:pointer}.sub2 .ch.on{background:var(--uc);border-color:var(--uc);color:#fff}.tablero-u .lnk{font-size:.84rem;font-weight:700;color:var(--navy-2);text-decoration:underline}.tablero-u .buscar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}.tablero-u .buscar input{flex:1;min-width:150px;max-width:420px}.evtarj{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;margin-bottom:4px;width:0;min-width:100%}.evc{flex:0 0 auto;min-width:150px;text-align:left;background:#fff;border:1px solid #e6e8f2;border-radius:12px;padding:10px 12px;font:inherit;color:var(--navy);cursor:pointer;display:flex;flex-direction:column;gap:2px}.evc b{font-size:.88rem}.evc span{font-size:.76rem;color:var(--muted)}.evc span.w{color:#9a5b00;font-weight:700}.evc.on{border-color:#ff56ac;box-shadow:0 0 0 2px #ff56ac33;background:#fff5fa}.evc.past{background:#f4f5fa;border-style:dashed}.evcab{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;background:#fff5fa;border:1px solid #ffc4e0;border-radius:12px;padding:10px 12px;margin-bottom:10px;color:var(--navy);font-size:.9rem}.tablero-u{min-width:0}.tablero-u .tabla a:not(.btn){text-decoration:none}.tablero-u .tabla a:not(.btn):hover{text-decoration:underline}.admin>div{min-width:0}.solo-cel{display:none}.tarj{background:#fff;border:1px solid #e6e8f2;border-radius:12px;padding:10px 12px;margin-bottom:8px;border-left:5px solid var(--uc, var(--navy))}.tarj .n{font-weight:700;color:var(--navy);text-decoration:none;display:block}.tarj .d{font-size:.8rem;color:var(--muted);margin-top:2px}.tarj .b{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}@media (max-width: 860px){.solo-pc{display:none}.solo-cel{display:block}}.pf-franja{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow);margin:12px 0}.pf-fila{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.pf-b{flex:1 1 220px;min-width:0}.pf-et{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800;display:flex;justify-content:space-between;align-items:center;gap:8px}.pf-val{font-weight:800;color:var(--navy);font-size:1.02rem;margin:2px 0 6px}.pf-sub{font-size:.84rem;margin-top:4px}.pf-barra{height:9px;border-radius:99px;background:#e8eaf4;overflow:hidden}.pf-barra i{display:block;height:100%;border-radius:99px;background:#00a7e8}.pf-barra.fin i{background:#ea6f24}.pf-acc{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-left:auto}.btn.renovar{background:#ea6f24;border-color:#ea6f24;color:#fff;font-weight:800}.btn.renovar:hover{filter:brightness(.95)}.btn.renovar.suave{background:#fff;color:#ea6f24;border:2px solid #ea6f24}.pf-aviso{margin-top:10px;padding:9px 12px;border-radius:10px;background:#fff4e8;border:1px solid #f6c89c;color:#8a4a10;font-size:.88rem;font-weight:700}.pf-aviso.pend{background:#eef6ff;border-color:#b9d9fb;color:#1c4f86}@media (max-width:700px){.pf-acc{margin-left:0;width:100%}.pf-acc .btn{flex:1;text-align:center}}.pf-aviso.ok{background:#eaf8ef;border-color:#b7e4c8;color:#1d6b3d}.btn.corr{background:#fff;color:var(--navy);border:2px solid var(--navy);font-weight:800}.btn.corr:hover:not(:disabled){background:#f1f2fa}.cc-prev{background:#f6f7fd;border:1px solid #dfe2f3;border-radius:12px;padding:12px 14px;margin:14px 0;font-size:.88rem}.cc-prev .cc-t{display:block;color:var(--navy-2);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.cc-prev ol{margin:0;padding-left:18px}.cc-prev li{margin:3px 0}.cc-dif{display:inline-block;font-weight:800;color:#d98c00}.ma{position:relative;display:inline-block}.ma-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:230px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 28px #1e20502e;padding:6px;z-index:20}.ma-item{display:block;width:100%;text-align:left;border:0;background:transparent;padding:9px 10px;border-radius:8px;font:inherit;font-weight:700;font-size:.9rem;color:var(--ink);cursor:pointer}.ma-item:hover{background:#f1f2fa}.ma-item.peligro{color:var(--bad)}.ma-item small{display:block;font-weight:600;color:var(--muted);font-size:.76rem;margin-top:1px}.ma-sep{border:0;border-top:1px solid var(--line);margin:4px 0}@media (max-width:700px){.ma-menu{left:0;right:auto;max-width:calc(100vw - 56px)}}.lnk{background:none;border:0;padding:0;font:inherit;font-weight:800;font-size:.76rem;color:var(--navy-2);text-decoration:underline;cursor:pointer;text-transform:none;letter-spacing:0}.lnk:hover{color:var(--navy)}.lnk.g{font-size:.85rem}.btn.ic{min-width:34px;padding-left:0;padding-right:0;text-align:center;font-weight:900;letter-spacing:1px}.edad{display:inline-block;margin-left:6px;background:#fff0f8;color:#b0276f;border-radius:999px;padding:1px 9px;font-size:.78rem;font-weight:800;white-space:nowrap}.edad.sin{background:#f1f2fa;color:#6b6f85;font-weight:700}.edad.g810{background:#e4f6ea;color:#1a7a42}.edad.otra{background:#f0e9ff;color:#6a3fc2}.tablero-u .sub2 .t{font-size:.76rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-right:4px}.badge.prueba{background:#e0f5fd;color:#0a6c96}.badge.libre{background:#e8ecff;color:#3b3780}.badge.evento{background:#ffe3f2;color:#b0276f}:root{--navy: #272451;--navy-2: #3b3780;--rt-rojo: #e41e26;--rt-amarillo: #fec10b;--rt-teal: #00b09e;--rt-azul: #00a7e8;--rt-naranja: #ea6f24;--rt-verde: #9ccc68;--rt-gris: #58595b;--rt-arcoiris: linear-gradient(90deg, #e41e26 0 14%, #fec10b 14% 28%, #00b09e 28% 42%, #00a7e8 42% 57%, #ea6f24 57% 71%, #fec10b 71% 85%, #9ccc68 85% 100%);--ink: #1d1d2b;--muted: #6b6f85;--line: #e3e5ef;--bg: #f4f5fa;--card: #ffffff;--ok: #2e9e5b;--warn: #d98c00;--bad: #d64545;--info: #1e88e5;--radius: 14px;--shadow: 0 2px 12px rgba(30, 32, 80, .06);font-family:Nunito,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;--fuente-titulos: "Poppins", "Nunito", system-ui, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background:#fff}body{background:var(--bg);color:var(--ink);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0 0 8px;line-height:1.2;color:var(--navy);font-weight:700;font-family:var(--fuente-titulos)}h1{font-size:1.5rem}h2{font-size:1.2rem}h3{font-size:1.02rem}p{margin:0 0 10px}a{color:var(--navy-2)}small,.muted{color:var(--muted)}.muted{font-size:.92rem}.center{text-align:center}.right{text-align:right}.mt{margin-top:16px}.mb{margin-bottom:16px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media (max-width: 640px){.grid2,.grid3{grid-template-columns:1fr}}.portal{max-width:640px;margin:0 auto;padding:16px 14px 60px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);margin-bottom:14px}.card.tight{padding:12px 14px}.card.accent{border-left:5px solid var(--navy)}.card.destacado{border:2px solid var(--info);box-shadow:0 0 0 3px #1e88e526}.marca{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0 14px}.marca img{height:46px;width:auto;display:block}.marca .sub{font-size:.78rem;color:var(--navy);font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:#eef0f8;padding:5px 10px;border-radius:999px;white-space:nowrap}.arcoiris{height:5px;border-radius:3px;background:var(--rt-arcoiris);margin-bottom:18px}.portada{display:flex;justify-content:center;margin:6px 0 4px;position:relative}.decos{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:-1;overflow:hidden}.decos img{position:absolute;opacity:.35;filter:saturate(1.1)}.decos .d1{width:160px;left:-40px;top:120px;transform:rotate(-12deg)}.decos .d2{width:150px;right:-30px;bottom:90px;transform:rotate(18deg)}.decos .d3{width:90px;right:8%;top:60px;transform:rotate(-20deg)}@media (max-width: 640px){.decos .d1,.decos .d2{width:110px}.decos .d3{display:none}}.portada img{width:100%;max-width:300px;height:auto}.avatar-plan{width:44px;height:44px;border-radius:50%;display:inline-block;vertical-align:middle;box-shadow:0 1px 4px #1e205026}.avatar-plan.grande{width:84px;height:84px}.plan-hero{display:flex;align-items:center;gap:14px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:#fff;color:var(--ink);padding:11px 16px;border-radius:11px;font:inherit;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;transition:transform .05s ease,background .15s ease}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--navy);color:#fff;border-color:var(--navy)}.btn.primary:hover:not(:disabled){background:var(--navy-2)}.btn.ghost{background:transparent}.btn.danger{color:var(--bad);border-color:#f0c9c9}.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}.btn.warn{background:#fff1d6;border-color:#f0d9ab;color:#7a4d00}.btn.wa{background:#25d366;border-color:#25d366;color:#fff}.btn.sm{padding:7px 11px;font-size:.88rem;border-radius:9px}.btn.block{width:100%}.btn.link{border:none;background:none;color:var(--navy-2);padding:4px 6px;font-weight:600}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field label{font-size:.86rem;font-weight:600;color:#3a3d55}.field .hint{font-size:.8rem;color:var(--muted)}input,select,textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid #cfd3e2;border-radius:10px;padding:11px 12px;width:100%;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--navy-2);box-shadow:0 0 0 3px #3d3f8f26}input[type=checkbox],input[type=radio]{width:20px;height:20px;padding:0;margin:0;accent-color:var(--navy)}textarea{min-height:84px;resize:vertical}.check{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:11px;margin-bottom:10px;background:#fafbfe;cursor:pointer}.check.on{border-color:var(--navy-2);background:#f1f2fb}.check span{font-size:.95rem}.opciones{display:flex;gap:8px;flex-wrap:wrap}.opcion{border:1px solid #cfd3e2;border-radius:999px;padding:8px 14px;cursor:pointer;background:#fff;font-weight:600;font-size:.92rem}.opcion.on{background:var(--navy);color:#fff;border-color:var(--navy)}.titulo-cat{display:flex;align-items:center;gap:8px;margin-top:22px;color:var(--c, var(--navy))}.titulo-cat:before{content:"";width:10px;height:10px;border-radius:3px;background:var(--c, var(--navy));flex-shrink:0}.tabla-escala{width:100%;border-collapse:collapse;margin-top:8px;font-size:.86rem}.tabla-escala thead th{background:var(--navy);color:#fff;font-weight:700;padding:8px;text-align:center}.tabla-escala thead th.th-sub{text-align:left}.tabla-escala td{border-bottom:1px solid var(--line);padding:8px;vertical-align:middle}.tabla-escala tbody tr:nth-child(2n){background:#fafbff}.tabla-escala .celda-sub{max-width:260px}.tabla-escala .fila-titulo{font-weight:700;color:var(--ink)}.tabla-escala .fila-desc{font-style:italic;color:var(--muted);font-size:.8rem;margin-top:1px}.tabla-escala .celda-radio{text-align:center;width:64px}.radio{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:2px solid #cfd3e2;background:#fff;padding:0;cursor:pointer}.radio.on{border-color:var(--c, var(--navy));background:var(--c, var(--navy))}.radio.on:after{content:"✓";color:#fff;font-size:12px;font-weight:900;line-height:1}.pasos{display:flex;gap:6px;margin:4px 0 16px}.pasos span{flex:1;height:6px;border-radius:3px;background:var(--line)}.pasos span.on{background:var(--navy)}.alert{padding:12px 14px;border-radius:11px;margin-bottom:12px;font-size:.95rem;border:1px solid transparent}.alert.info{background:#eaf3ff;border-color:#c9deff;color:#144a85}.alert.ok{background:#e9f8ef;border-color:#bfe8cd;color:#1d6b3d}.alert.warn{background:#fff5e3;border-color:#ffe0a6;color:#7a4d00}.alert.bad{background:#fdecec;border-color:#f6c3c3;color:#8a1f1f}.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:.76rem;font-weight:700;background:#eef0f8;color:var(--navy)}.badge.ok{background:#e3f6ea;color:#1d6b3d}.badge.warn{background:#fff1d6;color:#7a4d00}.badge.bad{background:#fde3e3;color:#8a1f1f}.badge.info{background:#e3f0ff;color:#144a85}.badge.gray{background:#eceef3;color:#555a70}.resumen{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.resumen .k{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.resumen .v{font-weight:600}.resumen .full{grid-column:1 / -1}.precio-grande{font-size:1.6rem;font-weight:800;color:var(--navy)}.bloque{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:#fff;cursor:pointer}.bloque.on{border-color:var(--navy);box-shadow:0 0 0 2px #2b2d6b2e}.bloque.off{opacity:.5;cursor:not-allowed}.bloque .dia{font-weight:700}.bloque .hora{color:var(--muted);font-size:.92rem}.lista-clases{margin:14px -18px -18px;border-top:1px solid var(--line)}.clase{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line)}.clase:last-child{border-bottom:none}.clase .fecha{min-width:54px;text-align:center;border-radius:10px;background:#eef0f8;padding:6px 4px}.clase .fecha .d{font-size:1.25rem;font-weight:800;color:var(--navy);line-height:1}.clase .fecha .m{font-size:.7rem;text-transform:uppercase;color:var(--muted)}.clase .info{flex:1}.clase .info .t{font-weight:600}.clase .info .t .clase-num{font-weight:800;background:linear-gradient(90deg,var(--rt-azul),var(--rt-teal));-webkit-background-clip:text;background-clip:text;color:transparent}.clase.pasada{opacity:.75}.anillo-wrap{display:flex;align-items:center;gap:16px}.anillo{position:relative;width:108px;height:108px;flex:none}.anillo svg{display:block}.anillo-centro{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.anillo-n{font-size:1.05rem;font-weight:800;color:var(--navy)}.niv-mini-dots{display:flex;gap:6px;margin-top:8px}.niv-mini-dot{width:10px;height:10px;border-radius:50%;background:#e3e5ef}.niv-mini-dot.hecho{background:var(--rt-teal)}.niv-mini-dot.actual{background:var(--rt-azul);box-shadow:0 0 0 3px #00a7e833}.tema-barra{height:10px;border-radius:999px;background:#eef0f8;overflow:hidden}.tema-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--rt-azul),var(--rt-teal))}.tema-fill.apagado{background:#c7cad8}.banner-renov{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#fff8ea,#fff1d6);border:1px solid #ffe0a6;border-radius:var(--radius);padding:14px 16px}.banner-renov .icono{font-size:1.6rem;flex:none}.banner-renov h4{margin:0 0 2px;color:#7a4d00;font-size:.98rem}.banner-renov p{margin:0;color:#7a4d00;font-size:.86rem}.niveles-anteriores{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}.niveles-anteriores-titulo{font-size:.78rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.nivel-anterior{border:1px solid var(--line);border-radius:10px;margin-bottom:8px;overflow:hidden}.nivel-anterior:last-child{margin-bottom:0}.nivel-anterior-fila{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;cursor:pointer;font-weight:700;color:var(--navy);background:#f8f9fc}.nivel-anterior-fila .chev{color:var(--muted);font-weight:400}.nivel-anterior-detalle{border-top:1px solid var(--line)}.nivel-anterior-detalle .anillo-wrap{padding:14px 12px 4px}.lista-clases-anidada{border-top:1px solid var(--line);margin-top:10px}.firma-wrap{border:2px dashed #b9bdd2;border-radius:12px;background:#fff;position:relative;touch-action:none}.firma-wrap canvas{display:block;width:100%;height:200px;border-radius:12px}.firma-wrap .ayuda{position:absolute;inset:auto 0 10px 0;text-align:center;color:#aab;font-size:.85rem;pointer-events:none}.admin{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.admin .lateral{background:var(--navy);color:#fff;padding:18px 14px;position:sticky;top:0;height:100vh;overflow:auto}.admin .lateral .marca{background:transparent;border-radius:0;padding:2px 0 8px;margin-bottom:10px;flex-direction:column;align-items:flex-start;gap:8px}.admin .lateral .marca img{height:auto;width:190px;max-width:100%}.admin .lateral .marca .sub{font-size:.72rem}.admin .lateral .arcoiris{margin:0 0 14px}.admin .lateral nav a{display:block;color:#d9dbf0;text-decoration:none;padding:10px 12px;border-radius:10px;font-weight:600;margin-bottom:2px}.admin .lateral nav a.activo,.admin .lateral nav a:hover{background:#ffffff24;color:#fff}.admin .lateral nav .nav-grupo-bloque{margin-top:12px}.admin .lateral nav .nav-grupo-bloque:first-child{margin-top:0}.admin .lateral nav .nav-grupo{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#ffffff14;border:none;border-left:4px solid var(--grupo-color, var(--navy-2));border-radius:8px;padding:9px 10px;margin-bottom:6px;cursor:pointer;font:inherit;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:#fff}.admin .lateral nav .nav-grupo:hover{background:#ffffff29}.admin .lateral nav .nav-grupo .chevron{font-size:.7rem;opacity:.85}.admin .contenido{padding:22px 26px 60px;max-width:1200px}.admin .topbar{display:none}@media (max-width: 860px){.admin{grid-template-columns:1fr}.admin .lateral{display:none}.admin .topbar{display:flex;gap:6px;overflow-x:auto;background:var(--navy);padding:10px 12px;position:sticky;top:0;z-index:5}.admin .topbar nav{display:flex;align-items:center;gap:6px}.admin .topbar .nav-grupo-bloque{display:flex;align-items:center;gap:6px}.admin .topbar a{color:#fff;text-decoration:none;font-weight:600;font-size:.88rem;padding:6px 10px;border-radius:8px;white-space:nowrap}.admin .topbar a.activo{background:#ffffff2e}.admin .topbar .nav-grupo{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;gap:4px;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:#fff;background:#ffffff1a;border:none;border-left:3px solid var(--grupo-color, rgba(255, 255, 255, .4));border-radius:8px;padding:6px 8px;margin-left:4px;white-space:nowrap;cursor:pointer;font-family:inherit}.admin .topbar .nav-grupo-bloque:first-child .nav-grupo{margin-left:0}.admin .topbar .nav-grupo .chevron{font-size:.65rem;opacity:.85}.admin .contenido{padding:16px 14px 60px}}table.tabla{width:100%;border-collapse:collapse;font-size:.93rem}.tabla th,.tabla td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}.tabla th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.tabla tr:hover td{background:#fafbfe}.scroll{overflow-x:auto}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}.kpi .n{font-size:1.7rem;font-weight:800;color:var(--navy);line-height:1.1}.kpi .l{color:var(--muted);font-size:.85rem}.ocup{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px;min-width:760px}.ocup.ocup-cumple{grid-template-columns:repeat(7,minmax(120px,1fr));min-width:880px}.ocup .dia-col h4{font-size:.85rem;margin-bottom:6px;padding:4px 6px;border-radius:8px}.ocup .dia-col.seleccionado h4{background:var(--info);color:#fff}.slot{border:1px solid var(--line);border-radius:10px;padding:8px;margin-bottom:6px;background:#fff;font-size:.85rem}.slot .barra{height:6px;border-radius:3px;background:#e9ebf3;margin-top:6px;overflow:hidden}.slot .barra i{display:block;height:100%;background:var(--ok)}.slot.lleno .barra i{background:var(--bad)}.slot.medio .barra i{background:var(--warn)}.slot.bloqueado{background:#f3f3f6;color:var(--muted)}.calendario-mes{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendario-mes .cal-cab{text-align:center;font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;padding-bottom:4px}.cal-dia{border:1px solid var(--line);border-radius:10px;padding:6px;min-height:60px;background:#fff;cursor:pointer;position:relative}.cal-dia:hover{border-color:var(--navy-2)}.cal-dia.fuera{background:#fafafe;color:var(--muted)}.cal-dia.es-hoy{border-color:var(--info);box-shadow:0 0 0 2px #1e88e526}.cal-dia.seleccionado{border-color:var(--navy);box-shadow:0 0 0 2px #0f2a5a2e;background:#eef0fb}.cal-dia .num{font-size:.8rem;font-weight:700}.cal-dia .n{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 6px;border-radius:999px;background:var(--rt-verde);color:#fff;font-size:1rem;font-weight:800;line-height:1}.cal-dia.fuera .n{background:var(--muted)}@media (max-width: 640px){.calendario-mes{gap:4px}.cal-dia{padding:4px;min-height:46px}.cal-dia .num{font-size:.72rem}.cal-dia .n{min-width:22px;height:22px;font-size:.85rem}}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px;overflow-x:auto}.tabs button{border:none;background:none;padding:10px 12px;font:inherit;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap}.tabs button.on{color:var(--navy);border-bottom-color:var(--navy)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#14163273;display:grid;place-items:center;padding:14px;z-index:50}.modal{background:#fff;border-radius:16px;padding:20px;width:100%;max-width:560px;max-height:92vh;overflow:auto}.modal-marca{margin:-6px 0 12px}.modal-marca .marca{padding:0 0 10px}.modal-marca .marca img{height:32px}.spinner{width:26px;height:26px;border:3px solid var(--line);border-top-color:var(--navy);border-radius:50%;animation:giro .8s linear infinite;margin:30px auto}@keyframes giro{to{transform:rotate(360deg)}}.plan-chip{display:inline-flex;align-items:center;gap:6px;font-weight:700}.plan-chip i{width:10px;height:10px;border-radius:50%;display:inline-block}.copiar{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;background:#f4f5fa;padding:8px 10px;border-radius:8px;word-break:break-all}.dg-seccion{font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:var(--navy);font-weight:800;margin:28px 0 12px;display:flex;align-items:center;gap:10px}.dg-seccion:after{content:"";flex:1;height:1px;background:var(--line)}.dg-seccion:first-child{margin-top:0}.dg-subseccion{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800;margin:20px 0 12px}.dg-grid{display:grid;gap:14px;margin-bottom:4px}.dg-grid.g4{grid-template-columns:repeat(4,1fr)}.dg-grid.g3{grid-template-columns:repeat(3,1fr)}.dg-grid.g2{grid-template-columns:repeat(2,1fr)}@media (max-width: 900px){.dg-grid.g4,.dg-grid.g3{grid-template-columns:repeat(2,1fr)}.dg-grid.g2{grid-template-columns:1fr}}.dg-split{display:grid;grid-template-columns:1.3fr 1fr;gap:14px}@media (max-width: 900px){.dg-split{grid-template-columns:1fr}}.dg-tile .label{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}.dg-tile .value{font-size:1.6rem;font-weight:800;color:var(--navy);margin-top:4px;line-height:1.1}.dg-tile .value.hero{font-size:2rem}.dg-tile .delta{font-size:.82rem;font-weight:700;margin-top:4px}.dg-tile .delta.up{color:var(--ok)}.dg-tile .delta.down{color:var(--bad)}.dg-tile .delta.flat{color:var(--muted)}.dg-tile .nota{font-size:.78rem;color:var(--muted);margin-top:4px}.dg-tile.accent{border-top:4px solid var(--dg-tile-accent, var(--rt-azul));border-left:none}.dg-nota-card{background:#f1f2fb;border:1px dashed #c7c9e8;border-radius:12px;padding:12px 16px;font-size:.85rem;color:var(--navy-2);font-weight:600;margin-top:14px}.dg-zona-gastos{background:#fbf1ec;border:1px solid #f0dccb;border-radius:16px;padding:6px 18px 22px;margin-top:12px}.dg-zona-gastos .dg-seccion{color:#a2481f}.dg-zona-gastos .dg-seccion:after{background:#e9c9ae}.dg-chart-title{font-weight:800;color:var(--navy);font-size:.95rem;margin-bottom:2px}.dg-chart-sub{font-size:.78rem;color:var(--muted);margin-bottom:14px}.dg-legend{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}.dg-legend .item{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--ink);font-weight:700}.dg-legend .swatch{width:10px;height:10px;border-radius:3px;display:inline-block}.dg-vbar-group{display:flex;align-items:flex-end;gap:18px;height:190px;padding:46px 4px 0;border-bottom:1px solid var(--line);box-sizing:content-box;overflow-x:auto}.dg-vbar-cat{display:flex;flex-direction:column;align-items:center;flex:1;min-width:40px;height:100%;justify-content:flex-end;gap:6px}.dg-vbar-cat .dg-bars{display:flex;align-items:flex-end;gap:4px;height:100%;position:relative}.dg-bar{width:26px;border-radius:4px 4px 0 0;position:relative;display:flex;justify-content:center;min-height:2px}.dg-bar .dg-val{position:absolute;top:-20px;font-size:.72rem;font-weight:800;color:var(--ink);white-space:nowrap}.dg-bars.dg-bars-2{gap:6px}.dg-bar.dg-bar-thin{width:15px}.dg-val-stack{position:absolute;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:1px;font-size:.66rem;font-weight:800;white-space:nowrap;line-height:1.3}.dg-cat-label{font-size:.74rem;color:var(--ink);font-weight:700;margin-top:4px;text-align:center}.dg-hbar-row{display:flex;align-items:center;gap:10px;margin:9px 0}.dg-hbar-label{width:118px;font-size:.78rem;color:var(--ink);font-weight:700;text-align:right;flex-shrink:0}.dg-hbar-wide .dg-hbar-label{width:165px}.dg-hbar-track{flex:1;background:var(--line);border-radius:4px;height:18px;position:relative;overflow:hidden;min-width:0}.dg-hbar-fill{height:100%;border-radius:4px 0 0 4px;max-width:100%}.dg-hbar-val{width:84px;flex-shrink:0;text-align:left;font-size:.76rem;font-weight:800;color:var(--ink);white-space:nowrap}.dg-subcard-row{display:flex;gap:12px;flex-wrap:wrap}.dg-subcard{flex:1;min-width:140px;border-radius:10px;padding:12px 10px 14px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--dg-accent, var(--navy));text-align:center}.dg-subcard .sc-head{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.82rem;font-weight:800;color:var(--ink);margin-bottom:12px}.dg-subcard .sc-head .dot{width:9px;height:9px;border-radius:50%;background:var(--dg-accent, var(--navy));flex-shrink:0}.dg-subcard .sc-stats{display:flex;flex-direction:column;gap:9px}.dg-subcard .sc-stats .l{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}.dg-subcard .sc-stats .v{font-size:1.05rem;font-weight:800;color:var(--navy);margin-top:1px}.dg-linechart{width:100%;height:150px;overflow:visible}.dg-lc-grid{stroke:var(--line);stroke-width:1}.dg-lc-line{fill:none;stroke-width:2}.dg-lc-dot{stroke:#fff;stroke-width:2}.dg-lc-label{font-size:10px;font-weight:700;font-family:inherit}.dg-lc-axis{font-size:10px;fill:var(--muted);font-family:inherit}.dg-kpi-row-sub{display:flex;gap:22px;margin-top:14px;flex-wrap:wrap}.dg-kpi-row-sub .mini{min-width:110px}.dg-kpi-row-sub .mini .l{font-size:.72rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.dg-kpi-row-sub .mini .v{font-size:1.1rem;font-weight:800;color:var(--navy)}.dg-sede-lista{display:flex;flex-direction:column;gap:10px}.dg-sede-fila{border-radius:10px;padding:12px 16px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--dg-accent, var(--navy));display:flex;align-items:center;gap:20px;flex-wrap:wrap}.dg-sede-fila .sc-head{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:800;color:var(--ink);flex:0 0 170px}.dg-sede-fila .sc-head .dot{width:9px;height:9px;border-radius:50%;background:var(--dg-accent, var(--navy));flex-shrink:0}.dg-sede-fila .dg-kpi-row-sub{margin-top:0}.dg-hero-card{background:#f1f2fb;border:1px solid #d8daf1;border-radius:12px;padding:14px 18px}.dg-periodo{background:#0b0b0b0f;border-radius:999px;padding:6px 14px;font-weight:700;font-size:.85rem;color:var(--navy)}.cb-resumen{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 12px}.cb-tile{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 14px;flex:1;min-width:120px;border-top:3px solid var(--navy)}.cb-tile .n{font-size:1.25rem;font-weight:800;color:var(--navy);line-height:1.1}.cb-tile .l{font-size:.72rem;color:var(--muted);font-weight:700}.cb-tile.alerta{border-top-color:var(--bad)}.cb-tile.alerta .n{color:var(--bad)}.cb-limpieza{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff5f0;border:1px dashed #f0b08a;border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:.85rem;color:#8a3d10;font-weight:600}.cb-leyenda{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:12px;font-size:.78rem;color:var(--muted)}.cb-leyenda span{display:inline-flex;align-items:center;gap:6px}.cb-leyenda .dot{width:9px;height:9px;border-radius:3px;display:inline-block}.tabla-cal{border-collapse:collapse;width:100%;min-width:620px}.tabla-cal th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--navy);padding:4px 4px 8px;text-align:center;font-weight:800}.tabla-cal td{border-top:1px solid var(--line);padding:4px;vertical-align:top;text-align:center}.tabla-cal td.hora-cal{color:var(--muted);font-size:.72rem;font-weight:700;text-align:right;padding-right:8px;white-space:nowrap}.cb-chip{display:block;border-radius:8px;padding:5px 6px;font-size:.72rem;font-weight:700;cursor:pointer;text-align:left;border:1.5px solid transparent;line-height:1.3}.cb-chip .h{display:block;font-size:.68rem;opacity:.85;font-weight:600}.cb-chip.con-uso{background:#e6f8f5;border-color:var(--rt-teal);color:#04695d}.cb-chip.poco-uso{background:#fff8e6;border-color:var(--rt-amarillo);color:#8a6600}.cb-chip.sin-uso{background:#f4f4f8;border-color:#c9cadd;color:#6b6f85;border-style:dashed}.cb-chip.inactivo{background:repeating-linear-gradient(135deg,#f1f1f5,#f1f1f5 6px,#e6e6ee 6px,#e6e6ee 12px);border-color:#d3d4e2;color:#9294a6}.cb-chip.cargando{background:#fff;border-color:var(--line);color:var(--muted)}.fila-resaltada{animation:resaltar 1.6s ease}@keyframes resaltar{0%{background:#eef0fb}to{background:transparent}}
