/* ==========================================================================
   System-mind — дизайн платформы 2.0
   Светлая тема — вариант v26 «Рассвет», тёмная — вариант v25 «Ночь».
   Тема переключается атрибутом data-theme="light" | "dark" на <html>.
   Без атрибута тема берётся из настроек системы пользователя.
   Подключение шрифтов — см. README.md, раздел «Шрифты».
   ========================================================================== */

/* ---------- 1. Токены: светлая тема (v26 «Рассвет») ---------- */
:root,
:root[data-theme="light"] {
  color-scheme: light;

  /* текст */
  --sm-ink: #1C2340;            /* основной текст */
  --sm-ink-2: #2E3458;          /* второстепенный текст */
  --sm-muted: #555A7A;          /* подписи, служебный текст */
  --sm-accent-text: #2C5CAE;    /* надзаголовки, ссылки */
  --sm-line: rgba(28, 35, 64, .12);   /* разделители, рамки полей */
  --sm-faint: rgba(28, 35, 64, .22);  /* неактивные контуры (карта) */

  /* фон страницы */
  --sm-bg-color: #E6E7F1;
  --sm-bg-image:
    radial-gradient(ellipse 45% 40% at 85% 12%, rgba(255, 190, 120, .45), rgba(255, 190, 120, 0) 70%),
    radial-gradient(ellipse 45% 50% at 10% 85%, rgba(120, 160, 240, .35), rgba(120, 160, 240, 0) 70%),
    linear-gradient(160deg, #F7EFE6 0%, #E4E2F0 55%, #CBD3EC 100%);

  /* стекло */
  --sm-glass: rgba(255, 255, 255, .5);
  --sm-glass-solid: rgba(250, 250, 253, .94);   /* если backdrop-filter не поддерживается */
  --sm-glass-edge: rgba(255, 255, 255, .85);
  --sm-glass-blur: 24px;
  --sm-glass-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 24px 60px -28px rgba(40, 46, 90, .45);

  /* элементы */
  --sm-chip: rgba(255, 255, 255, .65);          /* фон второстепенных кнопок и чипов */
  --sm-input: rgba(255, 255, 255, .8);          /* фон полей ввода */
  --sm-bubble-eva: rgba(255, 255, 255, .75);    /* реплика EVAMIND® */
  --sm-lit: rgba(168, 216, 248, .38);           /* подсветка «зажглась», выбранная вкладка */
  --sm-thread: #FFFFFF;                         /* декоративные светящиеся нити */

  /* шрифты */
  --sm-font-display: 'Montserrat', system-ui, sans-serif;
  --sm-font-display-weight: 300;
  --sm-font-body: 'Onest', system-ui, sans-serif;

  /* скругления */
  --sm-radius: 26px;          /* карточки и панели */
  --sm-radius-field: 14px;    /* поля ввода */
}

/* ---------- 2. Токены: тёмная тема (v25 «Ночь») ---------- */
:root[data-theme="dark"] {
  color-scheme: dark;

  --sm-ink: #F2F4FA;
  --sm-ink-2: #C9CEDF;
  --sm-muted: #8B92AD;
  --sm-accent-text: #A8D8F8;
  --sm-line: rgba(255, 255, 255, .12);
  --sm-faint: rgba(255, 255, 255, .22);

  --sm-bg-color: #07090E;
  --sm-bg-image:
    radial-gradient(ellipse 40% 45% at 18% 22%, rgba(46, 107, 255, .5), rgba(46, 107, 255, 0) 70%),
    radial-gradient(ellipse 38% 40% at 86% 78%, rgba(255, 166, 60, .3), rgba(255, 166, 60, 0) 70%),
    radial-gradient(ellipse 30% 35% at 70% 12%, rgba(40, 200, 190, .22), rgba(40, 200, 190, 0) 70%),
    linear-gradient(180deg, #0A0D14 0%, #07090E 100%);

  --sm-glass: rgba(255, 255, 255, .07);
  --sm-glass-solid: rgba(22, 26, 36, .95);
  --sm-glass-edge: rgba(255, 255, 255, .16);
  --sm-glass-blur: 30px;
  --sm-glass-shadow: inset 0 1px 0 rgba(255, 255, 255, .18), 0 30px 70px -30px rgba(0, 0, 0, .75);

  --sm-chip: rgba(255, 255, 255, .08);
  --sm-input: rgba(255, 255, 255, .06);
  --sm-bubble-eva: rgba(255, 255, 255, .1);
  --sm-lit: rgba(91, 142, 224, .32);
  --sm-thread: #A8D8F8;

  --sm-font-display: 'Geologica', system-ui, sans-serif;
  --sm-font-display-weight: 300;
  --sm-font-body: 'Onest', system-ui, sans-serif;

  --sm-radius: 30px;
  --sm-radius-field: 14px;
}

/* Без data-theme — по настройке системы */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;
    --sm-ink: #F2F4FA;
    --sm-ink-2: #C9CEDF;
    --sm-muted: #8B92AD;
    --sm-accent-text: #A8D8F8;
    --sm-line: rgba(255, 255, 255, .12);
    --sm-faint: rgba(255, 255, 255, .22);
    --sm-bg-color: #07090E;
    --sm-bg-image:
      radial-gradient(ellipse 40% 45% at 18% 22%, rgba(46, 107, 255, .5), rgba(46, 107, 255, 0) 70%),
      radial-gradient(ellipse 38% 40% at 86% 78%, rgba(255, 166, 60, .3), rgba(255, 166, 60, 0) 70%),
      radial-gradient(ellipse 30% 35% at 70% 12%, rgba(40, 200, 190, .22), rgba(40, 200, 190, 0) 70%),
      linear-gradient(180deg, #0A0D14 0%, #07090E 100%);
    --sm-glass: rgba(255, 255, 255, .07);
    --sm-glass-solid: rgba(22, 26, 36, .95);
    --sm-glass-edge: rgba(255, 255, 255, .16);
    --sm-glass-blur: 30px;
    --sm-glass-shadow: inset 0 1px 0 rgba(255, 255, 255, .18), 0 30px 70px -30px rgba(0, 0, 0, .75);
    --sm-chip: rgba(255, 255, 255, .08);
    --sm-input: rgba(255, 255, 255, .06);
    --sm-bubble-eva: rgba(255, 255, 255, .1);
    --sm-lit: rgba(91, 142, 224, .32);
    --sm-thread: #A8D8F8;
    --sm-font-display: 'Geologica', system-ui, sans-serif;
    --sm-radius: 30px;
  }
}

/* ---------- 3. Общие для обеих тем: фирменные цвета ---------- */
:root {
  /* Кнопка основного действия — цвет ядра на груди фигурки EVAMIND®. Одинаковая в обеих темах. */
  --sm-core-top: #4A7DD0;
  --sm-core-bottom: #3566B8;
  --sm-core-glow: rgba(168, 216, 248, .7);      /* свечение ядра #A8D8F8 */
  --sm-core-line: #5B8EE0;                       /* контуры и заливки на карте систем */
  --sm-gold: #D29633;                            /* только знак логотипа и «ошибка найдена» на карте */
  --sm-focus: #A8D8F8;
}

/* ---------- 4. База ---------- */
.sm-app {
  min-height: 100vh;
  margin: 0;
  font-family: var(--sm-font-body);
  font-size: 15px;
  line-height: 1.5;
  color: var(--sm-ink);
  background-color: var(--sm-bg-color);
  background-image: var(--sm-bg-image);
  background-attachment: fixed;
}

.sm-app :focus-visible {
  outline: 2px solid var(--sm-focus);
  outline-offset: 2px;
}

/* ---------- 5. Типографика ---------- */
.sm-display {        /* главный заголовок экрана */
  margin: 0;
  font-family: var(--sm-font-display);
  font-weight: var(--sm-font-display-weight);
  font-size: clamp(36px, 4.4vw, 64px);
  line-height: 1.05;
  letter-spacing: -.015em;
}
.sm-title {          /* заголовок карточки */
  margin: 0;
  font-family: var(--sm-font-display);
  font-weight: var(--sm-font-display-weight);
  font-size: clamp(20px, 2vw, 30px);
  line-height: 1.15;
}
.sm-kicker {         /* надзаголовок: «Сегодня · утро», «Дело дня · из разбора» */
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--sm-accent-text);
}
.sm-text-2 { color: var(--sm-ink-2); }
.sm-muted  { color: var(--sm-muted); font-size: 13px; }
.sm-quote  { font-style: italic; color: var(--sm-ink-2); }
.sm-link   { color: var(--sm-accent-text); font-weight: 600; text-decoration: none; }
.sm-link:hover { text-decoration: underline; }

