/* ============================================================
   Нормодок — кастомный стиль Chainlit («Инженерный чертёж»)
   Палитра/шрифты заданы в public/theme.json (графит + сигнальный
   cyan, Space Grotesk + JetBrains Mono). Здесь — фирменная
   атмосфера и классы честных статусов (черновик/трассировка).
   Цвета берём из HSL-переменных темы: hsl(var(--primary)) и т.п.
   ============================================================ */

/* Лёгкая инженерная сетка как фон (атмосфера; не мешает контенту). */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image:
    linear-gradient(hsl(var(--primary) / 0.05) 1px, transparent 1px),
    linear-gradient(90deg, hsl(var(--primary) / 0.05) 1px, transparent 1px);
  background-size: 30px 30px;
  -webkit-mask-image: radial-gradient(ellipse 130% 80% at 50% 0%, #000 35%, transparent 100%);
  mask-image: radial-gradient(ellipse 130% 80% at 50% 0%, #000 35%, transparent 100%);
}

/* Типографика контента сообщений (рендер markdown → стандартные теги). */
.cl-markdown h1,
.cl-markdown h2,
.cl-markdown h3 {
  font-family: var(--font-sans);
  letter-spacing: -0.01em;
}
.cl-markdown a {
  color: hsl(var(--primary));
  text-decoration-color: hsl(var(--primary) / 0.5);
}
.cl-markdown code,
.cl-markdown pre {
  font-family: var(--font-mono);
}

/* Цитата как честный статусный колаут — заметная cyan-полоса слева. */
.cl-markdown blockquote {
  border-left: 3px solid hsl(var(--primary));
  background: hsl(var(--primary) / 0.06);
  padding: 0.5rem 0.9rem;
  border-radius: 0 4px 4px 0;
}

/* ====== КЛАССЫ ЧЕСТНЫХ СТАТУСОВ (для кастом-элементов UI-2/UI-3) ====== */
/* reliability/kit_reliability=draft нельзя прятать — крупно и контрастно. */
.nd-banner {
  font-family: var(--font-sans);
  border-radius: 8px;
  padding: 0.9rem 1.1rem;
  margin: 0.4rem 0;
  border: 1px solid transparent;
  font-size: 1.02rem;
}
.nd-banner-draft {
  background: hsl(38 92% 50% / 0.14);
  border-color: hsl(38 92% 50% / 0.55);
  color: hsl(38 92% 62%);
  font-weight: 600;
}
.nd-banner-ok {
  background: hsl(var(--primary) / 0.12);
  border-color: hsl(var(--primary) / 0.5);
  color: hsl(var(--primary));
}
.nd-banner-attach {
  background: hsl(var(--muted) / 0.6);
  border-color: hsl(var(--border));
  color: hsl(var(--muted-foreground));
  font-size: 0.92rem;
}

/* Статус-пилюли трассировки/нормоконтроля. */
.nd-pill {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  padding: 0.12rem 0.5rem;
  border-radius: 4px;
  text-transform: uppercase;
}
.nd-pill-covered {
  background: hsl(160 60% 45% / 0.18);
  color: hsl(160 65% 55%);
}
.nd-pill-missing {
  background: hsl(0 72% 51% / 0.18);
  color: hsl(0 80% 68%);
}
.nd-pill-weak {
  background: hsl(38 92% 50% / 0.18);
  color: hsl(38 92% 62%);
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
  }
}

/* ====== Стартовые карточки (лаунчер «Инженерный чертёж», Starters) ====== */
/* Chainlit рендерит каждый Starter как элемент id="starter-<label>" — стилизуем под чертёжную карточку. */
[id^="starter-"] {
  position: relative;
  border: 1px solid hsl(var(--primary) / 0.35) !important;
  border-radius: 8px !important;
  background: hsl(var(--card)) !important;
  color: hsl(var(--foreground)) !important;
  padding: 0.6rem 0.9rem !important;
  transition: border-color 0.2s ease, transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
[id^="starter-"]:hover {
  border-color: hsl(var(--primary)) !important;
  background: hsl(var(--primary) / 0.1) !important;
  transform: translateY(-3px);
  box-shadow: 0 6px 18px hsl(var(--primary) / 0.15);
}
/* угловой регистрационный штрих — как на рамке чертежа */
[id^="starter-"]::after {
  content: "";
  position: absolute;
  top: 6px;
  right: 6px;
  width: 9px;
  height: 9px;
  border-top: 1px solid hsl(var(--primary));
  border-right: 1px solid hsl(var(--primary));
  opacity: 0.55;
  pointer-events: none;
}
[id^="starter-"] img {
  border-radius: 4px;
}
