/*
 * Пресет shadcn b45lUFFmU для панели кураторов.
 *
 * Расшифровка пресета (npx shadcn preset decode b45lUFFmU):
 *   style rhea · baseColor neutral · theme pink · chartColor pink
 *   font inter · radius medium · icons lucide · menu default-translucent/subtle
 *
 * Значения взяты не на глаз: пресет развёрнут настоящим CLI в чистый проект
 * (shadcn init -t vite -p b45lUFFmU), и цвета скопированы из полученного
 * index.css один в один. Ничего не досочинялось.
 *
 * КАК ЭТО РАБОТАЕТ. Панель не на Tailwind и не на shadcn — там обычный CSS на
 * токенах Majestic. Поэтому пресет применён не переписыванием компонентов, а
 * переопределением самих токенов: файл подключается ПОСЛЕ majestic-ui.css и
 * подменяет значения. Ни один класс в разметке не тронут.
 *
 * КАК ОТКАТИТЬ: убрать одну строку <link> из panel/index.html. Канон
 * design-system/majestic-ui.css не менялся и остаётся источником правды для
 * остальных приложений.
 *
 * ЧТО НАМЕРЕННО НЕ ЗАМЕНЕНО:
 *   --logo-url  — лого Majestic остаётся, в пресете понятия лого нет;
 *   --good/--warn/--info — функциональные цвета статусов, у shadcn из этого
 *     есть только destructive, и подменять зелёный «одобрено» розовым нельзя.
 *
 * Три состояния темы держим ровно как в каноне: атрибут data-theme главнее
 * системной настройки, без атрибута решает prefers-color-scheme. Селекторы
 * повторяют канонические — иначе при равной силе победил бы канон.
 */

/* ---------- Inter, шрифт пресета. Свой, не с чужого домена: CSP разрешает
     только собственный источник. Лицензия SIL OFL — рядом в fonts/inter/. ---------- */
@font-face {
  font-family: 'Inter Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/fonts/inter/inter-cyrillic-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Inter Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/fonts/inter/inter-cyrillic-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/fonts/inter/inter-latin-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
    U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0,
    U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/fonts/inter/inter-latin-wght-normal.woff2) format('woff2-variations');
  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;
}

/* ---------- база: тёмная, как и в каноне ---------- */
:root {
  --font: 'Inter Variable', 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  /* radius пресета — 0.625rem. Карточка у shadcn это rounded-xl (×1.4),
     чип — rounded-md (×0.8). Пилюля остаётся пилюлей. */
  --r-card: 0.875rem;
  --r-chip: 0.5rem;
  --r-sheet: 1.125rem;
  --r-pill: 999px;

  --page: oklch(0.145 0 0);
  --surface: oklch(0.205 0 0);
  --surface-2: oklch(0.269 0 0);
  --surface-3: oklch(0.274 0.006 286.033);

  --ink: oklch(0.985 0 0);
  --ink-2: oklch(0.708 0 0);
  --ink-3: oklch(0.62 0 0);

  --line: oklch(1 0 0 / 10%);
  --line-strong: oklch(1 0 0 / 15%);

  --brand: oklch(0.656 0.241 354.308);
  --brand-strong: oklch(0.459 0.187 3.815);
  --brand-ink: oklch(0.971 0.014 343.198);
  --brand-dim: oklch(0.656 0.241 354.308 / 0.16);
  /* Пресет плоский: градиента в нём нет, поэтому заливка сплошная. */
  --brand-grad: linear-gradient(oklch(0.459 0.187 3.815), oklch(0.459 0.187 3.815));

  --bad: oklch(0.704 0.191 22.216);
  --bad-dim: oklch(0.704 0.191 22.216 / 0.16);

  /* Боковая панель у shadcn непрозрачная, размытия под ней нет. */
  --material-panel: oklch(0.205 0 0);
  --material-blur: none;
  --scrim: oklch(0 0 0 / 0.62);

  --shadow-card: 0 1px 2px 0 oklch(0 0 0 / 0.28);
  --shadow-sheet: 0 12px 32px -8px oklch(0 0 0 / 0.5);
}

