/* Mail flows (docs/EMAIL.md): link pages, profile address block, admin invites by mail.
   Builds on app.css tokens and classes; only mail-* selectors live here. */
.mail-card { max-width: 440px; margin-inline: auto; }
.mail-card h1:focus { outline: none; }
.mail-card .lead.mail-lead { margin: 0 0 20px; }
.mail-form .lead { color: var(--muted); margin: -12px 0 20px; }
.mail-icon { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; margin-bottom: 16px;
  background: var(--accent-soft); color: var(--accent); font-weight: 800; font-size: 22px; }
.mail-icon.is-warn { background: var(--danger-soft); color: var(--danger); }
.mail-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.mail-actions .btn { min-width: 0; }

.mail-status { border-radius: var(--r-field); padding: 12px 14px; margin-bottom: 16px; font-size: 14px; font-weight: 700; line-height: 1.45; }
.mail-status[data-kind="ok"] { background: var(--accent-soft); color: var(--text); }
.mail-status[data-kind="info"] { background: var(--raised); color: var(--muted); }
.mail-status[data-kind="error"] { background: var(--danger-soft); color: var(--danger); }

.mail-consent { margin-top: -4px; }
.mail-consent-row { display: flex; align-items: flex-start; gap: 10px; }
.mail-consent-row label { color: var(--muted); font-size: 14px; line-height: 1.45; }
.mail-check { flex: none; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--accent); }
.mail-consent .field-error { margin-top: 6px; }

.mail-profile { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; width: 100%; }
.mail-profile .mail-status { margin: 0; width: 100%; }
.mail-state { font-size: 14px; font-weight: 700; line-height: 1.45; }
.mail-state.is-ok { color: var(--accent); }
.mail-state.is-warn { color: var(--muted); }
.mail-toggle { padding: 0; min-height: 32px; }
.mail-change { width: 100%; display: flex; flex-direction: column; align-items: flex-start; }
.mail-change .field { width: 100%; }

.mail-invites { display: flex; flex-direction: column; gap: 16px; width: 100%; }
.mail-send .field { max-width: 420px; }
.mail-send .mail-status { margin: 0; }
.mail-rows { list-style: none; margin: 0; padding: 0; width: 100%; display: flex; flex-direction: column; }
.mail-row { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line, rgb(255 255 255 / .08)); }
.mail-row:first-child { border-top: 0; }
.mail-row-main, .mail-row-facts { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.mail-row-email { overflow-wrap: anywhere; }
.mail-pill { align-self: flex-start; padding: 2px 10px; border-radius: 999px; font-size: 13px; font-weight: 700; background: var(--raised); color: var(--muted); }
.mail-pill.is-sent { background: var(--accent-soft); color: var(--accent); }
.mail-pill.is-bounced, .mail-pill.is-complained, .mail-pill.is-suppressed, .mail-pill.is-failed { background: var(--danger-soft); color: var(--danger); }

@media (max-width: 640px) {
  .mail-row { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .mail-row .btn { justify-self: start; }
  .mail-actions .btn { flex: 1 1 auto; }
}
/* Long Russian labels wrap instead of pushing past the card padding at 360 px. */
.mail-invites .btn, .mail-profile .btn, .mail-actions .btn { max-width: 100%; white-space: normal; height: auto; min-height: 44px; padding-block: 10px; line-height: 1.25; text-align: center; }
.mail-invites .btn-xs { min-height: 32px; padding-block: 6px; }
