@import url("https://fonts.googleapis.com/css2?family=Orbitron:wght@700;900&family=Share+Tech+Mono&display=swap");

/* =============================================================
   AVA AI Pulse — Shared theme animations & design tokens
   QuantumSolutionsAdminTheme
   ============================================================= */

/* ---- Design tokens: dark mode defaults ---- */
:root {
    --ava-bg:           #010508;
    --ava-orb-bg-c:     #001428;
    --ava-orb-bg-m:     #000a18;
    --ava-orb-bg-e:     #000408;
    --ava-out:          rgba(0,212,255,.05);
    --ava-out2:         rgba(0,212,255,.09);
    --ava-ring:         rgba(0,212,255,.18);
    --ava-ring2:        rgba(0,212,255,.22);
    --ava-ring-dash:    rgba(0,212,255,.13);
    --ava-fill1:        rgba(0,212,255,.02);
    --ava-ping1:        rgba(255,143,0,.70);
    --ava-ping2:        rgba(255,143,0,.45);
    --ava-ping3:        rgba(255,143,0,.30);
    --ava-sweep-l:      rgba(255,183,0,.90);
    --ava-sweep1:       rgba(255,143,0,.06);
    --ava-sweep2:       rgba(255,143,0,.13);
    --ava-dot-c:        #00d4ff;
    --ava-dot-o:        #ff8f00;
    --ava-orb-in:       rgba(0,10,22,.60);
    --ava-orb-fill:     rgba(0,15,30,.90);
    --ava-core-out:     rgba(255,143,0,.28);
    --ava-core-str:     rgba(255,143,0,.70);
    --ava-hex-f:        rgba(255,143,0,.10);
    --ava-hex-s:        rgba(255,143,0,.55);
    --ava-tri-f:        rgba(255,143,0,.15);
    --ava-tri-s:        rgba(255,183,0,.60);
    --ava-hud-l:        rgba(255,143,0,.55);
    --ava-hud-l2:       rgba(255,183,0,.75);
    --ava-hud-r:        rgba(0,212,255,.45);
    --ava-hud-r2:       rgba(0,212,255,.75);
    --ava-arc-s:        rgba(255,143,0,.20);
    --ava-arc-t:        rgba(255,143,0,.42);
    --ava-label-name:   #00d4ff;
    --ava-label-sub:    rgba(0,212,255,.50);
    --ava-hud-corner:   rgba(0,212,255,.35);
    --ava-hud-title:    rgba(0,212,255,.28);
    --ava-scan-sweep:   rgba(0,212,255,.04);
    --ava-scan-lines:   rgba(0,212,255,.012);
    --ava-fr1:          rgba(0,212,255,.28);
    --ava-fr2:          rgba(255,143,0,.30);
    --ava-fr3:          rgba(0,212,255,.18);
    /* Globe-specific */
    --ava-g-bg-c:       #001e38;
    --ava-g-bg-m:       #000e20;
    --ava-g-bg-e:       #000510;
    --ava-g-atm:        rgba(0,212,255,.08);
    --ava-g-edge:       rgba(0,212,255,.20);
    --ava-g-lat:        rgba(0,212,255,.10);
    --ava-g-lon:        rgba(0,212,255,.10);
    --ava-g-equator:    rgba(0,212,255,.18);
    --ava-g-orb-a:      rgba(0,212,255,.28);
    --ava-g-orb-b:      rgba(255,143,0,.28);
    --ava-g-orb-c:      rgba(0,212,255,.22);
    --ava-g-sat-a:      #00d4ff;
    --ava-g-sat-b:      #ff8f00;
    --ava-g-sat-c:      #00d4ff;
    --ava-g-sat-d:      #00fff7;
    --ava-g-sat-e:      #ff2aff;
    --ava-g-orb-d:      rgba(0,255,247,.20);
    --ava-g-orb-e:      rgba(255,42,255,.18);
    --ava-g-pkt-a:      #00d4ff;
    --ava-g-pkt-b:      #ff8f00;
    --ava-g-pkt-c:      #00fff7;
    --ava-g-c1-f:       rgba(0,10,22,.65);
    --ava-g-c1-s:       rgba(255,143,0,.30);
    --ava-g-c2-f:       rgba(0,18,35,.92);
    --ava-g-c2-s:       rgba(255,143,0,.72);
    /* Login card */
    --ava-card-bg:      rgba(255,255,255,.65);
    --ava-card-bd:      rgba(0,0,0,.06);
    --ava-card-shadow:  rgba(0,0,0,.25);
}