/* ---------- 6. Стекло: панели и карточки ---------- */
.sm-glass {
  background: var(--sm-glass);
  -webkit-backdrop-filter: blur(var(--sm-glass-blur)) saturate(150%);
  backdrop-filter: blur(var(--sm-glass-blur)) saturate(150%);
  border: 1px solid var(--sm-glass-edge);
  box-shadow: var(--sm-glass-shadow);
  border-radius: var(--sm-radius);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .sm-glass { background: var(--sm-glass-solid); }
}

.sm-card {           /* карточка в чате: утро, дело дня, итог разбора, вечер, мой путь */
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 22px 24px;
}

/* ---------- 7. Кнопки ---------- */
.sm-btn {            /* основное действие: одно-два на экран */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 22px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--sm-core-top), var(--sm-core-bottom));
  color: #FFFFFF;
  font: 600 15px/1.2 var(--sm-font-body);
  text-decoration: none;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), 0 0 22px 2px var(--sm-core-glow);
  transition: filter .15s ease, transform .15s ease;
}
.sm-btn:hover  { filter: brightness(1.07); }
.sm-btn:active { transform: translateY(1px); }
.sm-btn:disabled,
.sm-btn[aria-disabled="true"] { opacity: .45; cursor: default; box-shadow: none; }

.sm-btn-secondary {  /* «Непонятно», «Перенести», «Войти через Яндекс» */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 20px;
  border: 1px solid var(--sm-glass-edge);
  border-radius: 999px;
  background: var(--sm-chip);
  color: var(--sm-ink);
  font: 500 14px/1.2 var(--sm-font-body);
  text-decoration: none;
  cursor: pointer;
}
.sm-btn-secondary:hover { background: var(--sm-lit); }

