/* PECASIS customer portal: shared arcade header, background and navigation. */
:root {
    --arcade-cyan: #20f4df;
    --arcade-lime: #8fff68;
    --arcade-magenta: #ff4fd8;
    --arcade-night: #01070b;
}

html,
body,
.wrapper,
.page-wrapper {
    min-height: 100vh;
    background: var(--arcade-night) !important;
    font-family: 'Chakra Petch', sans-serif;
}

.page-content {
    position: relative;
    isolation: isolate;
    min-height: 100vh;
    overflow: hidden;
    background:
        radial-gradient(circle at 12% 17%, rgba(32, 244, 223, .16), transparent 27%),
        radial-gradient(circle at 88% 14%, rgba(255, 79, 216, .12), transparent 25%),
        radial-gradient(circle at 54% 74%, rgba(143, 255, 104, .10), transparent 31%),
        linear-gradient(165deg, #01070b 0%, #03141a 48%, #020b10 100%) !important;
}

.page-content::before {
    content: '';
    position: absolute;
    z-index: -2;
    inset: 0;
    opacity: .23;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(32, 244, 223, .25) 1px, transparent 1px),
        linear-gradient(90deg, rgba(32, 244, 223, .25) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(to bottom, transparent 1%, #000 15%, #000 88%, transparent 100%);
    -webkit-mask-image: linear-gradient(to bottom, transparent 1%, #000 15%, #000 88%, transparent 100%);
    transform: perspective(520px) rotateX(58deg) scale(1.7) translateY(5%);
    transform-origin: center bottom;
    animation: arcade-shell-grid-drift 18s linear infinite;
}

.page-content::after {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    pointer-events: none;
    background-image:
        radial-gradient(circle at 8% 28%, rgba(255,255,255,.5) 0 1px, transparent 1.5px),
        radial-gradient(circle at 76% 38%, rgba(32,244,223,.55) 0 1px, transparent 1.5px),
        radial-gradient(circle at 30% 65%, rgba(255,79,216,.45) 0 1px, transparent 1.5px),
        radial-gradient(circle at 91% 78%, rgba(143,255,104,.45) 0 1px, transparent 1.5px);
    background-repeat: repeat, repeat, repeat, repeat;
    background-position: 0 0, 0 0, 0 0, 0 0;
    background-size: 150px 150px, 210px 210px, 260px 260px, 320px 320px;
    opacity: .3;
}

/* Icerigi dekoratif ::before / ::after katmanlarinin (z-index -2 / -1)
   uzerine cikarir.

   :not() SART: Bootstrap modal'lari ve profil avatar alt sayfasi (.avatar-sheet)
   `position: fixed` olmak zorunda. Bu secici onlari da yakalayip
   `position: relative`e cevirdigi icin normal akisa dusuyor, sayfanin altinda
   goruluyor ve perde tiklamalari engelledigi icin kapatilamiyordu. */
.page-content > *:not(.modal):not(.avatar-sheet):not(.avatar-sheet-backdrop),
.global-player-brand,
.global-player-nav-top,
.global-player-nav-bottom {
    position: relative;
    z-index: 1;
}

.global-player-banner {
    border-color: rgba(32, 244, 223, .48);
    box-shadow: 0 0 0 1px rgba(32, 244, 223, .08), 0 18px 46px rgba(0, 0, 0, .42);
}

.global-player-logo {
    border-color: rgba(32, 244, 223, .55);
    box-shadow: 0 0 28px rgba(32, 244, 223, .18), 0 12px 28px rgba(0, 0, 0, .46);
}

.global-player-nav-top {
    gap: 7px;
    padding: 10px;
    border: 1px solid rgba(126, 181, 190, .42);
    border-radius: 15px;
    background:
        linear-gradient(180deg, rgba(32, 244, 223, .12) 0 2px, transparent 2px),
        linear-gradient(180deg, #12262d, #061218);
    box-shadow:
        0 5px 0 #010508,
        0 15px 32px rgba(0, 0, 0, .38),
        inset 0 1px 0 rgba(255,255,255,.1);
}

.global-player-nav-top a {
    font-family: 'Chakra Petch', sans-serif !important;
    border: 1px solid rgba(102, 151, 158, .28);
    border-radius: 9px;
    background-color: #07161c !important;
    background-image: linear-gradient(180deg, #102931, #061219) !important;
    box-shadow: 0 3px 0 #01070a, inset 0 1px 0 rgba(255,255,255,.08);
    transition: transform .14s ease, box-shadow .14s ease;
}

.global-player-nav-top a.active,
.global-player-nav-top a:hover {
    color: #011a18 !important;
    transform: translateY(-2px);
    border-color: rgba(185, 255, 218, .72);
    background-color: var(--arcade-cyan) !important;
    background-image: linear-gradient(135deg, var(--arcade-cyan), var(--arcade-lime)) !important;
    box-shadow: 0 5px 0 #087f74, 0 8px 16px rgba(32,244,223,.2), inset 0 1px 0 rgba(255,255,255,.5);
}

.global-player-nav-bottom {
    bottom: 10px;
    padding: 12px 9px 9px;
    border: 1px solid rgba(126, 181, 190, .42);
    border-radius: 18px 18px 12px 12px;
    background:
        linear-gradient(180deg, rgba(32, 244, 223, .13) 0 2px, transparent 2px),
        linear-gradient(180deg, #12262d 0%, #07151b 42%, #02090d 100%);
    box-shadow:
        0 5px 0 #010508,
        0 18px 40px rgba(0, 0, 0, .7),
        inset 0 1px 0 rgba(255,255,255,.11),
        inset 0 -4px 10px rgba(0,0,0,.55),
        0 0 24px rgba(32,244,223,.09);
}

.global-player-nav-bottom::before,
.global-player-nav-bottom::after {
    content: '';
    position: absolute;
    top: 6px;
    width: 5px;
    height: 5px;
    border: 1px solid #46636a;
    border-radius: 50%;
    background: #02080b;
    box-shadow: inset 1px 1px 1px rgba(255,255,255,.12), 0 0 5px rgba(0,0,0,.9);
}

.global-player-nav-bottom::before { left: 8px; }
.global-player-nav-bottom::after { right: 8px; }

.global-player-nav-bottom a {
    position: relative;
    flex: 1;
    margin: 0 3px;
    padding: 8px 4px 7px;
    font-family: 'Chakra Petch', sans-serif !important;
    color: #9ac8c5 !important;
    border: 1px solid rgba(102, 151, 158, .28);
    border-radius: 10px;
    background-color: #07161c !important;
    background-image: linear-gradient(180deg, #102931, #061219) !important;
    box-shadow: 0 4px 0 #01070a, inset 0 1px 0 rgba(255,255,255,.08);
    transition: transform .14s ease, box-shadow .14s ease, color .14s ease;
}

.global-player-nav-bottom a i {
    color: #76aaa9;
    transition: color .14s ease, text-shadow .14s ease;
}

.global-player-nav-bottom a.active {
    color: #011a18 !important;
    transform: translateY(-4px);
    border-color: rgba(185, 255, 218, .78);
    background-color: var(--arcade-cyan) !important;
    background-image: linear-gradient(135deg, var(--arcade-cyan), var(--arcade-lime)) !important;
    box-shadow: 0 6px 0 #087f74, 0 10px 19px rgba(32,244,223,.25), inset 0 1px 0 rgba(255,255,255,.56);
}

.global-player-nav-bottom a.active i {
    color: #01221d;
    text-shadow: 0 1px 0 rgba(255,255,255,.35);
}

@keyframes arcade-shell-grid-drift {
    from { background-position: 0 0, 0 0; }
    to { background-position: 0 42px, 42px 0; }
}

@media (prefers-reduced-motion: reduce) {
    .page-content::before {
        animation: none !important;
    }

    .global-player-nav-top a,
    .global-player-nav-bottom a {
        transition: none !important;
    }
}