/* ---- Design tokens: light mode overrides ---- */
html[data-bs-theme="light"] {
    --ava-bg:           #eaf6ff;
    --ava-orb-bg-c:     #d4e8ff;
    --ava-orb-bg-m:     #bed8f8;
    --ava-orb-bg-e:     #aecaf0;
    --ava-out:          rgba(0,70,160,.07);
    --ava-out2:         rgba(0,70,160,.12);
    --ava-ring:         rgba(0,70,160,.22);
    --ava-ring2:        rgba(0,70,160,.25);
    --ava-ring-dash:    rgba(0,70,160,.15);
    --ava-fill1:        rgba(0,70,160,.03);
    --ava-ping1:        rgba(200,80,0,.65);
    --ava-ping2:        rgba(200,80,0,.40);
    --ava-ping3:        rgba(200,80,0,.25);
    --ava-sweep-l:      rgba(170,60,0,.85);
    --ava-sweep1:       rgba(200,80,0,.07);
    --ava-sweep2:       rgba(200,80,0,.15);
    --ava-dot-c:        #004fa3;
    --ava-dot-o:        #b84500;
    --ava-orb-in:       rgba(200,230,255,.50);
    --ava-orb-fill:     rgba(220,240,255,.92);
    --ava-core-out:     rgba(180,70,0,.28);
    --ava-core-str:     rgba(180,70,0,.65);
    --ava-hex-f:        rgba(180,70,0,.10);
    --ava-hex-s:        rgba(180,70,0,.50);
    --ava-tri-f:        rgba(180,70,0,.15);
    --ava-tri-s:        rgba(160,60,0,.60);
    --ava-hud-l:        rgba(160,60,0,.60);
    --ava-hud-l2:       rgba(140,50,0,.80);
    --ava-hud-r:        rgba(0,60,140,.50);
    --ava-hud-r2:       rgba(0,55,130,.80);
    --ava-arc-s:        rgba(160,60,0,.22);
    --ava-arc-t:        rgba(0,55,130,.48);
    --ava-label-name:   #003d82;
    --ava-label-sub:    rgba(0,60,140,.50);
    --ava-hud-corner:   rgba(0,70,160,.28);
    --ava-hud-title:    rgba(0,60,140,.26);
    --ava-scan-sweep:   rgba(0,60,120,.025);
    --ava-scan-lines:   rgba(0,60,120,.008);
    --ava-fr1:          rgba(0,70,160,.25);
    --ava-fr2:          rgba(180,70,0,.28);
    --ava-fr3:          rgba(0,70,160,.18);
    /* Globe-specific */
    --ava-g-bg-c:       #c8dff5;
    --ava-g-bg-m:       #b2ccec;
    --ava-g-bg-e:       #9abde4;
    --ava-g-atm:        rgba(0,70,160,.10);
    --ava-g-edge:       rgba(0,70,160,.25);
    --ava-g-lat:        rgba(0,70,160,.12);
    --ava-g-lon:        rgba(0,70,160,.12);
    --ava-g-equator:    rgba(0,70,160,.20);
    --ava-g-orb-a:      rgba(0,70,160,.30);
    --ava-g-orb-b:      rgba(180,70,0,.28);
    --ava-g-orb-c:      rgba(0,70,160,.22);
    --ava-g-sat-a:      #004fa3;
    --ava-g-sat-b:      #b84500;
    --ava-g-sat-c:      #004fa3;
    --ava-g-sat-d:      #008888;
    --ava-g-sat-e:      #990099;
    --ava-g-orb-d:      rgba(0,150,150,.20);
    --ava-g-orb-e:      rgba(150,0,150,.15);
    --ava-g-pkt-a:      #38b6ff;
    --ava-g-pkt-b:      #ff9a2c;
    --ava-g-pkt-c:      #38b6ff;
    --ava-g-c1-f:       rgba(195,228,252,.50);
    --ava-g-c1-s:       rgba(180,70,0,.30);
    --ava-g-c2-f:       rgba(218,238,255,.94);
    --ava-g-c2-s:       rgba(180,70,0,.68);
    /* Login card */
    --ava-card-bg:      rgba(255,255,255,.80);
    --ava-card-bd:      rgba(0,70,160,.16);
    --ava-card-shadow:  rgba(0,60,140,.12);
}

