/* LEGACY ISP: variables de color utilizadas en toda la interfaz. */
:root { --azul:#123c69; --azul2:#1f5f99; --cian:#22a6b3; --fondo:#f3f6fa; --texto:#263544; --borde:#dbe3ec; --blanco:#fff; --rojo:#b42318; --verde:#147d64; }

.firmas-proveedor-portada{border-top:4px solid #16a085}.mini-firma-proveedor{display:block;width:150px;height:65px;object-fit:contain;background:white}.vista-firma-proveedor{display:flex;align-items:center;gap:18px;padding:14px;border:1px solid #d7e2ea;border-radius:9px;background:#f8fbfd}.vista-firma-proveedor img{width:260px;height:110px;object-fit:contain;background:white}.vista-firma-proveedor span{color:#60758a}.firma-proveedor{display:block;margin:0 auto 5px}.acciones-plantilla button:disabled{opacity:.4;cursor:not-allowed}

/* Hace que padding y bordes formen parte del tamaño total de cada elemento. */
* { box-sizing:border-box; }

/* Estilo general del documento. */
body { margin:0; font-family:Arial, Helvetica, sans-serif; color:var(--texto); background:var(--fondo); }

/* Barra lateral fija del panel. */
.sidebar { position:fixed; inset:0 auto 0 0; z-index:30; width:230px; padding:20px 0 14px; background:linear-gradient(180deg,#062f63 0%,#0879a7 42%,#14a886 100%); color:white; display:flex; flex-direction:column; overflow:hidden; box-shadow:8px 0 28px rgba(9,35,61,.18); transition:transform .22s ease; }
.sidebar::before { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(255,255,255,.10),transparent 36%),radial-gradient(circle at 70% 0%,rgba(69,214,220,.28),transparent 35%); }
.sidebar>* { position:relative; z-index:1; }
.boton-sidebar-toggle { position:fixed; left:218px; top:12px; z-index:45; display:grid; width:34px; height:34px; margin:0; padding:0; place-items:center; border:1px solid rgba(255,255,255,.28); border-radius:0 10px 10px 0; color:white; background:linear-gradient(135deg,#0775a8,#16ad8b); box-shadow:0 8px 20px rgba(12,45,80,.22); transition:left .22s ease,transform .16s ease,background .16s ease; }
.boton-sidebar-toggle:hover { background:linear-gradient(135deg,#0a8cc8,#21bf98); transform:translateY(-1px); }
.boton-sidebar-toggle:active { transform:translateY(1px) scale(.96); }
html.sidebar-cerrado .sidebar { transform:translateX(-100%); }
html.sidebar-cerrado .contenido { margin-left:0; }
html.sidebar-cerrado .boton-sidebar-toggle { left:14px; background:linear-gradient(135deg,#0775a8,#16ad8b); border-radius:10px; }

/* Colores y tamaño del nombre LEGACY ISP. */
.marca { font-size:24px; font-weight:800; letter-spacing:1px; color:inherit; }
.marca span { color:#45d6dc; }
.marca.grande { font-size:34px; }
.sidebar-brand { display:grid; gap:10px; justify-items:start; flex:0 0 auto; padding:0 16px 16px; border-bottom:1px solid rgba(255,255,255,.18); }
.sidebar-logo-card { display:grid; width:100%; min-height:54px; padding:8px 12px; place-items:center; border:1px solid rgba(255,255,255,.70); border-radius:10px; background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(236,251,255,.90)); box-shadow:0 10px 22px rgba(2,30,55,.18),inset 0 1px 0 rgba(255,255,255,.80); }
.sidebar-logo-card img { display:block; width:100%; max-width:160px; max-height:40px; object-fit:contain; filter:none; }
.perfil-sidebar{display:flex;flex:0 0 auto;align-items:center;gap:11px;margin:0;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.16);background:rgba(4,24,46,.10)}.perfil-sidebar img,.perfil-iniciales{display:grid;flex:0 0 48px;width:48px;height:48px;place-items:center;border:3px solid rgba(255,255,255,.82);border-radius:50%;object-fit:cover;background:#1da982;color:white;font-size:17px;font-weight:800}.perfil-sidebar div{min-width:0}.perfil-sidebar strong,.perfil-sidebar small{display:block}.perfil-sidebar strong{overflow:hidden;color:white;text-overflow:ellipsis;white-space:nowrap}.perfil-sidebar small{margin-top:4px;color:#d8fff5;font-size:11px;text-transform:uppercase}

/* Navegación vertical. */
.sidebar nav { flex:1 1 auto; min-height:0; margin-top:0; padding:0; display:grid; grid-auto-rows:max-content; align-content:start; gap:0; overflow-y:auto; overflow-x:hidden; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.58) rgba(3,32,55,.18); }
.sidebar nav::-webkit-scrollbar { width:7px; }
.sidebar nav::-webkit-scrollbar-track { background:rgba(3,32,55,.18); border-radius:99px; }
.sidebar nav::-webkit-scrollbar-thumb { background:rgba(255,255,255,.52); border-radius:99px; }
.sidebar nav a,.salir { position:relative; min-height:42px; margin:0; padding:12px 18px; color:#e5f5fb; text-decoration:none; border-radius:0; border-bottom:1px solid rgba(255,255,255,.13); transition:background .16s ease,color .16s ease,transform .12s ease,box-shadow .16s ease; }
.sidebar nav a:hover,.sidebar nav a.activo { background:rgba(5,31,52,.22); color:#fff; }
.sidebar nav a:active,.menu-arbol>summary:active { transform:scale(.985); }
.sidebar nav a.activo,.menu-arbol>summary.activo { background:linear-gradient(90deg,rgba(255,255,255,.24),rgba(255,255,255,.08)); box-shadow:inset 4px 0 0 #45d6dc; }
.sidebar nav a.activo::after,.menu-arbol>summary.activo::after { content:""; position:absolute; right:0; top:50%; width:0; height:0; border-top:7px solid transparent; border-bottom:7px solid transparent; border-right:7px solid var(--fondo); transform:translateY(-50%); }
.salir { flex:0 0 auto; min-height:42px; margin:10px 18px 0; border:1px solid rgba(255,255,255,.35); border-radius:8px; text-align:center; background:rgba(5,31,52,.18); }

/* Árbol del menú Clientes y segundo nivel de Servicios adicionales. */
.menu-arbol { margin:0; }
.menu-arbol>summary { position:relative; display:flex; align-items:center; justify-content:space-between; min-height:42px; padding:12px 18px; border-bottom:1px solid rgba(255,255,255,.13); border-radius:0; color:#e5f5fb; list-style:none; cursor:pointer; transition:background .16s ease,color .16s ease,transform .12s ease,box-shadow .16s ease; }
.menu-arbol>summary::-webkit-details-marker { display:none; }
.menu-arbol>summary:hover,.menu-arbol>summary.activo { background:rgba(5,31,52,.22); color:white; }
.menu-arbol>summary b { color:#72fff0; font-size:14px; transition:transform .2s ease; }
.menu-arbol[open]>summary b { transform:rotate(180deg); }
.submenu { display:grid; gap:0; margin:0; padding:4px 0 5px 18px; border-left:0; background:rgba(3,25,45,.20); }
.submenu a { min-height:34px; padding:9px 14px; border-bottom:0; font-size:13px; }
.menu-arbol-nivel2 { margin-top:2px; }
.menu-arbol-nivel2>summary { min-height:34px; padding:9px 14px; border-bottom:0; font-size:13px; }
.submenu-nivel2 { margin-left:12px; }

/* Contenedor a la derecha de la barra lateral. */
.contenido { margin-left:230px; padding:28px; min-height:100vh; transition:margin-left .22s ease; }

/* Encabezado de cada módulo. */
.topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; }
h1,h2,h3,p { margin-top:0; }
.topbar h1 { margin-bottom:4px; color:var(--azul); }
.topbar p { color:#718096; margin-bottom:0; }
.usuario { background:white; border:1px solid var(--borde); padding:10px 14px; border-radius:10px; }

/* Tarjetas de cifras del dashboard. */
.tarjetas { display:grid; grid-template-columns:repeat(5,minmax(145px,1fr)); gap:15px; margin-bottom:20px; }
.tarjetas article { background:white; border:1px solid var(--borde); border-radius:12px; padding:20px; border-top:4px solid var(--cian); }
.tarjetas span { display:block; color:#718096; font-size:13px; margin-bottom:12px; }
.tarjetas strong { font-size:23px; color:var(--azul); }

/* Paneles blancos que agrupan formularios y tablas. */
.panel,.documento { background:white; border:1px solid var(--borde); border-radius:12px; padding:22px; box-shadow:0 5px 18px rgba(18,60,105,.05); }
.panel h2 { color:var(--azul); font-size:19px; }
.bienvenida { max-width:900px; }
.nota { background:#eaf8f8; border-left:4px solid var(--cian); padding:14px; }

/* Distribución del formulario y listado en dos columnas. */
.dos-columnas { display:grid; grid-template-columns:minmax(290px,380px) minmax(500px,1fr); gap:20px; align-items:start; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.form-grid .completo { grid-column:1 / -1; }
.form-grid label { font-size:13px; font-weight:bold; color:#506174; }

/* Controles de entrada de datos. */
input,select,textarea,button,.boton { width:100%; margin-top:6px; padding:10px 11px; border:1px solid #c8d3df; border-radius:7px; font:inherit; }
textarea { min-height:75px; resize:vertical; }
input,.no-uppercase { text-transform:none!important; }
input:focus,select:focus,textarea:focus { outline:2px solid rgba(34,166,179,.22); border-color:var(--cian); }
button,.boton { border:0; background:var(--azul2); color:white; font-weight:bold; cursor:pointer; text-decoration:none; text-align:center; display:inline-block; }
button:hover,.boton:hover { background:var(--azul); }
.secundario { background:#6b7c8d; }
hr { border:0; border-top:1px solid var(--borde); margin:25px 0; }

/* Tablas adaptables para los listados. */
.tabla-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:14px; }
th,td { padding:12px 10px; border-bottom:1px solid var(--borde); text-align:left; vertical-align:middle; }
th { background:#eef4f9; color:var(--azul); font-size:12px; text-transform:uppercase; }
tr:hover td { background:#fafcfe; }
small { color:#718096; }
.link { color:var(--azul2); font-weight:bold; text-decoration:none; margin-right:8px; }

/* Etiquetas visuales para estados de registros. */
.estado { display:inline-block; padding:5px 8px; border-radius:999px; background:#e8edf2; font-size:12px; white-space:nowrap; }
.estado.act,.estado.pag,.estado.alm { background:#dcf5ec; color:var(--verde); }
.estado.pen,.estado.rep { background:#fff4d6; color:#8a6100; }
.estado.sus,.estado.ven,.estado.anu,.estado.baj,.estado.cor { background:#fee4e2; color:var(--rojo); }

/* Mensajes temporales de éxito y error. */
.alerta { padding:13px 16px; border-radius:8px; margin-bottom:18px; background:#dcf5ec; color:var(--verde); }
.alerta.error { background:#fee4e2; color:var(--rojo); }

/* Formulario pequeño que aparece dentro de la tabla de facturas. */
details { margin-top:8px; }
summary { cursor:pointer; color:var(--azul2); font-weight:bold; }
.pago-mini { display:grid; grid-template-columns:1fr 1fr; gap:6px; min-width:230px; }
.pago-mini button { grid-column:1 / -1; }

/* Distribución de los formularios de usuarios y permisos. */
.usuarios-layout>div { display:grid; gap:20px; }
.catalogos label { display:block; margin-top:12px; font-size:13px; font-weight:bold; }
.ayuda-form { color:var(--muted); margin-top:0; }
.perfil-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:10px; }
.perfil-card { display:block; border:1px solid #d8e7f0; border-left:5px solid var(--verde); border-radius:10px; padding:12px; background:linear-gradient(135deg,#ffffff,#f3fbff); color:var(--azul); text-decoration:none; box-shadow:0 8px 22px rgba(18,60,105,.06); }
.perfil-card:hover { transform:translateY(-1px); border-color:var(--celeste); }
.perfil-card strong,.perfil-card small { display:block; }
.perfil-card small { margin-top:5px; color:var(--muted); line-height:1.35; }
.rol-editor { display:grid; grid-template-columns:1fr 105px; gap:8px; border:1px solid var(--borde); border-radius:10px; padding:10px; margin-top:10px; background:#fbfdff; }
.rol-editor .completo,.rol-editor .acciones-rol { grid-column:1 / -1; }
.acciones-rol { display:flex; gap:8px; justify-content:flex-end; align-items:center; }
.editar-usuario { display:grid; grid-template-columns:1fr 1fr 1.3fr auto; gap:7px; align-items:end; }
.editar-usuario input,.editar-usuario select,.editar-usuario button { margin:0; min-width:120px; }
.selector-rol { max-width:320px; margin-bottom:18px; }
.selector-rol label { font-size:13px; font-weight:bold; }
.lista-permisos { display:grid; grid-template-columns:repeat(2,minmax(220px,1fr)); gap:10px; margin-bottom:16px; }
.lista-permisos label { display:flex; align-items:flex-start; gap:9px; border:1px solid var(--borde); border-radius:8px; padding:11px; cursor:pointer; }
.lista-permisos input { width:auto; margin:3px 0 0; }
.lista-permisos span,.lista-permisos small { display:block; }
.lista-permisos small { margin-top:4px; }

/* Formato de factura y contrato imprimibles. */
.acciones-print { display:flex; justify-content:flex-end; gap:10px; margin-bottom:15px; }
.acciones-print button,.acciones-print .boton { width:auto; margin:0; padding:10px 18px; }
.documento { max-width:900px; margin:auto; padding:42px; }
.doc-cabecera,.doc-datos { display:flex; justify-content:space-between; gap:30px; }
.doc-cabecera>div:last-child { text-align:right; font-size:18px; }
.doc-datos p:last-child { text-align:right; }
.totales { margin-left:auto; max-width:280px; margin-top:20px; }
.totales p { display:flex; justify-content:space-between; border-bottom:1px solid var(--borde); padding:8px; }
.totales .total { font-size:19px; color:var(--azul); }
.contrato { line-height:1.7; }
.contrato h2,.centrado { text-align:center; }
.contrato .clausulas-contrato p,.documento-impresion .clausulas-contrato p { text-align:justify; }
.firmas { display:flex; justify-content:space-around; text-align:center; margin-top:80px; }
.encabezado-print { display:flex; justify-content:space-between; }
.reporte h2 { margin-top:28px; }

/* Pantalla independiente para iniciar sesión. */
.login-body { min-height:100vh; display:grid; place-items:center; background:linear-gradient(135deg,#0c2d50,#1f5f99); padding:20px; }
.login-card { width:min(420px,100%); background:white; padding:38px; border-radius:16px; box-shadow:0 18px 50px rgba(0,0,0,.25); }
.login-card .marca { color:var(--azul); text-align:center; }
.login-card .subtitulo { color:#718096; text-align:center; margin:8px 0 26px; }
.login-card label { display:block; margin-top:14px; font-weight:bold; font-size:13px; }
.login-card button { margin:20px 0 12px; }
.login-card small { display:block; text-align:center; }
.login-footer{display:block;margin:18px -8px -12px;padding-top:14px;border-top:1px solid #e4edf4;text-align:center;font-size:11px}

/* Presentación del módulo que administra varios routers y nodos. */
.cabecera-modulo { display:grid; gap:18px; }
.nuevo-router summary { color:var(--verde); margin-bottom:16px; }
.router-form { border-top:1px solid var(--borde); padding-top:18px; }
.acciones-form { display:flex; flex-wrap:wrap; gap:10px; }
.acciones-form button { width:auto; }
.tabla-scroll { overflow-x:auto; }
.estado.router-on { background:#dcf5ec; color:var(--verde); }
.estado.router-off { background:#fee4e2; color:var(--rojo); }
.estado.router-nuevo { background:#e8edf2; color:#52606d; }
button.pequeno { width:auto; padding:8px 12px; font-size:12px; }
.boton.pequeno { width:auto; margin:0; padding:8px 12px; font-size:12px; }.acciones-crud { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }.acciones-crud form { margin:0; }.acciones-crud button { margin:0; }.boton.editar { background:#14a4d8; }.boton-gris { width:auto; margin:0; background:#64748b; }.boton-gris:hover { background:#475569; }button.peligro { background:#e84855; }button.peligro:hover { background:#c92f3d; }.editor-router { border-top:4px solid #14a4d8; }

/* El plan avanzado separa los conceptos para reducir errores de configuración. */
.plan-avanzado .grupo-plan { padding:10px 12px; background:#eef6fb; border-radius:8px; color:var(--azul); }
.plan-avanzado .grupo-plan strong,.plan-avanzado .grupo-plan small { display:block; }
.plan-avanzado .grupo-plan small { margin-top:4px; font-weight:normal; }
.configuracion-avanzada { border:1px solid var(--borde); border-radius:8px; padding:12px; }
.configuracion-avanzada summary { margin-bottom:12px; }
.catalogo-planes { margin-top:20px; }
.catalogo-planes code { display:block; min-width:310px; white-space:normal; background:#112b46; color:#eaf8f8; padding:9px; border-radius:6px; font-size:11px; }

/* Presentación inicial de rutas listas para desarrollarse en próximas etapas. */
.modulo-preparado { max-width:820px; min-height:320px; display:flex; flex-direction:column; align-items:center; justify-content:center; margin:35px auto; text-align:center; background:linear-gradient(145deg,#fff,#f0f9ff); }
.modulo-preparado .modulo-icono { display:grid; width:72px; height:72px; margin-bottom:18px; place-items:center; border-radius:22px; color:white; background:linear-gradient(135deg,#1f75b5,#16a394); font-size:32px; box-shadow:0 12px 25px rgba(31,117,181,.22); }
.modulo-preparado h2 { margin:7px 0 10px; font-size:27px; }
.modulo-preparado>p { max-width:610px; color:#64748b; line-height:1.6; }
.nota-etapa { max-width:620px; margin-top:12px; padding:13px 16px; border-radius:10px; background:#e6f7f4; color:#147d64; font-size:13px; }
.cliente-contexto { display:grid; gap:4px; min-width:min(100%,430px); margin:8px 0; padding:14px 18px; border:1px solid #d6e7f1; border-radius:12px; background:white; text-align:left; box-shadow:0 5px 15px rgba(18,60,105,.06); }.cliente-contexto span { color:#16a394; font-size:10px; font-weight:800; text-transform:uppercase; }.cliente-contexto strong { color:#173f68; }.cliente-contexto small { color:#77879a; }.volver-clientes { width:auto; margin-top:15px; }

/* Dashboard ejecutivo: colores consistentes, buena lectura y adaptación móvil. */
.portada-dashboard { margin-bottom:18px; padding:18px 22px; border-radius:14px; background:white; border:1px solid var(--borde); box-shadow:0 6px 20px rgba(18,60,105,.06); }
.titulo-dashboard { display:flex; align-items:center; gap:13px; }.titulo-dashboard h2 { margin:0 0 3px; color:#173f68; font-size:25px; }.titulo-dashboard p { margin:0; color:#8492a6; font-size:12px; }
.icono-dashboard { display:grid; width:46px; height:46px; place-items:center; border-radius:14px; color:white; background:linear-gradient(135deg,#20bf75,#12a4b5); font-size:23px; }
.logo-dashboard { display:grid; width:76px; height:58px; flex:0 0 76px; place-items:center; overflow:hidden; padding:5px; border:1px solid #dce8ef; border-radius:14px; background:linear-gradient(145deg,#ffffff,#f2fbf9); box-shadow:0 7px 18px rgba(18,60,105,.10); }.logo-dashboard img { display:block; width:100%; height:100%; object-fit:contain; }
.dashboard-anuncios{display:grid;gap:8px;margin:0 0 18px}.dashboard-anuncio{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:15px 18px;border:1px solid #bfe2f1;border-left:5px solid #1f91c4;border-radius:8px;background:#dff3fb;color:#185477;box-shadow:0 5px 14px rgba(18,60,105,.05)}.dashboard-anuncio strong{display:block;margin-bottom:4px;color:#155377;font-size:14px}.dashboard-anuncio p{margin:0;color:#245f7b;font-size:13px;line-height:1.4}.dashboard-anuncio a{display:inline-block;margin-top:5px;color:#123c69;font-weight:800}.dashboard-anuncio form{margin:0}.dashboard-anuncio button{display:grid;flex:0 0 24px;width:24px;height:24px;margin:0;padding:0;place-items:center;border:0;border-radius:50%;color:#76aabd;background:transparent;font-size:20px;font-weight:900;line-height:1;cursor:pointer}.dashboard-anuncio button:hover{color:#123c69;background:rgba(255,255,255,.55)}.dashboard-anuncio.exito{border-color:#bdebdc;border-left-color:#12a98b;background:#e0f8ef;color:#17684f}.dashboard-anuncio.exito strong,.dashboard-anuncio.exito p{color:#17684f}.dashboard-anuncio.alerta{border-color:#ffe0a8;border-left-color:#f59e0b;background:#fff5dd;color:#80590d}.dashboard-anuncio.alerta strong,.dashboard-anuncio.alerta p{color:#80590d}.dashboard-anuncio.error{border-color:#ffc6ca;border-left-color:#ef5665;background:#ffe5e8;color:#8d2631}.dashboard-anuncio.error strong,.dashboard-anuncio.error p{color:#8d2631}
.dashboard-anuncios-admin-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;padding:24px 26px;border-radius:16px;color:white;background:linear-gradient(135deg,#123c69 0%,#0c82aa 48%,#12a98b 100%);box-shadow:0 16px 34px rgba(18,60,105,.16)}.dashboard-anuncios-admin-hero span{display:block;margin-bottom:7px;color:#8ff8ea;font-size:11px;font-weight:900;letter-spacing:.12em}.dashboard-anuncios-admin-hero h2{margin:0;font-size:25px}.dashboard-anuncios-admin-hero p{margin:5px 0 0;color:#d8fff5}.dashboard-anuncios-admin-hero .boton{width:auto;margin:0;background:#fff;color:#123c69}.anuncio-editor-panel,.anuncio-preview-panel{border-top:4px solid #12a98b}.anuncio-preview-panel .dashboard-anuncio{margin-top:10px}.anuncio-preview-panel .dashboard-anuncio button{pointer-events:none}
.resumen-operativo { display:grid; grid-template-columns:repeat(3,minmax(240px,1fr)); gap:22px; margin-bottom:20px; }
.grupo-resumen h3 { display:flex; align-items:center; gap:8px; margin:0 0 10px; color:#263544; font-size:17px; }.grupo-icono { display:grid; width:32px; height:32px; place-items:center; border-radius:10px; color:white; font-size:17px; box-shadow:0 6px 13px rgba(20,50,80,.16); }.grupo-icono.verde { background:linear-gradient(135deg,#28c979,#13965b); }.grupo-icono.celeste { background:linear-gradient(135deg,#22bfee,#087fc4); }.grupo-icono.morado { background:linear-gradient(135deg,#9a7bff,#6245cf); }
.fila-resumen { display:flex; align-items:center; justify-content:space-between; min-height:74px; margin-bottom:9px; padding:12px 14px; border:1px solid #d9e2ec; border-left:5px solid currentColor; border-radius:11px; background:white; box-shadow:0 4px 12px rgba(18,60,105,.055); transition:transform .18s ease,box-shadow .18s ease,filter .18s ease; }.fila-resumen:hover { transform:translateY(-2px); filter:saturate(1.08); box-shadow:0 9px 22px rgba(18,60,105,.13); }
.fila-resumen strong,.fila-resumen small { display:block; }.fila-resumen strong { color:currentColor; font-size:21px; }.fila-resumen small { margin-top:5px; color:#68798b; font-size:10px; font-weight:bold; }.fila-icono { display:grid; width:42px; height:42px; place-items:center; border-radius:13px; color:white; font-size:20px; box-shadow:0 7px 15px rgba(30,60,90,.14); }.fondo-verde { background:linear-gradient(135deg,#2dd27e,#14a862); }.fondo-naranja { background:linear-gradient(135deg,#ffbd42,#f08213); }.fondo-celeste { background:linear-gradient(135deg,#2ec8f3,#078ed0); }.fondo-rojo { background:linear-gradient(135deg,#ff7180,#e83a4a); }
.color-verde { color:#169e5b; background:linear-gradient(115deg,#ffffff 0%,#f1fcf6 48%,#dff8eb 100%); border-color:#cceedd; }.color-naranja { color:#e8890b; background:linear-gradient(115deg,#ffffff 0%,#fff9ee 48%,#ffedca 100%); border-color:#f6dfb7; }.color-celeste { color:#078fc4; background:linear-gradient(115deg,#ffffff 0%,#f0faff 48%,#dceffc 100%); border-color:#c9e5f4; }.color-rojo { color:#df3e4a; background:linear-gradient(115deg,#ffffff 0%,#fff4f5 48%,#ffe0e4 100%); border-color:#f5cbd0; }
.bloque-trafico { padding:19px 20px; }.encabezado-trafico { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:14px; }.encabezado-trafico h3 { margin:0 0 3px; }.encabezado-trafico small { color:#8492a6; }.controles-trafico { display:flex; align-items:center; gap:10px; }.controles-trafico select { width:auto; min-width:190px; padding:7px 30px 7px 10px; }
.trafico-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.trafico-item { display:flex; align-items:center; justify-content:space-between; min-height:82px; padding:15px 18px; border-radius:11px; background:#f8fbfd; border:1px solid #dbe5ee; }.trafico-item>span { font-size:30px; }.trafico-item div { text-align:right; }.trafico-item strong,.trafico-item small { display:block; }.trafico-item strong { font-size:22px; color:#0aa8df; }.trafico-item small { margin-top:5px; font-size:10px; color:#64748b; }.trafico-item.descarga>span { color:#09a9df; }.trafico-item.subida>span { color:#f59d19; }
.detalle-trafico-routers { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:8px; margin-top:10px; }.router-trafico { display:flex; align-items:center; gap:9px; min-width:0; padding:8px 11px; border:1px solid #e1e8ef; border-radius:9px; background:#fff; }.router-trafico>i { width:9px; height:9px; border-radius:50%; background:#f59d19; box-shadow:0 0 0 3px #fff0d7; }.router-trafico.en-linea>i { background:#22b973; box-shadow:0 0 0 3px #dcf7eb; }.router-trafico>span { min-width:0; flex:1; }.router-trafico b,.router-trafico small { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.router-trafico b { color:#183b5d; font-size:12px; }.router-trafico small { color:#8795a7; font-size:9px; }.router-trafico>strong { color:#4f6275; font-size:11px; white-space:nowrap; }
.grafica-operacion { margin-top:20px; padding:17px 20px 12px; }.cabecera-grafica-operacion { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:6px; }.cabecera-grafica-operacion>div { display:flex; align-items:center; gap:11px; }.cabecera-grafica-operacion h3 { margin:0 0 3px; }.cabecera-grafica-operacion small { color:#8190a2; }.icono-seccion { display:grid; width:42px; height:42px; place-items:center; border-radius:13px; background:linear-gradient(135deg,#7658e6,#23a9e1); font-size:22px; box-shadow:0 8px 18px rgba(104,79,216,.22); }.grafica-operacion canvas { display:block; width:100%; max-width:100%; height:220px !important; min-height:0; }.leyenda-financiera { display:flex; gap:14px; color:#607286; font-size:11px; }.leyenda-financiera span { display:flex; align-items:center; gap:6px; }.punto-ingreso,.punto-gasto { width:10px; height:10px; border-radius:3px; }.punto-ingreso { background:#1fa774; }.punto-gasto { background:#e87817; }.aviso-gastos { margin:2px 0 0; color:#a66a12; font-size:10px; text-align:center; }
.dashboard-hero { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:18px; padding:24px 28px; border-radius:18px; color:white; background:linear-gradient(120deg,#123c69 0%,#176b87 55%,#19a998 100%); box-shadow:0 14px 34px rgba(17,60,105,.18); }

/* Lista de clientes: cabecera, filtros y barra operativa inspirada en un NOC. */
.clientes-cabecera { display:flex; align-items:flex-start; justify-content:space-between; gap:25px; margin-bottom:16px; padding:22px 24px; border-radius:16px; color:white; background:linear-gradient(120deg,#123c69,#176f91 58%,#17a68e); box-shadow:0 12px 28px rgba(18,60,105,.15); }.clientes-cabecera h2 { margin:4px 0; color:white; font-size:26px; }.clientes-cabecera p { margin:0; color:#d9f4f3; }.clientes-cabecera .eyebrow { color:#8ff0dc; }.nuevo-cliente { width:min(700px,58%); }.nuevo-cliente>summary { padding:11px 15px; border-radius:9px; background:#25bf79; color:white; font-weight:bold; text-align:center; cursor:pointer; list-style:none; }.nuevo-cliente[open] { padding:17px; border-radius:12px; background:white; color:#263544; }.nuevo-cliente[open]>summary { margin-bottom:15px; }.cliente-editor { margin-bottom:16px; border-top:4px solid #16a394; }.clientes-operacion { padding:0; overflow:hidden; }.filtros-clientes { display:grid; grid-template-columns:minmax(260px,2fr) minmax(150px,1fr) auto auto; gap:10px; align-items:end; padding:16px 18px; background:#f8fbfd; border-bottom:1px solid var(--borde); }.filtros-clientes label { color:#536579; font-size:12px; font-weight:bold; }.filtros-clientes button,.filtros-clientes .boton { width:auto; min-width:95px; margin-top:6px; }
.barra-acciones-clientes { display:flex; align-items:stretch; gap:6px; padding:11px 14px; overflow-x:auto; border-bottom:1px solid var(--borde); background:white; }.accion-cliente { display:inline-flex; flex:0 0 auto; align-items:center; gap:6px; width:auto; min-height:39px; margin:0; padding:9px 11px; border:0; border-radius:8px; color:white; background:#1688bd; font-size:12px; font-weight:bold; text-decoration:none; box-shadow:0 3px 8px rgba(20,60,90,.12); }.accion-cliente:hover { filter:brightness(.94); transform:translateY(-1px); }.accion-cliente.ayuda,.accion-cliente.activar { background:#20a96b; }.accion-cliente.factura { background:#6b55d9; }.accion-cliente.desactivar { background:#ee8a18; }.accion-cliente.editar-cliente { background:#1688bd; }.accion-cliente.ticket { background:#e65462; }.accion-cliente.trafico { background:#0aa8df; }.accion-cliente.ping { background:#18a88e; }.accion-cliente.onu { background:#64748b; }.accion-cliente.television { background:#7c55d9; }.accion-cliente.telefonia { background:#17a875; }.accion-cliente.herramientas { background:#344f6d; }.accion-cliente.ia { background:linear-gradient(135deg,#6d4be7,#c246d4); }.seleccion-cliente { display:flex; justify-content:space-between; gap:15px; padding:9px 18px; color:#617286; background:#f5f8fb; font-size:11px; }.seleccion-cliente strong { color:#17836c; }.tabla-clientes tbody tr { cursor:pointer; }.tabla-clientes tbody tr.seleccionada td { background:#dcecff; }.tabla-clientes input[type=checkbox] { width:auto; margin:0; accent-color:#20a96b; } .tabla-clientes th:first-child,.tabla-clientes td:first-child { width:118px; text-align:left; white-space:nowrap; }.contador-ticket { display:inline-grid; min-width:25px; min-height:25px; place-items:center; border-radius:999px; color:#6b55d9; background:#eeeaff; font-size:11px; font-weight:bold; }
.menu-herramientas-cliente{position:relative;flex:0 0 auto}.menu-herramientas-cliente summary{list-style:none;cursor:pointer}.menu-herramientas-cliente summary::-webkit-details-marker{display:none}.desplegable-herramientas{position:fixed;z-index:40;top:138px;right:28px;width:min(430px,calc(100vw - 56px));max-height:calc(100vh - 170px);padding:8px;overflow:auto;border:1px solid #cbd7df;border-radius:10px;background:#fff;box-shadow:0 16px 42px rgba(20,45,70,.25)}.desplegable-herramientas button{display:flex;align-items:center;gap:10px;width:100%;margin:0;padding:10px 12px;border:0;border-radius:6px;color:#293744;background:#fff;text-align:left;font-weight:600}.desplegable-herramientas button:hover{background:#eaf6f2;color:#117a5d}.desplegable-herramientas b{width:22px;text-align:center}.dialogo-ping-cliente{width:min(720px,calc(100% - 28px));padding:0;border:0;border-radius:14px;box-shadow:0 25px 80px rgba(8,31,52,.4)}.dialogo-ping-cliente::backdrop{background:rgba(8,25,40,.66)}.dialogo-ping-cliente .cabecera-dialogo{padding:16px 18px;color:white;background:linear-gradient(135deg,#0b8f73,#16b88d)}.dialogo-ping-cliente .cabecera-dialogo h3{margin:0}.ping-resumen{display:flex;justify-content:space-between;gap:15px;padding:13px 18px;background:#edf7f4}.ping-resumen strong.en-linea{color:#0b9b5d}.ping-resumen strong.fuera-linea{color:#d4444f}.dialogo-ping-cliente pre{min-height:280px;max-height:380px;margin:0;padding:18px;overflow:auto;color:#b8ffce;background:#0d1822;font:13px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace}.dialogo-ping-cliente .acciones-dialogo{padding:13px 18px}.dialogo-ping-cliente .acciones-dialogo button{width:auto}.cabecera-servicio-adicional,.herramientas-cliente-cabecera,.ia-cliente-cabecera{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:4px solid #18a17e}.cabecera-servicio-adicional h2,.herramientas-cliente-cabecera h2,.ia-cliente-cabecera h2{margin:5px 0}.cabecera-servicio-adicional p,.herramientas-cliente-cabecera p,.ia-cliente-cabecera p{margin:0;color:#65778a}.cabecera-servicio-adicional .boton,.herramientas-cliente-cabecera .boton,.ia-cliente-cabecera .boton{width:auto;margin:0}.rejilla-herramientas{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:9px}.rejilla-herramientas article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border:1px solid #d9e3ea;border-radius:10px}.rejilla-herramientas strong,.rejilla-herramientas small{display:block}.rejilla-herramientas small{margin-top:4px;color:#718096}.rejilla-herramientas .boton,.rejilla-herramientas button{width:auto;margin:0}.herramienta-no-disponible{padding:5px 8px;border-radius:6px;color:#8a5a00;background:#fff2cc;font-size:10px;font-weight:bold}
.ia-que-analiza h2{margin-top:0}.ia-bloque{margin:14px 0;padding:13px 15px;border:1px solid #d6dee5;border-left:4px solid #21b36f;background:#fbfcfd}.ia-bloque.valor{border-left-color:#36b9d7}.ia-bloque.riesgo{border-left-color:#ee5b5b}.ia-bloque h3{margin:0 0 10px}.ia-bloque h3 small{color:#7a8793;font-size:10px}.ia-fuentes{display:flex;flex-wrap:wrap;gap:18px;color:#26785d}.medidor-riesgo{height:12px;overflow:hidden;border-radius:999px;background:#e7edf1}.medidor-riesgo span{display:block;height:100%;background:linear-gradient(90deg,#ef5555,#f5a524,#22ae72)}.riesgo-alto{color:#d9414d}.riesgo-medio{color:#d8860b}.riesgo-bajo{color:#118759}.resultado-ia{border-top:4px solid #714ddd}.resultado-ia li{margin:8px 0}.estado-validacion{padding:11px;border-radius:8px}.estado-validacion.correcto{color:#14764f;background:#e1f7eb}.estado-validacion.error{color:#a82d38;background:#ffe4e7}.form-ia-cliente{display:grid;gap:14px}.form-ia-cliente fieldset{padding:16px;border:1px solid #d7e0e6}.form-ia-cliente legend{padding:0 7px;font-weight:bold}.form-ia-cliente .check{display:flex;align-items:center;gap:8px}.form-ia-cliente .check input{width:auto;margin:0}
@media(max-width:700px){.desplegable-herramientas{position:fixed;inset:70px 12px auto;width:auto;max-height:70vh}.ping-resumen,.cabecera-servicio-adicional,.herramientas-cliente-cabecera,.ia-cliente-cabecera{align-items:stretch;flex-direction:column}.rejilla-herramientas{grid-template-columns:1fr}}
.barra-acciones-clientes{overflow:visible;flex-wrap:wrap}
.acciones-masivas-clientes { display:flex; align-items:end; gap:12px; padding:14px 18px; border-bottom:1px solid var(--borde); background:#f7fbf8; }.acciones-masivas-clientes>label { flex:1; max-width:650px; margin:0; color:#45586b; font-size:12px; font-weight:bold; }.acciones-masivas-clientes select { margin-top:5px; }.acciones-masivas-clientes>button { width:auto; min-width:110px; margin:0; }.acciones-masivas-clientes>strong { align-self:center; color:#17836c; white-space:nowrap; }#dialogo-accion-masiva { width:min(620px,calc(100% - 30px)); padding:0; border:0; border-radius:14px; box-shadow:0 24px 70px rgba(14,35,52,.32); }#dialogo-accion-masiva::backdrop { background:rgba(13,30,45,.58); }.cabecera-dialogo { display:flex; justify-content:space-between; align-items:center; padding:14px 18px; color:white; background:#176f91; }.cabecera-dialogo h3 { margin:0; }.cabecera-dialogo button { width:auto; margin:0; padding:2px 10px; background:transparent; font-size:25px; }#dialogo-accion-masiva>p,#dialogo-accion-masiva>div:not(.cabecera-dialogo),#dialogo-accion-masiva>label { margin:14px 18px; }#dialogo-accion-masiva [hidden] { display:none!important; }.acciones-dialogo { display:flex; justify-content:flex-end; gap:9px; padding-top:12px; border-top:1px solid var(--borde); }.acciones-dialogo button { width:auto; margin:0; }.tabla-clientes input[type=checkbox] { width:auto; margin:0; accent-color:#20a96b; }

/* Ficha integral del abonado: cuatro pestañas compactas y utilizables. */
.nuevo-cliente-boton { width:auto; padding:12px 17px; color:white; background:#25bf79; white-space:nowrap; }
.ficha-cliente { margin-bottom:18px; padding:0; overflow:hidden; border-top:4px solid #18ad83; }
.ficha-cabecera { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 22px; background:linear-gradient(90deg,#f7fffc,#f3f8ff); border-bottom:1px solid #dbe6ef; }.ficha-cabecera>div { display:flex; align-items:center; gap:13px; }.ficha-cabecera h2 { margin:2px 0; color:#173f68; }.ficha-cabecera p { margin:0; color:#718297; font-size:12px; }.ficha-icono { display:grid; width:45px; height:45px; place-items:center; border-radius:13px; color:white; background:linear-gradient(135deg,#20bf75,#0c9fd1); font-size:21px; }
.tabs-ficha { display:grid; grid-template-columns:repeat(5,max-content) 1fr; background:#f6f8fb; }.tabs-ficha>input[type=radio] { position:absolute; opacity:0; pointer-events:none; }.tabs-ficha>label { padding:13px 17px; border-right:1px solid #dce4ec; border-bottom:1px solid #dce4ec; color:#526477; background:#fff; font-size:12px; font-weight:750; cursor:pointer; }.tabs-ficha>input:checked+label { color:#138a70; border-top:3px solid #21bd79; border-bottom-color:#fff; background:#fff; }
.contenido-tab { display:none; grid-column:1/-1; padding:22px; background:#fff; }#tab-conexion:checked~.conexion-tab,#tab-persona:checked~.persona-tab,#tab-avanzada:checked~.avanzada-tab,#tab-facturacion:checked~.facturacion-tab,#tab-fiscal:checked~.fiscal-tab { display:block; }
.titulo-seccion { display:flex; align-items:center; gap:12px; margin-bottom:19px; }.titulo-seccion>span { display:grid; width:39px; height:39px; place-items:center; border-radius:11px; background:#e4f8f1; font-size:19px; }.titulo-seccion h3 { margin:0 0 3px; color:#24435f; }.titulo-seccion p { margin:0; color:#7b8b9d; font-size:11px; }.form-grid.tres-columnas { grid-template-columns:repeat(3,minmax(0,1fr)); }.form-grid.tres-columnas .completo { grid-column:1/-1; }.subtitulo-ficha { margin:22px 0 12px; padding:10px 12px; border-radius:8px; color:#25506f; background:#f0f6fa; }.switch-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }.switch-label { display:flex!important; align-items:center; justify-content:space-between; gap:14px; min-height:47px; padding:10px 13px; border:1px solid #dce5ed; border-radius:8px; background:#f9fbfc; }.switch-label input { width:19px!important; height:19px; margin:0; accent-color:#20ae78; }.acciones-ficha { display:flex; gap:10px; padding:15px 22px; border-top:1px solid #dce5ed; background:#f7fafc; }.acciones-ficha button,.acciones-ficha .boton { width:auto; }
.expediente-operativo { padding:0; overflow:hidden; }.expediente-titulo { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 22px; border-bottom:1px solid #dce5ed; }.expediente-titulo h2 { margin:3px 0 0; color:#183e64; }
.tabs-expediente { display:grid; grid-template-columns:repeat(8,max-content) 1fr; background:#f7f9fb; }.tabs-expediente>input { position:absolute; opacity:0; pointer-events:none; }.tabs-expediente>label { padding:12px 14px; border-right:1px solid #dbe4ec; border-bottom:1px solid #dbe4ec; color:#536579; background:white; font-size:11px; font-weight:bold; cursor:pointer; white-space:nowrap; }.tabs-expediente>label b { display:inline-grid; min-width:20px; min-height:20px; margin-left:4px; place-items:center; border-radius:50%; color:#6750cc; background:#eeeaff; font-size:9px; }.tabs-expediente>input:checked+label { color:#13876e; border-top:3px solid #20bd79; border-bottom-color:white; }.exp-panel { display:none; grid-column:1/-1; padding:18px; background:white; }#exp-servicios:checked~.exp-servicios-panel,#exp-contratos:checked~.exp-contratos-panel,#exp-info:checked~.exp-info-panel,#exp-pagos:checked~.exp-pagos-panel,#exp-tickets:checked~.exp-tickets-panel,#exp-facturas:checked~.exp-facturas-panel,#exp-archivos:checked~.exp-archivos-panel,#exp-log:checked~.exp-log-panel { display:block; }
.subtabs-visuales { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:14px; }.subtabs-visuales span { padding:8px 11px; border-radius:7px; color:#64748b; background:#f2f5f8; font-size:11px; }.subtabs-visuales span.activo { color:white; background:#18a77e; }.datos-resumen { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; }.datos-resumen article { min-height:78px; padding:14px; border:1px solid #dce5ed; border-radius:10px; background:#fafcfd; }.datos-resumen span,.datos-resumen strong,.datos-resumen small { display:block; }.datos-resumen span { color:#7b8b9b; font-size:10px; text-transform:uppercase; }.datos-resumen strong { margin-top:6px; color:#214561; }.datos-resumen small { margin-top:4px; color:#8493a4; }.accion-panel { display:flex; justify-content:flex-end; margin-bottom:12px; }.accion-panel .boton { width:auto; }.aviso-modulo { margin-bottom:12px; padding:11px 14px; border-radius:8px; color:#326987; background:#eaf6fb; font-size:12px; }
.titulo-estado-cuenta { margin:22px 0 11px; color:#244660; }.cuenta-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; }.cuenta-grid article { padding:15px; border:1px solid #dce5ed; border-radius:10px; background:#fff; box-shadow:0 4px 12px rgba(25,60,90,.05); }.cuenta-grid span,.cuenta-grid strong { display:block; }.cuenta-grid span { color:#78899b; font-size:10px; text-transform:uppercase; }.cuenta-grid strong { margin-top:6px; color:#244660; font-size:18px; }.cuenta-grid .positivo { color:#17a673; }.cuenta-grid .advertencia { color:#e28a12; }.cuenta-grid .negativo { color:#df4c58; }
.dashboard-hero h2 { margin:4px 0; font-size:28px; color:white; }
.dashboard-hero p { margin:0; color:#d9f6f4; }
.eyebrow { display:block; color:#16a394; font-size:11px; font-weight:800; letter-spacing:.12em; }
.dashboard-hero .eyebrow { color:#a7f3e9; }
.filtro-anio { min-width:130px; }
.filtro-anio label { color:white; font-size:12px; font-weight:bold; }
.filtro-anio select { background:rgba(255,255,255,.96); color:#123c69; }
.kpi-grid { display:grid; grid-template-columns:repeat(3,minmax(210px,1fr)); gap:15px; margin-bottom:18px; }
.kpi { position:relative; display:flex; align-items:center; gap:14px; min-height:112px; padding:18px; overflow:hidden; border:1px solid var(--borde); border-radius:16px; background:white; box-shadow:0 7px 22px rgba(18,60,105,.07); }
.kpi::after { content:""; position:absolute; right:-25px; bottom:-34px; width:90px; height:90px; border-radius:50%; background:currentColor; opacity:.08; }
.kpi-icono { display:grid; flex:0 0 46px; height:46px; place-items:center; border-radius:13px; color:white; background:currentColor; font-size:20px; }
.kpi div { min-width:0; }.kpi small,.kpi strong,.kpi em { display:block; }.kpi small { color:#64748b; font-weight:700; }.kpi strong { margin:5px 0 3px; color:#102f50; font-size:23px; }.kpi em { color:#94a3b8; font-size:11px; font-style:normal; }
.kpi-verde { color:#10b981; }.kpi-rojo { color:#ef4444; }.kpi-morado { color:#7c3aed; }.kpi-naranja { color:#f59e0b; }.kpi-azul { color:#2684d8; }.kpi-amarillo { color:#eab308; }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(300px,1fr); gap:18px; align-items:start; }
.grafica-card { min-width:0; padding:20px; }.grafica-ancha { grid-column:auto; }
.grafica-titulo { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:12px; }.grafica-titulo h2 { margin:4px 0 0; }.grafica-titulo p { margin:4px 0 0; color:#64748b; }
.grafica-card canvas { display:block; width:100%; max-width:100%; }
.leyenda { display:flex; flex-wrap:wrap; gap:12px; color:#64748b; font-size:12px; }.leyenda span { white-space:nowrap; }.punto { display:inline-block; width:9px; height:9px; margin-right:5px; border-radius:50%; }.punto.verde { background:#10b981; }.punto.rojo { background:#ef4444; }
.chip { display:inline-block; padding:6px 10px; border-radius:999px; background:#e8f5ff; color:#2472ad; font-size:11px; font-weight:700; white-space:nowrap; }
.ayuda-grafica { margin:8px 0 0; color:#8492a6; font-size:11px; }
.registrar-gasto h2 { margin:5px 0; }.registrar-gasto>p { color:#64748b; font-size:13px; }

/* Catálogo independiente de planes, inspirado en una navegación por tecnologías. */
.planes-encabezado { display:grid; grid-template-columns:1fr; gap:18px; margin-bottom:16px; padding:24px; border-radius:16px; color:white; background:linear-gradient(120deg,#183b66,#1d5f8f 52%,#17a68e); }
.planes-encabezado>div:first-child { max-width:980px; }
.planes-encabezado h2 { margin:5px 0; color:white; font-size:27px; }.planes-encabezado p { margin:0; color:#d9ecfa; }.planes-encabezado .eyebrow { color:#6ee7d4; }
.nuevo-plan { width:100%; margin:0; }.nuevo-plan>summary { padding:12px 16px; border-radius:9px; background:#13a889; color:white; text-align:center; }.nuevo-plan[open] { padding:18px; border-radius:12px; background:white; color:#243b53; }.nuevo-plan[open]>summary { margin-bottom:16px; }
.plan-avanzado { display:grid; gap:14px; }
.plan-bloque { padding:16px; border:1px solid #dbe5ed; border-radius:10px; background:#fbfdff; }
.plan-bloque-comercial { border-top:4px solid #13a889; }
.plan-bloque-reuso { border-top:4px solid #f59e0b; }
.plan-bloque-rafaga { border-top:4px solid #0ea5e9; }
.plan-bloque-mikrotik { border-top:4px solid #6366f1; }
.plan-bloque-titulo { display:flex; align-items:center; gap:11px; margin-bottom:13px; }
.plan-bloque-titulo span { display:grid; width:31px; height:31px; place-items:center; border-radius:9px; color:white; background:#123c69; font-weight:800; }
.plan-bloque-titulo strong { display:block; color:#163d63; font-size:16px; }
.plan-bloque-titulo small { display:block; margin-top:2px; color:#6b7d90; font-weight:500; }
.plan-dos-columnas { display:grid; grid-template-columns:repeat(2,minmax(320px,1fr)); gap:14px; align-items:start; }
.plan-avanzado .form-grid.una-columna { grid-template-columns:1fr; }
.nota-plan { padding:11px 12px; border-radius:8px; color:#385269; background:#edf6fb; font-size:12px; line-height:1.45; }
.plan-bloque-reuso .nota-plan { background:#fff7e6; color:#73531b; }
.plan-bloque-rafaga .nota-plan { background:#ecf8ff; }
.acciones-plan { display:flex; gap:10px; justify-content:flex-end; padding-top:4px; }
.acciones-plan button,.acciones-plan .boton { width:auto; margin:0; }
.tabs-planes { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }.tabs-planes a { padding:10px 16px; border:1px solid #d8e3ed; border-radius:9px; background:white; color:#52657a; font-weight:bold; text-decoration:none; }.tabs-planes a.activo { border-color:#16a394; color:white; background:#16a394; }

@media (min-width:1400px) { .kpi-grid { grid-template-columns:repeat(6,1fr); }.kpi { min-width:0; }.kpi strong { font-size:19px; } }

/* Ajustes para pantallas medianas. */
@media (max-width:1100px) { .tarjetas,.kpi-grid,.resumen-operativo { grid-template-columns:repeat(2,1fr); } .dos-columnas,.dashboard-grid,.plan-dos-columnas { grid-template-columns:1fr; } .nuevo-plan { width:100%; }.clientes-cabecera { flex-direction:column; }.nuevo-cliente { width:100%; }.filtros-clientes { grid-template-columns:1fr 1fr; }.form-grid.tres-columnas,.switch-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.tabs-ficha { grid-template-columns:repeat(2,1fr); }.tabs-ficha>label { white-space:nowrap; }.tabs-expediente { display:flex; overflow-x:auto; }.exp-panel { flex:0 0 100%; }.datos-resumen,.cuenta-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:850px) { .acciones-masivas-clientes { flex-wrap:wrap; }.acciones-masivas-clientes>label { flex:1 0 100%; max-width:none; } }

/* Ajustes para teléfonos y tabletas pequeñas. */
@media (max-width:700px) { .sidebar { width:230px; padding-top:62px; } .boton-sidebar-toggle { left:14px; } html:not(.sidebar-cerrado) .boton-sidebar-toggle { left:184px; } .contenido { margin-left:0; padding:64px 16px 16px; } .salir { margin-top:10px; display:block; } .topbar,.dashboard-hero,.planes-encabezado,.encabezado-trafico,.cabecera-grafica-operacion,.ficha-cabecera { align-items:flex-start; flex-direction:column; gap:15px; } .tarjetas,.kpi-grid,.resumen-operativo,.trafico-grid { grid-template-columns:1fr; } .dashboard-hero,.planes-encabezado { padding:20px; }.filtro-anio,.nuevo-plan { width:100%; }.form-grid,.filtros-clientes,.form-grid.tres-columnas,.switch-grid,.datos-resumen,.cuenta-grid { grid-template-columns:1fr; } .form-grid .completo { grid-column:auto; }.plan-bloque { padding:13px; }.acciones-plan { justify-content:flex-start; flex-wrap:wrap; } .tabs-ficha { display:flex; overflow-x:auto; }.tabs-ficha>label { flex:0 0 auto; }.contenido-tab { flex:0 0 100%; }.doc-datos,.doc-cabecera,.firmas { flex-direction:column; } .editar-usuario,.lista-permisos { grid-template-columns:1fr; }.accion-cliente span { display:none; }.accion-cliente { font-size:17px; } }

/* Reglas especiales para imprimir facturas, contratos y reportes. */
@media print { body { background:white; } .no-print,.sidebar { display:none !important; } .contenido { margin:0; padding:0; } .documento,.panel { border:0; box-shadow:none; max-width:none; } table { page-break-inside:auto; } tr { page-break-inside:avoid; } }
.acciones-print{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:12px}.acciones-print label{display:flex;align-items:center;gap:7px}.acciones-print select,.acciones-print button{width:auto;margin:0}.documento-impresion{background:#fff}.documento-impresion main{box-sizing:border-box;max-width:190mm;margin:0 auto}.documento-impresion section,.documento-impresion table,.documento-impresion .firmas{break-inside:avoid}.documento-impresion .firmas{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:18mm;align-items:end;margin-top:32px!important;text-align:center}.documento-impresion .firmas>div{min-width:0}.documento-impresion .firma-cliente,.documento-impresion .firma-proveedor{display:block;max-width:70mm!important;max-height:24mm!important;width:auto!important;height:auto!important;object-fit:contain;margin:0 auto 6px}.documento-impresion .linea{border-top:1px solid #333;padding-top:7px}.estado-documento{break-inside:avoid}
.factura-plantilla{max-width:216mm;margin:0 auto;border:1px solid var(--borde);border-radius:12px;background:#fff;box-shadow:0 5px 18px rgba(18,60,105,.05);overflow:hidden}.marco-factura{display:block;width:100%;min-height:600px;border:0;background:#fff}
@media print{.documento-impresion{font-size:9pt}.documento-impresion h1{font-size:15pt}.documento-impresion h2{font-size:10.5pt}.documento-impresion .tabla th,.documento-impresion .tabla td{padding:1.7mm}.documento-impresion .anexo-instalacion{page-break-before:auto!important}.documento-impresion p{orphans:3;widows:3}}
@media print{.factura-plantilla{border:0!important;border-radius:0!important;box-shadow:none!important;margin:0!important}}
@media print{.documento-impresion section[style*="page-break-before"]{page-break-before:auto!important;break-before:auto!important}.documento-impresion .clausulas-contrato{break-inside:auto}.documento-impresion .clausulas-contrato p{break-inside:avoid}}
@media(max-width:700px){.documento-impresion .firmas{grid-template-columns:1fr}}
.firma-publica{max-width:900px;margin:40px auto;padding:30px;background:#fff;border-radius:14px}.firma-publica canvas{width:100%;height:240px;border:2px dashed #8aa4bb;background:#fff;touch-action:none}
.flujo-instalacion{display:grid;grid-template-columns:repeat(7,minmax(95px,1fr));gap:7px;margin:15px 0;padding:10px;border-radius:11px;background:#edf6fb}.flujo-instalacion span{display:flex;align-items:center;gap:7px;padding:8px 9px;border-radius:8px;background:white;color:#31516c;font-size:12px;font-weight:800}.flujo-instalacion strong{display:grid;width:24px;height:24px;place-items:center;border-radius:7px;color:white;background:#123c69}.check-linea{display:flex!important;align-items:flex-start;gap:9px;margin:0;padding:12px;border:1px solid #d6e2eb;border-radius:9px;background:#fff}.check-linea input{width:auto;margin-top:3px}.check-linea small{display:block;margin-top:4px;color:#66788b}.instalacion-integral fieldset{border:1px solid #dce5ed;border-radius:12px;padding:15px;background:#fbfdff}.instalacion-integral legend{padding:0 8px;color:#123c69;font-weight:800}.ayuda-campo{margin:0 0 12px;color:#66788b;font-size:12px}.generar-password{margin-top:7px;width:auto}.productos-seleccion{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.producto-check{display:grid;grid-template-columns:auto 1fr 70px;align-items:center;gap:9px;padding:11px;border:1px solid #dbe4eb;border-radius:9px;background:white}.producto-check>input{margin:0}.producto-check span{display:flex;flex-direction:column}.producto-check small{color:#68798a}.fila-equipo{display:grid;grid-template-columns:1fr 1.5fr 80px 1fr 1fr 1fr 42px;gap:7px;align-items:center;margin-bottom:8px}.fila-equipo input,.fila-equipo select,.fila-equipo button{margin:0}.catalogo-rapido{margin-top:14px}.catalogo-rapido>summary{cursor:pointer;color:#177e68;font-weight:800}.tres-paneles-catalogo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.mensaje.exito{margin-bottom:14px;padding:13px;border-radius:9px;background:#dff8ec;color:#116d50}
@media(max-width:1100px){.flujo-instalacion{grid-template-columns:repeat(3,1fr)}.productos-seleccion,.tres-paneles-catalogo{grid-template-columns:1fr 1fr}.fila-equipo{grid-template-columns:1fr 1fr 80px}.fila-equipo button{width:auto}}
@media(max-width:700px){.flujo-instalacion{grid-template-columns:1fr}.productos-seleccion,.tres-paneles-catalogo{grid-template-columns:1fr}.fila-equipo{grid-template-columns:1fr}}
.copiar-enlace{display:flex;gap:8px;align-items:center}.copiar-enlace input{flex:1}.copiar-enlace button{width:auto;white-space:nowrap}.subnav-bodega{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.subnav-bodega a{padding:9px 11px;border:1px solid #d8e3ed;border-radius:8px;color:#506579;background:#fff;text-decoration:none;font-size:12px;font-weight:700}.subnav-bodega a.activo{color:#fff;border-color:#169d80;background:#169d80}.equipos-bodega-lista{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:300px;margin:9px 0 18px;overflow:auto}.equipo-bodega{display:flex;align-items:flex-start;gap:9px;padding:11px;border:1px solid #d9e4ec;border-radius:9px;background:#fff}.equipo-bodega input{width:auto;margin:3px 0}.equipo-bodega span,.equipo-bodega small{display:block}.equipo-bodega small{margin-top:4px;color:#68798b}.equipo-bodega[hidden]{display:none}.contrato-publico{overflow:hidden}.contrato-publico img{max-width:100%;height:auto}
.bodega-resumen{display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));gap:12px;margin:0 0 18px}.bodega-kpi{padding:16px;border:1px solid #d7e6ef;border-radius:13px;background:linear-gradient(180deg,#fff,#f7fbfd);box-shadow:0 8px 22px rgba(18,60,105,.07);border-top:4px solid #19a98b}.bodega-kpi span,.bodega-kpi small{display:block}.bodega-kpi span{color:#607588;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.bodega-kpi strong{display:block;margin:8px 0 5px;color:#123c69;font-size:24px}.bodega-kpi small{color:#6b7c8e}.bodega-kpi.principal{border-top-color:#123c69;background:linear-gradient(135deg,#123c69,#149d96);color:#fff}.bodega-kpi.principal span,.bodega-kpi.principal strong,.bodega-kpi.principal small{color:#fff}.bodega-kpi.alerta{border-top-color:#f39c12}.bodega-kpi.valor{border-top-color:#15b9e7}.bodega-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.bodega-mini-grid div{padding:14px;border:1px solid #dce8ef;border-radius:10px;background:#f8fbfd}.bodega-mini-grid b,.bodega-mini-grid span{display:block}.bodega-mini-grid b{color:#123c69;font-size:21px}.bodega-mini-grid span{margin-top:4px;color:#657689;font-size:12px;font-weight:700}
.materiales-hoja{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.material-consumo{display:grid!important;grid-template-columns:auto 1fr 95px;align-items:center;gap:9px;margin:0;padding:10px;border:1px solid #d9e4ec;border-radius:9px;background:#fff}.material-consumo>input[type=checkbox]{width:auto;margin:0}.material-consumo>input[type=number]{margin:0}.material-consumo span,.material-consumo small{display:block}.material-consumo small{margin-top:3px;color:#68798b}
@media(max-width:1100px){.bodega-resumen{grid-template-columns:repeat(3,minmax(0,1fr))}.bodega-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.equipos-bodega-lista,.materiales-hoja,.bodega-resumen,.bodega-mini-grid{grid-template-columns:1fr}.copiar-enlace{align-items:stretch;flex-direction:column}.material-consumo{grid-template-columns:auto 1fr}}
.campo-con-boton,.campo-busqueda-remota{display:flex;gap:7px;align-items:center}.campo-con-boton input,.campo-busqueda-remota input{flex:1}.campo-con-boton button,.campo-busqueda-remota button{width:auto;margin:0;white-space:nowrap}.buscador-bodega{padding:15px;border:1px solid #bcd6e4;border-radius:11px;background:#f3f9fc;box-shadow:0 8px 20px rgba(18,60,105,.08)}.buscador-bodega[hidden]{display:none!important}.buscador-bodega-cabecera{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:12px}.buscador-bodega-cabecera strong,.buscador-bodega-cabecera small{display:block}.buscador-bodega-cabecera small{margin-top:4px;color:#65778a}.buscador-bodega-cabecera button{width:auto;margin:0}.resultados-equipo-bodega,.equipos-seleccionados-bodega{display:grid;gap:7px;margin-top:10px}.resultado-equipo,.equipo-seleccionado{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #d4e0e8;border-radius:8px;background:#fff}.resultado-equipo strong,.resultado-equipo small,.equipo-seleccionado strong,.equipo-seleccionado small{display:block}.resultado-equipo small,.equipo-seleccionado small{margin-top:4px;color:#697b8c}.resultado-equipo button,.equipo-seleccionado button{width:auto;margin:0;white-space:nowrap}.equipo-seleccionado{border-color:#71c9ae;background:#effcf7}.equipo-seleccionado button{background:#66788b}
@media(max-width:700px){.campo-con-boton,.campo-busqueda-remota,.buscador-bodega-cabecera,.resultado-equipo,.equipo-seleccionado{align-items:stretch;flex-direction:column}}

/* Firma protegida incrustada en el contrato y en la impresión/PDF. */
.firma-contrato-impresa{margin:42px auto 8px;max-width:560px;text-align:center;break-inside:avoid;page-break-inside:avoid}
.firma-contrato-impresa .firma-titulo{font-size:12px;font-weight:800;letter-spacing:.08em}
.firma-contrato-impresa img{display:block;max-width:440px;max-height:190px;width:auto;height:auto;object-fit:contain;margin:8px auto}
.firma-contrato-impresa .linea-firma{border-top:2px solid #263747;margin:4px auto 10px;max-width:480px}
.firma-contrato-impresa strong,.firma-contrato-impresa small{display:block}
.firma-contrato-impresa small{margin-top:4px;color:#52667a}
.cumplimiento-portada{border-top:4px solid #16a085}.cumplimiento-portada .alerta{margin-top:14px}.cumplimiento-portada+.panel fieldset{border:1px solid #dce5ed;border-radius:12px;padding:15px;background:#fbfdff}.cumplimiento-portada+.panel legend{padding:0 8px;color:#123c69;font-weight:800}.cumplimiento-portada+.panel small{display:block;margin:3px 0;color:#8a5a00}
.aviso-firma-documento{margin-top:35px;padding:18px;border:1px solid #ccd7e0;text-align:center;break-inside:avoid;page-break-inside:avoid}
.vista-plantilla{margin-top:20px;min-height:420px}.vista-plantilla iframe,.visor-plantilla iframe{width:100%;min-height:650px;border:1px solid #cbd5df;border-radius:8px;background:#fff}.plantillas-portada code,#editor-plantilla code{background:#eaf2f7;border-radius:5px;padding:2px 6px}#contenido-plantilla{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.55}.acciones-plantilla{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.acciones-plantilla form{margin:0}.acciones-plantilla .advertencia{background:#f59e0b}.acciones-plantilla .peligro{background:#c62828}.visor-plantilla{scroll-margin-top:12px}
.editor-visual{border:1px solid #cbd5df;border-radius:9px;overflow:hidden;background:#f7f9fb}.editor-modos{display:flex;align-items:center;gap:7px;padding:9px;background:#edf2f6;border-bottom:1px solid #cbd5df}.editor-modos button,.barra-editor button{width:auto;margin:0}.editor-modos button.activo{background:#119c72}.editor-modos span{margin-left:auto;color:#64748b;font-size:12px}.barra-editor{display:flex;flex-wrap:wrap;gap:4px;padding:7px;background:#fff;border-bottom:1px solid #d7e0e7}.barra-editor button{min-width:34px;padding:7px 9px;color:#334155;background:#f7f9fb;border:1px solid #ccd7e0}.barra-editor select{width:auto;min-width:115px;padding:7px}.editor-visual iframe{display:block;width:100%;height:650px;border:0;background:white}.editor-visual textarea{display:block;width:100%;min-height:650px;margin:0;border:0;border-radius:0;resize:vertical}.variables-ayuda{padding:10px 12px;border-radius:7px;background:#eef8f5;color:#35645a;font-size:12px}.logo-empresa-actual{max-width:190px;max-height:100px;object-fit:contain}.empresa-editor small{display:block;margin-top:5px;color:#718096}
.barra-editor .fuente{color:#fff;background:#526579}.barra-editor .fuente.activo{background:#0d8e69}.barra-editor .separador-editor{width:1px;margin:2px 4px;background:#ccd7e0}.configuracion-logo-editor{display:grid;grid-template-columns:130px minmax(260px,1fr) auto;gap:16px;align-items:center;padding:15px;border:1px solid #d7e2ea;border-radius:9px;background:#f8fbfd}.logo-editor-muestra{display:grid;height:86px;place-items:center;border:1px dashed #b8c6d2;border-radius:7px;background:white;color:#718096}.logo-editor-muestra img{max-width:120px;max-height:76px}.configuracion-logo-editor label{margin:0}.configuracion-logo-editor input{margin-top:7px}.configuracion-logo-editor .boton{width:auto;white-space:nowrap}
.editor-visual [hidden],#contenido-plantilla[hidden]{display:none!important}.acciones-contrato-cliente{display:flex;flex-wrap:wrap;gap:5px}.acciones-contrato-cliente a,.acciones-contrato-cliente button{display:inline-grid;width:auto;min-width:68px;height:32px;margin:0;padding:0 9px;place-items:center;border-radius:4px;color:white;text-decoration:none;font-size:10px;white-space:nowrap}.accion-editar-contrato{background:#24a85a!important}.accion-firma-contrato{background:#8155d9!important}.accion-pdf-contrato{background:#0aa8df!important}.accion-terminar-contrato{background:#f39a19!important}.accion-cancelar-contrato{background:#e67e22!important}.accion-eliminar-contrato{background:#ef4444!important}.acciones-contrato-cliente button:disabled{opacity:.35;cursor:not-allowed}.estado-contrato{display:inline-block;padding:4px 8px;border-radius:3px;color:white;background:#718096;font-size:11px;font-weight:bold}.estado-contrato.vigente{background:#24b75e}.estado-contrato.firmado{background:#7259c7}.estado-contrato.borrador{background:#8795a3}.estado-contrato.cancelado{background:#e05252}.estado-contrato.terminado{background:#e89418}.acciones-contrato-instalacion{display:flex;flex-wrap:wrap;gap:6px}.acciones-contrato-instalacion form{margin:0}
.acciones-staff{display:grid;gap:7px;min-width:290px}.acciones-staff form{margin:0}.acciones-staff select{margin-bottom:5px}.liquidar-material{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;align-items:end;min-width:300px}.liquidar-material label{font-size:10px}.liquidar-material input,.liquidar-material button{margin:0}.alerta-stock{background:#e88a18!important}@media(max-width:700px){.liquidar-material{grid-template-columns:1fr}.acciones-staff{min-width:220px}}

/* Configuración de facturación y automatización por zona/router. */
.tabs-router{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px;padding-bottom:10px;border-bottom:1px solid #d8e3eb}.tabs-router a{padding:9px 12px;border:1px solid #d7e1e9;border-radius:8px;color:#526579;background:#f7fafc;text-decoration:none;font-size:12px;font-weight:800}.tabs-router a:hover,.tabs-router a.activo{border-color:#18a17e;color:white;background:#18a17e}.facturacion-zona{scroll-margin-top:12px;border-top:4px solid #18a17e}.switch-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:9px}.switch-label{display:flex!important;align-items:center;justify-content:space-between;gap:12px;min-height:46px;margin:0;padding:9px 12px;border:1px solid #dbe5ec;border-radius:8px;background:#f8fbfd}.switch-label input{width:20px!important;height:20px;margin:0;accent-color:#18a17e}.nota-info{margin:12px 0;padding:11px 14px;border:1px solid #b9ddea;border-radius:8px;color:#315e74;background:#eaf7fb;font-size:12px}.nota-info code{word-break:break-all}.facturacion-zona h3{margin:5px 0 12px;color:#234b69}.estado.completada{background:#dff7ec;color:#137151}.estado.parcial{background:#fff2cc;color:#8a5d00}.estado.error{background:#fde2e2;color:#a52222}.estado.iniciada{background:#e7f0ff;color:#255ca7}
.asignacion-staff-grid{grid-template-columns:1fr 1fr;align-items:start}.selector-lista h3{margin:5px 0 8px;color:#264b69}.filtro-lista{display:flex;gap:7px;margin-bottom:5px}.filtro-lista input{flex:1;margin:0}.filtro-lista button{width:auto;margin:0}.selector-lista>[data-contador-lista]{display:block;margin-bottom:7px;color:#60758a}.jlist{display:grid;gap:6px;max-height:270px;padding:6px;overflow:auto;border:1px solid #cdd9e3;border-radius:9px;background:#f7fafc}.jlist-tecnicos{max-height:210px}.jlist-item{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1px solid #d8e2ea;border-radius:8px;background:white;cursor:pointer;transition:.15s}.jlist-item:hover{border-color:#3aa98e;background:#f0fbf7}.jlist-item.seleccionado{border-color:#168d72;background:#dff7ee;box-shadow:0 0 0 2px rgba(22,141,114,.12)}.jlist-item input{width:auto;margin:3px 0;accent-color:#168d72}.jlist-item span,.jlist-item small{display:block}.jlist-item small{margin-top:3px;color:#687b8c}.jlist-item.agotado{opacity:.55;cursor:not-allowed}.lista-vacia{padding:20px;color:#8a5a00;text-align:center;background:#fff8e6;border-radius:7px}@media(max-width:1100px){.asignacion-staff-grid{grid-template-columns:1fr}}@media(max-width:700px){.filtro-lista{flex-direction:column}.filtro-lista button{width:100%}}
.tecnico-instalacion-selector{grid-column:1/-1;display:grid;gap:8px}.tecnico-opcion{width:100%;margin:0;color:#263544;text-align:left}.tecnico-opcion:hover,.tecnico-opcion.seleccionado{color:#263544}.tecnico-elegido{padding:8px 10px;border-radius:7px;background:#eef5fa;color:#31516c;font-size:13px;font-weight:700}.ayuda-campo{font-size:12px;color:#17699e}

/* Cobranza de facturas pendientes. */
.enlace-resumen{color:inherit;text-decoration:none;transition:.15s}.enlace-resumen:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(20,55,85,.12)}
.cobranza-cabecera{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:4px solid #19a873}.cobranza-cabecera h2{margin:4px 0}.cobranza-cabecera p{margin:0;color:#65778a}.cobranza-total{text-align:right}.cobranza-total small,.cobranza-total strong{display:block}.cobranza-total strong{margin-top:5px;color:#f39a19;font-size:28px}.cobranza-formulario{border-top:4px solid #16a3d8;scroll-margin-top:10px}.tabs-cobranza{display:flex;gap:5px;margin-bottom:14px;border-bottom:1px solid #d9e4eb}.tabs-cobranza a{padding:11px 15px;color:#526579;text-decoration:none;font-weight:800}.tabs-cobranza a.activo{border-bottom:3px solid #19a873;color:#168b68}.buscar-cobranza{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0 0 12px auto;max-width:390px}.buscar-cobranza input{margin:0}.acciones-cobranza{display:flex;flex-wrap:wrap;gap:5px;min-width:310px}.acciones-cobranza form{margin:0}.boton.mini,.acciones-cobranza button.mini{display:inline-grid;width:auto;min-height:30px;margin:0;padding:6px 9px;place-items:center;border:0;border-radius:5px;color:white;background:#168fbd;text-decoration:none;font-size:10px;font-weight:800}.boton.mini.verde,.acciones-cobranza button.verde{background:#20a861}.boton.mini.secundario{background:#718096}.acciones-cobranza button.advertencia{background:#ee9415}.acciones-cobranza button.peligro{background:#e14d55}.promesa-activa{display:block;margin-top:5px;color:#8b6300;font-weight:700;white-space:nowrap}
@media(max-width:700px){.cobranza-cabecera{align-items:flex-start;flex-direction:column}.cobranza-total{text-align:left}.buscar-cobranza{max-width:none}.acciones-cobranza{min-width:230px}}
.dialogo-pago-confirmado{width:min(590px,calc(100% - 28px));padding:25px;border:0;border-radius:18px;text-align:center;box-shadow:0 24px 75px rgba(10,34,56,.35)}.dialogo-pago-confirmado::backdrop{background:rgba(11,31,49,.62);backdrop-filter:blur(2px)}.pago-confirmado-icono{display:grid;width:60px;height:60px;margin:0 auto 10px;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(135deg,#2bd07f,#109b61);font-size:32px;font-weight:900;box-shadow:0 10px 22px rgba(24,173,105,.25)}.dialogo-pago-confirmado h2{margin:8px 0 3px;color:#153d65}.pago-confirmado-cliente{margin:0 0 17px;color:#607286}.pago-confirmado-datos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.pago-confirmado-datos span{padding:11px 7px;border-radius:10px;background:#f2f7fa;color:#718096;font-size:10px;text-transform:uppercase}.pago-confirmado-datos strong{display:block;margin-top:5px;color:#173f68;font-size:14px;text-transform:none}.estado-activacion{padding:10px;border-radius:9px;font-weight:bold}.estado-activacion.correcto{color:#117d50;background:#e2f8ed}.estado-activacion.error{color:#b42332;background:#ffe8eb}.dialogo-pago-confirmado label{display:block;margin:15px 0;text-align:left;color:#536579;font-size:12px;font-weight:bold}.dialogo-pago-confirmado select{margin-top:6px}.acciones-confirmacion-pago{display:flex;justify-content:center;gap:9px}.acciones-confirmacion-pago button,.acciones-confirmacion-pago .boton{width:auto;margin:0}@media(max-width:600px){.pago-confirmado-datos{grid-template-columns:1fr}.acciones-confirmacion-pago{flex-direction:column}.acciones-confirmacion-pago button,.acciones-confirmacion-pago .boton{width:100%}}

/* Finanzas operativas: dashboard, reportes, comprobantes y formas de pago. */
.subnav-finanzas{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 16px}.subnav-finanzas a{padding:10px 13px;border:1px solid #d8e3ed;border-radius:9px;color:#526579;background:#fff;text-decoration:none;font-size:12px;font-weight:800;box-shadow:0 3px 10px rgba(18,60,105,.04);transition:.15s}.subnav-finanzas a:hover{transform:translateY(-1px);border-color:#18a17e;color:#147b66}.subnav-finanzas a.activo{border-color:#17a78a;color:#fff;background:linear-gradient(135deg,#123c69,#18a98b)}
.finanzas-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:15px;padding:22px;border-radius:16px;color:#fff;background:linear-gradient(120deg,#123c69,#156b9b 55%,#18a98b);box-shadow:0 12px 28px rgba(18,60,105,.13)}.finanzas-hero h2{margin:5px 0;color:#fff;font-size:27px}.finanzas-hero p{margin:0;color:#d9f3f4}.finanzas-hero .eyebrow{color:#79f2df}
.filtros-finanzas,.finanzas-anio{display:flex;align-items:end;gap:9px;flex-wrap:wrap}.filtros-finanzas label,.finanzas-anio label{min-width:145px;margin:0;color:#526579;font-size:11px;font-weight:800}.finanzas-hero .filtros-finanzas label{color:#e7fbfb}.filtros-finanzas input,.filtros-finanzas select,.finanzas-anio select,.finanzas-anio input{margin-top:5px}.filtros-finanzas button,.finanzas-anio button,.finanzas-panel button{width:auto;margin:0;white-space:nowrap}
.finanzas-kpis{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));gap:12px;margin:0 0 16px}.finanzas-kpis article{position:relative;min-height:112px;padding:17px;overflow:hidden;border:1px solid #d7e4ed;border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(18,60,105,.07);border-top:4px solid #17a78a}.finanzas-kpis article::after{content:"";position:absolute;right:-24px;bottom:-30px;width:86px;height:86px;border-radius:50%;background:#17a78a;opacity:.09}.finanzas-kpis span,.finanzas-kpis strong,.finanzas-kpis small{display:block}.finanzas-kpis span{color:#607588;font-size:11px;font-weight:900;text-transform:uppercase}.finanzas-kpis strong{margin:9px 0 5px;color:#123c69;font-size:24px}.finanzas-kpis small{color:#708195;font-size:11px}.finanzas-kpis .pendiente{border-top-color:#f59e0b}.finanzas-kpis .pendiente::after{background:#f59e0b}.finanzas-kpis .gasto{border-top-color:#ef4444}.finanzas-kpis .gasto::after{background:#ef4444}.finanzas-kpis .saldo{border-top-color:#0ea5e9}.finanzas-kpis .saldo::after{background:#0ea5e9}
.finanzas-panel{border-top:4px solid #18a17e;overflow:hidden}.finanzas-panel h2{margin-top:0;color:#123c69}.finanzas-panel h3{margin:20px 0 10px;color:#234b69}.finanzas-panel .tabla-wrap{border:1px solid #d8e3eb;border-radius:10px;overflow:auto}.finanzas-panel table{margin:0}.finanzas-panel thead th{background:#eaf2f8;color:#123c69;text-transform:uppercase;font-size:11px}.finanzas-panel tbody tr:nth-child(even){background:#fbfdff}.finanzas-panel details{min-width:280px}.finanzas-panel details summary{cursor:pointer;color:#147b66;font-weight:800}.fila-total td{background:#edf8f5!important;color:#123c69;font-weight:900}
.finanzas-barras{display:grid;grid-template-columns:repeat(12,minmax(50px,1fr));gap:9px;align-items:end;min-height:230px;margin:12px 0 20px;padding:14px;border:1px solid #d8e3eb;border-radius:12px;background:linear-gradient(180deg,#fbfdff,#f3f8fb)}.finanzas-barras>div{display:grid;grid-template-rows:auto 1fr auto auto;align-items:end;gap:5px;text-align:center}.finanzas-barras span{color:#61758a;font-size:11px;font-weight:800}.finanzas-barras b,.finanzas-barras i{display:block;width:18px;min-height:2px;margin:0 auto;border-radius:5px 5px 0 0}.finanzas-barras b{background:#10b981}.finanzas-barras i{background:#f59e0b}.finanzas-barras small{color:#556b80;font-size:10px;white-space:nowrap}.finanzas-barras.grande{min-height:300px}
.gastos-estadistica{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:22px;margin-bottom:18px;border-top-color:#27b86d}.gastos-estadistica .gastos-filtros{grid-column:1/-1}.gastos-dona-wrap{display:grid;place-items:center;gap:14px;min-height:310px}.gastos-dona{display:grid;width:270px;height:270px;place-items:center;border-radius:50%;box-shadow:inset 0 0 0 44px #fff,0 16px 38px rgba(18,60,105,.14)}.gastos-dona-centro{display:grid;width:122px;height:122px;place-items:center;border-radius:50%;background:#fff;text-align:center;box-shadow:0 0 0 1px #e1e9f0}.gastos-dona-centro span,.gastos-dona-centro strong{display:block}.gastos-dona-centro span{color:#65778a;font-size:11px;font-weight:900;text-transform:uppercase}.gastos-dona-centro strong{margin-top:4px;color:#123c69;font-size:18px}.gastos-leyenda{display:grid;gap:8px;margin:0;padding:0;list-style:none}.gastos-leyenda li{display:flex;align-items:center;gap:8px;color:#31445a;font-size:12px;font-weight:800}.gastos-leyenda i{width:12px;height:12px;border-radius:50%}.gastos-grupos{display:grid;gap:12px}.gastos-grupo{border:1px solid #dce6ee;border-radius:10px;background:#fff;box-shadow:0 6px 18px rgba(18,60,105,.06);overflow:hidden}.gastos-grupo summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 16px;color:#3564e4;background:#f7f9fc;font-weight:900;cursor:pointer}.gastos-grupo summary span:last-child{color:#6b7788}.gastos-grupo-contenido{display:grid;gap:13px;padding:15px 16px}.gasto-linea{display:grid;grid-template-columns:minmax(180px,1fr) minmax(260px,3fr) minmax(90px,auto);align-items:center;gap:12px;color:#6b7280;font-size:12px;font-weight:800}.gasto-linea b{color:#4c5b6b}.gasto-barra{display:block;width:100%;height:15px;overflow:hidden;border-radius:999px;background:#9295a1}.gasto-barra i{display:block;width:var(--pct,0)!important;max-width:100%;min-width:0;height:100%;border-radius:999px;background:var(--bar-color,#45bf6b)!important}.gasto-linea strong{color:#7b7f8f;text-align:right}.gastos-sin-datos{padding:14px;color:#66758a;font-weight:800}
.gastos-cabecera-form{align-items:flex-start}.gastos-wisphub-form{max-width:1260px;margin:12px 0 22px;padding:0;border:2px dashed #d2dbe5;border-radius:2px;background:#fff;box-shadow:none;overflow:hidden}.gasto-bloque-default{padding:18px 20px 20px;border-bottom:2px dashed #dce3eb;background:#fff}.gasto-bloque-default h3,.gasto-lista-titulo{display:flex;align-items:center;gap:7px;margin:0 0 14px;color:#2d3b4b;font-size:14px;font-weight:800}.gasto-bloque-default h3::before{content:"i";display:grid;width:19px;height:19px;place-items:center;border-radius:3px;color:#fff;background:#34b96f;font-size:12px;font-style:italic;font-weight:900}.gasto-lista-titulo{margin:0;padding:15px 20px 12px;border-bottom:0;background:#fff}.gasto-lista-titulo::before{content:"▦";color:#35b86d;font-size:16px}.gasto-default-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:15px 20px}.gastos-wisphub-form label{display:block;margin:0;color:#3f4650;font-size:12px;font-weight:800}.gastos-wisphub-form input,.gastos-wisphub-form select,.gastos-wisphub-form textarea{height:32px;margin-top:6px;border:1px solid #bfc8d2;border-radius:0;background:#fff;color:#243447;font-size:12px;box-shadow:none}.gastos-wisphub-form textarea{height:auto;min-height:0;resize:vertical}.gastos-wisphub-form small{display:block;margin-top:5px;color:#607286}.input-sufijo{display:flex;align-items:stretch;margin-top:6px}.input-sufijo input{margin:0;border-radius:0}.input-sufijo i{display:grid;min-width:38px;place-items:center;border:1px solid #bfc8d2;border-left:0;border-radius:0;background:#f2f4f6;color:#4c5966;font-style:normal;font-weight:800}.toggle-wisp{display:inline-flex;width:72px;height:32px;margin-top:6px;border:1px solid #bfc8d2;background:#eceff2;vertical-align:top;cursor:pointer}.toggle-wisp input{display:none}.toggle-wisp span{display:grid;width:38px;height:30px;margin:0;place-items:center;color:#1f2933;background:#f3f5f7;font-size:12px;font-weight:800}.toggle-wisp.activo span{margin-left:auto;color:#fff;background:#2d85c4}.gasto-oculto{display:none!important}.gasto-item-area{padding:0 20px 20px}.gasto-calculos-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:14px 18px;padding:2px 0 14px}.gasto-detalle-grid{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(180px,1fr) minmax(180px,1fr) minmax(150px,.8fr);gap:14px 18px;padding:14px 0;border-top:1px dotted #cbd5df}.gasto-descripcion textarea{height:83px}.gasto-adjuntos-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px 18px;padding:14px 0;border-top:1px dotted #cbd5df}.agregar-elemento-wisp{display:inline-flex!important;width:auto!important;min-height:32px;margin:4px 0 0!important;padding:7px 13px!important;border:0!important;border-radius:0!important;background:#35b86d!important;color:#fff!important;font-size:12px!important;font-weight:800!important}.agregar-elemento-wisp::before{content:"+";margin-right:5px;font-weight:900}.gasto-acciones{display:flex;justify-content:center;gap:8px;padding:15px 20px 20px;border-top:1px dotted #cbd5df;background:#fff}.gasto-acciones button,.gasto-acciones .boton{width:auto;min-height:32px;margin:0;padding:8px 13px;border-radius:0;font-size:12px}.gasto-acciones button{background:#079fda}.gasto-acciones button.secundario{background:#35b86d}.gasto-acciones .secundario{background:#e9e9e9;color:#333;border:1px solid #c9c9c9}
.muestra-color{display:inline-block;width:18px;height:18px;margin-right:8px;border:1px solid #d3dce5;border-radius:50%;vertical-align:-4px}.peligro{background:#dc2626!important;color:#fff!important}.peligro:hover{background:#991b1b!important}
.legacy-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:20px 0 0;padding:14px 2px 0;border-top:1px solid #dce6ef;color:#5f6f82;font-size:12px}.legacy-footer small{color:#123c69;font-weight:800}
.reportes-centro{border-top:4px solid #18a17e}.reportes-centro .cabecera-modulo{align-items:flex-start}.reportes-filtros{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:14px 0}.reportes-filtros label{min-width:170px;margin:0;color:#526579;font-size:11px;font-weight:850}.reportes-filtros input,.reportes-filtros select{margin-top:5px}.reportes-filtros button{width:auto;margin:0}.reporte-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0 16px}.reporte-tabs a{padding:9px 12px;border:1px solid #d8e3ed;border-radius:7px;color:#526579;background:#fff;text-decoration:none;font-size:12px;font-weight:800}.reporte-tabs a.activo{border-color:#18a17e;color:#fff;background:linear-gradient(135deg,#123c69,#18a98b)}.reporte-kpis{display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));gap:10px}.reporte-kpis article{padding:13px;border:1px solid #dbe6ef;border-radius:8px;background:#fbfdff}.reporte-kpis span,.reporte-kpis strong,.reporte-kpis small{display:block}.reporte-kpis span{color:#65778a;font-size:10px;font-weight:900;text-transform:uppercase}.reporte-kpis strong{margin:6px 0;color:#123c69;font-size:19px}.reporte-kpis small{color:#6b7d8f;font-size:10px}.reporte-profesional{border-top:4px solid #123c69}.reporte-profesional h2{margin:20px 0 9px;color:#123c69;font-size:18px}.reporte-profesional table{margin:0 0 16px}.reporte-profesional th{background:#eaf2f8;color:#123c69;text-transform:uppercase;font-size:11px}.reporte-profesional td{vertical-align:top}@media(max-width:1100px){.reporte-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.reportes-filtros{align-items:stretch;flex-direction:column}.reportes-filtros label,.reportes-filtros button{width:100%}.reporte-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px}.reporte-tabs a{flex:0 0 auto}.reporte-kpis{grid-template-columns:1fr}}
.firma-tecnico-panel{padding:14px;border:1px solid #d6e2eb;border-radius:11px;background:#f8fbfd}.firma-tecnico-panel>strong{display:block;margin-bottom:5px;color:#123c69}.firma-tecnico-panel>small{display:block;margin-bottom:10px;color:#677b8e}.firma-tecnico-previa{display:block;max-width:260px;max-height:90px;margin:0 0 10px;object-fit:contain}.firma-tecnico-panel canvas{display:block;width:100%;max-width:720px;height:190px;border:2px dashed #9bb1c2;border-radius:10px;background:#fff;touch-action:none}.acciones-firma-tecnico{display:flex;gap:8px;margin-top:8px}.acciones-firma-tecnico button{width:auto;margin:0}
@media(max-width:1200px){.finanzas-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.finanzas-barras{grid-template-columns:repeat(6,minmax(55px,1fr))}.finanzas-hero{align-items:flex-start;flex-direction:column}.gastos-estadistica{grid-template-columns:1fr}.gasto-default-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gasto-calculos-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gasto-detalle-grid,.gasto-adjuntos-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.subnav-finanzas{overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px}.subnav-finanzas a{flex:0 0 auto}.finanzas-kpis,.finanzas-barras{grid-template-columns:1fr}.filtros-finanzas,.finanzas-anio{align-items:stretch;flex-direction:column}.filtros-finanzas label,.finanzas-anio label,.filtros-finanzas button,.finanzas-anio button{width:100%}.finanzas-panel details{min-width:220px}.gastos-dona{width:220px;height:220px}.gasto-linea{grid-template-columns:1fr}.gasto-linea strong{text-align:left}.gasto-default-grid,.gasto-calculos-grid,.gasto-detalle-grid,.gasto-adjuntos-grid{grid-template-columns:1fr}.gasto-acciones{align-items:stretch;flex-direction:column}.gasto-acciones button,.gasto-acciones .boton{width:100%;text-align:center}.legacy-footer{display:block;text-align:center}.legacy-footer span,.legacy-footer small{display:block;margin:4px 0}}

/* Perfil, accesos y consumo histórico del dashboard. */
.trafico-historico{margin-top:18px;border-top:4px solid #0aa8df}.filtros-trafico-historico{display:flex!important;gap:8px}.filtros-trafico-historico select{width:auto;min-width:165px;margin:0}.leyenda-trafico{display:flex;justify-content:flex-end;gap:15px;margin:-3px 5px 8px;color:#64748b;font-size:11px}.leyenda-trafico span{display:flex;align-items:center;gap:6px}.punto-descarga,.punto-subida{width:10px;height:10px;border-radius:3px}.punto-descarga{background:#0aa8df}.punto-subida{background:#f29b19}.trafico-historico canvas{display:block;width:100%;height:250px!important}.detalle-dashboard-cabecera{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:4px solid #1aa47d}.detalle-dashboard-cabecera h2{margin:5px 0}.detalle-dashboard-cabecera p{margin:0;color:#6b7c8d}.detalle-dashboard-cabecera .boton{width:auto;margin:0}.detalle-total{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding:13px 16px;border-radius:9px;background:#edf7fb;color:#526579}.detalle-total strong{color:#123c69;font-size:23px}
@media(max-width:700px){.perfil-sidebar{display:none}.filtros-trafico-historico,.detalle-dashboard-cabecera{align-items:stretch;flex-direction:column}.filtros-trafico-historico select,.detalle-dashboard-cabecera .boton{width:100%}.leyenda-trafico{justify-content:flex-start}}

/* Clientes: estadisticas, busqueda avanzada y mapa tecnico. */
.clientes-stats-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:22px;border-radius:16px;color:white;background:linear-gradient(120deg,#123c69,#176f91 58%,#17a68e);box-shadow:0 12px 28px rgba(18,60,105,.14)}.clientes-stats-hero h2{margin:4px 0;color:white;font-size:27px}.clientes-stats-hero p{margin:0;color:#dff8f5}.clientes-stats-hero .eyebrow{color:#8ff0dc}
.filtros-clientes-estadisticas{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.filtros-clientes-estadisticas label{min-width:190px;margin:0;color:#526579;font-size:11px;font-weight:850}.clientes-stats-hero .filtros-clientes-estadisticas label{color:#e6fbfb}.filtros-clientes-estadisticas select,.filtros-clientes-estadisticas input{margin-top:5px}.filtros-clientes-estadisticas button{width:auto;margin:0}
.clientes-grafica-panel{border-top:4px solid #17a68e}.clientes-grafica-panel h2{margin:0 0 10px;color:#123c69}.barras-clientes{display:grid;grid-template-columns:repeat(12,minmax(55px,1fr));gap:10px;align-items:end;min-height:220px;margin:12px 0;padding:16px;border:1px solid #d8e4ec;border-radius:12px;background:linear-gradient(180deg,#fff,#f6fafc)}.barras-clientes>div{display:grid;grid-template-rows:auto 1fr auto;align-items:end;gap:5px;text-align:center}.barras-clientes span{color:#718096;font-size:11px;font-weight:800}.barras-clientes b,.barras-clientes i,.barras-clientes em{display:inline-block;width:18px;min-height:2px;margin:0 1px;border-radius:5px 5px 0 0;vertical-align:bottom}.barras-clientes b{background:#21a67d}.barras-clientes i{background:#df6100}.barras-clientes em{background:#f5d665}.barras-clientes small{color:#64748b;font-size:10px}.barras-clientes-dias{grid-template-columns:repeat(31,minmax(24px,1fr));min-height:210px}.barras-clientes-anios{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));}.nota-grafica{margin:7px 0 0;color:#64748b;font-size:11px}
.clientes-estado-panel{display:grid;grid-template-columns:minmax(240px,360px) 1fr;gap:20px;align-items:center;border-top:4px solid #21a67d}.clientes-estado-panel h2{margin:4px 0 35px;color:#123c69}.clientes-estado-panel strong{color:#162f4b}.clientes-pastel-wrap{display:flex;align-items:center;justify-content:center;gap:70px;min-height:330px}.clientes-pastel{display:grid;width:300px;height:300px;place-items:center;border-radius:50%;box-shadow:inset -18px -28px 0 rgba(0,0,0,.14),0 18px 35px rgba(18,60,105,.12)}.clientes-pastel span{display:grid;width:82px;height:82px;place-items:center;border-radius:50%;color:#123c69;background:#fff;font-size:24px;font-weight:900}.leyenda-clientes{display:grid;gap:10px;margin:0;padding:0;list-style:none;color:#26384a;font-weight:800}.leyenda-clientes i{display:inline-block;width:14px;height:14px;margin-right:7px;border-radius:50%;vertical-align:-2px}.leyenda-clientes .activos{background:#48c36a}.leyenda-clientes .suspendidos{background:#ffa21a}.leyenda-clientes .cancelados{background:#df6100}.leyenda-clientes .gratis{background:#2db7ef}
.buscar-clientes-panel{border-top:4px solid #17a68e}.buscar-clientes-form{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px;align-items:end}.buscar-clientes-form label{margin:0;color:#526579;font-size:11px;font-weight:850}.buscar-clientes-form input,.buscar-clientes-form select{margin-top:5px}.buscar-clientes-acciones{display:flex;gap:8px;align-items:end}.buscar-clientes-acciones button,.buscar-clientes-acciones .boton{width:auto;margin:0}.tabla-buscar-clientes th{font-size:11px;text-transform:uppercase;background:#eaf2f8;color:#123c69}.tabla-buscar-clientes td{vertical-align:top}
.mapa-clientes-shell{position:relative;min-height:calc(100vh - 145px);border-radius:16px;overflow:hidden;background:#102f4b;box-shadow:0 12px 32px rgba(18,60,105,.18)}.mapa-toolbar{position:absolute;z-index:600;left:16px;right:16px;top:16px;display:flex;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid rgba(255,255,255,.35);border-radius:14px;color:#fff;background:linear-gradient(120deg,rgba(18,60,105,.92),rgba(23,166,142,.90));box-shadow:0 14px 32px rgba(0,0,0,.22)}.mapa-toolbar h2{margin:3px 0;color:#fff}.mapa-toolbar p{margin:0;color:#dff8f5}.mapa-filtros{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.mapa-filtros label{min-width:130px;margin:0;color:#e6fbfb;font-size:11px;font-weight:850}.mapa-filtros select{margin-top:4px}.mapa-filtros button{width:auto;margin:0;background:#0aa8df}.mapa-resumen{position:absolute;z-index:590;left:16px;bottom:18px;display:flex;gap:9px;flex-wrap:wrap}.mapa-resumen span{padding:8px 10px;border-radius:999px;color:#123c69;background:rgba(255,255,255,.93);box-shadow:0 6px 18px rgba(0,0,0,.16);font-size:12px}.mapa-clientes{height:calc(100vh - 150px);min-height:650px}.mapa-leyenda{position:absolute;z-index:590;right:16px;bottom:18px;display:grid;gap:7px;min-width:160px;padding:12px;border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 8px 25px rgba(0,0,0,.18);font-size:12px}.mapa-leyenda span{display:flex;align-items:center;gap:7px}.mapa-leyenda i{display:inline-block}.mk-cliente,.mk-nap,.mk-nodo{width:13px;height:13px;border-radius:50%}.mk-cliente{background:#16a34a}.mk-nap{background:#f59e0b}.mk-nodo{background:#2563eb}.ln-cliente,.ln-nodo{width:24px;height:3px;border-radius:99px}.ln-cliente{background:#0ea5e9}.ln-nodo{background:#a3e635}.legacy-map-icon span{display:grid;width:28px;height:28px;place-items:center;border:2px solid #fff;border-radius:50%;color:#fff;font-size:12px;font-weight:900;box-shadow:0 5px 13px rgba(0,0,0,.30)}
@media(max-width:1100px){.clientes-stats-hero,.mapa-toolbar{align-items:flex-start;flex-direction:column}.clientes-estado-panel{grid-template-columns:1fr}.clientes-pastel-wrap{justify-content:flex-start}.buscar-clientes-form{grid-template-columns:repeat(2,minmax(0,1fr))}.barras-clientes{grid-template-columns:repeat(6,minmax(55px,1fr))}.barras-clientes-dias{grid-template-columns:repeat(10,minmax(30px,1fr))}}
@media(max-width:700px){.filtros-clientes-estadisticas,.mapa-filtros,.buscar-clientes-acciones{align-items:stretch;flex-direction:column}.filtros-clientes-estadisticas label,.filtros-clientes-estadisticas button,.mapa-filtros label,.mapa-filtros button,.buscar-clientes-acciones button,.buscar-clientes-acciones .boton{width:100%}.buscar-clientes-form,.barras-clientes,.barras-clientes-dias{grid-template-columns:1fr}.clientes-pastel-wrap{align-items:flex-start;flex-direction:column;gap:20px}.clientes-pastel{width:230px;height:230px}.mapa-toolbar{position:relative;left:auto;right:auto;top:auto;border-radius:14px 14px 0 0}.mapa-clientes{height:620px;min-height:620px}.mapa-resumen,.mapa-leyenda{position:relative;left:auto;right:auto;bottom:auto;margin:10px 12px}}

.solo-print{display:none}
@media print{
  @page{size:letter;margin:12mm}
  html,body{background:#fff!important;color:#111!important}
  .no-print,.sidebar,.topbar,.subnav-finanzas,.clientes-stats-hero,.finanzas-hero,.finanzas-kpis,.barras-clientes,.clientes-pastel-wrap,.finanzas-barras,.gastos-estadistica,.finanzas-graficas,.mapa-clientes-shell{display:none!important}
  .contenido{margin:0!important;padding:0!important;width:100%!important}
  .solo-print{display:block!important}
  .panel,.finanzas-panel,.clientes-grafica-panel,.clientes-estado-panel{margin:0 0 12px!important;padding:0!important;border:0!important;box-shadow:none!important;background:#fff!important}
  .clientes-grafica-panel,.clientes-estado-panel{display:none!important}
  .reporte-impresion{display:block!important}
  h1,h2,h3{color:#111!important;margin:0 0 8px!important}
  p{margin:0 0 8px!important}
  .tabla-wrap{overflow:visible!important;border:0!important}
  table{width:100%!important;border-collapse:collapse!important;font-size:10.5px!important;page-break-inside:auto}
  th,td{padding:5px 6px!important;border:1px solid #999!important;background:#fff!important;color:#111!important;vertical-align:top!important}
  th{font-weight:800!important;text-transform:uppercase!important}
  tr{page-break-inside:avoid;page-break-after:auto}
  .fila-total td,.fila-total th{font-weight:800!important;background:#f2f2f2!important}
  .estado{padding:0!important;border:0!important;background:transparent!important;color:#111!important}
}

/* 0.22.40: estadísticas financieras visuales y dashboard ERP de bodega. */
.finanzas-graficas{display:grid;grid-template-columns:1.45fr .9fr;gap:14px;margin:16px 0 20px}.finanza-chart{padding:16px;border:1px solid #d8e4ee;border-radius:12px;background:linear-gradient(180deg,#fff,#f7fbfd);box-shadow:0 8px 22px rgba(18,60,105,.06)}.finanza-chart h3{margin:0;color:#123c69}.finanza-chart small{display:block;margin:3px 0 10px;color:#65778a}.finanza-chart canvas{display:block;width:100%;height:270px}.finanza-chart.ancho{grid-column:1/-1}.finanza-chart.ancho canvas{height:210px}.finanzas-estadisticas-panel>.cabecera-modulo button{width:auto;max-width:190px}
.bodega-acciones-erp{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:10px;margin:0 0 16px}.bodega-accion-card{display:block;padding:14px;border:1px solid #d8e5ef;border-radius:11px;background:#fff;text-decoration:none;box-shadow:0 6px 18px rgba(18,60,105,.05);transition:.15s}.bodega-accion-card:hover{transform:translateY(-2px);border-color:#18a17e}.bodega-accion-card strong,.bodega-accion-card span,.bodega-accion-card em{display:block}.bodega-accion-card strong{color:#123c69;font-size:13px}.bodega-accion-card span{min-height:34px;margin:6px 0;color:#66788a;font-size:11px;line-height:1.35}.bodega-accion-card em{color:#18a17e;font-size:11px;font-style:normal;font-weight:900}.bodega-dashboard-erp{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(280px,.9fr) minmax(420px,1.35fr);gap:16px;align-items:start}.bodega-dashboard-erp .panel{margin:0}.bodega-panel-grande{grid-column:span 2}.bodega-resumen-erp{align-items:stretch}
@media(max-width:1200px){.bodega-acciones-erp{grid-template-columns:repeat(3,minmax(0,1fr))}.bodega-dashboard-erp{grid-template-columns:1fr}.bodega-panel-grande{grid-column:auto}}
@media(max-width:1000px){.finanzas-graficas{grid-template-columns:1fr}}
@media(max-width:700px){.bodega-acciones-erp{grid-template-columns:1fr}}

/* 0.22.42: gráficas financieras más limpias tipo panel ejecutivo. */
.finanzas-graficas{grid-template-columns:minmax(520px,1.35fr) minmax(300px,.85fr);gap:16px;align-items:stretch}.finanza-chart{position:relative;overflow:hidden;padding:18px 18px 14px;border:1px solid #d7e5ef;border-radius:16px;background:linear-gradient(145deg,#ffffff 0%,#f8fcfd 100%);box-shadow:0 14px 30px rgba(18,60,105,.08)}.finanza-chart::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#123c69,#1f75b5,#12a98b)}.finanza-chart h3{font-size:16px;letter-spacing:0;color:#123c69}.finanza-chart small{margin-bottom:13px;color:#6b7d90;font-weight:650}.finanza-chart canvas{position:relative;z-index:1;border-radius:14px;background:#fff}.finanza-chart.grande canvas{height:286px}.finanza-chart.ancho{grid-column:1/-1}.finanza-chart.ancho canvas{height:224px}.finanzas-estadisticas-panel .filtros-finanzas{margin-top:10px;padding:12px;border:1px solid #dce8f1;border-radius:12px;background:#f8fbfd}.finanzas-estadisticas-panel>h3{margin-top:22px;color:#123c69}
@media(max-width:1100px){.finanzas-graficas{grid-template-columns:1fr}}

/* 0.22.44: clientes tipo finanzas y soporte tecnico con orden firmable. */
.clientes-estadisticas-panel .filtros-clientes-estadisticas{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 16px;padding:12px;border:1px solid #dce8f1;border-radius:12px;background:#f8fbfd}.clientes-estadisticas-panel .filtros-clientes-estadisticas label{min-width:170px;flex:1;color:#53677a;font-size:11px;font-weight:900;text-transform:uppercase}.clientes-estadisticas-panel .filtros-clientes-estadisticas select,.clientes-estadisticas-panel .filtros-clientes-estadisticas button{width:100%;margin-top:5px}.clientes-kpis{margin-top:0}.clientes-graficas{margin-top:14px}
.soporte-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 16px;padding:22px;border-radius:16px;background:linear-gradient(135deg,#123c69 0%,#176b8d 55%,#12a98b 100%);color:#fff;box-shadow:0 18px 38px rgba(18,60,105,.16)}.soporte-hero h2{margin:3px 0 4px;color:#fff}.soporte-hero p,.soporte-hero .eyebrow{color:#dff9f4}.soporte-hero .boton{background:#fff;color:#123c69}.soporte-layout{grid-template-columns:minmax(320px,.75fr) minmax(520px,1.25fr)}.soporte-panel,.soporte-detalle{border-top:4px solid #12a98b}.pill{display:inline-block;padding:4px 9px;border-radius:999px;font-size:10px;font-weight:900}.prioridad-baj{background:#e7f7ef;color:#13876e}.prioridad-med{background:#fff4d8;color:#9a6400}.prioridad-alt{background:#ffe9dd;color:#b45309}.prioridad-cri{background:#fee2e2;color:#b91c1c}.soporte-orden{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #d8e5ef;border-radius:14px;overflow:hidden;background:#fff}.soporte-orden>div{display:grid;grid-template-columns:150px 1fr;border-bottom:1px solid #d8e5ef}.soporte-orden>div:nth-child(odd){border-right:1px solid #d8e5ef}.soporte-orden .completo{grid-column:1/-1;border-right:0}.soporte-orden b,.soporte-orden span{padding:11px 13px}.soporte-orden b{background:#eef5f9;color:#123c69}.soporte-orden span{min-height:18px}.firma-orden img{display:block;max-width:360px;max-height:150px;object-fit:contain}.firma-orden small{display:block;color:#64748b}.soporte-edicion{margin-top:18px}.soporte-acciones{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.link-firma-soporte{display:flex;align-items:end;gap:8px;flex:1;min-width:280px;color:#53677a;font-size:11px;font-weight:900}.link-firma-soporte input{flex:1}.timeline-soporte{display:grid;gap:10px;margin-top:12px}.timeline-soporte article{padding:12px;border:1px solid #dce8f1;border-radius:12px;background:#f9fcfd}.timeline-soporte strong,.timeline-soporte small{display:block}.timeline-soporte small{color:#708195}.timeline-soporte p{margin:8px 0 0}
@media(max-width:1000px){.soporte-hero{align-items:flex-start;flex-direction:column}.soporte-layout,.soporte-orden{grid-template-columns:1fr}.soporte-orden>div:nth-child(odd){border-right:0}.link-firma-soporte{align-items:stretch;flex-direction:column}}
@media print{.soporte-hero,.soporte-kpis,.soporte-panel,.soporte-edicion,.soporte-acciones,.soporte-comentarios{display:none!important}.soporte-detalle{border:0!important;box-shadow:none!important}.soporte-orden{font-size:10pt}.firma-orden img{max-height:110px}}

/* 0.22.45: soporte tecnico con flujo tipo WispHub. */
.soporte-wisp-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;padding:18px 20px;border-radius:14px;color:#fff;background:linear-gradient(120deg,#123c69,#176f91 58%,#16a394);box-shadow:0 12px 28px rgba(18,60,105,.14)}.soporte-wisp-head h2{margin:0 0 4px;color:#fff}.soporte-wisp-head p{margin:0;color:#daf7f5}.soporte-wisp-head .boton{width:auto;margin:0;background:#fff;color:#123c69}
.soporte-wisp-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 14px}.soporte-wisp-tabs a{padding:9px 12px;border:1px solid #d7e4ed;border-radius:7px;color:#526579;background:#fff;text-decoration:none;font-size:12px;font-weight:850}.soporte-wisp-tabs a.activo{border-color:#16a394;color:#fff;background:linear-gradient(135deg,#123c69,#16a394)}
.soporte-kpis-wisp{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;margin-bottom:14px}.soporte-kpis-wisp article{padding:14px;border:1px solid #dbe6ef;border-radius:11px;background:#fff;box-shadow:0 6px 16px rgba(18,60,105,.05)}.soporte-kpis-wisp span,.soporte-kpis-wisp strong,.soporte-kpis-wisp small{display:block}.soporte-kpis-wisp span{color:#637588;font-size:10px;font-weight:900;text-transform:uppercase}.soporte-kpis-wisp strong{margin:6px 0;color:#123c69;font-size:22px}.soporte-kpis-wisp small{color:#728399;font-size:10px}
.soporte-wisp-panel{border-top:4px solid #16a394}.soporte-filtros-linea{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:10px;padding:10px;border:1px solid #dce8f1;border-radius:10px;background:#f8fbfd}.soporte-filtros-linea label{min-width:150px;margin:0;color:#526579;font-size:11px;font-weight:850}.soporte-filtros-linea .crece{flex:1;min-width:260px}.soporte-filtros-linea input,.soporte-filtros-linea select{margin-top:4px}.soporte-filtros-linea button,.soporte-filtros-linea .boton{width:auto;margin:0}
.soporte-masivo{display:block}.soporte-masivo>select,.soporte-masivo>button,.soporte-masivo>strong{width:auto;margin:0 7px 10px 0;display:inline-block;vertical-align:middle}.soporte-masivo>strong{color:#344a5e}.soporte-tabla-wisp table{min-width:1320px}.soporte-tabla-wisp th{background:#eaf2f8;color:#123c69;font-size:11px;text-transform:uppercase}.soporte-tabla-wisp td{font-size:12px;vertical-align:middle}.acciones-ticket{display:flex;gap:4px;white-space:nowrap}.acciones-ticket a,.acciones-ticket button{display:inline-grid;width:26px;height:26px;place-items:center;margin:0;border:0;border-radius:4px;color:#fff;text-decoration:none;font-size:13px;font-weight:900}.acciones-ticket .abrir{background:#22a86f}.acciones-ticket .editar{background:#0aa8df}.acciones-ticket .imprimir{background:#7856d9}.acciones-ticket .eliminar{background:#e84855}
.ticket-estado,.ticket-prioridad{display:inline-block;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:900}.ticket-estado.abi{background:#dff6ff;color:#087ca6}.ticket-estado.pro{background:#fff1d7;color:#9a5f00}.ticket-estado.res,.ticket-estado.cer{background:#dcf6e8;color:#128157}.ticket-prioridad.baj{background:#dff6ff;color:#087ca6}.ticket-prioridad.med{background:#e1f7eb;color:#138157}.ticket-prioridad.alt{background:#fff1d7;color:#9a5f00}.ticket-prioridad.cri{background:#ffe2e2;color:#ba1f2b}
.soporte-busqueda-avanzada{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:12px;align-items:end}.soporte-busqueda-avanzada label{margin:0;color:#526579;font-size:11px;font-weight:850}.soporte-busqueda-avanzada .check{display:flex;align-items:center;gap:8px}.soporte-busqueda-avanzada .check input{width:auto;margin:0}.soporte-busqueda-avanzada button,.soporte-busqueda-avanzada .boton{width:auto;margin:0}
.soporte-form-corto{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.soporte-form-corto label{min-width:130px;margin:0;color:#526579;font-size:11px;font-weight:850}.soporte-form-corto input,.soporte-form-corto select{margin-top:4px}.soporte-form-corto button{width:auto;margin:0}.soporte-chart-card,.soporte-graficas-dos article{padding:14px;border:1px solid #d9e6ef;border-radius:12px;background:#fff;box-shadow:0 7px 18px rgba(18,60,105,.05)}.soporte-chart-card h3,.soporte-graficas-dos h3{margin:0 0 10px;color:#123c69}.soporte-chart-card canvas,.soporte-graficas-dos canvas{width:100%;border-radius:10px;background:#fff}.soporte-graficas-dos{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:14px}.soporte-graficas-dos article:nth-child(3){grid-column:1/-1}
.soporte-tiempo-cards{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin:14px 0}.soporte-tiempo-cards article{padding:14px;border-radius:11px;background:linear-gradient(135deg,#f7fbfd,#eef7f5);border:1px solid #dbe7ef}.soporte-tiempo-cards strong,.soporte-tiempo-cards span{display:block}.soporte-tiempo-cards strong{color:#123c69;font-size:22px}.soporte-tiempo-cards span{color:#637588;font-size:11px;font-weight:850}
.soporte-ajuste-bloque{margin-top:16px;padding:14px;border:1px solid #dbe6ef;border-radius:12px;background:#fff}.soporte-ajuste-bloque h3,.soporte-ajuste-bloque h4{margin:0 0 10px;color:#123c69}.soporte-tags{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0 12px}.soporte-tags span{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:999px;color:#138157;background:#e1f7eb;font-size:11px;font-weight:850}.soporte-tag-form{display:inline;margin:0}.soporte-tag-form button{display:grid;width:18px;height:18px;margin:0;padding:0;place-items:center;border:0;border-radius:50%;color:#fff;background:#ef5665;font-weight:900;line-height:1;cursor:pointer}.info-verde{padding:10px 12px;border-radius:8px;color:#14764f;background:#e1f7eb}.soporte-inline-form{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.soporte-inline-form input{max-width:340px}.soporte-inline-form button{width:auto;margin:0}.soporte-ajustes .check{display:flex;align-items:center;gap:8px}.soporte-ajustes .check input{width:auto;margin:0}.usuario-inactivar{display:flex;justify-content:flex-end;margin-top:8px}.usuario-inactivar button{width:auto}

.hotspot-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;padding:24px 26px;border-radius:16px;color:white;background:linear-gradient(135deg,#123c69 0%,#0c82aa 48%,#12a98b 100%);box-shadow:0 16px 34px rgba(18,60,105,.16)}.hotspot-hero span{display:block;margin-bottom:7px;color:#8ff8ea;font-size:11px;font-weight:900;letter-spacing:.12em}.hotspot-hero h2{margin:0;font-size:25px}.hotspot-hero p{margin:5px 0 0;color:#d8fff5}.hotspot-hero .boton{width:auto;margin:0;background:#fff;color:#123c69}.hotspot-tabs{margin-bottom:14px}.hotspot-kpis{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin:0 0 14px}.hotspot-kpis article{padding:15px 16px;border:1px solid #d9e7ef;border-radius:13px;background:linear-gradient(180deg,#fff,#f7fbfd);box-shadow:0 10px 22px rgba(18,60,105,.06)}.hotspot-kpis span{display:block;color:#65778a;font-size:12px;font-weight:800}.hotspot-kpis strong{display:block;margin-top:6px;color:#123c69;font-size:24px}.hotspot-panel{border-top:4px solid #12a98b}.hotspot-panel h2{color:#123c69}.hotspot-panel pre{margin:0;white-space:pre-wrap;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace}.hotspot-inline{display:inline-flex;align-items:center;gap:6px;margin:2px}.hotspot-inline select{min-width:130px;height:32px}.hotspot-inline button{width:auto;margin:0}
@media(max-width:900px){.hotspot-hero{align-items:flex-start;flex-direction:column}.hotspot-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.hotspot-kpis{grid-template-columns:1fr}}
@media(max-width:1000px){.soporte-kpis-wisp{grid-template-columns:repeat(2,minmax(0,1fr))}.soporte-busqueda-avanzada,.soporte-graficas-dos,.soporte-tiempo-cards{grid-template-columns:1fr}.soporte-graficas-dos article:nth-child(3){grid-column:auto}}
@media(max-width:700px){.soporte-wisp-head{align-items:stretch;flex-direction:column}.soporte-wisp-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.soporte-wisp-tabs a{flex:0 0 auto}.soporte-filtros-linea,.soporte-form-corto,.soporte-inline-form{align-items:stretch;flex-direction:column}.soporte-filtros-linea label,.soporte-filtros-linea button,.soporte-filtros-linea .boton,.soporte-form-corto label,.soporte-form-corto button{width:100%}.soporte-kpis-wisp{grid-template-columns:1fr}}

/* 0.22.50: estadísticas de soporte con el mismo estilo visual de Finanzas. */
.soporte-graficas-finanzas{margin-top:16px}.soporte-graficas-finanzas .finanza-chart canvas{height:286px}.soporte-graficas-finanzas .finanza-chart.ancho canvas{height:286px}.soporte-wisp-panel.finanzas-estadisticas-panel .cabecera-modulo{align-items:flex-start}.soporte-wisp-panel.finanzas-estadisticas-panel .soporte-form-corto{padding:12px;border:1px solid #dce8f1;border-radius:12px;background:#f8fbfd}.soporte-wisp-panel.finanzas-estadisticas-panel>h3{margin:18px 0 10px;color:#123c69}.soporte-tiempo-cards article{position:relative;overflow:hidden}.soporte-tiempo-cards article:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#123c69,#1f75b5,#12a98b)}@media(max-width:1100px){.soporte-graficas-finanzas{grid-template-columns:1fr}}

/* 0.22.55: tooltip persistente al hacer click en la gráfica financiera del dashboard. */
.tooltip-grafica-financiera{position:absolute;z-index:9999;width:170px;padding:18px 20px;border:1px solid #d3d9df;border-radius:4px;background:#fff;color:#526071;box-shadow:0 6px 16px rgba(18,38,63,.18);pointer-events:none}.tooltip-grafica-financiera strong{display:block;margin-bottom:18px;color:#3e4b59;font-size:14px;font-weight:800}.tooltip-grafica-financiera span{display:block;margin-bottom:8px;color:#718096;font-size:13px}.tooltip-grafica-financiera b{display:block;font-size:22px;font-weight:600;line-height:1.1}
.tooltip-trafico-historico{position:absolute;z-index:9999;width:245px;padding:15px 17px;border:1px solid #d4dde6;border-radius:8px;background:#fff;color:#526071;box-shadow:0 10px 24px rgba(18,38,63,.18);pointer-events:none}.tooltip-trafico-historico strong{display:block;margin-bottom:11px;color:#123c69;font-size:14px;font-weight:900}.tooltip-trafico-historico span{display:block;margin-top:8px;margin-bottom:3px;color:#718096;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.tooltip-trafico-historico b{display:block;font-size:20px;font-weight:800;line-height:1.1}.tooltip-trafico-historico .valor-descarga{color:#0aa8df}.tooltip-trafico-historico .valor-subida{color:#f29b19}.tooltip-trafico-historico small{display:block;margin-top:11px;padding-top:10px;border-top:1px solid #e5edf4;color:#607286;font-size:12px;line-height:1.35}
