.auth-page #topBody {
    width: min(100% - 2rem, 1140px) !important;
    max-width: 1140px !important;
    margin: 1rem auto 2rem !important;
    padding: 0 !important;
}

.auth-page #topBody > .container {
    max-width: 100%;
    padding: 0;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.auth-page #viewer { padding: 0; min-height: auto !important; }
.auth-shell { width: 100%; max-width: 980px; margin: 0 auto; color: #f8f3ed; }
.auth-shell-login { max-width: 520px; }
.auth-card { overflow: hidden; border: 1px solid rgba(255,255,255,.1); border-radius: 22px; background: #2a2a2a; box-shadow: 0 22px 55px rgba(0,0,0,.3); }
.auth-card-header { padding: 1.6rem 1.6rem 1rem; text-align: center; background: linear-gradient(135deg, #3d1717, #242424); }
.auth-card-header i { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto .8rem; border-radius: 50%; background: #5f0000; color: #ead464; font-size: 1.35rem; }
.auth-card-header h1 { margin: 0 0 .35rem; color: #ead464; font-size: clamp(1.45rem, 4vw, 2rem); }
.auth-card-header p { max-width: 620px; margin: 0 auto; color: #d4ccc5; }
.auth-card-body { padding: 1.5rem; }
.auth-field { margin-bottom: 1rem; }
.auth-field label { display: block; margin-bottom: .4rem; color: #eee; font-weight: 600; }
.auth-field .form-control { width: 100%; min-height: 48px; border: 1px solid #686868; border-radius: 11px; background: #fff; color: #1f1f1f; }
.auth-field .form-control:focus { border-color: #ead464; box-shadow: 0 0 0 3px rgba(234,212,100,.18); }
.auth-errors, .auth-errors ul { margin: .35rem 0; padding: 0; list-style: none; color: #ffaaa4; font-size: .88rem; }
.auth-submit { min-height: 50px; border: 0; border-radius: 11px; background: #134533; color: #fff; font-weight: 700; }
.auth-submit:hover, .auth-submit:focus { background: #195d45; color: #fff; }
.auth-choice-separator { display: flex; align-items: center; gap: .8rem; margin: 1.15rem 0; color: #aaa; font-size: .82rem; text-transform: uppercase; }
.auth-choice-separator::before, .auth-choice-separator::after { content: ""; flex: 1; height: 1px; background: rgba(255,255,255,.16); }
.auth-choice-separator span { flex: 0 0 auto; }
.auth-google { display: flex; min-height: 50px; align-items: center; justify-content: center; gap: .7rem; border: 1px solid #d4d4d4; border-radius: 11px; background: #fff; color: #292929; font-weight: 700; box-shadow: 0 3px 10px rgba(0,0,0,.16); }
.auth-google:hover, .auth-google:focus { border-color: #ead464; background: #f7f7f7; color: #111; box-shadow: 0 0 0 3px rgba(234,212,100,.16); }
.auth-help-text { margin: 1rem 0 0; color: #aaa; font-size: .82rem; line-height: 1.5; text-align: center; }
.auth-invalid-link { padding: 1rem; text-align: center; }
.auth-invalid-link > i { color: #e47830; font-size: 2.2rem; }
.auth-invalid-link h2 { margin: .8rem 0 .4rem; color: #ead464; font-size: 1.25rem; }
.auth-invalid-link p { margin-bottom: 1.2rem; color: #bbb; }
.auth-secondary { color: #ead464; }
.auth-links { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.1rem; }
.auth-remember { display: flex; align-items: center; gap: .5rem; margin-bottom: 1rem; }

.auth-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; padding: 1rem 1.5rem 0; }
.auth-step { min-height: 50px; padding: .65rem; border: 1px solid #555; border-radius: 11px; background: #333; color: #ccc; font-weight: 650; cursor: pointer; }
.auth-step span { display: inline-grid; place-items: center; width: 24px; height: 24px; margin-right: .35rem; border-radius: 50%; background: #555; }
.auth-step.is-active { border-color: #ead464; background: #5f0000; color: #fff; }
.auth-step.is-active span { background: #ead464; color: #2a2a2a; }
.auth-panel[hidden] { display: none !important; }
.auth-panel h2 { margin: 0 0 .35rem; color: #ead464; font-size: 1.25rem; }
.auth-panel-intro { margin-bottom: 1.25rem; color: #bbb; }
.account-type-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-bottom: 1.25rem; }
.account-type-option { position: relative; display: block; margin: 0; cursor: pointer; }
.account-type-option input { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.account-type-content { position: relative; display: flex; min-height: 88px; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; padding: .8rem; border: 2px solid #555; border-radius: 13px; background: #333; text-align: center; transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease; }
.account-type-content i { color: #ead464; font-size: 1.35rem; }
.account-type-check { position: absolute; top: .45rem; right: .45rem; display: none; place-items: center; width: 25px; height: 25px; border-radius: 50%; background: #ead464; color: #2a2a2a; }
.account-type-check i { color: #2a2a2a; font-size: .8rem; }
.account-type-option:hover .account-type-content { border-color: #aaa; transform: translateY(-1px); }
.account-type-option input:focus-visible + .account-type-content { outline: 3px solid rgba(234,212,100,.4); outline-offset: 2px; }
.account-type-option input:checked + .account-type-content,
.account-type-option.is-selected .account-type-content { border-color: #ead464; background: #5f2020; box-shadow: 0 0 0 3px rgba(234,212,100,.18), 0 8px 20px rgba(0,0,0,.22); transform: translateY(-2px); }
.account-type-option input:checked + .account-type-content .account-type-check,
.account-type-option.is-selected .account-type-check { display: grid; }
.terms-check { display: flex; align-items: flex-start; gap: .6rem; margin-top: .5rem; }
.terms-check input { margin-top: .3rem; }
.auth-panel-actions { display: flex; justify-content: space-between; gap: .75rem; margin-top: 1.4rem; }
.auth-panel-actions .btn { min-height: 46px; min-width: 130px; border-radius: 10px; }

@media (max-width: 767.98px) {
    .auth-page #topBody { width: calc(100% - 1rem) !important; margin-top: .5rem !important; }
    .auth-card-body { padding: 1rem; }
    .auth-steps { padding: .75rem .75rem 0; }
    .auth-step { font-size: .78rem; }
    .auth-step span { display: grid; margin: 0 auto .2rem; }
    .account-type-grid { grid-template-columns: 1fr; }
    .account-type-content { min-height: 66px; flex-direction: row; }
    .auth-links { flex-direction: column; text-align: center; }
}
