/**
 * Единые формы в модалках: многострочные поля — прямоугольные;
 * шапка модалки — светлая полоса; кнопки — капсулы с тёплым градиентом / серый вторичный.
 * Подключать последним в <head> (после страничных <style>).
 */

/* --- Textarea везде: не «капсула», а прямоугольник с лёгким контрастом --- */
textarea {
  border-radius: var(--radius-md);
  background: var(--field-multiline-bg);
  border: 1px solid var(--field-multiline-border);
  color: var(--text-main);
  padding: 10px 12px;
  font-size: 14px;
  line-height: 1.45;
  box-sizing: border-box;
  min-height: 72px;
  resize: vertical;
}

textarea:focus {
  outline: 2px solid var(--accent-soft);
  outline-offset: 1px;
}

/* --- Dashboard: .modal-box --- */
.modal-box .modal-head {
  background: var(--modal-head-bg, var(--bg-card));
  color: var(--modal-head-text, var(--text-main));
  border-bottom: 1px solid var(--modal-head-border, var(--border-color));
}

.modal-box .modal-head .btn {
  border-radius: 999px !important;
  background: var(--btn-modal-secondary-bg, #e2e8f0) !important;
  color: var(--btn-modal-secondary-text, #0f172a) !important;
  border: 1px solid transparent !important;
  font-weight: 600 !important;
}

html[data-theme="dark"] .modal-box .modal-head .btn {
  background: #1f2937 !important;
  color: #e5e7eb !important;
  border: 1px solid #334155 !important;
}

html[data-theme="dark"] .modal-box {
  background: var(--modal-sheet-bg) !important;
  border-color: var(--modal-sheet-border) !important;
  color: var(--modal-sheet-text) !important;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.55) !important;
}

html[data-theme="dark"] .modal-box .modal-body,
html[data-theme="dark"] .modal-box .modal-foot {
  color: var(--modal-sheet-text);
}

html[data-theme="dark"] .modal-box .modal-body label {
  color: var(--modal-sheet-muted);
}

html[data-theme="dark"] .modal-box .modal-body input[type="text"],
html[data-theme="dark"] .modal-box .modal-body input[type="datetime-local"],
html[data-theme="dark"] .modal-box .modal-body input[type="email"],
html[data-theme="dark"] .modal-box .modal-body input[type="number"],
html[data-theme="dark"] .modal-box .modal-body select {
  background: var(--bg-input) !important;
  color: var(--text-main) !important;
  border: 1px solid var(--border-color) !important;
  border-radius: 999px !important;
  padding: 8px 16px !important;
}

html[data-theme="dark"] .modal-box .modal-body textarea {
  background: var(--field-multiline-bg) !important;
  color: var(--text-main) !important;
  border: 1px solid var(--field-multiline-border) !important;
  border-radius: var(--radius-md) !important;
}

html[data-theme="dark"] .modal-box .comment-item,
html[data-theme="dark"] .modal-box .audit-item {
  color: var(--modal-sheet-muted);
  border-bottom-color: rgba(148, 163, 184, 0.18) !important;
}

/* --- Страницы: .modal-dialog (кроме тяжёлых модалок калькулятора и файлов) --- */
html[data-theme="dark"] .modal.is-open .modal-dialog:not(.calc-modal-dialog):not(.files-modal-dialog) {
  background: var(--modal-sheet-bg) !important;
  border-color: var(--modal-sheet-border) !important;
  color: var(--modal-sheet-text) !important;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.55) !important;
}

html[data-theme="dark"] .modal.is-open .modal-dialog:not(.calc-modal-dialog):not(.files-modal-dialog) .label,
html[data-theme="dark"] .modal.is-open .modal-dialog:not(.calc-modal-dialog):not(.files-modal-dialog) .muted-note,
html[data-theme="dark"] .modal.is-open .modal-dialog:not(.calc-modal-dialog):not(.files-modal-dialog) .error-msg,
html[data-theme="dark"] .modal.is-open .modal-dialog:not(.calc-modal-dialog):not(.files-modal-dialog) .field > label,
html[data-theme="dark"] .modal.is-open .modal-dialog:not(.calc-modal-dialog):not(.files-modal-dialog) .field-hint {
  color: var(--modal-sheet-muted) !important;
}

html[data-theme="dark"] .modal.is-open .modal-dialog:not(.calc-modal-dialog):not(.files-modal-dialog) p {
  color: var(--modal-sheet-muted);
}

html[data-theme="dark"] .modal.is-open .modal-dialog:not(.calc-modal-dialog):not(.files-modal-dialog) .field .control input,
html[data-theme="dark"] .modal.is-open .modal-dialog:not(.calc-modal-dialog):not(.files-modal-dialog) .field input,
html[data-theme="dark"] .modal.is-open .modal-dialog:not(.calc-modal-dialog):not(.files-modal-dialog) .field select {
  background: var(--bg-input) !important;
  color: var(--text-main) !important;
  border: 1px solid var(--border-color) !important;
  border-radius: 999px !important;
}

html[data-theme="dark"] .modal.is-open .modal-dialog:not(.calc-modal-dialog):not(.files-modal-dialog) textarea,
html[data-theme="dark"] .modal.is-open .modal-dialog:not(.calc-modal-dialog):not(.files-modal-dialog) .field textarea {
  background: var(--field-multiline-bg) !important;
  color: var(--text-main) !important;
  border: 1px solid var(--field-multiline-border) !important;
  border-radius: var(--radius-md) !important;
}

