/* ============================================================
   NOVA THEME CSS v3.0 - TechSSPTY Design System
   Extiende nova-core.css con theming dinámico para Bootstrap
   ============================================================ */

/* --- Dark mode: overrides para componentes Bootstrap --- */
[data-theme="dark"] .modal-content {
    background-color: var(--nova-card-bg);
    border-color: var(--nova-border);
    color: var(--nova-text);
}

[data-theme="dark"] .dropdown-menu {
    background-color: var(--nova-card-bg);
    border-color: var(--nova-border);
}

[data-theme="dark"] .dropdown-item {
    color: var(--nova-text);
}

[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus {
    background-color: rgba(255,255,255,0.07);
    color: var(--nova-text);
}

[data-theme="dark"] .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

[data-theme="dark"] .list-group-item {
    background-color: var(--nova-card-bg);
    border-color: var(--nova-border);
    color: var(--nova-text);
}

[data-theme="dark"] .list-group-item-action:hover {
    background-color: rgba(255,255,255,0.06);
    color: var(--nova-text);
}

[data-theme="dark"] .table {
    --bs-table-color: var(--nova-text);
    --bs-table-bg: var(--nova-card-bg);
    --bs-table-border-color: var(--nova-border);
    --bs-table-striped-bg: rgba(255,255,255,0.03);
    --bs-table-hover-bg: rgba(0,119,182,0.07);
}

[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select {
    background-color: var(--nova-card-bg);
    border-color: var(--nova-border);
    color: var(--nova-text);
}

[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus {
    background-color: var(--nova-card-bg);
    color: var(--nova-text);
}

[data-theme="dark"] .form-control::placeholder {
    color: var(--nova-text-muted);
}

[data-theme="dark"] .input-group-text {
    background-color: #1e2028;
    border-color: var(--nova-border);
    color: var(--nova-text-muted);
}

[data-theme="dark"] .card-header.bg-white,
[data-theme="dark"] .card-header.bg-light {
    background-color: var(--nova-card-bg) !important;
    color: var(--nova-text);
}

[data-theme="dark"] .bg-white { background-color: var(--nova-card-bg) !important; }
[data-theme="dark"] .bg-light { background-color: var(--nova-body-bg) !important; }
[data-theme="dark"] .text-dark { color: var(--nova-text) !important; }
[data-theme="dark"] .border   { border-color: var(--nova-border) !important; }

/* Nav tabs dark */
[data-theme="dark"] .nav-tabs {
    border-color: var(--nova-border);
}
[data-theme="dark"] .nav-tabs .nav-link {
    color: var(--nova-text-muted);
}
[data-theme="dark"] .nav-tabs .nav-link.active {
    background-color: var(--nova-card-bg);
    border-color: var(--nova-border) var(--nova-border) var(--nova-card-bg);
    color: var(--nova-primary);
}

/* Badge subtle variants (Bootstrap 5.3) fallback para versiones sin ellas */
.bg-warning-subtle  { background-color: rgba(245,158,11,.12) !important; }
.bg-success-subtle  { background-color: rgba(25,135,84,.12)  !important; }
.bg-danger-subtle   { background-color: rgba(220,53,69,.12)  !important; }
.bg-info-subtle     { background-color: rgba(13,202,240,.12) !important; }
.bg-primary-subtle  { background-color: rgba(0,119,182,.12)  !important; }
.bg-secondary-subtle{ background-color: rgba(108,117,125,.12)!important; }
.bg-dark-subtle     { background-color: rgba(33,37,41,.12)   !important; }

.text-warning  { color: #f59e0b !important; }
.text-success  { color: #198754 !important; }
.text-danger   { color: #dc3545 !important; }
.text-info     { color: #0dcaf0 !important; }

/* Scrollbar global */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.15); border-radius: 6px; }
[data-theme="dark"] ::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); }

/* Focus ring consistente con colores de marca */
*:focus-visible {
    outline: 2px solid var(--nova-primary);
    outline-offset: 2px;
}

/* Print */
@media print {
    .nova-sidebar, .nova-header, .nova-footer { display: none !important; }
    .nova-content { margin: 0 !important; padding: 0 !important; }
}
