/**
 * OutageScout Dark Theme
 *
 * Applied when <html data-bs-theme="dark"> is set.
 * Works with Bootstrap 5.3 native dark mode + OutageScout custom overrides.
 */

/* ============================================
   CSS Variable Overrides for Dark Mode
   ============================================ */
[data-bs-theme="dark"] {
    /* Core surface & background */
    --os-bg-card: #1e2128;
    --os-bg-white: #1a1d23;
    --os-bg-surface: #23272e;
    --os-bg-surface-raised: #2a2e36;
    --os-bg-body: #14161a;

    /* Text */
    --os-text-primary: #e1e4e8;
    --os-text-dark: #e1e4e8;
    --os-text-muted: rgba(225, 228, 232, 0.6);
    --os-text-white: #ffffff;

    /* Borders */
    --os-border-primary: #3d4250;
    --os-border-light: #2d3139;
    --os-border-focus: #5b9aff;

    /* Shadows (deeper for dark) */
    --os-shadow-sm: 0 4px 12px rgba(0,0,0,0.35);
    --os-shadow-md: 0 10px 20px rgba(0,0,0,0.45);
    --os-shadow-lg: 0 20px 40px rgba(0,0,0,0.55);

    /* Keep brand colors vibrant on dark */
    --os-primary-blue: #5b9aff;
    --os-primary-green: #2ba866;
    --os-primary-blue-dark: #4a8af0;
    --os-primary-green-dark: #239957;
}

/* ============================================
   Body & Base
   ============================================ */
[data-bs-theme="dark"] body {
    background: var(--os-bg-body) !important;
    color: var(--os-text-primary);
}

/* ============================================
   Bootstrap Component Overrides
   ============================================ */

