/**
 * Dark mode contrast fixes — remaps legacy style.css tokens and
 * corrects components that used hardcoded light-theme colors.
 */

[data-theme="dark"] {
    /* Legacy style.css tokens */
    --white: #111827;
    --cream-100: #0B1120;
    --cream-200: #1a2332;
    --gray-100: #111827;
    --gray-200: #1F2937;
    --gray-300: #374151;
    --gray-500: #94A3B8;
    --gray-700: #CBD5E1;
    --gray-900: #F3F4F6;
    --navy-900: #F3F4F6;
    --navy-800: #E2E8F0;
    --navy-700: #CBD5E1;
    --navy-600: #94A3B8;
}

/* Base */
[data-theme="dark"] body {
    color: var(--text);
    background: var(--bg);
}

[data-theme="dark"] a {
    color: var(--gold);
}

[data-theme="dark"] a:hover {
    color: var(--gold-hover);
}

/* Sidebar — always light text on navy shell */
[data-theme="dark"] .sidebar,
[data-theme="dark"] .luxury-sidebar,
[data-theme="dark"] .sidebar-brand,
[data-theme="dark"] .brand-name,
[data-theme="dark"] .brand-sub,
[data-theme="dark"] .luxury-sidebar .brand-name {
    color: #ffffff;
}

[data-theme="dark"] .luxury-sidebar .brand-sub {
    color: rgba(255, 255, 255, 0.55);
}

[data-theme="dark"] .nav-group-label {
    color: rgba(255, 255, 255, 0.45);
}

[data-theme="dark"] .luxury-sidebar .nav-item,
[data-theme="dark"] .sidebar .nav-item {
    color: rgba(255, 255, 255, 0.78);
}

[data-theme="dark"] .luxury-sidebar .nav-item:hover,
[data-theme="dark"] .sidebar .nav-item:hover,
[data-theme="dark"] .luxury-sidebar .nav-item.active,
[data-theme="dark"] .sidebar .nav-item.active {
    color: #ffffff;
}

[data-theme="dark"] .version-tag {
    color: rgba(255, 255, 255, 0.4);
}

/* Muted / secondary copy */
[data-theme="dark"] .text-muted,
[data-theme="dark"] .form-hint,
[data-theme="dark"] .empty-state,
[data-theme="dark"] .empty-state-sm,
[data-theme="dark"] .card-subtitle,
[data-theme="dark"] .page-header .text-muted,
[data-theme="dark"] .section-header__subtitle,
[data-theme="dark"] .dashboard-hero-sub,
[data-theme="dark"] .dashboard-room-board-sub,
[data-theme="dark"] .luxury-card-sub,
[data-theme="dark"] .luxury-stat-label,
[data-theme="dark"] .luxury-stat-meta,
[data-theme="dark"] .luxury-activity-list span,
[data-theme="dark"] .luxury-activity-list small,
[data-theme="dark"] .auth-subtitle,
[data-theme="dark"] .back-link,
[data-theme="dark"] .breadcrumb,
[data-theme="dark"] .breadcrumb-current {
    color: var(--muted);
}

[data-theme="dark"] .topbar-page-title,
[data-theme="dark"] .topbar-title h1,
[data-theme="dark"] .page-header h1,
[data-theme="dark"] .dashboard-hero-title {
    color: var(--text);
}

[data-theme="dark"] .back-link:hover,
[data-theme="dark"] .breadcrumb a:hover {
    color: var(--gold);
}

/* Headings & labels on dark surfaces */
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] .card-header h3,
[data-theme="dark"] .table-card__header h3,
[data-theme="dark"] .section-header__title,
[data-theme="dark"] .form-section h4 {
    color: var(--text);
}

[data-theme="dark"] .form-group label,
[data-theme="dark"] .form-label {
    color: var(--muted);
}

/* Cards & panels */
[data-theme="dark"] .card,
[data-theme="dark"] .luxury-card,
[data-theme="dark"] .table-card,
[data-theme="dark"] .stat-card,
[data-theme="dark"] .luxury-stat-card,
[data-theme="dark"] .report-hub-card,
[data-theme="dark"] .room-board-card,
[data-theme="dark"] .floor-section,
[data-theme="dark"] .charges-preview,
[data-theme="dark"] .detail-card,
[data-theme="dark"] .folio-section,
[data-theme="dark"] .hk-column,
[data-theme="dark"] .mt-ticket-card,
[data-theme="dark"] .modal-content,
[data-theme="dark"] .user-dropdown,
[data-theme="dark"] .quick-actions-menu {
    background: var(--card);
    border-color: var(--border);
    color: var(--text);
}

[data-theme="dark"] .card-header,
[data-theme="dark"] .table-card__header,
[data-theme="dark"] .folio-table-head {
    border-color: var(--border);
}

