/* Тема xrent (13.10.2026, stav-8a по слову пользователя «дизайн враба, только цвета»):
   дизайн и каркас целиком из app.css/base.css враба, здесь только палитра shadcn zinc dark.
   Подключать ПОСЛЕ theme-light.css. Светлый блок (переключатель темы) оставлен прежним, медным.
   Прошлая медно-графитовая версия: theme-xrent.css.bak-20261012-zinc. */

:root {
  --radius-card: 14px;
  --color-bg: #0a0a0a;
  --color-bg-elevated: #0f0f0f;
  --color-bg-card: #141414;
  --color-border: rgba(255,255,255,.10);
  --color-border-strong: rgba(255,255,255,.18);
  --color-fg: #fafafa;
  --color-fg-muted: #a1a1a1;
  --color-fg-dim: #71717a;
  --color-accent: #fafafa;
  --color-accent-strong: #ffffff;
  --color-accent-fg: #0a0a0a;
  --color-warning: #d9a441;
  --color-danger: #e5635a;
}
:root[data-theme="light"] {
  --color-bg: #f4efe8;
  --color-bg-elevated: #fffdfa;
  --color-bg-card: #fbf8f3;
  --color-border: #e6ddd1;
  --color-border-strong: #cdbfae;
  --color-fg: #221c17;
  --color-fg-muted: #5f554b;
  --color-fg-dim: #7d7267;
  --color-accent: #b4532a;
  --color-accent-strong: #99431f;
  --color-accent-fg: #ffffff;
  --color-warning: #8a5b06;
  --color-danger: #b5372f;
  --muted: #5f554b;
}

