html[data-global-theme="dark"] {
    --bg: #17191c;
    --surface: #202329;
    --surface-soft: #2a2e35;
    --text: #f2eee8;
    --muted: #c3bbb1;
    --muted-strong: #ded7cf;
    --line: #4a4f58;
    --control-line: #858b95;
    --accent: #d0b274;
    --accent-soft: #a68a61;
    --on-accent: #17191c;
    --red: #ffaaaa;
    color-scheme: dark;
}

html[data-global-theme="dark"] body,
html[data-global-theme="dark"] main {
    background-color: var(--bg) !important;
    color: var(--text) !important;
}

html[data-global-theme="dark"] aside,
html[data-global-theme="dark"] section,
html[data-global-theme="dark"] article,
html[data-global-theme="dark"] fieldset,
html[data-global-theme="dark"] details,
html[data-global-theme="dark"] .card,
html[data-global-theme="dark"] .panel,
html[data-global-theme="dark"] .admin-card {
    border-color: var(--line) !important;
}

html[data-global-theme="dark"] input,
html[data-global-theme="dark"] select,
html[data-global-theme="dark"] textarea {
    border-color: var(--control-line) !important;
    background: var(--surface) !important;
    color: var(--text) !important;
}

html[data-global-theme="dark"] button:not(.occupancy-day),
html[data-global-theme="dark"] a.button {
    border-color: var(--control-line);
}

html[data-global-theme="dark"] table,
html[data-global-theme="dark"] th,
html[data-global-theme="dark"] td {
    border-color: var(--line) !important;
}

html[data-global-theme="dark"] th {
    background: var(--surface-soft) !important;
    color: var(--text) !important;
}

html[data-global-theme="dark"] a {
    color: #e2c487;
}

html[data-global-theme="dark"] img,
html[data-global-theme="dark"] picture,
html[data-global-theme="dark"] video,
html[data-global-theme="dark"] canvas {
    filter: none !important;
}

html[data-global-theme="dark"] blockquote,
html[data-global-theme="dark"] .article-note,
html[data-global-theme="dark"] .article-callout,
html[data-global-theme="dark"] .article-highlight {
    border-color: #8f764e !important;
    background: #29251f !important;
    color: var(--text) !important;
}

html[data-global-theme="dark"] .calendar-sections,
html[data-global-theme="dark"] .calendar-admin section,
html[data-global-theme="dark"] .weekly-day,
html[data-global-theme="dark"] .weekly-day[open] summary,
html[data-global-theme="dark"] .occupancy-details,
html[data-global-theme="dark"] .empty-state {
    background: var(--surface) !important;
    color: var(--text) !important;
    border-color: var(--line) !important;
}

html[data-global-theme="dark"] .schedule-row,
html[data-global-theme="dark"] .group-summary,
html[data-global-theme="dark"] .appointment-row,
html[data-global-theme="dark"] .occupancy-entry {
    border-color: var(--line) !important;
}

html[data-global-theme="dark"] .weekly-day summary::after,
html[data-global-theme="dark"] .weekly-day summary small,
html[data-global-theme="dark"] .occupancy-entry small {
    color: var(--muted) !important;
}

/* Статусы календаря остаются различимыми по цвету и по текстовой подписи. */
html[data-global-theme="dark"] .occupancy-day.status-empty {
    background: #2a2e35 !important;
    color: #c5c9cf !important;
}

html[data-global-theme="dark"] .occupancy-day.status-available {
    border-color: #80a77a !important;
    background: #213528 !important;
    color: #dcf2df !important;
}

html[data-global-theme="dark"] .occupancy-day.status-limited {
    border-color: #d4a75f !important;
    background: #42351f !important;
    color: #ffe9b8 !important;
}

html[data-global-theme="dark"] .occupancy-day.status-full {
    border-color: #9ba1aa !important;
    background: #0e0f11 !important;
    color: #ffffff !important;
}

html[data-global-theme="dark"] .interval-status.is-active,
html[data-global-theme="dark"] .status-text {
    background: #213528 !important;
    color: #dcf2df !important;
}

html[data-global-theme="dark"] .interval-status.is-off {
    background: #343941 !important;
    color: #d5d8dc !important;
}

/* Клиентский календарь: светлый текст не должен попадать на светлую ячейку. */
html[data-global-theme="dark"] .booking-day {
    border-color: #59606a !important;
    background: #202329 !important;
    color: #d9dde2 !important;
}

html[data-global-theme="dark"] .booking-day.has-times,
html[data-global-theme="dark"] .group-event-day.has-events {
    border-color: #80a77a !important;
    background: #213528 !important;
    color: #e4f5e6 !important;
}

html[data-global-theme="dark"] .booking-day:disabled {
    color: #9ea4ac !important;
    opacity: 0.75;
}

html[data-global-theme="dark"] .booking-day[aria-pressed="true"],
html[data-global-theme="dark"] .group-event-day.is-selected {
    border-color: #e1bd75 !important;
    background: #574425 !important;
    color: #ffffff !important;
}

html[data-global-theme="dark"] .booking-selection-summary {
    border-color: #80a77a !important;
    background: #213528 !important;
    color: #e4f5e6 !important;
}

html[data-global-theme="dark"] .booking-month-tab[aria-selected="true"] {
    border-color: #d0b274 !important;
    background: #3a3023 !important;
    color: #ffffff !important;
}

html[data-global-theme="dark"] :focus-visible {
    outline-color: #f0cf8d !important;
}

@media print {
    html[data-global-theme="dark"] {
        --bg: #fff;
        --surface: #fff;
        --text: #000;
        color-scheme: light;
    }
}
