/* Authentication-only surfaces, using the existing ERP workspace palette. */
body.auth-body {
    --auth-ink: #142449;
    --auth-muted: #546783;
    --auth-blue: #315cff;
    --auth-line: #dbe5f5;
    --auth-card: #fff;
    --auth-soft: #f3f7ff;
    --auth-brand-start: #edf4ff;
    --auth-brand-end: #e4eeff;
    --auth-page: #f4f7fc;
    --auth-glow: #dae7ff;
    --auth-shadow: 0 18px 60px rgba(41, 73, 129, .09);
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    min-height: 100vh;
    min-height: 100svh;
    margin: 0;
    padding: 32px 24px;
    font-family: var(--erp-font-sans, "Figtree", sans-serif);
    color: var(--auth-ink);
    background: var(--auth-page) !important;
}
[data-bs-theme="dark"] body.auth-body {
    --auth-ink: #e3ecfc;
    --auth-muted: #a6b7d2;
    --auth-blue: #94afff;
    --auth-line: #30415c;
    --auth-card: #172338;
    --auth-soft: #1e2d45;
    --auth-brand-start: #1c2e4b;
    --auth-brand-end: #20385c;
    --auth-page: #101b2c;
    --auth-glow: #1b3053;
    --auth-shadow: 0 18px 60px rgba(0, 0, 0, .2);
    background: var(--auth-page) !important;
}
.auth-body .auth-bg { position: fixed; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(ellipse at 80% 5%, var(--auth-glow), transparent 55%), radial-gradient(ellipse at 0% 65%, var(--auth-brand-start), transparent 50%); }
.auth-body .auth-stage { width: min(100%, 1040px); margin: auto; animation: auth-arrive .35s ease-out both; }
.auth-body .auth-masthead { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 28px; }
.auth-body .auth-identity { display: flex; align-items: center; gap: 16px; min-width: 0; }
.auth-body .auth-logo { display: block; height: 68px; width: auto; max-width: 140px; object-fit: contain; padding: 8px; background: #fff; border: 1px solid var(--auth-line); border-radius: 18px; box-shadow: 0 3px 12px rgba(41, 73, 129, .04); flex-shrink: 0; }
.auth-body .auth-company { font-size: 1.08rem; font-weight: 650; line-height: 1.3; overflow-wrap: anywhere; }
.auth-body .auth-identity-caption { margin-top: 4px; color: var(--auth-muted); font-size: .8rem; }
.auth-body .auth-theme-toggle { display: grid; place-items: center; width: 44px; height: 44px; flex: 0 0 44px; border-radius: 50%; border: 1px solid var(--auth-line); color: var(--auth-muted); background: var(--auth-card); box-shadow: 0 3px 12px rgba(41, 73, 129, .04); }
.auth-body .auth-theme-toggle:hover { color: var(--auth-blue); background: var(--auth-soft); }
.auth-body .auth-quote-spotlight { max-width: 900px; margin: 0 auto 28px; color: var(--auth-ink); font-size: clamp(1.12rem, 1.65vw, 1.55rem); font-style: italic; font-weight: 500; line-height: 1.5; letter-spacing: -.02em; text-align: center; text-wrap: balance; overflow-wrap: anywhere; }
.auth-body .auth-shell { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--auth-line); border-radius: 30px; padding: 8px; background: var(--auth-card); box-shadow: var(--auth-shadow), inset 0 1px 0 rgba(255, 255, 255, .3); }
.auth-body .auth-brand { display: flex; flex-direction: column; justify-content: space-between; gap: 28px; min-width: 0; padding: 40px; border: 1px solid var(--auth-line); border-radius: 23px; background: linear-gradient(145deg, var(--auth-brand-start), var(--auth-soft) 58%, var(--auth-brand-end)); }
.auth-body .auth-kicker { display: flex; align-items: center; gap: 8px; font-size: .67rem; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; color: var(--auth-blue); }
.auth-body .auth-brand-mark { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: var(--auth-blue); box-shadow: 0 0 0 4px color-mix(in srgb, var(--auth-blue) 10%, transparent); }
.auth-body .auth-brand-title { margin: 22px 0 14px; font-size: clamp(2rem, 3vw, 2.7rem); font-weight: 600; letter-spacing: -.045em; line-height: 1.15; color: var(--auth-ink); }
.auth-body .auth-brand-title span { color: var(--auth-blue); }
.auth-body .auth-brand-copy { max-width: 320px; margin: 0; font-size: .9rem; line-height: 1.65; color: var(--auth-muted); }
.auth-body .auth-modules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; list-style: none; margin: 0; padding: 0; }
.auth-body .auth-modules li { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 14px 12px; border: 1px solid var(--auth-line); border-radius: 14px; background: color-mix(in srgb, var(--auth-card) 76%, transparent); font-size: .8rem; font-weight: 600; }
.auth-body .auth-modules i { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; border-radius: 10px; background: var(--auth-soft); color: var(--auth-blue); font-size: 1.15rem; }
.auth-body .auth-access-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; padding-top: 20px; border-top: 1px solid var(--auth-line); }
.auth-body .auth-access-grid dt { font-size: .64rem; font-weight: 500; color: var(--auth-muted); margin-bottom: 5px; }
.auth-body .auth-access-grid dd { margin: 0; font-size: .72rem; font-weight: 600; overflow-wrap: anywhere; }
.auth-body .auth-form-panel { min-width: 0; align-self: center; padding: 38px 40px; }
.auth-body .auth-form-heading { margin-bottom: 28px; }
.auth-body .auth-form-heading h1 { color: var(--auth-ink); margin: 10px 0 10px; font-size: 2rem; line-height: 1.2; font-weight: 600; letter-spacing: -.035em; }
.auth-body .auth-form-heading p { color: var(--auth-muted); font-size: .88rem; line-height: 1.6; margin: 0; }
.auth-body .auth-form-panel .form-label { display: block; font-size: .8rem; font-weight: 600; color: var(--auth-ink); margin-bottom: 8px !important; }
.auth-body .auth-form-panel .form-control { min-height: 50px; border: 1px solid var(--auth-line); border-radius: 13px; color: var(--auth-ink); background-color: var(--auth-soft); font-size: 1rem; }
.auth-body .auth-form-panel .form-control::placeholder { color: var(--auth-muted); opacity: .85; }
.auth-body .auth-form-panel .input-group { flex-wrap: nowrap; background: var(--auth-soft); border: 1px solid var(--auth-line); border-radius: 14px; transition: border-color .15s, box-shadow .15s; }
.auth-body .auth-form-panel .input-group > .form-control { min-width: 0; border-color: transparent; background-color: transparent; border-radius: 0; box-shadow: none; padding-left: 0; }
.auth-body .auth-form-panel .input-group-text { color: var(--auth-muted); background: transparent; border: 0; padding-inline: 15px; border-radius: 13px 0 0 13px; }
.auth-body .auth-form-panel .input-group:focus-within { border-color: var(--auth-blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--auth-blue) 14%, transparent); }
.auth-body .auth-form-panel .input-group:has(.is-invalid) { border-color: var(--bs-form-invalid-border-color); }
.auth-body .auth-form-panel .form-control.is-invalid { border-color: var(--bs-form-invalid-border-color); }
.auth-body .auth-form-panel .input-group > .form-control.is-invalid { border-color: transparent; }
.auth-body .auth-form-panel .form-control:not(.input-group .form-control):focus { border-color: var(--auth-blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--auth-blue) 14%, transparent); }
.auth-body .auth-form-panel .btn { min-height: 46px; font-size: .86rem; font-weight: 600; border-radius: 13px; white-space: normal; }
.auth-body .auth-form-panel .auth-icon-btn { display: grid; place-items: center; width: 46px; flex: 0 0 46px; border: 0; border-radius: 0 13px 13px 0; color: var(--auth-muted); background: transparent; }
.auth-body .auth-form-panel .auth-icon-btn:hover { background: color-mix(in srgb, var(--auth-blue) 9%, transparent); color: var(--auth-blue); }
.auth-body .auth-form-panel .btn-primary { min-height: 50px; border: 1px solid #315cff; color: #fff; background: linear-gradient(135deg, #4265ed, #315cff); box-shadow: 0 5px 12px rgba(49, 92, 255, .18); }
.auth-body .auth-form-panel .btn-primary:hover { background: #284fe5; border-color: #284fe5; }
.auth-body .auth-form-panel .btn-primary:disabled { opacity: .65; }
.auth-body .auth-form-panel :is(.btn-outline-primary, .btn-outline-secondary) { border-color: var(--auth-line); color: var(--auth-blue); }
.auth-body .auth-form-panel :is(.btn-outline-primary, .btn-outline-secondary):hover { background: var(--auth-soft); }
.auth-body .auth-form-panel a, .auth-body .auth-form-panel .btn-link { color: var(--auth-blue); }
.auth-body .auth-form > .d-flex > a { flex-shrink: 0; white-space: nowrap; }
.auth-body .auth-form-panel :is(.small, .invalid-feedback, .alert) { overflow-wrap: anywhere; }
.auth-body .auth-form-panel :is(.text-body-secondary, .text-muted) { color: var(--auth-muted) !important; }
.auth-body .auth-form-panel .border-top { border-color: var(--auth-line) !important; padding-top: 16px !important; }
.auth-body .auth-form-panel .alert { border-radius: 13px; }
.auth-body .auth-form-panel .form-check-input:checked { background-color: #315cff; border-color: #315cff; }
.auth-body :is(a,button,input):focus-visible { outline: 2px solid var(--auth-blue); outline-offset: 3px; }
.auth-body .auth-form-panel .form-control:focus-visible { outline: none; }
.auth-body .auth-footer { margin-top: 22px; text-align: center; color: var(--auth-muted); font-size: .73rem; }
@keyframes auth-arrive { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 991.98px) {
    .auth-body .auth-stage { max-width: 540px; }
    .auth-body .auth-shell { grid-template-columns: minmax(0, 1fr); }
    .auth-body .auth-brand { display: none; }
    .auth-body .auth-form-panel { padding: 28px 30px; }
    .auth-body .auth-quote-spotlight { font-size: 1.15rem; }
}
@media (max-width: 575.98px) {
    body.auth-body { padding: max(20px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); }
    .auth-body .auth-masthead { gap: 10px; margin-bottom: 20px; }
    .auth-body .auth-identity { gap: 10px; }
    .auth-body .auth-logo { height: 52px; max-width: 92px; border-radius: 13px; padding: 5px; }
    .auth-body .auth-company { font-size: .86rem; }
    .auth-body .auth-identity-caption { font-size: .67rem; }
    .auth-body .auth-quote-spotlight { margin-bottom: 20px; padding-inline: 4px; font-size: 1.08rem; line-height: 1.5; }
    .auth-body .auth-shell { padding: 0; border-radius: 24px; }
    .auth-body .auth-form-panel { padding: 26px 22px; }
    .auth-body .auth-form-heading { margin-bottom: 24px; }
    .auth-body .auth-form-heading h1 { font-size: 1.8rem; }
    .auth-body .auth-form-panel .form-control { font-size: 16px; }
    .auth-body .auth-footer { margin-top: 18px; }
}
@media (max-width: 359.98px) {
    .auth-body .auth-form-panel { padding: 24px 18px; }
    .auth-body .auth-identity-caption { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .auth-body .auth-stage { animation: none; }
    .auth-body .input-group { transition: none; }
}
