/* Auth-only interactive controls. Keep this file after style.css so these
   components have one intentional owner instead of accumulating overrides. */
body.auth-entry .auth-visual-copy,
body.auth-entry .auth-visual-copy h1,
body.auth-entry .auth-visual-copy h2,
body.auth-entry .auth-visual-copy h3,
body.auth-entry .auth-visual-copy h4 {
    color: #fffaf0;
}

body.auth-entry .auth-visual-copy p {
    color: rgba(240, 244, 250, 0.78);
}

body.auth-entry .auth-visual-copy .auth-eyebrow {
    color: #f4c76f;
}

body.auth-entry .auth-visual-trust,
body.auth-entry .auth-visual-trust span {
    color: rgba(245, 248, 252, 0.82);
}

body.auth-entry .auth-form-panel,
body.auth-entry .auth-form-box {
    color: #26384f;
}

body.auth-entry .auth-form-box p:not(.auth-field-help) {
    color: #526176;
}

body.auth-entry .auth-form-box h2,
body.auth-entry .auth-form-box h3,
body.auth-entry .auth-form-box strong {
    color: #10233f;
}

body.auth-entry .auth-submit,
body.auth-entry .auth-submit:visited {
    border-color: #152943;
    color: #fffaf1;
    background: #152943;
}

body.auth-entry .auth-submit:hover,
body.auth-entry .auth-submit:focus-visible {
    border-color: #1c3557;
    color: #ffffff;
    background: #1c3557;
}

body.auth-entry .auth-form-box a:not(.btn) {
    color: #9a631c;
}

body.auth-entry .auth-form-box a:not(.btn):hover,
body.auth-entry .auth-form-box a:not(.btn):focus-visible {
    color: #70440e;
}

body.auth-entry .auth-form-box .auth-secondary-action {
    margin: 0.8rem 0 0;
    color: #667287;
}

body.auth-entry .auth-form .auth-terms-consent {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.55rem;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #526176;
    font-size: 0.78rem;
    line-height: 1.45;
}

body.auth-entry .auth-form .auth-terms-consent input,
body.auth-entry .auth-form .auth-2fa-check input {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    min-height: 0;
    margin: 0;
    padding: 0;
    accent-color: #f59e0b;
    box-shadow: none;
}

body.auth-entry .auth-form .auth-terms-consent span {
    display: inline;
}

body.auth-entry .auth-form .auth-terms-consent a,
.auth-login-options > a {
    color: #9a631c;
    font-weight: 800;
}

body.auth-entry .auth-form .auth-2fa-check {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-self: start;
    gap: 0.55rem;
    width: auto;
    margin: 0;
    color: #40536d;
    font-size: 0.8rem;
    font-weight: 700;
    cursor: pointer;
}

.auth-login-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    min-width: 0;
    margin: 0.05rem 0;
}

.auth-login-options > a {
    flex: 0 0 auto;
    font-size: 0.76rem;
    text-decoration: none;
}

.auth-login-options > a:hover {
    text-decoration: underline;
}

body.auth-entry .auth-form [data-totp-fields]:not([hidden]) {
    display: grid;
    gap: 0.55rem;
    padding-top: 0.15rem;
}

body.auth-entry .auth-form label > .auth-password-control {
    position: relative;
    display: block;
}

body.auth-entry .auth-form .auth-password-control input {
    padding-right: 2.75rem;
}

.auth-live-feedback,
.auth-field-hint {
    display: block;
    min-height: 1.15em;
    color: #738095;
    font-size: 0.7rem;
    font-weight: 550;
    line-height: 1.35;
}

body.auth-entry-register .auth-field-grid {
    align-items: start;
}

body.auth-entry-register .auth-field-grid > label {
    align-self: start;
    width: 100%;
}

body.auth-entry-register .auth-field-grid input,
body.auth-entry-register .auth-form > label > input,
body.auth-entry-register .auth-form > label .country-picker input {
    height: 40px;
    min-height: 35px;
}

.auth-field-hint {
    min-height: 0;
    color: #8793a5;
}

.auth-live-feedback.is-error {
    color: #a43c3c;
}

.auth-live-feedback.is-valid {
    color: #247356;
}

.auth-live-feedback:empty {
    min-height: 0;
    display: none;
}

body.auth-entry .auth-form input.is-invalid {
    border-color: #d26767;
    box-shadow: 0 0 0 3px rgba(210, 103, 103, 0.1);
}

body.auth-entry .auth-form input.is-valid {
    border-color: #68a88e;
}

.auth-password-strength {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
    margin-top: 0.05rem;
}

.auth-password-strength i {
    height: 3px;
    border-radius: 999px;
    background: #e2e7ed;
    transition: background-color 160ms ease;
}

.auth-password-strength[data-score="1"] i:nth-child(-n+1) { background: #cf5b5b; }
.auth-password-strength[data-score="2"] i:nth-child(-n+2) { background: #d79231; }
.auth-password-strength[data-score="3"] i:nth-child(-n+3) { background: #4a8cac; }
.auth-password-strength[data-score="4"] i:nth-child(-n+4) { background: #2f8a67; }

.auth-password-toggle {
    position: absolute;
    top: 50%;
    right: 0.72rem;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 0;
    color: #68768a;
    background: transparent;
    transform: translateY(-50%);
    cursor: pointer;
}

.auth-password-toggle:hover,
.auth-password-toggle:focus-visible {
    color: #26384f;
}

.auth-password-toggle:focus-visible {
    outline: 2px solid #d98b2b;
    outline-offset: 2px;
}

.auth-password-toggle svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
}

@media (max-width: 380px) {
    .auth-login-options {
        align-items: flex-start;
        flex-direction: column;
    }
}
