/* === Единые стили модальных окон кабинета === */
/* Эталон: site-modals.css. Все cabinet dialog'и используют эти классы. */

dialog.cab-modal { position:fixed; top:50%; left:50%; width:min(520px,calc(100% - 32px)); max-height:calc(100vh - 32px); margin:0; padding:0; overflow-y:auto; border:1px solid var(--cab-line-strong); border-radius:12px; background:#fff; color:var(--cab-ink); transform:translate(-50%,-50%); box-shadow:0 16px 44px rgba(33,38,48,.065); }
dialog.cab-modal::backdrop { background:rgba(13,14,18,.56); backdrop-filter:blur(6px); }

/* Контейнер формы */
.cab-modal form { display:grid; padding:38px; position:relative; }

/* Кнопка закрытия */
.cab-modal-close { position:absolute; top:24px; right:24px; display:grid; width:42px; height:42px; place-items:center; border:1px solid var(--cab-line-strong); border-radius:50%; background:var(--cab-surface); color:var(--cab-ink); font-size:22px; line-height:1; cursor:pointer; transition:color var(--cab-fast) var(--cab-ease),border-color var(--cab-fast) var(--cab-ease),background var(--cab-fast) var(--cab-ease); }
.cab-modal-close:hover { color:var(--cab-brand); border-color:var(--cab-brand); background:var(--cab-soft-red); }
.cab-modal-close:focus-visible { outline:2px solid var(--cab-brand); outline-offset:2px; }

/* Заголовок */
.cab-modal-title { margin:0 0 20px; padding-right:56px; font-size:28px; font-weight:560; line-height:1.1; letter-spacing:-.025em; color:var(--cab-ink); }
.cab-modal-desc { margin:0 0 26px; color:var(--cab-copy); font-size:16px; line-height:1.5; }

/* Поля формы */
.cab-modal-field { display:grid; gap:7px; margin-bottom:18px; }
.cab-modal-field > span { color:var(--cab-ink); font-size:15px; font-weight:650; }
.cab-modal-field input, .cab-modal-field textarea { width:100%; padding:13px 15px; border:1px solid var(--cab-line-strong); border-radius:8px; background:#fff; color:var(--cab-ink); font:400 15px/1.5 'Finlandica Text',sans-serif; outline:none; transition:border-color var(--cab-fast) var(--cab-ease); }
.cab-modal-field textarea { min-height:96px; resize:vertical; }
.cab-modal-field input:focus, .cab-modal-field textarea:focus { border-color:var(--cab-brand); outline:3px solid var(--cab-focus); }
.cab-modal-error { color:var(--cab-danger); font-size:14px; margin:0; }
.cab-modal-error:empty { display:none; }

/* Radio-группа (причины жалобы) */
.cab-modal-reasons { display:grid; gap:8px; border:0; padding:0; margin:0 0 18px; }
.cab-modal-reasons legend { padding:0; margin-bottom:10px; color:var(--cab-ink); font-size:15px; font-weight:650; }
.cab-modal-reasons label { display:flex; align-items:center; gap:10px; min-height:44px; padding:10px 14px; border:1px solid var(--cab-line-strong); border-radius:8px; cursor:pointer; transition:border-color var(--cab-fast) var(--cab-ease),background var(--cab-fast) var(--cab-ease); }
.cab-modal-reasons label:has(input:checked) { border-color:var(--cab-brand); background:var(--cab-soft-red); }
.cab-modal-reasons label:focus-within { outline:2px solid var(--cab-brand); outline-offset:2px; }
.cab-modal-reasons input { width:18px; height:18px; accent-color:var(--cab-brand); }
.cab-modal-reasons span { font-size:15px; color:var(--cab-ink); }

/* Блок действий */
.cab-modal-actions { display:flex; justify-content:flex-start; gap:12px; margin-top:8px; }
.cab-modal-actions button { min-height:48px; padding:0 18px; border:1px solid var(--cab-line-strong); border-radius:8px; background:#fff; color:var(--cab-ink); font:650 15px/1 'Finlandica Text',sans-serif; cursor:pointer; transition:border-color var(--cab-fast) var(--cab-ease),background var(--cab-fast) var(--cab-ease); }
.cab-modal-actions button:hover { border-color:var(--cab-ink); }
.cab-modal-actions button:focus-visible { outline:2px solid var(--cab-brand); outline-offset:2px; }
.cab-modal-actions button.is-primary { border:0; background:var(--cab-brand); color:#fff; }
.cab-modal-actions button.is-primary:hover { background:var(--cab-brand-hover); }
.cab-modal-actions button.is-danger { border-color:var(--cab-danger); background:var(--cab-danger); color:#fff; }
.cab-modal-actions button.is-danger:hover { background:#c40b12; }
.cab-modal-actions button:disabled { opacity:.5; cursor:not-allowed; }

/* Уведомление/примечание внутри модалки */
.cab-modal-note { margin:14px 0 0; color:var(--cab-muted); font-size:13px; line-height:1.45; }

@media (max-width:640px) {
  dialog.cab-modal { width:100%; max-height:92vh; border-radius:12px 12px 0 0; }
  .cab-modal form { padding:30px 22px 26px; }
  .cab-modal-actions { flex-direction:column; }
  .cab-modal-actions button { width:100%; }
}

/* Модалка успешной оплаты: кнопка «Готово» на всю ширину */
.cab-success-modal .cab-modal-actions { width:100%; }
.cab-success-modal .cab-modal-actions button.is-primary { width:100%; }
@media (prefers-reduced-motion:reduce) {
  dialog.cab-modal *, .cab-modal * { transition-duration:.01ms!important; }
}