/**
 * Hayak theme tokens — shared across admin, provider, and client portals.
 * Works with both `.dark` (Tailwind) and `.dark-mode` (legacy) on <html>.
 */

:root {
    --bg-primary: #ffffff;
    --bg-secondary: #f8fafc;
    --bg-tertiary: #f1f5f9;
    --bg-card: #ffffff;
    --bg-sidebar: #ffffff;
    --bg-navbar: #ffffff;

    --text-primary: #0f172a;
    --text-secondary: #475569;
    --text-muted: #94a3b8;
    --text-inverse: #ffffff;

    --border-color: #e2e8f0;
    --border-focus: #6366f1;

    --brand-primary: #6366f1;
    --brand-hover: #4f46e5;

    --success: #10b981;
    --warning: #f59e0b;
    --danger: #ef4444;
    --info: #3b82f6;

    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07);

    --bg-light: var(--bg-secondary);
    --sidebar-bg: var(--bg-sidebar);
    --header-bg: var(--bg-navbar);
    --card-bg: var(--bg-card);
    --text-dark: var(--text-primary);
    --search-bg: var(--bg-primary);
    --search-border: var(--border-color);
    --hayak-bg: var(--bg-primary);
    --hayak-bg-light: var(--bg-secondary);
    --hayak-bg-muted: var(--bg-tertiary);
    --hayak-text: var(--text-primary);
    --hayak-text-muted: var(--text-muted);
    --hayak-border: var(--border-color);
    --bg-white: var(--bg-card);
}

.dark,
.dark-mode {
    --bg-primary: #0f172a;
    --bg-secondary: #1e293b;
    --bg-tertiary: #334155;
    --bg-card: #1e293b;
    --bg-sidebar: #0f172a;
    --bg-navbar: #1e293b;

    --text-primary: #f1f5f9;
    --text-secondary: #cbd5e1;
    --text-muted: #64748b;
    --text-inverse: #0f172a;

    --border-color: #334155;
    --border-focus: #818cf8;

    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
    --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4);

    --bg-light: var(--bg-secondary);
    --sidebar-bg: var(--bg-sidebar);
    --header-bg: var(--bg-navbar);
    --card-bg: var(--bg-card);
    --text-dark: var(--text-primary);
    --search-bg: var(--bg-tertiary);
    --search-border: var(--border-color);
    --hayak-bg: var(--bg-card);
    --hayak-bg-light: var(--bg-secondary);
    --hayak-bg-muted: var(--bg-tertiary);
    --hayak-text: var(--text-primary);
    --hayak-text-muted: var(--text-muted);
    --hayak-border: var(--border-color);
    --bg-white: var(--bg-card);
}

html.theme-transition *,
html.theme-transition *::before,
html.theme-transition *::after {
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

svg, img, video, canvas, iframe {
    transition: none !important;
}

body {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
}

.main-content,
.content-area {
    background-color: var(--bg-secondary);
}

.module-card,
.main-card,
.chart-card,
.stat-card,
.details-panel,
.profile-card,
.security-card,
.booking-detail-card,
.provider-content,
.alert-custom {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary);
    box-shadow: var(--shadow-md);
}

.provider-header-main,
.provider-topbar,
.navbar,
.header {
    background-color: var(--bg-navbar) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary);
}

.provider-header-main .search-bar input,
.search-bar input,
.search-input-wrapper input,
.filter-input-wrapper input,
.toolbar-search input {
    background-color: var(--bg-primary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

.provider-header-main .search-bar input::placeholder,
.search-bar input::placeholder {
    color: var(--text-muted) !important;
}

.sidebar {
    background-color: var(--bg-sidebar) !important;
    border-color: var(--border-color) !important;
    color: var(--text-secondary);
}

.dark .hayak-admin .sidebar-menu a,
.dark-mode .hayak-admin .sidebar-menu a,
.dark .hayak-provider .sidebar-menu a,
.dark-mode .hayak-provider .sidebar-menu a {
    color: var(--text-secondary);
}

.dark .hayak-admin .sidebar-menu li:not(.active) > a:hover,
.dark-mode .hayak-admin .sidebar-menu li:not(.active) > a:hover,
.dark .hayak-provider .sidebar-menu li:not(.active) > a:hover,
.dark-mode .hayak-provider .sidebar-menu li:not(.active) > a:hover {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
}

.dark .menu-label,
.dark-mode .menu-label {
    color: var(--text-muted);
}

table,
.custom-table,
.table {
    color: var(--text-primary);
}

table thead th,
.custom-table thead th,
.table thead th {
    background-color: var(--bg-secondary) !important;
    color: var(--text-secondary) !important;
    border-color: var(--border-color) !important;
}

table tbody td,
.custom-table tbody td,
.table tbody td {
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

table tbody tr:hover,
.custom-table tbody tr:hover,
.table tbody tr:hover {
    background-color: var(--bg-tertiary) !important;
}

.form-control,
.form-select,
select,
textarea,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="tel"],
input[type="search"],
input[type="date"] {
    background-color: var(--bg-primary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

.form-control:focus,
.form-select:focus,
input:focus,
select:focus,
textarea:focus {
    border-color: var(--border-focus) !important;
    box-shadow: 0 0 0 0.15rem rgba(99, 102, 241, 0.2);
}

.form-control::placeholder,
input::placeholder,
textarea::placeholder {
    color: var(--text-muted) !important;
}

.modal-content,
.dropdown-menu,
.notification-dropdown,
.filter-dropdown-menu,
.actions-dropdown {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary);
}

.modal-header,
.modal-body,
.modal-footer,
.dropdown-item {
    border-color: var(--border-color) !important;
    color: var(--text-primary);
}

.dropdown-item:hover,
.notif-item:hover {
    background-color: var(--bg-tertiary) !important;
}

.dark .text-muted,
.dark-mode .text-muted {
    color: var(--text-muted) !important;
}

.dark .text-dark,
.dark-mode .text-dark {
    color: var(--text-primary) !important;
}

.dark-mode-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 10px;
    border: 1px solid var(--border-color);
    background: var(--bg-card);
    color: var(--text-secondary);
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.dark-mode-toggle:hover {
    background: var(--bg-tertiary);
    color: var(--text-primary);
}

.dark-mode-toggle svg {
    width: 20px;
    height: 20px;
}

.language-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 0.75rem;
    border-radius: 10px;
    border: 1px solid var(--border-color);
    background: var(--bg-card);
    color: var(--text-primary);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.language-toggle:hover {
    background: var(--bg-tertiary);
    color: var(--text-primary);
    text-decoration: none;
}

.language-toggle__flag {
    font-size: 1rem;
    line-height: 1;
}

.dark .navbar,
.dark-mode .navbar {
    background-color: var(--bg-navbar) !important;
}

.dark .navbar .nav-link,
.dark-mode .navbar .nav-link {
    color: var(--text-secondary);
}

.dark .navbar .nav-link.active,
.dark-mode .navbar .nav-link.active {
    color: var(--text-primary);
}
