/* Краткое ТЗ: отдельная карточка, тот же язык, что spec-widget */

#spec-brief-card {
  position: relative;
}

#spec-brief-card .spec-brief-body {
  position: relative;
  min-height: 56px;
  padding-bottom: 0;
}

/*
 * .dropzone и этот блок задают display:flex — без этого [hidden] может не скрывать
 * элемент (равная специфичность, наш CSS ниже UA по порядку в каскаде).
 */
#spec-brief-card .spec-brief-loading[hidden],
#spec-brief-card .spec-brief-drop[hidden] {
  display: none !important;
}

/* Область загрузки: та же геометрия, что у .dropzone — без скачков верстки */
.spec-brief-body-main {
  position: relative;
  min-height: 112px;
}

.spec-brief-loading {
  box-sizing: border-box;
  margin: 0 12px 12px;
  min-height: 112px;
  padding: 22px 16px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  border-radius: 8px;
  border: 2px dashed var(--dashed-border);
  background: color-mix(in srgb, var(--card-bg) 96%, var(--accent) 4%);
}

.spec-brief-loading__caption {
  margin: 0;
  max-width: 280px;
  text-align: center;
  font-size: 12px;
  line-height: 1.45;
  font-weight: 500;
  color: var(--text-secondary);
}

/* Одно кольцо + transform — дёшево для GPU; без blur/filter */
.spec-brief-loading__ring {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 3px solid color-mix(in srgb, var(--accent) 18%, var(--card-border));
  border-top-color: var(--accent, #0078d4);
  animation: spec-brief-load-spin 0.72s linear infinite;
  flex-shrink: 0;
}

@keyframes spec-brief-load-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .spec-brief-loading__ring {
    animation: none;
    border-top-color: color-mix(in srgb, var(--accent) 65%, var(--card-border));
    opacity: 0.92;
  }
}

.spec-brief-head-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* Модалка выбора типа запроса (до отправки в LLM): разметка .spec-brief-rm-* в index.html;
   габариты и «премиум»-оформление — селектор .spec-brief-rm-dialog сразу после .spec-brief-result-dialog
   (иначе max-width 1120px перебивает компактную ширину). */
.spec-brief-rm-body {
  padding: 16px 20px;
  box-sizing: border-box;
}

.spec-brief-rm-lead {
  margin: 0;
  font-size: 13px;
  line-height: 1.58;
  letter-spacing: -0.01em;
  color: color-mix(in srgb, var(--text-secondary) 96%, var(--text) 4%);
}

.spec-brief-rm-actions {
  margin-top: 14px;
}

.spec-brief-rm-actions .spec-brief-footer-btn {
  width: 100%;
  min-height: 40px;
}

.spec-brief-hw-seg--rm-dialog {
  width: 100%;
  box-sizing: border-box;
  margin-top: 16px;
}

.spec-brief-drop {
  /* База полностью из .dropzone (cards.css), здесь только уникальные дополнения */
  gap: 4px;
}

.spec-brief-drop:hover,
.spec-brief-drop:focus-visible {
  outline: none;
}

.spec-brief-meta {
  font-size: 11px;
  line-height: 1.45;
  color: var(--text-secondary);
  margin: 10px 12px 0;
  min-height: 0;
  display: none;
}

.spec-brief-err {
  margin: 8px 12px 0;
  font-size: 12px;
  line-height: 1.45;
  color: #c44;
  display: none;
}

html[data-theme='light'] .spec-brief-err {
  color: #b00020;
}

