/* 全站蓝白主题 + 夜间模式（勿用 :root 单独定义，避免覆盖 dark） */
html[data-theme="light"],
html:not([data-theme]) {
    color-scheme: light;
    --saas-primary: #1677ff;
    --saas-primary-soft: #e6f4ff;
    --saas-primary-hover: #0958d9;
    --saas-primary-rgb: 22, 119, 255;
    --saas-bg: #f0f5ff;
    --saas-sidebar: #ffffff;
    --saas-card: #ffffff;
    --saas-text: #0f172a;
    --saas-muted: #64748b;
    --saas-border: #dbeafe;
    --saas-shadow: 0 4px 24px rgba(22, 119, 255, 0.08);
    --saas-input-bg: #ffffff;
    --saas-table-head: #f8fafc;
    --saas-success: #1677ff;
    --saas-warning-bg: #fffbeb;
    --saas-warning-border: #fde68a;
    --saas-warning-text: #b45309;
    --theme-toggle-bg: #e6f4ff;
}

html[data-theme="dark"],
html.theme-dark {
    color-scheme: dark;
    --saas-primary: #4096ff;
    --saas-primary-soft: rgba(64, 150, 255, 0.15);
    --saas-primary-hover: #69b1ff;
    --saas-primary-rgb: 64, 150, 255;
    --saas-bg: #0b1220;
    --saas-sidebar: #111827;
    --saas-card: #1a2332;
    --saas-text: #e8eef7;
    --saas-muted: #94a3b8;
    --saas-border: #2a3a52;
    --saas-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
    --saas-input-bg: #152030;
    --saas-table-head: #152030;
    --saas-success: #4096ff;
    --saas-warning-bg: rgba(245, 158, 11, 0.12);
    --saas-warning-border: #92400e;
    --saas-warning-text: #fbbf24;
    --theme-toggle-bg: rgba(64, 150, 255, 0.2);
}

