/* ============================================================
   АГМК — цветовые схемы «Чёрно-белый» / «Инверсия»
   Меняют только цвета: формы, размеры и отступы не трогаются.
   ============================================================ */

/* ---------- Размер шрифта (не искажает пропорции: всё в rem) ---------- */
/* Настройка работает самостоятельно, независимо от цветовой схемы */
html[data-cfont='standard'] {
  font-size: 100%;
}

html[data-cfont='middle'] {
  font-size: 112.5%;
}

html[data-cfont='large'] {
  font-size: 125%;
}

/* ---------- Цветовые схемы ---------- */
html[data-contrast='on'] {
  --cl-bg: #ffffff;
  --cl-text: #000000;
  --a11y-surface: #ffffff;
  --a11y-text: #000000;
  --a11y-border: #000000;
}

html[data-contrast='on'][data-cscheme='invert'] {
  --cl-bg: #000000;
  --cl-text: #ffffff;
  --a11y-surface: #000000;
  --a11y-text: #ffffff;
  --a11y-border: #ffffff;
}
/* Стандартные цвета сайта: берём их из текущей темы */
html[data-contrast='on'][data-cscheme='standard'] {
  --cl-bg: var(--surface);
  --cl-text: var(--text);
  --a11y-surface: var(--surface);
  --a11y-text: var(--text);
  --a11y-border: var(--border-strong);
}
/* ---------- Переопределение токенов (только ч/б и инверсия) ---------- */
html[data-contrast='on']:not([data-cscheme='standard']) {
  --bg: var(--cl-bg);
  --bg-soft: var(--cl-bg);
  --surface: var(--cl-bg);
  --surface-2: var(--cl-bg);
  --surface-3: var(--cl-bg);
  --header-bg: var(--cl-bg);
  --text: var(--cl-text);
  --text-muted: var(--cl-text);
  --text-dim: var(--cl-text);
  --text-invert: var(--cl-bg);
  --border: var(--cl-text);
  --border-strong: var(--cl-text);
  --accent: var(--cl-text);
  --accent-soft: var(--cl-bg);
  --accent-ink: var(--cl-bg);
  --brand: var(--cl-text);
  --brand-700: var(--cl-text);
  --brand-600: var(--cl-text);
  --brand-400: var(--cl-text);
  --brand-300: var(--cl-text);
  --brand-100: var(--cl-bg);
  --brand-50: var(--cl-bg);
  --topbar-bg: var(--cl-bg);
  --topbar-ink: var(--cl-text);
  --topbar-hover: transparent;
  --gradient-brand: none;
  --gradient-hero: none;
  --shadow-xs: none;
  --shadow-sm: none;
  --shadow: none;
  --shadow-lg: none;
}
html[data-contrast='on']:not([data-cscheme='standard']) body {
  background: var(--cl-bg);
  color: var(--cl-text);
}
html[data-contrast='on']:not([data-cscheme='standard']) * {
  box-shadow: none !important;
  text-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background-image: none !important;
}
/* декоративные градиенты живут в псевдоэлементах — гасим и их */
html[data-contrast='on']:not([data-cscheme='standard']) *::before,
html[data-contrast='on']:not([data-cscheme='standard']) *::after {
  background-image: none !important;
  box-shadow: none !important;
}
html[data-contrast='on'] a {
  color: var(--cl-text);
}
html[data-contrast='on'] :focus-visible {
  outline-color: var(--cl-text);
}
/* ---------- Шапка ---------- */
html[data-contrast='on'] .topbar {
  border-bottom-color: var(--cl-text);
}
html[data-contrast='on'] .header {
  border-bottom-color: var(--cl-text);
}
html[data-contrast='on'] .brand__mark {
  background: var(--cl-bg);
  border-color: var(--cl-text);
  color: var(--cl-text);
}
html[data-contrast='on'] .nav__link {
  border-color: transparent;
  color: var(--cl-text);
}
html[data-contrast='on'] .nav__link:hover,
html[data-contrast='on'] .nav__link[aria-current='page'] {
  border-color: var(--cl-text);
  background: var(--cl-bg);
  color: var(--cl-text);
}
html[data-contrast='on'] .icon-btn,
html[data-contrast='on'] .burger {
  border-color: var(--cl-text);
  background: var(--cl-bg);
  color: var(--cl-text);
}
html[data-contrast='on'] .burger span {
  background: var(--cl-text);
}
/* ---------- Кнопки ---------- */
html[data-contrast='on'] .btn {
  border-color: var(--cl-text);
  background: var(--cl-bg);
  color: var(--cl-text);
}
html[data-contrast='on'] .btn--primary {
  background: var(--cl-text);
  color: var(--cl-bg);
}
html[data-contrast='on'] .btn--primary:hover,
html[data-contrast='on'] .btn--outline:hover,
html[data-contrast='on'] .btn:hover {
  background: var(--cl-text);
  color: var(--cl-bg);
}
/* ---------- Блоки и карточки ---------- */
html[data-contrast='on'] .card,
html[data-contrast='on'] .panel,
html[data-contrast='on'] .kpi,
html[data-contrast='on'] .spec,
html[data-contrast='on'] .post,
html[data-contrast='on'] .quick__card,
html[data-contrast='on'] .side-card,
html[data-contrast='on'] .stat,
html[data-contrast='on'] .partner,
html[data-contrast='on'] .action-tile,
html[data-contrast='on'] .art-card,
html[data-contrast='on'] .admission,
html[data-contrast='on'] .settings,
html[data-contrast='on'] .auth-box,
html[data-contrast='on'] .tabs,
html[data-contrast='on'] .a11y {
  border-color: var(--cl-text);
  background: var(--cl-bg);
  color: var(--cl-text);
}
html[data-contrast='on'] .admission p {
  color: var(--cl-text);
}
html[data-contrast='on'] .admission .btn,
html[data-contrast='on'] .admission .btn--primary {
  background: var(--cl-bg);
  color: var(--cl-text);
  border-color: var(--cl-text);
}
html[data-contrast='on'] .badge,
html[data-contrast='on'] .tag {
  border-color: var(--cl-text);
  background: var(--cl-bg);
  color: var(--cl-text);
}
html[data-contrast='on'] .quick__icon,
html[data-contrast='on'] .avatar,
html[data-contrast='on'] .post__date {
  background: var(--cl-bg);
  border-color: var(--cl-text);
  color: var(--cl-text);
}
html[data-contrast='on'] .side-note {
  background: var(--cl-bg);
  border-color: var(--cl-text);
  color: var(--cl-text);
}
html[data-contrast='on'] .side-nav a {
  color: var(--cl-text);
  border-color: transparent;
}
html[data-contrast='on'] .side-nav a[aria-current='page'],
html[data-contrast='on'] .side-nav a:hover {
  border-color: var(--cl-text);
  background: var(--cl-bg);
}
html[data-contrast='on'] .page--auth .check input[type='checkbox'] {
  background: transparent;
}
html[data-contrast='on'] .tabs__btn {
  border-color: transparent;
  color: var(--cl-text);
}
html[data-contrast='on'] .tabs__btn[aria-selected='true'] {
  border-color: var(--cl-text);
  background: var(--cl-text);
  color: var(--cl-bg);
}
html[data-contrast='on'] .auth-box__brand {
  background: var(--cl-text);
  color: var(--cl-bg);
}
html[data-contrast='on'] .auth-box__foot {
  border-top-color: var(--cl-text);
  color: var(--cl-text);
}
html[data-contrast='on'] .auth-box__foot a {
  color: var(--cl-text);
}
html[data-contrast='on'] .auth-form__actions .btn {
  border-color: var(--cl-text);
  background: var(--cl-bg);
  color: var(--cl-text);
}
html[data-contrast='on'] .auth-form__actions .btn:hover {
  background: var(--cl-text);
  color: var(--cl-bg);
}
html[data-contrast='on'] .page--auth .check--block {
  border-color: var(--cl-text);
  background: var(--cl-bg);
  color: var(--cl-text);
}
html[data-contrast='on'] .auth-errors ul {
  border-color: var(--cl-text);
  background: var(--cl-bg);
  color: var(--cl-text);
  box-shadow: none;
}
html[data-contrast='on'] .auth-errors li::before {
  background: var(--cl-text);
}
/* ---------- Формы ---------- */
html[data-contrast='on'] .input {
  border-color: var(--cl-text);
  background: var(--cl-bg);
  color: var(--cl-text);
}
html[data-contrast='on'] .page--auth .field .input::placeholder,
html[data-contrast='on'] .page--auth .field:focus-within .input::placeholder,
html[data-contrast='on'] .page--auth .field.is-filled .input::placeholder {
  color: transparent;
}
html[data-contrast='on'] .input::placeholder {
  color: var(--cl-text);
}
html[data-contrast='on'] .field__error {
  color: var(--cl-text);
}
html[data-contrast='on'] .field.is-invalid .input {
  box-shadow: none;
}
html[data-contrast='on'] .field__toggle {
  border-color: var(--cl-text);
  color: var(--cl-text);
}
/* Подписи полей — над полем, без «плавающего» позиционирования */
html[data-contrast='on'] .page--auth .field .field__label,
html[data-contrast='on'] .page--auth .field:focus-within .field__label,
html[data-contrast='on'] .page--auth .field.is-filled .field__label {
  color: var(--cl-text);
  background: transparent;
}
html[data-contrast='on'] .page--auth .field.is-invalid .field__label {
  color: var(--cl-text);
}
html[data-contrast='on'] .alert,
html[data-contrast='on'] .toast {
  border-color: var(--cl-text);
  background: var(--cl-bg);
  color: var(--cl-text);
  box-shadow: none;
}
html[data-contrast='on'] .auth-box__foot a:hover {
  color: var(--cl-text);
}
/* ---------- Таблицы и графики ---------- */
html[data-contrast='on'] .schedule th,
html[data-contrast='on'] .schedule td {
  border-color: var(--cl-text);
}
html[data-contrast='on'] .chart svg text {
  fill: var(--cl-text) !important;
}
/* иллюстрации-схемы свг с жёстко заданными цветами — тоже в монохром */
html[data-contrast='on']:not([data-cscheme='standard']) svg [fill]:not([fill='none']):not([fill='transparent']) {
  fill: var(--cl-text) !important;
}
html[data-contrast='on']:not([data-cscheme='standard']) svg [stroke]:not([stroke='none']) {
  stroke: var(--cl-text) !important;
}
html[data-contrast='on'] .kpi__trend,
html[data-contrast='on'] .kpi__trend--down {
  color: var(--cl-text);
}
html[data-contrast='on'] .field__error,
html[data-contrast='on'] .strength__text {
  color: var(--cl-text);
}


