/* ==========================================================================
   theme-board.css — направление «C: Доска»
   Переопределяет токены glass.css и ключевые компоненты.
   Грузится последним: после glass.css, panel.css, workspace.css, calendar-day.css.
   Селекторы с префиксом `:root body` / `body` повышают специфичность без !important.
   Единственный !important — сброс backdrop-filter внутри body.
   ========================================================================== */

/* ---------- шрифт IBM Plex Sans (self-hosted, @fontsource/ibm-plex-sans 5.1.1, woff2) ---------- */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/static/fonts/ibm-plex-sans-cyrillic-400-normal.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/static/fonts/ibm-plex-sans-latin-400-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/static/fonts/ibm-plex-sans-cyrillic-500-normal.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/static/fonts/ibm-plex-sans-latin-500-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/static/fonts/ibm-plex-sans-cyrillic-600-normal.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/static/fonts/ibm-plex-sans-latin-600-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/static/fonts/ibm-plex-sans-cyrillic-700-normal.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/static/fonts/ibm-plex-sans-latin-700-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------- 1. ТОКЕНЫ: светлая тема (по умолчанию) ---------- */
:root,
html[data-theme="light"] {
  color-scheme: light;
  --canvas: #F3F5F9;
  --canvas-deep: #EAEEF5;
  --ink: #14213D;
  --ink-2: #14213D;
  --muted: #4A5878;
  --muted-2: #5B6B8A;
  --accent: #0F766E;
  --accent-2: #0B5C56;
  --accent-soft: rgba(15, 118, 110, .12);
  --accent-ink: #FFFFFF;
  --lime: #D5EDEA;
  --lime-2: #BFE3DE;
  --green: #166534;
  --amber: #92400E;
  --danger: #B91C1C;

  --glass: #FFFFFF;
  --glass-heavy: #FFFFFF;
  --glass-solid: #FFFFFF;
  --glass-soft: #EAEEF5;
  --glass-hover: #EAEEF5;
  --stroke: #DCE2EC;
  --stroke-strong: #C5CEDD;
  --stroke-accent: rgba(15, 118, 110, .32);
  --edge-top: #FFFFFF;
  --edge-bottom: #DCE2EC;
  --field: #FFFFFF;

  --shadow: 0 1px 2px rgba(20, 33, 61, .06);
  --shadow-soft: 0 1px 2px rgba(20, 33, 61, .06);
  --shadow-lift: 0 2px 6px rgba(20, 33, 61, .08);
  --accent-glow: var(--accent-soft);
  --focus: 0 0 0 2px var(--canvas), 0 0 0 4px var(--accent);

  --glass-blur: 0px;
  --glass-blur-heavy: 0px;
  --radius-xl: 14px;
  --radius-lg: 14px;
  --radius-md: 10px;
  --radius-sm: 10px;

  --font: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-head: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-display: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* ---------- 1b. ТОКЕНЫ: тёмная тема, явный выбор ---------- */
:root[data-theme="dark"] {
  color-scheme: dark;
  --canvas: #0E1524;
  --canvas-deep: #0A101C;
  --ink: #E6ECF7;
  --ink-2: #E6ECF7;
  --muted: #A9B6CC;
  --muted-2: #8D9BB5;
  --accent: #2DD4BF;
  --accent-2: #14B8A6;
  --accent-soft: rgba(45, 212, 191, .14);
  --accent-ink: #0B1220;
  --lime: #14463F;
  --lime-2: #1B5C53;
  --green: #4ADE80;
  --amber: #FBBF24;
  --danger: #F87171;

  --glass: #172137;
  --glass-heavy: #172137;
  --glass-solid: #172137;
  --glass-soft: #1E2A44;
  --glass-hover: #24324F;
  --stroke: #2A3652;
  --stroke-strong: #3B4A6B;
  --stroke-accent: rgba(45, 212, 191, .35);
  --edge-top: #2A3652;
  --edge-bottom: #0A101C;
  --field: #0E1524;

  --shadow: 0 1px 2px rgba(0, 0, 0, .35);
  --shadow-soft: 0 1px 2px rgba(0, 0, 0, .35);
  --shadow-lift: 0 4px 12px rgba(0, 0, 0, .4);
  --focus: 0 0 0 2px var(--canvas), 0 0 0 4px var(--accent);
}

/* ---------- 1c. ТОКЕНЫ: тёмная тема по системной настройке (без явного data-theme=light) ---------- */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --canvas: #0E1524;
    --canvas-deep: #0A101C;
    --ink: #E6ECF7;
    --ink-2: #E6ECF7;
    --muted: #A9B6CC;
    --muted-2: #8D9BB5;
    --accent: #2DD4BF;
    --accent-2: #14B8A6;
    --accent-soft: rgba(45, 212, 191, .14);
    --accent-ink: #0B1220;
    --lime: #14463F;
    --lime-2: #1B5C53;
    --green: #4ADE80;
    --amber: #FBBF24;
    --danger: #F87171;

    --glass: #172137;
    --glass-heavy: #172137;
    --glass-solid: #172137;
    --glass-soft: #1E2A44;
    --glass-hover: #24324F;
    --stroke: #2A3652;
    --stroke-strong: #3B4A6B;
    --stroke-accent: rgba(45, 212, 191, .35);
    --edge-top: #2A3652;
    --edge-bottom: #0A101C;
    --field: #0E1524;

    --shadow: 0 1px 2px rgba(0, 0, 0, .35);
    --shadow-soft: 0 1px 2px rgba(0, 0, 0, .35);
    --shadow-lift: 0 4px 12px rgba(0, 0, 0, .4);
    --focus: 0 0 0 2px var(--canvas), 0 0 0 4px var(--accent);
  }
}

