/* ============================================================
   LIGHT THEME GLOBAL HARDENING
   Финальная починка светлой темы по всему приложению.
   Цель: ни одного белого текста на белом фоне, серых блоков и
   плохо читаемых кнопок. Применяется только когда активна светлая.
   ============================================================ */

html.theme-light, [data-theme="light"] {
    --lt-bg: #f8fafc;
    --lt-bg-soft: #f1f5f9;
    --lt-card: #ffffff;
    --lt-card-soft: #fafbff;
    --lt-text: #0f172a;
    --lt-text-secondary: #475569;
    --lt-text-muted: #64748b;
    --lt-text-subtle: #94a3b8;
    --lt-border: #e2e8f0;
    --lt-border-soft: rgba(15, 23, 42, 0.06);
    --lt-accent: #7c3aed;
    --lt-accent-soft: #ede9fe;
    --lt-success: #047857;
    --lt-success-bg: #d1fae5;
    --lt-warning: #b45309;
    --lt-warning-bg: #fef3c7;
    --lt-danger: #b91c1c;
    --lt-danger-bg: #fee2e2;
    --lt-info: #1d4ed8;
    --lt-info-bg: #dbeafe;
}

/* ────────────── 1. БАЗА: ничего белого на белом ────────────── */

/* Глобально: «серые» inline-стили из тёмной темы → светлая карточка */
html.theme-light [style*="background:linear-gradient(145deg,rgba(30,30,35"],
html.theme-light [style*="background: linear-gradient(145deg, rgba(30,30,35"],
html.theme-light [style*="background:linear-gradient(145deg,rgba(26,26,46"],
html.theme-light [style*="background: linear-gradient(145deg,rgba(26,26,46"],
html.theme-light [style*="background: linear-gradient(160deg, rgba(28"],
html.theme-light [style*="background:linear-gradient(160deg,rgba(28"],
html.theme-light [style*="background:#1a1a2e"],
html.theme-light [style*="background:#1a1a26"],
html.theme-light [style*="background:#0f0f15"],
html.theme-light [style*="background:#111"],
html.theme-light [style*="background: #111"],
html.theme-light [style*="background:#0a0a0a"],
html.theme-light [style*="background:rgba(255,255,255,0.02)"],
html.theme-light [style*="background:rgba(255,255,255,0.03)"],
html.theme-light [style*="background:rgba(255,255,255,0.04)"],
html.theme-light [style*="background:rgba(255,255,255,0.05)"],
html.theme-light [style*="background:rgba(255,255,255,0.06)"],
html.theme-light [style*="background: rgba(255,255,255,0.02)"],
html.theme-light [style*="background: rgba(255,255,255,0.03)"],
html.theme-light [style*="background: rgba(255,255,255,0.04)"] {
    background: #ffffff !important;
    border-color: var(--lt-border) !important;
}

/* Текст: белый/светлый → тёмный */
html.theme-light [style*="color:#fff"],
html.theme-light [style*="color: #fff"],
html.theme-light [style*="color:#ffffff"],
html.theme-light [style*="color: #ffffff"],
html.theme-light [style*="color:#e0e0e0"],
html.theme-light [style*="color:#e2e8f0"],
html.theme-light [style*="color:#cbd5e1"],
html.theme-light [style*="color:#888"],
html.theme-light [style*="color: #888"],
html.theme-light [style*="color:#999"],
html.theme-light [style*="color: #999"],
html.theme-light [style*="color:#666"],
html.theme-light [style*="color:#aaa"],
html.theme-light [style*="color:#bbb"],
html.theme-light [style*="color:rgba(255,255,255"] {
    color: var(--lt-text) !important;
}

