/* ==========================================================================
   BLASTIX — дизайн-токены
   Основа — тёмная схема Flarum 2 ([data-theme^=dark] и :root из
   flarum/framework core/less/common/root.less, MIT, © Stichting Flarum /
   Toby Zerner) с фирменным акцентом Blastix #07e7ff и поправками контраста.

   Контраст посчитан по формуле WCAG 2.x (относительная яркость sRGB).
   Поверхности, на которых проверялся текст:
     body-bg          hsl(212.6 20% 10%)  #14191f
     control-bg       hsl(212.6 20% 13%)  #1b2128
     control-bg-light hsl(212.6 20% 16%)  #212831
   Формат комментария: «фон страницы : control-bg : control-bg-light».
   ========================================================================== */

/* ------------------------------- Шрифты --------------------------------- */
/* Robochyi Sans — фирменный шрифт. По спецификации используется ТОЛЬКО
   в заголовках hero (главная, тема, раздел, профиль), вес 600, ≤ 26px.
   Остальные начертания не подключаются. */
@font-face {
  font-family: 'Robochyi Sans';
  src: url('/static/fonts/RobochyiSans-Semi.woff2') format('woff2');
  font-weight: 600;
  font-display: swap;
}

/* ------------------- Тёмная схема Flarum (единственная) ------------------ */
:root,
[data-theme^=dark] {
  color-scheme: dark;

  /* Поверхности */
  --body-bg: hsl(212.63 20% 10%);              /* #14191f */
  --body-bg-shaded: hsl(212.63 20% 7%);        /* #0e1215 */
  --body-bg-light: hsl(212.63 20% 15%);
  --body-bg-faded: hsl(212.63 20% 10% / .93);
  --control-bg: hsl(212.63 20% 13%);           /* #1b2128 */
  --control-bg-light: hsl(212.63 20% 16%);     /* #212831 */
  --control-bg-shaded: hsl(212.63 20% 9%);     /* #12171c */
  --control-body-bg-mix: #171d23;
  --code-bg: hsl(212.63 20% 7%);
  --overlay-bg: hsl(212.63 20% 5% / .9);
  --shadow-color: rgba(0, 0, 0, .5);
  /* Единственная допустимая линия — волосяной разделитель строк списков и таблиц.
     Не текст, контраст не нормируется. */
  --border-color: hsl(212.63 20% 17%);         /* #232b34 */

  /* Текст */
  --text-color: #ddd;                           /* 13.01 : 11.94 : 10.95 */
  --heading-color: #ddd;                        /* 13.01 : 11.94 : 10.95 */
  /* Flarum: hsl(212.6 15% 50%) = 4.24 : 3.90 : 3.57 — не проходит AA */
  --muted-color: hsl(212.63 15% 62%);           /* #909dad  6.40 : 5.88 : 5.39 */
  --muted-color-light: hsl(212.63 15% 70%);     /* #a7b1be  8.14 : 7.47 : 6.85 */
  --muted-color-dark: #000;
  /* Flarum: hsl(212.6 10% 40%) = 2.99 : 2.74 : 2.51 — не проходит AA */
  --muted-more-color: hsl(212.63 12% 58%);      /* #8793a1  5.65 : 5.19 : 4.76 */
  --muted-more-bg: hsl(212.63 10% 40% / .3);
  --muted-more-bg-hover: hsl(212.63 10% 35% / .35);
  /* Прочитанные заголовки тем. Flarum #838587 = 4.77 : 4.38 : 4.01 */
  --discussion-title-color: #9a9c9e;            /* 6.41 : 5.89 : 5.40 */
  --code-color: #fff;                           /* 18.82 на code-bg */

  /* Элементы управления */
  --control-color: var(--muted-color);          /* 6.40 : 5.88 : 5.39; на hover-фоне 8% — 6.70 */
  --control-muted-color: hsl(212.63 15% 25%);   /* декоративное, не текст */

  /* Шапка */
  --header-bg: var(--body-bg);
  --header-color: var(--primary-color);
  --header-control-bg: var(--control-bg);
  --header-control-color: var(--muted-color);

  /* Кнопки */
  --button-color: var(--control-color);
  --button-bg: var(--control-bg);
  --button-bg-hover: hsl(212.63 20% 8%);        /* текст control-color — 6.70 */
  --button-bg-active: hsl(212.63 20% 3%);       /* 7.27 */
  --button-bg-disabled: var(--control-bg);
  --button-primary-color: hsl(212.63 20% 10%);  /* на #07e7ff 11.68, hover 9.95, active 7.90 */
  --button-primary-bg: var(--primary-color);
  --button-primary-bg-hover: #00d6ec;
  --button-primary-bg-active: #00bfd3;
  --button-primary-bg-disabled: var(--primary-color);
  --button-inverted-color: var(--control-color);
  --button-inverted-bg: var(--body-bg);
  --button-inverted-bg-hover: hsl(212.63 20% 5%);
  --button-inverted-bg-active: #000;
  --button-inverted-bg-disabled: var(--body-bg);

  /* Опасное действие. Flarum #a88 на #411 = 4.94; сделали светлее для мелкого текста */
  --control-danger-color: #e6a1a1;              /* на #411 7.48, на hover #300c0c 8.43 */
  --control-danger-bg: #411;
  --control-danger-bg-hover: #300c0c;
  --control-danger-bg-active: #1b0707;
  --control-danger-bg-disabled: #411;

  --search-gambit: var(--control-bg-light);
  --yiq-threshold: 108;
}