.sm-btn-icon {       /* круглая кнопка: «＋», «→» в строке ввода */
  width: 44px;
  min-width: 44px;
  padding: 0;
}
.sm-btn-lg { min-height: 52px; padding: 0 30px; font-size: 16px; }

/* ---------- 8. Чипы и метки ---------- */
.sm-chip {           /* области жизни, подсказки-вопросы, вкладки */
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid var(--sm-glass-edge);
  border-radius: 999px;
  background: var(--sm-chip);
  color: var(--sm-ink);
  font: 400 13px/1.2 var(--sm-font-body);
  text-decoration: none;
  cursor: pointer;
}
.sm-chip:hover { background: var(--sm-lit); }
.sm-chip[aria-selected="true"],
.sm-chip.is-lit {    /* «Я и дело — зажглась», выбранная вкладка «Неделя» */
  background: var(--sm-lit);
  box-shadow: 0 0 16px 2px rgba(168, 216, 248, .4);
}

/* ---------- 9. Поля ввода ---------- */
.sm-label { display: block; margin-bottom: 6px; font-size: 12px; color: var(--sm-ink-2); }
.sm-input,
.sm-textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  min-height: 48px;
  padding: 0 16px;
  border: 1px solid var(--sm-line);
  border-radius: var(--sm-radius-field);
  background: var(--sm-input);
  color: var(--sm-ink);
  font: inherit;
}
.sm-textarea { padding: 14px 16px; resize: vertical; }
.sm-input::placeholder,
.sm-textarea::placeholder { color: var(--sm-muted); }
.sm-checkbox { accent-color: var(--sm-core-bottom); width: 16px; height: 16px; }