/* Прозрачный белый текст в подписях → muted-серый */
html.theme-light [style*="color: rgba(255, 255, 255, 0.5)"],
html.theme-light [style*="color: rgba(255, 255, 255, 0.55)"],
html.theme-light [style*="color: rgba(255, 255, 255, 0.6)"],
html.theme-light [style*="color: rgba(255, 255, 255, 0.65)"],
html.theme-light [style*="color: rgba(255, 255, 255, 0.7)"],
html.theme-light [style*="color: rgba(255, 255, 255, 0.75)"],
html.theme-light [style*="color: rgba(255, 255, 255, 0.78)"],
html.theme-light [style*="color: rgba(255, 255, 255, 0.8)"],
html.theme-light [style*="color: rgba(255, 255, 255, 0.85)"],
html.theme-light [style*="color: rgba(245, 245, 250, 0.5)"],
html.theme-light [style*="color: rgba(245, 245, 250, 0.55)"],
html.theme-light [style*="color: rgba(245, 245, 250, 0.6)"],
html.theme-light [style*="color: rgba(245, 245, 250, 0.65)"],
html.theme-light [style*="color: rgba(245, 245, 250, 0.7)"],
html.theme-light [style*="color: rgba(245, 245, 250, 0.78)"] {
    color: var(--lt-text-muted) !important;
}

/* Бордеры: rgba-белые → серые */
html.theme-light [style*="border:1px solid rgba(255,255,255"],
html.theme-light [style*="border: 1px solid rgba(255,255,255"],
html.theme-light [style*="border-top:1px solid rgba(255,255,255"],
html.theme-light [style*="border-top: 1px solid rgba(255,255,255"],
html.theme-light [style*="border-bottom:1px solid rgba(255,255,255"],
html.theme-light [style*="border-bottom: 1px solid rgba(255,255,255"],
html.theme-light [style*="border-left:1px solid rgba(255,255,255"],
html.theme-light [style*="border-right:1px solid rgba(255,255,255"] {
    border-color: var(--lt-border) !important;
}

/* ────────────── 2. ВЛАДЕЛЕЦ: финансы, проект, табы ────────────── */