/* --------------------- Общие переменные Flarum :root --------------------- */
:root {
  /* Контейнеры (Flarum: 1200 от 1100px, 1300 от 1600px, 1500 от 2000px) */
  --container-hd: 1200px;
  --container-xl: 1300px;
  --container-xxl: 1500px;
  --container-width: 100%;                      /* меняется медиазапросами в style.css */
  --container-padding: 15px;
  --discussion-content-max-width: 100ch;

  /* Акцент Blastix */
  --primary-color: #07e7ff;                     /* как текст/ссылка 11.68 : 10.72 : 9.83 */
  --secondary-color: #3c5675;
  --link-color: var(--primary-color);
  --text-on-dark: #fff;
  --text-on-light: hsl(212.63 20% 10%);

  /* Алерты (Flarum оставляет их светлыми и в тёмной теме) */
  --alert-bg: #fff2ae;
  --alert-color: #8a5600;                       /* 5.44 на #fff2ae (у Flarum #ad6c00 — 3.77) */
  --alert-error-bg: #c93030;
  --alert-error-color: #fff;                    /* 5.32 (у Flarum #d83e3e — 4.49) */
  --alert-success-bg: #b4f1af;
  --alert-success-color: #2c6627;               /* 5.32 (у Flarum #33722D — 4.50) */
  --error-color: #e06c6c;                       /* текст ошибки 5.49 : 5.04 : 4.62 */
  --validation-error-color: var(--error-color);

  --switch-on-color: #58a400;                   /* не текст; 5.19 к control-bg */
  --switch-off-color: #d0021b;

  /* Тултип */
  --tooltip-bg: rgba(0, 0, 0, .9);
  --tooltip-color: #fff;                        /* ≈20 : 1 */

  --loading-indicator-color: var(--muted-color);
  --online-user-circle-color: #7fba00;
  --discussion-list-item-bg-hover: var(--control-body-bg-mix);
  --avatar-bg: var(--control-bg);
  --badge-bg: var(--muted-color);
  --badge-color: var(--body-bg);                /* 6.40 на muted-color (белый — 2.76) */
  --badge-hidden-bg: #888;
  --usercard-bg: var(--control-bg);
  --hero-bg: var(--control-bg);
  --hero-color: var(--control-color);
  --pill-bg: var(--control-bg);
  --pill-color: var(--control-color);
  --bubble-bg: var(--control-color);
  --bubble-color: var(--body-bg);               /* 6.40 */
  --bubble-shadow-color: var(--body-bg);
  --tag-bg: var(--control-bg);
  --tag-color: var(--control-color);
  --highlight-color: #ffe300;

  --control-success-color: var(--alert-success-color);
  --control-success-bg: var(--alert-success-bg);
  --control-warning-color: var(--alert-color);
  --control-warning-bg: var(--alert-bg);

  /* Форма */
  --border-radius: 4px;
  --border-radius-lg: 6px;                      /* максимум — модалки */
  --drawer-width: 270px;
  --pane-width: 400px;
  --header-height: 52px;
  --header-height-phone: 46px;
  --avatar-column-width: 85px;
  --post-padding: 20px;
  --app-bottom-padding: 50px;
  --page-bottom-padding: 0px;

  /* Колонки страниц (Flarum Page: 190 → 260 от 1100px) */
  --sidebar-width: 190px;
  --aside-width: 260px;
  --page-gap: 50px;

  /* Слои Flarum */
  --zindex-header: 1000;
  --zindex-pane: 1010;
  --zindex-composer: 1020;
  --zindex-dropdown: 1030;
  --zindex-modal-background: 1040;
  --zindex-modal: 1050;
  --zindex-alerts: 1060;
  --zindex-tooltip: 1070;

  /* Шрифты. Размеры Flarum + 1px под кириллицу */
  --font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --font-family-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', monospace;
  --font-family-brand: 'Robochyi Sans', var(--font-family);   /* только hero-заголовки */
  --font-size: 14px;          /* Flarum 13 */
  --font-size-sm: 12px;       /* мета, Flarum 11 */
  --font-size-xs: 11px;       /* счётчики-пузырьки */
  --font-size-md: 15px;       /* заголовок темы в списке, текст поста на узких */
  --font-size-post: 15px;     /* текст поста, Flarum 14 */
  --font-size-lg: 16px;
  --font-size-xl: 20px;       /* заголовок модалки */
  --font-size-hero: 22px;     /* Hero h1, Flarum 22 */
  --line-height: 1.5;
  --line-height-post: 1.7;

  /* Движение: только переходы цвета/фона, как во Flarum */
  --transition: .2s;
  --transition-fast: .15s;

  /* Брейкпоинты Flarum (в медиазапросах пишутся числами):
     phone ≤ 767.98px · tablet 768–991.98px · desktop 992–1099.98px · desktop-hd ≥ 1100px */
  --screen-tablet: 768px;
  --screen-desktop: 992px;
  --screen-desktop-hd: 1100px;

  /* Минимальная тач-цель */
  --tap: 36px;
}
@media (pointer: coarse) {
  :root { --tap: 44px; }
}

