/* ========================================
   SOLID SURFACE OVERRIDES
   Makes primary cards, sections, grids, and panels
   opaque enough to sit on top of the global background.
   ======================================== */

:root {
    --surface-solid-base: #1c1c1c;
    --surface-solid-alt: #242424;
    --surface-solid-elevated: #282828;
    --surface-solid-accent: #0d2c31;
    --surface-solid-accent-strong: #12383e;
    --surface-solid-success: #16321c;
    --surface-solid-danger: #3a1f1f;
    --surface-solid-warning: #3f3013;
    --surface-solid-info: #182c42;

    /* Keep shared subtle surfaces readable over the new site background. */
    --bg-card: var(--surface-solid-alt);
    --lbsa-bg-card: var(--surface-solid-alt);
    --bg-card-subtle: var(--surface-solid-alt);
}

/* ========== GLOBAL APP SURFACES ========== */
body.theme-body :is(
    [class$="-card"],
    [class*="-card "],
    .e-card,
    .card,
    .card-custom,
    .dark-card,
    .header-card,
    .page-header-card,
    .content-card,
    .stats-card,
    .stat-card,
    .stats-overview,
    .filter-section,
    .professional-filter,
    .section-card,
    .site-card,
    .org-card,
    .user-card,
    .device-card,
    .firmware-card,
    .session-card,
    .sessions-card,
    .template-item,
    .notification-item,
    .warning-card,
    .connection-status-card,
    .wifi-config-card,
    .connected-device-card,
    .device-status-card,
    .commands-card,
    .battery-card,
    .collaboration-card,
    .info-card,
    .info-box,
    .item-card,
    .details-card,
    .detail-card,
    .module-card,
    .stat-card,
    .permission-card,
    .devices-section-card,
    .no-devices-card,
    .module-overview-card,
    .statistics-card,
    .tabs-container,
    .cell-card,
    .temp-card,
    .loading-card,
    .empty-card
) {
    background: var(--surface-solid-base) !important;
    background-color: var(--surface-solid-base) !important;
    border-color: rgba(0, 188, 212, 0.18) !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
}

body.theme-body :is(
    .page-header,
    .sites-header,
    .collaboration-header,
    .requests-header,
    .sessions-header,
    .sessions-panel-header,
    .settings-page-header,
    .section-header,
    .device-requests-header,
    .card-header-custom,
    .device-card-header,
    .device-info-header,
    .site-card-header,
    .site-edit-header,
    .org-card-header,
    .user-card-header,
    .firmware-header,
    .firmware-lane-header,
    .file-picker-header,
    .group-header,
    .module-card-header,
    .sidebar-header,
    .connected-header,
    .warning-header,
    .deleted-devices-header,
    .deleted-device-battery-header,
    .lbsa-mobile-dialog-header
) {
    background-color: var(--surface-solid-accent) !important;
}

body.theme-body .system-config-dialog .system-config-modal-header {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
}

body.theme-body .system-config-dialog.e-dialog .e-dlg-header {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
}

body.theme-body :is(
    .admin-container > .page-header,
    .add-organization-page > .page-header,
    .battery-detail-container > .page-header,
    .gmail-auth-page > .page-header,
    .module-detail-container > .page-header,
    .module-summary-container > .page-header,
    .notifications-page > .page-header,
    .organization-container > .page-header,
    .profile-container > .page-header
) {
    background: var(--surface-solid-accent) !important;
    border: 1px solid rgba(0, 188, 212, 0.2) !important;
    border-radius: 8px;
    padding: 1rem !important;
}

body.theme-body :is(.e-card .e-card-content, .card-body, .card-body-custom) {
    background-color: transparent !important;
}

body.theme-body :is(.e-grid, .e-grid .e-gridcontent, .e-grid .e-content) {
    background: var(--surface-solid-base) !important;
}

body.theme-body :is(.e-grid .e-headercell, .e-grid .e-rowcell) {
    background: var(--surface-solid-base) !important;
}

/* ========== DEVICES ========== */
.devices-page :is(.device-card, .professional-filter, .stats-overview),
.devices-page .device-grid-item .e-card,
.devices-page .device-card-footer,
.devices-page .device-info-item,
.devices-page .device-info-card {
    background: var(--surface-solid-base) !important;
}

.devices-page :is(.device-card:hover, .device-grid-item .e-card:hover) {
    background: var(--surface-solid-accent) !important;
}

.devices-page :is(.device-card-header, .device-info-header) {
    background: var(--surface-solid-accent) !important;
}

.devices-page .delete-modal .e-dlg-header-content {
    background: var(--surface-solid-danger) !important;
}

/* ========== DEVICE CONTROL ========== */
.device-control-container :is(.header-card, .connected-device-card, .device-status-card, .commands-card, .org-info-section, .contact-section) {
    background: var(--surface-solid-base) !important;
}

