@font-face {
    font-family: 'Material Icons';
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url('fonts/MaterialIcons.ttf') format('truetype');
}
.auth .material-icons, .oauth-modal .material-icons {
    font-family: var(--login-icon-font, 'Material Icons');
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    line-height: 1;
    letter-spacing: 0;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    direction: ltr;
    font-feature-settings: 'liga';
    -webkit-font-smoothing: antialiased;
}
[hidden] { display: none !important; }
.auth { min-height: 100svh; }
.auth-hero { min-width: 0; gap: 32px; }
.brand { color: inherit; text-decoration: none; }
.brand strong { display: block; font-size: 16px; font-weight: 800; line-height: 1.15; }
.brand .sub { display: block; }
.auth-hero-body h2, .auth-head h3, .brand .mark, .brand .sub { letter-spacing: 0; }
.auth-card { min-width: 0; }
.auth-scroll { min-height: 0; align-items: safe center; padding: 8px 24px 24px; overflow-y: auto; overscroll-behavior: contain; }
.auth-toggle { margin: 16px 0; }
.auth-toggle.auth-actions { margin: 16px 0 0; }
.auth-actions button { min-height: 40px; }
.auth-actions button.active { background: var(--primary); color: #fff; box-shadow: none; }
.auth-form { gap: 10px; }
.auth-name-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.auth-name-fields .form-group { min-width: 0; }
.provider-section { margin: 12px 0 0; padding: 0; }
.provider-section h4 { margin: 0 0 7px; color: var(--text-muted); font-size: 12px; font-weight: 700; }
.form-control { min-width: 0; }
.input-wrap .form-control { padding-right: 42px; }
.auth-inline-row { flex-wrap: wrap; gap: 8px; }
.auth-divider { margin: 14px 0 10px; }
.social-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.social-btn { min-height: 32px; padding: 6px 5px; gap: 4px; overflow-wrap: anywhere; text-align: center; }
.provider-logo { display: block; flex: 0 0 16px; width: 16px; height: 16px; object-fit: contain; }
[data-theme="dark"] .provider-logo--monochrome { filter: invert(1); }
.sso-btn { margin-top: 8px; }
.sso-actions { display: flex; gap: 6px; margin-top: 8px; }
.sso-actions .sso-btn { flex: 1; min-width: 0; margin-top: 0; width: auto; }
.sso-actions .simulated-btn { flex: 0 0 auto; min-width: 92px; }
.sso-actions .material-icons { font-size: 16px; }
.auth-foot { margin-top: 16px; }
.sso-inline .btn { flex-shrink: 0; }
.hint { font-size: 12px; color: var(--text-muted); line-height: 1.6; }
.sso-box .hint, .provider-status { margin-top: 8px; }
button:disabled, input:disabled { cursor: not-allowed; }
button:disabled { opacity: .55; }
.oauth-modal { display: flex; }
.oauth-actions { flex-wrap: wrap; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 3px solid var(--primary); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .oauth-spinner { animation: none; } }
@media (max-width: 360px) {
    .social-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .auth-name-fields { grid-template-columns: minmax(0, 1fr); }
}