.spec-brief-spinner {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid color-mix(in srgb, var(--text-secondary) 35%, transparent);
  border-top-color: var(--accent, #0078d4);
  border-radius: 50%;
  animation: spec-brief-spin 0.65s linear infinite;
  vertical-align: -2px;
  margin-right: 6px;
}

@keyframes spec-brief-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Модальное окно с таблицей (специфичность выше .spec-name-modal из projects.css).
   Внешние поля оверлея — тот же вертикальный ритм, что у рабочей области проектов (.proj-workspace: 12px 16px 18px). */
.spec-name-modal.spec-brief-result-overlay {
  /* z-index наследует .spec-name-modal из projects.css */
  padding: max(12px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right))
    max(18px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  align-items: center;
  justify-content: center;
}

.spec-name-dialog.spec-brief-result-dialog {
  width: 100%;
  max-width: min(96vw, 1120px);
  max-height: min(90vh, 920px);
  height: auto;
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  /* Как основной фон страницы — без «стеклянной» подложки, читаемость важнее */
  background: var(--bg);
  box-shadow: var(--auth-modal-shadow);
}

[data-style='glass'] .spec-name-dialog.spec-brief-result-dialog {
  background: var(--bg) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.spec-name-dialog.spec-brief-result-dialog:focus {
  outline: none;
}

.spec-name-dialog.spec-brief-result-dialog .spec-name-dialog__header {
  padding: 14px 16px 12px;
  gap: 14px;
  background: color-mix(in srgb, var(--bg) 93%, var(--text) 7%);
  border-bottom: 1px solid color-mix(in srgb, var(--card-border) 55%, transparent);
}

.spec-name-dialog.spec-brief-result-dialog .spec-name-dialog__title {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -0.03em;
}

.spec-name-dialog.spec-brief-result-dialog .spec-name-dialog__icon {
  width: 40px;
  height: 40px;
  border-radius: 11px;
  background: linear-gradient(
    155deg,
    color-mix(in srgb, var(--accent, #0078d4) 92%, #fff 8%),
    color-mix(in srgb, var(--accent, #0078d4) 72%, #001a33)
  );
  box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 22%, transparent);
}

.spec-name-dialog.spec-brief-result-dialog .spec-name-dialog__x:hover {
  background: color-mix(in srgb, var(--row-hover) 90%, transparent);
  color: var(--text);
}

.spec-name-dialog.spec-brief-result-dialog .spec-name-dialog__x:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent, #0078d4) 70%, transparent);
  outline-offset: 2px;
}

/* Компактная модалка «Тип запроса»: тройной селектор перебивает размеры окна с таблицей */
.spec-name-modal.spec-brief-request-mode-overlay {
  background: rgba(6, 8, 12, 0.58);
  /* Чуть слабее blur, чем у общего .spec-name-modal — меньше работы композитора */
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.spec-name-dialog.spec-brief-result-dialog.spec-brief-rm-dialog {
  width: 100%;
  max-width: min(96vw, 420px);
  max-height: none;
  border-radius: 16px;
  background: var(--card-bg);
  box-shadow: var(--auth-modal-shadow);
}

[data-style='glass'] .spec-name-dialog.spec-brief-result-dialog.spec-brief-rm-dialog {
  background: var(--card-bg) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.spec-name-dialog.spec-brief-result-dialog.spec-brief-rm-dialog .spec-name-dialog__header {
  padding: 18px 18px 14px;
  gap: 14px;
  align-items: flex-start;
  background: color-mix(in srgb, var(--bg) 91%, var(--text) 9%);
  border-bottom: 1px solid color-mix(in srgb, var(--card-border) 50%, transparent);
}

.spec-name-dialog.spec-brief-result-dialog.spec-brief-rm-dialog .spec-name-dialog__title {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.035em;
  line-height: 1.28;
}

.spec-name-dialog.spec-brief-result-dialog.spec-brief-rm-dialog .spec-name-dialog__icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
}

.spec-name-dialog.spec-brief-result-dialog.spec-brief-rm-dialog .spec-name-dialog__x {
  margin-top: 1px;
}

.spec-name-dialog.spec-brief-result-dialog.spec-brief-rm-dialog .spec-brief-hw-seg--rm-dialog {
  display: flex;
  align-items: stretch;
  padding: 4px;
  border-radius: 12px;
  background: color-mix(in srgb, var(--bg) 78%, var(--text) 22%);
  border: 1px solid color-mix(in srgb, var(--card-border) 62%, transparent);
  box-shadow:
    inset 0 1px 2px rgba(0, 0, 0, 0.14),
    inset 0 0 0 1px color-mix(in srgb, var(--text) 4%, transparent);
}

html[data-theme='light']
  .spec-name-dialog.spec-brief-result-dialog.spec-brief-rm-dialog
  .spec-brief-hw-seg--rm-dialog {
  background: color-mix(in srgb, var(--bg) 94%, var(--text) 6%);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}

.spec-name-dialog.spec-brief-result-dialog.spec-brief-rm-dialog .spec-brief-hw-seg--rm-dialog .spec-brief-hw-seg__btn {
  position: relative;
  flex: 1 1 50%;
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 10px 12px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: -0.02em;
  border-radius: 9px;
  background: transparent;
  color: var(--text-secondary);
  transition:
    background 0.18s ease,
    color 0.18s ease,
    box-shadow 0.18s ease;
}

.spec-name-dialog.spec-brief-result-dialog.spec-brief-rm-dialog .spec-brief-hw-seg--rm-dialog .spec-brief-hw-seg__btn--active {
  color: var(--text);
  background: color-mix(in srgb, var(--card-bg) 62%, var(--accent, #0078d4) 38%);
  box-shadow:
    0 1px 3px rgba(0, 0, 0, 0.12),
    0 0 0 1px color-mix(in srgb, var(--accent, #0078d4) 48%, transparent);
}

html[data-theme='dark']
  .spec-name-dialog.spec-brief-result-dialog.spec-brief-rm-dialog
  .spec-brief-hw-seg--rm-dialog
  .spec-brief-hw-seg__btn--active {
  background: color-mix(in srgb, var(--card-bg) 40%, var(--accent, #0078d4) 60%);
  box-shadow:
    0 2px 10px rgba(0, 0, 0, 0.38),
    0 0 0 1px color-mix(in srgb, var(--accent, #0078d4) 44%, transparent);
}

.spec-name-dialog.spec-brief-result-dialog.spec-brief-rm-dialog .spec-brief-hw-seg--rm-dialog .spec-brief-hw-seg__btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent, #0078d4) 55%, transparent);
  outline-offset: 2px;
}

.spec-name-dialog.spec-brief-result-dialog.spec-brief-rm-dialog .spec-brief-footer-btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent, #0078d4) 58%, transparent);
  outline-offset: 2px;
}

.spec-name-dialog.spec-brief-result-dialog.spec-brief-rm-dialog .spec-brief-footer-btn--secondary:active:not(:disabled),
.spec-name-dialog.spec-brief-result-dialog.spec-brief-rm-dialog .spec-brief-footer-btn--primary:active:not(:disabled) {
  filter: brightness(0.97);
}

@media (prefers-reduced-motion: reduce) {
  .spec-name-dialog.spec-brief-result-dialog.spec-brief-rm-dialog {
    animation: none;
  }
}

/* Длинный контент таблицы: ограничиваем высоту и скроллим тело модалки. */
.spec-brief-result-stack {
  flex: 1 1 auto;
  min-height: 0;
  max-height: min(72vh, 800px);
  box-sizing: border-box;
  width: 100%;
  padding: 12px 16px 18px;
  overflow: auto;
  background: var(--bg);
}

/* Список истории: тело модалки по высоте контента, без «пустой» середины. */
.spec-name-dialog.spec-brief-result-dialog.spec-brief-result-dialog--history-list .spec-brief-result-stack {
  flex: 0 1 auto;
  padding-top: 10px;
  padding-bottom: 10px;
}


/* Резюме (notes): внизу панели, заголовок «Резюме» — лёгкий акцент */
.spec-brief-summary {
  margin: 14px 0 0;
  padding: 12px 14px;
  border-radius: 11px;
  border: 1px solid color-mix(in srgb, var(--accent) 24%, var(--card-border));
  background: color-mix(in srgb, var(--accent-light) 42%, var(--card-bg));
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--accent) 8%, transparent);
}

.spec-brief-summary__title {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin: 0 0 10px;
}

.spec-brief-summary__text {
  margin: 0;
  font-size: 12px;
  line-height: 1.55;
  color: var(--text);
}

.spec-brief-table-wrap {
  overflow-x: auto;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--card-border) 72%, transparent);
}

/* Режим железа: без второй «подложки» — белая карточка только у .spec-brief-table-inner-wrap */
.spec-brief-table-wrap--hardware {
  overflow-x: auto;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

/* «Дополнительно» — над таблицей (над ним может быть блок «Внимание») */
.spec-brief-context-lines {
  margin: 0 0 16px;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid var(--card-border);
  background: color-mix(in srgb, var(--card-bg) 97%, var(--text) 3%);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--text) 5%, transparent);
}

.spec-brief-context-lines__title {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin: 0 0 10px;
}

.spec-brief-context-lines__p {
  margin: 0 0 8px;
  font-size: 12px;
  line-height: 1.55;
  color: var(--text);
}

.spec-brief-context-lines__p:last-child {
  margin-bottom: 0;
}

/* Несколько таблиц (сервер / СХД / …): секции с компактным заголовком */
.spec-brief-tables-root {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.spec-brief-device-section {
  margin: 0;
}

.spec-brief-device-section__head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin: 0 0 10px;
}

.spec-brief-kind-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 11px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.055em;
  text-transform: uppercase;
  color: var(--text-secondary);
  background: color-mix(in srgb, var(--card-bg) 82%, var(--accent) 18%);
  border: 1px solid color-mix(in srgb, var(--card-border) 58%, transparent);
}

.spec-brief-device-section__qty {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--text-secondary);
  white-space: nowrap;
}

.spec-brief-device-section__title {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.022em;
  line-height: 1.35;
  color: var(--text);
  flex: 1;
  min-width: 0;
}

.spec-brief-table-inner-wrap {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--card-border);
  background: var(--card-bg);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--card-border) 45%, transparent);
}

.spec-brief-device-section--solo .spec-brief-device-section__head {
  display: none;
}

/* Двухколоночная расшифровка: зебра, только горизонтали, плотные фоны — как премиальная таблица */
.spec-brief-data-table--hardware {
  table-layout: auto;
  width: 100%;
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: -0.012em;
  -webkit-font-smoothing: antialiased;
}

.spec-brief-data-table--hardware th,
.spec-brief-data-table--hardware td {
  border-left: none;
  border-right: none;
  padding: 12px 14px;
}

.spec-brief-data-table--hardware th {
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--text);
  background: color-mix(in srgb, var(--card-bg) 90%, var(--text) 10%);
  border-bottom: 1px solid var(--table-border, var(--card-border));
  padding-top: 12px;
  padding-bottom: 11px;
}