/* Cards */
[data-bs-theme="dark"] .card,
[data-bs-theme="dark"] .os-card,
[data-bs-theme="dark"] .os-content-card {
    background: var(--os-bg-surface) !important;
    border-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .card-header {
    background: var(--os-bg-surface-raised) !important;
    border-bottom-color: var(--os-border-primary) !important;
}

/* Navbar / Header */
[data-bs-theme="dark"] .navbar.bg-white,
[data-bs-theme="dark"] .navbar.navbar-light {
    background: var(--os-bg-surface) !important;
    border-bottom-color: var(--os-border-primary);
}

[data-bs-theme="dark"] .navbar-brand {
    color: var(--os-primary-blue) !important;
}

[data-bs-theme="dark"] .navbar-light .navbar-nav .nav-link {
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .navbar-light .navbar-nav .nav-link:hover,
[data-bs-theme="dark"] .navbar-light .navbar-nav .nav-link.active {
    color: var(--os-primary-blue) !important;
}

[data-bs-theme="dark"] .navbar-toggler {
    border-color: var(--os-border-primary);
}

[data-bs-theme="dark"] .navbar-toggler-icon {
    filter: invert(1);
}

/* Header accent bar */
[data-bs-theme="dark"] .os-accent-rule {
    background: var(--os-border-primary);
}

/* Org Switcher */
[data-bs-theme="dark"] .os-org-name {
    background: var(--os-bg-surface-raised);
    border-color: var(--os-border-primary);
    color: var(--os-text-primary);
}

[data-bs-theme="dark"] .os-org-name:hover {
    background: #353a44;
    color: var(--os-primary-blue);
}

[data-bs-theme="dark"] .os-org-name i {
    color: #8b949e;
}

[data-bs-theme="dark"] .os-org-arrow {
    background: var(--os-bg-surface-raised);
    border-color: var(--os-border-primary);
    color: var(--os-text-primary);
}

[data-bs-theme="dark"] .os-org-arrow:hover {
    background: #353a44;
    color: var(--os-primary-blue);
}

[data-bs-theme="dark"] .os-org-cog {
    background: var(--os-bg-surface-raised);
    border-color: var(--os-border-primary);
    color: #8b949e;
}

[data-bs-theme="dark"] .os-org-cog:hover {
    background: #353a44;
    color: var(--os-primary-blue);
}

/* Dropdowns */
[data-bs-theme="dark"] .dropdown-menu {
    background: var(--os-bg-surface-raised) !important;
    border-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .dropdown-item {
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .dropdown-item:hover,
[data-bs-theme="dark"] .dropdown-item:focus {
    background: #353a44 !important;
    color: var(--os-primary-blue) !important;
}

[data-bs-theme="dark"] .dropdown-item.active {
    background: #353a44 !important;
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .dropdown-divider {
    border-color: var(--os-border-primary);
}

[data-bs-theme="dark"] .dropdown-header {
    color: #8b949e !important;
}

/* Forms */
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .os-form-control {
    background: var(--os-bg-surface) !important;
    border-color: var(--os-border-primary) !important;
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .os-form-control:focus {
    background: var(--os-bg-surface-raised) !important;
    border-color: var(--os-border-focus) !important;
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .form-control:disabled,
[data-bs-theme="dark"] .form-control[disabled] {
    background: var(--os-bg-body) !important;
    color: #8b949e !important;
}

[data-bs-theme="dark"] .form-label,
[data-bs-theme="dark"] .os-form-label {
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .form-text,
[data-bs-theme="dark"] .form-select {
    color: #8b949e !important;
}

[data-bs-theme="dark"] .form-select {
    background-color: var(--os-bg-surface) !important;
    border-color: var(--os-border-primary) !important;
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .input-group-text {
    background: var(--os-bg-surface-raised) !important;
    border-color: var(--os-border-primary) !important;
    color: var(--os-text-primary) !important;
}

/* Tables */
[data-bs-theme="dark"] .table {
    color: var(--os-text-primary) !important;
    --bs-table-bg: var(--os-bg-surface);
    --bs-table-border-color: var(--os-border-primary);
}

[data-bs-theme="dark"] .table thead th {
    background: var(--os-bg-surface-raised) !important;
    color: var(--os-text-primary) !important;
    border-bottom-color: var(--os-primary-blue) !important;
}

[data-bs-theme="dark"] .table tbody tr:hover {
    background: rgba(91, 154, 255, 0.08) !important;
}

[data-bs-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) {
    --bs-table-bg-type: rgba(255,255,255,0.03);
}

/* Modals */
[data-bs-theme="dark"] .modal-content {
    background: var(--os-bg-surface) !important;
    border-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .modal-header {
    border-bottom-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .modal-footer {
    border-top-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

/* Alerts */
[data-bs-theme="dark"] .alert-warning {
    background: rgba(255, 193, 7, 0.15) !important;
    color: #ffc107 !important;
    border-color: rgba(255, 193, 7, 0.3) !important;
}

[data-bs-theme="dark"] .alert-info {
    background: rgba(91, 154, 255, 0.15) !important;
    color: var(--os-primary-blue) !important;
    border-color: rgba(91, 154, 255, 0.3) !important;
}

/* Buttons */
[data-bs-theme="dark"] .btn-outline-primary {
    color: var(--os-primary-blue) !important;
    border-color: var(--os-primary-blue) !important;
}

[data-bs-theme="dark"] .btn-outline-secondary {
    color: #8b949e !important;
    border-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .btn-outline-secondary:hover {
    background: var(--os-bg-surface-raised) !important;
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .btn-outline-danger {
    color: #f87171 !important;
    border-color: #f87171 !important;
}

[data-bs-theme="dark"] .btn-light {
    background: var(--os-bg-surface-raised) !important;
    border-color: var(--os-border-primary) !important;
    color: var(--os-text-primary) !important;
}

/* Badges */
[data-bs-theme="dark"] .badge.bg-success { background-color: #2ba866 !important; }
[data-bs-theme="dark"] .badge.bg-warning { background-color: #f59e0b !important; color: #1a1d23 !important; }
[data-bs-theme="dark"] .badge.bg-danger  { background-color: #ef4444 !important; }
[data-bs-theme="dark"] .badge.bg-info    { background-color: var(--os-primary-blue) !important; }

/* List groups */
[data-bs-theme="dark"] .list-group-item {
    background: var(--os-bg-surface) !important;
    border-color: var(--os-border-primary) !important;
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .list-group-item:hover {
    background: var(--os-bg-surface-raised) !important;
}

/* Pagination */
[data-bs-theme="dark"] .pagination .page-link {
    background: var(--os-bg-surface) !important;
    border-color: var(--os-border-primary) !important;
    color: var(--os-primary-blue) !important;
}

[data-bs-theme="dark"] .pagination .page-link:hover {
    background: var(--os-primary-blue) !important;
    color: white !important;
}

/* Breadcrumbs */
[data-bs-theme="dark"] .breadcrumb {
    background: var(--os-bg-surface) !important;
}

[data-bs-theme="dark"] .breadcrumb-item a {
    color: var(--os-primary-blue) !important;
}

/* ============================================
   Page-Specific Overrides
   ============================================ */

/* Dashboard */
[data-bs-theme="dark"] .stat-card {
    background: var(--os-bg-surface) !important;
    border-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .stat-label {
    color: #8b949e !important;
}

[data-bs-theme="dark"] .quick-actions-sidebar {
    background: var(--os-bg-surface) !important;
    border-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .quick-actions-sidebar h5 {
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .location-card {
    background: var(--os-bg-surface) !important;
    border-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .location-header {
    border-bottom-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .location-title {
    color: var(--os-text-primary) !important;
}

/* Outage banner */
[data-bs-theme="dark"] .outage-banner {
    background: rgba(220, 53, 69, 0.1) !important;
    border-color: rgba(220, 53, 69, 0.3) !important;
}

[data-bs-theme="dark"] .outage-banner-text {
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .outage-banner-text strong {
    color: #f87171 !important;
}

/* Status badges in dark mode */
[data-bs-theme="dark"] .status-operational {
    background: rgba(43, 168, 102, 0.2) !important;
    color: #4ade80 !important;
}

[data-bs-theme="dark"] .status-warning {
    background: rgba(245, 158, 11, 0.2) !important;
    color: #fbbf24 !important;
}

[data-bs-theme="dark"] .status-offline,
[data-bs-theme="dark"] .status-degraded {
    background: rgba(239, 68, 68, 0.2) !important;
    color: #f87171 !important;
}

[data-bs-theme="dark"] .status-maintenance {
    background: rgba(91, 154, 255, 0.2) !important;
    color: #93bbff !important;
}

/* Device status badges */
[data-bs-theme="dark"] .device-status .badge-suspected {
    background: rgba(245, 158, 11, 0.2) !important;
    color: #fbbf24 !important;
}

[data-bs-theme="dark"] .device-status .badge-warning {
    background: rgba(249, 115, 22, 0.25) !important;
    color: #fb923c !important;
}

[data-bs-theme="dark"] .device-status .badge-offline {
    background: rgba(239, 68, 68, 0.2) !important;
    color: #f87171 !important;
}

/* Profile page */
[data-bs-theme="dark"] .profile-header,
[data-bs-theme="dark"] .section-card {
    background: var(--os-bg-surface) !important;
    box-shadow: var(--os-shadow-sm) !important;
}

[data-bs-theme="dark"] .section-card h2 {
    border-bottom-color: var(--os-border-primary) !important;
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .info-row {
    border-bottom-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .info-label {
    color: #8b949e !important;
}

[data-bs-theme="dark"] .info-value {
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .social-account-item {
    border-color: var(--os-border-primary) !important;
    background: var(--os-bg-surface-raised) !important;
}

/* Pre-release banner */
[data-bs-theme="dark"] .alert-warning.rounded-0 {
    background-color: rgba(255, 193, 7, 0.1) !important;
    color: #fbbf24 !important;
    border-color: rgba(255, 193, 7, 0.25) !important;
}

/* Coming Soon Modal */
[data-bs-theme="dark"] #comingSoonModal .modal-content {
    background: var(--os-bg-surface) !important;
}

[data-bs-theme="dark"] #comingSoonModal h5 {
    color: var(--os-text-primary) !important;
}

/* Text utilities */
[data-bs-theme="dark"] .text-muted {
    color: #8b949e !important;
}

[data-bs-theme="dark"] .text-dark {
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .text-body {
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] a:not(.btn):not(.nav-link):not(.dropdown-item):not(.navbar-brand) {
    color: var(--os-primary-blue);
}

/* Background utilities */
[data-bs-theme="dark"] .bg-white {
    background: var(--os-bg-surface) !important;
}

[data-bs-theme="dark"] .bg-light {
    background: var(--os-bg-surface-raised) !important;
}

/* Border overrides */
[data-bs-theme="dark"] .border,
[data-bs-theme="dark"] .border-bottom,
[data-bs-theme="dark"] .border-top {
    border-color: var(--os-border-primary) !important;
}

/* HR */
[data-bs-theme="dark"] hr {
    border-color: var(--os-border-primary);
    opacity: 0.5;
}

/* Footer */
[data-bs-theme="dark"] footer.bg-dark {
    background: #0d0f12 !important;
    border-top: 1px solid var(--os-border-primary);
}

/* OS Theme Components */
[data-bs-theme="dark"] .os-left-sidebar {
    background: var(--os-bg-surface) !important;
}

[data-bs-theme="dark"] .os-content-header {
    background: var(--os-bg-surface) !important;
}

[data-bs-theme="dark"] .os-stats-card,
[data-bs-theme="dark"] .os-search-container,
[data-bs-theme="dark"] .os-table-container {
    background: var(--os-bg-surface) !important;
    border-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .os-mobile-nav-dropdown {
    background: var(--os-bg-surface) !important;
}

[data-bs-theme="dark"] .os-mobile-nav-item {
    color: var(--os-text-primary) !important;
    border-bottom-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .os-mobile-nav-item:hover,
[data-bs-theme="dark"] .os-mobile-nav-item.active {
    background: var(--os-bg-surface-raised) !important;
}

/* Info boxes (light blue gradient in light mode) */
[data-bs-theme="dark"] .os-info-box {
    background: rgba(91, 154, 255, 0.1) !important;
    border-color: rgba(91, 154, 255, 0.25) !important;
}

/* Debug info */
[data-bs-theme="dark"] .debug-info {
    background: var(--os-bg-surface-raised) !important;
    border-color: var(--os-border-primary) !important;
    color: var(--os-text-primary) !important;
}

/* Dividers in OS theme */
[data-bs-theme="dark"] .os-divider::before,
[data-bs-theme="dark"] .os-divider::after {
    background: var(--os-border-primary);
}

[data-bs-theme="dark"] .os-content-card hr {
    border-top-color: var(--os-border-primary) !important;
}

/* Mobile org sub-links connector */
[data-bs-theme="dark"] .os-mobile-org-sub {
    border-left-color: var(--os-border-primary) !important;
}

/* Admin card keeps its gradient - no override needed */

/* ============================================
   Dashboard Page - Device & Location Cards
   ============================================ */

/* Device cards (draggable cards inside locations and unlinked sidebar) */
[data-bs-theme="dark"] .device-card {
    background: var(--os-bg-surface-raised) !important;
    border-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .device-card:hover {
    border-color: var(--os-primary-blue) !important;
    box-shadow: 0 2px 8px rgba(91, 154, 255, 0.25) !important;
}

[data-bs-theme="dark"] .device-card.in-location {
    background: var(--os-bg-surface-raised) !important;
    border-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .btn-archive-device {
    border-color: #f87171;
    color: #f87171;
}

[data-bs-theme="dark"] .btn-archive-device:hover {
    background: #dc3545;
    color: #fff;
    border-color: #dc3545;
}

[data-bs-theme="dark"] .device-name {
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .device-type-badge {
    background: var(--os-bg-surface) !important;
    color: #8b949e !important;
}

/* Location devices grid background */
[data-bs-theme="dark"] .location-devices {
    background: var(--os-bg-body) !important;
    border-top-color: var(--os-border-primary) !important;
}

/* Location attributes section */
[data-bs-theme="dark"] .location-attributes {
    border-bottom-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .attribute-header {
    color: #8b949e !important;
}

[data-bs-theme="dark"] .attribute-empty {
    color: #6c757d !important;
}

[data-bs-theme="dark"] .add-attribute-link {
    color: var(--os-primary-blue) !important;
}

/* Devices table inside locations */
[data-bs-theme="dark"] .devices-table th {
    color: #8b949e !important;
    border-bottom-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .devices-table td {
    color: var(--os-text-primary) !important;
}

/* Empty state */
[data-bs-theme="dark"] .empty-state {
    color: #8b949e !important;
}

[data-bs-theme="dark"] .empty-state i {
    color: var(--os-border-primary) !important;
}

/* Unlinked devices sidebar */
[data-bs-theme="dark"] .unlinked-devices-sidebar {
    background: var(--os-bg-surface) !important;
    border-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .unlinked-devices-sidebar h5 {
    color: var(--os-text-primary) !important;
    border-bottom-color: var(--os-border-primary) !important;
}

/* Org key display in register modal */
[data-bs-theme="dark"] #orgKeyDisplay {
    background: var(--os-bg-surface-raised) !important;
    border-color: var(--os-primary-blue) !important;
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] #orgKeyDisplay:hover {
    background: var(--os-bg-surface) !important;
}

/* Device status badges (recovering, rebooting, maintenance, error) */
[data-bs-theme="dark"] .device-status .badge-recovering {
    background: rgba(13, 202, 240, 0.2) !important;
    color: #67d6ed !important;
}

[data-bs-theme="dark"] .device-status .badge-rebooting,
[data-bs-theme="dark"] .device-status .badge-maintenance {
    background: rgba(91, 154, 255, 0.2) !important;
    color: #93bbff !important;
}

[data-bs-theme="dark"] .device-status .badge-error {
    background: rgba(108, 117, 125, 0.3) !important;
    color: #adb5bd !important;
}

/* Drag-and-drop overlay hint */
[data-bs-theme="dark"] .location-card.drop-hover {
    border-color: var(--os-primary-blue) !important;
    background: rgba(91, 154, 255, 0.05) !important;
}

/* ============================================
   Standalone Page Overrides (pages with inline styles)
   ============================================
   Many pages use inline <style> blocks with hardcoded white
   backgrounds on custom classes. These catch-all rules override them.
*/

/* Common card/section patterns used across standalone pages */
[data-bs-theme="dark"] .settings-card,
[data-bs-theme="dark"] .page-header,
[data-bs-theme="dark"] .content-card,
[data-bs-theme="dark"] .admin-card-section,
[data-bs-theme="dark"] .member-card,
[data-bs-theme="dark"] .invite-card,
[data-bs-theme="dark"] .transfer-card,
[data-bs-theme="dark"] .billing-card,
[data-bs-theme="dark"] .setup-card,
[data-bs-theme="dark"] .email-card,
[data-bs-theme="dark"] .template-card,
[data-bs-theme="dark"] .article-card,
[data-bs-theme="dark"] .feature-card,
[data-bs-theme="dark"] .release-card,
[data-bs-theme="dark"] .diagnostic-card,
[data-bs-theme="dark"] .doc-card {
    background: var(--os-bg-surface) !important;
    box-shadow: var(--os-shadow-sm) !important;
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .settings-card h3,
[data-bs-theme="dark"] .content-card h3,
[data-bs-theme="dark"] .admin-card-section h3 {
    border-bottom-color: var(--os-border-primary) !important;
    color: var(--os-text-primary) !important;
}

/* Danger zone */
[data-bs-theme="dark"] .danger-zone {
    background: rgba(220, 53, 69, 0.08) !important;
    border-color: #dc3545 !important;
}

/* Org key display */
[data-bs-theme="dark"] .org-key-display {
    background: var(--os-bg-surface-raised) !important;
    border-color: var(--os-border-primary) !important;
    color: var(--os-primary-blue) !important;
}

[data-bs-theme="dark"] .org-key-display:hover {
    border-color: var(--os-primary-blue) !important;
    background: rgba(91, 154, 255, 0.1) !important;
}

/* Color preview borders */
[data-bs-theme="dark"] .color-preview {
    border-color: var(--os-border-primary) !important;
}

/* Standalone navbar (pages with own navbar, not header.php) */
[data-bs-theme="dark"] .navbar:not(.navbar-dark) {
    background: var(--os-bg-surface) !important;
    border-bottom: 1px solid var(--os-border-primary);
}

/* Generic body background override for pages with inline body styles */
[data-bs-theme="dark"] body {
    background: var(--os-bg-body) !important;
    color: var(--os-text-primary) !important;
}

/* Admin pages - stats/summary cards */
[data-bs-theme="dark"] .stats-card,
[data-bs-theme="dark"] .summary-card,
[data-bs-theme="dark"] .admin-stat {
    background: var(--os-bg-surface) !important;
    border-color: var(--os-border-primary) !important;
}

/* Admin page headers */
[data-bs-theme="dark"] .admin-header,
[data-bs-theme="dark"] .page-title-bar {
    background: var(--os-bg-surface) !important;
}

/* Login page specific */
[data-bs-theme="dark"] .os-login-body {
    background: var(--os-bg-primary) !important;
}

/* Error pages */
[data-bs-theme="dark"] .error-container,
[data-bs-theme="dark"] .error-card {
    background: var(--os-bg-surface) !important;
    color: var(--os-text-primary) !important;
}

/* ============================================
   Theme Toggle Switch Styling
   ============================================ */
.os-theme-toggle {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    user-select: none;
}

.os-theme-toggle .form-check-input {
    width: 2.5rem;
    height: 1.25rem;
    cursor: pointer;
}

.os-theme-toggle .form-check-input:checked {
    background-color: var(--os-primary-blue, #5b9aff);
    border-color: var(--os-primary-blue, #5b9aff);
}

.os-theme-toggle-label {
    font-size: 0.85rem;
    color: var(--os-text-muted, #6c757d);
}

.os-theme-toggle-icon {
    font-size: 1rem;
    transition: opacity 0.2s;
}

/* ============================================
   Uptime Report Page Overrides
   ============================================ */
[data-bs-theme="dark"] .page-header,
[data-bs-theme="dark"] .summary-card,
[data-bs-theme="dark"] .report-card {
    background: var(--os-bg-surface) !important;
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .page-title,
[data-bs-theme="dark"] .report-card-title,
[data-bs-theme="dark"] .device-name-col {
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .summary-label,
[data-bs-theme="dark"] .report-card-meta {
    color: var(--os-text-muted) !important;
}

[data-bs-theme="dark"] .period-btn {
    background: var(--os-bg-surface-raised) !important;
    color: var(--os-text-primary) !important;
    border-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .period-btn:hover {
    background: var(--os-bg-surface) !important;
}

[data-bs-theme="dark"] .period-btn.active {
    background: #0d6efd !important;
    color: #fff !important;
    border-color: #0d6efd !important;
}

[data-bs-theme="dark"] .device-detail-card {
    background: var(--os-bg-surface-raised) !important;
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .report-card-header:hover {
    background: var(--os-bg-surface-raised) !important;
}

[data-bs-theme="dark"] .uptime-bar {
    background: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .uptime-badge-good {
    background: rgba(25, 135, 84, 0.2) !important;
    color: #6fdd9b !important;
}

[data-bs-theme="dark"] .uptime-badge-warn {
    background: rgba(255, 193, 7, 0.2) !important;
    color: #ffc107 !important;
}

[data-bs-theme="dark"] .uptime-badge-bad {
    background: rgba(220, 53, 69, 0.2) !important;
    color: #f87171 !important;
}

[data-bs-theme="dark"] .metrics-table th {
    border-bottom-color: var(--os-border-primary) !important;
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .metrics-table td {
    border-bottom-color: var(--os-border-light) !important;
    color: var(--os-text-primary) !important;
}

[data-bs-theme="dark"] .metrics-table tbody tr:hover {
    background: var(--os-bg-surface-raised) !important;
}

[data-bs-theme="dark"] .toggle-icon {
    color: var(--os-text-muted) !important;
}

/* ============================================
   Maintenance Windows Page Overrides
   ============================================ */
[data-bs-theme="dark"] .maintenance-card {
    border-left-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .status-scheduled { color: #5b9aff !important; }
[data-bs-theme="dark"] .status-active { color: #2ba866 !important; }
[data-bs-theme="dark"] .status-completed { color: #8b949e !important; }
[data-bs-theme="dark"] .status-cancelled { color: #f87171 !important; }

[data-bs-theme="dark"] #createMaintenanceForm .form-section {
    border-bottom-color: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .device-checkbox-grid {
    border-color: var(--os-border-primary) !important;
    background: var(--os-bg-surface) !important;
}

/* ============================================
   Login / Register Page Overrides
   ============================================ */
[data-bs-theme="dark"] .social-login-divider::before {
    background: var(--os-border-primary) !important;
}

[data-bs-theme="dark"] .social-login-divider span {
    background: var(--os-bg-body) !important;
    color: var(--os-text-muted) !important;
}

[data-bs-theme="dark"] .btn-social {
    color: var(--os-text-primary) !important;
    border-color: var(--os-border-primary) !important;
    background: var(--os-bg-surface) !important;
}

[data-bs-theme="dark"] .btn-social:hover {
    background: var(--os-bg-surface-raised) !important;
    color: var(--os-text-primary) !important;
    border-color: var(--os-border-focus) !important;
}

[data-bs-theme="dark"] .os-password-strength {
    background-color: var(--os-border-primary) !important;
}
