:root {
    color-scheme: light;
    --agnita-portal-font-body: Inter, "Avenir Next", Arial, sans-serif;
    --agnita-portal-font-heading: var(--agnita-portal-font-body);
    --agnita-portal-bg: #fff;
    --agnita-portal-text: #1c1c2d;
    --agnita-portal-text-muted: #606375;
    --agnita-portal-surface: #fff;
    --agnita-portal-surface-raised: #f7f5ff;
    --agnita-portal-input: #fff;
    --agnita-portal-border: #e7e6ef;
    --agnita-portal-primary: #6540f5;
    --agnita-portal-primary-hover: #5030dc;
    --agnita-portal-focus: #977ffc;
    --agnita-portal-link: #5440c9;
    --agnita-portal-radius: 20px;
    --agnita-portal-shadow: 0 14px 48px #28204b0a;
    --nostress-input-border: #8b879b;
    --nostress-success: #146b3f;
    --nostress-danger: #9b2525;
}

body {
    background: var(--agnita-portal-bg);
    line-height: 1.55;
}

a:hover {
    color: var(--agnita-portal-primary-hover);
}

:is(.btn, .form-control, .form-select, .form-check-input, a, button, input, select, textarea):focus-visible {
    outline: 3px solid var(--agnita-portal-focus);
    outline-offset: 3px;
}

.passport-auth-shell,
.passport-main-content,
.passport-navbar > .container {
    width: min(100% - 48px, 1020px);
}

.passport-brand:hover,
.passport-navbar .nav-link:hover,
.passport-navbar .nav-link.active {
    color: var(--agnita-portal-link);
}

.passport-brand img {
    filter: none;
}

.passport-brand--login img.passport-brand-logo,
.passport-brand--standalone img.passport-brand-logo,
.passport-navbar img.passport-brand-logo {
    width: 200px;
    height: auto;
    padding: 0;
    background: transparent;
}

.passport-auth-main {
    align-content: start;
    padding-block: clamp(2rem, 6vw, 5rem) 4rem;
}

.passport-auth-card,
.passport-auth-content > .card,
.passport-auth-content > .h-100 .card {
    overflow: visible;
    background: var(--agnita-portal-surface);
}

.passport-auth-card__body {
    padding: 36px;
}

.passport-auth-card__header {
    text-align: center;
}

.passport-auth-card h1,
.passport-auth-card h4 {
    font-size: clamp(28px, 5vw, 34px);
    letter-spacing: -0.05em;
    overflow-wrap: anywhere;
}

.passport-auth-eyebrow {
    color: #6540df;
    font-size: 12px;
    letter-spacing: 0.1em;
}

.passport-auth-lead {
    font-size: 16px;
    line-height: 1.7;
}

.passport-auth-divider,
.passport-auth-footer {
    color: var(--agnita-portal-text-muted);
}

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

.form-label,
.col-form-label {
    color: var(--agnita-portal-text);
    font-size: 0.875rem;
}

.form-control,
.form-select,
.input-group-text,
.form-check-input {
    border-color: var(--nostress-input-border);
}

.form-control::placeholder {
    color: var(--agnita-portal-text-muted);
}

.form-control:focus,
.form-select:focus {
    background: var(--agnita-portal-input);
    color: var(--agnita-portal-text);
}

.text-danger,
.field-validation-error,
.validation-summary-errors {
    color: var(--nostress-danger) !important;
}

.btn {
    min-height: 52px;
    padding-inline: 1.55rem;
    font-size: 0.9375rem;
    white-space: normal;
}

.btn-primary,
.btn-primary:hover,
.btn-primary:focus {
    box-shadow: none;
    transform: none;
}

.btn-primary {
    --bs-btn-active-bg: var(--agnita-portal-primary-hover);
    --bs-btn-active-border-color: var(--agnita-portal-primary-hover);
    --bs-btn-disabled-bg: var(--agnita-portal-primary);
    --bs-btn-disabled-border-color: var(--agnita-portal-primary);
}

.btn-secondary,
.btn-outline-secondary {
    border-color: var(--nostress-input-border);
    background: var(--agnita-portal-surface);
}

.btn-secondary:hover,
.btn-secondary:focus,
.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
    border-color: var(--agnita-portal-primary);
    background: var(--agnita-portal-surface-raised);
    color: var(--agnita-portal-link);
}

.input-group .btn-secondary {
    min-height: 46px;
    border-inline-start: 0;
}

.alert,
.passport-auth-status {
    background: var(--agnita-portal-surface-raised);
}

.alert-warning,
.passport-auth-recovery {
    border-color: #eed8a3;
    background: #fff8e9;
}

.alert-success,
.passport-auth-status--success {
    border-color: #bbdec9;
    background: #edf9f1;
}

.alert-danger,
.passport-auth-status--error {
    border-color: #ebc4c4;
    background: #fff2f2;
}

.passport-auth-status--success .passport-auth-status__mark {
    background: #d9efdf;
    color: var(--nostress-success);
}

.passport-auth-status--error .passport-auth-status__mark {
    background: #f9dddd;
    color: var(--nostress-danger);
}

.passport-navbar,
.dropdown-menu {
    border-color: var(--agnita-portal-border);
    background: var(--agnita-portal-surface);
}

.passport-navbar .nav-link,
.dropdown-item {
    color: var(--agnita-portal-text-muted);
}

.dropdown-item:hover,
.dropdown-item:focus {
    background: var(--agnita-portal-surface-raised);
    color: var(--agnita-portal-link);
}

@media (max-width: 640px) {
    .passport-auth-shell,
    .passport-main-content,
    .passport-navbar > .container {
        width: calc(100% - 40px);
    }

    .passport-brand--login img.passport-brand-logo,
    .passport-brand--standalone img.passport-brand-logo,
    .passport-navbar img.passport-brand-logo {
        width: 170px;
    }

    .passport-auth-card__body {
        padding: 24px 20px;
    }
}
