/* ── Theme tokens (light defaults; brand palette lives in index.html :root) ── */
:root,
[data-theme="light"] {
  --heading: var(--navy);
  --link: var(--teal);
  --accent-blue: #1a3a6b;
  --chart-line: var(--teal);
  --surface-hover: #eef0f3;
  --surface-elevated: #f0f2f5;
  --overlay-bg: rgba(21, 35, 63, 0.4);
  --overlay-bg-light: rgba(21, 35, 63, 0.3);
  --chart-grid: #e5e8ed;
  --chart-bar: #1a3a6b;
  --chart-line-fill: rgba(0, 137, 123, 0.1);
  --chart-palette-1: var(--teal);
  --chart-palette-2: var(--accent-blue);
  --chart-palette-3: var(--amber);
  --chart-palette-4: var(--praha-red);
  --chart-palette-5: #243450;
  --chart-palette-6: var(--teal-300);
  --input-bg: var(--bg);
  --topbar-shadow: 0 1px 0 rgba(21, 35, 63, 0.04);
  --toggle-track-off: #e9e9ea;
  --toggle-track-on: #34c759;
  --toggle-knob: #ffffff;
  --toggle-icon: #8e8e93;
  --toggle-icon-active: #ffffff;
  --shimmer-mid: #eceef2;
  --border-hover: #d1d5db;
  --border-strong: #d8dce3;
  --warning-text: #b45309;
  --danger-hover-bg: #fef2f2;
  --praha-red-hover: #c40025;
  --teal-hover: #00796b;
  --badge-teal-bg: rgba(0, 137, 123, 0.12);
  --badge-teal-text: var(--teal);
  --badge-ho-bg: rgba(21, 35, 63, 0.12);
  --badge-ho-text: var(--accent-blue);
  --badge-warning-bg: rgba(245, 158, 11, 0.12);
  --badge-danger-bg: rgba(220, 38, 38, 0.1);
  --cal-p-bg: rgba(0, 137, 123, 0.15);
  --cal-p-color: var(--teal);
  --cal-h-bg: var(--badge-ho-bg);
  --cal-h-color: var(--badge-ho-text);
  --cal-d-bg: rgba(245, 158, 11, 0.15);
  --cal-d-color: var(--warning-text);
  --cal-n-bg: var(--badge-danger-bg);
  --cal-n-color: var(--danger);
  --cal-c-bg: rgba(26, 58, 107, 0.12);
  --cal-c-color: var(--accent-blue);
  --cal-x-bg: rgba(127, 29, 29, 0.12);
  --cal-x-color: #b91c1c;
  --table-row-hover-bg: rgba(0, 137, 123, 0.05);
  --theme-transition: var(--duration-normal) var(--ease-standard);
}

[data-theme="dark"] {
  --bg: #0d1117;
  --surface: #161b22;
  --border: #30363d;
  --text: #e6edf3;
  --muted: #8b949e;
  --heading: #e6edf3;
  --link: #58a6ff;
  --accent-blue: #79c0ff;
  --chart-line: var(--teal-300);
  --surface-hover: #21262d;
  --surface-elevated: #1c2128;
  --overlay-bg: rgba(0, 0, 0, 0.65);
  --overlay-bg-light: rgba(0, 0, 0, 0.55);
  --chart-grid: #30363d;
  --chart-bar: #58a6ff;
  --chart-line-fill: rgba(0, 191, 165, 0.15);
  --chart-palette-1: var(--teal-300);
  --chart-palette-2: #58a6ff;
  --chart-palette-3: var(--amber);
  --chart-palette-4: #ff6b81;
  --chart-palette-5: #8b949e;
  --chart-palette-6: #3fb950;
  --input-bg: #0d1117;
  --shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.45);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.55);
  --topbar-shadow: 0 1px 0 rgba(255, 255, 255, 0.04);
  --toggle-track-off: #39393d;
  --toggle-track-on: #34c759;
  --toggle-knob: #ffffff;
  --toggle-icon: #636366;
  --toggle-icon-active: #ffffff;
  --shimmer-mid: #21262d;
  --border-hover: #484f58;
  --border-strong: #484f58;
  --warning-text: #fbbf24;
  --danger-hover-bg: rgba(220, 38, 38, 0.12);
  --badge-ho-bg: rgba(88, 166, 255, 0.12);
  --badge-ho-text: #79c0ff;
  --cal-h-bg: rgba(88, 166, 255, 0.15);
  --cal-h-color: #79c0ff;
  --cal-c-bg: rgba(139, 148, 158, 0.2);
  --cal-c-color: #c9d1d9;
  --table-row-hover-bg: rgba(0, 191, 165, 0.08);
}

/* ── Smooth theme transitions ─────────────────────────────── */
html {
  color-scheme: light;
}

html[data-theme="dark"] {
  color-scheme: dark;
}

html,
body,
.topbar,
.card,
.stat-card,
.chart-card,
.table-wrap,
.filter-bar,
.drawer,
.copilot-panel,
.badge-onpremise,
.btn-icon,
.approval-item,
.attention-panel,
.report-builder,
.integration-card,
.calendar-grid-wrap,
.copilot-msg.assistant,
.copilot-chip,
.copilot-input-area input,
.topbar-search input,
.data-table th,
.data-table td {
  transition:
    background-color var(--theme-transition),
    color var(--theme-transition),
    border-color var(--theme-transition),
    box-shadow var(--theme-transition);
}

