/* ──────────────────────────────────────────────────────────────────────
   «Решение» — стили раздела. Палитра и типографика — из main.css (:root).
   ────────────────────────────────────────────────────────────────────── */

.solve-crumbs {
  display: flex; gap: 8px; align-items: baseline;
  font-size: 13px; color: var(--ink-muted); margin-bottom: 18px;
}
.solve-crumbs a { color: var(--ink-muted); }
.solve-crumbs a:hover { color: var(--integral); }

.solve-stats { font-family: var(--font-mono); font-size: 13px; margin-top: 16px; }

/* Легенда меток */
.solve-legend { max-width: 860px; font-size: 14px; color: var(--ink-soft); }
.solve-legend dt { font-weight: 600; margin-top: 10px; }
.solve-legend dd { margin: 2px 0 0 0; }

/* Карточки задач */
.solve-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 18px; margin-top: 20px;
}
.solve-card { color: inherit; display: flex; flex-direction: column; gap: 10px; }
.solve-card:hover { color: inherit; border-color: var(--ink); }
.solve-card__id { font-family: var(--font-mono); font-size: 12px; color: var(--ink-muted); }
.solve-card__eq {
  font-family: var(--font-mono); font-size: 14px; line-height: 1.45;
  color: var(--ink); overflow-wrap: anywhere; flex: 1;
}

/* Метки */
.solve-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.solve-badge {
  display: inline-block; font-size: 12px; line-height: 1.3;
  padding: 3px 8px; border: 1px solid var(--rule); background: var(--paper);
  color: var(--ink-soft); white-space: nowrap;
}
.solve-badge--good    { background: var(--verify-soft); border-color: var(--verify); color: var(--ink); }
.solve-badge--ok      { background: var(--primary-soft); border-color: var(--primary); color: var(--ink); }
.solve-badge--warn    { background: var(--integral-soft); border-color: var(--integral); color: var(--ink); }
.solve-badge--bad     { background: #f1d6d6; border-color: var(--error); color: var(--ink); }
.solve-badge--neutral { background: var(--paper-warm); }

/* Отчёт */
.solve-facts { display: grid; grid-template-columns: max-content 1fr; gap: 6px 18px; font-size: 15px; }
.solve-facts dt { color: var(--ink-muted); }
.solve-facts dd { margin: 0; }
.solve-statement h3 { font-size: 18px; margin: 18px 0 6px; }
.solve-statement code, .solve-card__eq code { font-family: var(--font-mono); }
.solve-statement code { white-space: pre-wrap; overflow-wrap: anywhere; }
.solve-statement .katex-display, .solve-text .katex-display { overflow-x: auto; overflow-y: hidden; }
.solve-lean, .solve-code {
  font-family: var(--font-mono); font-size: 13px; line-height: 1.5;
  background: var(--surface); border: 1px solid var(--rule);
  padding: 12px 14px; overflow-x: auto; white-space: pre; max-height: 480px;
}
.solve-lean code, .solve-code code {
  background: none; border: none; padding: 0; font-size: inherit; color: inherit;
}
.solve-col { max-width: var(--content); }
.solve-solution {
  border: 1px solid var(--rule); background: var(--surface);
  padding: 16px 18px; margin-top: 14px;
}
.solve-solution__idea { font-style: italic; color: var(--ink-soft); margin-bottom: 10px; }
.solve-text { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 15px; line-height: 1.6; }
.solve-solution details { margin-top: 10px; }
.solve-solution summary { cursor: pointer; font-size: 13px; color: var(--ink-muted); }
.solve-note { font-size: 13px; color: var(--ink-muted); max-width: 860px; }
.solve-dead li { margin: 6px 0; color: var(--ink-soft); }

/* Пространство графа */
.solve-graph-shell {
  display: grid; grid-template-columns: minmax(260px, 30%) 1fr;
  border: 1.5px solid var(--rule); background: var(--surface); min-height: 72vh;
}
.solve-panel {
  border-right: 1px solid var(--rule); padding: 16px 18px;
  overflow-y: auto; max-height: 78vh; font-size: 14px;
}
.solve-panel__type { font-family: var(--font-mono); font-size: 12px; color: var(--ink-muted); }
.solve-panel h3 { font-size: 17px; margin: 6px 0 10px; overflow-wrap: anywhere; }
.solve-canvas { position: relative; min-height: 72vh; }
.solve-canvas__msg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--ink-muted); }
.solve-toolbar { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; font-size: 13px; margin: 12px 0; }
.solve-swatch { display: inline-block; width: 12px; height: 12px; border: 1px solid var(--ink-soft); vertical-align: -1px; margin-right: 4px; }

@media (max-width: 860px) {
  .solve-graph-shell { grid-template-columns: 1fr; }
  .solve-panel { border-right: none; border-bottom: 1px solid var(--rule); max-height: none; }
  .solve-facts { grid-template-columns: 1fr; }
}

