/* Темы оформления. Подключаются ПОСЛЕДНИМИ — переопределяют
   и базовый слой, и модульные стили. Порядок менять нельзя. */

/* ── Базовые переменные (тема: Navy — дефолт) ── */
:root {
  --theme-rgb:      56, 189, 248;
  --glass-bg:       rgba(9, 15, 36, 0.82);
  --glass-bg-light: rgba(14, 22, 48, 0.70);
  --glass-bg-deep:  rgba(5, 10, 24, 0.92);
  --glass-border:   rgba(56, 189, 248, 0.16);
  --glass-blur:     blur(22px) saturate(140%);
  --glass-blur-md:  blur(16px) saturate(130%);
  --glass-blur-sm:  blur(10px) saturate(120%);
  --text2: #94a3b8;
  --text3: #475569;
}

/* ── Тема: Зелёная ── */
[data-theme="green"] {
  --theme-rgb:   122, 182, 72;
  --bg:        #0b1410;
  --surface:   #132018;
  --surface2:  #1a2c1e;
  --border:    #2a4230;
  --border2:   #1c3020;
  --bg3:       #132018;
  --bg1:       #070e09;
  --bg2:       #0e1912;
  --text:      #dff0e2;
  --text1:     #f0fdf4;
  --text2:     #8aad88;
  --text3:     #587554;
  --primary:   #7ab648;
  --primary-h: #62993a;
  --primary-dim: rgba(122,182,72,.08);
  --success:   #4ade80;
  --warning:   #fbbf24;
  --danger:    #f87171;
  --purple:    #c084fc;
  --glass-bg:       rgba(8, 18, 11, 0.74);
  --glass-bg-light: rgba(12, 24, 15, 0.64);
  --glass-bg-deep:  rgba(5, 13, 7, 0.86);
  --glass-border:   rgba(122, 182, 72, 0.22);
}

/* ── Тема: Голубая ── */
[data-theme="blue"] {
  --theme-rgb:   56, 168, 224;
  --primary:     #38a8e0;
  --primary-h:   #2590c8;
  --primary-dim: rgba(56,168,224,.08);
  --success:     #4ade80;
  --text2: #98c8e0;
  --text3: #5ea8c8;
  --border:  #1c3a50;
  --border2: #142c40;
  --surface:  #0d1e2e;
  --surface2: #122436;
  --bg3:      #0d1e2e;
  --glass-bg:       rgba(6, 16, 28, 0.74);
  --glass-bg-light: rgba(10, 22, 36, 0.64);
  --glass-bg-deep:  rgba(4, 12, 22, 0.86);
}

/* ── Тема: Серая ── */
[data-theme="slate"] {
  --theme-rgb:   148, 163, 184;
  --primary:     #94a3b8;
  --primary-h:   #7c8fa3;
  --primary-dim: rgba(148,163,184,.08);
  --success:     #4ade80;
  --text2: #b0bec8;
  --text3: #7a8898;
  --border:  #2c3640;
  --border2: #222c36;
  --surface:  #141c24;
  --surface2: #1a2430;
  --bg3:      #141c24;
  --glass-bg:       rgba(10, 14, 20, 0.74);
  --glass-bg-light: rgba(14, 20, 28, 0.64);
  --glass-bg-deep:  rgba(6, 10, 16, 0.86);
}

/* ── Тема: Изумрудный спа-люкс ── */
[data-theme="emerald"] {
  --theme-rgb:   52, 211, 153;
  --bg:        #0a1410;
  --surface:   #102019;
  --surface2:  #16291f;
  --border:    #234234;
  --border2:   #18301f;
  --bg3:       #102019;
  --text:      #e8f3ea;
  --text1:     #f3fbf5;
  --text2:     #a9c8b4;
  --text3:     #6f9b80;
  --primary:   #34d399;
  --primary-h: #2bb886;
  --primary-dim: rgba(52,211,153,.09);
  --success:   #34d399;
  --warning:   #e6b566;
  --danger:    #f08a8a;
  --purple:    #c9a86a;        /* акцент-золото переиспользуем как «дорогой» тон */
  --accent-gold: #d4af6a;
  --font-body:    'Exo 2', -apple-system, sans-serif;
  --font-display: 'Fraunces', Georgia, serif;
  --glass-bg:       rgba(7, 17, 12, 0.76);
  --glass-bg-light: rgba(12, 24, 17, 0.66);
  --glass-bg-deep:  rgba(5, 13, 9, 0.88);
}
/* — Изумруд-люкс: проработка интерьера — */
/* Сайдбар: глубокий градиент + золотой волосок */
[data-theme="emerald"] .sidebar {
  background: linear-gradient(180deg,#102019 0%,#0b1712 100%);
  border-right: 1px solid rgba(212,175,106,.14);
}
[data-theme="emerald"] .sidebar-logo { border-bottom-color: rgba(212,175,106,.14); }
[data-theme="emerald"] .nav-section { color: rgba(212,175,106,.6); letter-spacing: 1.3px; }
[data-theme="emerald"] .nav-item.active {
  background: linear-gradient(90deg, rgba(52,211,153,.16), rgba(52,211,153,0));
  box-shadow: inset 3px 0 0 var(--accent-gold);
  color: #eef7f0;
}
[data-theme="emerald"] .nav-item.active .nav-icon { filter: drop-shadow(0 0 6px rgba(52,211,153,.5)); }
[data-theme="emerald"] .sidebar-footer { border-top-color: rgba(212,175,106,.14); }

/* Топбар: стеклянный, золотой волосок снизу */
[data-theme="emerald"] .topbar {
  background: rgba(12,24,17,.85);
  backdrop-filter: blur(14px) saturate(135%);
  border-bottom: 1px solid rgba(212,175,106,.16);
}
[data-theme="emerald"] .topbar-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 600; font-size: 18px; letter-spacing: .3px; color: #f3fbf5;
}

/* Карточки статистики: премиальные — серив-цифры, золотая кромка, глубина, hover */
[data-theme="emerald"] .stat-card {
  background: linear-gradient(160deg, rgba(23,42,32,.94), rgba(15,30,23,.94));
  border: 1px solid rgba(212,175,106,.16);
  border-top: 2px solid rgba(212,175,106,.5);
  box-shadow: 0 6px 24px rgba(0,0,0,.35);
  position: relative; overflow: hidden;
  transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .25s;
}
[data-theme="emerald"] .stat-card::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(420px 130px at 100% 0, rgba(52,211,153,.09), transparent 70%);
}
[data-theme="emerald"] .stat-card:hover { transform: translateY(-3px); box-shadow: 0 12px 34px rgba(0,0,0,.46); }
[data-theme="emerald"] .stat-card .stat-value {
  font-family: 'Fraunces', Georgia, serif; font-weight: 600;
  font-size: 32px; letter-spacing: .4px;
}
[data-theme="emerald"] .stat-card .stat-label {
  color: rgba(212,175,106,.78); text-transform: uppercase;
  letter-spacing: .8px; font-size: 10.5px;
}

