.trainer-invitations-dialog {
    --invite-ink: #44577A; --invite-muted: #596B87; --invite-surface: #FFFFFF;
    --invite-line: #CCD9EA; --invite-accent: #44577A; --invite-danger: #B92518;
    box-sizing: border-box; width: min(640px, calc(100vw - 24px)); max-height: calc(100dvh - 24px);
    margin: auto; padding: 0; color: var(--invite-ink); background: var(--invite-surface);
    border: 1px solid var(--invite-line); border-radius: 20px; box-shadow: 0 28px 90px #293B5940; overflow: auto;
    font: 16px/1.5 inherit;
}
.trainer-invitations-dialog::backdrop { background: #293B5966; }
.trainer-invitations-dialog * { box-sizing: border-box; }
.trainer-invitations-dialog header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:24px 24px 18px; border-bottom:1px solid var(--invite-line); }
.trainer-invitations-dialog h2 { margin:0; font-size:24px; line-height:1.15; }
.trainer-invitations-dialog .invite-body { padding:22px 24px 26px; }
.trainer-invitations-dialog p { margin:0; color:var(--invite-muted); }
.trainer-invitations-dialog .invite-summary { display:flex; gap:12px; flex-wrap:wrap; margin:16px 0; }
.trainer-invitations-dialog .invite-summary span { padding:7px 10px; color:var(--invite-ink); background:#EDF3FC; border:1px solid var(--invite-line); border-radius:999px; font-variant-numeric:tabular-nums; }
.trainer-invitations-dialog button { min-height:44px; padding:10px 14px; border:1px solid var(--invite-line); border-radius:10px; color:var(--invite-ink); background:#EDF3FC; font:inherit; cursor:pointer; }
.trainer-invitations-dialog button.primary { color:#FFFFFF; background:var(--invite-accent); border-color:var(--invite-accent); font-weight:700; }
.trainer-invitations-dialog button.danger { color:var(--invite-danger); background:transparent; }
.trainer-invitations-dialog button:disabled { opacity:.55; cursor:default; }
.trainer-invitations-dialog .invite-list { display:grid; gap:10px; margin:18px 0; }
.trainer-invitations-dialog .invite-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; padding:14px; background:#F5F8FD; border:1px solid var(--invite-line); border-radius:12px; }
.trainer-invitations-dialog .invite-row strong { display:block; color:var(--invite-ink); font-size:15px; }
.trainer-invitations-dialog .invite-row time { display:block; margin-top:3px; color:var(--invite-muted); font-size:13px; overflow-wrap:anywhere; }
.trainer-invitations-dialog .invite-link { display:grid; gap:8px; margin:16px 0; padding:14px; border-left:3px solid var(--invite-accent); background:#EAF2FF; }
.trainer-invitations-dialog code { display:block; padding:10px; border-radius:8px; color:var(--invite-ink); background:#FFFFFF; overflow-wrap:anywhere; white-space:normal; }
.trainer-invitations-dialog .invite-status { min-height:24px; margin-top:14px; }
.trainer-invitations-dialog .invite-status.error { color:var(--invite-danger); }
.trainer-invitations-dialog :focus-visible { outline:3px solid var(--invite-accent); outline-offset:3px; }
.trainer-invitations-dialog [hidden] { display:none !important; }

.trainer-invitation-registration { width:min(620px,calc(100vw - 24px)); }
.trainer-invitation-registration form { display:grid; gap:16px; }
.trainer-invitation-registration .invite-code-actions { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
.trainer-invitation-registration [data-email-hint] { margin:8px 0 16px; overflow-wrap:anywhere; }
.trainer-invitation-registration label { display:grid; gap:7px; color:var(--invite-ink); font-weight:700; }
.trainer-invitation-registration input { width:100%; min-height:48px; padding:10px 12px; border:1px solid #8DA5C7; border-radius:10px; color:var(--invite-ink); background:#FFFFFF; font:inherit; }
.trainer-invitation-registration .invite-consent { display:flex; align-items:flex-start; gap:10px; color:var(--invite-muted); font-weight:400; }
.trainer-invitation-registration .invite-consent input { width:20px; min-height:20px; margin:2px 0 0; accent-color:var(--invite-accent); }
.trainer-invitation-registration .invite-step { color:var(--invite-accent); font-size:13px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
@media (max-width:520px) { .trainer-invitations-dialog header { padding:20px 18px 16px; } .trainer-invitations-dialog .invite-body { padding:18px; } .trainer-invitations-dialog h2 { font-size:22px; } .trainer-invitations-dialog .invite-row { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:no-preference) { .trainer-invitations-dialog { animation:invite-enter .18s ease-out; } @keyframes invite-enter { from { opacity:0; transform:translateY(10px) scale(.985); } to { opacity:1; transform:none; } } }