/* ---- Light-mode: lift neural-network path brightness to match vision ----
   Satellite orbit shapes keep their deep-blue/amber via --ava-g-sat-a/b.
   Only paths and node circles inside the ava-netgrow group are targeted here. */
html[data-bs-theme="light"] .ava-orb-admin [style*="ava-netgrow"] path[style*="ava-g-sat-a"] {
    stroke: rgba(56,182,255,.68) !important;
}
html[data-bs-theme="light"] .ava-orb-admin [style*="ava-netgrow"] path[style*="ava-g-sat-b"] {
    stroke: rgba(255,160,58,.68) !important;
}
html[data-bs-theme="light"] .ava-orb-admin [style*="ava-netgrow"] circle[style*="ava-g-sat-a"] {
    fill: rgba(56,182,255,.82) !important;
}
html[data-bs-theme="light"] .ava-orb-admin [style*="ava-netgrow"] circle[style*="ava-g-sat-b"] {
    fill: rgba(255,160,58,.88) !important;
}

/* ---- Keyframes ---- */
@keyframes ava-rsweep    { from { transform: rotate(0deg);   } to { transform: rotate(360deg);  } }
@keyframes ava-rping     { 0%   { transform: scale(.2); opacity: .9; } 100% { transform: scale(2.6); opacity: 0; } }
@keyframes ava-ocw       { from { transform: rotate(0deg);   } to { transform: rotate(360deg);  } }
@keyframes ava-occw      { from { transform: rotate(0deg);   } to { transform: rotate(-360deg); } }
@keyframes ava-pulse     { 0%, 100% { opacity: .9; } 50% { opacity: .42; } }
@keyframes ava-globe-spin { from { transform: rotate(0deg);  } to { transform: rotate(360deg);  } }
@keyframes ava-orb-hyperflash {
    0%, 74%, 100% { filter: brightness(1) saturate(1); transform: translateZ(0) scale(1); }
    76% { filter: brightness(2.15) saturate(2.1); transform: translateZ(0) scale(1.018); }
    78% { filter: brightness(.88) saturate(1.1); transform: translateZ(0) scale(.997); }
    81% { filter: brightness(2.8) saturate(2.5); transform: translateZ(0) scale(1.026); }
    84% { filter: brightness(1.08) saturate(1.25); transform: translateZ(0) scale(1); }
}
@keyframes ava-title-glitch {
    0%, 82%, 100% { transform: translateX(0); letter-spacing: .35em; }
    83% { transform: translateX(-2px); letter-spacing: .42em; }
    84% { transform: translateX(2px); letter-spacing: .28em; }
    85% { transform: translateX(-1px); letter-spacing: .39em; }
    86% { transform: translateX(0); letter-spacing: .35em; }
}
@keyframes ava-consume {
    0%, 100% { filter: brightness(1)   saturate(1);   }
    25%       { filter: brightness(2.4) saturate(2.0); }
    27%       { filter: brightness(0.9);               }
    55%       { filter: brightness(3.5) saturate(2.6); }
    57%       { filter: brightness(1.5);               }
    59%       { filter: brightness(0.9);               }
    80%       { filter: brightness(2.0) saturate(1.8); }
    81%       { filter: brightness(1);                 }
}
@keyframes ava-float {
    0%   { transform: translateY(0)     rotate(0deg);   }
    18%  { transform: translateY(-12px) rotate(.5deg);  }
    38%  { transform: translateY(-7px)  rotate(-.4deg); }
    58%  { transform: translateY(-10px) rotate(.4deg);  }
    78%  { transform: translateY(-4px)  rotate(-.2deg); }
    100% { transform: translateY(0)     rotate(0deg);   }
}
@keyframes ava-neon-cycle {
    0%   { color: #0088ff; text-shadow: 0 0 8px rgba(0,136,255,.85), 0 0 18px rgba(0,100,255,.55); }
    25%  { color: #00ccff; text-shadow: 0 0 8px rgba(0,200,255,.85), 0 0 18px rgba(0,170,255,.55); }
    50%  { color: #8844ff; text-shadow: 0 0 8px rgba(136,68,255,.80), 0 0 18px rgba(100,40,255,.50); }
    75%  { color: #00ff99; text-shadow: 0 0 8px rgba(0,255,153,.75), 0 0 18px rgba(0,200,120,.45); }
    100% { color: #0088ff; text-shadow: 0 0 8px rgba(0,136,255,.85), 0 0 18px rgba(0,100,255,.55); }
}
@keyframes ava-login-float {
    0%   { transform: translateY(0)     translateX(0)     rotate(0deg);   }
    18%  { transform: translateY(22px)  translateX(30px)  rotate(.8deg);  }
    38%  { transform: translateY(8px)   translateX(-34px) rotate(-.7deg); }
    58%  { transform: translateY(34px)  translateX(22px)  rotate(.6deg);  }
    78%  { transform: translateY(14px)  translateX(-24px) rotate(-.4deg); }
    100% { transform: translateY(0)     translateX(0)     rotate(0deg);   }
}
@keyframes ava-hflash {
    0%, 85%, 100% { filter: brightness(1);                      }
    86%           { filter: brightness(2.8) saturate(2);        }
    86.5%         { filter: brightness(1.1);                    }
    87%           { filter: brightness(3.6) saturate(2.5);      }
    87.5%         { filter: brightness(1.2);                    }
    88%           { filter: brightness(2) saturate(1.6);        }
    88.5%         { filter: brightness(1);                      }
}
@keyframes ava-frpulse  { 0%, 100% { opacity: .42; } 50% { opacity: .78; } }
@keyframes ava-scanmove { 0% { top: -80px; } 100% { top: 110%; } }
@keyframes ava-grid-flow {
    from { background-position: 0 0, 0 0, center, center, center; }
    to { background-position: 0 52px, 52px 0, center, center, center; }
}
@keyframes ava-energy-burst {
    0%, 68% { opacity: 0; transform: translate(-50%, -50%) scale(.2); }
    72% { opacity: .95; }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(26); }
}
@keyframes ava-web-hue {
    from { filter: hue-rotate(0deg); }
    to   { filter: hue-rotate(360deg); }
}
@keyframes ava-netgrow {
    0%,  100% { transform: scale(1)    rotate(0deg)    translate(0,0);       }
    25%        { transform: scale(1.05) rotate(.6deg)   translate(-1px,-1px); }
    50%        { transform: scale(1.09) rotate(0deg)    translate(1px,1px);   }
    75%        { transform: scale(1.06) rotate(-.6deg)  translate(-1px,1px);  }
}

/* ---- Page backgrounds ---- */
body.qcs-login,
body.qsa-login {
    min-height: 100dvh;
    background-color: var(--ava-bg) !important;
    background-image: none !important;
    overflow-x: hidden;
    --bs-body-bg: transparent !important;
}

.qsa-ava-hyper {
    --ava-bg: #02030a;
}

html[data-bs-theme="light"] body.qsa-login.qsa-ava-hyper {
    --ava-bg: #eaf6ff;
}

html[data-bs-theme="light"] body.qsa-login.qsa-ava-hyper .ava-stage-grid {
    opacity: .52;
    filter: saturate(.72) brightness(1.05);
}

html[data-bs-theme="light"] body.qsa-login.qsa-ava-hyper .ava-energy-burst {
    border-color: rgba(0,70,160,.45);
}

.qsa-ava-hyper .ava-orb-wrap {
    filter: saturate(1.55) contrast(1.08) drop-shadow(0 0 28px rgba(0,212,255,.25));
}

.qsa-ava-hyper .ava-orb-wrap svg {
    animation: none;
}

.qsa-ava-hyper .ava-label-name {
    animation: ava-title-glitch 2.4s steps(1,end) infinite,
               ava-neon-cycle 5s ease-in-out infinite;
}

.qsa-ava-hyper .ava-label-sub {
    animation: ava-neon-cycle 5s ease-in-out infinite 1.25s;
    opacity: .82;
}

/* Light-mode: neon-cycle handles color + text-shadow for both themes */
html[data-bs-theme="light"] .qsa-ava-hyper .ava-label-name {
    animation: ava-title-glitch 2.4s steps(1,end) infinite,
               ava-neon-cycle 5s ease-in-out infinite;
}

html[data-bs-theme="light"] .qsa-ava-hyper .ava-label-sub {
    animation: ava-neon-cycle 5s ease-in-out infinite 1.25s;
    opacity: .82;
}

html[data-bs-theme="light"] .qsa-ava-hyper .ava-orb-wrap {
    filter: saturate(1.30) contrast(1.04) drop-shadow(0 0 22px rgba(0,80,160,.18));
}

html[data-bs-theme="light"] .qsa-ava-hyper .ava-fr {
    box-shadow: 0 0 14px rgba(0,70,160,.14), inset 0 0 10px rgba(180,70,0,.08);
}

.qsa-ava-hyper .ava-fr {
    animation-duration: 2.6s;
    box-shadow: 0 0 22px rgba(0,212,255,.18), inset 0 0 18px rgba(255,143,0,.12);
}

.qsa-ava-hyper .ava-scanlines::before {
    height: 105px;
    background: linear-gradient(180deg, transparent, rgba(0,255,247,.08), rgba(255,42,255,.06), transparent);
    animation-duration: 3.6s;
}

html:has(body.qcs-login),
html:has(body.qsa-login) {
    min-height: 100%;
}

.ta-wrapper::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    background-color: var(--ava-bg) !important;
    background-image: none !important;
}

.ta-content {
    background-color: transparent !important;
}

/* ---- Orchard Core Admin Theme form layout ---- */
.ocat-wrapper,
.ocat-limited-wrapper {
    display: flex;
    flex-wrap: wrap;
}

.ocat-wrapper {
    margin-bottom: 1rem;
}

.ocat-label,
.ocat-start {
    flex: 0 0 auto;
    width: 25%;
    max-width: 25%;
}

.ocat-label {
    padding-top: calc(.375rem + 1px);
    padding-right: .75rem;
    text-align: end;
}

.ocat-end,
.ocat-end-offset {
    flex: 0 0 auto;
    width: 75%;
    max-width: 75%;
}

.ocat-end-offset {
    margin-left: 25%;
}

.ocat-limited {
    flex: 0 0 auto;
    width: 33.333333%;
    max-width: 33.333333%;
}

@media (max-width: 991.98px) {
    .ocat-label,
    .ocat-start,
    .ocat-end,
    .ocat-end-offset,
    .ocat-limited {
        width: 100%;
        max-width: 100%;
    }

    .ocat-label {
        padding-right: 0;
        text-align: start;
    }

    .ocat-end-offset {
        margin-left: 0;
    }
}

/* ---- Admin dashboard shell ---- */
.qsa-admin-dashboard {
    position: relative;
    min-height: calc(100dvh - 128px);
    overflow: hidden;
    isolation: isolate;
}

.qsa-admin-dashboard.qsa-ava-hyper {
    background: transparent;
}

.qsa-admin-dashboard > .alert {
    position: relative;
    z-index: 3;
    max-width: 760px;
}

.qsa-admin-dashboard .ava-orb-wrap,
.qsa-admin-dashboard .ava-scanlines,
.qsa-admin-dashboard .ava-hud-corner,
.qsa-admin-dashboard .ava-hud-title {
    z-index: 0;
}

.ava-stage-grid {
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(0,212,255,.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0,212,255,.045) 1px, transparent 1px),
        radial-gradient(circle at 50% 50%, rgba(0,212,255,.09), transparent 42%),
        radial-gradient(circle at 76% 24%, rgba(255,42,255,.08), transparent 28%),
        radial-gradient(circle at 24% 76%, rgba(255,143,0,.08), transparent 30%);
    background-size: 52px 52px, 52px 52px, auto, auto, auto;
    transform: perspective(900px) rotateX(60deg) translateY(30vh) scale(1.55);
    transform-origin: center bottom;
    opacity: .7;
    animation: ava-grid-flow 7s linear infinite;
}

.qsa-admin-dashboard .ava-stage-grid {
    position: absolute;
}

.ava-energy-burst {
    position: fixed;
    left: 50%;
    top: 50%;
    width: 16px;
    height: 16px;
    z-index: 1;
    pointer-events: none;
    border-radius: 50%;
    border: 1px solid rgba(0,255,247,.75);
    transform: translate(-50%, -50%) scale(.2);
    opacity: 0;
}

.qsa-admin-dashboard .ava-energy-burst {
    position: absolute;
}

.qsa-ava-hyper .ava-energy-burst {
    animation: ava-energy-burst 2.8s ease-out infinite;
}

.qsa-admin-dashboard .ava-hud-title {
    top: 64px;
    max-width: calc(100vw - 32px);
    overflow: hidden;
    text-overflow: ellipsis;
}

.qsa-admin-dashboard .ava-hud-tl,
.qsa-admin-dashboard .ava-hud-tr {
    top: 64px;
}

/* ---- Login card ---- */
.qsa-login-shell {
    min-height: 100dvh;
    height: auto !important;
    padding: 2rem 1rem;
}

.auth-wrapper,
.qcs-auth-card,
.qsa-login-card {
    width: min(100%, 560px);
    max-width: 560px;
    margin: 4rem auto;
    padding: 2rem;
    border-radius: 14px;
    background: var(--ava-card-bg) !important;
    border-color: var(--ava-card-bd) !important;
    box-shadow: 0 10px 30px var(--ava-card-shadow) !important;
    position: relative;
    z-index: 10;
}

html[data-bs-theme="dark"] .qcs-auth-card,
html[data-bs-theme="dark"] .qsa-login-card {
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    color: #d4eeff;
}

html[data-bs-theme="dark"] .qcs-auth-card label,
html[data-bs-theme="dark"] .qsa-login-card label {
    color: rgba(0,212,255,.75);
}

/* ---- Orb wrapper ---- */
.ava-orb-wrap {
    position: fixed;
    pointer-events: none;
    z-index: 0;
    display: flex;
    width: max-content;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.ava-orb-login {
    --ava-login-scale: 1.16;
    top: clamp(140px, 19vh, 175px);
    right: auto !important;
    left: 50vw !important;
    inset-inline-end: auto !important;
    inset-inline-start: 50vw !important;
    z-index: 11;
    transform: translate3d(-50%, -50%, 0) scale(var(--ava-login-scale));
    transform-origin: center center;
}
.ava-orb-login .ava-label {
    display: none;
}
.ava-orb-admin {
    --ava-admin-scale: 1.633;
    top: calc(50vh + 26px);
    right: auto !important;
    left: calc(50vw + 130px) !important;
    inset-inline-end: auto !important;
    inset-inline-start: calc(50vw + 130px) !important;
    margin-left: 0 !important;
    transform: translate3d(-50%, -50%, 0) scale(var(--ava-admin-scale));
    transform-origin: center center;
}

@media (max-width: 991.98px) {
    .ava-orb-admin {
        top: 50vh;
        left: calc(50vw + 24px) !important;
        inset-inline-start: calc(50vw + 24px) !important;
    }
}

/* Bootstrap XS: <576px */
@media (max-width: 575.98px) {
    body.qcs-login,
    body.qsa-login {
        min-height: 100svh;
    }

    .qsa-login-shell {
        min-height: 100svh;
        padding: 1rem;
        align-items: flex-start !important;
    }

    .qcs-auth-card,
    .qsa-login-card {
        width: calc(100vw - 2rem);
        margin: clamp(7.25rem, 22vh, 8.75rem) auto 1.25rem !important;
        padding: 1.25rem !important;
    }

    .qsa-admin-dashboard {
        min-height: calc(100svh - 96px);
        padding-bottom: 2rem;
    }

    .qsa-admin-dashboard > .alert {
        margin-inline: .25rem;
    }

    .qsa-admin-dashboard .ava-hud-title {
        top: 58px;
        font-size: 7px;
    }

    .qsa-admin-dashboard .ava-hud-tl,
    .qsa-admin-dashboard .ava-hud-tr {
        top: 58px;
    }

    .ava-orb-login {
        top: clamp(70px, 11vh, 90px);
        z-index: 2;
        --ava-login-scale: .60;
    }

    .ava-orb-admin {
        --ava-admin-scale: .943;
        left: 50vw !important;
        inset-inline-start: 50vw !important;
    }
}

/* Bootstrap SM: 576px-767.98px */
@media (min-width: 576px) and (max-width: 767.98px) {
    .qsa-login-shell {
        min-height: 100svh;
        padding: 1.25rem;
        align-items: flex-start !important;
    }

    .qcs-auth-card,
    .qsa-login-card {
        width: min(100% - 2.5rem, 560px);
        margin: clamp(7.75rem, 21vh, 9.5rem) auto 1.5rem !important;
    }

    .qsa-admin-dashboard {
        min-height: calc(100svh - 112px);
    }

    .ava-orb-login {
        top: 112px;
        z-index: 2;
        --ava-login-scale: .76;
    }

    .ava-orb-admin {
        --ava-admin-scale: 1.104;
    }
}

/* Bootstrap MD: 768px-991.98px */
@media (min-width: 768px) and (max-width: 991.98px) {
    .qsa-login-shell {
        min-height: 100svh;
        padding: 1.5rem;
        align-items: flex-start !important;
    }

    .qcs-auth-card,
    .qsa-login-card {
        width: min(100% - 3rem, 560px);
        margin: clamp(8.25rem, 20vh, 10rem) auto 2rem !important;
    }

    .ava-orb-login {
        top: 128px;
        z-index: 2;
        --ava-login-scale: .9;
    }

    .ava-orb-admin {
        --ava-admin-scale: 1.242;
    }
}

/* Bootstrap LG: 992px-1199.98px */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .qsa-login-shell {
        padding: 2rem;
    }

    .qcs-auth-card,
    .qsa-login-card {
        margin: 3.5rem auto !important;
    }

    .ava-orb-admin {
        --ava-admin-scale: 1.426;
        left: calc(50vw + 92px) !important;
        inset-inline-start: calc(50vw + 92px) !important;
    }
}

/* Bootstrap XL: 1200px-1399.98px */
@media (min-width: 1200px) and (max-width: 1399.98px) {
    .qsa-login-shell {
        padding: 2rem;
    }

    .qcs-auth-card,
    .qsa-login-card {
        margin: 4rem auto !important;
    }

    .ava-orb-admin {
        --ava-admin-scale: 1.541;
        left: calc(50vw + 116px) !important;
        inset-inline-start: calc(50vw + 116px) !important;
    }
}

/* Bootstrap XXL: >=1400px */
@media (min-width: 1400px) {
    .qsa-login-shell {
        padding: 2.5rem;
    }

    .qsa-admin-dashboard {
        min-height: calc(100dvh - 148px);
    }
}

/* ---- Floor rings ---- */
.ava-floor-stage {
    position: relative;
    width: 340px;
    height: 300px;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}
.ava-fr {
    position: absolute;
    left: 50%;
    border-radius: 50%;
    border-style: solid;
    animation: ava-frpulse 3s ease-in-out infinite;
}
.ava-fr1 { width: 248px; height: 68px; margin-left: -124px; bottom: -6px;  border-width: 1px; border-color: var(--ava-fr1); animation-delay: 0s;   }
.ava-fr2 { width: 180px; height: 50px; margin-left: -90px;  bottom: 6px;   border-width: 1px; border-color: var(--ava-fr2); animation-delay: .9s;  }
.ava-fr3 { width: 112px; height: 31px; margin-left: -56px;  bottom: 16px;  border-width: 1px; border-color: var(--ava-fr3); animation-delay: 1.8s; }

/* ---- Scanline overlay ---- */
.ava-scanlines {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    overflow: hidden;
}
.ava-scanlines::before {
    content: "";
    position: absolute;
    left: 0; right: 0; height: 70px;
    top: -80px;
    background: var(--ava-scan-sweep);
    animation: ava-scanmove 4.5s linear infinite;
}
.ava-scanlines::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(
        0deg,
        var(--ava-scan-lines) 0px,
        var(--ava-scan-lines) 1px,
        transparent 1px,
        transparent 4px
    );
}

/* ---- HUD corners ---- */
.ava-hud-corner {
    position: fixed;
    width: 18px; height: 18px;
    border-style: solid; border-width: 0;
    border-color: var(--ava-hud-corner);
    pointer-events: none;
    z-index: 2;
}
.ava-hud-tl { top: 12px;    left: 12px;  border-top-width:    1px; border-left-width:   1px; }
.ava-hud-tr { top: 12px;    right: 12px; border-top-width:    1px; border-right-width:  1px; }
.ava-hud-bl { bottom: 12px; left: 12px;  border-bottom-width: 1px; border-left-width:   1px; }
.ava-hud-br { bottom: 12px; right: 12px; border-bottom-width: 1px; border-right-width:  1px; }

/* ---- HUD title bar ---- */
.ava-hud-title {
    position: fixed;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 9px;
    letter-spacing: .2em;
    pointer-events: none;
    z-index: 2;
    white-space: nowrap;
    font-family: "Share Tech Mono", monospace;
    color: var(--ava-hud-title);
}

/* ---- AVA label ---- */
.ava-label {
    width: 340px;
    text-align: center;
    margin-top: -16px;
    position: relative;
    z-index: 2;
}
.ava-label-name {
    font-size: 22px;
    font-weight: 700;
    letter-spacing: .35em;
    font-family: "Orbitron", monospace, sans-serif;
    color: var(--ava-label-name);
}
.ava-label-sub {
    font-size: 9px;
    letter-spacing: .20em;
    margin-top: 4px;
    font-family: "Share Tech Mono", monospace;
    color: var(--ava-label-sub);
}

.ava-orb-wrap .ava-satellite { offset-rotate: auto; will-change: transform; }