.spec-brief-data-table--hardware tbody tr:nth-child(odd) td {
  background-color: var(--card-bg);
}

.spec-brief-data-table--hardware tbody tr:nth-child(even) td {
  background-color: var(--row-alt);
}

/* Чуть заметнее зебра, чем глобальный --row-alt (без полупрозрачных «мытых» слоёв) */
html[data-theme='dark'] .spec-brief-data-table--hardware tbody tr:nth-child(even) td {
  background-color: color-mix(in srgb, var(--card-bg) 94%, #ffffff 6%);
}

html[data-theme='light'] .spec-brief-data-table--hardware tbody tr:nth-child(even) td {
  background-color: color-mix(in srgb, var(--card-bg) 96%, #000000 4%);
}

.spec-brief-data-table--hardware tbody tr:hover td {
  background-color: var(--row-hover);
}

.spec-brief-data-table--hardware tbody tr:last-child td {
  border-bottom: none;
}

.spec-brief-data-table--hardware tbody td {
  border-bottom: 1px solid var(--table-border, var(--card-border));
}

/*
 * Первая колонка — по ширине самого длинного ярлыка (width:1% + nowrap — классический приём);
 * справа компактный зазор до «Характеристики» (вторая колонка — чуть меньше padding слева).
 */
.spec-brief-data-table--hardware th:first-child,
.spec-brief-data-table--hardware .spec-brief-hw-component {
  width: 1%;
  padding-right: 10px;
  white-space: nowrap;
  vertical-align: top;
  hyphens: none;
  word-break: normal;
}

.spec-brief-data-table--hardware thead th:nth-child(2),
.spec-brief-data-table--hardware .spec-brief-hw-value {
  padding-left: 10px;
}

.spec-brief-data-table--hardware .spec-brief-hw-component {
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--text);
}

/* Одна ширина первой колонки во всех блоках (значение — JS: max по ячейкам). */
.spec-brief-tables-root.spec-brief-tables-root--hw-col-sync .spec-brief-data-table--hardware {
  table-layout: fixed;
}

.spec-brief-tables-root.spec-brief-tables-root--hw-col-sync .spec-brief-data-table--hardware thead th:first-child,
.spec-brief-tables-root.spec-brief-tables-root--hw-col-sync .spec-brief-data-table--hardware tbody td.spec-brief-hw-component {
  width: var(--spec-brief-hw-comp-px);
  min-width: var(--spec-brief-hw-comp-px);
  max-width: var(--spec-brief-hw-comp-px);
  box-sizing: border-box;
}

.spec-brief-tables-root.spec-brief-tables-root--hw-col-sync .spec-brief-data-table--hardware thead th:first-child {
  white-space: nowrap;
}

.spec-brief-tables-root.spec-brief-tables-root--hw-col-sync .spec-brief-data-table--hardware tbody td.spec-brief-hw-component {
  white-space: normal;
  overflow-wrap: break-word;
}

.spec-brief-data-table--hardware .spec-brief-hw-value {
  min-width: 0;
  color: var(--text-secondary);
  font-weight: 400;
}

.spec-brief-data-table--hardware .spec-brief-hw-bullets {
  margin: 0;
  padding-left: 1.15em;
}

.spec-brief-data-table--hardware .spec-brief-hw-bullets li {
  margin: 0.35em 0;
}


.spec-brief-data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  line-height: 1.45;
}