/* Floor / room board */
[data-theme="dark"] .floor-section {
    background: var(--card);
}

[data-theme="dark"] .floor-header {
    color: #ffffff;
    background: linear-gradient(90deg, #0a1628, #0f2240);
}

[data-theme="dark"] .floor-count {
    color: rgba(255, 255, 255, 0.75);
}

[data-theme="dark"] .room-board-number {
    color: var(--text);
}

[data-theme="dark"] .room-board-type,
[data-theme="dark"] .room-board-meta,
[data-theme="dark"] .room-board-guest {
    color: var(--muted);
}

[data-theme="dark"] .room-board-guest--muted {
    color: #64748B;
}

/* Tables */
[data-theme="dark"] .data-table thead th,
[data-theme="dark"] .folio-table-head th {
    background: var(--bg);
    color: var(--muted);
    border-color: var(--border);
}

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

[data-theme="dark"] .data-table tbody tr:hover {
    background: rgba(255, 255, 255, 0.03);
}

/* Forms */
[data-theme="dark"] .form-group input:not([type="checkbox"]):not([type="radio"]),
[data-theme="dark"] .form-group select,
[data-theme="dark"] .form-group textarea,
[data-theme="dark"] input[type="text"],
[data-theme="dark"] input[type="email"],
[data-theme="dark"] input[type="password"],
[data-theme="dark"] input[type="number"],
[data-theme="dark"] input[type="date"],
[data-theme="dark"] input[type="search"],
[data-theme="dark"] select,
[data-theme="dark"] textarea {
    background: var(--bg);
    color: var(--text);
    border-color: var(--border);
}

[data-theme="dark"] .form-group input:focus,
[data-theme="dark"] .form-group select:focus,
[data-theme="dark"] .form-group textarea:focus,
[data-theme="dark"] input:focus,
[data-theme="dark"] select:focus,
[data-theme="dark"] textarea:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.2);
}

[data-theme="dark"] .input-readonly {
    background: var(--bg);
    color: var(--muted);
}

[data-theme="dark"] ::placeholder {
    color: #64748B;
    opacity: 1;
}

/* Topbar & search */
[data-theme="dark"] .topbar-search {
    background: var(--bg);
    border-color: var(--border);
}

[data-theme="dark"] .topbar-search input {
    color: var(--text);
}

[data-theme="dark"] .topbar-search .icon {
    color: var(--muted);
}

/* Buttons */
[data-theme="dark"] .btn-secondary {
    background: var(--card);
    border-color: var(--border);
    color: var(--text);
}

[data-theme="dark"] .btn-secondary:hover {
    border-color: var(--gold);
    color: var(--gold);
}

/* Detail lists */
[data-theme="dark"] .detail-item dt,
[data-theme="dark"] .detail-grid dt,
[data-theme="dark"] dl dt {
    color: var(--muted);
}

[data-theme="dark"] .detail-item dd,
[data-theme="dark"] .detail-grid dd,
[data-theme="dark"] dl dd {
    color: var(--text);
}

/* Charges / folio rows */
[data-theme="dark"] .charge-row,
[data-theme="dark"] .folio-payment-item span:first-child {
    color: var(--muted);
}

[data-theme="dark"] .charge-row span:last-child,
[data-theme="dark"] .folio-amount {
    color: var(--text);
}

/* Alerts */
[data-theme="dark"] .alert {
    border-color: var(--border);
}

[data-theme="dark"] .alert-info {
    background: rgba(59, 130, 246, 0.12);
    color: #93C5FD;
}

[data-theme="dark"] .alert-success {
    background: rgba(34, 197, 94, 0.12);
    color: #86EFAC;
}

[data-theme="dark"] .alert-error,
[data-theme="dark"] .alert-danger {
    background: rgba(239, 68, 68, 0.12);
    color: #FCA5A5;
}

[data-theme="dark"] .alert-warning {
    background: rgba(245, 158, 11, 0.12);
    color: #FCD34D;
}

/* Badges */
[data-theme="dark"] .badge-muted {
    background: var(--bg);
    color: var(--muted);
}

/* Housekeeping / maintenance */
[data-theme="dark"] .hk-room-card,
[data-theme="dark"] .hk-empty-column,
[data-theme="dark"] .hk-no-task {
    color: var(--muted);
}

/* Auth shell */
[data-theme="dark"] .auth-card {
    background: var(--card);
    border-color: var(--border);
}

/* Checkbox labels in forms */
[data-theme="dark"] .checkbox-label,
[data-theme="dark"] .form-group.form-check .checkbox-label {
    color: var(--text);
}

/* Page footer */
[data-theme="dark"] .page-footer,
[data-theme="dark"] .layout-footer {
    color: var(--muted);
}
