/* Easy Quant — history page, supplement к /upload/styles.css */

.up-nav-actions {
  display: flex;
  align-items: center;
  gap: 20px;
}

.balance-pill {
  display: inline-block;
  background: var(--primary-soft);
  color: var(--accent-dark);
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 0.92rem;
  font-weight: 600;
  margin-top: 12px;
}

.bp-label {
  color: var(--text-secondary);
  margin-right: 6px;
  font-weight: 500;
}

.history-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 24px;
}

.proj-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px 22px;
  display: grid;
  /* Вертикальный макет (Сергей 2026-06-25): текст (заголовок+мета+имя файла)
     во ВСЮ ширину сверху, кнопки — горизонтальной строкой снизу. Раньше
     2-колоночный грид (текст | действия) зажимал длинное имя анкеты в левую
     колонку и оно переносилось. */
  grid-template-columns: 1fr;
  gap: 14px;
  align-items: stretch;
  box-shadow: var(--shadow-sm);
  transition: var(--transition);
}

.proj-card:hover {
  border-color: var(--primary);
  box-shadow: var(--shadow-md);
}

.proj-head {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.proj-name {
  font-weight: 700;
  font-size: 1.04rem;
  color: var(--text);
  word-break: break-all;
}

.proj-meta {
  color: var(--text-secondary);
  font-size: 0.88rem;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
}

.proj-meta span { white-space: nowrap; }

/* Имя файла анкеты бывает длинным («Тестирование … (20.03.25).docx»): в отличие
   от коротких чипов оно ДОЛЖНО переноситься и занимать свою строку, иначе
   nowrap-span вылезал из head-колонки в колонку действий (наложение на кнопки,
   Сергей 2026-06-25). flex-basis:100% — отдельная строка; overflow-wrap:anywhere
   — страховка от сверхдлинного токена без пробелов. */
.proj-meta span.proj-qre {
  white-space: normal;
  overflow-wrap: anywhere;
  flex-basis: 100%;
  min-width: 0;
}

.proj-status {
  display: inline-block;
  padding: 3px 12px;
  border-radius: 8px;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.proj-status.scanning { background: var(--accent-soft); color: var(--accent-dark); }
.proj-status.ready    { background: var(--accent-soft); color: var(--accent-dark); }
.proj-status.processing { background: var(--warn-soft-bg); color: var(--warn-text); }
.proj-status.done     { background: var(--success-soft-bg); color: var(--success); }
.proj-status.error    { background: var(--error-chip-bg); color: var(--error); }

.proj-actions {
  display: flex;
  flex-direction: row;       /* кнопки строкой под текстом во всю ширину */
  flex-wrap: wrap;           /* переносятся, если не влезают */
  gap: 8px;
  align-items: stretch;
}

.proj-actions .btn {
  font-size: 0.88rem;
  padding: 10px 16px;
  min-height: 44px;
  white-space: nowrap;       /* подпись в ОДНУ строку (одобр. макет 2026-06-25) */
  line-height: 1.25;
  flex: 0 0 auto;            /* кнопка по контенту; на широком — ряд, на узком —
                                flex-wrap переносит кнопку целиком (не текст) */
}

@media (max-width: 560px) {
  .proj-card { grid-template-columns: 1fr; }
  .proj-actions { flex-direction: row; flex-wrap: wrap; }
}

/* «Файлы и история» — раскрываемый список файлов проекта */
.files-box {
  grid-column: 1 / -1;
  margin-top: 10px;
  padding: 12px 14px;
  background: var(--primary-veil);
  border-radius: 10px;
  font-size: 0.9rem;
}

.files-box.hidden { display: none; }

.files-sec-title {
  font-weight: 600;
  margin: 8px 0 4px;
}

.files-sec-title:first-child { margin-top: 0; }

.file-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding: 3px 0;
}

.file-row a {
  color: var(--accent-dark, #1976d2);
  text-decoration: none;
  word-break: break-all;
}

.file-row a:hover { text-decoration: underline; }

.file-meta {
  color: var(--text-hint);
  font-size: 0.8rem;
  white-space: nowrap;
}
