/* ============================================================
   Nori & Panko — Global Dark Mode Stylesheet
   Applied via: document.documentElement.setAttribute('data-theme','dark')
   Triggered from: sidebar.php checkbox → assets/js/darkmode.js
============================================================ */

/* ─── CSS Variable overrides ─── */
[data-theme="dark"] {
    --primary:       #B08CC0;
    --primary-dark:  #957DAD;
    --primary-light: #D291BC;
    --secondary:     #D291BC;
    --accent:        #FEC8D8;
    --bg:            #0f0f13;
    --bg-secondary:  #14141e;
    --card:          #1a1a24;
    --card-alt:      #222230;
    --border:        rgba(255,255,255,.07);
    --border-md:     rgba(255,255,255,.12);
    --text-dark:     #f0eaf8;
    --text-muted:    #8a849a;
    --shadow-sm:     0 2px 8px rgba(0,0,0,.5);
    --shadow-md:     0 4px 20px rgba(0,0,0,.6);
    --shadow-lg:     0 8px 40px rgba(0,0,0,.7);
}

/* ─── Body & layout ─── */
[data-theme="dark"] body,
[data-theme="dark"] .main-content { background: var(--bg); color: var(--text-dark); }

/* ─── Headings ─── */
[data-theme="dark"] h1, [data-theme="dark"] h2,
[data-theme="dark"] h3, [data-theme="dark"] h4,
[data-theme="dark"] h5, [data-theme="dark"] h6 { color: var(--text-dark); }
[data-theme="dark"] .text-muted { color: var(--text-muted) !important; }

