/* Gestión de Servicios y Pagos v1.0.1 — MonitorIoT Modern */
:root{--surface:#111d30;--surface2:#182840;--stroke:#30435f;--text:#eaf2ff;--muted:#9eb2ce;--accent:#448dff;--glow:rgba(68,141,255,.17)}
*{box-sizing:border-box}body{background:radial-gradient(ellipse at 90% 0%,#1a3357 0%,transparent 40%),#0b1423;color:var(--text);font-family:Inter,system-ui,-apple-system,'Segoe UI',sans-serif;min-height:100vh}a{color:#85b9ff;text-decoration:none}a:hover{color:#c4dcff}.container-fluid>.row{min-height:100vh}.navbar{background:#111f34!important;border-bottom:1px solid var(--stroke);padding:14px 18px!important}.sidebar{background:linear-gradient(180deg,#15263f,#101b2d)!important;border-right:1px solid #30425c;min-height:100vh;padding:24px 14px!important}.sidebar h5{font-size:1rem;font-weight:750;line-height:1.45;padding:10px 12px 20px;margin-bottom:10px!important;border-bottom:1px solid #31425a}.sidebar .nav-link{display:flex;align-items:center;min-height:43px;color:#aebfda;border-radius:11px;margin:4px 0;padding:10px 13px;font-size:.89rem;font-weight:550;transition:background .15s,color .15s,transform .15s}.sidebar .nav-link:hover{background:#223d61;color:#fff;transform:translateX(2px)}.sidebar .nav-link.active{background:linear-gradient(95deg,#276bd0,#31588b);color:#fff;box-shadow:0 5px 18px rgba(29,103,223,.23)}.content{padding:30px clamp(18px,3vw,48px)!important;min-width:0}.content>h3{font-weight:750;letter-spacing:-.035em;font-size:clamp(1.45rem,2.3vw,2rem);margin-bottom:25px!important}.card{background:linear-gradient(150deg,rgba(29,48,74,.97),rgba(19,34,55,.98));border:1px solid var(--stroke);border-radius:19px;color:var(--text);box-shadow:0 12px 30px rgba(0,0,0,.12)}.card h5{font-weight:700;letter-spacing:-.02em;margin-bottom:18px}.dashboard-stats .card{min-height:135px;position:relative;overflow:hidden;padding:21px!important}.dashboard-stats .card:after{content:'';position:absolute;width:95px;height:95px;right:-26px;top:-30px;border-radius:50%;background:var(--glow)}.dashboard-stats .card h3{font-weight:800;letter-spacing:-.045em;font-size:clamp(1.4rem,2vw,2rem)}.small-muted,.form-text{color:var(--muted)!important}.form-label,label{color:#cad8eb;font-size:.88rem;font-weight:550;margin-bottom:7px}.form-control,.form-select,textarea{background:#0e1b2e;color:#f0f5ff;border:1px solid #3b506d;border-radius:10px;min-height:42px}.form-control:focus,.form-select:focus{background:#12243a;color:white;border-color:#579bff;box-shadow:0 0 0 3px rgba(68,141,255,.17)}.form-control::placeholder{color:#839ab8}.btn{border-radius:10px;font-weight:650;padding:9px 15px;transition:transform .15s,box-shadow .15s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(110deg,#2675e7,#478ff6);border-color:#3c83ef;box-shadow:0 5px 14px rgba(40,110,220,.19)}.btn-primary:hover{background:#246bdb;border-color:#65a4ff;box-shadow:0 7px 20px rgba(40,110,220,.3)}.btn-sm{font-size:.78rem;padding:6px 10px}.table{--bs-table-bg:transparent;--bs-table-color:#e6effc;--bs-table-border-color:#344860;margin-bottom:0}.table thead th{background:#213653!important;color:#c4d7f2;font-size:.78rem;text-transform:uppercase;letter-spacing:.035em;padding:13px!important;border-bottom:1px solid #435978}.table td{vertical-align:middle;padding:13px!important}.table tbody tr:hover{--bs-table-bg:rgba(67,112,166,.12)}.table-responsive{border-radius:14px}.dataTables_wrapper,.dt-container{color:#d5e2f5}.dt-container .dt-layout-row{gap:12px;flex-wrap:wrap}.dt-container input,.dt-container select{background:#102039!important;color:#e9f1ff!important;border:1px solid #3b506d!important;border-radius:9px!important;padding:6px 10px!important}.page-link,.dt-paging-button{background:#172942!important;color:#dbeaff!important;border-color:#3a5474!important;border-radius:8px!important}.dt-paging-button.current{background:#2869bd!important}.select2-container--default .select2-selection--single{background:#0e1b2e;border:1px solid #3b506d;height:42px;border-radius:10px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#eaf2ff;line-height:40px;padding-left:12px}.select2-container--default .select2-selection--single .select2-selection__arrow{height:40px}.select2-dropdown{background:#172942;color:white;border:1px solid #3b506d;border-radius:10px}.select2-search__field{background:#102039!important;color:#fff!important}.select2-results__option--highlighted{background:#24518c!important}.alert{border-radius:12px}.logo{max-width:150px;max-height:70px;object-fit:contain}.content .card form .mb-3{margin-bottom:1.1rem!important}.content .card .border-bottom{border-color:#354b69!important}.badge{border-radius:8px}@media(max-width:767px){.container-fluid>.row{display:block}.sidebar{min-height:auto;border-right:0;border-bottom:1px solid var(--stroke)}.content{padding:19px 13px!important}.dashboard-stats .card{min-height:115px}.card{border-radius:15px}.card.p-4{padding:18px!important}.table td,.table th{padding:10px!important}.btn{max-width:100%;white-space:normal}.dt-layout-cell{width:100%}}

/* v1.0.2 — responsive navigation, company identity and account header */
.app-shell>.row{min-height:100vh}.sidebar{transition:width .2s ease,flex-basis .2s ease;position:relative;z-index:1020}.brand-area{display:flex;align-items:center;gap:10px;padding:8px 8px 20px;border-bottom:1px solid var(--stroke);margin-bottom:14px;min-width:0}.brand-icon{width:42px;height:42px;flex-shrink:0;display:grid;place-items:center;background:#284a79;border-radius:12px;font-size:22px;color:white}.brand-icon img{max-width:36px;max-height:36px;object-fit:contain}.brand-copy{min-width:0;flex:1}.brand-copy strong{display:block;font-size:.92rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis}.brand-copy small{display:block;color:var(--muted);font-size:.7rem;margin-top:5px}.sidebar-collapse-btn{background:transparent;color:#a7bdda;border:0;border-radius:8px;padding:6px}.sidebar-collapse-btn:hover{background:#294569;color:white}.sidebar .nav-link{gap:12px;white-space:nowrap}.sidebar .nav-link i{font-size:1.16rem;min-width:23px;text-align:center}.sidebar-links{overflow-x:hidden}.app-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 0 22px;margin-bottom:25px;border-bottom:1px solid var(--stroke)}.topbar-kicker{display:block;color:#79adff;font-size:.67rem;font-weight:750;letter-spacing:.15em;margin-bottom:6px}.app-topbar h3{font-size:clamp(1.35rem,2.1vw,1.9rem);font-weight:750;margin:0}.app-topbar-user{display:flex;align-items:center;gap:12px}.topbar-company-logo{max-width:110px;max-height:43px;object-fit:contain;margin-right:10px}.user-details{text-align:right}.user-details strong,.user-details small{display:block;max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-details small{font-size:.72rem;color:var(--muted)}.user-avatar{border-radius:50%;background:#2a5184;color:#fff;border:1px solid #4573aa;width:43px;height:43px;padding:0}.dropdown-menu{background:#182840;border:1px solid var(--stroke);box-shadow:0 12px 30px #0005}.dropdown-item{color:#dce8fa}.dropdown-item:hover,.dropdown-item:focus{background:#2b4a73;color:white}.dropdown-divider{border-color:var(--stroke)}.mobile-topbar{height:60px;align-items:center;justify-content:space-between;gap:12px;background:#14243a;border-bottom:1px solid var(--stroke);padding:0 15px;position:sticky;top:0;z-index:1040}.sidebar-backdrop{position:fixed;inset:0;background:#0009;z-index:1045}.sidebar-backdrop[hidden]{display:none!important}body.sidebar-collapsed .sidebar{width:78px!important;flex:0 0 78px!important;max-width:78px!important}body.sidebar-collapsed .content{flex:1!important;width:calc(100% - 78px)!important;max-width:none!important}body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .nav-label{display:none}body.sidebar-collapsed .brand-area{flex-wrap:wrap;justify-content:center;padding:8px 0 16px}body.sidebar-collapsed .sidebar-collapse-btn{width:100%;justify-content:center}body.sidebar-collapsed .sidebar .nav-link{justify-content:center;padding:10px 6px}body.sidebar-collapsed .sidebar .nav-link i{font-size:1.35rem}
@media(min-width:768px){.sidebar{min-height:100vh}.content{flex:1;max-width:none}.mobile-topbar{display:none!important}}
@media(max-width:767px){.mobile-topbar{display:flex}.sidebar{display:block!important;position:fixed;left:0;top:0;bottom:0;width:min(295px,85vw)!important;max-width:none!important;min-height:100vh;overflow-y:auto;transform:translateX(-105%);transition:transform .22s ease;z-index:1050;box-shadow:10px 0 30px #0005}.sidebar.mobile-open{transform:translateX(0)}.app-topbar{padding-bottom:15px;margin-bottom:18px}.topbar-company-logo,.user-details{display:none}.app-topbar-user{gap:5px}.content{width:100%!important;max-width:100%!important}body.sidebar-collapsed .sidebar{width:min(295px,85vw)!important;max-width:none!important}body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .nav-label{display:block}body.sidebar-collapsed .content{width:100%!important}}

/* Registro de pagos v1.0.3 */
.gsp-service-card{width:100%;min-height:96px;display:flex;flex-direction:column;gap:12px;justify-content:center;text-align:left;border:1px solid #344866;border-radius:16px;background:#1d304b;color:#f3f7ff;padding:18px;transition:.15s ease}.gsp-service-card span{color:#80b8ff;font-weight:700}.gsp-service-card:hover,.gsp-service-card.gsp-active{border-color:#4c9aff;background:#233e62;box-shadow:0 0 0 2px #3282ff33}.gsp-month-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.gsp-month{border-radius:10px;border:1px solid transparent;padding:12px 4px;font-weight:600}.gsp-paid{background:#164e3b;color:#b5f8d0}.gsp-pending{background:#5b461c;color:#ffdf8b}.gsp-old{background:#3d4655;color:#d0d5df}.gsp-selected{outline:2px solid #5fa5ff;outline-offset:2px}@media(max-width:600px){.gsp-month-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* v1.0.4 - Ficha del cliente */
.gsp-account-service{border:1px solid rgba(148,163,184,.22);border-radius:14px;padding:16px;background:rgba(148,163,184,.05)}
.gsp-month-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px}
.gsp-month{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70px;gap:3px;border-radius:10px;border:1px solid rgba(148,163,184,.2);font-size:.8rem}
.gsp-month i{font-size:1.15rem}.gsp-month a{font-size:.72rem;color:inherit;text-decoration:underline}
.gsp-month.paid{background:rgba(34,197,94,.14);color:#4ade80;border-color:rgba(34,197,94,.3)}
.gsp-month.pending{background:rgba(245,158,11,.12);color:#fbbf24;border-color:rgba(245,158,11,.28)}
.gsp-month.inactive{opacity:.48}
@media(max-width:1100px){.gsp-month-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:550px){.gsp-month-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Cuenta corriente v1.0.5 */
.gsp-month.overdue {background:rgba(239,68,68,.14);border-color:rgba(239,68,68,.5);color:#fca5a5}
.gsp-state {display:inline-flex;padding:5px 11px;border-radius:999px;font-size:.8rem;font-weight:700}
.gsp-state-paid {background:rgba(34,197,94,.16);color:#4ade80}
.gsp-state-pending {background:rgba(245,158,11,.16);color:#fbbf24}
.gsp-state-overdue {background:rgba(239,68,68,.16);color:#fca5a5}
.gsp-state-future {background:rgba(148,163,184,.16);color:#cbd5e1}

/* v1.0.6: Select2 en todos los selectores */
.select2-container{max-width:100%}.select2-results__option .gsp-option{display:flex;flex-direction:column;gap:2px;padding:3px 0}.gsp-option small{opacity:.75;font-size:.78rem}.select2-dropdown{z-index:1090!important}


/* v1.0.7 - Consistent dark Select2 palette with accessible hover/focus contrast. */
:root { --gsp-select-bg:#14263e; --gsp-select-hover:#2864a9; --gsp-select-text:#edf5ff; --gsp-select-muted:#b9cde6; --gsp-select-border:#456181; }
.select2-container { max-width:100%; font-size:.92rem; }
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple { background:var(--gsp-select-bg)!important; border:1px solid var(--gsp-select-border)!important; border-radius:10px!important; min-height:42px; color:var(--gsp-select-text)!important; }
.select2-container--default .select2-selection--single .select2-selection__rendered { color:var(--gsp-select-text)!important; line-height:40px!important; padding-left:12px!important; }
.select2-container--default .select2-selection--single .select2-selection__placeholder { color:var(--gsp-select-muted)!important; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height:40px!important; }
.select2-container--default .select2-selection--single .select2-selection__arrow b { border-color:#bcd6f7 transparent transparent!important; }
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { border-color:transparent transparent #bcd6f7!important; }
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple { border-color:#69acff!important; box-shadow:0 0 0 3px rgba(72,146,255,.22)!important; }
.select2-container--default .select2-results__options { background:#14263e!important; color:var(--gsp-select-text)!important; }
.select2-container--default .select2-results__option { background:#14263e!important; color:var(--gsp-select-text)!important; padding:10px 12px!important; }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[aria-selected=true],
.select2-container--default .select2-results__option--highlighted[aria-selected=false] { background:var(--gsp-select-hover)!important; color:#fff!important; }
.select2-container--default .select2-results__option[aria-selected=true]:not(.select2-results__option--highlighted) { background:#204366!important; color:#e7f2ff!important; }
.select2-container--default .select2-results__option--disabled { color:#8ba2bf!important; opacity:.65; }
.select2-container--default .select2-results__option--highlighted .gsp-option strong,
.select2-container--default .select2-results__option--highlighted .gsp-option small { color:#fff!important; }
.select2-results__option .gsp-option { display:flex; flex-direction:column; gap:3px; }
.select2-results__option .gsp-option strong { color:inherit; font-weight:650; }
.select2-results__option .gsp-option small { color:var(--gsp-select-muted); opacity:1; font-size:.78rem; }
.select2-dropdown { background:#14263e!important; border:1px solid var(--gsp-select-border)!important; color:var(--gsp-select-text)!important; z-index:1100!important; overflow:hidden; box-shadow:0 12px 25px rgba(0,0,0,.28); }
.select2-container--default .select2-search--dropdown { background:#14263e!important; padding:8px!important; }
.select2-container--default .select2-search--dropdown .select2-search__field { background:#0e1b2e!important; color:#fff!important; border:1px solid #567397!important; border-radius:8px; outline:none; }
.select2-container--default .select2-selection--multiple .select2-selection__choice { background:#264b78!important; color:#fff!important; border:1px solid #4d79a9!important; border-radius:7px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove { color:#fff!important; }
.select2-container--default .select2-selection--multiple .select2-search__field { color:#fff!important; }
.select2-container--disabled .select2-selection { opacity:.6; }
/* Native fallback if CDN Select2 fails. */
select.form-select option { background:#14263e; color:#edf5ff; }

/* v1.0.10: DataTables compactos con detalles responsive */
table.datatable thead th {font-size:14px!important;font-weight:700!important;vertical-align:middle}
table.datatable tbody td {font-size:12.5px!important;line-height:1.45;vertical-align:middle}
table.datatable .gsp-expand-head,table.datatable .gsp-expand-cell {width:38px!important;min-width:38px!important;max-width:38px!important;text-align:center}
table.datatable tbody td.gsp-expand-cell::before {content:'+';display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;color:#fff;background:#2563eb;font-size:18px;font-weight:700;cursor:pointer}
table.datatable tbody tr.parent td.gsp-expand-cell::before {content:'−';background:#475569}
.gsp-responsive-details {display:grid;gap:10px;padding:12px}
.gsp-detail-item strong {display:block;font-size:12px;font-weight:700;color:#93c5fd;margin-bottom:3px}
.gsp-detail-value {font-size:12.5px;overflow-wrap:anywhere}
.gsp-detail-value .btn {margin:2px}

/* v1.0.14 — Modales con paleta oscura MonitorIoT */
.modal { --bs-modal-color:#eaf2ff; }
.modal .modal-content,
.modal .gsp-modal-content {
    background:#182840 !important;
    color:#eaf2ff !important;
    border:1px solid #3b5576 !important;
    border-radius:17px;
    box-shadow:0 22px 60px rgba(0,0,0,.45);
}
.modal .modal-header,
.modal .modal-footer { border-color:#344b69 !important; }
.modal .modal-title,
.modal h1,.modal h2,.modal h3,.modal h4,.modal h5,.modal h6,
.modal p,.modal span,.modal strong,.modal .form-label,.modal label {
    color:#eaf2ff;
}
.modal .text-muted,.modal .form-text,.modal small { color:#a9bed9 !important; }
.modal .form-control,.modal .form-select,.modal textarea,
.modal input:not([type=checkbox]):not([type=radio]):not([type=hidden]) {
    background:#0e1b2e !important;
    border-color:#456181 !important;
    color:#edf5ff !important;
}
.modal .form-control::placeholder,.modal input::placeholder { color:#90a8c8 !important; }
.modal .form-control:focus,.modal .form-select:focus {
    background:#14263e !important;
    color:#fff !important;
    border-color:#69acff !important;
    box-shadow:0 0 0 3px rgba(72,146,255,.2) !important;
}
.modal .btn-close { filter:invert(1) grayscale(100%) brightness(200%); opacity:.85; }
.modal .card { background:#1d304b !important; color:#eaf2ff !important; }
.modal .select2-container { width:100% !important; }
.modal-backdrop.show { opacity:.72; }

/* v1.0.18: etiqueta arriba, valor debajo, en todas las tablas */
.gsp-field-pair, .gsp-detail-item {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-bottom: 9px;
    min-width: 0;
}
.gsp-field-label, .gsp-detail-item > strong {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: #a9caff;
    line-height: 1.3;
}
.gsp-field-value, .gsp-detail-value {
    display: block;
    font-size: 12.5px;
    font-weight: 400;
    color: #eaf2ff;
    line-height: 1.45;
    overflow-wrap: anywhere;
}
.gsp-field-value strong, .gsp-detail-value > strong { font-weight: 400; }
.gsp-responsive-details .gsp-field-pair { margin-bottom: 0; }

/* v1.0.22: mostrar/ocultar contraseñas en toda la aplicación. */
.gsp-password-wrap {
    position: relative;
    width: 100%;
}
.gsp-password-wrap > input.form-control {
    padding-right: 3rem !important;
}
.gsp-password-toggle {
    position: absolute;
    right: 0.4rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2.3rem;
    height: 2.3rem;
    border: 0;
    border-radius: 0.5rem;
    background: transparent;
    color: #93c5fd;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 2;
}
.gsp-password-toggle:hover,
.gsp-password-toggle:focus-visible {
    color: #ffffff;
    background: rgba(96, 165, 250, 0.18);
}
.gsp-password-toggle:focus-visible {
    outline: 2px solid #60a5fa;
    outline-offset: 1px;
}
.gsp-password-toggle i {
    font-size: 1.1rem;
}

/* v1.0.23: acceso de alto contraste y botón de visibilidad */
.gsp-password-toggle { color:#f4f8ff!important; background:#284568!important; border:1px solid #8bb0d8!important; box-shadow:0 1px 5px #0006; }
.gsp-password-toggle i { font-size:1.35rem!important; }
.gsp-password-toggle:hover,.gsp-password-toggle:focus-visible { color:#fff!important; background:#3974b9!important; border-color:#c3e0ff!important; }
.gsp-login-screen { min-height:calc(100vh - 64px); display:flex; align-items:center; justify-content:center; padding:20px 12px; }
.gsp-login-card { width:min(100%,470px); overflow:hidden; border-radius:24px; border:1px solid #55769f; background:#14263d; box-shadow:0 24px 70px #0007; }
.gsp-login-brand { text-align:center; padding:32px 30px 26px; background:linear-gradient(145deg,#254c80,#182e4d); border-bottom:1px solid #42618b; }
.gsp-login-logo { display:block; max-width:200px; max-height:112px; width:auto; object-fit:contain; margin:0 auto 18px; border-radius:10px; }
.gsp-login-placeholder { width:74px; height:74px; margin:0 auto 16px; border-radius:20px; background:#3568a5; display:grid; place-items:center; font-size:2.2rem; color:#fff; }
.gsp-login-brand h1 { font-size:clamp(1.35rem,3vw,1.75rem); font-weight:800; color:#fff; margin:0 0 8px; }
.gsp-login-brand p { color:#d7e7ff; margin:0; font-size:.95rem; }
.gsp-login-form { padding:30px 34px 36px; }
.gsp-login-form h2 { color:#fff; font-size:1.45rem; font-weight:750; margin-bottom:5px; }
.gsp-login-subtitle { color:#bcd0eb; margin-bottom:24px; }
.gsp-login-form .form-label { color:#edf5ff; font-weight:650; margin-bottom:9px; }
.gsp-login-form .form-control { min-height:48px; background:#0e1e33!important; border:1px solid #6b89ae!important; color:#fff!important; font-size:1rem; }
.gsp-login-form .form-control:focus { border-color:#8dbfff!important; box-shadow:0 0 0 3px #4b97ff40!important; }
.gsp-login-form .gsp-password-toggle { width:2.45rem; height:2.45rem; }
.gsp-login-submit { min-height:48px; font-weight:700; font-size:1rem; }
@media(max-width:520px) { .gsp-login-screen { padding:10px 0; min-height:calc(100vh - 30px); } .gsp-login-brand { padding:26px 18px 22px; } .gsp-login-form { padding:25px 22px 30px; } }

/* v1.0.24: pie de página global y versión visible */
main.content {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}
.gsp-app-footer {
    margin-top: auto;
    padding: 18px 4px 4px;
    border-top: 1px solid rgba(139, 176, 216, 0.24);
    color: #c7d7eb;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 22px;
    font-size: 12px;
    line-height: 1.5;
}
.gsp-app-footer-copy { min-width: 0; overflow-wrap: anywhere; }
.gsp-app-footer-version {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
}
.gsp-app-footer-version i { color: #9ec8ff; font-size: 14px; }
.gsp-app-footer-version strong {
    color: #f4f9ff;
    font-weight: 700;
    padding: 3px 8px;
    border: 1px solid rgba(158, 200, 255, 0.35);
    border-radius: 7px;
    background: rgba(56, 108, 171, 0.22);
}
@media (max-width: 640px) {
    .gsp-app-footer {
        justify-content: center;
        text-align: center;
        padding-bottom: 10px;
    }
    .gsp-app-footer-version { justify-content: center; }
}

/* v1.0.28 — Registro de accesos: texto blanco legible en toda la planilla. */
.gsp-login-history-table {
    --bs-table-color: #ffffff;
    --bs-table-striped-color: #ffffff;
    --bs-table-hover-color: #ffffff;
    --bs-table-color-state: #ffffff;
}
.gsp-login-history-table thead th,
.gsp-login-history-table tbody td,
.gsp-login-history-table tbody th,
.gsp-login-history-table tbody tr,
.gsp-login-history-table tbody td code,
.gsp-login-history-table .badge {
    color: #ffffff !important;
}
.gsp-login-history-table tbody tr:nth-of-type(odd) > * {
    --bs-table-bg-type: rgba(255,255,255,.035);
    color: #ffffff !important;
}
.gsp-login-history-table tbody tr:hover > * {
    --bs-table-bg-state: rgba(100,160,225,.12);
    color: #ffffff !important;
}
.gsp-login-history-table .dtr-details,
.gsp-login-history-table .dtr-details li,
.gsp-login-history-table .dtr-title,
.gsp-login-history-table .dtr-data {
    color: #ffffff !important;
}

/* v1.0.30: estado de espera del formulario de acceso */
.gsp-login-wait {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 14px;
    padding: 12px;
    border: 1px solid rgba(157, 196, 244, 0.45);
    border-radius: 10px;
    color: #eff6ff;
    background: #223f62;
    font-size: 0.92rem;
    font-weight: 600;
    text-align: center;
}
.gsp-login-wait[hidden] { display: none !important; }
.gsp-login-submit:disabled { opacity: 0.85; cursor: wait; }

/* v1.0.31 - Pantalla de espera durante la navegación del menú. */
.gsp-menu-loading[hidden] { display: none !important; }
.gsp-menu-loading {
    position: fixed;
    inset: 0;
    z-index: 2100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(5, 15, 30, .76);
    backdrop-filter: blur(3px);
}
.gsp-menu-loading-card {
    width: min(100%, 350px);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 11px;
    padding: 32px 24px;
    border: 1px solid #6387b5;
    border-radius: 18px;
    background: #173353;
    color: #ffffff;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .4);
    text-align: center;
}
.gsp-menu-loading-spinner {
    width: 42px;
    height: 42px;
    color: #9dc9ff;
    border-width: 4px;
}
.gsp-menu-loading-card strong { font-size: 18px; }
.gsp-menu-loading-card > span:last-child { color: #d3e6ff; font-size: 14px; }
.gsp-menu-is-loading { cursor: progress; }
