/* ========================================================================== */
/* DARK MODE — ADMIN SHARED                                                   */
/* Consolidated selectors for patterns repeated across admin pages.           */
/* Uses --dm-* tokens from dark-shared.css.                                   */
/* ========================================================================== */

/* ── page wrappers ── */
body.dark-mode .applications-wrapper,
body.dark-mode .devices-wrapper,
body.dark-mode .backup-wrapper,
body.dark-mode .vpn-wrapper,
body.dark-mode .system-wrapper,
body.dark-mode .logs-wrapper { color: var(--dm-text-faint); }

/* ── page headings ── */
body.dark-mode .applications-header h1,
body.dark-mode .devices-header h1,
body.dark-mode .backup-header h1,
body.dark-mode .vpn-header h1,
body.dark-mode .system-header h1,
body.dark-mode .logs-header h1,
body.dark-mode .discover-header h1 { color: var(--dm-text-heading); }

/* ── subtitles ── */
body.dark-mode .applications-sub,
body.dark-mode .devices-sub,
body.dark-mode .backup-sub,
body.dark-mode .vpn-sub,
body.dark-mode .system-sub,
body.dark-mode .logs-sub,
body.dark-mode .discover-sub { color: var(--dm-text-muted); }

/* ── section titles ── */
body.dark-mode .applications-section-title,
body.dark-mode .devices-section-title,
body.dark-mode .backup-section-title,
body.dark-mode .vpn-section-title,
body.dark-mode .system-section-title,
body.dark-mode .logs-section-title { color: var(--dm-text-primary); }

/* ── read more link ── */
body.dark-mode .read-more         { color: var(--dm-text-secondary); }
body.dark-mode .read-more::after  { background-color: #2d64d8; }

/* ── cards (all admin) ── */
body.dark-mode .device-card,
body.dark-mode .overview-card,
body.dark-mode .backup-card,
body.dark-mode .system-card,
body.dark-mode .log-details-card,
body.dark-mode .discover-card,
body.dark-mode .logs-filters-card,
body.dark-mode .wg-config {
    background: var(--dm-surface);
    border-color: var(--dm-border);
    box-shadow: var(--dm-shadow-sm);
    color: var(--dm-text);
}

body.dark-mode .device-card:hover,
body.dark-mode .overview-card:hover,
body.dark-mode .backup-card:hover,
body.dark-mode .system-card:hover,
body.dark-mode .discover-card:hover {
    box-shadow: var(--dm-shadow-hover);
    border-color: var(--dm-border-hover);
}

/* ── card titles ── */
body.dark-mode .device-info h3,
body.dark-mode .vpn-section h3,
body.dark-mode .backup-card h3,
body.dark-mode .system-card h3 { color: var(--dm-text-heading); }

body.dark-mode .device-info p { color: var(--dm-text-secondary); }

/* ── card values ── */
body.dark-mode .ov-value,
body.dark-mode .backup-value,
body.dark-mode .system-value,
body.dark-mode .network-value { color: var(--dm-text-heading); }

body.dark-mode .ov-meta,
body.dark-mode .wg-inline-hint { color: var(--dm-text-faint); }

/* ── overview card variants ── */
body.dark-mode .overview-card.ok    { border-left: 5px solid #2ecc71; }
body.dark-mode .overview-card.error { border-left: 5px solid #e74c3c; }

/* ── table wrappers (all admin) ── */
body.dark-mode .app-table-wrapper,
body.dark-mode .system-table-wrapper,
body.dark-mode .backup-table-wrapper,
body.dark-mode .vpn-table-wrapper,
body.dark-mode .logs-table-wrapper {
    background: var(--dm-surface);
    border-color: var(--dm-border);
    box-shadow: var(--dm-shadow-md);
}

/* ── tables (all admin) ── */
body.dark-mode .app-table,
body.dark-mode .system-table,
body.dark-mode .backup-table,
body.dark-mode .vpn-table,
body.dark-mode .logs-table,
body.dark-mode .security-system-table { background: var(--dm-bg); }

body.dark-mode .app-table thead,
body.dark-mode .system-table thead,
body.dark-mode .backup-table thead,
body.dark-mode .vpn-table thead,
body.dark-mode .logs-table thead,
body.dark-mode .security-system-table thead { background: var(--dm-surface-raised); }

body.dark-mode .app-table th,
body.dark-mode .system-table th,
body.dark-mode .backup-table th,
body.dark-mode .vpn-table th,
body.dark-mode .logs-table th,
body.dark-mode .security-system-table th {
    background: var(--dm-surface-raised);
    color: rgba(255, 255, 255, 0.88);
}

body.dark-mode .app-table th,
body.dark-mode .app-table td,
body.dark-mode .system-table th,
body.dark-mode .system-table td,
body.dark-mode .backup-table th,
body.dark-mode .backup-table td,
body.dark-mode .vpn-table th,
body.dark-mode .vpn-table td,
body.dark-mode .logs-table th,
body.dark-mode .logs-table td,
body.dark-mode .security-system-table th,
body.dark-mode .security-system-table td {
    border-color: var(--dm-border-subtle);
    color: var(--dm-text-primary);
}

body.dark-mode .app-table tbody tr:hover,
body.dark-mode .system-table tbody tr:hover,
body.dark-mode .backup-table tbody tr:hover,
body.dark-mode .vpn-table tbody tr:hover,
body.dark-mode .logs-table tbody tr:hover,
body.dark-mode .security-system-table tbody tr:hover { background: var(--dm-row-hover); }

/* ── capacity bar / legend ── */
body.dark-mode .capacity-bar    { background: var(--dm-surface-deep); border: 1px solid var(--dm-border-medium); }
body.dark-mode .capacity-legend { color: var(--dm-text-secondary); }

/* ── quick filters ── */
body.dark-mode .quick-filter,
body.dark-mode .quick-filter-pill {
    background: var(--dm-surface);
    color: rgba(255, 255, 255, 0.80);
    border-color: var(--dm-border-hover);
}
body.dark-mode .quick-filter:hover,
body.dark-mode .quick-filter-pill:hover {
    background: var(--dm-surface-raised);
    border-color: var(--dm-border-focus);
}

/* ── filter fields ── */
body.dark-mode .filter-field label { color: var(--dm-text-secondary); }
body.dark-mode .filter-field input,
body.dark-mode .filter-field select {
    background: var(--dm-surface-deep);
    color: var(--dm-text);
    border-color: var(--dm-border-medium);
}
body.dark-mode .filter-field input:focus,
body.dark-mode .filter-field select:focus {
    border-color: var(--dm-accent);
    box-shadow: var(--dm-accent-glow);
}
body.dark-mode .filter-field input::placeholder { color: var(--dm-text-dim); }