/* ─── Sidebar ─── */
[data-theme="dark"] .sidebar {
    background: linear-gradient(180deg, #1a1429 0%, #120f1e 100%);
    border-right: 1px solid var(--border);
}
[data-theme="dark"] .sidebar-brand        { border-bottom-color: var(--border); }
[data-theme="dark"] .sidebar-link         { color: #9d94bc; }
[data-theme="dark"] .sidebar-link:hover,
[data-theme="dark"] .sidebar-link.active  { background: rgba(176,140,192,.18); color: #e8e0f5; border-left-color: var(--accent); }
[data-theme="dark"] .sidebar-section-title { color: #4a4468; }

/* ─── Stat cards ─── */
[data-theme="dark"] .stat-card,
[data-theme="dark"] .stat-card-v2 { background: var(--card); border-color: var(--border); }
[data-theme="dark"] .stat-label   { color: var(--text-muted); }
[data-theme="dark"] .stat-value   { color: var(--text-dark); }
[data-theme="dark"] .stat-change  { color: var(--text-muted); }
[data-theme="dark"] .stat-card-v2 .sv2-val { color: var(--text-dark); }

/* ─── Generic card ─── */
[data-theme="dark"] .card-custom,
[data-theme="dark"] .card {
    background: var(--card);
    border-color: var(--border);
    color: var(--text-dark);
}
[data-theme="dark"] .card-header {
    background: var(--card);
    border-bottom-color: var(--border);
    color: var(--text-dark);
}
[data-theme="dark"] .card-body,
[data-theme="dark"] .card-footer {
    background: var(--card);
    color: var(--text-dark);
    border-color: var(--border);
}

/* ─── Appointment panel (admin dashboard) ─── */
[data-theme="dark"] .appt-panel          { background: var(--card); border-color: var(--border); box-shadow: 0 2px 20px rgba(0,0,0,.35); }
[data-theme="dark"] .appt-panel-header   { background: var(--card); border-bottom-color: var(--border); }
[data-theme="dark"] .appt-panel-title h5 { color: var(--text-dark); }
[data-theme="dark"] .appt-panel-title .subtitle { color: var(--text-muted); }

/* ─── Search input ─── */
[data-theme="dark"] .appt-search input { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); color: var(--text-dark); }
[data-theme="dark"] .appt-search input::placeholder { color: #5a5470; }
[data-theme="dark"] .appt-search input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(179,157,204,.15); }

/* ─── Filter tabs ─── */
[data-theme="dark"] .appt-filters      { background: rgba(255,255,255,.02); border-bottom-color: var(--border); }
[data-theme="dark"] .filter-tab        { color: #6a6480; }
[data-theme="dark"] .filter-tab:hover  { background: rgba(179,157,204,.1); color: #c9b8db; }
[data-theme="dark"] .filter-tab.active { background: #7A5F92; color: #fff; border-color: #7A5F92; }
[data-theme="dark"] .filter-tab:not(.active) .tab-count { background: rgba(179,157,204,.12); color: var(--primary); }

/* ─── Appointment table ─── */
[data-theme="dark"] .appt-table thead tr         { background: rgba(255,255,255,.03); border-bottom-color: var(--border-md); }
[data-theme="dark"] .appt-table thead th         { color: #5a5470; }
[data-theme="dark"] .appt-table tbody tr         { border-bottom-color: var(--border); }
[data-theme="dark"] .appt-table tbody tr:hover   { background: rgba(179,157,204,.05); }

/* Table cells */
[data-theme="dark"] .client-name         { color: #e8e0f5; }
[data-theme="dark"] .client-id           { color: #4a4460; }
[data-theme="dark"] .pet-name-cell,
[data-theme="dark"] .pet-name            { color: #ccc4dd; }
[data-theme="dark"] .date-main           { color: #e8e0f5; }
[data-theme="dark"] .date-time           { color: #5a5470; }
[data-theme="dark"] .vet-name-text       { color: #ccc4dd; }
[data-theme="dark"] .vet-unassigned-text { color: #4a4460; }
[data-theme="dark"] .vet-dot.unassigned  { background: #3a3450; }
[data-theme="dark"] .service-badge       { background: rgba(179,157,204,.1); color: #c9b8db; border-color: rgba(179,157,204,.2); }
[data-theme="dark"] .type-home           { background: rgba(40,167,69,.15);  color: #6ee49b; border-color: rgba(40,167,69,.25); }
[data-theme="dark"] .type-clinic         { background: rgba(99,160,255,.12); color: #7db8ff; border-color: rgba(99,160,255,.2); }

/* ─── Status pills ─── */
[data-theme="dark"] .s-pending   { background: rgba(255,193,7,.1);   color: #ffd54f; border-color: rgba(255,193,7,.2); }
[data-theme="dark"] .s-confirmed { background: rgba(40,167,69,.1);   color: #69e09a; border-color: rgba(40,167,69,.2); }
[data-theme="dark"] .s-completed { background: rgba(100,130,255,.1); color: #8fa8ff; border-color: rgba(100,130,255,.2); }
[data-theme="dark"] .s-cancelled { background: rgba(255,80,80,.08);  color: #ff8a8a; border-color: rgba(255,80,80,.18); }
[data-theme="dark"] .s-no_show   { background: rgba(200,120,255,.08);color: #d07ef7; border-color: rgba(200,120,255,.18); }

/* Generic badges */
[data-theme="dark"] .badge-pending   { background: rgba(133,100,4,.3);   color: #ffc107; border-color: rgba(255,193,7,.3); }
[data-theme="dark"] .badge-confirmed { background: rgba(10,88,202,.25);  color: #7ab5ff; border-color: rgba(13,110,253,.3); }
[data-theme="dark"] .badge-completed { background: rgba(10,54,34,.3);    color: #6fcf97; border-color: rgba(40,167,69,.3); }
[data-theme="dark"] .badge-cancelled { background: rgba(88,21,28,.3);    color: #ff8a8a; border-color: rgba(220,53,69,.3); }
[data-theme="dark"] .badge-paid      { background: rgba(10,54,34,.3);    color: #6fcf97; border-color: rgba(40,167,69,.3); }
[data-theme="dark"] .badge-unpaid    { background: rgba(133,100,4,.3);   color: #ffc107; border-color: rgba(255,193,7,.3); }

/* ─── Action buttons ─── */
[data-theme="dark"] .act-edit          { background: rgba(179,157,204,.12); color: #c9b8db; }
[data-theme="dark"] .act-edit:hover    { background: #7A5F92; color: #fff; }
[data-theme="dark"] .act-confirm       { background: rgba(40,167,69,.12);  color: #69e09a; }
[data-theme="dark"] .act-confirm:hover { background: #28a745; color: #fff; }
[data-theme="dark"] .act-cancel        { background: rgba(255,80,80,.1);   color: #ff8a8a; }
[data-theme="dark"] .act-cancel:hover  { background: #dc3545; color: #fff; }

/* ─── View-all button ─── */
[data-theme="dark"] .btn-view-all       { color: #c9b8db; border-color: rgba(179,157,204,.25); background: rgba(179,157,204,.08); }
[data-theme="dark"] .btn-view-all:hover { background: #7A5F92; color: #fff; }

/* ─── Empty state ─── */
[data-theme="dark"] .appt-empty h6              { color: #c9b8db; }
[data-theme="dark"] .appt-empty p               { color: #5a5470; }
[data-theme="dark"] .appt-empty .empty-icon-wrap { background: rgba(179,157,204,.06); border-color: rgba(179,157,204,.15); }

/* ─── Modals ─── */
[data-theme="dark"] .modal-content,
[data-theme="dark"] .modal-brand              { background: var(--card-alt); border-color: var(--border-md); color: var(--text-dark); }
[data-theme="dark"] .modal-header            { background: var(--card-alt); border-bottom-color: var(--border); color: var(--text-dark); }
[data-theme="dark"] .modal-body              { background: var(--card-alt); color: var(--text-dark); }
[data-theme="dark"] .modal-footer            { background: var(--card-alt); border-top-color: var(--border); }
[data-theme="dark"] .modal-title            { color: var(--text-dark); }
[data-theme="dark"] .btn-close              { filter: invert(1) grayscale(1) brightness(2); }

/* ─── Forms (inside modals and elsewhere) ─── */
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-control-brand     { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); color: var(--text-dark); }
[data-theme="dark"] .form-control::placeholder,
[data-theme="dark"] .form-control-brand::placeholder { color: #5a5470; }
[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-control-brand:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(176,140,192,.15); background: rgba(255,255,255,.07); }
[data-theme="dark"] .form-select,
[data-theme="dark"] .form-select-brand      { background-color: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); color: var(--text-dark); }
[data-theme="dark"] .form-select:focus,
[data-theme="dark"] .form-select-brand:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(176,140,192,.15); }
[data-theme="dark"] .form-label,
[data-theme="dark"] .form-label-brand       { color: var(--text-dark); }
[data-theme="dark"] textarea.form-control,
[data-theme="dark"] textarea.form-control-brand { background: rgba(255,255,255,.05); color: var(--text-dark); border-color: rgba(255,255,255,.1); }
[data-theme="dark"] .form-check-input              { background-color: var(--card-alt); border-color: var(--border-md); }
[data-theme="dark"] .form-check-input:checked      { background-color: var(--primary-dark); border-color: var(--primary-dark); }

/* ─── Date inputs — dark mode color scheme fix ─── */
/* Without color-scheme:dark, the native calendar icon and date text render in
   OS light-mode colors (dark text on dark bg = invisible / looks disabled).
   Scoped only to [data-theme="dark"] so the light-mode picker is untouched.   */
[data-theme="dark"] input[type="date"],
[data-theme="dark"] input[type="date"].form-control,
[data-theme="dark"] input[type="date"].form-control-brand {
    color-scheme: dark;
    color: var(--text-dark);
    background: rgba(255,255,255,.05);
    border-color: rgba(255,255,255,.1);
}
[data-theme="dark"] input[type="date"]:focus,
[data-theme="dark"] input[type="date"].form-control:focus,
[data-theme="dark"] input[type="date"].form-control-brand:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(176,140,192,.15);
    background: rgba(255,255,255,.07);
    outline: none;
}

/* Select option background fix for Webkit */
[data-theme="dark"] select option { background: var(--card-alt); color: var(--text-dark); }
[data-theme="dark"] select optgroup { background: var(--card); color: var(--text-dark); font-weight: 700; }

/* ─── Notification & Profile dropdowns ─── */
[data-theme="dark"] #notifDropdown,
[data-theme="dark"] #profileDropdown             { background: var(--card-alt) !important; border-color: var(--border-md) !important; box-shadow: 0 12px 40px rgba(0,0,0,.6) !important; }
[data-theme="dark"] .np-dropdown-header          { background: var(--card-alt) !important; border-bottom-color: var(--border) !important; }
[data-theme="dark"] .np-dropdown-header .dd-title { color: var(--text-dark) !important; }
[data-theme="dark"] .np-dropdown-footer          { background: var(--card-alt) !important; border-top-color: var(--border) !important; }
[data-theme="dark"] .np-dropdown-item            { color: var(--text-dark) !important; border-bottom-color: var(--border) !important; }
[data-theme="dark"] .np-dropdown-item:hover      { background: rgba(179,157,204,.1) !important; }
[data-theme="dark"] .np-profile-header           { background: rgba(179,157,204,.1) !important; border-bottom-color: var(--border) !important; }
[data-theme="dark"] .np-profile-item             { color: var(--text-dark) !important; }
[data-theme="dark"] .np-profile-item:hover       { background: rgba(179,157,204,.1) !important; }
[data-theme="dark"] .np-profile-item.danger      { color: #ff8a8a !important; }
[data-theme="dark"] .np-profile-item.danger:hover { background: rgba(255,80,80,.1) !important; }
[data-theme="dark"] .np-profile-divider          { border-top-color: var(--border) !important; }

/* Notification icon wrappers inside dropdown */
[data-theme="dark"] #notifDropdown [style*="rgba(255,193,7"] { background: rgba(255,193,7,.2) !important; }
[data-theme="dark"] #notifDropdown [style*="rgba(40,167,69"]  { background: rgba(40,167,69,.2) !important; }

/* Profile avatar/name inside dropdown */
[data-theme="dark"] #profileDropdown [style*="font-weight:700"],
[data-theme="dark"] #profileDropdown [style*="font-weight: 700"] { color: var(--text-dark) !important; }

/* ─── Quick action buttons ─── */
[data-theme="dark"] .btn-outline-brand              { border-color: var(--border-md); color: var(--text-dark); background: rgba(255,255,255,.03); }
[data-theme="dark"] .btn-outline-brand:hover        { background: rgba(179,157,204,.12); }
[data-theme="dark"] .btn-outline-secondary          { color: var(--text-muted); border-color: var(--border-md); }
[data-theme="dark"] .btn-outline-secondary:hover    { background: var(--card-alt); color: var(--text-dark); }

/* ─── System notices ─── */
[data-theme="dark"] .notice-warning { background: rgba(255,193,7,.07)   !important; }
[data-theme="dark"] .notice-info    { background: rgba(99,160,255,.07)   !important; }
[data-theme="dark"] .notice-success { background: rgba(40,167,69,.07)    !important; }

/* ─── Alerts ─── */
[data-theme="dark"] .alert-brand-danger  { background: rgba(88,21,28,.35);  border-color: #dc3545; color: #ff9a9a; }
[data-theme="dark"] .alert-brand-success { background: rgba(10,54,34,.35);  border-color: #28a745; color: #7fdd99; }

/* ─── Appointment rows (customer view) ─── */
[data-theme="dark"] .appt-row             { background: var(--card); border-color: var(--border); }
[data-theme="dark"] .appt-row:hover       { background: var(--card-alt); border-color: #4a4070; }
[data-theme="dark"] .appt-row-info .appt-svc { color: var(--text-dark); }
[data-theme="dark"] .appt-row-info .appt-sub { color: var(--text-muted); }
[data-theme="dark"] .section-header h6    { color: var(--text-dark); }

/* ─── Pet cards ─── */
[data-theme="dark"] .pet-card             { background: var(--card); border-color: var(--border); }
[data-theme="dark"] .pet-card .pet-name   { color: var(--text-dark); }
[data-theme="dark"] .pet-card .pet-breed  { color: var(--text-muted); }
[data-theme="dark"] .pet-card .pet-btn    { background: var(--card-alt); border-color: var(--border); color: var(--text-muted); }
[data-theme="dark"] .pet-card .pet-btn:hover { background: var(--primary-dark); color: #fff; border-color: var(--primary-dark); }

/* ─── Health tip ─── */
[data-theme="dark"] .health-tip            { background: rgba(122,95,146,.2); border-color: rgba(150,100,180,.3); }
[data-theme="dark"] .health-tip .ht-title  { color: #c9a8df; }
[data-theme="dark"] .health-tip .ht-body   { color: #a889c0; }

/* ─── Registration & verify pages ─── */
[data-theme="dark"] .reg-left,
[data-theme="dark"] .login-right {
    background: linear-gradient(160deg, #1b1626 0%, #171320 52%, #13101a 100%) !important;
}
[data-theme="dark"] .reg-left .reg-badge,
[data-theme="dark"] .login-right .reg-badge {
    background: rgba(176,140,192,.14);
    color: #d8c8e6;
    border-color: rgba(176,140,192,.18);
}
[data-theme="dark"] .reg-left .perk-icon,
[data-theme="dark"] .login-right .perk-icon {
    background: rgba(255,255,255,.07);
    border-color: rgba(255,255,255,.10);
}
[data-theme="dark"] .reg-left .perk-text,
[data-theme="dark"] .login-right .perk-text,
[data-theme="dark"] .reg-left .reg-tagline,
[data-theme="dark"] .login-right .reg-tagline {
    color: rgba(233,225,242,.68);
}
[data-theme="dark"] .reg-left .reg-pet-card,
[data-theme="dark"] .login-right .reg-pet-card {
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.12);
}
[data-theme="dark"] .reg-right           { background: #151520; }
[data-theme="dark"] .reg-steps           { background: var(--card); border-color: var(--border); }
[data-theme="dark"] .reg-form-title      { color: var(--text-dark); }
[data-theme="dark"] .reg-form-subtitle   { color: var(--text-muted); }
[data-theme="dark"] .step-dot.inactive   { background: var(--card-alt); }
[data-theme="dark"] .step-line           { background: var(--border); }
[data-theme="dark"] .verify-card         { background: var(--card); border-color: var(--border); }
[data-theme="dark"] .verify-title        { color: var(--text-dark); }
[data-theme="dark"] .verify-sub          { color: var(--text-muted); }
[data-theme="dark"] .timer-text          { color: var(--text-muted); }
[data-theme="dark"] .btn-resend          { color: var(--primary-light); }
[data-theme="dark"] .btn-resend:disabled { color: var(--text-muted); }
[data-theme="dark"] .code-inputs input   { background: var(--card-alt); border-color: var(--border); color: var(--text-dark); }
[data-theme="dark"] .code-inputs input:focus  { border-color: var(--primary); }
[data-theme="dark"] .code-inputs input.filled { border-color: var(--primary); background: rgba(179,157,204,.1); }
[data-theme="dark"] .terms-box           { background: rgba(179,157,204,.08); border-color: rgba(255,255,255,.09); }

/* ─── Quick cards & next-appt card ─── */
[data-theme="dark"] .next-appt-card           { background: var(--card); border-color: var(--border); }
[data-theme="dark"] .next-appt-card .appt-service { color: var(--text-dark); }
[data-theme="dark"] .next-appt-card .appt-meta    { color: var(--text-muted); }
[data-theme="dark"] .quick-card               { background: var(--card); border-color: var(--border); }
[data-theme="dark"] .quick-card .qc-label     { color: var(--text-dark); }
[data-theme="dark"] .quick-card:hover         { border-color: #5a4d80; background: var(--card-alt); }

/* ─── Bootstrap table override ─── */
[data-theme="dark"] .table {
    --bs-table-color: var(--text-dark);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--border);
    --bs-table-striped-bg: rgba(255,255,255,.025);
    --bs-table-striped-color: var(--text-dark);
    --bs-table-active-bg: rgba(255,255,255,.03);
    --bs-table-active-color: var(--text-dark);
    --bs-table-hover-bg: rgba(179,157,204,.06);
    --bs-table-hover-color: var(--text-dark);
    color: var(--text-dark);
    border-color: var(--border);
    background: transparent;
}
[data-theme="dark"] .table > :not(caption) > * > * {
    color: var(--text-dark);
    background-color: transparent;
    border-bottom-color: var(--border);
    box-shadow: none;
}
[data-theme="dark"] .table thead,
[data-theme="dark"] .table thead tr {
    background: var(--card-alt);
}
[data-theme="dark"] .table thead th {
    background: var(--card-alt);
    color: var(--text-muted);
    border-color: var(--border-md);
}
[data-theme="dark"] .table tbody,
[data-theme="dark"] .table tbody tr,
[data-theme="dark"] .table tbody td {
    background: transparent;
    border-color: var(--border);
}
[data-theme="dark"] .table-striped tbody tr:nth-of-type(odd) { background: rgba(255,255,255,.025); }
[data-theme="dark"] .table-hover tbody tr:hover { background: rgba(179,157,204,.06); }
[data-theme="dark"] .table-brand {
    background: transparent;
    box-shadow: none;
}
[data-theme="dark"] .table-brand tbody tr:hover td {
    background: rgba(179,157,204,.04);
}
[data-theme="dark"] .table-responsive {
    background: transparent !important;
}
[data-theme="dark"] .table > thead > tr > th,
[data-theme="dark"] .table > thead > tr > td,
[data-theme="dark"] .table > tbody > tr > th,
[data-theme="dark"] .table > tbody > tr > td,
[data-theme="dark"] .table > tfoot > tr > th,
[data-theme="dark"] .table > tfoot > tr > td {
    background-color: transparent !important;
    color: var(--text-dark) !important;
    border-color: var(--border) !important;
}
[data-theme="dark"] .table > thead > tr > th,
[data-theme="dark"] .table > thead > tr > td,
[data-theme="dark"] .table thead[style*="position:sticky"] th,
[data-theme="dark"] .table thead[style*="position: sticky"] th {
    background-color: var(--card-alt) !important;
    color: var(--text-muted) !important;
    border-color: var(--border-md) !important;
}
[data-theme="dark"] .table tbody tr:hover > * {
    background-color: rgba(179,157,204,.06) !important;
}
[data-theme="dark"] .bg-primary-subtle {
    background-color: rgba(13,110,253,.16) !important;
    color: #8eb8ff !important;
}
[data-theme="dark"] .bg-info-subtle {
    background-color: rgba(13,202,240,.14) !important;
    color: #7fdfff !important;
}
[data-theme="dark"] .bg-success-subtle {
    background-color: rgba(25,135,84,.16) !important;
    color: #7ee2ae !important;
}
[data-theme="dark"] .bg-warning-subtle {
    background-color: rgba(255,193,7,.14) !important;
    color: #ffd86b !important;
}
[data-theme="dark"] .bg-danger-subtle {
    background-color: rgba(220,53,69,.16) !important;
    color: #ff9aa5 !important;
}
[data-theme="dark"] .bg-secondary-subtle {
    background-color: rgba(108,117,125,.18) !important;
    color: #c6cbd2 !important;
}
[data-theme="dark"] .text-primary-emphasis,
[data-theme="dark"] .text-info-emphasis,
[data-theme="dark"] .text-success-emphasis,
[data-theme="dark"] .text-warning-emphasis,
[data-theme="dark"] .text-danger-emphasis,
[data-theme="dark"] .text-secondary-emphasis {
    color: inherit !important;
}
[data-theme="dark"] .progress {
    background-color: rgba(255,255,255,.08) !important;
}

/* ─── Book appointment: clinic hours ─── */
[data-theme="dark"] .clinic-hours-table {
    --bs-table-color: var(--text-dark);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--border);
    --bs-table-striped-bg: transparent;
    --bs-table-striped-color: var(--text-dark);
    --bs-table-active-bg: rgba(255,255,255,.02);
    --bs-table-active-color: var(--text-dark);
    --bs-table-hover-bg: rgba(255,255,255,.03);
    --bs-table-hover-color: var(--text-dark);
    color: var(--text-dark);
    background: transparent;
}
[data-theme="dark"] .clinic-hours-table tr { border-color: var(--border); }
[data-theme="dark"] .clinic-hours-table td {
    color: var(--text-dark) !important;
    border-color: var(--border) !important;
    background-color: transparent !important;
    box-shadow: none !important;
}
[data-theme="dark"] .clinic-hours-table > :not(caption) > * > * {
    color: var(--text-dark) !important;
    background-color: transparent !important;
    border-bottom-color: var(--border) !important;
}
[data-theme="dark"] .clinic-hours-table .text-end { color: var(--text-dark) !important; }

/* ─── Shared theme toggle button ─── */
.theme-toggle-fab {
    position: fixed;
    top: 18px;
    right: 18px;
    z-index: 1200;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(149,125,173,.18);
    border-radius: 50%;
    background: rgba(255,255,255,.92);
    color: #7A5F92;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 24px rgba(0,0,0,.12);
    backdrop-filter: blur(10px);
    transition: all .2s ease;
}
.theme-toggle-fab:hover {
    transform: translateY(-2px);
    color: #957DAD;
    box-shadow: 0 14px 28px rgba(0,0,0,.16);
}
.theme-toggle-fab i { font-size: 1.05rem; pointer-events: none; }
[data-theme="dark"] .theme-toggle-fab {
    background: rgba(26,26,36,.92);
    border-color: var(--border-md);
    color: #f0eaf8;
    box-shadow: 0 10px 28px rgba(0,0,0,.45);
}

/* ─── Public landing page ─── */
[data-theme="dark"] .navbar-main {
    background: linear-gradient(180deg, #171320 0%, #120f1a 100%) !important;
    border-bottom: 1px solid rgba(255,255,255,.06);
}
[data-theme="dark"] .hero-section {
    background:
        radial-gradient(circle at top left, rgba(176,140,192,.10), transparent 35%),
        linear-gradient(135deg, #171320 0%, #120f1a 55%, #0f0f13 100%) !important;
}
[data-theme="dark"] .hero-title {
    color: #eee7f6 !important;
}
[data-theme="dark"] .hero-subtitle {
    color: #b9b2c9 !important;
}
[data-theme="dark"] .service-card {
    background: var(--card);
    border-color: var(--border);
    box-shadow: var(--shadow-sm);
}
[data-theme="dark"] .service-card:hover {
    background: var(--card-alt);
    border-color: rgba(176,140,192,.28);
}
[data-theme="dark"] .hero-card {
    background: rgba(15,15,19,.28);
    border-color: rgba(255,255,255,.08);
}
[data-theme="dark"] .hero-card [style*="color:#fff"] {
    color: #ece5f4 !important;
}
[data-theme="dark"] .hero-card [style*="rgba(255,255,255,.6)"] {
    color: #aaa2bb !important;
}
[data-theme="dark"] section[style*="background:var(--primary);"] {
    background: #181420 !important;
}
[data-theme="dark"] section[style*="rgba(149,125,173,.04)"] {
    background: linear-gradient(135deg, rgba(255,255,255,.015), rgba(176,140,192,.04)) !important;
}
[data-theme="dark"] .bg-brand-gradient {
    background: linear-gradient(135deg, #1a1425 0%, #15111d 100%) !important;
}
[data-theme="dark"] .footer-main {
    background: #120f1a !important;
}
[data-theme="dark"] .navbar-main .nav-link:hover,
[data-theme="dark"] .navbar-main .nav-link.active {
    background: rgba(255,255,255,.06);
}
[data-theme="dark"] .navbar-main .btn-outline-light {
    border-color: rgba(255,255,255,.16);
    color: #e9e1f2;
}
[data-theme="dark"] .navbar-main .btn-outline-light:hover {
    background: rgba(255,255,255,.06);
    color: #fff;
}

/* ─── Login page ─── */
[data-theme="dark"] .login-left {
    background:
        radial-gradient(ellipse at 10% 20%, rgba(176,140,192,.07) 0%, transparent 52%),
        radial-gradient(ellipse at 90% 80%, rgba(210,145,188,.06) 0%, transparent 48%),
        #151520 !important;
}
[data-theme="dark"] .login-form-title,
[data-theme="dark"] .field-label-text,
[data-theme="dark"] .form-topbar-name { color: var(--text-dark) !important; }
[data-theme="dark"] .login-form-subtitle,
[data-theme="dark"] .remember-row label,
[data-theme="dark"] .demo-item .demo-cred { color: var(--text-muted) !important; }
[data-theme="dark"] .form-topbar-name span,
[data-theme="dark"] .forgot-link,
[data-theme="dark"] .register-cta a,
[data-theme="dark"] .demo-header span,
[data-theme="dark"] .demo-item .demo-role { color: var(--primary-light) !important; }
[data-theme="dark"] .login-greeting-badge {
    background: rgba(176,140,192,.10);
    border-color: rgba(176,140,192,.18);
    color: #d8c2ea;
}
[data-theme="dark"] .input-icon-wrap .icon,
[data-theme="dark"] .toggle-password { color: var(--primary-light) !important; }
[data-theme="dark"] .input-icon-wrap input {
    background: rgba(255,255,255,.04) !important;
    border-color: rgba(255,255,255,.08) !important;
    color: var(--text-dark) !important;
}
[data-theme="dark"] .input-icon-wrap input::placeholder { color: #6f6882; }
[data-theme="dark"] .register-cta {
    background: rgba(255,255,255,.03);
    border-color: rgba(176,140,192,.20);
    color: var(--text-muted);
}
[data-theme="dark"] .demo-wrap {
    border-color: rgba(176,140,192,.16);
    background: #1c1c27;
}
[data-theme="dark"] .demo-header {
    background: rgba(176,140,192,.06);
    border-bottom-color: rgba(176,140,192,.11);
}
[data-theme="dark"] .demo-item {
    background: #1c1c27;
    border-right-color: rgba(176,140,192,.11);
}

/* ─── Scrollbar ─── */
[data-theme="dark"] ::-webkit-scrollbar-track { background: var(--bg); }
[data-theme="dark"] ::-webkit-scrollbar-thumb { background: #3d3660; }
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover { background: var(--primary-dark); }

/* ─── Appointments Panel (dark) ─── */
[data-theme="dark"] .appt-panel { background: var(--card); border-color: var(--border); }
[data-theme="dark"] .appt-panel-header { background: var(--card); border-color: var(--border); }
[data-theme="dark"] .appt-panel-title h5 { color: var(--text-dark); }
[data-theme="dark"] .appt-search input { background: var(--bg); color: var(--text-dark); border-color: var(--border); }
[data-theme="dark"] .appt-search input:focus { border-color: #957DAD; box-shadow: 0 0 0 3px rgba(149,125,173,.15); }
[data-theme="dark"] .btn-view-all { background: rgba(149,125,173,.1); color: #c9b8db; border-color: var(--border); }
[data-theme="dark"] .btn-view-all:hover { background: #957DAD; color: #fff; }
[data-theme="dark"] .appt-filters { background: var(--bg); border-color: var(--border); }
[data-theme="dark"] .filter-tab { color: var(--text-muted); }
[data-theme="dark"] .filter-tab:hover { background: rgba(149,125,173,.12); color: #c9b8db; }
[data-theme="dark"] .filter-tab.active { background: #7A5F92; color: #fff; border-color: #7A5F92; }
[data-theme="dark"] .filter-tab:not(.active) .tab-count { background: rgba(149,125,173,.2); color: #c9b8db; }
[data-theme="dark"] .appt-empty .empty-icon-wrap { background: rgba(149,125,173,.12); border-color: rgba(149,125,173,.3); }

/* ─── Table Brand (dark) ─── */
[data-theme="dark"] .table-brand thead tr,
[data-theme="dark"] .appt-table thead tr { background: var(--card); }
[data-theme="dark"] .table-brand tbody tr:hover,
[data-theme="dark"] .appt-table tbody tr:hover { background: rgba(149,125,173,.08); }
[data-theme="dark"] .table-brand td,
[data-theme="dark"] .appt-table td { color: var(--text-dark); }

/* Status pills (dark) */
[data-theme="dark"] .s-pending   { background: rgba(255,193,7,.12);  color: #ffc107; border-color: rgba(255,193,7,.25); }
[data-theme="dark"] .s-confirmed { background: rgba(40,167,69,.12);  color: #5fd87f; border-color: rgba(40,167,69,.25); }
[data-theme="dark"] .s-completed { background: rgba(57,73,171,.12);  color: #8c9eff; border-color: rgba(57,73,171,.25); }
[data-theme="dark"] .s-cancelled { background: rgba(220,53,69,.12);  color: #ff6b6b; border-color: rgba(220,53,69,.25); }
[data-theme="dark"] .s-no_show   { background: rgba(106,27,154,.12); color: #ce93d8; border-color: rgba(106,27,154,.25); }
[data-theme="dark"] .s-paid      { background: rgba(40,167,69,.12);  color: #5fd87f; border-color: rgba(40,167,69,.25); }
[data-theme="dark"] .s-failed    { background: rgba(220,53,69,.12);  color: #ff6b6b; border-color: rgba(220,53,69,.25); }
[data-theme="dark"] .s-refunded  { background: rgba(93,64,55,.15);   color: #bcaaa4; border-color: rgba(93,64,55,.3); }
[data-theme="dark"] .s-active    { background: rgba(40,167,69,.12);  color: #5fd87f; border-color: rgba(40,167,69,.25); }
[data-theme="dark"] .s-inactive  { background: rgba(108,117,125,.12);color: #adb5bd; border-color: rgba(108,117,125,.25); }

/* Type badges (dark) */
[data-theme="dark"] .type-home   { background: rgba(40,167,69,.15);  color: #5fd87f; border-color: rgba(40,167,69,.25); }
[data-theme="dark"] .type-clinic { background: rgba(13,110,253,.12); color: #6ea8fe; border-color: rgba(13,110,253,.2); }

/* Action buttons (dark) */
[data-theme="dark"] .act-edit    { background: rgba(149,125,173,.15); color: #c9b8db; }
[data-theme="dark"] .act-confirm { background: rgba(40,167,69,.15);  color: #5fd87f; }
[data-theme="dark"] .act-cancel  { background: rgba(220,53,69,.12);  color: #ff6b6b; }
[data-theme="dark"] .act-view    { background: rgba(13,110,253,.12); color: #6ea8fe; }

/* Service & count badges (dark) */
[data-theme="dark"] .service-badge { background: rgba(149,125,173,.15); color: #c9b8db; border-color: rgba(149,125,173,.25); }
[data-theme="dark"] .count-badge   { background: rgba(149,125,173,.15); color: #c9b8db; border-color: rgba(149,125,173,.25); }

/* ─── HR / dividers ─── */
[data-theme="dark"] hr { border-color: var(--border); }

/* ─── Smooth transitions ─── */
html { transition: background-color .25s ease; }
*, *::before, *::after {
    transition:
        background-color .25s ease,
        border-color .25s ease,
        color .18s ease;
}
/* Keep interactive elements snappy */
.act-btn, .filter-tab, .btn-view-all,
.sidebar-link, button { transition: all .18s !important; }