/* Заголовок — полоса на всю ширину карточки */
.modal-dialog > .modal-title:first-child {
  margin: -24px -24px 16px -24px;
  width: calc(100% + 48px);
  max-width: none;
  box-sizing: border-box;
  padding: 16px 24px;
  background: var(--modal-head-bg);
  color: var(--modal-head-text);
  border-bottom: 1px solid var(--modal-head-border);
  font-size: 18px;
  font-weight: 600;
}

/* Заголовок .modal-title: фон/бордер берутся из --modal-head-* на <html> (theme-dark / theme-light). */

/* --- Кнопки в подвале модалок --- */
.modal-foot .btn.btn-accent,
.modal-footer .btn.btn-accent {
  border-radius: 999px !important;
  background: var(--btn-gradient-warm, linear-gradient(135deg, #fde047, var(--accent))) !important;
  color: var(--chip-active-text, #111827) !important;
  box-shadow: var(--shadow-btn-accent) !important;
  border: none !important;
  font-weight: 600 !important;
  transition: transform 0.14s ease, box-shadow 0.14s ease, opacity 0.12s ease !important;
}

.modal-foot .btn.btn-accent:hover:not(:disabled),
.modal-footer .btn.btn-accent:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: var(--shadow-btn-accent-hover) !important;
}

.modal-foot .btn.btn-accent:active:not(:disabled),
.modal-footer .btn.btn-accent:active:not(:disabled) {
  transform: translateY(1px);
}

.modal-foot .btn:not(.btn-accent):not(.btn-danger):not(.btn-ghost),
.modal-footer .btn:not(.btn-accent):not(.btn-danger):not(.btn-ghost) {
  border-radius: 999px !important;
  background: var(--btn-modal-secondary-bg, #e2e8f0) !important;
  color: var(--btn-modal-secondary-text, #0f172a) !important;
  border: 1px solid transparent !important;
  font-weight: 600 !important;
  transition: transform 0.14s ease, box-shadow 0.14s ease, background-color 0.15s ease, border-color 0.15s ease !important;
}

.modal-foot .btn:not(.btn-accent):not(.btn-danger):not(.btn-ghost):hover:not(:disabled),
.modal-footer .btn:not(.btn-accent):not(.btn-danger):not(.btn-ghost):hover:not(:disabled) {
  filter: brightness(0.97);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

.modal-foot .btn:not(.btn-accent):not(.btn-danger):not(.btn-ghost):active:not(:disabled),
.modal-footer .btn:not(.btn-accent):not(.btn-danger):not(.btn-ghost):active:not(:disabled) {
  transform: translateY(1px);
}

html[data-theme="dark"] .modal-foot .btn:not(.btn-accent):not(.btn-danger):not(.btn-ghost),
html[data-theme="dark"] .modal-footer .btn:not(.btn-accent):not(.btn-danger):not(.btn-ghost) {
  background: var(--btn-modal-secondary-bg) !important;
  color: var(--btn-modal-secondary-text) !important;
  border: 1px solid #334155 !important;
}

html[data-theme="dark"] .modal-foot .btn:not(.btn-accent):not(.btn-danger):not(.btn-ghost):hover:not(:disabled),
html[data-theme="dark"] .modal-footer .btn:not(.btn-accent):not(.btn-danger):not(.btn-ghost):hover:not(:disabled) {
  filter: brightness(1.12);
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.35);
}

/* --- Широкие формы в модалке: телефон → планшет (iPad Pro 12.9) → ПК --- */
.modal-dialog.modal-dialog--form-wide {
  width: 100%;
  max-width: min(92vw, 420px);
  box-sizing: border-box;
}

@media (min-width: 600px) {
  .modal-dialog.modal-dialog--form-wide {
    max-width: min(94vw, 640px);
  }
}

@media (min-width: 900px) {
  .modal-dialog.modal-dialog--form-wide {
    max-width: min(94vw, 840px);
  }
}

/* Узкие подтверждения / короткие тексты (перебивает max-width страницы) */
.modal-dialog.modal-dialog--compact {
  max-width: min(92vw, 440px) !important;
}

@media (min-width: 600px) {
  .modal-dialog.modal-dialog--compact {
    max-width: min(92vw, 480px) !important;
  }
}

.modal-dialog.modal-dialog--scrollable {
  max-height: 90vh;
  overflow-y: auto;
}

/**
 * Сетка полей: одна колонка на узком экране, две от 600px.
 * Поле на всю ширину: класс .field--full на .field
 * Заголовок секции: .modal-form-section-head (на всю ширину)
 */
.modal-form-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px 20px;
  align-items: start;
}

@media (min-width: 600px) {
  .modal-form-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.modal-form-grid .field {
  margin-bottom: 0;
}

.modal-form-grid .field--full,
.modal-form-section-head,
.modal-form-grid > .modal-form-span-full {
  grid-column: 1 / -1;
}

.modal-form-grid > .modal-form-span-full {
  margin: 0;
}

.modal-form-grid > .btn.field--full {
  justify-self: start;
}

.modal-form-section-head {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  margin: 10px 0 0 0;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border-color);
}

.modal-form-section-head:first-child {
  margin-top: 0;
}

/* Вложенная сетка (например «добавить менеджера»): та же логика, чуть плотнее */
.modal-form-grid--nested {
  gap: 12px 16px;
}