/* ---- каркас: радиус карточек 14, тени нейтральные, активный пункт меню white/10 ---- */
.panel, .kpi, .machine-card, .quick-card, .tenant-tile, .tenant-card, .login-card, .empty-card { border-radius: var(--radius-card); }
.panel { box-shadow: 0 1px 2px rgba(0,0,0,.05); }
[data-theme="light"] .panel { box-shadow: 0 1px 0 #ffffffcc inset, 0 12px 32px -26px #5a3b2466; }
[data-theme="light"] body { background:
  radial-gradient(1200px 500px at 10% -10%, #fff7ee 0%, transparent 60%),
  radial-gradient(900px 400px at 100% 0%, #f1e4d6 0%, transparent 55%),
  var(--color-bg); }
[data-theme="light"] .sidebar { background: #fbf7f1; border-right-color: var(--color-border); }
[data-theme="light"] .topbar { background: #fbf7f1e6; backdrop-filter: blur(8px); }
.nav-link.active { color: var(--color-fg); background: color-mix(in srgb, var(--color-accent) 10%, transparent); border-color: transparent; }
.nav-link:hover { background: color-mix(in srgb, var(--color-fg) 5%, transparent); }
::selection { background: color-mix(in srgb, var(--color-accent) 28%, transparent); color: var(--color-fg); }
:focus-visible { outline-color: var(--color-fg-muted); }

/* ---- марка: xrent без кролика, квадратный знак ---- */
.brand .brand-logo { display: none; }
.brand::before { content: "x"; display: grid; place-items: center; flex: 0 0 36px; height: 36px; border-radius: 10px;
  background: var(--color-accent); color: var(--color-accent-fg); font: 800 20px/1 var(--font-display); letter-spacing: -1px; }
.brand span .accent { color: var(--color-accent); }
.login-brand .brand-logo { display: none; }

/* ---- светлая тема: таблицы и статусы на бумаге (без изменений) ---- */
[data-theme="light"] th { background: #f6f0e8; color: var(--color-fg-dim); }
[data-theme="light"] tbody tr:nth-child(even) td { background: #faf6f0; }
[data-theme="light"] tbody tr:hover td { background: #f3ebe0; }
[data-theme="light"] .meter { background: #e9dfd2; }
[data-theme="light"] .status-pill.up, [data-theme="light"] .state-ok, [data-theme="light"] .tag.good { color: #2f6b3a; background: #e6f1e3; border-color: #cfe3cb; }
[data-theme="light"] .status-pill.down, [data-theme="light"] .state-error, [data-theme="light"] .tag.danger { color: #9b2f28; background: #f8e5e2; border-color: #efcbc6; }
[data-theme="light"] .status-dot.ok { background: #3d8a4a; box-shadow: 0 0 0 3px #3d8a4a22; }
[data-theme="light"] .status-dot.bad { background: #c23b33; box-shadow: 0 0 0 3px #c23b3322; }

/* ---- кнопки: основная белая с чёрным текстом ---- */
button:not(.icon-button):not(.secondary):not(.btn-danger), .button-primary { background: var(--color-accent); color: var(--color-accent-fg); border-color: var(--color-accent); transition: background .18s, transform .12s; }
button:not(.icon-button):not(.secondary):not(.btn-danger):hover { background: var(--color-accent-strong); }
button:active, .quick-card:active, .machine-card:active { transform: translateY(1px); }
.quick-card:hover, .machine-card:hover, .tenant-card:hover { border-color: color-mix(in srgb, var(--color-accent) 45%, var(--color-border)); }

/* ---- мята, захардкоженная в app.css/base.css/charts.css/traffic.css (#56dbcb…), переводится на акцент темы ---- */
.summary-value .summary-badge { background: color-mix(in srgb, var(--color-accent) 6%, transparent); }
.tenant-card:hover, .machine-card:hover, .quick-card:hover, .tenant-tile:hover { border-color: color-mix(in srgb, var(--color-accent) 40%, transparent); }
.quick-card:hover { background: color-mix(in srgb, var(--color-accent) 4%, transparent); }
.route-symbol, .empty-symbol, .step-num, .hint-bar { border-color: color-mix(in srgb, var(--color-accent) 16%, transparent); background: color-mix(in srgb, var(--color-accent) 5%, transparent); }
.op[open] { border-color: color-mix(in srgb, var(--color-accent) 28%, transparent); }
.slot-pick:has(input:checked), .tag.accent, .chip.is-on { border-color: color-mix(in srgb, var(--color-accent) 22%, transparent); background: color-mix(in srgb, var(--color-accent) 6%, transparent); }
.secondary:hover { border-color: color-mix(in srgb, var(--color-accent) 40%, transparent); background: color-mix(in srgb, var(--color-accent) 5%, transparent); }
.periods a:hover, .periods a[aria-current], .periods button.is-active, .periods button[aria-pressed="true"], .period-links a.is-active { background: color-mix(in srgb, var(--color-accent) 8%, transparent); }
.nav-badge { background: color-mix(in srgb, var(--color-accent) 10%, transparent); color: var(--color-fg); }
.login-page { background: var(--color-bg); }
.form-stack input:focus, .form-stack select:focus, .form-stack textarea:focus, .field input:focus, .field select:focus, .field textarea:focus, .filters input[type="search"]:focus { box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 12%, transparent); }
tbody tr:hover td { background: color-mix(in srgb, var(--color-fg) 3%, transparent); }

/* ---- «Защита» g1: табы-фильтры и «Сбросить масштаб» тихие, тумблер белый с чёрным ползунком ---- */
.guard-tabs button:not(.icon-button):not(.secondary):not(.btn-danger) { background: transparent; color: var(--color-fg-muted); border-color: transparent; }
.guard-tabs button:not(.icon-button):not(.secondary):not(.btn-danger):hover { background: transparent; color: var(--color-fg); }
.guard-tabs button.on:not(.icon-button):not(.secondary):not(.btn-danger) { background: var(--color-bg-card); color: var(--color-fg); box-shadow: 0 0 0 1px var(--color-border-strong); }
.guard-tabs button.on:not(.icon-button):not(.secondary):not(.btn-danger):hover { background: var(--color-bg-card); }
button.guard-reset:not(.icon-button):not(.secondary):not(.btn-danger), button.guard-reset:not(.icon-button):not(.secondary):not(.btn-danger):hover { background: transparent; color: var(--color-fg-muted); border-color: transparent; }
.guard-toggle i::after { background: var(--color-accent-fg); }
.guard-toggle.off i { background: var(--color-border-strong); } .guard-toggle.off i::after { background: var(--color-fg); }
