/* IZDEU — точечные правки компонентов в тёмной теме.
 *
 * Палитра приходит из общих токенов (taspa/taspa-tokens.css): переменные
 * --primary, --panel, --text… в style.css ссылаются на --tp-*, и тема
 * переключается сама. Здесь — только то, что в светлой теме задано у
 * компонентов конкретными цветами и в тёмной требует своего значения.
 */
html[data-theme="dark"] { scrollbar-color: #485667 var(--ink); }
html[data-theme="dark"] body { background: var(--ink); color: var(--text); }
html[data-theme="dark"] ::selection { color: #f2f7ff; background: #3d5a7d; }
html[data-theme="dark"] :focus-visible { outline-color: var(--primary-light); }
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea { color-scheme: dark; caret-color: var(--primary); }
html[data-theme="dark"] option { color: var(--text); background: var(--panel-2); }
html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder { color: var(--text-3); opacity: 1; }
html[data-theme="dark"] input:-webkit-autofill,
html[data-theme="dark"] input:-webkit-autofill:hover,
html[data-theme="dark"] input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--text);
  -webkit-box-shadow: 0 0 0 1000px var(--panel-2) inset;
  caret-color: var(--primary);
}

/* Quiet, layered graphite surfaces with the same blue identity. */
html[data-theme="dark"] .story-brand .mark { color: #d8eafe; background: #2d4563; }
html[data-theme="dark"] .foot { border-color: var(--line); }
html[data-theme="dark"] .hl { color: #d9ebff; background: #345070; }
html[data-theme="dark"] .sex-f { color: #d6afc5; }
html[data-theme="dark"] .fg-f { fill: #d6afc5; }
html[data-theme="dark"] .mark-ext.is-ig { color: #c2a8ea; border-color: #665477; background: #292431; }
html[data-theme="dark"] .mark-ext.is-warn,
html[data-theme="dark"] .ext-tag.is-warn { color: var(--tp-warning); border-color: #746143; background: var(--tp-warning-bg); }
html[data-theme="dark"] .mark-ext.is-bad,
html[data-theme="dark"] .ext-tag.is-bad,
html[data-theme="dark"] .badge-bad { border-color: #825058; color: var(--red); background: var(--tp-danger-bg); }
html[data-theme="dark"] .ext-alarm { background: var(--tp-danger-bg); }
html[data-theme="dark"] .split > div b { color: var(--tp-on-primary); text-shadow: none; }

/* Search: fields stay distinct from panels, with no bright white flashes. */
html[data-theme="dark"] #view-search :is(.console, .results, .empty) { background: var(--panel); border-color: var(--line); box-shadow: none; }
html[data-theme="dark"] #view-search :is(h1, .empty h2, .rcount, .rc-hint, .filter-group legend) { color: var(--text); }
html[data-theme="dark"] #view-search .qbox { background: var(--ink-2); border-color: var(--line-2); }
html[data-theme="dark"] #view-search .qbox:focus-within { background: var(--ink-2); border-color: var(--primary-light); box-shadow: var(--tp-focus); }
html[data-theme="dark"] #view-search #q::placeholder { color: var(--text-3); }
html[data-theme="dark"] #view-search :is(kbd, .query-mode select, .per select) { background: var(--panel-2); border-color: var(--line-2); color: var(--text-2); }
html[data-theme="dark"] #view-search :is(.active-filters, .search-help, .rhead, .pager, .result-skeleton) { border-color: var(--line); }
html[data-theme="dark"] #view-search .active-filters button { color: #c1daf5; background: #26374b; border-color: #3c536e; }
html[data-theme="dark"] #view-search .active-filters button:hover { background: #30455e; border-color: #6683a4; }
html[data-theme="dark"] #view-search .filters { background: var(--ink-2); border-color: var(--line); }
html[data-theme="dark"] #view-search :is(.f > span, .search-help summary, .result-open .rest) { color: var(--text-2); }
html[data-theme="dark"] #view-search :is(.f input, .f select) { background: var(--panel-2); border-color: var(--line-2); color: var(--text); }
html[data-theme="dark"] #view-search :is(.f input, .f select):focus,
html[data-theme="dark"] .login-card .f input:focus { background: var(--panel-2); border-color: var(--primary-light); box-shadow: var(--tp-focus); }
html[data-theme="dark"] #view-search .f input::placeholder { color: var(--text-3); }
html[data-theme="dark"] #view-search .filter-count { background: #3d5877; color: #e1efff; }
html[data-theme="dark"] #view-search .filter-actions .ghost,
html[data-theme="dark"] #view-search :is(.pbtn, #cancelSearch, #emptyFilters),
html[data-theme="dark"] #view-search .search-feedback button { color: var(--primary); background: var(--panel-2); border-color: var(--line-2); }
html[data-theme="dark"] #view-search .filter-actions .clear-all { background: transparent; border-color: transparent; color: var(--text-3); }
html[data-theme="dark"] #view-search .filter-actions .ghost:hover,
html[data-theme="dark"] #view-search .pbtn:hover:not(:disabled),
html[data-theme="dark"] #view-search :is(#cancelSearch, #emptyFilters):hover,
html[data-theme="dark"] #view-search .search-feedback button:hover { color: var(--text); background: var(--tp-info-bg); border-color: #6683a4; }
html[data-theme="dark"] #view-search .query-error { background: var(--tp-danger-bg); border-color: #cf7c85; color: #f1b4b9; }
html[data-theme="dark"] #view-search #q[aria-invalid="true"] { color: #f1b4b9; }
html[data-theme="dark"] #view-search .search-feedback { background: #1d2b3b; border-color: var(--line); color: var(--text-2); }
html[data-theme="dark"] #view-search .search-feedback-box:is(.is-error, .error) { color: #f1b4b9; }
html[data-theme="dark"] #view-search .search-draft { color: var(--tp-warning); }
html[data-theme="dark"] #view-search #refStatus { background: var(--tp-warning-bg); color: var(--tp-warning); border-color: #66563e; }
html[data-theme="dark"] #view-search #retryReferences { background: #3b3225; color: #efd5ad; border-color: #796747; }
html[data-theme="dark"] #view-search .rtable thead th { background: var(--panel-2); color: var(--text-2); }
html[data-theme="dark"] #view-search .rtable thead th.is-sorted { color: var(--primary); }
html[data-theme="dark"] #view-search .rtable tbody tr { border-color: var(--line); }
html[data-theme="dark"] #view-search .rtable tbody tr:hover,
html[data-theme="dark"] #view-search .rtable tbody tr.is-cursor { background: var(--tp-info-bg); }
html[data-theme="dark"] #view-search :is(.result-open-arrow, .result-copy, .rtable td.c-idx, .rcount .status-bad) { color: var(--text-3); }
html[data-theme="dark"] #view-search .result-copy:hover,
html[data-theme="dark"] #view-search .result-copy:focus-visible { background: #304158; border-color: #4a607c; color: #d0e5fc; }
html[data-theme="dark"] #view-search .empty-illustration { background: #253448; }
html[data-theme="dark"] #view-search .empty-tips > span { background: var(--panel-2); border-color: var(--line); }
html[data-theme="dark"] #view-search .result-skeleton i { background-image: linear-gradient(90deg, #25303b 25%, #344251 50%, #25303b 75%); }

/* The record panel remains a separate layer, including asynchronous states. */
html[data-theme="dark"] .drawer-scrim { background: rgb(5 8 12 / 68%); }
html[data-theme="dark"] #drawer { background: var(--panel); border-color: var(--line-2); box-shadow: -18px 0 60px rgb(0 0 0 / 28%); }
html[data-theme="dark"] #drawer .dr-top { background: var(--panel); border-color: var(--line); }
html[data-theme="dark"] #drawer .dr-fio { color: var(--text); }
html[data-theme="dark"] #drawer .drawer-stepper { border-color: var(--line); }
html[data-theme="dark"] #drawer :is(.drawer-stepper button, #retryCard) { color: var(--primary); background: var(--panel-2); border-color: var(--line-2); }
html[data-theme="dark"] #drawer .drawer-stepper button:hover:not(:disabled),
html[data-theme="dark"] #drawer #retryCard:hover { background: var(--tp-info-bg); border-color: #6683a4; }
html[data-theme="dark"] #drawer :is(.dr-position, .drawer-loading) { color: var(--text-3); }
html[data-theme="dark"] #drawer .drawer-error { color: var(--red); }
html[data-theme="dark"] #drawer .drawer-announcement { color: var(--teal); }
html[data-theme="dark"] #drawer :is(.tel, .ig, .rel, .ext-row, .iinseg b) { background: var(--panel-2); }
html[data-theme="dark"] #drawer :is(.rel:hover, .tel.is-matched) { background: var(--tp-info-bg); }
html[data-theme="dark"] #drawer .fg-wrap { background: var(--ink-2); }
html[data-theme="dark"] #drawer .leaflet-container { border-color: var(--line-2); background: var(--panel-2); }
html[data-theme="dark"] #drawer :is(.leaflet-control-zoom a, .leaflet-control-attribution) { color: var(--text); background: var(--panel-2); border-color: var(--line-2); }
html[data-theme="dark"] #drawer .leaflet-control-attribution a { color: var(--primary); }

/* Statistics, including every category, table, chart and birthday panel. */
html[data-theme="dark"] .st-workspace { --st-navy: var(--text); --st-muted: var(--text-3); --st-line: var(--line); }
/* Цвета серий и дорожек переключают токены (charts.css); текст графиков — светлый, не navy. */
html[data-theme="dark"] #view-stats { --c-text: var(--text); }
html[data-theme="dark"] :is(.st-summary-card, .st-scope-strip, .st-panel, .st-state, .c-panel, .c-tile) { color: var(--text); background: var(--panel); border-color: var(--line); }
html[data-theme="dark"] .st-main-number { color: #edf4fd; background: #24384f; box-shadow: inset 0 0 0 1px #354b66; }
html[data-theme="dark"] .st-main-top { color: #c7d8ed; }
html[data-theme="dark"] :is(.st-main-unit, .st-main-bottom) { color: #b2c5dd; }
html[data-theme="dark"] .st-main-art { opacity: .08; }
html[data-theme="dark"] :is(.st-heading p span, .st-summary-label, .st-summary-sub, .st-metric > span, .st-panel-head p, .st-panel-foot, .st-data-note, .st-section-heading p, .st-state p) { color: var(--text-3); }
html[data-theme="dark"] :is(.st-summary-arrow, .st-no-data) { color: #8498af; }
html[data-theme="dark"] .st-no-data strong { color: var(--text-2); }
html[data-theme="dark"] .st-panel h3 { color: var(--text); }
html[data-theme="dark"] :is(.st-panel-foot, .st-metric) { border-color: var(--line); }
html[data-theme="dark"] .st-panel-foot button { color: var(--primary); }
html[data-theme="dark"] .st-panel-foot button:hover { color: #d2e6fc; }
html[data-theme="dark"] :is(.st-btn, .st-icon-btn) { background: var(--panel-2); border-color: var(--line-2); color: var(--text-2); }
html[data-theme="dark"] :is(.st-btn:hover, .st-icon-btn:hover, .st-icon-btn[aria-pressed="true"]) { color: var(--primary); background: #293b51; border-color: #597391; }
html[data-theme="dark"] .st-btn-primary { background: var(--tp-primary); color: var(--tp-on-primary); border-color: var(--tp-primary); }
html[data-theme="dark"] .st-btn-primary:hover { background: var(--tp-primary-hover); color: var(--tp-on-primary); border-color: var(--tp-primary-hover); }
html[data-theme="dark"] .st-section-nav { background: var(--ink-2); border-color: var(--line); }
html[data-theme="dark"] .st-section-nav button { color: var(--text-3); }
html[data-theme="dark"] .st-section-nav button:hover { background: var(--panel-2); color: var(--text); }
html[data-theme="dark"] .st-section-nav button[aria-selected="true"] { background: #293b50; border-color: #3c546e; color: #c8e1fa; box-shadow: none; }
html[data-theme="dark"] .st-summary-card:hover { border-color: #4d6580; box-shadow: 0 5px 20px rgb(0 0 0 / 12%); }
html[data-theme="dark"] .st-summary-icon { color: var(--primary); background: #26384e; }
html[data-theme="dark"] .st-summary-card:nth-child(3) .st-summary-icon { background: #213933; color: #8bc8bb; }
html[data-theme="dark"] .st-summary-card:nth-child(4) .st-summary-icon { background: #302a40; color: #c2afe8; }
html[data-theme="dark"] .st-section-heading > span { background: var(--panel-2); border-color: var(--line); color: var(--text-2); }
html[data-theme="dark"] .st-spinner { border-color: var(--line-2); border-top-color: var(--primary); }
html[data-theme="dark"] .c-gridline { stroke: var(--line); }
html[data-theme="dark"] .c-line-dot { fill: var(--panel); }
html[data-theme="dark"] .c-column:hover .c-column-fill { fill: #b0d0f2; }
html[data-theme="dark"] .c-pyr-side { background: var(--c-track); }
html[data-theme="dark"] .c-scroll { scrollbar-color: #485b70 transparent; }
html[data-theme="dark"] .c-table thead th { background: var(--panel-2); }
html[data-theme="dark"] .c-table tbody tr:hover { background: var(--tp-info-bg); }
html[data-theme="dark"] .c-empty { background: var(--ink-2); }
html[data-theme="dark"] .c-heat-cell { background: color-mix(in srgb, var(--c-navy) calc(var(--c-opacity) * 100%), var(--c-track)); }
html[data-theme="dark"] :is(.c-heat-cell.is-zero, .c-heat-key b.is-zero) { background: var(--ink-2); border-color: var(--line-2); }
html[data-theme="dark"] :is(.c-heat-cell.is-missing, .c-heat-key b.is-missing, .c-bar-row.is-missing .c-bar-track) { background: repeating-linear-gradient(135deg, #1c242e 0 3px, #344152 3px 5px); }
html[data-theme="dark"] .c-heat-scale > i { background: linear-gradient(90deg, var(--c-track), var(--c-navy)); }
html[data-theme="dark"] .c-split > span { color: #102234; }

html[data-theme="dark"] :is(.bd-explorer, .bd-explorer h4, .bd-facts strong) { color: var(--text); }
html[data-theme="dark"] .bd-facts > div { background: var(--panel-2); border-color: var(--line); }
html[data-theme="dark"] :is(.bd-facts span, .bd-facts small, .bd-months button > span, .bd-days button > span, .bd-month-heading > span, .bd-hint, .bd-detail span, .bd-top-heading > span, .bd-top-list small, .bd-rank) { color: var(--text-3); }
html[data-theme="dark"] :is(.bd-months button, .bd-days button, .bd-top-list button) { color: var(--text-2); background: var(--panel-2); border-color: var(--line); }
html[data-theme="dark"] :is(.bd-months button, .bd-days button, .bd-top-list button):hover { background: var(--tp-info-bg); border-color: #597391; }
html[data-theme="dark"] .bd-months button i { background: #354353; }
html[data-theme="dark"] .bd-months button i b { background: #718eaf; }
html[data-theme="dark"] .bd-months button[aria-pressed="true"] { background: #293e55; border-color: #7099c4; color: #e0edfc; }
html[data-theme="dark"] .bd-months button[aria-pressed="true"] > span { color: #bfd8f2; }
html[data-theme="dark"] .bd-months button[aria-pressed="true"] i b { background: #a1c6ed; }
html[data-theme="dark"] .bd-days button[aria-pressed="true"] { background: #a1c6ed; border-color: #a1c6ed; color: #13263c; }
html[data-theme="dark"] .bd-days button[aria-pressed="true"] > span { color: #284663; }
html[data-theme="dark"] .bd-days button.is-unknown:not([aria-pressed="true"]) { background: var(--ink-2); }
html[data-theme="dark"] .bd-detail { background: #223247; border-color: #384e69; border-left-color: #91b9e2; }
html[data-theme="dark"] .bd-detail span { color: #b0c2d8; }
html[data-theme="dark"] .bd-warning { background: var(--tp-warning-bg); border-color: #6b583e; color: var(--tp-warning); }
html[data-theme="dark"] .bd-top { border-color: var(--line); }
html[data-theme="dark"] .st-panel[data-panel="calendar"] .st-icon-btn { color: var(--primary); }

/* Login keeps its illustration and composition, now with layered dark paper. */
html[data-theme="dark"] .login-wrap { background: var(--panel); border-color: var(--line); box-shadow: 0 20px 60px rgb(0 0 0 / 18%); }
html[data-theme="dark"] .login-story { background: #181f28; border-color: var(--line); }
html[data-theme="dark"] .login-panel { background: var(--panel); }
html[data-theme="dark"] :is(.story-content h1, .login-card h2, .story-brand) { color: var(--text); }
html[data-theme="dark"] .story-content h1 span { color: var(--primary); }
html[data-theme="dark"] .login-card .f input { background: var(--panel-2); border-color: var(--line-2); }
html[data-theme="dark"] .art-grid { background-image: linear-gradient(#7e9cbd12 1px, transparent 1px), linear-gradient(90deg, #7e9cbd12 1px, transparent 1px); }
html[data-theme="dark"] .art-record { background: #2b394b; border-color: #4a617c; box-shadow: 0 15px 32px rgb(0 0 0 / 20%); }
html[data-theme="dark"] .art-record-back { background: #203043; border-color: #354d69; }
html[data-theme="dark"] .art-record i { background: #93acc8; }
html[data-theme="dark"] .login-err { background: var(--tp-danger-bg); color: #f1b4b9; }

@media (max-width: 760px) {
  html[data-theme="dark"] #view-search .rtable tbody tr { background: var(--panel-2); }
  html[data-theme="dark"] #view-search .rtable tbody tr:hover,
  html[data-theme="dark"] #view-search .rtable tbody tr.is-cursor { background: var(--tp-info-bg); }
}

