/* =====================================================================================
   RevelX — guest / auth pages (login, register, password reset, maintenance)
   Builds on the .rx-auth* helpers in revelx.css. Layout: split screen ≥992px
   (art panel left, glass form card right); single column with brand on top below.
   ===================================================================================== */

.rx-guest { min-height: 100vh; overflow-x: clip; }
.rx-guest .main { padding: 0 !important; min-height: 100vh; }
.rx-guest .bg-blank { display: none !important; } /* legacy light-theme wave */

/* ---------- split shell ---------- */
.rx-auth { position: relative; min-height: 100vh; }
@media (min-width: 992px) {
    .rx-auth { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .rx-auth--wide { grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); }
}
@media (min-width: 1400px) {
    .rx-auth--wide { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
}

/* ---------- art panel ---------- */
.rx-auth-art { padding: 2.5rem 3rem; isolation: isolate; }
@media (min-width: 992px) {
    .rx-auth-art { display: block !important; padding: 0; overflow: clip !important; }
    .rx-auth-art-inner { position: sticky; top: 0; height: 100vh; min-height: 620px; padding: 2.5rem 3rem; display: flex; flex-direction: column; justify-content: space-between; }
}
@media (min-width: 1400px) { .rx-auth-art-inner { padding: 3rem 4rem; } }
.rx-auth-art::after { /* soft starfield specific to the panel */
    content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .7;
    background-image:
        radial-gradient(1.2px 1.2px at 40px 60px, #fff, transparent 60%),
        radial-gradient(1px 1px at 170px 120px, rgba(255, 255, 255, .7), transparent 60%),
        radial-gradient(1.6px 1.6px at 260px 30px, rgba(190, 228, 255, .9), transparent 60%),
        radial-gradient(1px 1px at 90px 210px, rgba(170, 234, 255, .8), transparent 60%),
        radial-gradient(1.2px 1.2px at 300px 250px, rgba(255, 255, 255, .6), transparent 60%);
    background-size: 340px 300px;
}
.rx-auth-art-inner { isolation: isolate; }
.rx-auth-art-deco { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.rx-auth-art-deco .rx-orbit { left: 78%; top: 30%; transform: translate(-50%, -50%); }
.rx-orbit-1 { width: 260px; height: 260px; border-color: rgba(136, 205, 255, .26) !important; }
.rx-orbit-2 { width: 460px; height: 460px; border-style: dashed !important; border-color: rgba(136, 205, 255, .16) !important; animation: rx-auth-spin 90s linear infinite; }
.rx-orbit-3 { width: 700px; height: 700px; border-color: rgba(84, 212, 255, .1) !important; }
.rx-auth-planet { position: absolute; left: 78%; top: 30%; width: 120px; height: 120px; transform: translate(-50%, -50%); border-radius: 50%;
    background: radial-gradient(circle at 32% 28%, #c6e7ff 0%, #79c0f3 22%, #4892c7 50%, #193d7c 78%, #09182f 100%);
    box-shadow: 0 0 60px 8px rgba(97, 170, 223, .45), inset -14px -18px 30px rgba(6, 14, 26, .65); }
.rx-auth-sat { position: absolute; border-radius: 50%; }
.rx-auth-sat-1 { width: 12px; height: 12px; left: calc(78% + 125px); top: calc(30% - 30px); background: #54d4ff; box-shadow: 0 0 16px 3px rgba(84, 212, 255, .75); }
.rx-auth-tree { position: absolute; right: 2.5rem; bottom: 4.5rem; width: 220px; opacity: .2; }
@keyframes rx-auth-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .rx-orbit-2 { animation: none; } }

.rx-auth-art-brand { position: relative; align-self: flex-start; }
.rx-auth-art-brand .rx-brand-mark { width: 44px; height: 44px; }
.rx-auth-art-brand .rx-brand-name { font-size: 1.55rem; }
.rx-auth-art-body { position: relative; max-width: 540px; padding: 2.5rem 0; }
.rx-auth-kicker { display: inline-flex; align-items: center; gap: .45rem; padding: .4rem .85rem; margin-bottom: 1.4rem; border-radius: 999px;
    background: rgba(97, 170, 223, .14); border: 1px solid rgba(136, 205, 255, .3); color: #c4e6ff; font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.rx-auth-kicker i { color: #d8efff; }
.rx-auth-headline { margin-bottom: 1.1rem; }
.rx-auth-copy { color: var(--rx-muted); font-size: 1.02rem; line-height: 1.65; max-width: 460px; margin-bottom: 2rem; }
.rx-auth-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.rx-auth-tile { display: flex; flex-direction: column; gap: .15rem; padding: 1rem; border-radius: 16px;
    background: linear-gradient(160deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .02)); border: 1px solid var(--rx-border);
    backdrop-filter: blur(8px); }
.rx-auth-tile .rx-kpi-icon { width: 36px; height: 36px; border-radius: 11px; font-size: 1rem; margin-bottom: .65rem; }
.rx-auth-tile b { font-family: var(--rx-font-display); font-size: .95rem; font-weight: 600; color: #fff; line-height: 1.25; }
.rx-auth-tile span:last-child { color: var(--rx-muted); font-size: .78rem; line-height: 1.4; }
.rx-auth-art-foot { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .7rem; color: var(--rx-faint); font-size: .8rem; }
.rx-auth-dot { display: inline-block; width: 4px; height: 4px; border-radius: 50%; background: currentColor; opacity: .6; vertical-align: middle; margin: 0 .35rem; }
@media (min-width: 992px) and (max-height: 760px) {
    .rx-auth-art-body { padding: 1.25rem 0; }
    .rx-auth-kicker { margin-bottom: 1rem; }
    .rx-auth-copy { margin-bottom: 1.25rem; }
}

/* ---------- form side ---------- */
.rx-auth-form { position: relative; padding: 1.5rem 16px 2.5rem; flex-direction: column; }
@media (min-width: 576px) { .rx-auth-form { padding: 2.5rem 1.5rem 3rem; } }
@media (min-width: 992px) {
    .rx-auth-form { padding: 3rem 2.5rem; min-height: 100vh; }
    .rx-auth-form::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
        background: radial-gradient(520px 380px at 50% 40%, rgba(104, 168, 214, .14), transparent 70%); }
}
.rx-auth-card { max-width: 460px; margin: 0 auto; }
.rx-auth--wide .rx-auth-card { max-width: 660px; }
.rx-auth-card .rx-auth-panel.rx-glass { padding: 2rem 1.75rem; border-radius: 24px; border-color: var(--rx-border-strong);
    background: linear-gradient(170deg, rgba(27, 50, 85, .78), rgba(12, 25, 45, .82)); box-shadow: var(--rx-shadow), 0 40px 80px -40px rgba(41, 105, 215, .35); position: relative; }
.rx-auth-panel::before { /* top gradient hairline */
    content: ''; position: absolute; left: 24px; right: 24px; top: -1px; height: 1px; background: linear-gradient(90deg, transparent, rgba(168, 219, 255, .8), rgba(84, 212, 255, .7), transparent); }
@media (min-width: 576px) { .rx-auth-card .rx-auth-panel.rx-glass { padding: 2.5rem 2.5rem 2.25rem; } }
@media (max-width: 575.98px) { .rx-auth-card .rx-auth-panel.rx-glass { padding: 1.6rem 1.25rem; border-radius: 20px; } }

.rx-auth-mbrand { display: flex; justify-content: center; margin: .5rem 0 1.5rem; }
.rx-auth-mbrand .rx-brand-mark { width: 42px; height: 42px; }
.rx-auth-mbrand .rx-brand-name { font-size: 1.5rem; }

.rx-auth-head { text-align: center; margin-bottom: 1.75rem; }
.rx-auth-head-icon { width: 52px; height: 52px; border-radius: 16px; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 1rem;
    background: var(--rx-grad); color: #fff; font-size: 1.35rem; box-shadow: var(--rx-glow); }
.rx-auth-title { font-family: var(--rx-font-display); font-weight: 700; font-size: 1.75rem; letter-spacing: -.02em; color: #fff; margin-bottom: .4rem; }
.rx-auth-sub { color: var(--rx-muted); margin-bottom: 0; font-size: .93rem; }
.rx-auth-link { color: #b6e1ff !important; font-weight: 600; text-decoration: none; }
.rx-auth-link:hover { color: #fff !important; text-decoration: underline; text-underline-offset: 3px; }
.rx-auth-link-muted { color: var(--rx-muted) !important; text-decoration: none; }
.rx-auth-link-muted:hover { color: #fff !important; }
.rx-auth-foot { text-align: center; color: var(--rx-faint); font-size: .86rem; margin: 1.5rem 0 0; }

/* inputs with a leading icon (login) */
.rx-auth-ig .input-group-prepend.input-group-text { padding-left: 1rem; padding-right: 0; }
.rx-auth-ig .input-group-prepend + .form-control { padding-left: .5rem; }
.rx-auth-panel .input-group-merge { border-radius: 12px; border: 0 !important; box-shadow: none !important; }
.rx-auth-panel .form-control, .rx-auth-panel .form-select { font-size: .98rem; }
.rx-auth-panel .input-group-merge > .form-control:not(.form-control-lg) { padding-top: .75rem; padding-bottom: .75rem; }
.rx-auth-panel .input-group-merge .input-group-text i { font-size: 1.05rem; }
.rx-auth-panel .form-control-lg { font-size: .98rem; min-height: 50px; }
.rx-auth-panel .input-group-merge .form-control { box-shadow: none; }
.rx-auth-panel a.input-group-append.input-group-text:hover { color: #fff !important; }
.rx-auth-panel .form-label-link { font-size: .82rem; }
.rx-auth-submit { min-height: 52px; font-weight: 600; letter-spacing: .01em; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; }
.rx-auth-submit i { transition: transform .2s ease; }
.rx-auth-submit:hover i { transform: translateX(3px); }
.rx-auth-submit:disabled { opacity: .45; filter: saturate(.6); box-shadow: none !important; }
.rx-auth-panel .alert { font-size: .9rem; margin-bottom: 1.25rem; }
.rx-auth-panel .alert-soft-danger, .rx-auth-panel .alert-danger { position: relative; padding-left: 2.75rem; }
.rx-auth-panel .alert-soft-danger::before, .rx-auth-panel .alert-danger::before { content: '\F33A'; font-family: 'bootstrap-icons'; position: absolute; left: 1rem; top: .8rem; font-size: 1.05rem; }

/* ---------- register: sections + grid ---------- */
.rx-auth-section { padding-top: 1.35rem; margin-top: 1.35rem; border-top: 1px solid var(--rx-border); }
.rx-auth-section:first-of-type, .rx-auth-head + .rx-auth-section, .alert + .rx-auth-section { border-top: 0; margin-top: 0; padding-top: 0; }
.rx-auth-section-title { display: flex; align-items: center; gap: .55rem; margin-bottom: 1rem; font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #a8dbff; }
.rx-auth-section-title i { width: 26px; height: 26px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; font-size: .85rem;
    background: rgba(97, 170, 223, .18); color: #d0ebff; }
.rx-auth-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem 1.1rem; }
@media (min-width: 640px) {
    .rx-auth-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rx-auth-grid > .rx-span-2 { grid-column: 1 / -1; }
}
.rx-auth-field { min-width: 0; }
.rx-auth-field .form-label { margin-bottom: .45rem; }
.rx-auth-field .valid-feedback, .rx-auth-field .invalid-feedback { font-size: .8rem; margin-top: .4rem; }
.rx-auth-field .valid-feedback { color: var(--rx-success) !important; }
.rx-auth-field .valid-feedback::before { content: '\F26B'; font-family: 'bootstrap-icons'; margin-right: .35rem; }
.rx-auth-field .invalid-feedback.d-block::before { content: '\F623'; font-family: 'bootstrap-icons'; margin-right: .35rem; }
.rx-auth-panel .form-control.is-invalid { border-color: rgba(255, 95, 143, .6) !important; background-image: none; }
.rx-auth-panel .form-control.is-invalid:focus { box-shadow: 0 0 0 .22rem rgba(255, 95, 143, .2) !important; }
/* Livewire sponsor / login-id lookups: plain input inside input-group-merge */
.rx-auth-panel .input-group-merge > .form-control:only-child,
.rx-auth-panel .input-group-merge > .form-control:first-child:not(:last-child) { border-radius: 12px !important; }
.rx-auth-panel [wire\:loading] .input-group-text { position: absolute; right: .25rem; top: 50%; transform: translateY(-50%); z-index: 5; background: transparent !important; border: 0 !important; }
.rx-auth-panel .input-group-merge > div[wire\:loading] { position: static; }
.rx-auth-panel .input-group-merge .form-control { min-height: 50px; }

/* leg / radio choice pills */
.rx-auth-choice { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: .6rem; }
.rx-auth-choice > label.form-control { display: flex; align-items: center; min-height: 50px; margin: 0; cursor: pointer; padding: .6rem .85rem; border-radius: 12px !important; transition: border-color .15s, background .15s; }
.rx-auth-choice > label.form-control:hover { border-color: var(--rx-border-strong) !important; }
.rx-auth-choice .form-check { width: 100%; margin: 0; padding: 0 !important; gap: .5rem; min-height: 0; display: flex; align-items: center; justify-content: space-between; flex-direction: row-reverse; }
.rx-auth-choice .form-check .form-check-input { float: none; margin: 0; }
.rx-auth-choice .form-check-label { color: var(--rx-text); font-weight: 500; white-space: nowrap; }
.rx-auth-choice .form-check-label i { color: #a8dbff; }

/* country / state / city */
.rx-auth-csc { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem 1.1rem; }
@media (min-width: 640px) { .rx-auth-csc { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.rx-auth-note { display: flex; gap: .7rem; align-items: flex-start; padding: .85rem 1rem; border-radius: 14px; font-size: .86rem; line-height: 1.5;
    background: var(--rx-grad-soft); border: 1px solid rgba(136, 205, 255, .22); color: #d2ecff; }
.rx-auth-note i { color: #fff; font-size: 1rem; margin-top: .05rem; }
.rx-auth-terms { margin: 1.5rem 0 1.25rem; padding: .9rem 1rem; border-radius: 14px; background: rgba(255, 255, 255, .03); border: 1px solid var(--rx-border); }
.rx-auth-terms .form-check { margin: 0; }
.rx-auth-terms .form-check-label { color: var(--rx-muted); font-size: .9rem; }

/* ---------- success (register) ---------- */
.rx-auth-panel .alert-success .alert-heading { font-family: var(--rx-font-display); font-size: 1.15rem; color: #aef5d8; }

/* ---------- maintenance / simple centered pages ---------- */
.rx-auth-center { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem 16px; text-align: center; }
.rx-auth-center .rx-auth-card { width: 100%; max-width: 560px; }
.rx-maint-visual { position: relative; width: 170px; height: 170px; margin: 0 auto 1.5rem; display: flex; align-items: center; justify-content: center; }
.rx-maint-visual .rx-orbit { inset: 0; }
.rx-maint-visual .rx-orbit + .rx-orbit { inset: 22px; border-style: dashed; animation: rx-auth-spin-flat 40s linear infinite; }
.rx-maint-visual .rx-auth-head-icon { width: 76px; height: 76px; border-radius: 24px; font-size: 2rem; margin: 0; }
.rx-maint-img { max-width: 260px; max-height: 220px; width: auto; margin: 0 auto 1.5rem; display: block; border-radius: 16px; }
.rx-maint-text { color: var(--rx-muted); font-size: 1rem; line-height: 1.65; }
.rx-maint-text p:last-child { margin-bottom: 0; }
@keyframes rx-auth-spin-flat { to { transform: rotate(360deg); } }
.rx-auth-center .rx-brand-text, .rx-auth-mbrand .rx-brand-text { text-align: left; }

/* narrow desktop (992–1199px): compact art panel */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .rx-auth-art-inner { padding: 2.25rem 2rem; }
    .rx-auth-art-deco .rx-orbit, .rx-auth-planet { left: 88%; top: 16%; }
    .rx-auth-planet { width: 76px; height: 76px; }
    .rx-orbit-1 { width: 170px; height: 170px; }
    .rx-orbit-2 { width: 320px; height: 320px; }
    .rx-auth-sat-1 { left: calc(88% + 80px); top: calc(16% - 20px); }
    .rx-auth-tree { display: none; }
    .rx-auth-tiles { grid-template-columns: minmax(0, 1fr); gap: .6rem; }
    .rx-auth-tile { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: .85rem; align-items: center; padding: .8rem 1rem; }
    .rx-auth-tile .rx-kpi-icon { grid-row: span 2; margin-bottom: 0; }
}
/* equal-height selects in the register grid (tom-select + native) */
.rx-auth-panel select.form-select, .rx-auth-csc .ts-control.form-select { min-height: 50px; }
.rx-auth-csc .ts-control.form-select { display: flex; align-items: center; }
.rx-auth-csc .ts-control.js-select-state .ts-input, .rx-auth-csc .ts-control.js-select-city .ts-input { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