.device-control-container .status-item {
    background: var(--surface-solid-accent) !important;
}

.device-control-container .status-item:hover {
    background: var(--surface-solid-accent-strong) !important;
}

.device-control-container .connection-error {
    background: var(--surface-solid-warning) !important;
}

/* ========== SITES ========== */
.sites-container :is(.sites-header, .site-card, .site-card-footer, .site-info-item),
.sites-container :is(.stats-overview, .filter-section) {
    background: var(--surface-solid-base) !important;
}

.sites-container .site-card:hover,
.sites-container .site-card-header {
    background: var(--surface-solid-accent) !important;
}

/* ========== ORGANIZATIONS ========== */
.organization-container :is(.org-card, .user-card),
.organizations-page :is(.org-card, .user-card),
.organization-container .org-stats .stat-item,
.organizations-page .org-stats .stat-item {
    background: var(--surface-solid-base) !important;
}

.organization-container :is(.org-card:hover, .user-card:hover),
.organizations-page :is(.org-card:hover, .user-card:hover) {
    background: var(--surface-solid-accent) !important;
}

.organizations-page .e-grid,
.admin-invite-container .e-grid {
    background: var(--surface-solid-base) !important;
}

.organizations-page .e-grid .e-gridheader,
.admin-invite-container .e-grid .e-gridheader {
    background: var(--surface-solid-accent) !important;
}

.organizations-page .e-grid .e-headercell,
.organizations-page .e-grid .e-rowcell,
.admin-invite-container .e-grid .e-headercell,
.admin-invite-container .e-grid .e-rowcell {
    background: var(--surface-solid-base) !important;
}

.organizations-page .e-grid .e-row:hover .e-rowcell,
.admin-invite-container .e-grid .e-row:hover .e-rowcell {
    background: var(--surface-solid-accent) !important;
}

/* ========== ADMINISTRATION ========== */
.admin-invite-container :is(.action-bar, .stats-card) {
    background: var(--surface-solid-base) !important;
}

.admin-invite-container .e-dialog .e-dlg-header {
    background: var(--surface-solid-accent) !important;
}

.admin-invite-container .e-dialog .e-dlg-content {
    background: var(--surface-solid-base) !important;
}

.add-organization-page .card-custom {
    background: var(--surface-solid-base) !important;
}

.gmail-auth-page .card-custom,
.site-edit-container :is(.site-edit-card, .form-footer, .info-box) {
    background: var(--surface-solid-base) !important;
}

.add-organization-page .card-header-custom {
    background: var(--surface-solid-alt) !important;
}

.gmail-auth-page .card-header-custom,
.site-edit-container .site-edit-header {
    background: var(--surface-solid-accent) !important;
}

/* ========== NOTIFICATIONS ========== */
.notification-settings-container :is(.section-card, .template-item, .mute-item),
.notifications-page :is(.filters-section, .notifications-container, .notification-item) {
    background: var(--surface-solid-base) !important;
}

.notification-settings-container .template-item:hover,
.notifications-page .notification-item:hover {
    background: var(--surface-solid-accent) !important;
}

.notifications-page .notification-item.unread,
.notifications-page .notification-item.selected {
    background: var(--surface-solid-accent-strong) !important;
}

/* ========== PROFILE ========== */
.profile-container .readonly-field {
    background: var(--surface-solid-alt) !important;
}

.profile-container :is(.sla-impact-info, .sla-impact-section) {
    background: var(--surface-solid-accent) !important;
}

.profile-container .security-section {
    background: var(--surface-solid-success) !important;
}

.profile-container :is(.blocking-reasons, .confirmation-section, .critical-warning) {
    background: var(--surface-solid-danger) !important;
}

.profile-container :is(.impact-section, .warning-section) {
    background: var(--surface-solid-warning) !important;
}

.profile-container :is(.site-list li, .fallback-admin-info) {
    background: var(--surface-solid-base) !important;
}

/* ========== USER SESSIONS ========== */
.sessions-grid .session-card {
    background: var(--surface-solid-base) !important;
}

.sessions-grid .current-session {
    background: var(--surface-solid-success) !important;
}

/* ========== BATTERIES SUMMARY ========== */
.batteries-summary-container :is(.header-card, .stats-card, .loading-card, .empty-card) {
    background: var(--surface-solid-base) !important;
}

.batteries-summary-container .battery-grid .battery-card {
    background: var(--surface-solid-alt) !important;
}

/* ========== BATTERY CALIBRATION ========== */
.battery-calibration-container :is(.connection-card, .barcode-card, .session-card, .test-list-card, .history-card, .header-card, .info-item, .test-item, .history-item) {
    background: var(--surface-solid-base) !important;
}

