/* ─────────────────────────────────────────────────────────────────────────
   ДаЛи · RCA — профессиональная тема (shadcn-токены: slate + строгий синий).
   Значения — HSL-триплеты (используются как hsl(var(--token))).
   Без внешних CDN (air-gapped): системный стек шрифтов.
   ───────────────────────────────────────────────────────────────────────── */

:root {
  --background: 210 40% 99% !important;
  --foreground: 222 47% 11% !important;
  --card: 0 0% 100% !important;
  --card-foreground: 222 47% 11% !important;
  --popover: 0 0% 100% !important;
  --popover-foreground: 222 47% 11% !important;
  --primary: 221 72% 40% !important;            /* строгий индиго-синий */
  --primary-foreground: 210 40% 98% !important;
  --secondary: 210 40% 96% !important;
  --secondary-foreground: 222 47% 15% !important;
  --muted: 210 40% 96% !important;
  --muted-foreground: 215 16% 43% !important;
  --accent: 213 96% 94% !important;             /* светло-голубой акцент */
  --accent-foreground: 221 72% 30% !important;
  --destructive: 0 72% 51% !important;
  --destructive-foreground: 0 0% 98% !important;
  --border: 214 32% 90% !important;
  --input: 214 32% 90% !important;
  --ring: 221 72% 40% !important;
  --radius: 0.55rem !important;
}

.dark, html.dark, [data-theme="dark"] {
  --background: 222 47% 8% !important;
  --foreground: 210 40% 96% !important;
  --card: 222 44% 11% !important;
  --card-foreground: 210 40% 96% !important;
  --popover: 222 44% 11% !important;
  --popover-foreground: 210 40% 96% !important;
  --primary: 213 94% 62% !important;            /* яркий синий на тёмном */
  --primary-foreground: 222 47% 11% !important;
  --secondary: 217 33% 16% !important;
  --secondary-foreground: 210 40% 96% !important;
  --muted: 217 33% 16% !important;
  --muted-foreground: 215 20% 65% !important;
  --accent: 217 40% 22% !important;
  --accent-foreground: 210 40% 96% !important;
  --destructive: 0 63% 47% !important;
  --destructive-foreground: 0 0% 98% !important;
  --border: 217 33% 20% !important;
  --input: 217 33% 22% !important;
  --ring: 213 94% 62% !important;
}

/* Современный системный шрифт (без CDN) */
html, body, button, input, textarea, select {
  font-family: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI",
               Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
code, pre, kbd, .font-mono {
  font-family: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace !important;
}

/* Читабельная колонка сообщений */
#message-container, .cl-message-container { line-height: 1.62; }

/* ── Анти-переполнение по ширине (заметно в Firefox) ──────────────────────
   Флекс-дети по умолчанию имеют min-width:auto и не сжимаются уже своего
   контента → длинные URL/таблицы/код в ответе распирают строку за край окна.
   min-width:0 разрешает сжатие; длинные слова переносим; overflow-x:hidden — страховка. */
html, body { overflow-x: hidden; max-width: 100%; }
.ai-message, .user-message, .message-content { min-width: 0; }
.message-content { overflow-wrap: anywhere; word-break: break-word; }
.message-content pre { overflow-x: auto; max-width: 100%; }
#dali-logo { height: 30px !important; width: auto !important; max-width: 150px; flex: 0 0 auto; }

/* Таблицы (RCA: Исикава / первопричины) — карточный, аккуратный вид */
table {
  border-collapse: separate; border-spacing: 0;
  width: 100%; margin: 0.75rem 0; font-size: 0.9rem;
  border: 1px solid hsl(var(--border)); border-radius: var(--radius); overflow: hidden;
}
thead th {
  background: hsl(var(--secondary)); color: hsl(var(--secondary-foreground));
  font-weight: 600; text-align: left;
}
th, td { padding: 0.5rem 0.75rem; border-bottom: 1px solid hsl(var(--border)); vertical-align: top; }
tbody tr:last-child td { border-bottom: none; }
tbody tr:nth-child(even) { background: hsl(var(--muted) / 0.4); }

/* Заголовки внутри ответа */
.markdown-body h1, .markdown-body h2, .markdown-body h3 { font-weight: 650; letter-spacing: -0.01em; }
h2 { border-bottom: 1px solid hsl(var(--border)); padding-bottom: 0.25rem; }

/* Разделитель источников / цитаты */
hr { border: none; border-top: 1px solid hsl(var(--border)); margin: 1rem 0; }
blockquote {
  border-left: 3px solid hsl(var(--primary)); background: hsl(var(--accent) / 0.4);
  padding: 0.5rem 0.85rem; border-radius: 0 var(--radius) var(--radius) 0; color: hsl(var(--foreground));
}

/* Инлайновые метки [ID:n] — читаемый моно-акцент */
p code, li code, td code {
  background: hsl(var(--accent) / 0.6); color: hsl(var(--accent-foreground));
  padding: 0.05rem 0.3rem; border-radius: 4px; font-size: 0.85em;
}

/* Поле ввода — мягкая тень/скругление */
[data-testid="input-composer"], .cl-input, textarea {
  border-radius: var(--radius) !important;
}

/* Кнопки — плотные, современные */
button { border-radius: calc(var(--radius) - 2px); }

/* Приветственное сообщение / заголовок — чуть плотнее */
a { color: hsl(var(--primary)); }