/* of-* (Owner Finance hero / progress) */
html.theme-light .of-section,
html.theme-light .of-progress-wrap,
html.theme-light .of-hero {
    background: var(--lt-card) !important;
    border-color: var(--lt-border) !important;
    color: var(--lt-text) !important;
    box-shadow: 0 4px 20px rgba(15, 23, 42, 0.06), 0 0 0 1px var(--lt-border-soft) !important;
}
html.theme-light .of-section::before { display: none; }
html.theme-light .of-section-title { color: var(--lt-text) !important; }
html.theme-light .of-hero-val { color: var(--lt-text) !important; }
html.theme-light .of-hero-lbl { color: var(--lt-text-muted) !important; }
html.theme-light .of-hero--purple { background: linear-gradient(145deg, #ffffff, #faf5ff) !important; border-color: rgba(124, 58, 237, 0.18) !important; }
html.theme-light .of-hero--purple .of-hero-val { color: #6d28d9 !important; }
html.theme-light .of-hero--green { background: linear-gradient(145deg, #ffffff, #ecfdf5) !important; border-color: rgba(16, 185, 129, 0.22) !important; }
html.theme-light .of-hero--green .of-hero-val { color: #047857 !important; }
html.theme-light .of-hero--amber { background: linear-gradient(145deg, #ffffff, #fffbeb) !important; border-color: rgba(245, 158, 11, 0.22) !important; }
html.theme-light .of-hero--amber .of-hero-val { color: #b45309 !important; }
html.theme-light .of-progress-wrap { background: #ffffff !important; border-color: var(--lt-border) !important; }
html.theme-light .of-progress-track { background: rgba(15, 23, 42, 0.06) !important; }
html.theme-light .of-progress-title { color: var(--lt-text) !important; }
html.theme-light .of-progress-pct {
    background: linear-gradient(135deg, #6366f1, #7c3aed) !important;
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* ofin-* / opr-* (Project tab) */
html.theme-light .ofin-hero,
html.theme-light .opr-hero,
html.theme-light .opr-section {
    background: var(--lt-card) !important;
    border-color: var(--lt-border) !important;
    color: var(--lt-text) !important;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05) !important;
}
html.theme-light .ofin-hero-title,
html.theme-light .opr-hero-title,
html.theme-light .opr-section-title { color: var(--lt-text) !important; }
html.theme-light .ofin-kpi-card,
html.theme-light .opr-kpi-card {
    background: var(--lt-card) !important;
    border-color: var(--lt-border) !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04) !important;
}
html.theme-light .ofin-kpi-val,
html.theme-light .opr-kpi-val { color: var(--lt-text) !important; }
html.theme-light .ofin-kpi-lbl,
html.theme-light .opr-kpi-lbl { color: var(--lt-text-muted) !important; }
html.theme-light .ofin-progress-track { background: rgba(15, 23, 42, 0.06) !important; }
html.theme-light .opr-doc {
    background: var(--lt-bg) !important;
    border-color: var(--lt-border) !important;
}
html.theme-light .opr-doc-name { color: var(--lt-text) !important; }
html.theme-light .opr-doc-meta { color: var(--lt-text-muted) !important; }

/* ────────────── 3. SECTION-CARD (общий блок на multi-страницах) ────────────── */
html.theme-light .section-card {
    background: var(--lt-card) !important;
    border: 1px solid var(--lt-border) !important;
    color: var(--lt-text) !important;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05) !important;
}
html.theme-light .section-title { color: var(--lt-text) !important; }

/* ────────────── 4. STATUS CARD ────────────── */
html.theme-light .status-card {
    background: var(--lt-card) !important;
    border-color: var(--lt-border) !important;
    color: var(--lt-text) !important;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05) !important;
}

/* ────────────── 5. КНОПКИ ────────────── */
html.theme-light .btn-primary,
html.theme-light .btn.btn-primary {
    background: linear-gradient(135deg, #7c3aed, #06b6d4) !important;
    border: none !important;
    color: #ffffff !important;
    box-shadow: 0 6px 16px rgba(124, 58, 237, 0.25) !important;
}
html.theme-light .btn-primary:hover { box-shadow: 0 10px 22px rgba(124, 58, 237, 0.35) !important; color: #fff !important; }

html.theme-light .btn-secondary,
html.theme-light .btn.btn-secondary {
    background: var(--lt-card) !important;
    border: 1px solid var(--lt-border) !important;
    color: var(--lt-text-secondary) !important;
}
html.theme-light .btn-secondary:hover {
    border-color: rgba(124, 58, 237, 0.32) !important;
    color: var(--lt-accent) !important;
    background: var(--lt-accent-soft) !important;
}

html.theme-light .btn-success {
    background: linear-gradient(135deg, #10b981, #059669) !important;
    color: #fff !important;
    border: none !important;
    box-shadow: 0 6px 16px rgba(16, 185, 129, 0.25) !important;
}
html.theme-light .btn-danger {
    background: linear-gradient(135deg, #ef4444, #dc2626) !important;
    color: #fff !important;
    border: none !important;
    box-shadow: 0 6px 16px rgba(239, 68, 68, 0.25) !important;
}
html.theme-light .btn-warning {
    background: linear-gradient(135deg, #f59e0b, #d97706) !important;
    color: #fff !important;
    border: none !important;
    box-shadow: 0 6px 16px rgba(245, 158, 11, 0.25) !important;
}

/* Кнопки-ссылки с inline-градиентами тёмной темы */
html.theme-light a[style*="background:linear-gradient(135deg,#7c3aed"],
html.theme-light a[style*="background: linear-gradient(135deg,#7c3aed"],
html.theme-light button[style*="background:linear-gradient(135deg,#7c3aed"] {
    color: #ffffff !important;
}

/* Кнопки на тёмных inline-стилях иногда имеют color:#fff,
   а в светлой нужно подсветить текст по фону кнопки.
   Если в кнопке есть градиент (линейный) — оставляем text white.
   Эта секция убирает override #fff→dark из (1) для кнопок с linear-gradient */
html.theme-light a[style*="linear-gradient"][style*="color:#fff"],
html.theme-light a[style*="linear-gradient"][style*="color: #fff"],
html.theme-light button[style*="linear-gradient"][style*="color:#fff"],
html.theme-light button[style*="linear-gradient"][style*="color: #fff"] {
    color: #ffffff !important;
}

/* ────────────── 6. TABS ────────────── */
html.theme-light .tabs-container,
html.theme-light .tabs-nav {
    background: var(--lt-card) !important;
    border: 1px solid var(--lt-border) !important;
    border-radius: 14px;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
}
html.theme-light .tab-btn {
    color: var(--lt-text-muted) !important;
    background: transparent !important;
    border: none !important;
}
html.theme-light .tab-btn:hover {
    color: var(--lt-accent) !important;
    background: var(--lt-accent-soft) !important;
}
html.theme-light .tab-btn.active {
    background: linear-gradient(135deg, #ede9fe, #cffafe) !important;
    color: #6d28d9 !important;
    box-shadow: inset 0 0 0 1px rgba(124, 58, 237, 0.18) !important;
}

/* ────────────── 7. ИНПУТЫ И ФОРМЫ ────────────── */
html.theme-light input[type="text"],
html.theme-light input[type="email"],
html.theme-light input[type="number"],
html.theme-light input[type="search"],
html.theme-light input[type="tel"],
html.theme-light input[type="password"],
html.theme-light input[type="date"],
html.theme-light input[type="time"],
html.theme-light input[type="datetime-local"],
html.theme-light textarea,
html.theme-light select,
html.theme-light .form-control,
html.theme-light .form-select {
    background: var(--lt-card) !important;
    border: 1px solid var(--lt-border) !important;
    color: var(--lt-text) !important;
}
html.theme-light input::placeholder,
html.theme-light textarea::placeholder { color: var(--lt-text-subtle) !important; }
html.theme-light input:focus,
html.theme-light textarea:focus,
html.theme-light select:focus {
    border-color: rgba(124, 58, 237, 0.45) !important;
    box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.12) !important;
    outline: none;
}

/* ────────────── 8. БЕЙДЖИ ────────────── */
html.theme-light .badge,
html.theme-light .ohero-status-badge {
    background: var(--lt-accent-soft) !important;
    color: var(--lt-accent) !important;
    border: 1px solid rgba(124, 58, 237, 0.20) !important;
}
html.theme-light .ohero-status-badge--new { background: var(--lt-info-bg) !important; color: var(--lt-info) !important; border-color: rgba(29, 78, 216, 0.18) !important; }
html.theme-light .ohero-status-badge--active,
html.theme-light .ohero-status-badge--in_progress { background: var(--lt-accent-soft) !important; color: var(--lt-accent) !important; border-color: rgba(124, 58, 237, 0.18) !important; }
html.theme-light .ohero-status-badge--finished,
html.theme-light .ohero-status-badge--completed { background: var(--lt-success-bg) !important; color: var(--lt-success) !important; border-color: rgba(4, 120, 87, 0.18) !important; }
html.theme-light .ohero-status-badge--pause { background: var(--lt-warning-bg) !important; color: var(--lt-warning) !important; border-color: rgba(180, 83, 9, 0.18) !important; }

/* ────────────── 9. PROGRESS BARS ────────────── */
html.theme-light .progress,
html.theme-light .progress-bar-track,
html.theme-light .ohero-prog-bar,
html.theme-light .of-progress-track,
html.theme-light .ofin-progress-track,
html.theme-light .oach-progress-track,
html.theme-light .odream-cmp-bar-track {
    background: rgba(15, 23, 42, 0.08) !important;
}

/* ────────────── 10. DROPDOWN MENU ────────────── */
html.theme-light .dropdown-menu {
    background: var(--lt-card) !important;
    border: 1px solid var(--lt-border) !important;
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12) !important;
    color: var(--lt-text) !important;
}
html.theme-light .dropdown-item { color: var(--lt-text) !important; }
html.theme-light .dropdown-item:hover { background: var(--lt-bg-soft) !important; color: var(--lt-accent) !important; }

/* ────────────── 11. МОДАЛЬНЫЕ ОКНА ────────────── */
html.theme-light .modal-content {
    background: var(--lt-card) !important;
    color: var(--lt-text) !important;
    border: 1px solid var(--lt-border) !important;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.18) !important;
}
html.theme-light .modal-header { border-bottom: 1px solid var(--lt-border) !important; }
html.theme-light .modal-footer { border-top: 1px solid var(--lt-border) !important; }
html.theme-light .modal-title { color: var(--lt-text) !important; }

/* ────────────── 12. КАРТОЧКИ ОБЩИЕ (Bootstrap card) ────────────── */
html.theme-light .card {
    background: var(--lt-card) !important;
    border: 1px solid var(--lt-border) !important;
    color: var(--lt-text) !important;
}
html.theme-light .card-header {
    background: var(--lt-bg-soft) !important;
    color: var(--lt-text) !important;
    border-bottom-color: var(--lt-border) !important;
}

/* ────────────── 13. ТАБЛИЦЫ ────────────── */
html.theme-light .table {
    color: var(--lt-text) !important;
    background: var(--lt-card) !important;
    border-color: var(--lt-border) !important;
}
html.theme-light .table thead th {
    background: var(--lt-bg-soft) !important;
    color: var(--lt-text-secondary) !important;
    border-bottom: 1px solid var(--lt-border) !important;
}
html.theme-light .table tbody tr { border-color: var(--lt-border) !important; }
html.theme-light .table tbody tr:hover { background: var(--lt-bg-soft) !important; }

/* ────────────── 14. ТИПОГРАФИЯ ────────────── */
html.theme-light h1, html.theme-light h2, html.theme-light h3,
html.theme-light h4, html.theme-light h5, html.theme-light h6 { color: var(--lt-text); }
html.theme-light .text-muted { color: var(--lt-text-muted) !important; }
html.theme-light .text-secondary { color: var(--lt-text-secondary) !important; }

/* ────────────── 15. INLINE СТАТУС-БЕЙДЖИ ИЗ JS ────────────── */
html.theme-light [style*="background:rgba(102,126,234,0.15)"],
html.theme-light [style*="background: rgba(102,126,234,0.15)"] {
    background: var(--lt-info-bg) !important;
    color: var(--lt-info) !important;
}
html.theme-light [style*="background:rgba(16,185,129,0.15)"],
html.theme-light [style*="background: rgba(16,185,129,0.15)"] {
    background: var(--lt-success-bg) !important;
    color: var(--lt-success) !important;
}
html.theme-light [style*="background:rgba(245,158,11,0.15)"],
html.theme-light [style*="background: rgba(245,158,11,0.15)"] {
    background: var(--lt-warning-bg) !important;
    color: var(--lt-warning) !important;
}
html.theme-light [style*="background:rgba(239,68,68,0.15)"],
html.theme-light [style*="background: rgba(239,68,68,0.15)"] {
    background: var(--lt-danger-bg) !important;
    color: var(--lt-danger) !important;
}

/* ────────────── 16. EMPTY STATE / LOADING ────────────── */
html.theme-light .empty-state,
html.theme-light .empty-state-text,
html.theme-light .loading-state {
    color: var(--lt-text-muted) !important;
}

/* ────────────── 17. NAVBAR (если переключаются на light) ────────────── */
html.theme-light .navbar-modern {
    background: rgba(255, 255, 255, 0.92) !important;
    backdrop-filter: blur(12px) saturate(120%);
    -webkit-backdrop-filter: blur(12px) saturate(120%);
    border-bottom: 1px solid var(--lt-border) !important;
    box-shadow: 0 2px 12px rgba(15, 23, 42, 0.04);
}
html.theme-light .navbar-modern .nav-link { color: var(--lt-text-secondary) !important; }
html.theme-light .navbar-modern .nav-link:hover,
html.theme-light .navbar-modern .nav-link.active { color: var(--lt-accent) !important; }

/* ────────────── 18. PRE / CODE / KBD ────────────── */
html.theme-light pre,
html.theme-light code,
html.theme-light kbd {
    background: var(--lt-bg-soft) !important;
    color: var(--lt-text) !important;
    border: 1px solid var(--lt-border) !important;
}

/* ────────────── 19. ALERT ────────────── */
html.theme-light .alert-info {
    background: var(--lt-info-bg) !important;
    color: var(--lt-info) !important;
    border-color: rgba(29, 78, 216, 0.20) !important;
}
html.theme-light .alert-success {
    background: var(--lt-success-bg) !important;
    color: var(--lt-success) !important;
    border-color: rgba(4, 120, 87, 0.20) !important;
}
html.theme-light .alert-warning {
    background: var(--lt-warning-bg) !important;
    color: var(--lt-warning) !important;
    border-color: rgba(180, 83, 9, 0.20) !important;
}
html.theme-light .alert-danger {
    background: var(--lt-danger-bg) !important;
    color: var(--lt-danger) !important;
    border-color: rgba(185, 28, 28, 0.20) !important;
}

/* ────────────── 20. FAB и плавающие кнопки ────────────── */
html.theme-light .fab-chat-btn,
html.theme-light .foreman-fab,
html.theme-light .owner-fab-chat {
    background: linear-gradient(135deg, #7c3aed, #06b6d4) !important;
    color: #ffffff !important;
    box-shadow: 0 12px 28px rgba(124, 58, 237, 0.32) !important;
}

/* Защита от «белый текст на белой кнопке» */
html.theme-light .btn-primary *,
html.theme-light .btn-success *,
html.theme-light .btn-danger *,
html.theme-light .btn-warning *,
html.theme-light .ofc-launcher *,
html.theme-light .ohero-kpi-card * {
    color: inherit;
}
html.theme-light .btn-primary,
html.theme-light .btn-success,
html.theme-light .btn-danger,
html.theme-light .btn-warning {
    color: #ffffff !important;
}
html.theme-light .btn-primary i,
html.theme-light .btn-success i,
html.theme-light .btn-danger i,
html.theme-light .btn-warning i { color: #ffffff !important; }

/* ────────────── 21. OWNER DASHBOARD V2 — Hero и блоки ────────────── */
html.theme-light .owner-app {
    background: var(--lt-bg) !important;
    color: var(--lt-text);
}

/* Заголовок «Добрый вечер» — должен быть тёмным на светлом */
html.theme-light .owner-greeting h1,
html.theme-light .owner-greeting-title {
    background: linear-gradient(135deg, #1e1b4b, #6d28d9) !important;
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
}
html.theme-light .owner-greeting-subtitle,
html.theme-light .owner-greeting p { color: var(--lt-text-muted) !important; }

/* Карточка проекта (Заказчик Александра) — белый фон, тёмный текст */
html.theme-light .owner-project-card {
    background: var(--lt-card) !important;
    border: 1px solid var(--lt-border) !important;
    color: var(--lt-text);
    box-shadow: 0 6px 22px rgba(15, 23, 42, 0.06) !important;
}
html.theme-light .owner-project-card h2,
html.theme-light .owner-project-title { color: var(--lt-text) !important; }
html.theme-light .owner-project-address,
html.theme-light .owner-project-company { color: var(--lt-text-secondary) !important; }
html.theme-light .owner-project-card .badge,
html.theme-light .owner-project-card .ohero-status-badge {
    background: var(--lt-accent-soft) !important;
    color: var(--lt-accent) !important;
}

/* Серые «прогресс ремонт ещё не начат» цифры — нужно сделать читаемыми */
html.theme-light .owner-stat-value,
html.theme-light .owner-stat-num { color: var(--lt-text) !important; }
html.theme-light .owner-stat-label { color: var(--lt-text-muted) !important; }

/* ────────────── 22. ИКОНКИ И SVG ────────────── */
html.theme-light .navbar-modern .icon-sun,
html.theme-light .navbar-modern .icon-moon { color: var(--lt-text-secondary); }

/* ────────────── 23. NOTIFICATIONS BADGE ────────────── */
html.theme-light .notification-badge,
html.theme-light .nav-badge {
    background: linear-gradient(135deg, #ef4444, #dc2626) !important;
    color: #ffffff !important;
}