/* ========== FIRMWARE MANAGEMENT ========== */
.esp-firmware-container :is(.card, .upload-section, .group-column, .firmware-slot, .slot-content.filled, .flow-hint, .available-section, .available-item, .history-section, .history-item, .loading-container),
.bms-firmware-container :is(.card, .upload-section, .group-column, .firmware-card, .flow-hint, .legacy-section, .legacy-item, .loading-container) {
    background: var(--surface-solid-base) !important;
}

.esp-firmware-container :is(.file-picker, .file-display),
.bms-firmware-container .file-picker {
    background: var(--surface-solid-alt) !important;
}

.esp-firmware-container .file-display,
.bms-firmware-container .file-picker-header {
    background: var(--surface-solid-accent) !important;
}

.esp-firmware-container .available-section,
.esp-firmware-container .collapsed-header:hover {
    background: var(--surface-solid-accent) !important;
}

.esp-firmware-container .group-header.group-alpha {
    background: #4c1f1f !important;
}

.esp-firmware-container .group-header.group-beta {
    background: #4c3e12 !important;
}

.esp-firmware-container .group-header.group-lbsa_internal {
    background: #172b44 !important;
}

.esp-firmware-container .group-header.group-prod {
    background: #17361f !important;
}

.bms-firmware-container .group-header {
    background: var(--surface-solid-alt) !important;
}

/* ========== WIFI CONFIGURATION ========== */
.wifi-config-container :is(.header-card, .connection-status-card, .warning-card, .wifi-config-card) {
    background: var(--surface-solid-base) !important;
}

.wifi-config-container .current-config {
    background: var(--surface-solid-info) !important;
}

/* ========== HOME MAP SIDEBAR ========== */
.org-filter-section .e-ddl.e-input-group,
.map-settings-section,
.map-settings-header,
.site-item,
.site-item.unassigned {
    background: var(--surface-solid-base) !important;
}

.map-settings-header:hover,
.site-item:hover {
    background: var(--surface-solid-accent) !important;
}

/* ========== LIVE MONITOR ========== */
.live-monitor-container :is(.module-card, .cell-card-modern, .cell-details-container, .cells-grid-modern, .chart-wrapper-can, .can-statistics-panel, .temperature-card, .temperature-grid, .settings-section, .settings-info, .cell-stats-card, .cell-info-grid, .cell-voltages, .event-item, .detail-item, .name-history-item, .update-group-info, .name-input-box.e-control-wrapper, .name-input-box.e-input-group) {
    background: var(--surface-solid-base) !important;
}

.live-monitor-container :is(.module-card:hover, .cell-card-modern:hover, .temperature-card:hover, .event-item:hover) {
    background: var(--surface-solid-accent) !important;
}

.live-monitor-container :is(.module-card-header, .sidebar-header, .name-target-summary) {
    background: var(--surface-solid-accent) !important;
}

/* ========== BATTERY CARD DETAILS ========== */
.battery-card,
.battery-card .e-card-content {
    background: var(--surface-solid-alt) !important;
}

.battery-card :is(.metric, .battery-device-info, .cell-info-grid, .contactor-status, .error-status, .ota-progress-ribbon),
.battery-card-error-item,
.summary-message,
.summary-message.info,
.summary-message.warning,
.summary-message.current,
.summary-message.fallback,
.summary-message.update {
    background: var(--surface-solid-base) !important;
}

body.theme-body .battery-card .battery-header {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
}

body.theme-body .battery-card :is(.metrics-grid, .metrics-grid-compact) .metric {
    background: rgba(0, 0, 0, 0.28) !important;
    border: 1px solid rgba(0, 188, 212, 0.12) !important;
    border-radius: 4px !important;
}

.battery-card.status-online .e-card-header {
    background: var(--surface-solid-success) !important;
}

.battery-card.status-offline .e-card-header {
    background: var(--surface-solid-danger) !important;
}

.battery-card.status-off .e-card-header {
    background: var(--surface-solid-info) !important;
}

.battery-card.status-starting .e-card-header {
    background: var(--surface-solid-warning) !important;
}

/* ========== ADDITIONAL FORMS AND PANELS ========== */
.card-custom,
.form-section,
.site-edit-card,
.site-edit-header,
.info-box,
.form-footer,
.add-organization-page .e-input-group,
.device-control-container .no-contact-info,
.devices-page .warning-card,
.devices-page .warning-header,
.devices-page .device-info-summary,
.devices-page .reason-input-container .e-input-group,
.devices-page .reason-input-container .e-input-group textarea,
.battery-calibration-container .form-input,
.form-select,
.form-textarea,
.bms-firmware-container .flow-item,
.bms-firmware-container .legacy-item,
.bms-firmware-container .file-picker-header {
    background: var(--surface-solid-base) !important;
}

.card-header-custom,
.devices-page .warning-header {
    background: var(--surface-solid-accent) !important;
}