/* ---------- 10. Чат ---------- */
.sm-chat {           /* колонка ленты кабинета */
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
}
.sm-bubble {
  max-width: 560px;
  margin: 0;
  padding: 14px 18px;
}
.sm-bubble--eva {    /* реплика EVAMIND® */
  align-self: flex-start;
  background: var(--sm-bubble-eva);
  border: 1px solid var(--sm-glass-edge);
  border-radius: 20px 20px 20px 6px;
  color: var(--sm-ink);
}
.sm-bubble--user {   /* сообщение человека */
  align-self: flex-end;
  background: linear-gradient(180deg, var(--sm-core-top), var(--sm-core-bottom));
  border-radius: 20px 20px 6px 20px;
  color: #FFFFFF;
  box-shadow: 0 0 22px 2px var(--sm-core-glow);
}
.sm-typing { color: var(--sm-muted); }

.sm-composer {       /* строка ввода внизу чата */
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px;
  border-radius: 999px;
}
.sm-composer input {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 44px;
  padding: 0 8px;
  border: 0;
  background: transparent;
  color: var(--sm-ink);
  font: inherit;
}
.sm-composer input:focus-visible { outline: none; }
.sm-composer:focus-within { box-shadow: var(--sm-glass-shadow), 0 0 0 2px var(--sm-focus); }

/* ---------- 11. Навигация ---------- */
.sm-rail {           /* боковая панель на компьютере (как в v26) */
  position: sticky;
  top: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 230px;
  height: calc(100vh - 32px);
  box-sizing: border-box;
  padding: 22px 16px;
}
.sm-rail .sm-btn-secondary { justify-content: flex-start; border-radius: 14px; }
@media (max-width: 760px) {    /* на телефоне боковая панель становится строкой над лентой */
  .sm-rail { position: static; flex-direction: row; flex-wrap: wrap; align-items: center; width: auto; height: auto; padding: 12px; }
}

.sm-dock {           /* плавающая капсула снизу (как в v25) */
  display: inline-flex;
  gap: 6px;
  padding: 5px;
  border-radius: 999px;
}
.sm-dock a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 18px;
  border-radius: 999px;
  color: var(--sm-ink);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
}
.sm-dock a[aria-current="page"] { background: var(--sm-lit); }

/* ---------- 12. Помощница EVAMIND® (фигурка) ---------- */
.sm-helper {
  position: fixed;
  right: 28px;
  bottom: 24px;
  z-index: 50;
  width: 72px;
  height: 109px;   /* пропорции оригинала 232 × 350; не обрезать, не перекрашивать */
}
@media (max-width: 640px) {
  .sm-helper { right: 12px; bottom: 16px; width: 60px; height: 91px; }
}

/* ---------- 13. Карта систем: шестигранники ---------- */
.sm-map-node {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 120px;
  text-align: center;
  cursor: pointer;
  background: none;
  border: 0;
  color: var(--sm-ink);
  font: inherit;
}
.sm-map-node svg { width: 56px; height: 62px; }
.sm-map-node__name { margin-top: 4px; font-size: 12px; font-weight: 600; }
.sm-map-node__meta { font-size: 10px; color: var(--sm-muted); }
@media (max-width: 640px) {
  .sm-map-node { width: 76px; }
  .sm-map-node svg { width: 38px; height: 42px; }
  .sm-map-node__name { font-size: 11px; }
  .sm-map-node__meta { display: none; }   /* подробности — в панели системы по нажатию */
}

/* состояние задаётся атрибутом data-state на .sm-map-node */
.sm-hex-outer, .sm-hex-middle, .sm-hex-core { fill: none; stroke: var(--sm-faint); stroke-width: 3; }
.sm-hex-core { fill: var(--sm-faint); stroke: none; }

.sm-map-node[data-state="other"] .sm-hex-outer { stroke-dasharray: 10 8; }   /* другой трек */