/* ── Dark mode text & surface overrides ───────────────────── */
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] .topbar-section-title,
[data-theme="dark"] .card-title,
[data-theme="dark"] .chart-card .chart-title,
[data-theme="dark"] .stat-card .stat-value,
[data-theme="dark"] .data-table th,
[data-theme="dark"] .calendar-week-label,
[data-theme="dark"] .calendar-grid th,
[data-theme="dark"] .calendar-grid td:first-child,
[data-theme="dark"] .approval-item .approval-subject,
[data-theme="dark"] .timeline-item .timeline-label,
[data-theme="dark"] .integration-card .int-name,
[data-theme="dark"] #attention-panel-body .attention-name,
[data-theme="dark"] .predreda-list .attention-name {
  color: var(--heading);
}

[data-theme="dark"] .topbar {
  box-shadow: var(--topbar-shadow);
}

[data-theme="dark"] .data-table th:hover {
  background: var(--surface-hover);
}

[data-theme="dark"] .data-table tbody tr:hover {
  background: var(--table-row-hover-bg);
}

[data-theme="dark"] .stat-card:hover {
  border-color: var(--border-hover);
}

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

[data-theme="dark"] .approval-item:hover {
  border-color: var(--border-hover);
}

[data-theme="dark"] .btn-danger:hover {
  background: var(--danger-hover-bg);
}

[data-theme="dark"] .badge-warning,
[data-theme="dark"] .badge-dovolena,
[data-theme="dark"] .badge-ceka,
[data-theme="dark"] .badge-blizi-se,
[data-theme="dark"] .badge-zadost,
[data-theme="dark"] .badge-vyuctovani {
  color: var(--warning-text);
}

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

[data-theme="dark"] .cal-cell.D {
  color: var(--warning-text);
}

[data-theme="dark"] .chart-card.is-loading::after {
  background: linear-gradient(90deg, var(--bg) 0%, var(--shimmer-mid) 50%, var(--bg) 100%);
}

[data-theme="dark"] .copilot-chip:hover {
  background: var(--surface-hover);
  border-color: var(--border-hover);
}

[data-theme="dark"] .drawer-overlay {
  background: var(--overlay-bg);
}

[data-theme="dark"] .copilot-overlay {
  background: var(--overlay-bg-light);
}

[data-theme="dark"] .drawer,
[data-theme="dark"] .copilot-panel {
  box-shadow: -8px 0 32px rgba(0, 0, 0, 0.45);
}

[data-theme="dark"] .topbar-search input,
[data-theme="dark"] .filter-bar select,
[data-theme="dark"] .filter-bar input[type="text"],
[data-theme="dark"] .filter-select,
[data-theme="dark"] .filter-input,
[data-theme="dark"] .form-field select,
[data-theme="dark"] .form-field input,
[data-theme="dark"] .form-input {
  background: var(--input-bg);
}

[data-theme="dark"] .perm-matrix th {
  background: var(--surface-elevated);
  color: var(--heading);
}

[data-theme="dark"] .perm-matrix .perm-role-col,
[data-theme="dark"] .perm-matrix th.perm-role {
  background: var(--surface);
  color: var(--heading);
}

[data-theme="dark"] .perm-matrix thead .perm-role-col {
  background: var(--surface-elevated);
}

[data-theme="dark"] .gov-pill strong,
[data-theme="dark"] .audit-date {
  color: var(--heading);
}

[data-theme="dark"] .cell-primary,
[data-theme="dark"] .cell-name,
[data-theme="dark"] .card-subtitle,
[data-theme="dark"] .week-label,
[data-theme="dark"] .epk-subject,
[data-theme="dark"] .timeline-title,
[data-theme="dark"] .funnel-step .funnel-count,
[data-theme="dark"] .dochazka-year-table tfoot td,
[data-theme="dark"] .tab.active .tab-count {
  color: var(--heading);
}

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

[data-theme="dark"] a:hover {
  color: #79c0ff;
}

[data-theme="dark"] .tab.active {
  color: var(--link);
}

/* Sidebar stays navy in both themes — no overrides needed */

/* ── Apple-style theme toggle ─────────────────────────────── */
.theme-toggle {
  position: relative;
  flex-shrink: 0;
  width: 51px;
  height: 31px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.theme-toggle:focus-visible .theme-toggle-track {
  outline: 2px solid var(--teal);
  outline-offset: 2px;
}

.theme-toggle-track {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 16px;
  background: var(--toggle-track-off);
  transition: background-color var(--theme-transition);
  box-shadow: inset 0 0 0 0.5px rgba(0, 0, 0, 0.04);
}

.theme-toggle.is-dark .theme-toggle-track {
  background: var(--toggle-track-on);
}

.theme-toggle-icons {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 7px;
  pointer-events: none;
}

.theme-toggle-icons svg {
  width: 14px;
  height: 14px;
  stroke-width: 2;
  color: var(--toggle-icon);
  transition: color var(--theme-transition), opacity var(--theme-transition);
}

.theme-toggle:not(.is-dark) .theme-icon-sun {
  color: var(--amber);
  opacity: 1;
}

.theme-toggle:not(.is-dark) .theme-icon-moon {
  opacity: 0.45;
}

.theme-toggle.is-dark .theme-icon-sun {
  opacity: 0.45;
}

.theme-toggle.is-dark .theme-icon-moon {
  color: var(--toggle-icon-active);
  opacity: 1;
}

.theme-toggle-knob {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 27px;
  height: 27px;
  border-radius: 50%;
  background: var(--toggle-knob);
  box-shadow:
    0 3px 8px rgba(0, 0, 0, 0.15),
    0 1px 1px rgba(0, 0, 0, 0.16);
  transition: transform var(--theme-transition);
  will-change: transform;
}

.theme-toggle.is-dark .theme-toggle-knob {
  transform: translateX(20px);
}

@media (prefers-reduced-motion: reduce) {
  .theme-toggle-knob,
  .theme-toggle-track,
  .theme-toggle-icons svg {
    transition: none;
  }
}