/* ---------- Изображения (самостоятельная настройка) ---------- */
html[data-cimg='off'] img,
html[data-cimg='off'] svg[data-decor],
html[data-cimg='off'] .hero__art,
html[data-cimg='off'] .post__media,
html[data-cimg='off'] .art-chip {
  display: none !important;
}

html[data-cimg='bw'] img,
html[data-cimg='bw'] svg,
html[data-cimg='bw'] .hero__art,
html[data-cimg='bw'] .post__media,
html[data-cimg='bw'] .art-chip {
  filter: grayscale(1) !important;
}

/* в схемах ч/б и инверсия общий сброс filter не должен отменять ч/б картинки */
html[data-contrast='on'][data-cimg='bw'] img,
html[data-contrast='on'][data-cimg='bw'] svg,
html[data-contrast='on'][data-cimg='bw'] .hero__art,
html[data-contrast='on'][data-cimg='bw'] .post__media,
html[data-contrast='on'][data-cimg='bw'] .art-chip {
  filter: grayscale(1) !important;
}

/* ---------- Перестроение сеток при крупном шрифте ---------- */
html[data-cfont='large'] .kpis {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

html[data-cfont='large'] .dash,
html[data-cfont='large'] .dash__grid {
  grid-template-columns: minmax(0, 1fr);
}

html[data-cfont='large'] .dash__side {
  position: static;
}

/* ---------- Панель настроек для слабовидящих ---------- */
html[data-contrast='on'] .a11y__btn,
html[data-contrast='on'] .a11y__close,
html[data-contrast='on'] .a11y__exit {
  color: var(--cl-text);
  background: var(--cl-bg);
}
html[data-contrast='on'] .a11y__btn[aria-pressed='true'] {
  background: var(--cl-text);
  color: var(--cl-bg);
}

/* ---------- Метки ролей и состояний в панели управления ---------- */
html[data-contrast='on'] .pill,
html[data-contrast='on'] .pill--admin,
html[data-contrast='on'] .pill--operator,
html[data-contrast='on'] .pill--student,
html[data-contrast='on'] .pill--ok,
html[data-contrast='on'] .pill--blocked {
  border-color: var(--cl-text);
  background: var(--cl-bg);
  color: var(--cl-text);
}
html[data-contrast='on'] .a11y__scheme[aria-pressed='true'] {
  outline-color: var(--cl-text);
}

