/* --- Estilos Globales (Mainframe Theme) --- */
        body {
            background-color: #000000; color: #00FF00;
            font-family: 'Consolas', 'Courier New', monospace; font-size: 15px;
            margin: 0; padding: 6px; display: flex;
            height: 100vh; box-sizing: border-box; overflow: hidden;
        }
        .terminal-container {
            display: flex; width: 100%;
            border: 1px solid #004400; padding: 8px; position: relative;
        }

        /* --- Menú Lateral --- */
        .sidebar {
            width: 200px; border-right: 1px dashed #008800; padding-right: 12px;
            display: flex; flex-direction: column; flex-shrink: 0;
            transition: width .25s ease, padding-right .25s ease, opacity .2s ease, border-right-width .2s ease;
        }
        body.sidebar-collapsed .sidebar {
            width: 0; padding-right: 0; opacity: 0; overflow: hidden; border-right-width: 0;
            pointer-events: none;
        }
        .brand { font-weight: bold; color: #00FFFF; margin-bottom: 5px; text-transform: uppercase; }
        .user-info { color: #00AA00; margin-bottom: 20px; border-bottom: 1px solid #008800; padding-bottom: 10px; font-size: 14px; }
        .menu-list { list-style: none; padding: 0; margin: 0; flex-grow: 1; overflow-y: auto; }
        .menu-list::-webkit-scrollbar { display: none; }
        .menu-item { padding: 4px 0; cursor: pointer; }
        .menu-item.active { background-color: #00FF00; color: #000000; font-weight: bold; }
        .menu-item::before { content: "  "; }
        .menu-item.active::before { content: "> "; }
        .logout { margin-top: 10px; color: #FF5555; }
        .sidebar a.menu-item { text-decoration: none; display: block; }

        /* --- Contenido Principal --- */
        .main-content {
            flex-grow: 1; padding-left: 16px; display: flex; flex-direction: column;
            position: relative; overflow-y: auto; overflow-x: auto; min-width: 0;
            transition: padding-left .25s ease;
        }
        body.sidebar-collapsed .main-content { padding-left: 6px; }
        .main-content::-webkit-scrollbar { width: 8px; }
        .main-content::-webkit-scrollbar-track { background: #000; }
        .main-content::-webkit-scrollbar-thumb { background: #004400; }
        .sidebar-toggle {
            position: sticky; top: 0; z-index: 6; align-self: flex-start;
            background:#001800; color:#00FFFF; border:1px solid #00AAAA; padding:4px 10px;
            cursor:pointer; font-family:inherit; font-size:13px; margin-bottom:8px;
        }
        .sidebar-toggle:hover { background:#003300; }
        
        .header-title {
            font-size: 18px; color: #00FFFF; text-transform: uppercase; margin-bottom: 15px;
            border-bottom: 1px solid #008800; padding-bottom: 5px; display: flex; justify-content: space-between;
        }
        
        /* Formularios */
        .row { display: flex; align-items: center; margin-bottom: 8px; flex-wrap: wrap; gap: 10px; }
        label { white-space: pre; color: #00FF00; }
        input, select {
            background: transparent; border: none; border-bottom: 1px solid #008800;
            color: #FFFFFF; font-family: inherit; font-size: inherit; outline: none;
            text-transform: uppercase; padding: 2px 0; flex: 1; min-width: 120px;
        }
        input[type="email"], input[type="password"] { text-transform: none; }
        input:focus, select:focus { background-color: #004400; border-bottom: 1px solid #00FF00; }
        input[readonly] { color: #00AAAA; border-bottom: none; }
        .section-title { color: #00FFFF; margin-top: 20px; margin-bottom: 10px; border-bottom: 1px dashed #008800; font-weight: bold;}

        /* Tablas */
        .table-container { width: 100%; overflow: auto; margin-top: 8px; flex: 1; min-height: 0; }
        table { width: max-content; border-collapse: collapse; font-size: 13px; }
        th, td { text-align: left; padding: 4px 10px; white-space: nowrap; border-right: 1px dashed #004400; }
        th:last-child, td:last-child { border-right: none; }
        th { color: #00FFFF; border-bottom: 1px dashed #008800; font-weight: normal; background: #001100; }
        .table-container thead th { position: sticky; top: 0; z-index: 2; }
        .pager-servicios { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; flex-wrap:wrap; }
        .pager-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
        .pager-info { color:#00AAAA; min-width:130px; text-align:center; }
        .pager-summary { color:#00AAAA; }
        .col-ancho-contenedor { width: 150px; min-width: 150px; max-width: 150px; }
        .col-ancho-id { width: 70px; min-width: 70px; max-width: 70px; }
        .col-ancho-corto { width: 90px; min-width: 90px; max-width: 90px; }
        th.col-ancho-contenedor {
            white-space: normal;
            line-height: 1.15;
            vertical-align: bottom;
            word-break: break-word;
        }
        th.col-ancho-id,
        th.col-ancho-corto {
            white-space: normal;
            line-height: 1.15;
            vertical-align: bottom;
            word-break: break-word;
        }
        td.col-ancho-contenedor {
            white-space: normal;
            line-height: 1.2;
            word-break: break-word;
        }
        td.col-ancho-id,
        td.col-ancho-corto {
            white-space: normal;
            line-height: 1.2;
            word-break: break-word;
        }
        td.col-ancho-id { text-align: right; }
        tbody tr:nth-child(odd) { background: rgba(0,68,0,0.18); }
        tbody tr:hover { background: rgba(0,255,0,0.09); cursor: default; }
        .td-editable-op { cursor: cell; }
        .td-editable-op:hover { outline: 1px solid #00AAAA; outline-offset: -1px; background: rgba(0,170,170,.08); }
        .td-activa-op { outline: 2px solid #00FFFF !important; outline-offset: -2px; background: rgba(0, 120, 120, 0.24) !important; }
        .td-editando { padding: 0 4px !important; background: #002222 !important; outline: 1px solid #00FFFF; }
        .td-guardando { opacity: .72; }
        .inline-cell-input {
            width: 100%;
            min-width: 0;
            height: 26px;
            box-sizing: border-box;
            border: 0;
            border-bottom: 1px solid #00FFFF;
            background: #001818;
            color: #FFFFFF;
            padding: 3px 5px;
            font-family: inherit;
            font-size: 13px;
            text-transform: none;
        }
        .inline-cell-input:focus { background:#002E2E; border-bottom-color:#00FFFF; }

        .footer { margin-top: auto; padding-top: 10px; border-top: 1px solid #008800; color: #00AA00; font-size: 14px; display: flex; align-items: center; justify-content: center; gap: 20px; }
        .btn-guardar { background: #00FF00; color: #000000; border: 1px solid #00FF00; padding: 5px 18px; cursor: pointer; font-family: inherit; font-size: inherit; font-weight: bold; }
        .btn-guardar:hover { background: #AAFFAA; }
        .btn-secundario { background: transparent; color: #00FFFF; border: 1px solid #00AAAA; padding: 5px 18px; cursor: pointer; font-family: inherit; font-size: inherit; }
        .btn-secundario:hover { background: #002222; }
        .btn-secundario:disabled { opacity:.45; cursor:not-allowed; background:transparent; }
        .btn-peligro { background:#330000; color:#FF7777; border:1px solid #FF5555; padding:5px 18px; cursor:pointer; font-family:inherit; font-size:inherit; }
        .btn-peligro:hover { background:#550000; }
        .contenedor-bloque { border: 1px dashed #004400; padding: 8px 10px; margin-bottom: 10px; }
        .cont-header { color: #00FFFF; font-weight: bold; margin-bottom: 8px; font-size: 14px; }
        .hint { color: #00AAAA; font-size: 13px; margin-bottom: 6px; }
        
        /* Motor SPA */
        .view-screen { display: none; flex-direction: column; height: 100%; }
        .view-active { display: flex; }

        /* Botón de tema */
        .tema-toggle { margin-top: 10px; padding: 5px 0; cursor: pointer; color: #008800; font-size: 13px; border-top: 1px dashed #004400; text-align: center; }
        .tema-toggle:hover { color: #00FF00; }
        .menu-section { color: #008800; font-size: 12px; padding: 8px 0 2px 2px; border-top: 1px dashed #004400; margin-top: 6px; pointer-events: none; }
        body.theme-light .menu-section { color: #557755 !important; border-color: #88BB88 !important; }

        /* ── TEMA CLARO ── */
        body.theme-light { background-color: #EEF4EE !important; color: #003300 !important; }
        body.theme-light .terminal-container { border-color: #88BB88 !important; }
        body.theme-light .sidebar { border-color: #88BB88 !important; }
        body.theme-light .brand { color: #005588 !important; }
        body.theme-light .user-info { color: #336633 !important; border-color: #88BB88 !important; }
        body.theme-light .menu-item { color: #003300 !important; }
        body.theme-light .menu-item.active { background-color: #003300 !important; color: #FFFFFF !important; }
        body.theme-light .logout { color: #CC2222 !important; }
        body.theme-light .tema-toggle { color: #336633 !important; border-color: #88BB88 !important; }
        body.theme-light .tema-toggle:hover { color: #003300 !important; }
        body.theme-light .main-content::-webkit-scrollbar-track { background: #E0EEE0 !important; }
        body.theme-light .main-content::-webkit-scrollbar-thumb { background: #66AA66 !important; }
        body.theme-light .header-title { color: #005588 !important; border-color: #88BB88 !important; }
        body.theme-light .reut-panel-title { color: #000000 !important; font-weight: bold !important; }
        body.theme-light label { color: #003300 !important; }
        body.theme-light input, body.theme-light select { border-color: #66AA66 !important; color: #111111 !important; }
        body.theme-light input:focus, body.theme-light select:focus { background-color: #D4EDD4 !important; border-color: #003300 !important; }
        body.theme-light input[readonly] { color: #557755 !important; }
        body.theme-light .section-title { color: #005588 !important; border-color: #88BB88 !important; }
        body.theme-light th { color: #005588 !important; border-color: #88BB88 !important; background: #C4DCC4 !important; }
        body.theme-light td { border-color: #AACCAA !important; color: #003300 !important; }
        body.theme-light tbody tr:nth-child(odd) { background: rgba(0,100,0,0.06) !important; }
        body.theme-light tbody tr:hover { background: rgba(0,100,0,0.13) !important; }
        body.theme-light .footer { border-color: #88BB88 !important; color: #336633 !important; }
        body.theme-light .btn-guardar { background: #004400 !important; color: #FFFFFF !important; border-color: #004400 !important; }
        body.theme-light .btn-guardar:hover { background: #006600 !important; }
        body.theme-light .btn-secundario { color: #005588 !important; border-color: #005588 !important; }
        body.theme-light .btn-secundario:hover { background: #D8EAF8 !important; }
        body.theme-light .btn-peligro { color:#AA0000 !important; border-color:#AA0000 !important; background:#FFF0F0 !important; }
        body.theme-light .btn-peligro:hover { background:#FFDCDC !important; }
        body.theme-light .pager-info, body.theme-light .pager-summary { color: #557755 !important; }
        body.theme-light .contenedor-bloque { border-color: #88BB88 !important; }
        body.theme-light .cont-header { color: #005588 !important; }
        body.theme-light .hint { color: #557755 !important; }
        body.theme-light .td-activa-op { outline-color:#0077AA !important; background: rgba(0, 119, 170, 0.18) !important; }
        /* Multi-eliminación */
        .th-sel, .td-sel { display:none; }
        .modo-sel .th-sel, .modo-sel .td-sel { display:table-cell; text-align:center; }
        .td-sel input[type=checkbox] { width:14px; height:14px; cursor:pointer; accent-color:#FF5555; }
        .modo-sel tr:hover { outline:1px solid #FF555544; }
        .modo-sel tr.fila-sel { background:#1a0000 !important; }
        tr.fila-reut td { background: rgba(255,140,0,0.13) !important; }
        tr.fila-reut td.col-reut-tag { color:#FF8C00; font-weight:bold; }
        body.theme-light tr.fila-reut td { background: rgba(200,100,0,0.10) !important; }
        #reut-badge, #reut-atendidos-badge { color:#FF8C00; font-size:14px; }
        .th-reut-cont { min-width:160px; }
        .th-reut-fecha { min-width:180px; }
        body.theme-light #reut-badge,
        body.theme-light #reut-atendidos-badge { color:#CC6600; }
        .btn-reenviar { background:transparent; color:#FF8C00; border:1px solid #FF8C00; padding:2px 10px; cursor:pointer; font-family:inherit; font-size:12px; }
        .btn-reenviar:hover { background:#331500; }
        .btn-atender-reut { background:#330000; color:#FF7777; border:1px solid #FF5555; padding:5px 18px; cursor:pointer; font-family:inherit; font-size:inherit; }
        .btn-atender-reut:hover { background:#550000; }
        .btn-atender-reut:disabled { opacity:.45; cursor:not-allowed; }
        .reut-count-sel { color:#FF8C00; font-weight:bold; }
        .reut-chk-col { text-align:center; width:42px; min-width:42px; }
        #view-alertas-reut-atendidos th:nth-child(8),
        #view-alertas-reut-atendidos td:nth-child(8) { display:none; }
        .reut-chk { width:14px; height:14px; cursor:pointer; accent-color:#FF5555; }
        .reut-atendido-chk { width:14px; height:14px; cursor:pointer; accent-color:#FF8C00; }
        .coord-chk, .coord-atendido-chk,
        #chk-coord-exportacion-all,
        #chk-coord-temporales-all,
        #chk-coord-atendidos-all {
            width:14px;
            height:14px;
            cursor:pointer;
            accent-color:#FF8C00;
        }
        .reut-header-compact { margin-bottom:6px; align-items:center; gap:16px; }
        .reut-date-time { color:#00FF00; font-size:16px; display:flex; align-items:center; gap:12px; white-space:nowrap; }
        .reut-date-time #reut-clock { color:#00FFFF; font-weight:bold; }
        .reut-actions-row { margin-bottom:4px; gap:8px; }
        .reut-hint { margin-bottom:3px; }
        .reut-list-table { margin-top:3px; }
        .reut-list-table table { font-size:13.5px; }
        .reut-options-hidden .reut-sync-panel { display: none !important; }
        .reut-options-hidden .reut-hint { display: none !important; }
        .reut-grid-panels { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:10px; margin-top:6px; flex: 1; min-height: 0; }
        .reut-panel { border:1px solid #004400; padding:6px; background:rgba(0,0,0,0.12); display: flex; flex-direction: column; }
        .reut-panel-title { color:#00FFFF; font-weight:bold; margin-bottom:6px; }
        .reut-mail-badge { display:inline-block; padding:2px 6px; border-radius:3px; font-size:11px; font-weight:bold; }
        .reut-mail-badge.sent { background:#004400; color:#00FF00; }
        .reut-mail-badge.pending { background:#332200; color:#FFCC00; }
        .reut-list-table th,
        .reut-list-table td { padding:3px 8px; line-height:1.15; }
        .reut-subtitle { color:#00FFFF; margin:14px 0 6px; font-weight:bold; }
        .reut-atendidos-table { margin-bottom:12px; }
        .dias-libres-alerta { color:#FF5555; font-weight:bold; }
        .dias-libres-ok { color:#00FF00; }
        .dias-libres-urgente { color:#FF3333; font-weight:bold; text-transform:uppercase; }
        .tag-manual { color:#FF8C00; font-weight:bold; }
        .tag-auto { color:#00AAAA; }
        .tag-seguimiento { color:#FFFF00; font-weight:bold; }
        body.theme-light .btn-reenviar { color:#CC5500; border-color:#CC5500; }
        body.theme-light .btn-reenviar:hover { background:#FFEEDD; }
        body.theme-light .btn-atender-reut { color:#AA0000; border-color:#AA0000; background:#FFF0F0; }
        body.theme-light .btn-atender-reut:hover { background:#FFDCDC; }
        body.theme-light .reut-count-sel { color:#CC5500; }
        body.theme-light .reut-date-time { color:#006600; }
        body.theme-light .reut-date-time #reut-clock { color:#005588; }
        body.theme-light .reut-subtitle { color:#005A8C; }
        body.theme-light .dias-libres-alerta,
        body.theme-light .dias-libres-urgente { color:#CC0000; }
        body.theme-light .dias-libres-ok { color:#006600; }
        body.theme-light .tag-manual { color:#CC5500; }
        body.theme-light .tag-seguimiento { color:#AA8800; }
        .coordinacion-grid {
            display:grid;
            grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
            gap:12px;
            flex:1;
            min-height:0;
            height:100%;
        }
        .coordinacion-panel {
            border:1px dashed #008800;
            background:#001000;
            display:flex;
            flex-direction:column;
            min-width:0;
            min-height:0;
        }
        .coordinacion-panel-title {
            color:#00FFFF;
            border-bottom:1px dashed #004400;
            padding:8px 10px;
            font-weight:bold;
            text-transform:uppercase;
            display:flex;
            align-items:center;
            justify-content:space-between;
            gap:10px;
        }
        .coordinacion-count {
            color:#00FF00;
            font-size:12px;
            white-space:nowrap;
        }
        .coordinacion-panel-body {
            flex:1;
            min-height:0;
            padding:0;
            color:#008800;
            overflow:auto;
        }
        .coordinacion-panel table {
            width:100%;
            min-width:560px;
            font-size:12px;
        }
        .coordinacion-panel th,
        .coordinacion-panel td {
            padding:4px 8px;
        }
        .coordinacion-panel th:first-child,
        .coordinacion-panel td:first-child {
            width:42px;
            text-align:center;
        }
        @media (max-width: 900px) {
            .coordinacion-grid {
                grid-template-columns: minmax(0, 1fr);
                grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
            }
        }
        body.theme-light .coordinacion-panel {
            background:#F5FBF5;
            border-color:#88BB88;
        }
        body.theme-light .coordinacion-panel-title {
            color:#005588;
            border-color:#88BB88;
        }
        body.theme-light .coordinacion-count {
            color:#006600;
        }
        body.theme-light .coordinacion-panel-body {
            color:#557755;
        }
        /* Panel de sincronización REUT */
        .reut-sync-panel { border:1px dashed #004400; padding:6px 10px; margin-top:6px; font-size:12px; flex-shrink: 0; }
        .reut-sync-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:4px; }
        .reut-sync-label { color:#008800; }
        .reut-sync-value { color:#00FF00; }
        .reut-countdown { color:#00FFFF; font-weight:bold; font-size:14px; min-width:60px; }
        .reut-bar-wrap { flex:1; min-width:120px; max-width:260px; height:8px; background:#001800; border:1px solid #004400; }
        .reut-bar-fill { height:100%; width:0%; background:#00AA00; transition:width 1s linear; }
        .btn-reut-auto-toggle { background:#004400; color:#00FF00; border:1px solid #00FF00; padding:4px 12px; cursor:pointer; font-family:inherit; font-size:12px; font-weight:bold; min-width:118px; }
        .btn-reut-auto-toggle.is-off { background:#330000; color:#FF7777; border-color:#FF5555; }
        .btn-reut-auto-toggle:disabled { opacity:.45; cursor:not-allowed; }
        .btn-sync-manual { background:#004400; color:#00FF00; border:1px solid #00FF00; padding:4px 14px; cursor:pointer; font-family:inherit; font-size:12px; font-weight:bold; margin-top:3px; }
        .btn-sync-manual:hover { background:#006600; }
        .btn-sync-manual:disabled { opacity:.4; cursor:not-allowed; }
        .reut-sync-status { color:#FFFF00; font-size:12px; min-height:16px; }
        .import-progress-overlay {
            position:fixed; inset:0; background:rgba(0, 0, 0, 0.78); z-index:10020;
            display:none; align-items:center; justify-content:center; padding:20px;
        }
        .import-progress-overlay.activa { display:flex; }
        .import-progress-panel {
            width:min(640px, 94vw); border:1px solid #00AA66; background:#001200;
            box-shadow:0 0 18px #00AA6644; padding:18px 20px;
        }
        .import-progress-title { color:#00FFFF; font-size:16px; margin-bottom:8px; }
        .import-progress-status { color:#00AA88; font-size:13px; margin-bottom:12px; min-height:16px; }
        .import-progress-bar-wrap {
            border:1px solid #008800; background:#000; height:16px; position:relative; overflow:hidden;
        }
        .import-progress-bar {
            height:100%; width:0%; background:linear-gradient(90deg, #005500 0%, #00AA44 55%, #00FF88 100%);
            transition:width .18s ease;
        }
        .import-progress-meta {
            display:flex; justify-content:space-between; align-items:center; margin-top:8px;
            color:#00FFAA; font-size:13px;
        }
        .import-road {
            margin-top:14px; position:relative; height:54px; border-top:1px dashed #004400;
            background:linear-gradient(180deg, rgba(0, 30, 0, 0.55) 0%, rgba(0, 10, 0, 0.1) 100%);
            overflow:hidden;
        }
        .import-road::after {
            content:''; position:absolute; left:0; right:0; bottom:14px; height:10px;
            background:linear-gradient(90deg, #222 0 15%, #666 15% 17%, #222 17% 32%, #666 32% 34%, #222 34% 49%, #666 49% 51%, #222 51% 66%, #666 66% 68%, #222 68% 100%);
            opacity:.85;
        }
        .import-vehicle {
            position:absolute; left:0; bottom:12px; width:90px; height:30px;
            transition:left .18s ease;
        }
        .import-vehicle-body {
            position:absolute; left:18px; top:6px; width:54px; height:14px; background:#00AA66; border:1px solid #00FF99;
        }
        .import-vehicle-cab {
            position:absolute; left:0; top:10px; width:24px; height:10px; background:#00FFFF; border:1px solid #00AAAA;
        }
        .import-vehicle-cab::after {
            content:''; position:absolute; right:2px; top:2px; width:8px; height:4px; background:#002233;
        }
        .import-vehicle-wheel, .import-vehicle-wheel-2 {
            position:absolute; bottom:0; width:12px; height:12px; border-radius:50%;
            background:#111; border:2px solid #999;
        }
        .import-vehicle-wheel { left:16px; }
        .import-vehicle-wheel-2 { left:56px; }
        body.theme-light .reut-sync-panel { border-color:#88BB88; }
        body.theme-light .reut-sync-label { color:#336633; }
        body.theme-light .reut-sync-value { color:#003300; }
        body.theme-light .reut-countdown { color:#005588; }
        body.theme-light .reut-bar-wrap { background:#D4EDD4; border-color:#88BB88; }
        body.theme-light .reut-bar-fill { background:#336633; }
        body.theme-light .btn-reut-auto-toggle { background:#D4EDD4; color:#003300; border-color:#336633; }
        body.theme-light .btn-reut-auto-toggle.is-off { background:#F5D8D8; color:#880000; border-color:#AA5555; }
        body.theme-light .btn-sync-manual { background:#D4EDD4; color:#003300; border-color:#336633; }
        body.theme-light .btn-sync-manual:hover { background:#B8DDB8; }
        body.theme-light .reut-sync-status { color:#774400; }
        body.theme-light .sidebar-toggle { background:#F0FFF0; color:#005588; border-color:#005588; }
        body.theme-light .sidebar-toggle:hover { background:#D8F0D8; }
        body.theme-light .import-progress-panel { background:#F5FBF5; border-color:#66AA66; box-shadow:0 0 18px #66AA6633; }
        body.theme-light .import-progress-title { color:#005588; }
        body.theme-light .import-progress-status { color:#336633; }
        body.theme-light .import-progress-bar-wrap { background:#E8F4E8; border-color:#88BB88; }
        body.theme-light .import-road { background:linear-gradient(180deg, rgba(120, 180, 120, 0.22) 0%, rgba(240, 248, 240, 0.7) 100%); }
        #barra-multisel { display:none; position:fixed; bottom:24px; left:50%; transform:translateX(-50%);
            background:#001800; border:1px solid #FF5555; padding:10px 22px; z-index:9998;
            font-family:inherit; font-size:13px; box-shadow:0 0 14px #FF000044;
            display:none; align-items:center; gap:14px; white-space:nowrap; }
        #barra-multisel.activa { display:flex; }
        .barra-count { color:#FF5555; font-weight:bold; }
        .barra-btn-del { background:#FF0000; color:#fff; border:none; padding:5px 14px; cursor:pointer; font-family:inherit; font-size:13px; font-weight:bold; }
        .barra-btn-del:hover { background:#CC0000; }
        .barra-btn-cancel { background:transparent; color:#00AAAA; border:1px solid #00AAAA; padding:5px 14px; cursor:pointer; font-family:inherit; font-size:13px; }
        body.theme-light #barra-multisel { background:#FFF0F0; border-color:#CC0000; }
        body.theme-light .barra-count { color:#CC0000; }
        body.theme-light .barra-btn-cancel { color:#005588; border-color:#005588; }
        /* Popup de acciones */
        #popup-acciones { display:none; position:fixed; z-index:9999; background:#001800; border:1px solid #00FF00; padding:10px 0 6px 0; min-width:200px; box-shadow:0 0 12px #00FF0044; }
        .popup-title { color:#00FF00; font-weight:bold; padding:0 12px 6px 12px; border-bottom:1px dashed #004400; margin-bottom:4px; font-size:13px; }
        .popup-item { padding:6px 14px; cursor:pointer; font-size:13px; }
        .popup-item:hover { background:#003300; }
        .popup-item-edit  { color:#00FFFF; }
        .popup-item-dup   { color:#00FF00; }
        .popup-item-del   { color:#FF5555; }
        .popup-item-close { color:#008800; border-top:1px dashed #004400; margin-top:4px; padding-top:8px; font-size:12px; }
        body.theme-light #popup-acciones { background:#F0FFF0; border-color:#004400; box-shadow:0 2px 8px #00440044; }
        body.theme-light .popup-item:hover { background:#D8F0D8; }
        body.theme-light .popup-item-edit  { color:#005588; }
        body.theme-light .popup-item-dup   { color:#004400; }
        body.theme-light .popup-item-del   { color:#CC0000; }
        body.theme-light .popup-item-close { color:#446644; }
        .shortcut-help-overlay {
            position:fixed; inset:0; z-index:10030; display:none;
            align-items:center; justify-content:center; padding:20px;
            background:rgba(0,0,0,.62);
        }
        .shortcut-help-overlay.activa { display:flex; }
        .shortcut-help-panel {
            width:min(620px, 94vw); max-height:86vh; overflow:auto;
            background:#001200; border:1px solid #00FF00; box-shadow:0 0 18px #00FF0044;
            padding:16px 18px; color:#00FF00;
        }
        .shortcut-help-title {
            color:#00FFFF; font-size:17px; padding-bottom:8px; margin-bottom:10px;
            border-bottom:1px dashed #008800; display:flex; justify-content:space-between; gap:12px;
        }
        .shortcut-help-grid {
            display:grid; grid-template-columns:110px minmax(0, 1fr); gap:7px 12px; font-size:14px;
        }
        .shortcut-key { color:#FFFF00; font-weight:bold; white-space:nowrap; }
        .shortcut-desc { color:#00FF00; line-height:1.35; }
        .shortcut-help-footer { margin-top:14px; padding-top:10px; border-top:1px dashed #004400; color:#00AAAA; font-size:13px; }
        body.theme-light .shortcut-help-overlay { background:rgba(0,30,0,.28); }
        body.theme-light .shortcut-help-panel { background:#F5FBF5; border-color:#004400; box-shadow:0 2px 12px #00440044; color:#003300; }
        body.theme-light .shortcut-help-title { color:#005588; border-color:#88BB88; }
        body.theme-light .shortcut-key { color:#775500; }
        body.theme-light .shortcut-desc { color:#003300; }
        body.theme-light .shortcut-help-footer { color:#557755; border-color:#88BB88; }
        .login-body {
            display: flex;
            align-items: center;
            justify-content: flex-start;
            min-height: 100vh;
            width: 100%;
            padding: clamp(18px, 4vw, 56px) clamp(18px, 6vw, 96px);
            position: relative;
            overflow: hidden;
            background: #0d2948;
        }
        .login-bg {
            position: fixed;
            inset: 0;
            z-index: 0;
            overflow: hidden;
            background: #000;
        }
        .login-bg::after {
            content: "";
            position: absolute;
            inset: 0;
            background:
                linear-gradient(90deg, rgba(4,16,28,.82) 0%, rgba(8,28,48,.52) 38%, rgba(255,255,255,.08) 67%, rgba(4,16,28,.22) 100%),
                linear-gradient(180deg, rgba(255,255,255,.12) 0%, rgba(0,34,75,.14) 42%, rgba(4,16,28,.55) 100%);
            z-index: 2;
        }
        .login-bg-layer {
            position: absolute;
            inset: 0;
            background-size: cover;
            background-position: center center;
            opacity: 0;
            transform: scale(1.01);
            transition: opacity 1.8s ease, transform 12s ease;
            filter: saturate(1.04) contrast(1.02);
        }
        .login-bg-layer.is-visible {
            opacity: 1;
            transform: scale(1);
        }
        .login-panel {
            width: min(480px, 100%);
            margin: 0;
            border: 1px solid rgba(0,170,170,.48);
            padding: 22px;
            box-sizing: border-box;
            position: relative;
            z-index: 3;
            background: rgba(1, 16, 28, .88);
            box-shadow: 0 22px 70px rgba(0,0,0,.42), 0 0 0 1px rgba(255,255,255,.08) inset;
            backdrop-filter: blur(5px);
        }
        .login-brand { margin-bottom: 14px; }
        .login-error {
            color: #FF7777;
            border: 1px dashed #FF5555;
            padding: 8px;
            margin-bottom: 14px;
        }
        .not-bot-check {
            display: flex;
            align-items: center;
            gap: 8px;
            margin: 12px 0;
            white-space: normal;
            cursor: pointer;
        }
        .not-bot-check input {
            flex: none;
            min-width: 0;
            width: 16px;
            height: 16px;
            accent-color: #00FF00;
        }
        .login-footer { justify-content: flex-end; }
        @media (max-width: 760px) {
            .login-body {
                justify-content: center;
                padding: 16px;
            }
            .login-bg::after {
                background:
                    linear-gradient(180deg, rgba(4,16,28,.45) 0%, rgba(4,16,28,.72) 48%, rgba(4,16,28,.88) 100%);
            }
            .login-bg-layer {
                background-position: center top;
            }
            .login-panel {
                width: min(440px, 100%);
            }
        }