/* ---------- 2. ХОЛСТ: без декоративных градиентов и сеток ---------- */
:root body,
:root[data-theme] body,
:root:not([data-theme="light"]) body {
  background: var(--canvas);
  background-attachment: scroll;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.5;
}
:root body::before,
:root body::after {
  content: none;
  display: none;
  background: none;
}
/* блюр выключен везде внутри body */
body *,
body *::before,
body *::after {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* ---------- 3. ТИПОГРАФИЯ ---------- */
:root body :is(button, input, select, textarea, .btn, .panel-btn, .panel-tab) {
  font-family: var(--font);
}
:root body :is(h1, h2, h3) {
  font-family: var(--font-head);
  font-weight: 700;
  letter-spacing: -.01em;
}
:root body .panel-sec p,
:root body .panel-modal-head p,
:root body .panel-btn {
  font-size: 13px;
}
:root body .panel-tab {
  font-size: 14px;
}
/* мелкий текст 9–11px поднимаем до 12px (текст, не счётчики иконок) */
:root body .eyebrow,
:root body .nav-section,
:root body .nav-section > span,
:root body .side-meta,
:root body label,
:root body .catalog-help,
:root body .table-scroll-hint,
:root body .glass-toggle,
:root body .settings-home-card > span,
:root body .settings-home-card > small,
:root body .settings-home-card > b,
:root body .engineer-flag,
:root body .qa-issue-resolved-note,
:root body .pub-actions small,
:root body .topic-action-buttons .btn,
:root body .catalog-path,
:root body .calendar-event,
:root body .workspace-tab,
:root body .workspace-readonly-status span,
:root body .workspace-readonly-status small,
:root body .workspace-page .workspace-score small,
:root body .workspace-page .selection-expand-hint,
:root body .panel-tab i,
:root body .status,
:root body .pill,
:root body .calendar-day-count,
:root body .calendar-day-badge {
  font-size: 12px;
}
:root body :is(.status, .pill, .calendar-day-count, .tab-counter, .prompt-counter) {
  text-transform: none;
  letter-spacing: 0;
  font-weight: 600;
}
:root body label {
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0;
}

/* ---------- 4. КНОПКИ ---------- */
:root body :is(button, .btn, .panel-btn) {
  min-height: 40px;
  border-radius: var(--radius-md);
  font-weight: 600;
  line-height: 1.2;
  color: var(--ink);
  background: var(--glass-solid);
  border: 1px solid var(--stroke-strong);
  box-shadow: var(--shadow);
  transition: transform .12s ease, background .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease;
}
:root body :is(button, .btn, .panel-btn):not(.panel-tab):hover:not(:disabled):not([aria-disabled="true"]) {
  background: var(--glass-hover);
  border-color: var(--muted-2);
  box-shadow: var(--shadow-lift);
  transform: translateY(-1px);
}
:root body :is(button, .btn, .panel-btn):not(.panel-tab):active:not(:disabled):not([aria-disabled="true"]) {
  transform: translateY(1px);
  box-shadow: none;
}
:root body :is(button, .btn, .panel-btn):disabled,
:root body .btn[aria-disabled="true"] {
  opacity: .5;
  transform: none;
  cursor: not-allowed;
}
/* основная кнопка: teal */
:root body :is(button.primary, .btn.primary, .primary, .panel-btn.go) {
  background: var(--accent);
  color: var(--accent-ink);
  border-color: var(--accent);
  box-shadow: none;
}
:root body :is(button.primary, .btn.primary, .primary, .panel-btn.go):hover:not(:disabled):not([aria-disabled="true"]) {
  background: var(--accent-2);
  border-color: var(--accent-2);
  box-shadow: var(--shadow-lift);
}
/* ghost: текстовая */
:root body :is(.panel-btn.ghost, .btn.ghost) {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
  color: var(--muted);
}
:root body :is(.panel-btn.ghost, .btn.ghost):hover:not(:disabled) {
  background: var(--glass-soft);
  color: var(--ink);
  border-color: transparent;
}
/* опасные действия */
:root body :is(button.danger, .btn.danger) {
  background: var(--glass-solid);
  color: var(--danger);
  border-color: var(--danger);
}
/* фокус: видимое кольцо 2px с отступом 2px */
:root body :is(button, a, input, select, textarea, summary, [contenteditable="true"], .btn, .panel-btn, .panel-tab):focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  box-shadow: none;
}