.spec-brief-data-table th,
.spec-brief-data-table td {
  padding: 10px 12px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid color-mix(in srgb, var(--card-border) 62%, transparent);
}

.spec-brief-data-table th {
  font-weight: 600;
  letter-spacing: -0.02em;
  background: color-mix(in srgb, var(--row-hover) 38%, var(--card-bg));
  position: sticky;
  top: 0;
  z-index: 1;
}

.spec-brief-data-table:not(.spec-brief-data-table--hardware) tbody tr:last-child td {
  border-bottom: none;
}

.spec-brief-data-table tbody tr {
  transition: background-color 0.16s ease;
}

.spec-brief-data-table tbody tr:hover td {
  background-color: rgba(255, 255, 255, 0.04);
}

html[data-theme='light'] .spec-brief-data-table tbody tr:hover td {
  background-color: rgba(0, 0, 0, 0.035);
}

.spec-brief-conf {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.spec-brief-conf--high {
  background: color-mix(in srgb, #34c759 18%, var(--card-bg));
  color: #1a7a37;
}
.spec-brief-conf--medium {
  background: color-mix(in srgb, #ff9500 22%, var(--card-bg));
  color: #b35c00;
}
.spec-brief-conf--low {
  background: color-mix(in srgb, #ff3b30 16%, var(--card-bg));
  color: #b00020;
}

html[data-theme='light'] .spec-brief-conf--high {
  color: #0f5c28;
}
html[data-theme='light'] .spec-brief-conf--low {
  color: #8e0000;
}

/* Переключатель развёрнутый / упрощённый (железо) */
.spec-brief-hw-toolbar {
  margin: 0 0 12px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 10px;
}

.spec-brief-hw-seg {
  display: inline-flex;
  padding: 3px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--card-bg) 88%, var(--text) 12%);
  border: 1px solid color-mix(in srgb, var(--card-border) 65%, transparent);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--text) 4%, transparent);
}

