/* Identidad compartida con las aplicaciones Android. */
:root {
 --bg-primary:#f3f6fb; --bg-secondary:#fff; --bg-tertiary:#e6eef9; --bg-card:#fff; --bg-input:#fff;
 --accent:#1663c7; --accent-hover:#144c96; --accent-light:#edf3fb; --danger:#c92340; --danger-hover:#a51c35;
 --warning:#805000; --success:#21613a; --info:#1663c7; --text-primary:#14243b; --text-secondary:#50647f; --text-muted:#5d6d82;
 --border-color:#dfe6ef; --header-height:68px; --transition:background-color .18s ease,color .18s ease,border-color .18s ease;
 --bs-body-color:#14243b; --bs-body-bg:#f3f6fb; --bs-heading-color:#14243b; --bs-secondary-color:#50647f;
 --bs-tertiary-color:#5d6d82; --bs-emphasis-color:#14243b; --bs-link-color:#1663c7; --bs-link-hover-color:#144c96; --bs-border-color:#dfe6ef;
}
body { font-size:.9375rem; line-height:1.55; }
.alert-sound-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-width:44px; min-height:44px; padding:8px 12px; border:1px solid var(--border-color); border-radius:12px; background:var(--bg-card); color:var(--text-secondary); font-size:.8rem; font-weight:600; }
.alert-sound-button[aria-pressed="true"] { background:var(--accent-light); color:var(--accent); border-color:#b8d0ef; }
.alert-sound-button:hover { border-color:var(--accent); }
@media(max-width:767px) { .alert-sound-button span { display:none; } .alert-sound-button { padding:8px; } }
.portal-ux { --text-muted:#5d6d82; --danger-readable:#c92340; }
.portal-ux .btn-accent,.portal-ux .skip-link { color:#fff; }
.portal-ux :focus-visible { outline:3px solid #1663c7; outline-offset:3px; }
.sidebar { background:#14243b; border-right:0; --accent:#a9ceff; --accent-hover:#fff; --accent-light:#243f61; --text-primary:#fff; --text-secondary:#d5e0ef; --text-muted:#a8bad1; --border-color:#344860; }
.sidebar-brand { padding:20px; } .sidebar-brand .brand-text { color:#fff; font-size:1.1rem; }
.sidebar .nav-link { min-height:48px; border-radius:12px; } .sidebar-section-title { font-size:.7rem; letter-spacing:.08em; }
.top-header { background:#fff; height:68px; } .user-avatar { background:#edf3fb; color:#1663c7; }
.page-title { font-size:1.65rem; letter-spacing:-.025em; }
.card,.filters-bar { border-radius:18px; box-shadow:0 3px 16px rgba(20,36,59,.035); }
.card-header { padding:18px 22px; font-size:.95rem; }
.table { --bs-table-color:#14243b; --bs-table-hover-color:#14243b; --bs-table-striped-color:#14243b; --bs-table-hover-bg:#edf3fb; --bs-table-striped-bg:#f7f9fc; }
.table thead th { background:#f7f9fc; color:#50647f; font-size:.75rem; letter-spacing:.045em; }
.table tbody td { padding:15px 16px; font-size:.875rem; }
.badge-estado { padding:6px 10px; font-size:.75rem; } .badge-pendiente { background:#fff0d9; color:#805000; }
.badge-en-proceso,.badge-enproceso { background:#e6f0fc; color:#164e96; } .badge-resuelta { background:#e1f4e9; color:#21613a; }
.badge-descartada,.badge-prueba { background:#edf1f6; color:#50647f; }
.form-control,.form-select { min-height:44px; border-color:#bac8da; font-size:1rem; border-radius:12px; }
.form-label { color:#14243b; font-size:.875rem; margin-bottom:7px; } .form-control:focus,.form-select:focus { box-shadow:0 0 0 3px #1663c726; }
.btn { border-radius:12px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:6px; }
.btn-accent:hover { transform:none; box-shadow:0 3px 10px #1663c726; }
.btn-close { filter:none; min-width:44px; min-height:44px; } .btn-sidebar-toggle { min-width:44px; min-height:44px; }
.modal-content { box-shadow:0 16px 60px #14243b30; }
.login-container { background:#f3f6fb; } .login-card { background:#fff; border:1px solid #dfe6ef; box-shadow:0 18px 60px #14243b12; border-radius:24px; }
.login-card h2 { color:#14243b; }
.leaflet-popup-content-wrapper,.leaflet-popup-tip { background:#fff; color:#14243b; } .leaflet-container a.leaflet-popup-close-button { color:#50647f; }
.dropdown-menu { --bs-dropdown-color:#14243b; --bs-dropdown-bg:#fff; --bs-dropdown-link-color:#14243b; --bs-dropdown-link-hover-color:#144c96; --bs-dropdown-link-hover-bg:#edf3fb; }
.stat-card { border-radius:18px; background:#fff; border:1px solid #dfe6ef; } .stat-value { color:#14243b; }
.kpi-card { border-radius:18px; padding:24px; } .kpi-card:hover { transform:none; box-shadow:0 4px 18px #14243b0d; }
.kpi-card.pendientes::before { background:#805000; } .kpi-card.pendientes .kpi-value { color:#805000 !important; }
.kpi-card.en-proceso::before { background:#164e96; } .kpi-card.en-proceso .kpi-value { color:#164e96 !important; }
.login-page { background:#f3f6fb; } .login-logo h1 { color:#14243b; }
.realtime-toast__action,.realtime-toast__action:hover { color:#fff; }
.realtime-toast__close { min-width:44px; min-height:44px; }
.panic-modal .modal-header { background:#c92340 !important; color:#fff; padding:20px 24px !important; }
.panic-modal .modal-title { color:#fff; font-size:1.2rem; }
.panic-modal #panic-critico-banner { background:#fff0d9 !important; color:#805000 !important; }
.panic-modal #panic-details td { overflow-wrap:anywhere; }
.text-warning { color:#805000 !important; } .text-success { color:#21613a !important; } .text-info { color:#1663c7 !important; } .text-danger { color:#c92340 !important; }
:focus-visible { outline:3px solid #1663c7; outline-offset:3px; }
@media(max-width:575px) { .page-title { font-size:1.35rem; } .card-body { padding:16px; } .top-header { padding:0 12px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