/* Граф v2: подсказка, сводка, панель (заключение, схема поддерева) */
.solve-howto { margin: 14px 0 4px; max-width: 900px; font-size: 14px; color: var(--ink-soft); }
.solve-howto summary { cursor: pointer; font-weight: 500; color: var(--ink); }
.solve-howto p { margin: 8px 0 0; line-height: 1.55; }
.solve-summary { font-family: var(--font-mono); font-size: 13px; color: var(--ink-soft); margin: 10px 0 0; }
.solve-btn { padding: 4px 10px; font-size: 13px; }
.solve-legend-row { margin-top: -4px; color: var(--ink-muted); }
.solve-panel__role { font-size: 13px; margin: 4px 0 10px; }
.solve-panel__block { margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--rule-soft); }
.solve-panel__block h3 { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-muted); margin: 0 0 8px; }
.solve-tree { list-style: none; margin: 4px 0 0; padding-left: 14px; border-left: 1px solid var(--rule); font-size: 13px; }
.solve-tree li { margin: 4px 0; }
.solve-tree li.is-dead > a { color: var(--ink-muted); text-decoration: line-through; }
.solve-link { color: var(--primary); cursor: pointer; }
.solve-link:hover { color: var(--integral); }

/* Итерация 3: уравнение в академической записи (KaTeX), статус «что решено», фильтр, подсказки */
.solve-card[hidden], .solve-group[hidden] { display: none !important; }
.solve-card__eq.js-math { font-family: inherit; font-size: 15px; overflow-x: auto; overflow-y: hidden; }
.solve-card__eq .katex-display { margin: 2px 0; text-align: left; }
.solve-card__eq .katex-display > .katex { text-align: left; }
.solve-card__note { font-size: 12px; color: var(--ink-muted); margin-top: -4px; }
.solve-eq { margin: 4px 0 2px; font-size: 21px; font-weight: 400; line-height: 1.3; overflow-x: auto; overflow-y: hidden; }
.solve-eq--sub { font-size: 18px; }
.solve-eq .katex-display { margin: 6px 0; text-align: left; }
.solve-eq .katex-display > .katex { text-align: left; }
.solve-eq__plain { font-family: var(--font-mono); font-size: 20px; }
.solve-eq__note { font-size: 13px; color: var(--ink-muted); margin: 0 0 12px; }
.solve-badge--status { font-weight: 600; }
.solve-verdict {
  max-width: 860px; margin: 14px 0 0; padding: 10px 14px; font-size: 15px; line-height: 1.5;
  background: var(--surface); border: 1px solid var(--rule); border-left: 4px solid var(--rule);
}
.solve-verdict--good { border-left-color: var(--verify); }
.solve-verdict--ok   { border-left-color: var(--primary); }
.solve-verdict--warn { border-left-color: var(--integral); }
.solve-verdict--bad  { border-left-color: var(--error); }
.solve-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.solve-chip {
  font: inherit; font-size: 13px; cursor: pointer; padding: 4px 10px;
  border: 1px solid var(--rule); background: var(--paper); color: var(--ink-soft);
}
.solve-chip span { color: var(--ink-muted); margin-left: 4px; }
.solve-chip--good { border-color: var(--verify); }
.solve-chip--ok   { border-color: var(--primary); }
.solve-chip--warn { border-color: var(--integral); }
.solve-chip--bad  { border-color: var(--error); }
.solve-chip.is-active { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.solve-chip.is-active span { color: var(--paper); }
.solve-keys { display: grid; grid-template-columns: max-content 1fr; gap: 6px 12px; margin: 10px 0 6px; }
.solve-keys dt { margin: 0; }
.solve-keys dd { margin: 0; }
.solve-key { display: inline-block; font-size: 12px; padding: 2px 8px; border: 1px solid; white-space: nowrap; color: var(--ink); }
.solve-tip {
  position: absolute; z-index: 20; max-width: 260px; pointer-events: none;
  background: var(--surface); border: 1px solid var(--rule); box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
  padding: 8px 10px; font-size: 12px; line-height: 1.4; color: var(--ink-soft);
}
.solve-tip b { color: var(--ink); }
.solve-tip__status { margin-top: 4px; color: var(--ink); }
.solve-panel__eq { overflow-x: auto; overflow-y: hidden; margin-bottom: 6px; }
@media (max-width: 860px) {
  .solve-keys { grid-template-columns: 1fr; }
  .solve-eq { font-size: 18px; }
}
.solve-badge--part   { background: #f7edcc; border-color: #b58a1b; color: var(--ink); }
.solve-chip--part    { border-color: #b58a1b; }
.solve-verdict--part { border-left-color: #b58a1b; }