.spec-brief-hw-seg__btn {
  appearance: none;
  margin: 0;
  padding: 7px 14px;
  border: none;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--text-secondary);
  background: transparent;
  cursor: pointer;
  transition:
    background 0.15s ease,
    color 0.15s ease,
    box-shadow 0.15s ease;
}

.spec-brief-hw-seg__btn:hover:not(:disabled) {
  color: var(--text);
}

.spec-brief-hw-seg__btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent, #0078d4) 55%, transparent);
  outline-offset: 2px;
}

.spec-brief-hw-seg__btn--active {
  color: var(--text);
  background: color-mix(in srgb, var(--card-bg) 94%, var(--accent) 6%);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--card-border) 45%, transparent),
    0 1px 2px rgba(0, 0, 0, 0.06);
}

html[data-theme='dark'] .spec-brief-hw-seg__btn--active {
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--card-border) 55%, transparent),
    0 1px 3px rgba(0, 0, 0, 0.35);
}

.spec-brief-hw-min-note {
  margin: -4px 0 14px;
  padding: 0;
  font-size: 12px;
  line-height: 1.45;
  letter-spacing: -0.01em;
  color: var(--text-secondary);
}

.spec-brief-history-toolbar {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 10px 14px;
  margin: 0 0 12px;
  padding: 3px 0;
  border-top: none;
}