.sm-map-node[data-state="error"] .sm-hex-outer  { stroke: var(--sm-core-line); }  /* ошибка найдена, действие не закрыто */
.sm-map-node[data-state="error"] .sm-hex-middle { stroke: var(--sm-gold); }

.sm-map-node[data-state="work"] svg { filter: drop-shadow(0 0 10px rgba(168, 216, 248, .9)); }  /* в работе, разбор не завершён */
.sm-map-node[data-state="work"] .sm-hex-outer { stroke: var(--sm-core-line); stroke-width: 4; stroke-dasharray: 14 10; }

.sm-map-node[data-state="done"] svg { filter: drop-shadow(0 0 14px rgba(168, 216, 248, .95)); }  /* разобрано, есть декларация */
.sm-map-node[data-state="done"] .sm-hex-outer  { stroke: var(--sm-core-line); fill: rgba(168, 216, 248, .25); }
.sm-map-node[data-state="done"] .sm-hex-middle { stroke: var(--sm-core-line); }
.sm-map-node[data-state="done"] .sm-hex-core   { fill: var(--sm-core-line); }

.sm-map-center .sm-hex-outer,
.sm-map-center .sm-hex-middle { stroke: var(--sm-gold); }
.sm-map-center .sm-hex-core   { fill: var(--sm-gold); }

/* направляющие кольца карты — три вложенных шестигранника, как в логотипе */
.sm-map-rings path { fill: none; stroke: var(--sm-thread); }

/* ---------- 14. Движение ---------- */
@media (prefers-reduced-motion: reduce) {
  .sm-btn, .sm-btn-secondary, .sm-chip { transition: none; }
}


/* ТЗ 29.10: мобильный ввод, единые карточки и пояснения терминов. */
html{min-height:100%;background:var(--sm-bg,var(--bg,#f4f6fa))}body{min-height:100dvh}
.evm-term{font:inherit;color:inherit;background:none;border:0;border-bottom:1px dashed currentColor;padding:0;cursor:pointer;text-align:left;line-height:inherit}
.evm-term:focus-visible{outline:2px solid var(--sm-core-line);outline-offset:3px}
.evm-term-note{display:block;white-space:normal;font-size:14px;line-height:1.5;background:var(--sm-glass-bg,var(--paper,#eef3fc));color:var(--sm-ink,var(--ink,#202637));border:1px solid var(--sm-line,#cbd5e1);border-radius:12px;padding:12px;margin:8px 0}
.eva-tariff-grid{align-items:start}.eva-tariff-grid .eva-panel{display:flex;flex-direction:column;gap:10px;padding:20px}.eva-tariff-grid .eva-panel>*{margin-top:0;margin-bottom:0}.eva-tariff-grid .eva-actions{margin-top:8px}
textarea[data-composer]{resize:none;min-height:44px;max-height:168px;overflow-y:auto}
.oc-tabs,.oc-case-tabs{display:flex;gap:8px;flex-wrap:wrap}.oc-tabs>*,.oc-case-tabs>*{flex:1 1 150px;white-space:normal;text-align:center}
/* 30.10.2026: Ева поверх контента; 50% заливка, без прозрачности текста. */
#evg-root{position:relative;z-index:2147483647;--evg-panel-bg:rgba(255,253,248,.5)}
html[data-theme="dark"] #evg-root{--evg-panel-bg:rgba(35,40,56,.5)}
#evg-root .evg-bubble,#evg-root .evg-menu{background:var(--evg-panel-bg);color:var(--sm-ink,var(--evg-fg));opacity:1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
body:has(.sm-helper),body:has(#evg-root){padding-bottom:max(130px,env(safe-area-inset-bottom))}
@media(max-width:640px){.sm-helper{width:52px!important;height:auto!important;right:10px!important;bottom:110px!important;pointer-events:none}.evm-dock,.rz-composer{position:sticky;bottom:0;z-index:30}.map-slot{padding-bottom:110px}}