/* ---------- светлая по системной настройке ---------- */
@media (prefers-color-scheme: light) {
  :root:not([data-theme]) {
    --page: oklch(1 0 0);
    --surface: oklch(1 0 0);
    --surface-2: oklch(0.97 0 0);
    --surface-3: oklch(0.967 0.001 286.375);

    --ink: oklch(0.145 0 0);
    --ink-2: oklch(0.556 0 0);
    --ink-3: oklch(0.63 0 0);

    --line: oklch(0.922 0 0);
    --line-strong: oklch(0.87 0 0);

    --brand: oklch(0.592 0.249 0.584);
    --brand-strong: oklch(0.525 0.223 3.958);
    --brand-ink: oklch(0.971 0.014 343.198);
    --brand-dim: oklch(0.592 0.249 0.584 / 0.12);
    --brand-grad: linear-gradient(oklch(0.525 0.223 3.958), oklch(0.525 0.223 3.958));

    --bad: oklch(0.577 0.245 27.325);
    --bad-dim: oklch(0.577 0.245 27.325 / 0.12);

    --material-panel: oklch(0.985 0 0);
    --material-blur: none;
    --scrim: oklch(0 0 0 / 0.5);

    --shadow-card: 0 1px 2px 0 oklch(0 0 0 / 0.05);
    --shadow-sheet: 0 12px 32px -8px oklch(0 0 0 / 0.14);
  }
}

/* ---------- светлая по явному выбору ---------- */
:root[data-theme='light'] {
  --page: oklch(1 0 0);
  --surface: oklch(1 0 0);
  --surface-2: oklch(0.97 0 0);
  --surface-3: oklch(0.967 0.001 286.375);

  --ink: oklch(0.145 0 0);
  --ink-2: oklch(0.556 0 0);
  --ink-3: oklch(0.63 0 0);

  --line: oklch(0.922 0 0);
  --line-strong: oklch(0.87 0 0);

  --brand: oklch(0.592 0.249 0.584);
  --brand-strong: oklch(0.525 0.223 3.958);
  --brand-ink: oklch(0.971 0.014 343.198);
  --brand-dim: oklch(0.592 0.249 0.584 / 0.12);
  --brand-grad: linear-gradient(oklch(0.525 0.223 3.958), oklch(0.525 0.223 3.958));

  --bad: oklch(0.577 0.245 27.325);
  --bad-dim: oklch(0.577 0.245 27.325 / 0.12);

  --material-panel: oklch(0.985 0 0);
  --material-blur: none;
  --scrim: oklch(0 0 0 / 0.5);

  --shadow-card: 0 1px 2px 0 oklch(0 0 0 / 0.05);
  --shadow-sheet: 0 12px 32px -8px oklch(0 0 0 / 0.14);
}

/* ---------- тёмная по явному выбору ---------- */
:root[data-theme='dark'] {
  --page: oklch(0.145 0 0);
  --surface: oklch(0.205 0 0);
  --surface-2: oklch(0.269 0 0);
  --surface-3: oklch(0.274 0.006 286.033);

  --ink: oklch(0.985 0 0);
  --ink-2: oklch(0.708 0 0);
  --ink-3: oklch(0.62 0 0);

  --line: oklch(1 0 0 / 10%);
  --line-strong: oklch(1 0 0 / 15%);

  --brand: oklch(0.656 0.241 354.308);
  --brand-strong: oklch(0.459 0.187 3.815);
  --brand-ink: oklch(0.971 0.014 343.198);
  --brand-dim: oklch(0.656 0.241 354.308 / 0.16);
  --brand-grad: linear-gradient(oklch(0.459 0.187 3.815), oklch(0.459 0.187 3.815));

  --bad: oklch(0.704 0.191 22.216);
  --bad-dim: oklch(0.704 0.191 22.216 / 0.16);

  --material-panel: oklch(0.205 0 0);
  --material-blur: none;
  --scrim: oklch(0 0 0 / 0.62);

  --shadow-card: 0 1px 2px 0 oklch(0 0 0 / 0.28);
  --shadow-sheet: 0 12px 32px -8px oklch(0 0 0 / 0.5);
}