@media (max-width: 520px) {
  .spec-brief-history-toolbar {
    flex-wrap: wrap;
  }

  .spec-brief-history-clear-btn {
    margin-left: auto;
  }
}

.spec-brief-history-toolbar__text.spec-brief-modal-lead {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}

.spec-brief-history-clear-btn {
  flex: 0 0 auto;
  margin: 0;
  padding: 6px 12px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: -0.01em;
  text-transform: none;
  font-feature-settings: 'tnum' 1;
  color: var(--text-secondary);
  background: transparent;
  border: 1px solid color-mix(in srgb, var(--card-border) 88%, var(--text) 6%);
  border-radius: 8px;
  cursor: pointer;
  transition:
    color 0.16s ease,
    background 0.16s ease,
    border-color 0.16s ease,
    opacity 0.16s ease;
  box-shadow: none;
  -webkit-font-smoothing: antialiased;
}

.spec-brief-history-clear-btn:hover:not(:disabled) {
  color: var(--text);
  border-color: color-mix(in srgb, var(--card-border) 55%, var(--text) 18%);
  background: color-mix(in srgb, var(--row-hover) 70%, transparent);
}

.spec-brief-history-clear-btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent, #0078d4) 52%, transparent);
  outline-offset: 2px;
}

.spec-brief-history-clear-btn:disabled {
  cursor: not-allowed;
  opacity: 0.38;
  box-shadow: none;
}

.spec-brief-history-clear-btn--busy {
  pointer-events: none;
  opacity: 0.55;
}

#spec-brief-card.spec-brief-card--guest .spec-brief-history-clear-btn {
  display: none;
}

.spec-brief-modal-lead {
  margin: 0 0 14px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-secondary);
}

/* Тонкая обводка и типографика как у inline-ошибки; скругление = .spec-brief-context-lines / .spec-brief-table-wrap */
.spec-brief-source-notice {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0 0 16px;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid rgba(255, 69, 58, 0.38);
  background: rgba(255, 69, 58, 0.09);
  box-sizing: border-box;
}

/* display:flex выше перебивает UA [hidden] — иначе пустой #spec-brief-rm-quota-notice остаётся «рамкой» */
.spec-brief-source-notice[hidden] {
  display: none !important;
}

.spec-brief-source-notice__title {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--text);
}

.spec-brief-source-notice__msg {
  margin: 0;
  font-size: 13px;
  line-height: 1.45;
  color: var(--text-secondary);
}

.spec-brief-history-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.spec-brief-history-empty {
  padding: 28px 16px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text-secondary);
  text-align: center;
  border-radius: 12px;
  border: 1px dashed color-mix(in srgb, var(--card-border) 65%, transparent);
  background: color-mix(in srgb, var(--row-hover) 35%, transparent);
}

.spec-brief-history-li + .spec-brief-history-li {
  margin-top: 10px;
}

.spec-brief-history-item {
  width: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--card-border) 72%, transparent);
  background: color-mix(in srgb, var(--card-bg) 92%, var(--row-hover));
  cursor: pointer;
  font: inherit;
  text-align: left;
  transition:
    background 0.18s ease,
    border-color 0.18s ease,
    box-shadow 0.18s ease;
}

.spec-brief-history-item:hover {
  border-color: color-mix(in srgb, var(--accent, #0078d4) 35%, var(--card-border));
  background: var(--row-hover);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--accent, #0078d4) 12%, transparent);
}

.spec-brief-history-item:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent, #0078d4) 55%, transparent);
  outline-offset: 2px;
}

.spec-brief-history-item__main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
}

.spec-brief-history-item__name {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: -0.02em;
  word-break: break-word;
}

.spec-brief-history-item__meta {
  font-size: 12px;
  color: var(--text-secondary);
}

