.auth-status { margin: 12px 0; padding: 12px 14px; border: 1px solid var(--enx-border, #d6dde5); border-radius: 8px; background: var(--enx-surface, #fff); color: var(--enx-text, #15202b); font: 500 13px/1.6 Inter, sans-serif; overflow-wrap: anywhere; }
.auth-status:empty { display: none; }
.auth-status[data-type="error"] { border-color: #dc6565; color: var(--enx-text, #15202b); }
[aria-invalid="true"].input-academic, .login-form input[aria-invalid="true"], #courseTrigger[aria-invalid="true"] { border-color: #d14343 !important; box-shadow: 0 0 0 2px rgb(209 67 67 / 12%) !important; }
.auth-password-rules { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 7px 12px; padding: 8px 0 16px; margin: 0; color: var(--enx-text-muted, #526173); font: 500 12px/1.5 Inter, sans-serif; }
.auth-password-rules li { display: flex; align-items: center; gap: 7px; }
.auth-password-rules li::before { content: ""; flex: 0 0 7px; width: 7px; height: 7px; border-radius: 50%; border: 1px solid currentColor; }
.auth-password-rules li[data-met="true"] { color: var(--enx-text, #15202b); }
.auth-password-rules li[data-met="true"]::before { background: #19815d; border-color: #19815d; }
.auth-dialog, .auth-dialog * { box-sizing: border-box; }
.auth-dialog { width: min(440px, calc(100% - 32px)); max-height: calc(100dvh - 32px); margin: auto; padding: 28px; border: 1px solid var(--enx-border, #d6dde5); border-radius: 8px; color: var(--enx-text, #15202b); background: var(--enx-surface, #fff); box-shadow: 0 24px 80px rgb(0 0 0 / 24%); overflow-y: auto; font-family: Inter, sans-serif; }
.auth-dialog::backdrop { background: rgb(8 15 24 / 52%); backdrop-filter: blur(4px); }
.auth-dialog[open] { animation: auth-appear 220ms cubic-bezier(.16,1,.3,1); }
.auth-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.auth-dialog h2 { margin: 0; font: 700 21px/1.3 Inter, sans-serif; color: inherit; letter-spacing: 0; }
.auth-dialog p { margin: 0 0 22px; font-size: 14px; line-height: 1.7; color: inherit; overflow-wrap: anywhere; }
.auth-dialog-close { display: grid; place-items: center; width: 36px; height: 36px; flex: 0 0 36px; border: 1px solid var(--enx-border, #d6dde5); border-radius: 6px; background: transparent; color: inherit; cursor: pointer; }
.auth-dialog-close svg { width: 18px; height: 18px; }
.auth-dialog-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.auth-dialog-action { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; padding: 10px 16px; border: 1px solid var(--enx-border, #d6dde5); border-radius: 6px; text-decoration: none; font: 600 13px/1.4 Inter, sans-serif; background: transparent; color: inherit; cursor: pointer; }
.auth-dialog-action[data-primary="true"] { background: var(--enx-primary, #2563eb); color: var(--enx-on-primary, #fff); border-color: transparent; }
.auth-dialog :focus-visible { outline: 2px solid var(--enx-primary, #2563eb); outline-offset: 3px; }
body:has(.auth-dialog[open]) { overflow: hidden; }
@keyframes auth-appear { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
@media (max-width: 360px) { .auth-dialog { padding: 20px; } .auth-password-rules { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .auth-dialog[open] { animation: none; } }