/* ---------- 5. ПИЛЮЛЬНЫЕ ВКЛАДКИ ---------- */
:root body .panel-tabs {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 4px;
  width: fit-content;
  max-width: 100%;
  background: var(--glass-soft);
  border-radius: 999px;
}
:root body .panel-tab {
  min-height: 34px;
  padding: 6px 14px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: var(--muted);
  font-weight: 600;
  box-shadow: none;
}
:root body .panel-tab:hover {
  background: var(--stroke);
  color: var(--ink);
  transform: none;
}
:root body .panel-tab.active {
  background: var(--glass-solid);
  border-color: var(--stroke);
  color: var(--accent);
  box-shadow: var(--shadow);
}
:root body .panel-tab.active i {
  background: var(--accent-soft);
  color: var(--accent);
}
:root body .workspace-tab[aria-selected="true"],
:root body .workspace-tab.active {
  color: var(--accent-ink);
}

/* ---------- 6. КАРТОЧКИ И КОЛОНКИ ---------- */
:root body :is(.panel-card, .panel-item, .card, .workspace-side-card, .workspace-section-card, .panel-modal-box, .article-card, .metric-card, .settings-home-card) {
  background: var(--glass-solid);
  border: 1px solid var(--stroke);
  border-radius: 14px;
  box-shadow: var(--shadow);
  backdrop-filter: none;
}
:root body :is(.panel-item, .article-card, .metric-card, .settings-home-card):hover {
  box-shadow: var(--shadow-lift);
  transform: none;
}
:root body .workspace-page .workspace-side-card,
:root body .workspace-page .workspace-section-card {
  border-radius: 14px;
}

/* ---------- 7. ПОЛЯ ВВОДА ---------- */
:root body :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
  min-height: 40px;
  border-radius: 10px;
  border: 1px solid var(--stroke-strong);
  background: var(--field);
  color: var(--ink);
  box-shadow: none;
}
:root body input::placeholder,
:root body textarea::placeholder {
  color: var(--muted-2);
  opacity: 1;
}
:root body :is(input, select, textarea):focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-color: var(--accent);
  box-shadow: none;
}
:root body input[readonly] {
  background: var(--glass-soft);
  color: var(--muted);
}

/* ---------- 8. БЕЙДЖИ И СТАТУСЫ (всегда слово + цвет) ---------- */
:root body :is(.status, .pill, .calendar-day-count) {
  padding: 3px 10px;
  border-radius: 999px;
  background: var(--glass-soft);
  color: var(--muted);
  border: 1px solid var(--stroke);
  box-shadow: none;
}
:root body :is(.status.is-ok, .status.fresh, .freshness-ok, .stage-ready) {
  background: rgba(21, 128, 61, .06);
  color: var(--green);
  border-color: rgba(21, 128, 61, .30);
}
:root body :is(.status.is-blocked, .status.is-error, .status-error, .critical, .err, .error) {
  background: rgba(185, 28, 28, .06);
  color: var(--danger);
  border-color: rgba(185, 28, 28, .30);
}
:root body :is(.warning, .stage-changes, .overdue) {
  background: rgba(180, 83, 9, .06);
  color: var(--amber);
  border-color: rgba(180, 83, 9, .30);
}
:root body .calendar-day-count {
  background: var(--accent-soft);
  color: var(--accent);
  border-color: transparent;
}
:root body .calendar-event {
  background: var(--accent-soft);
  color: var(--accent);
  border: 1px solid transparent;
  font-weight: 600;
}
:root body .calendar-day.today {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
}

/* ---------- 9. МОДАЛКИ И ОВЕРЛЕИ ---------- */
:root body :is(.calendar-modal, .workspace-modal, .preview-modal, .prompt-editor-modal, .command-palette, .panel-modal) {
  /* оверлей: затемнение холста, без блюра; внутри — белые поверхности */
  background: rgba(20, 33, 61, .45);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
:root body :is(.calendar-dialog, .confirm-dialog, .command-dialog, .prompt-editor-shell, .panel-modal-box) {
  background: var(--glass-solid);
  border: 1px solid var(--stroke);
  border-radius: 14px;
  box-shadow: 0 12px 40px rgba(20, 33, 61, .18);
}
:root body .calendar-dialog,
:root body .confirm-dialog,
:root body .panel-modal-box {
  border-radius: 14px;
}
:root body #site-toast {
  background: var(--ink);
  color: var(--canvas);
  border-radius: 10px;
  box-shadow: 0 12px 40px rgba(20, 33, 61, .18);
  backdrop-filter: none;
}

/* ---------- 10. ТАБЛИЦЫ ---------- */
:root body table {
  font-size: 13px;
}