.spec-brief-history-item__chev {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-secondary);
  opacity: 0.42;
  transition: opacity 0.18s ease, transform 0.18s ease;
}

.spec-brief-history-item:hover .spec-brief-history-item__chev {
  opacity: 0.95;
  transform: translateX(2px);
}

.spec-brief-result-footer.spec-name-dialog__footer {
  flex-shrink: 0;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: stretch;
  box-sizing: border-box;
  width: 100%;
  padding: 14px 16px 18px;
  margin-top: 0;
  background: color-mix(in srgb, var(--bg) 93%, var(--text) 7%);
  border-top: 1px solid color-mix(in srgb, var(--card-border) 52%, transparent);
}

/* Список истории: нижняя плашка остаётся (как на референсе), но без видимых кнопок. */
.spec-brief-result-footer.spec-name-dialog__footer.spec-brief-result-footer--history-list {
  min-height: 52px;
  justify-content: flex-end;
}

.spec-brief-footer-btn {
  flex: 1 1 140px;
  min-height: 44px;
  border-radius: 11px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.015em;
}

.spec-brief-footer-btn--secondary {
  background: color-mix(in srgb, var(--row-hover) 55%, transparent);
  color: var(--text);
  border: 1px solid color-mix(in srgb, var(--card-border) 82%, transparent);
}

.spec-brief-footer-btn--secondary:hover:not(:disabled) {
  background: var(--row-hover);
  border-color: color-mix(in srgb, var(--accent, #0078d4) 30%, var(--card-border));
}

.spec-brief-footer-btn--primary {
  background: var(--accent, #0078d4);
  color: #fff;
  border: 1px solid color-mix(in srgb, var(--accent, #0078d4) 88%, #000);
}

.spec-brief-footer-btn--primary:hover:not(:disabled) {
  filter: brightness(1.07);
}

.spec-brief-footer-btn:disabled {
  opacity: 0.42;
  cursor: not-allowed;
}

/* Предупреждение о расходе квоты в модалке выбора режима (выше подсказки про формат) */
.spec-brief-rm-quota-notice {
  margin: 0;
}

.spec-brief-rm-quota-notice:not([hidden]) {
  margin-bottom: 16px;
}

.spec-brief-rm-body .spec-brief-rm-quota-notice {
  font-size: 13px;
  line-height: 1.5;
}

/* Вторая колонка забирает остаток ширины (не задаём % — иначе первая колонка распухает). */
.spec-brief-th--actions {
  width: auto;
  min-width: 0;
}

.spec-brief-th-inner--row {
  position: relative;
  width: 100%;
  box-sizing: border-box;
}

.spec-brief-th-inner__label {
  display: block;
  font-weight: inherit;
  text-align: left;
  padding-right: 20px;
  box-sizing: border-box;
}

/*
 * Копирование таблицы: класс .search-icon — позиция как у лупы (cards.css).
 * Цвет как у «вставить из буфера» в строке поиска: .search-clear — tertiary → secondary при hover.
 */
.spec-brief-data-table thead th .search-icon.spec-brief-table-copy-icon {
  left: auto;
  right: 0;
  z-index: 2;
  pointer-events: auto;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  color: var(--text-tertiary);
}

.spec-brief-data-table thead th .search-icon.spec-brief-table-copy-icon:hover {
  color: var(--text-secondary);
}

.spec-brief-table-copy-icon:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent, #0078d4) 55%, transparent);
  outline-offset: 2px;
}

.spec-brief-table-copy-icon:active {
  opacity: 0.85;
}

.spec-brief-table-copy-icon svg {
  width: 14px;
  height: 14px;
  display: block;
}

.spec-brief-th--legacy-actions {
  white-space: nowrap;
}

.spec-brief-oversize-dialog .spec-name-dialog__header {
  border-bottom: 1px solid color-mix(in srgb, var(--card-border) 55%, transparent);
}

.spec-brief-oversize-body {
  padding: 14px 16px 6px;
}

.spec-brief-oversize-lead {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--text);
}

.spec-brief-oversize-hint {
  margin: 0 0 8px;
  font-size: 13px;
  line-height: 1.45;
}