/* ==========================================================================
   Алиасы старых токенов — чтобы инлайновые стили в шаблонах не остались
   без значения. Новые правила пишите на Flarum-именах выше.
   ========================================================================== */
:root {
  /* Поверхности */
  --bg-0: var(--body-bg-shaded);
  --bg-1: var(--body-bg);
  --bg-2: var(--control-bg);
  --bg-3: var(--control-bg-light);
  --bg-4: hsl(212.63 20% 19%);

  /* Линии: всё сводится к одному тону */
  --line: var(--border-color);
  --line-2: var(--border-color);
  --line-3: hsl(212.63 20% 22%);

  /* Текст */
  --tx-1: var(--heading-color);                 /* 13.01 */
  --tx-2: var(--text-color);                    /* 13.01 */
  --tx-3: var(--muted-color);                   /* 6.40 */
  --tx-4: var(--muted-more-color);              /* 5.65 */

  /* Акцент. Свечения и заливки акцентом больше не используются */
  --ac: var(--primary-color);
  --ac-2: var(--primary-color);
  --ac-deep: var(--button-primary-bg-active);
  --ac-ink: var(--button-primary-color);
  --ac-glow: transparent;
  --ac-wash: var(--control-bg);

  /* Семантика: только цвет текста/значков, не заливки */
  --ok: #35d99a;                                /* 9.71 : 8.92 : 8.17 */
  --warn: #ffc247;                              /* 10.99 : 10.09 : 9.25 */
  --err: #ff6b81;                               /* 6.45 : 5.93 : 5.43 */
  --ok-wash: var(--control-bg);
  --warn-wash: var(--control-bg);
  --err-wash: var(--control-danger-bg);

  /* Ранги проекта — как цвета тегов Flarum: ник, маленький ярлык */
  --rank-rival: #93a3b5;                        /* 6.85 : 6.29 */
  --rank-apex: #63aae6;                         /* 7.09 : 6.51 */
  --rank-titan: #8a92f5;                        /* 6.32 : 5.80 */
  --rank-enigma: #b078f7;                       /* 5.78 : 5.31 */
  --rank-hunter: #dd6ae4;                       /* 6.11 : 5.60 */
  --rank-aurora: #3ae3a8;                       /* 10.71 : 9.83 */
  --rank-phoenix: #ff8a4d;                      /* 7.57 : 6.95 */
  --rank-genesis: #ffd158;                      /* 12.21 : 11.21 */

  /* Отступы (шаг 4px сохранён для инлайновых стилей) */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 20px;
  --s-6: 24px;
  --s-8: 32px;
  --s-10: 40px;
  --s-12: 48px;
  --s-16: 64px;
  --s-20: 80px;

  /* Радиусы: 4px везде, 6px максимум */
  --r-1: var(--border-radius);
  --r-2: var(--border-radius);
  --r-3: var(--border-radius);
  --r-4: var(--border-radius-lg);
  --r-5: var(--border-radius-lg);
  --r-full: 999px;

  /* Тени: только выпадающие меню и модалки */
  --sh-1: none;
  --sh-2: 0 2px 6px var(--shadow-color);
  --sh-3: 0 6px 12px var(--shadow-color);
  --sh-4: 0 7px 15px var(--shadow-color);
  --sh-ac: none;

  /* Шрифты: «display» больше не Robochyi */
  --ff-display: var(--font-family);
  --ff-body: var(--font-family);
  --ff-mono: var(--font-family-mono);

  /* Кегли. Крупнее 24px Flarum не использует */
  --t-11: 11px;
  --t-13: 12px;
  --t-14: 14px;
  --t-15: 15px;
  --t-16: 16px;
  --t-18: 18px;
  --t-22: 22px;
  --t-28: 24px;
  --t-36: 24px;
  --t-48: 24px;
  --t-64: 24px;

  /* Движение: без пружин */
  --d-1: var(--transition-fast);
  --d-2: var(--transition);
  --d-3: var(--transition);
  --d-4: var(--transition);
  --spring: ease-out;
  --spring-pop: ease-out;
  --ease-out: ease-out;
  --ease-in-out: ease-in-out;

  /* Слои */
  --z-base: 1;
  --z-sticky: var(--zindex-header);
  --z-drop: var(--zindex-dropdown);
  --z-popover: var(--zindex-dropdown);
  --z-modal: var(--zindex-modal);
  --z-toast: var(--zindex-alerts);

  /* Размеры */
  --hd-h: var(--header-height);
  --wrap: var(--container-hd);
}