/* 主题切换按钮 */
.saas-theme-toggle {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    border-radius: 10px;
    border: 1px solid var(--saas-border);
    background: var(--theme-toggle-bg);
    color: var(--saas-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.2s, transform 0.15s;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    position: relative;
    z-index: 2;
}

.saas-theme-toggle .bi {
    pointer-events: none;
}

.saas-theme-toggle:hover {
    background: var(--saas-primary-soft);
    transform: scale(1.04);
}

.saas-theme-toggle .theme-icon-light { display: inline-block !important; }
.saas-theme-toggle .theme-icon-dark { display: none !important; }
html[data-theme="dark"] .saas-theme-toggle .theme-icon-light,
html.theme-dark .saas-theme-toggle .theme-icon-light { display: none !important; }
html[data-theme="dark"] .saas-theme-toggle .theme-icon-dark,
html.theme-dark .saas-theme-toggle .theme-icon-dark { display: inline-block !important; }

body.saas-menu-open {
    overflow: hidden;
    position: fixed;
    width: 100%;
}

.auth-theme-bar {
    position: fixed;
    top: max(12px, env(safe-area-inset-top));
    right: max(12px, env(safe-area-inset-right));
    z-index: 1100;
}

/* Bootstrap 组件夜间适配 */
html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select,
html.theme-dark .form-control,
html.theme-dark .form-select {
    background: var(--saas-input-bg);
    border-color: var(--saas-border);
    color: var(--saas-text);
}

html[data-theme="dark"] .form-control:focus,
html[data-theme="dark"] .form-select:focus,
html.theme-dark .form-control:focus,
html.theme-dark .form-select:focus {
    background: var(--saas-input-bg);
    color: var(--saas-text);
    border-color: var(--saas-primary);
    box-shadow: 0 0 0 3px rgba(var(--saas-primary-rgb), 0.2);
}

html[data-theme="dark"] .table {
    color: var(--saas-text);
    border-color: var(--saas-border);
}

html[data-theme="dark"] .modal-content {
    background: var(--saas-card);
    color: var(--saas-text);
    border: 1px solid var(--saas-border);
}

html[data-theme="dark"] .modal-header,
html[data-theme="dark"] .modal-footer {
    border-color: var(--saas-border);
}

html[data-theme="dark"] .btn-close {
    filter: invert(1);
}

html[data-theme="dark"] .alert-warning {
    background: var(--saas-warning-bg);
    border-color: var(--saas-warning-border);
    color: var(--saas-warning-text);
}

html[data-theme="dark"] body.auth-page.poke-auth,
html[data-theme="dark"] body.landing-page.poke-auth {
    background: var(--saas-bg) !important;
}

html[data-theme="dark"] .auth-card,
html[data-theme="dark"] .saas-login-card {
    background: var(--saas-card);
    color: var(--saas-text);
    border-color: var(--saas-border);
}

html[data-theme="dark"] .app-card,
html[data-theme="dark"] .poke-panel {
    background: var(--saas-card);
    color: var(--saas-text);
    border-color: var(--saas-border);
}

html[data-theme="dark"] .app-navbar {
    background: var(--saas-card) !important;
    border-color: var(--saas-border) !important;
}

html[data-theme="dark"] .list-group-item {
    background: var(--saas-card);
    border-color: var(--saas-border);
    color: var(--saas-text);
}

html[data-theme="dark"] .user-metric-box {
    background: var(--saas-input-bg);
}

html[data-theme="dark"] .user-contact-banner {
    background: var(--saas-warning-bg);
    border-color: var(--saas-warning-border);
}

html[data-theme="dark"] .saas-table tbody tr:hover {
    background: rgba(var(--saas-primary-rgb), 0.06);
}

html[data-theme="dark"] .saas-topbar {
    background: rgba(17, 24, 39, 0.92);
}

html[data-theme="dark"] .btn-success {
    background: var(--saas-primary);
    border-color: var(--saas-primary);
}

html[data-theme="dark"] .btn-success:hover,
html.theme-dark .btn-success:hover {
    background: var(--saas-primary-hover);
    border-color: var(--saas-primary-hover);
}

/* ========== 旧版 poke-ui / 平台页 ========== */
html[data-theme="dark"] body.poke-ui,
html[data-theme="dark"] body.poke-auth,
html.theme-dark body.poke-ui,
html.theme-dark body.poke-auth {
    --poke-bg: #0b1220;
    --poke-white: #1a2332;
    --poke-border: #2a3a52;
    --poke-blue-pale: rgba(64, 150, 255, 0.15);
    background: var(--poke-bg) !important;
    color: var(--saas-text, #e8eef7);
}

html[data-theme="dark"] body.poke-ui::before,
html.theme-dark body.poke-ui::before {
    opacity: 0.35;
    background:
        radial-gradient(ellipse 80% 50% at 10% 0%, rgba(64, 150, 255, 0.12), transparent 50%),
        radial-gradient(ellipse 60% 40% at 90% 100%, rgba(22, 119, 255, 0.08), transparent 45%);
}

html[data-theme="dark"] body.poke-ui .form-label,
html.theme-dark body.poke-ui .form-label {
    color: var(--saas-muted);
}

html[data-theme="dark"] body.poke-ui .app-card,
html[data-theme="dark"] body.poke-ui .poke-panel,
html[data-theme="dark"] body.poke-ui .ui-panel,
html.theme-dark body.poke-ui .app-card,
html.theme-dark body.poke-ui .poke-panel,
html.theme-dark body.poke-ui .ui-panel {
    background: var(--saas-card);
    color: var(--saas-text);
    border-color: var(--saas-border);
}

/* ========== SaaS 工作台夜间细节 ========== */
html[data-theme="dark"] body.saas-admin-body,
html.theme-dark body.saas-admin-body {
    background: var(--saas-bg);
    color: var(--saas-text);
}

html[data-theme="dark"] .saas-nav-item:hover,
html.theme-dark .saas-nav-item:hover {
    background: rgba(var(--saas-primary-rgb), 0.12);
    color: var(--saas-text);
}

html[data-theme="dark"] .saas-panel,
html[data-theme="dark"] .saas-kpi,
html[data-theme="dark"] .saas-chart-card,
html.theme-dark .saas-panel,
html.theme-dark .saas-kpi,
html.theme-dark .saas-chart-card {
    background: var(--saas-card);
    border-color: var(--saas-border);
    color: var(--saas-text);
}

html[data-theme="dark"] .saas-panel__head,
html.theme-dark .saas-panel__head {
    border-color: var(--saas-border);
    color: var(--saas-text);
}

html[data-theme="dark"] .saas-table thead th,
html.theme-dark .saas-table thead th {
    background: var(--saas-table-head);
    color: var(--saas-muted);
    border-color: var(--saas-border);
}

html[data-theme="dark"] .saas-table tbody td,
html.theme-dark .saas-table tbody td {
    border-color: var(--saas-border);
    color: var(--saas-text);
}

html[data-theme="dark"] .saas-btn,
html.theme-dark .saas-btn {
    background: var(--saas-card);
    border-color: var(--saas-border);
    color: var(--saas-text);
}

html[data-theme="dark"] .saas-btn:hover,
html.theme-dark .saas-btn:hover {
    background: var(--saas-primary-soft);
    color: var(--saas-primary);
    border-color: var(--saas-primary);
}

html[data-theme="dark"] .saas-topbar__title,
html[data-theme="dark"] .saas-topbar__sub,
html.theme-dark .saas-topbar__title,
html.theme-dark .saas-topbar__sub {
    color: var(--saas-text);
}

html[data-theme="dark"] .saas-mobile-nav,
html.theme-dark .saas-mobile-nav {
    background: var(--saas-card);
    border-color: var(--saas-border);
}

html[data-theme="dark"] .text-muted,
html.theme-dark .text-muted {
    color: var(--saas-muted) !important;
}

html[data-theme="dark"] .saas-login-wrap,
html.theme-dark .saas-login-wrap {
    background: linear-gradient(135deg, var(--saas-bg) 0%, #111827 50%, #0b1220 100%);
}

html[data-theme="dark"] .saas-login-card,
html.theme-dark .saas-login-card {
    background: var(--saas-card);
    color: var(--saas-text);
}

html[data-theme="dark"] .user-section-card,
html[data-theme="dark"] .user-platform-tile,
html.theme-dark .user-section-card,
html.theme-dark .user-platform-tile {
    background: var(--saas-card);
    border-color: var(--saas-border);
    color: var(--saas-text);
}

html[data-theme="dark"] .user-section-card__head,
html.theme-dark .user-section-card__head {
    border-color: var(--saas-border);
    color: var(--saas-text);
}

html[data-theme="dark"] .user-platform-tile:hover,
html.theme-dark .user-platform-tile:hover {
    border-color: var(--saas-primary);
    color: var(--saas-text);
}

html[data-theme="dark"] .user-welcome-card,
html.theme-dark .user-welcome-card {
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}

html[data-theme="dark"] .dropdown-menu,
html.theme-dark .dropdown-menu {
    background: var(--saas-card);
    border-color: var(--saas-border);
}

html[data-theme="dark"] .dropdown-item,
html.theme-dark .dropdown-item {
    color: var(--saas-text);
}

html[data-theme="dark"] .dropdown-item:hover,
html.theme-dark .dropdown-item:hover {
    background: var(--saas-primary-soft);
    color: var(--saas-primary);
}

html[data-theme="dark"] .card,
html.theme-dark .card {
    background: var(--saas-card);
    border-color: var(--saas-border);
    color: var(--saas-text);
}

html[data-theme="dark"] .bg-white,
html.theme-dark .bg-white {
    background-color: var(--saas-card) !important;
}

html[data-theme="dark"] .bg-light,
html.theme-dark .bg-light {
    background-color: var(--saas-input-bg) !important;
}
