/* Shared layout primitives for the 8 Auth pages that render inside MainLayout's
   auth-page shell (ds-shell-content--auth) — centers a single card column.
   All colors via --dp-* design tokens only. */

.auth-center-stage {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    justify-content: center;
    min-height: 100%;
    padding: var(--space-6) var(--space-4);
}

.auth-center-card {
    width: 100%;
    max-width: 440px;
}

.auth-center-card--wide {
    max-width: 620px;
}

.auth-unauthorized {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    text-align: center;
    color: var(--dp-status-danger);
}

.auth-unauthorized h2 {
    margin: 0;
    color: var(--dp-text-primary);
}

.auth-unauthorized p {
    margin: 0;
    color: var(--dp-text-secondary);
}

.auth-unauthorized__actions {
    display: flex;
    gap: var(--space-3);
    margin-top: var(--space-2);
}

/* ── Shared form chrome (ForgotPassword / ResetPassword / Register / etc.) ── */

.auth-form-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    text-align: center;
    margin-bottom: var(--space-5);
    color: var(--dp-interactive-primary);
}

.auth-form-head h2 {
    margin: 0 0 var(--space-2);
    color: var(--dp-text-primary);
}

.auth-form-head p {
    margin: 0;
    color: var(--dp-text-secondary);
}

.auth-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: var(--space-4);
}

.auth-field__label {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--dp-text-secondary);
}

.auth-field__required {
    color: var(--dp-status-danger);
}

.auth-field__input {
    padding: 10px 12px;
    border: 1px solid var(--dp-border-default);
    border-radius: var(--radius-md);
    background-color: var(--dp-surface-input);
    color: var(--dp-text-primary);
    font-size: 0.9375rem;
    width: 100%;
}

.auth-field__input:focus {
    outline: none;
    border-color: var(--dp-border-focus);
    box-shadow: 0 0 0 3px var(--dp-border-focus);
}

.auth-field__error {
    display: block;
    color: var(--dp-status-danger);
    font-size: 0.8125rem;
}

.auth-form-actions {
    margin-bottom: var(--space-4);
}

.auth-form-actions--stack {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.auth-form-actions--center {
    display: flex;
    justify-content: center;
    margin-bottom: 0;
}

.auth-inline-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--dp-interactive-primary);
    font-size: 0.875rem;
    text-decoration: none;
}

.auth-inline-link:hover {
    text-decoration: underline;
}

.auth-field__input-group {
    position: relative;
    display: flex;
}

.auth-field__input-group .auth-field__input {
    padding-right: 40px;
}

.auth-field__reveal {
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    background: none;
    color: var(--dp-text-secondary);
    cursor: pointer;
    border-radius: var(--radius-sm);
}

.auth-field__reveal:hover {
    background-color: var(--dp-surface-secondary);
}

.auth-field__input--valid {
    border-color: var(--dp-status-success);
}

.auth-field__input--invalid {
    border-color: var(--dp-status-danger);
}

.auth-sso-complete {
    text-align: center;
}

.auth-sso-complete__text {
    margin: 0;
    color: var(--dp-text-secondary);
}

.auth-context-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.auth-context-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-4);
    border: 1px solid var(--dp-border-default);
    border-radius: var(--radius-md);
    background-color: var(--dp-surface-primary);
    color: var(--dp-interactive-primary);
    text-align: left;
    cursor: pointer;
    width: 100%;
}

.auth-context-card:hover {
    border-color: var(--dp-interactive-primary);
}

.auth-context-card--selected {
    border-color: var(--dp-interactive-primary);
    background-color: var(--dp-surface-selected);
}

.auth-context-card__info h4 {
    margin: 0 0 6px;
    font-size: 0.9375rem;
    color: var(--dp-text-primary);
}

.auth-context-card__org {
    font-weight: 400;
    color: var(--dp-text-secondary);
}

.auth-context-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.auth-divider {
    border: none;
    border-top: 1px solid var(--dp-border-separator);
    margin: var(--space-5) 0 var(--space-4);
}

.auth-footnote {
    margin: 0;
    color: var(--dp-text-secondary);
    font-size: 0.875rem;
    text-align: center;
}

.auth-mfa-code {
    text-align: center;
    font-size: 1.5rem;
    letter-spacing: 0.3rem;
}

.auth-checkbox-inline {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--dp-text-primary);
}

.auth-mfa-links {
    flex-direction: column;
    gap: var(--space-2);
}

/* ── Register wizard ── */

.auth-register-type {
    display: flex;
    gap: var(--space-2);
    margin-bottom: var(--space-4);
}

.auth-row-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
}

@media (max-width: 480px) {
    .auth-row-2 {
        grid-template-columns: 1fr;
    }
}

.auth-step {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    margin: var(--space-4) 0;
}

.auth-step h5 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--dp-text-primary);
    font-size: 0.9375rem;
}

.auth-wizard-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: var(--space-4) 0;
}

/* ── Login ── */

.auth-identity-chip {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--dp-border-default);
    border-radius: var(--radius-md);
    background-color: var(--dp-surface-secondary);
    color: var(--dp-interactive-primary);
    margin-bottom: var(--space-4);
}

.auth-identity-chip__email {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--dp-text-primary);
    font-size: 0.875rem;
}

.auth-identity-chip__edit {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: none;
    background: none;
    color: var(--dp-text-secondary);
    cursor: pointer;
    border-radius: var(--radius-sm);
}

.auth-identity-chip__edit:hover {
    background-color: var(--dp-surface-hover, var(--dp-surface-secondary));
}

.auth-divider-text {
    display: flex;
    align-items: center;
    text-align: center;
    color: var(--dp-text-tertiary);
    font-size: 0.75rem;
    margin: var(--space-4) 0;
}

.auth-divider-text::before,
.auth-divider-text::after {
    content: "";
    flex: 1;
    border-top: 1px solid var(--dp-border-separator);
}

.auth-divider-text span {
    padding: 0 var(--space-3);
}

.auth-inline-link--sm {
    font-size: 0.8125rem;
    font-weight: 600;
}

.auth-field__label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 6px;
}

.auth-field__label-row .auth-field__label {
    margin-bottom: 0;
}

/* Deliberately-plain blocking modal (not DsModal — see markup comment for why). */
.auth-blocking-modal .modal-dialog {
    max-width: 440px;
}

.auth-blocking-modal__content {
    border: none;
    border-radius: var(--radius-lg);
    background-color: var(--dp-surface-primary);
    overflow: hidden;
}

.auth-blocking-modal__header {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-5) var(--space-5) var(--space-3);
    color: var(--dp-status-warning);
}

.auth-blocking-modal__header h3 {
    margin: 0;
    color: var(--dp-text-primary);
    font-size: 1.0625rem;
}

.auth-blocking-modal__body {
    padding: 0 var(--space-5) var(--space-4);
    color: var(--dp-text-secondary);
}

.auth-blocking-modal__body p {
    margin: 0;
}

.auth-blocking-modal__footer {
    display: flex;
    justify-content: flex-end;
    padding: var(--space-4) var(--space-5);
    border-top: 1px solid var(--dp-border-separator);
}
