/* Life Timeline — Окно отзыва.
   Вынесено без изменений из app/life-timeline.html (строки 2250–2434 на 31.10.2026).
   Порядок подключения файлов важен: он повторяет исходный порядок правил. */
.feedback-modal {
  position: fixed;
  inset: 0;
  z-index: 64;
  display: none;
  place-items: center;
  padding: 18px;
  background: rgba(5, 9, 12, .52);
  pointer-events: auto;
}

.feedback-modal.is-open {
  display: grid;
}

.feedback-panel {
  width: min(440px, 100%);
  padding: 18px;
  border-radius: 10px;
}

.feedback-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.feedback-title {
  margin: 0 0 6px;
  font-size: 18px;
  line-height: 1.2;
  letter-spacing: 0;
}

.feedback-subtitle {
  margin: 0;
  color: rgba(238, 243, 239, .64);
  font-size: 12px;
  line-height: 1.4;
}

.feedback-close {
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(255,255,255,.055);
  color: rgba(238, 243, 239, .76);
  font-size: 18px;
}

.feedback-form {
  display: grid;
  gap: 12px;
}

.feedback-category-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.feedback-category {
  min-height: 30px;
  padding: 0 9px;
  border: 1px solid rgba(238, 243, 239, .13);
  border-radius: 999px;
  background: rgba(255,255,255,.045);
  color: rgba(238, 243, 239, .70);
  font-size: 12px;
}

.feedback-category.is-selected {
  border-color: rgba(156, 200, 194, .36);
  background: rgba(156, 200, 194, .14);
  color: var(--text);
}

.feedback-message {
  min-height: 118px;
}

.feedback-attachment-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.feedback-attachment-button {
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid rgba(238, 243, 239, .13);
  border-radius: 8px;
  background: rgba(255,255,255,.045);
  color: rgba(238, 243, 239, .74);
  font-size: 12px;
}

.feedback-attachment-button:hover {
  border-color: rgba(156, 200, 194, .30);
  background: rgba(156, 200, 194, .10);
  color: var(--text);
}

.feedback-attachment-limit {
  color: rgba(238, 243, 239, .46);
  font-size: 11px;
  line-height: 1.3;
  text-align: right;
}

.feedback-attachment-list {
  display: grid;
  gap: 6px;
}

.feedback-attachment-item {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 26px;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 6px;
  border: 1px solid rgba(238, 243, 239, .10);
  border-radius: 8px;
  background: rgba(255,255,255,.034);
}

.feedback-attachment-thumb {
  width: 36px;
  height: 30px;
  border-radius: 6px;
  object-fit: cover;
  background: rgba(255,255,255,.06);
}

.feedback-attachment-name {
  min-width: 0;
  overflow: hidden;
  color: rgba(238, 243, 239, .76);
  font-size: 11.5px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.feedback-attachment-meta {
  color: rgba(238, 243, 239, .46);
  font-size: 10.5px;
  line-height: 1.2;
}

.feedback-attachment-remove {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(255,255,255,.052);
  color: rgba(238, 243, 239, .68);
  font-size: 15px;
}

.feedback-status {
  min-height: 18px;
  color: rgba(238, 243, 239, .64);
  font-size: 12px;
  line-height: 1.4;
}

.feedback-status.is-error {
  color: rgba(240, 111, 106, .92);
}

.feedback-status.is-success {
  color: rgba(156, 200, 194, .92);
}

.feedback-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