/* Кнопки */
[data-theme="emerald"] .btn-primary {
  background: linear-gradient(135deg,#34d399,#2bb886);
  box-shadow: 0 4px 16px rgba(52,211,153,.25);
}
[data-theme="emerald"] .btn-primary:hover:not(:disabled) {
  background: linear-gradient(135deg,#3ee0a6,#34d399);
  box-shadow: 0 6px 22px rgba(52,211,153,.4);
}
[data-theme="emerald"] .btn-secondary:hover {
  border-color: var(--accent-gold); color: var(--accent-gold);
  background: rgba(212,175,106,.08);
}

/* Фокус полей — изумрудное кольцо */
[data-theme="emerald"] input:not(.lfield input):focus,
[data-theme="emerald"] select:focus,
[data-theme="emerald"] textarea:focus {
  border-color: rgba(52,211,153,.6);
  box-shadow: 0 0 0 3px rgba(52,211,153,.14);
}

/* Таблицы, модалки, заголовки секций — золотые акценты */
[data-theme="emerald"] thead th { color: rgba(212,175,106,.72); letter-spacing: .8px; }
[data-theme="emerald"] .modal { border: 1px solid rgba(212,175,106,.16); }
[data-theme="emerald"] .settings-block-title {
  color: var(--accent-gold); font-family: 'Fraunces', Georgia, serif; font-weight: 600;
}
[data-theme="emerald"] ::-webkit-scrollbar-thumb { background: rgba(52,211,153,.3); }

/* ── Тема: Тёмный неон-эко ── */
[data-theme="neon"] {
  --theme-rgb:   74, 222, 128;
  --bg:        #060d08;
  --surface:   #0c160f;
  --surface2:  #112016;
  --border:    #1c3a26;
  --border2:   #142a1b;
  --bg3:       #0c160f;
  --text:      #dff7e6;
  --text1:     #f0fff4;
  --text2:     #8fd4a4;
  --text3:     #5a9a6e;
  --primary:   #4ade80;
  --primary-h: #38c46a;
  --primary-dim: rgba(74,222,128,.10);
  --success:   #4ade80;
  --warning:   #fbbf24;
  --danger:    #f87171;
  --purple:    #5eead4;
  --font-body:    'Exo 2', -apple-system, sans-serif;
  --font-display: 'Space Grotesk', 'Exo 2', sans-serif;
  --glass-bg:       rgba(5, 12, 8, 0.78);
  --glass-bg-light: rgba(9, 18, 12, 0.66);
  --glass-bg-deep:  rgba(3, 9, 5, 0.90);
}
[data-theme="neon"] .stat-card .stat-value { text-shadow: 0 0 14px rgba(74,222,128,.45); }
[data-theme="neon"] .nav-item.active { box-shadow: inset 2px 0 0 var(--primary); }
[data-theme="neon"] .btn-primary {
  background: linear-gradient(135deg,#4ade80,#22c55e);
  box-shadow: 0 0 18px rgba(74,222,128,.35);
}
[data-theme="neon"] .stat-card:hover { box-shadow: 0 0 0 1px rgba(74,222,128,.25), 0 8px 24px rgba(0,0,0,.4); }

/* ── Тема: Чистый клиник-минимал (светлая) ── */
[data-theme="clinic"] {
  --theme-rgb:   47, 143, 91;
  --primary:     #2f8f5b;
  --primary-h:   #25754a;
  --primary-dim: rgba(47,143,91,.08);
  --text:   #16241b;
  --text1:  #0d1812;
  --text2:  #46594e;
  --text3:  #7c8f83;
  --border:  rgba(40,80,55,.16);
  --border2: rgba(40,80,55,.10);
  --surface:  #ffffff;
  --surface2: #f0f4f1;
  --bg3:      #eef3f0;
  --success: #2f8f5b;
  --warning: #c98a2b;
  --danger:  #d65a5a;
  --purple:  #7c5cd6;   /* тёмный фиолет — читаем на белой карточке (иначе засвет) */
  --font-body:    'Onest', -apple-system, sans-serif;
  --font-display: 'Schibsted Grotesk', 'Onest', sans-serif;
  --glass-bg:       rgba(255, 255, 255, 0.88);
  --glass-bg-light: rgba(248, 251, 249, 0.78);
  --glass-bg-deep:  rgba(244, 247, 245, 0.94);
}

/* ── Тема: Navy (тёмно-синий) — профессиональный нейтральный ── */
[data-theme="navy"] {
  --theme-rgb:   56, 189, 248;
  --bg:        #0f172a;
  --surface:   #1e293b;
  --surface2:  #273549;
  --border:    #334155;
  --border2:   #1e293b;
  --bg3:       #1e293b;
  --bg1:       #080f1c;
  --bg2:       #0f172a;
  --text:      #e2e8f0;
  --text1:     #f8fafc;
  --text2:     #94a3b8;
  --text3:     #475569;
  --primary:   #38bdf8;
  --primary-h: #0ea5e9;
  --primary-dim: rgba(56,189,248,.09);
  --success:   #22c55e;
  --warning:   #f59e0b;
  --danger:    #ef4444;
  --purple:    #a78bfa;
  --glass-bg:       rgba(9, 15, 36, 0.82);
  --glass-bg-light: rgba(14, 22, 48, 0.70);
  --glass-bg-deep:  rgba(5, 10, 24, 0.92);
  --glass-border:   rgba(56, 189, 248, 0.16);
}
[data-theme="navy"] body { background: var(--bg); }
[data-theme="navy"] html { background: var(--bg); }
[data-theme="navy"] .chess-room-label { background: rgba(8, 14, 32, .90) !important; }
[data-theme="navy"] .chess-th { border-color: rgba(56,189,248,.22) !important; background: rgba(14,28,56,.42) !important; }
[data-theme="navy"] .chess-cell { border-color: rgba(56,189,248,.18) !important; background: rgba(14,28,56,.20) !important; }
[data-theme="navy"] .chess-cell.chess-today { background: rgba(56,189,248,.12) !important; border-color: rgba(56,189,248,.45) !important; }
[data-theme="navy"] .chess-th.chess-today { background: rgba(56,189,248,.18) !important; border-color: rgba(56,189,248,.45) !important; }
[data-theme="navy"] .chess-cell.chess-free:hover { background: rgba(56,189,248,.15) !important; border-color: rgba(56,189,248,.5) !important; }
[data-theme="navy"] ::-webkit-scrollbar-thumb { background: #334155; }

/* ── Тема: Светлая — белые карточки, тёмный сайдбар, синий акцент ── */
[data-theme="light"] {
  --theme-rgb:   37, 99, 235;
  --bg:        #f1f5f9;
  --surface:   #ffffff;
  --surface2:  #f8fafc;
  --border:    #e2e8f0;
  --border2:   #cbd5e1;
  --bg3:       #f1f5f9;
  --bg1:       #e2e8f0;
  --bg2:       #f1f5f9;
  --text:      #1e293b;
  --text1:     #0f172a;
  --text2:     #475569;
  --text3:     #94a3b8;
  --primary:   #2563eb;
  --primary-h: #1d4ed8;
  --primary-dim: rgba(37,99,235,.08);
  --success:   #16a34a;
  --warning:   #d97706;
  --danger:    #dc2626;
  --purple:    #7c3aed;
  --glass-bg:       rgba(248, 250, 252, 0.94);
  --glass-bg-light: rgba(255, 255, 255, 0.88);
  --glass-bg-deep:  rgba(241, 245, 249, 0.97);
  --glass-border:   rgba(37, 99, 235, 0.12);
}
[data-theme="light"] body { background: #f1f5f9; color: #1e293b; }
[data-theme="light"] html { background: #f1f5f9; }
[data-theme="light"] .sidebar {
  background: #1e293b !important;
  border-right-color: #334155 !important;
}
[data-theme="light"] .sidebar-logo { border-bottom-color: #334155 !important; }
[data-theme="light"] .nav-section { color: #64748b !important; }
[data-theme="light"] .nav-item { color: #94a3b8 !important; }
[data-theme="light"] .nav-item:hover { background: rgba(255,255,255,.08) !important; color: #e2e8f0 !important; }
[data-theme="light"] .nav-item.active { background: rgba(37,99,235,.22) !important; color: #93c5fd !important; }
[data-theme="light"] .sidebar-footer { border-top-color: #334155 !important; }
[data-theme="light"] .sidebar-footer .user-name { color: #e2e8f0 !important; }
[data-theme="light"] .sidebar-footer .user-role { color: #64748b !important; }
[data-theme="light"] .sidebar-footer .btn-logout { color: #64748b !important; }
[data-theme="light"] .topbar {
  background: #ffffff !important;
  border-bottom-color: #e2e8f0 !important;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
[data-theme="light"] .topbar-title { color: #0f172a !important; }
[data-theme="light"] input:not(.lfield input), [data-theme="light"] select, [data-theme="light"] textarea {
  background: #ffffff !important;
  color: #1e293b !important;
  border-color: #e2e8f0 !important;
}
[data-theme="light"] select option { background: #fff; color: #1e293b; }
[data-theme="light"] input:not(.lfield input):focus, [data-theme="light"] select:focus, [data-theme="light"] textarea:focus {
  border-color: #2563eb !important;
  box-shadow: 0 0 0 3px rgba(37,99,235,.12) !important;
}
[data-theme="light"] thead th { color: #64748b !important; background: #f8fafc !important; }
[data-theme="light"] tbody tr:hover td { background: rgba(37,99,235,.04) !important; }
[data-theme="light"] tbody tr { border-bottom-color: #e2e8f0 !important; }
[data-theme="light"] .chess-room-label { background: rgba(248,250,252,.95) !important; color: #1e293b !important; }
[data-theme="light"] .chess-th { border-color: rgba(37,99,235,.18) !important; background: rgba(37,99,235,.06) !important; color: #475569 !important; }
[data-theme="light"] .chess-cell { border-color: rgba(226,232,240,.9) !important; background: rgba(241,245,249,.6) !important; }
[data-theme="light"] .chess-cell.chess-today { background: rgba(37,99,235,.08) !important; border-color: rgba(37,99,235,.35) !important; }
[data-theme="light"] .chess-th.chess-today { color: #2563eb !important; background: rgba(37,99,235,.1) !important; border-color: rgba(37,99,235,.35) !important; }
[data-theme="light"] .chess-cell.chess-free:hover { background: rgba(37,99,235,.1) !important; border-color: rgba(37,99,235,.4) !important; }
[data-theme="light"] .modal { background: #ffffff !important; border-color: #e2e8f0 !important; }
[data-theme="light"] .stat-card { box-shadow: 0 1px 4px rgba(0,0,0,.06); }
[data-theme="light"] ::-webkit-scrollbar-thumb { background: #cbd5e1; }
[data-theme="light"] ::-webkit-scrollbar-track  { background: #f1f5f9; }

/* ── Структурные правила светлой темы Clinic (чистый бело-зелёный) ── */
[data-theme="clinic"] body { background: #f4f7f4; }
[data-theme="clinic"] .sidebar {
  background: #ffffff !important;
  border-right-color: rgba(40,80,55,.12) !important;
}
[data-theme="clinic"] .topbar {
  background: rgba(255,255,255,.92) !important;
  border-bottom-color: rgba(40,80,55,.10) !important;
}
[data-theme="clinic"] .nav-item { color: #46594e; }
[data-theme="clinic"] .nav-item:hover { background: rgba(47,143,91,.09) !important; }
[data-theme="clinic"] .nav-item.active { color: var(--primary) !important; background: rgba(47,143,91,.12) !important; }
[data-theme="clinic"] input:not(.lfield input),
[data-theme="clinic"] select,
[data-theme="clinic"] textarea {
  background: #ffffff !important;
  color: #16241b !important;
  border-color: rgba(40,80,55,.20) !important;
}
[data-theme="clinic"] select option { background: #ffffff; color: #16241b; }
[data-theme="clinic"] thead th {
  background: #eef3f0 !important;
  color: #2a4234 !important;
}
[data-theme="clinic"] tbody tr:hover td { background: rgba(47,143,91,.05) !important; }
[data-theme="clinic"] .chess-room-label {
  background: #eef3f0 !important;
  color: #2a4234 !important;
}
[data-theme="clinic"] .modal-box,
[data-theme="clinic"] .card,
[data-theme="clinic"] .stat-card,
[data-theme="clinic"] .table-wrap {
  background: #ffffff !important;
  box-shadow: 0 2px 12px rgba(40,70,55,.06) !important;
}
[data-theme="clinic"] .topbar-title { color: #16241b; }
[data-theme="clinic"] ::-webkit-scrollbar-thumb { background: rgba(47,143,91,.26); }
[data-theme="clinic"] ::-webkit-scrollbar-track  { background: rgba(238,243,240,.70); }

/* Шахматка на светлых темах: тёмный текст вместо белого (иначе засвет на бледных ячейках) */
[data-theme="light"] .chess-name,  [data-theme="clinic"] .chess-name  { color: #16241b; text-shadow: none; }
[data-theme="light"] .chess-dates, [data-theme="clinic"] .chess-dates { color: rgba(20,40,28,.72); }
[data-theme="light"] .chess-sep,   [data-theme="clinic"] .chess-sep   { color: rgba(20,40,28,.28); }
[data-theme="light"] .chess-avatar,[data-theme="clinic"] .chess-avatar{ text-shadow: 0 1px 2px rgba(0,0,0,.35); }

/* ── Empty-state: всегда видим ── */
.empty-state {
  text-align: center; padding: 48px 24px;
  color: var(--text2);
  background: rgba(var(--theme-rgb), 0.06);
  border-radius: 12px;
  border: 1px dashed rgba(var(--theme-rgb), 0.25);
}
.empty-state .empty-icon { font-size: 40px; margin-bottom: 12px; }
.empty-state p { font-size: 14px; font-weight: 500; }

/* ── Сайдбар ── */
.sidebar {
  background: var(--glass-bg) !important;
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border-right-color: var(--glass-border) !important;
}
.sidebar-logo  { border-bottom-color: var(--glass-border) !important; }
.sidebar-footer { border-top-color: var(--glass-border) !important; }
.nav-item:hover { background: rgba(var(--theme-rgb), .12) !important; }
.nav-item.active { background: rgba(var(--theme-rgb), .20) !important; }

/* ── Топбар ── */
.topbar {
  background: var(--glass-bg) !important;
  backdrop-filter: var(--glass-blur-md);
  -webkit-backdrop-filter: var(--glass-blur-md);
  border-bottom-color: var(--glass-border) !important;
}

/* ── Страница (прозрачная) ── */
.page { background: transparent !important; }

/* ── Карточки ── */
.stat-card, .room-card, .hk-card, .kkm-device-card {
  background: var(--glass-bg-light) !important;
  backdrop-filter: var(--glass-blur-md);
  -webkit-backdrop-filter: var(--glass-blur-md);
  border-color: var(--glass-border) !important;
}
.stat-card.cash-stat-total { background: rgba(var(--theme-rgb), .18) !important; }

/* Inline .card class */
[class~="card"] {
  background: var(--glass-bg-light) !important;
  backdrop-filter: var(--glass-blur-md);
  -webkit-backdrop-filter: var(--glass-blur-md);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius);
}

/* ── Таблицы ── */
.table-wrap {
  background: var(--glass-bg-light) !important;
  backdrop-filter: var(--glass-blur-sm);
  -webkit-backdrop-filter: var(--glass-blur-sm);
  border-color: var(--glass-border) !important;
}
thead th { background: rgba(0,0,0,.28) !important; }
[data-theme="light"] thead th { background: rgba(200,235,215,.65) !important; }
tbody tr:hover { background: rgba(var(--theme-rgb), .08) !important; }
tbody tr { border-bottom-color: rgba(var(--theme-rgb), .10) !important; }

/* ── Section label ── */
.section-label {
  font-size: 12px; font-weight: 600; text-transform: uppercase;
  letter-spacing: .6px; color: var(--text2); margin-bottom: 8px;
}

/* ── Поля ввода ── */
input:not(.lfield input), select, textarea {
  background: rgba(0,0,0,.40) !important;
  border-color: rgba(var(--theme-rgb), .28) !important;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
input:focus, select:focus, textarea:focus {
  background: rgba(0,0,0,.50) !important;
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px rgba(var(--theme-rgb), .18);
}
select option { background: #0d1f10; }

/* ── Модальные окна ── */
.modal-overlay { backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.modal {
  background: var(--glass-bg-deep) !important;
  backdrop-filter: blur(36px) saturate(160%);
  -webkit-backdrop-filter: blur(36px) saturate(160%);
  border-color: var(--glass-border) !important;
  box-shadow: 0 32px 80px rgba(0,0,0,.65), 0 0 0 1px rgba(var(--theme-rgb), .15) !important;
}
.modal-header { border-bottom-color: var(--glass-border) !important; }
.modal-footer { border-top-color: var(--glass-border) !important; }

/* ── Кассовые карточки ── */
.cash-stat-card {
  background: var(--glass-bg-light) !important;
  backdrop-filter: var(--glass-blur-sm);
  -webkit-backdrop-filter: var(--glass-blur-sm);
  border-color: var(--glass-border) !important;
}

/* ── Инвойс ── */
.invoice-summary {
  background: rgba(0,0,0,.30) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-color: var(--glass-border) !important;
}

/* ── Поиск ── */
.search-input {
  background: rgba(0,0,0,.40) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-color: rgba(var(--theme-rgb), .28) !important;
}

/* ── Toast ── */
.toast {
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  background: rgba(0,0,0,.82) !important;
  border-color: var(--glass-border) !important;
}

.theme-dot {
  width: 20px; height: 20px; border-radius: 50%;
  cursor: pointer; border: 2px solid transparent;
  transition: all .2s; flex-shrink: 0;
}
.theme-dot:hover { transform: scale(1.2); }
.theme-dot.active { border-color: #fff; box-shadow: 0 0 0 2px rgba(255,255,255,.4); }
.theme-dot[data-t="green"]  { background: #7ab648; }
.theme-dot[data-t="blue"]   { background: #38a8e0; }
.theme-dot[data-t="slate"]  { background: #94a3b8; }
.theme-dot[data-t="light"]  { background: linear-gradient(135deg,#e8f5ec,#c8e8d4); border-color: #94c8a4; }
.theme-dot[data-t="light"].active { border-color: #3a9060; }

/* ── Логин поверх фото ── */
.login-wrap { background: transparent !important; }
.login-wrap::before {
  background:
    rgba(2, 6, 20, 0.62),
    radial-gradient(ellipse 900px 700px at -5% 20%,  rgba(37,99,235,.22) 0%, transparent 55%),
    radial-gradient(ellipse 700px 500px at 110% 85%, rgba(29,78,216,.18) 0%, transparent 55%) !important;
}

/* ── App Settings page ─────────────────────────────────────────── */
.settings-section { margin-bottom: 28px; }
.settings-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .6px; color: var(--text3); margin-bottom: 4px; }
.settings-theme-card {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 16px; border-radius: 10px; cursor: pointer;
  background: var(--glass-bg-light); border: 1.5px solid var(--border);
  transition: border-color .2s, background .2s; font-size: 13px; color: var(--text1);
  min-width: 140px;
}
.settings-theme-card:hover { border-color: rgba(var(--theme-rgb),.5); }
.settings-theme-card.active { border-color: rgba(var(--theme-rgb),.8); background: rgba(var(--theme-rgb),.08); }
.settings-theme-dot { width: 18px; height: 18px; border-radius: 50%; flex-shrink: 0; }
.settings-info-grid { display: flex; flex-direction: column; gap: 2px; }
.settings-info-row {
  display: flex; align-items: center; gap: 16px;
  padding: 8px 12px; border-radius: 8px;
  background: var(--glass-bg-light); border: 1px solid var(--border);
}
.settings-info-key { font-size: 12px; color: var(--text3); min-width: 130px; flex-shrink: 0; }
.settings-info-val { font-size: 13px; color: var(--text1); font-weight: 500; font-family: monospace; }

/* ── Settings page redesign ────────────────────────────────────── */
.stab-bar { display:flex; gap:4px; flex-wrap:wrap; margin-bottom:24px; padding:4px; background:var(--glass-bg-light); border-radius:12px; border:1px solid var(--border); width:fit-content; }
.stab-btn { padding:8px 16px; border-radius:9px; border:none; background:transparent; color:var(--text2); font-size:13px; font-weight:500; cursor:pointer; transition:all .18s; white-space:nowrap; }
.stab-btn:hover { background:rgba(var(--theme-rgb),.1); color:var(--text); }
.stab-btn.active { background:rgba(var(--theme-rgb),.18); color:var(--primary); font-weight:600; }

.settings-body { display:flex; flex-direction:column; gap:20px; max-width:820px; }
.settings-block { background:var(--glass-bg-light); border:1px solid var(--border); border-radius:14px; padding:20px 22px; }
.settings-block-title { font-size:13px; font-weight:700; color:var(--text2); text-transform:uppercase; letter-spacing:.5px; margin-bottom:2px; }

/* Theme cards */
.stheme-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px; margin-top:14px; }
.stheme-card { border-radius:12px; border:2px solid var(--border); overflow:hidden; cursor:pointer; transition:border-color .2s, transform .15s; }
.stheme-card:hover { transform:translateY(-2px); border-color:rgba(var(--theme-rgb),.5); }
.stheme-card.active { border-color:rgba(var(--theme-rgb),.9); box-shadow:0 0 0 3px rgba(var(--theme-rgb),.15); }
.stheme-preview { display:flex; height:70px; overflow:hidden; }
.stheme-preview-accent { height:6px; position:absolute; }
.stheme-label { display:flex; align-items:center; justify-content:space-between; padding:8px 12px; font-size:13px; color:var(--text1); background:var(--glass-bg); }
.stheme-check { font-size:11px; color:var(--primary); font-weight:600; }

/* Background cards */
.sbg-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:12px; margin-top:14px; }
.sbg-card { border-radius:12px; border:2px solid var(--border); overflow:hidden; cursor:pointer; transition:border-color .2s, transform .15s; }
.sbg-card:hover { transform:translateY(-2px); border-color:rgba(var(--theme-rgb),.5); }
.sbg-card.active { border-color:rgba(var(--theme-rgb),.9); box-shadow:0 0 0 3px rgba(var(--theme-rgb),.15); }
.sbg-preview { height:90px; background-size:cover; background-position:center; display:flex; align-items:center; justify-content:center; }
.sbg-icon { font-size:32px; filter:drop-shadow(0 2px 8px rgba(0,0,0,.6)); }
.sbg-label { display:flex; flex-direction:column; gap:2px; padding:10px 12px; background:var(--glass-bg); }
.sbg-label b { font-size:13px; color:var(--text1); }
.sbg-label span { font-size:11px; color:var(--text3); }

/* Option buttons (cashier settings) */
.sopt-btn { padding:8px 18px; border-radius:20px; border:1.5px solid var(--border); background:var(--glass-bg-light); color:var(--text2); font-size:13px; cursor:pointer; transition:all .18s; }
.sopt-btn:hover { border-color:rgba(var(--theme-rgb),.5); color:var(--text); }
.sopt-btn.active { border-color:rgba(var(--theme-rgb),.8); background:rgba(var(--theme-rgb),.12); color:var(--primary); font-weight:600; }

/* Background grid 4-col */
.sbg-grid-4 { grid-template-columns: repeat(4, 1fr) !important; }
.sbg-preview { position: relative; }

/* Logo size range slider */
.logo-size-range {
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  height: 4px;
  border-radius: 2px;
  background: var(--border);
  outline: none;
  cursor: pointer;
}
.logo-size-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--primary);
  cursor: pointer;
  box-shadow: 0 0 6px rgba(var(--theme-rgb),.5);
}
.logo-size-range::-moz-range-thumb {
  width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--primary);
  cursor: pointer;
  border: none;
}

/* Organization cards */
.org-card { display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:10px; border:1px solid var(--border); background:var(--glass-bg-light); transition:border-color .18s; }
.org-card:hover { border-color:rgba(var(--theme-rgb),.4); }
.org-card-active { border-color:rgba(34,197,94,.4); background:rgba(34,197,94,.05); }

/* ── Chess departing highlight ──────────────────────────────────── */
@keyframes chess-pulse {
  0%,100% { opacity: 1; }
  50%      { opacity: .45; }
}
.chess-departing {
  box-shadow: 0 0 0 2px #f9731655 !important;
  animation: chess-pulse 1.4s ease-in-out infinite;
}

/* ── Guest card sections ─────────────────────────────────────────── */
.g-section-title {
  font-size: 11px;
  font-weight: 700;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: .6px;
  padding: 6px 0 6px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 10px;
}

/* ── Guest history ───────────────────────────────────────────────── */
.gh-stay-card { transition: box-shadow .15s; }
.gh-stay-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.2); }
.gh-stay-head:hover { background: var(--bg3) !important; }

/* Toggle switch */
.stoggle-row { display:flex; align-items:center; justify-content:space-between; gap:16px; cursor:pointer; padding:12px 0; border-bottom:1px solid var(--border); }
.stoggle-row:last-child { border-bottom:none; }
.stoggle-label { display:flex; flex-direction:column; gap:3px; }
.stoggle-label b { font-size:13px; color:var(--text1); }
.stoggle-label span { font-size:11px; color:var(--text3); }
.stoggle { width:44px; height:24px; border-radius:12px; border:none; background:var(--border); cursor:pointer; position:relative; flex-shrink:0; transition:background .2s; }
.stoggle.on { background:rgba(var(--theme-rgb),.7); }
.stoggle-thumb { position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; transition:transform .2s; display:block; }

/* Сезонные ценники */
.season-type-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px; margin-bottom: 14px; }
.season-type-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--border); flex-wrap: wrap; }
.season-row { display: flex; align-items: center; gap: 14px; padding: 8px 0; border-bottom: 1px solid var(--border2); flex-wrap: wrap; }
.season-row:last-child { border-bottom: none; }
.season-row.season-active { background: rgba(74,222,128,.08); margin: 0 -16px; padding: 8px 16px; border-radius: 6px; }
.season-period { font-size: 13px; font-weight: 600; min-width: 170px; display: flex; align-items: center; gap: 6px; }
.season-name { flex: 1; color: var(--text2); font-size: 13px; min-width: 120px; }
.season-price { font-weight: 600; white-space: nowrap; }
.season-actions { display: flex; gap: 6px; }
.stoggle.on .stoggle-thumb { transform:translateX(20px); }
.fms-inp { background:var(--bg3); border:1px solid var(--border); border-radius:5px; padding:4px 8px; font-size:13px; color:var(--text1); width:100%; box-sizing:border-box; }
.fms-inp:focus { outline:none; border-color:var(--accent); }
.fms-code { font-family:monospace; }
.fms-table td { padding:3px 4px; }
.dash-today-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px; }
.dash-today-card { background:var(--bg2); border:1px solid var(--border); border-radius:10px; padding:14px 16px; }
.dash-today-title { font-size:13px; font-weight:600; color:var(--text2); margin-bottom:10px; }
.dash-today-list { display:flex; flex-direction:column; gap:6px; max-height:220px; overflow-y:auto; }
.dash-today-item { display:flex; gap:10px; align-items:center; font-size:13px; padding:6px 8px; border-radius:6px; background:var(--bg3); }
.dash-today-room { font-weight:700; color:var(--accent); min-width:32px; }
.dash-today-name { flex:1; color:var(--text1); }
.dash-today-type { font-size:11px; color:var(--text3); }
.rep-methods { display:flex; flex-direction:column; gap:10px; max-width:480px; margin-top:12px; }
.rep-method-row { display:flex; align-items:center; gap:12px; }
.rep-method-label { width:120px; font-size:13px; color:var(--text2); }
.rep-method-bar { flex:1; height:8px; background:var(--bg3); border-radius:4px; overflow:hidden; }
.rep-method-bar-fill { height:100%; border-radius:4px; background:var(--accent); }
.rep-method-val { font-size:12px; color:var(--text3); white-space:nowrap; min-width:130px; text-align:right; }
@media(max-width:640px){ .dash-today-row{grid-template-columns:1fr;} }
.dash-widget-panel { background:var(--bg2); border:1px solid var(--border); border-radius:10px; padding:14px 16px; margin-bottom:16px; }
.dash-widget-panel-title { font-size:13px; font-weight:600; color:var(--text2); margin-bottom:12px; }
.dash-widget-list { display:flex; flex-wrap:wrap; gap:8px 20px; }
.dash-widget-toggle { display:flex; align-items:center; gap:7px; font-size:13px; color:var(--text2); cursor:pointer; white-space:nowrap; }
.dash-widget-toggle input[type=checkbox] { width:15px; height:15px; cursor:pointer; accent-color:var(--accent); }
.dash-compare-bar { display:flex; gap:4px; background:var(--bg3); border-radius:8px; padding:3px; }
.dash-compare-btn { background:transparent; border:none; color:var(--text3); font-size:12px; padding:4px 10px; border-radius:6px; cursor:pointer; transition:.15s; white-space:nowrap; }
.dash-compare-btn:hover { color:var(--text1); background:var(--bg2); }
.dash-compare-btn.active { background:var(--accent); color:#fff; }
.dash-delta { display:inline-block; font-size:11px; font-weight:600; padding:1px 6px; border-radius:4px; margin-left:6px; vertical-align:middle; }
.dash-delta-up   { color:#22c55e; background:rgba(34,197,94,.12); }
.dash-delta-down { color:#ef4444; background:rgba(239,68,68,.12); }
.dash-delta-flat { color:var(--text3); background:var(--bg3); }


/* ═══════════════════════════════════════════════════════════════
   REDESIGN 2025 — Modern Dark SaaS UI
   ═══════════════════════════════════════════════════════════════ */

:root {
  --glow-accent:   0 0 24px rgba(var(--theme-rgb),.28);
  --shadow-sm:     0 2px 8px rgba(0,0,0,.35);
  --shadow-md:     0 4px 20px rgba(0,0,0,.45), 0 1px 4px rgba(0,0,0,.25);
  --shadow-lg:     0 8px 40px rgba(0,0,0,.55), 0 2px 10px rgba(0,0,0,.3);
  --shadow-glow:   0 0 32px rgba(var(--theme-rgb),.22), 0 6px 24px rgba(0,0,0,.45);
  --spring:        cubic-bezier(.16,1,.3,1);
  --ease-out:      cubic-bezier(.0,0,.2,1);
  --tr:            all .22s var(--spring);
  --tr-fast:       all .14s var(--ease-out);
  --r-sm:          8px;
  --r-md:          12px;
  --r-lg:          16px;
  --r-xl:          20px;
  --r-pill:        100px;
  --blur-xs:       blur(8px) saturate(120%);
  --blur-sm:       blur(14px) saturate(135%);
  --blur-md:       blur(22px) saturate(150%);
  --blur-lg:       blur(36px) saturate(160%);
  --glass-dark:    rgba(9,15,36,.86);
  --glass-mid:     rgba(14,22,42,.82);
  --glass-light:   rgba(18,28,50,.76);
  --glass-border:  rgba(var(--theme-rgb),.16);
  --glass-border2: rgba(var(--theme-rgb),.10);
}
/* ── Зелёная тема: восстановить glass-dark/mid/light ── */
[data-theme="green"] {
  --glass-dark:    rgba(6,12,8,.86);
  --glass-mid:     rgba(10,18,12,.82);
  --glass-light:   rgba(14,24,16,.76);
  --shadow-glow:   0 0 32px rgba(122,182,72,.22), 0 6px 24px rgba(0,0,0,.45);
}

/* Body tint */
body { background: var(--bg) !important; }
.page { background: transparent !important; }

/* ─── SIDEBAR ─────────────────────────────────────────────── */
.sidebar {
  background: var(--glass-dark) !important;
  backdrop-filter: var(--blur-lg) !important;
  -webkit-backdrop-filter: var(--blur-lg) !important;
  border-right: 1px solid var(--glass-border) !important;
  box-shadow: 6px 0 32px rgba(0,0,0,.55) !important;
}
.sidebar-logo {
  border-bottom: 1px solid var(--glass-border2) !important;
}
.sidebar-logo .sys-name {
  color: var(--primary) !important;
  font-weight: 800 !important;
  font-size: 17px !important;
  letter-spacing: -.5px !important;
}
[data-theme="green"] .sidebar-logo .sys-name {
  background: linear-gradient(135deg,#c2f080 0%,#7ab648 60%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
}
.nav-section {
  font-size: 9px !important;
  font-weight: 800 !important;
  letter-spacing: 1.8px !important;
  color: rgba(var(--theme-rgb),.45) !important;
  padding: 16px 18px 5px !important;
  text-transform: uppercase !important;
}
.nav-item {
  margin: 2px 10px !important;
  border-radius: var(--r-sm) !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  color: var(--text2) !important;
  transition: var(--tr) !important;
  position: relative !important;
}
.nav-item:hover {
  background: rgba(var(--theme-rgb),.09) !important;
  color: var(--text) !important;
  transform: translateX(2px) !important;
}
.nav-item.active {
  background: linear-gradient(90deg,rgba(var(--theme-rgb),.22) 0%,rgba(var(--theme-rgb),.06) 100%) !important;
  color: var(--primary) !important;
  font-weight: 600 !important;
  box-shadow: inset 0 0 0 1px rgba(var(--theme-rgb),.22) !important;
}
.nav-item.active .nav-icon {
  filter: drop-shadow(0 0 7px rgba(var(--theme-rgb),.9)) !important;
}
.sidebar-footer { border-top: 1px solid var(--glass-border2) !important; }

/* ─── TOPBAR ──────────────────────────────────────────────── */
.topbar {
  background: var(--glass-dark) !important;
  backdrop-filter: var(--blur-md) !important;
  -webkit-backdrop-filter: var(--blur-md) !important;
  border-bottom: 1px solid var(--glass-border) !important;
  box-shadow: 0 1px 0 rgba(var(--theme-rgb),.07), 0 4px 24px rgba(0,0,0,.4) !important;
}
.topbar-title {
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: -.3px !important;
}

/* ─── BUTTONS ─────────────────────────────────────────────── */
.btn { transition: var(--tr) !important; font-weight: 600 !important; }
.btn-primary {
  background: var(--primary) !important;
  border: none !important;
  border-radius: var(--r-md) !important;
  box-shadow: 0 4px 18px rgba(var(--theme-rgb),.38), 0 1px 4px rgba(0,0,0,.25) !important;
  color: #fff !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.25) !important;
}
.btn-primary:hover:not(:disabled) {
  background: var(--primary-h) !important;
  box-shadow: 0 6px 28px rgba(var(--theme-rgb),.55), 0 2px 8px rgba(0,0,0,.2) !important;
  transform: translateY(-2px) !important;
}
.btn-primary:active:not(:disabled) {
  transform: translateY(0) !important;
  box-shadow: 0 2px 10px rgba(var(--theme-rgb),.3) !important;
}
[data-theme="green"] .btn-primary {
  background: linear-gradient(135deg,#82c24e 0%,#5a8f2e 100%) !important;
}
[data-theme="green"] .btn-primary:hover:not(:disabled) {
  background: linear-gradient(135deg,#96d85e 0%,#6dab38 100%) !important;
}
.btn-danger:hover:not(:disabled)   { box-shadow: 0 4px 18px rgba(248,113,113,.32) !important; transform: translateY(-1px) !important; }
.btn-success:hover:not(:disabled)  { box-shadow: 0 4px 18px rgba(74,222,128,.25) !important; transform: translateY(-1px) !important; }
.btn-secondary:hover:not(:disabled){ transform: translateY(-1px) !important; }
.btn-outline:hover:not(:disabled)  { transform: translateY(-1px) !important; }

/* ─── STAT CARDS ──────────────────────────────────────────── */
.stat-card {
  position: relative !important;
  overflow: hidden !important;
  border-radius: var(--r-lg) !important;
  box-shadow: var(--shadow-md) !important;
  transition: var(--tr) !important;
  padding-left: 20px !important;
}
.stat-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: var(--shadow-lg) !important;
}
.stat-card::after {
  content: '' !important;
  position: absolute !important;
  left: 0 !important; top: 0 !important; bottom: 0 !important; width: 4px !important;
}
.stat-card.free {
  background: linear-gradient(135deg,rgba(18,40,22,1),rgba(10,22,13,1)) !important;
  border: 1px solid rgba(74,222,128,.18) !important;
}
.stat-card.free::after        { background: linear-gradient(180deg,#4ade80,#22c55e) !important; box-shadow: 2px 0 14px rgba(74,222,128,.5) !important; }
.stat-card.occupied {
  background: linear-gradient(135deg,rgba(var(--theme-rgb),.12),rgba(var(--theme-rgb),.05)) !important;
  border: 1px solid rgba(var(--theme-rgb),.2) !important;
}
.stat-card.occupied::after    { background: linear-gradient(180deg,var(--primary),var(--primary-h)) !important; box-shadow: 2px 0 14px rgba(var(--theme-rgb),.5) !important; }
.stat-card.cleaning {
  background: linear-gradient(135deg,rgba(42,32,8,1),rgba(26,20,4,1)) !important;
  border: 1px solid rgba(251,191,36,.18) !important;
}
.stat-card.cleaning::after    { background: linear-gradient(180deg,#fbbf24,#f59e0b) !important; box-shadow: 2px 0 14px rgba(251,191,36,.4) !important; }
.stat-card.maintenance {
  background: linear-gradient(135deg,rgba(44,12,12,1),rgba(26,6,6,1)) !important;
  border: 1px solid rgba(248,113,113,.18) !important;
}
.stat-card.maintenance::after { background: linear-gradient(180deg,#f87171,#ef4444) !important; box-shadow: 2px 0 14px rgba(248,113,113,.45) !important; }
.stat-card.guests {
  background: linear-gradient(135deg,rgba(32,14,46,1),rgba(20,8,30,1)) !important;
  border: 1px solid rgba(192,132,252,.18) !important;
}
.stat-card.guests::after      { background: linear-gradient(180deg,#c084fc,#a855f7) !important; box-shadow: 2px 0 14px rgba(192,132,252,.45) !important; }
.stat-card.total {
  background: linear-gradient(135deg,rgba(var(--theme-rgb),.10),rgba(var(--theme-rgb),.04)) !important;
  border: 1px solid rgba(var(--theme-rgb),.16) !important;
}
.stat-card.total::after       { background: linear-gradient(180deg,var(--primary),var(--success)) !important; }

.stat-card .stat-value {
  font-size: 34px !important;
  font-weight: 800 !important;
  letter-spacing: -1.5px !important;
  line-height: 1 !important;
  margin-bottom: 6px !important;
  text-shadow: 0 0 24px currentColor !important;
}
.stat-card .stat-label {
  font-size: 10.5px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .9px !important;
  opacity: .7 !important;
}

/* ─── TABLE WRAP ──────────────────────────────────────────── */
.table-wrap {
  background: var(--glass-mid) !important;
  backdrop-filter: var(--blur-sm) !important;
  -webkit-backdrop-filter: var(--blur-sm) !important;
  border: 1px solid var(--glass-border2) !important;
  border-radius: var(--r-lg) !important;
  box-shadow: var(--shadow-md) !important;
  overflow: hidden !important;
}
thead th {
  background: rgba(0,0,0,.32) !important;
  color: rgba(var(--theme-rgb),.65) !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: 1.2px !important;
  text-transform: uppercase !important;
  border-bottom: 1px solid var(--glass-border2) !important;
  padding: 13px 14px !important;
}
tbody tr { transition: var(--tr-fast) !important; }
tbody td { border-bottom: 1px solid rgba(var(--theme-rgb),.05) !important; }
tbody tr:hover td { background: rgba(var(--theme-rgb),.06) !important; }
tbody tr.tr-clickable:hover td:first-child {
  box-shadow: inset 3px 0 0 rgba(var(--theme-rgb),.55) !important;
}

/* ─── CARDS ───────────────────────────────────────────────── */
[class~="card"] {
  background: var(--glass-light) !important;
  backdrop-filter: var(--blur-xs) !important;
  -webkit-backdrop-filter: var(--blur-xs) !important;
  border: 1px solid var(--glass-border2) !important;
  border-radius: var(--r-lg) !important;
  box-shadow: var(--shadow-sm) !important;
  transition: var(--tr) !important;
}
[class~="card"]:hover {
  border-color: var(--glass-border) !important;
  box-shadow: var(--shadow-md) !important;
  transform: translateY(-2px) !important;
}

/* ─── MODAL ───────────────────────────────────────────────── */
.modal-overlay {
  background: rgba(0,0,0,.68) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}
.modal {
  background: var(--surface) !important;
  backdrop-filter: var(--blur-lg) !important;
  -webkit-backdrop-filter: var(--blur-lg) !important;
  border: 1px solid rgba(var(--theme-rgb),.24) !important;
  border-radius: var(--r-xl) !important;
  box-shadow: 0 40px 100px rgba(0,0,0,.75), 0 0 0 1px rgba(var(--theme-rgb),.06) !important;
}
.modal-header {
  background: linear-gradient(90deg,rgba(var(--theme-rgb),.08),transparent) !important;
  border-bottom: 1px solid rgba(var(--theme-rgb),.12) !important;
  border-radius: var(--r-xl) var(--r-xl) 0 0 !important;
}
.modal-header h3 {
  font-size: 18px !important;
  font-weight: 800 !important;
  letter-spacing: -.4px !important;
  color: var(--text1) !important;
}
[data-theme="green"] .modal-header h3 {
  background: linear-gradient(90deg,#e8f5e0,#a8e063) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  color: unset !important;
}
.modal-footer { border-top: 1px solid rgba(var(--theme-rgb),.10) !important; }

/* ─── INPUTS ──────────────────────────────────────────────── */
input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=file]),
select, textarea {
  background: var(--bg) !important;
  border: 1px solid rgba(var(--theme-rgb),.2) !important;
  border-radius: var(--r-md) !important;
  transition: var(--tr) !important;
  color: var(--text) !important;
}
input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=file]):focus,
select:focus, textarea:focus {
  border-color: rgba(var(--theme-rgb),.65) !important;
  box-shadow: 0 0 0 3px rgba(var(--theme-rgb),.16), 0 0 18px rgba(var(--theme-rgb),.07) !important;
  background: var(--surface) !important;
  outline: none !important;
}

/* ─── SECTION HEADER ──────────────────────────────────────── */
.section-header {
  padding-bottom: 18px !important;
  border-bottom: 1px solid rgba(var(--theme-rgb),.12) !important;
  margin-bottom: 24px !important;
}
.section-title {
  font-size: 21px !important;
  font-weight: 800 !important;
  letter-spacing: -.6px !important;
  line-height: 1.15 !important;
  color: var(--text1) !important;
}
[data-theme="green"] .section-title {
  background: linear-gradient(90deg,#e8f5e0 0%,#b4e87a 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  color: unset !important;
}
.section-sub {
  font-size: 12px !important;
  color: var(--text2) !important;
  margin-top: 4px !important;
  font-weight: 500 !important;
}

/* ─── BADGES ──────────────────────────────────────────────── */
.badge {
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: .4px !important;
  border-radius: var(--r-pill) !important;
}
.badge-free        { box-shadow: 0 0 10px rgba(74,222,128,.2) !important; }
.badge-occupied    { box-shadow: 0 0 10px rgba(var(--theme-rgb),.2) !important; }
.badge-cleaning    { box-shadow: 0 0 10px rgba(251,191,36,.15) !important; }
.badge-maintenance { box-shadow: 0 0 10px rgba(248,113,113,.15) !important; }

/* ─── TOASTS ──────────────────────────────────────────────── */
.toast {
  border-radius: var(--r-lg) !important;
  backdrop-filter: blur(28px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(28px) saturate(160%) !important;
  box-shadow: 0 10px 36px rgba(0,0,0,.55), 0 2px 8px rgba(0,0,0,.3) !important;
  animation: toastSlide2025 .3s var(--spring) !important;
  border-left-width: 3px !important;
}
.toast-success { background: rgba(5,20,9,.93) !important;  border: 1px solid rgba(74,222,128,.28) !important; border-left-color: #4ade80 !important; }
.toast-error   { background: rgba(26,4,4,.93) !important;  border: 1px solid rgba(248,113,113,.28) !important; border-left-color: #f87171 !important; }
.toast-info    { background: var(--surface) !important;  border: 1px solid rgba(var(--theme-rgb),.28) !important; border-left-color: var(--primary) !important; }
.toast-warning { background: rgba(24,14,3,.93) !important; border: 1px solid rgba(251,191,36,.24) !important; border-left-color: #fbbf24 !important; }
@keyframes toastSlide2025 {
  from { opacity:0; transform:translateX(28px) scale(.94); }
  to   { opacity:1; transform:none; }
}

/* ─── DASH CHART CARDS ────────────────────────────────────── */
.dash-chart-card {
  background: var(--glass-mid) !important;
  backdrop-filter: var(--blur-sm) !important;
  -webkit-backdrop-filter: var(--blur-sm) !important;
  border: 1px solid var(--glass-border2) !important;
  border-radius: var(--r-lg) !important;
  box-shadow: var(--shadow-md) !important;
  transition: border-color .2s !important;
}
.dash-chart-card:hover { border-color: var(--glass-border) !important; }
.dash-chart-title {
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: 1.3px !important;
  text-transform: uppercase !important;
  color: rgba(var(--theme-rgb),.65) !important;
}

/* ─── DASH PERIOD BUTTONS ─────────────────────────────────── */
.dash-period-btn {
  background: var(--bg2) !important;
  border: 1px solid rgba(var(--theme-rgb),.14) !important;
  border-radius: var(--r-sm) !important;
  transition: var(--tr) !important;
}
.dash-period-btn:hover { border-color: rgba(var(--theme-rgb),.38) !important; transform: translateY(-1px) !important; }
.dash-period-btn.active {
  background: rgba(var(--theme-rgb),.16) !important;
  border-color: rgba(var(--theme-rgb),.5) !important;
  box-shadow: 0 0 0 3px rgba(var(--theme-rgb),.08), 0 4px 16px rgba(var(--theme-rgb),.14) !important;
}
.dash-compare-btn.active {
  background: var(--primary) !important;
  color: #fff !important;
  box-shadow: 0 2px 14px rgba(var(--theme-rgb),.4) !important;
}
.dash-compare-bar {
  background: rgba(0,0,0,.3) !important;
  border: 1px solid rgba(var(--theme-rgb),.1) !important;
  backdrop-filter: blur(8px) !important;
}

/* ─── TODAY CARDS ─────────────────────────────────────────── */
.dash-today-card, .dash-widget-panel {
  background: var(--surface2) !important;
  border: 1px solid var(--glass-border2) !important;
  border-radius: var(--r-lg) !important;
  box-shadow: var(--shadow-md) !important;
  backdrop-filter: var(--blur-xs) !important;
  -webkit-backdrop-filter: var(--blur-xs) !important;
}

/* ─── ROOM CARDS ──────────────────────────────────────────── */
.room-card {
  border-radius: var(--r-md) !important;
  transition: var(--tr) !important;
  box-shadow: var(--shadow-sm) !important;
}
.room-card:hover {
  border-color: rgba(var(--theme-rgb),.4) !important;
  transform: translateY(-3px) scale(1.01) !important;
  box-shadow: var(--shadow-glow) !important;
}

/* ─── HK / DEVICE CARDS ───────────────────────────────────── */
.hk-card, .kkm-device-card, .season-type-card {
  border-radius: var(--r-md) !important;
  transition: var(--tr) !important;
  box-shadow: var(--shadow-sm) !important;
}
.hk-card:hover, .kkm-device-card:hover {
  transform: translateY(-2px) !important;
  box-shadow: var(--shadow-md) !important;
}

/* ─── CASH STAT CARDS ─────────────────────────────────────── */
.cash-stat-card {
  background: var(--surface2) !important;
  border: 1px solid var(--glass-border2) !important;
  border-radius: var(--r-md) !important;
  box-shadow: var(--shadow-sm) !important;
  transition: var(--tr) !important;
}
.cash-stat-card:hover { transform: translateY(-2px) !important; box-shadow: var(--shadow-md) !important; }
.cash-stat-total { background: var(--surface) !important; border-color: rgba(var(--theme-rgb),.22) !important; }

/* ─── DOC CARDS ───────────────────────────────────────────── */
.doc-card {
  border-radius: var(--r-md) !important;
  border-left: 3px solid transparent !important;
  transition: var(--tr) !important;
}
.doc-card:hover {
  border-left-color: var(--primary) !important;
  transform: translateX(4px) !important;
  box-shadow: -4px 0 18px rgba(var(--theme-rgb),.14), var(--shadow-sm) !important;
}

/* ─── SECTION LABELS ──────────────────────────────────────── */
.settings-block-title {
  font-size: 11px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.2px !important;
  color: rgba(var(--theme-rgb),.65) !important;
  margin-bottom: 14px !important;
  padding-bottom: 8px !important;
  border-bottom: 1px solid rgba(var(--theme-rgb),.08) !important;
}
.lfield label {
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .6px !important;
  color: rgba(var(--theme-rgb),.65) !important;
}

/* ─── CHESS ───────────────────────────────────────────────── */
.chess-today-col .chess-header-cell {
  color: var(--primary) !important;
  box-shadow: 0 0 0 2px rgba(var(--theme-rgb),.28) inset !important;
  border-radius: 6px !important;
}
.chess-departing { box-shadow: 0 0 0 2px rgba(249,115,22,.5) !important; }

/* ─── RESERVATION ROWS ────────────────────────────────────── */
.res-row-new        td:first-child { box-shadow: inset 3px 0 0 rgba(251,191,36,.65) !important; }
.res-row-confirmed  td:first-child { box-shadow: inset 3px 0 0 rgba(56,168,224,.65) !important; }
.res-row-checked-in td:first-child { box-shadow: inset 3px 0 0 rgba(var(--theme-rgb),.85) !important; }

/* ─── REPORTS / PRICING TOOLBAR ───────────────────────────── */
.rep-method-bar { border-radius: var(--r-pill) !important; overflow: hidden !important; }
.rep-method-bar-fill { background: linear-gradient(90deg,var(--primary),var(--success)) !important; }
.pricing-toolbar, .reports-toolbar {
  background: var(--surface) !important;
  border: 1px solid var(--glass-border2) !important;
  border-radius: var(--r-md) !important;
  backdrop-filter: var(--blur-xs) !important;
}

/* ─── ORG / TEMPLATE CARDS ────────────────────────────────── */
.org-card, .template-item {
  background: var(--surface2) !important;
  border: 1px solid var(--glass-border2) !important;
  border-radius: var(--r-md) !important;
  transition: var(--tr) !important;
}
.org-card:hover, .template-item:hover { border-color: var(--glass-border) !important; }

/* ─── SETTINGS TABS ───────────────────────────────────────── */
.floor-tab, .cash-preset, .settings-tab {
  transition: var(--tr) !important;
  border-radius: var(--r-sm) !important;
}
.floor-tab.active, .settings-tab.active {
  background: rgba(var(--theme-rgb),.18) !important;
  color: var(--primary) !important;
  box-shadow: 0 0 0 1px rgba(var(--theme-rgb),.25) !important;
}

/* ─── TOGGLE / CHECKBOX ───────────────────────────────────── */
.toggle-input:checked + .toggle-track {
  background: var(--primary) !important;
  box-shadow: 0 0 12px rgba(var(--theme-rgb),.4) !important;
}

/* ─── SEARCH INPUT ────────────────────────────────────────── */
.search-input {
  background: var(--bg) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  border: 1px solid rgba(var(--theme-rgb),.2) !important;
  border-radius: var(--r-md) !important;
  transition: var(--tr) !important;
}
.search-input:focus {
  border-color: rgba(var(--theme-rgb),.55) !important;
  box-shadow: 0 0 0 3px rgba(var(--theme-rgb),.14) !important;
}

/* ─── DELTA BADGES ────────────────────────────────────────── */
.dash-delta { border-radius: var(--r-pill) !important; font-weight: 700 !important; }

/* ─── SCROLLBAR ───────────────────────────────────────────── */
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(var(--theme-rgb),.18); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: rgba(var(--theme-rgb),.42); }

/* ─── FMS INPUTS ──────────────────────────────────────────── */
.fms-field input, .fms-field select { border-radius: var(--r-md) !important; }

/* ─── MAIN AREA ───────────────────────────────────────────── */
.main { background: rgba(var(--theme-rgb),.04) !important; }
.content { padding: 24px !important; }

/* ─── MOBILE ──────────────────────────────────────────────── */
@media (max-width: 768px) {
  .stat-card .stat-value { font-size: 26px !important; letter-spacing: -.8px !important; }
  .section-title { font-size: 16px !important; }
  .dash-today-row { grid-template-columns: 1fr !important; }
  .dash-charts-row { grid-template-columns: 1fr !important; }
  .stats-grid { grid-template-columns: repeat(2,1fr) !important; }
}
