/* Cores do Layout */
:root {
    --bs-body-font-family: Verdana, Geneva, sans-serif;
    --color-primary: #0189c7;
    --color-secondary: #08CCD0;
    --color-tertiary: #08ced5;
    --color-dark-green: #003041;
    --color-dark-main: #003260;
    --color-accent-cyan: #6adaff;
    --color-accent-gold: #ffff73;
    --color-white: #fff;
    --color-sky: #81d2ff;
    --color-light-text: rgba(255, 255, 255, 0.75);
    --color-dark-text: rgba(0, 0, 0, 0.75);
    --color-emerald-blue: #00bcd4;
    --border-radius-main: 12px;
    --border-radius-small: 8px;
}

/* Definindo o cursor personalizado */
* {
    cursor: url('../cursor/frame_0000.png'), auto;
    /* Exibe a primeira imagem como cursor */
}

/* Animação de transição entre os frames */
@keyframes cursorAnimacao {
    0% {
        cursor: url('../cursor/frame_0001.png'), auto;
    }

    5% {
        cursor: url('../cursor/frame_0002.png'), auto;
    }

    10% {
        cursor: url('../cursor/frame_0003.png'), auto;
    }

    15% {
        cursor: url('../cursor/frame_0004.png'), auto;
    }

    20% {
        cursor: url('../cursor/frame_0005.png'), auto;
    }

    25% {
        cursor: url('../cursor/frame_0006.png'), auto;
    }

    30% {
        cursor: url('../cursor/frame_0007.png'), auto;
    }

    35% {
        cursor: url('../cursor/frame_0008.png'), auto;
    }

    40% {
        cursor: url('../cursor/frame_0009.png'), auto;
    }

    45% {
        cursor: url('../cursor/frame_0010.png'), auto;
    }

    50% {
        cursor: url('../cursor/frame_0011.png'), auto;
    }

    60% {
        cursor: url('../cursor/frame_0012.png'), auto;
    }

    70% {
        cursor: url('../cursor/frame_0013.png'), auto;
    }

    80% {
        cursor: url('../cursor/frame_0014.png'), auto;
    }

    90% {
        cursor: url('../cursor/frame_0015.png'), auto;
    }

    100% {
        cursor: url('../cursor/frame_0016.png'), auto;
    }
}

/* Aplica a animação ao cursor */
* {
    animation: cursorAnimacao 0.7s steps(16) infinite;
}


html,
body {
    height: 100%;
}

body {
    /*background: linear-gradient(180deg, #2F84DE 0%, #77a8dd 40%, #a1bcda 60%, #FFFFFF 100%);
    background-repeat: no-repeat;*/
    background-image: linear-gradient(180deg, #2f84de70 0%, #77a8dd70 40%, #a1bcda70 60%, #FFFFFF 100%), url('../images/bg.png');
    background-repeat: repeat-x;
    background-position: top center;
    background-size: contain;
    font-family: 'Archivo Narrow', sans-serif;
    color: #d1d5db;
    display: flex;
    flex-direction: column;
}

/* ===== CONTROLE DA GALERIA===== */
#gb-legacy-gallery {
    display: none;
}

/* Mostre a galeria APENAS QUANDO a tag <body> tiver a classe 'is-home' */
body.is-home #gb-legacy-gallery {
    display: block;
}

/* ===== FIM CONTROLE DA GALERIA===== */

/* ===== MENU ESTILO FLASH COM DROPDOWN ===== */
.flash-nav {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
    height: 60px;
}

ul.flash-nav .leftmenu {
    border-top-left-radius: 8px;
    border-bottom-left-radius: 8px;
    border-left: 5px solid #D1DABB;
}

ul.flash-nav .rightmenu {
    border-top-right-radius: 8px;
    border-bottom-right-radius: 8px;
    border-right: 5px solid #D1DABB;
}

.flash-nav li {
    position: relative;
}

.flash-nav li:first-child {
    margin-left: 0;
}


.flash-nav>li>a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 120px;
    /* Reduzido levemente de 130px */
    height: 100%;
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.85rem;
    /* Reduzido de 0.9rem */
    /* transform: skewX(-25deg);*/
    background: linear-gradient(to bottom, #71CAD8, #6cc1ce);
    border-top: 5px solid #D1DABB;
    border-bottom: 5px solid #D1DABB;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

@media (max-width: 1200px) {
    .flash-nav>li>a {
        width: 100px;
        font-size: 0.75rem;
    }

    .navbar-brand img {
        max-height: 100px !important;
    }
}

@media (max-width: 991px) {
    .navbar-brand {
        flex: 0 0 auto;
        width: 100%;
        margin-bottom: 10px;
    }
}

.flash-nav a .menu-text {
    /*transform: skewX(25deg);*/
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
}

.flash-nav li.active a {
    color: #fffb00;
}

/* ===== FAIXA DE BRILHO (EFEITO DE LUZ PASSANDO) ===== */
.flash-nav>li>a::after {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    /* começa fora da esquerda */
    width: 100%;
    height: 100%;

    background: linear-gradient(to right,
            rgba(255, 255, 255, 0) 0%,
            rgba(255, 255, 255, 0.2) 50%,
            rgba(255, 255, 255, 0) 100%);

    transform: skewX(-25deg);
    transition: left 0.4s ease;
    z-index: 1;
    /* fica entre o fundo e o texto */
    pointer-events: none;
    /* não bloqueia o clique */
}

/* ao passar o mouse, a faixa desliza */
.flash-nav a:hover::after {
    left: 100%;
    /* move pro outro lado */
}


ul:not(.dropdown-menu).flash-nav>li>a:hover,
.flash-nav li.has-dropdown:hover>a {
    color: #ffc;
    font-size: 1.0rem;
}

/* faixa do menu */
ul:not(.dropdown-menu).flash-nav>li::before {
    content: "";
    position: absolute;
    top: 10px;
    /* recuo do topo (ajusta a altura dessa luz) */
    left: 0;
    width: 100%;
    /* cobre toda a largura do botão */
    height: 25px;
    /* altura fixa da faixa */
    /*background: rgba(255, 255, 255, 0.267);*/
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.473), transparent);

    /* opacidade leve (pode ajustar) */
    pointer-events: none;
    /* evita interferir com cliques */
    z-index: 1;
    /* fica acima do gradiente base, mas abaixo do texto */
}


ul.flash-nav>li:first-child::before {
    border-top-left-radius: 12px;
    border-bottom-left-radius: 12px;
}

ul.flash-nav>li:last-child::before {
    border-top-right-radius: 12px;
    border-bottom-right-radius: 12px;
}

.dropdown-menu {
    display: flex;
    /* os itens agora ficam lado a lado */
    flex-direction: row;
    /* em linha, não em coluna */
    list-style: none;
    gap: 2px;
    /* espaço entre cada item (opcional) */
    padding: 10px 15px;
    margin: 0;
    height: 80%;

    position: absolute;
    top: 100%;
    /* alinha ao topo do item pai */
    /* abre à direita do botão pai */
    z-index: 1000;

    background-color: rgba(12, 23, 44, 0.95);
    border: 3px solid #FFF;
    border-radius: 6px 0 6px 0;
    opacity: 0;
    visibility: hidden;

    box-shadow: 0 0 12px rgba(90, 198, 255, 0.35);
    /* brilho difuso inicial */
    transition:
        opacity 0.3s ease,
        transform 0.3s ease,
        box-shadow 0.4s ease;
}

.dropdown-menu.drop-menu-ranking {
    background-color: #DB6767 !important;
}

ul.dropdown-menu>li>a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 110%;
    height: 100%;
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.8rem;
    /* transform: skewX(-25deg);*/
    background: none;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

ul.dropdown-menu>li>a:hover {
    color: #fff;
    /* cor do texto ao hover */
    text-decoration: none;
    text-shadow: 0 0 6px rgba(255, 255, 255, 0.75);
    /* brilho suave branco */
}

.flash-nav li.has-dropdown:hover .dropdown-menu {
    opacity: 1;
    visibility: visible;

}

.dropdown-menu li a {
    display: block;
    padding: 8px 14px;
    background: none;
    color: #fff;
    border-radius: 2px;
    border: none;
    text-decoration: none;
    white-space: nowrap;
    /* evita quebra de linha */
}

/* ===== FIM DO MENU ===== */

.main-content {
    flex: 1;
}

/* Estrutura Principal */
.header-bg {
    /*background-color: rgba(10, 14, 27, 0.7);*/
    backdrop-filter: blur(8px);
    z-index: 1010;
}

.footer-bg {
    background-color: var(--color-primary);
    backdrop-filter: blur(8px);

    position: relative;
    /* mantém o ::before posicionado corretamente */
    margin: 0 auto;
    /* centraliza horizontalmente */
    /* max-width: 1400px;  define a largura máxima do footer */
    width: 100%;
    /* ocupa 100% até atingir o limite */
    border-radius: 12px;
    padding-left: 2%;
    padding-right: 2%;
}

.footer-bg>.container {
    background-color: var(--color-dark-green) !important;
    position: relative;
    /* pra comportar o pseudo-elemento */
    margin-top: 2%;
    margin-bottom: 2%;
    border-radius: 12px;
    border: solid 1px var(--color-accent-cyan);
}

/* borda listrada */
.footer-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    padding: 12px;
    border-radius: 12px;
    /* espessura da borda */
    background: repeating-linear-gradient(45deg,
            #004838,
            /* azul-claro */
            #004838 6px,
            #F8D000 6px,
            #F8D000 12px);
    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    z-index: 1;
    pointer-events: none;
    /* pra não atrapalhar interações */
}

/* Centralizar logo com a barra lateral esquerda e aproximar menu */
.navbar .container {
    justify-content: flex-start !important;
    padding-left: 0;
    padding-right: 0;
    flex-wrap: nowrap;
    /* Evita quebra de linha em resoluções desktop menores */
}

.navbar-brand {
    flex: 0 0 25%;
    /* Corresponde a col-lg-3 */
    display: flex;
    justify-content: center;
    margin-right: 0;
    padding: 0;
    min-width: 200px;
    /* Garante espaço mínimo para o logo */
}

.navbar-brand img {
    filter: drop-shadow(0 0 5px #fff);
    max-height: 130px;
    /* Levemente aumentado para preencher melhor */
    transition: transform 0.3s ease;
}

.navbar-brand:hover img {
    transform: scale(1.05);
}

.flash-nav {
    margin-left: 10px;
    /* Reduz o espaço entre o logo (área do aside) e o menu */
}

.navbar-dark .nav-link {
    color: rgba(255, 255, 255, .8);
    font-weight: 700;
    text-transform: uppercase;
}

.navbar-dark .nav-link:hover,
.navbar-dark .nav-link.active {
    color: #fff;
}

/* Painel de Conteúdo (que fica por baixo) */
.content-panel-3d {
    background-color: var(--color-primary);
    border: 3px solid #000;
    box-shadow: inset 0 0 15px rgba(0, 0, 0, 0.6);
    border-radius: 6px;
    box-shadow: inset 1px 1px 0px rgb(172, 214, 238),
        inset 2px 2px 0px rgb(82, 174, 222),
        inset -1px -1px 0px rgb(0, 44, 156),
        inset -2px -2px 0px rgb(0, 101, 180);
    /* Padding para não ser cortado pelo header e barra */
    padding-top: 50px;
    /* Espaço para o header */
    padding-bottom: 50px;
    /* Espaço para a barra */
}

/* Estilo Painel 3D */
.panel-3d {
    /*background-color: var(--color-primary);
    box-shadow: inset 0 0 15px rgba(0, 0, 0, 0.6);*/
    margin-bottom: 24px;
    border-radius: 6px;
    position: relative;
}

/* Container Principal (Coluna da Direita) */
.main-container-wrapper {
    position: relative;
    padding: 0;
    margin-bottom: 24px;
    z-index: 10;
    /* Coloca o conteúdo abaixo do header */
}

.sidebar-high-z {
    z-index: 20 !important;
}


.main-container {
    background-color: #FFFFFF;
    padding-top: 15px;
    border-radius: 8px;
}

.panel-header {
    position: relative;
    height: 50px;
    background-color: var(--color-secondary);
    border: 3px solid #000;
    border-bottom: 3px solid var(--color-dark-green);
    border-top-left-radius: var(--border-radius-small);
    border-top-right-radius: var(--border-radius-small);
    padding-left: 1%;
    padding-right: 1%;
    color: var(--color-dark-green);
    font-weight: 600;
    text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.4);
    font-size: 1.2rem;
    z-index: 1;
    margin-bottom: -2%;
}

.panel-header.left-side {
    align-content: center;
}

.panel-header.left-side>i {
    margin-left: 10px;
}

@media (max-width: 767.98px) {

    /* tira o bem vindo do display */
    .panel-header>span {
        display: none;
    }

}

.panel-body {
    padding: 20px;
    background-color: var(--color-dark-green);
    border: 10px;
    border-color: var(--color-primary);
}

.panel-body-styled {

    border-radius: 5px;
    margin-left: 5px;
    margin-right: 5px;
    background-color: #8bb5c3;
    border: 10px;
    border: solid 1px #7395a1;
    margin: 4%
}

.panel-body-login {
    padding: 10px 15px 10px 15px;
    border: 10px;
    border-radius: 6px;
    background: #d1dabb;
}

/* Barra Decorativa */
.barra {
    border: 3px solid #000;
    box-shadow: inset 0 0 15px rgba(0, 0, 0, 0.6);
    border-radius: 6px;
    box-shadow: inset 1px 1px 0px rgb(172, 214, 238),
        inset 2px 2px 0px rgb(82, 174, 222),
        inset -1px -1px 0px rgb(0, 44, 156),
        inset -2px -2px 0px rgb(0, 101, 180);
    height: 30px;
    background-color: var(--color-secondary);
    border-top: 2px solid #3a5a7e;
    overflow: hidden;
    border-radius: 0 0 4px 4px;
    z-index: 1;
    margin-top: -1%;
}

/* Novo Painel de Notícias Estilo Legado */
.news-widget-wrapper {
    background: #e0e0e0;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    position: relative;
    border: 1px solid #ccc;
    margin-bottom: 20px;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.news-header-custom {
    background: linear-gradient(180deg, #b184cf 0%, #8e54c0 100%);
    background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0, rgba(255, 255, 255, 0.1) 10px, transparent 10px, transparent 20px),
        linear-gradient(180deg, #b184cf 0%, #8e54c0 100%);
    padding: 10px 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: white;
    border-radius: 12px 12px 0 0;
    box-shadow: inset 0 2px 5px rgba(255, 255, 255, 0.4);
    height: 50px;
}

.news-header-title {
    font-family: 'Archivo Narrow', sans-serif;
    font-weight: 800;
    text-transform: uppercase;
    font-size: 1.4rem;
    text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.3);
    margin: 0;
    letter-spacing: 1px;
}

.news-header-icon {
    background: #fff;
    color: #8e54c0;
    width: 24px;
    height: 24px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.news-content-area {
    padding: 15px;
    background: #f8f8f8;
    min-height: 200px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.news-list-custom {
    list-style: none;
    padding: 0;
    margin: 0;
}

.news-item-custom {
    display: flex;
    align-items: center;
    padding: 8px 10px;
    /* Adicionado padding lateral de 10px */
    border-bottom: 1px solid #eee;
    font-size: 0.95rem;
    color: #555;
    transition: background 0.2s;
    border-radius: 8px;
    /* Bordas arredondadas no item/hover */
    margin: 0 5px;
    /* Pequena margem para não encostar na borda do painel */
}

.news-item-custom:hover {
    background: rgba(0, 0, 0, 0.02);
}

.news-item-custom:last-child {
    border-bottom: none;
}

.news-badge-n {
    background: #9b59b6;
    color: white;
    width: 20px;
    height: 20px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    font-weight: bold;
    margin-right: 12px;
    flex-shrink: 0;
    position: relative;
    transform: rotate(-10deg);
}

.news-badge-e {
    background: #e67e22 !important;
    /* Laranja para Eventos */
}

.news-badge-m {
    background: #3498db !important;
    /* Azul para Manutenção */
}

.news-badge-n::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 4px;
    top: -2px;
    left: -2px;
}

.news-item-text {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-right: 15px;
    color: #444;
    font-weight: 500;
}

.news-item-date {
    color: #888;
    font-size: 0.85rem;
    flex-shrink: 0;
}

.news-footer-dots {
    display: flex;
    justify-content: space-between;
    padding: 10px 15px;
    background: #f8f8f8;
}

.news-footer-dot {
    width: 24px;
    height: 24px;
    background: white;
    border-radius: 50%;
    box-shadow: inset 2px 2px 4px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.05);
    position: relative;
    overflow: hidden;
}

.news-footer-dot::after {
    content: '';
    position: absolute;
    width: 2px;
    height: 100%;
    background: rgba(0, 0, 0, 0.05);
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
}

.listras {
    height: 100%;
    background: repeating-linear-gradient(-45deg, var(--color-dark-green), var(--color-dark-green) 10px, transparent 10px, transparent 20px);
}

/* Botão Customizado */
.btn-custom-styled {
    --grad-main: linear-gradient(135deg, #d4efff, #8ccfef);
    --grad-frame: linear-gradient(135deg, #88dfff, #0087ef);
    --grad-frame-active: linear-gradient(135deg, #79d8fa, #007ee0);
    --grad-inner-bg: linear-gradient(135deg, #d4efff 0%, #b0dff7 15%, #b0dff7 85%, #8ccfef 100%);
    --grad-connector-left: linear-gradient(135deg, #cae9fd, #b5dff8);
    --grad-connector-right: linear-gradient(135deg, #a9d9f5, #9dd3f2);
    --text-color: #005a9c;
    --shadow-color: rgba(0, 58, 95, 0.8);
    --shadow-hover-color: rgba(0, 58, 95, 0.9);
    --transition-speed: 0.3s;
    --transition-speed-active: 0.1s;

    position: relative;
    display: inline-block;
    text-decoration: none;
    padding: 2px;
    border-radius: var(--border-radius-main);
    background: var(--grad-main);
    box-shadow: 1px 1px 3px var(--shadow-color);
    transition: transform var(--transition-speed) ease, box-shadow var(--transition-speed) ease;
    cursor: pointer;
    font-family: inherit;
    text-align: center;
}

.btn-custom-styled::before {
    content: '';
    position: absolute;
    inset: 2px;
    border-radius: var(--border-radius-main);
    background: var(--grad-frame);
    z-index: 0;
    transition: background var(--transition-speed) ease;
}

.btn-custom-styled .btn-inner {
    font-family: Tahoma;
    position: relative;
    display: block;
    margin: 4px 8px;
    padding: 5px 25px;
    background: var(--grad-inner-bg);
    border-radius: 8px;
    z-index: 2;
    color: #6cc8cd;
    font-weight: bolder;
    font-size: 15px;
    text-shadow: -2px -2px 0 #0d3261, 2px -2px 0 #003041, -2px 2px 0 #003041, 2px 2px 0 #003041, 0px -2px 0 #003041, 0px 2px 0 #003041, -2px 0px 0 #003041, 2px 0px 0 #003041;
    white-space: nowrap;
}

.btn-custom-styled .btn-inner::before,
.btn-custom-styled .btn-inner::after {
    content: '';
    position: absolute;
    width: 8px;
    height: 6px;
    top: 70%;
    transform: translateY(-50%);
    z-index: 1;
}

.btn-custom-styled .btn-inner::before {
    left: -8px;
    background: var(--grad-connector-left);
}

.btn-custom-styled .btn-inner::after {
    right: -8px;
    background: var(--grad-connector-right);
}

.btn-custom-styled:hover {
    opacity: 0.95;
    box-shadow: 1px 2px 3px var(--shadow-hover-color);
}

.btn-custom-styled:active {
    transform: translateY(1px);
    box-shadow: 1px 1px 2px var(--shadow-color);
    transition-duration: var(--transition-speed-active);
}

.btn-custom-styled:active::before {
    background: var(--grad-frame-active);
}


.btn-custom-styled:hover .btn-inner {
    color: #F8F870 !important;
}

/* Inputs e Links */
.login-input {
    background-color: var(--color-dark-green);
    border: 1px solid var(--color-accent-cyan);
    color: #fff;
}

.login-lbl {
    background-color: #f8fafc !important;
    border: none !important;
    color: #0d3261 !important;
    font-size: 0.95rem;
    padding-right: 8px !important;
    padding-left: 12px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease !important;
}

.login-input:focus {
    box-shadow: 0 0 2px #8BB5C3;
    color: #fff;
}

/* Novo Login Compacto */
.login-panel-compact {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 90%;
}

.login-inputs-column {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.login-inputs-column .input-group {
    margin-bottom: 0 !important;
    border-radius: 6px;
    overflow: hidden;
    transition: all 0.2s ease;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    border: 1px solid #b8c49e;
    background-color: #f8fafc;
}

.login-inputs-column .input-group:hover {
    border-color: #9fb082;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08);
}

.login-inputs-column .input-group:focus-within {
    border-color: #0d3261 !important;
    box-shadow: none !important;
    background-color: #ffffff;
}

.login-inputs-column .input-group:focus-within .login-lbl,
.login-inputs-column .input-group:focus-within .login-input-compact {
    background-color: #ffffff !important;
}

.login-inputs-column .input-group:focus-within .login-lbl {
    color: #ff8c00 !important;
    /* GunBound theme orange highlight when typing */
}

.login-btn-round {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    border: 4px solid #D1DABB;
    background: linear-gradient(to bottom, #8BB5C3, #8fb6c4);
    color: white;
    font-size: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    cursor: pointer;
    /*box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);*/
    padding: 0;
    flex-shrink: 0;
    position: absolute;
    left: 85%;
    z-index: 999;
}

.login-btn-round:hover {
    transform: scale(1.02);
    background: linear-gradient(to bottom, #8BB5C3, #97c4d3);
    /*box-shadow: 0 0 15px rgba(106, 218, 255, 0.6);*/
}

.login-btn-round:active {
    transform: scale(0.95);
}

/* Ajuste nos inputs do login para ficarem mais slim */
.login-input-compact {
    background-color: #f8fafc !important;
    border: none !important;
    outline: none !important;
    color: #0d3261 !important;
    font-family: 'Archivo Narrow', sans-serif !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    padding: 6px 12px 6px 4px !important;
    box-shadow: none !important;
    transition: all 0.2s ease !important;
}

.login-input-compact:focus,
.form-control.login-input-compact:focus {
    background-color: #ffffff !important;
    color: #0d3261 !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}

a {
    color: #ffc107;
    text-decoration: none;
}

a:hover {
    color: #fff;
    text-decoration: none;
}


.col-widget {
    border-radius: 5px;
    margin-left: 5px;
    margin-right: 5px;
}

/* Widgets (Notícias, Ranking) */
.table-widget {
    position: relative;
    /* cria o contexto */
    overflow: hidden;
    /* impede vazamento */
    background-color: var(--color-dark-green);
    padding: .75rem 0;
    z-index: 0;
}


.table-widget .list-group-item {
    background-color: transparent;
    border-color: rgba(58, 90, 126, 0.4);
    color: #d1d5db;
    padding: .75rem 0;
}

.table-widget .list-group-item:first-child {
    border-top: none;
}

.post-title-link {
    font-weight: 700;
    font-size: 1.1rem;
}

/* Footer */
.footer a {
    color: #ffc107;
}

.social-icons a {
    color: #fff;
    background-color: #1c2b4a;
    border: 1px solid #3a5a7e;
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    margin: 0 4px;
    transition: all 0.2s;
}

.social-icons a:hover {
    background-color: #5ac6ff;
    color: #0a0e1b;
    border-color: #5ac6ff;
}

/* Painel de Galeria Estilo Metalizado */
.gallery-widget-wrapper {
    margin-bottom: 30px;
}

.gallery-panel-metal {
    background: #fdfdfd;
    background: linear-gradient(180deg, #ffffff 0%, #f0f0f0 100%);
    border-radius: 0 0 35px 35px;
    /* Ajustado para encaixar com o header */
    padding: 35px 25px;
    position: relative;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1), inset 0 2px 5px #fff;
    border: 1px solid #e0e0e0;
    margin: 0 10px 10px 10px;
    /* Removido margem superior */
    border-top: none;
}

.gallery-header-custom {
    background: linear-gradient(180deg, #5ac6ff 0%, #0087ef 100%);
    background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.1) 0, rgba(255, 255, 255, 0.1) 10px, transparent 10px, transparent 20px),
        linear-gradient(180deg, #5ac6ff 0%, #0087ef 100%);
    padding: 10px 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: white;
    border-radius: 12px 12px 0 0;
    box-shadow: inset 0 2px 5px rgba(255, 255, 255, 0.4);
    height: 50px;
    margin: 10px 10px 0 10px;
    border: 1px solid #0087ef;
    border-bottom: none;
}

.gallery-screw {
    width: 20px;
    height: 20px;
    background: #f0f0f0;
    border-radius: 50%;
    position: absolute;
    box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.1), 1px 1px 2px #ffffff;
    border: 1px solid #dcdcdc;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gallery-screw::after {
    content: '';
    position: absolute;
    width: 10px;
    height: 2px;
    background: #bbb;
    transform: rotate(45deg);
    box-shadow: 0.5px 0.5px 0px rgba(255, 255, 255, 0.5);
}

.gallery-screw.top-left {
    top: 15px;
    left: 15px;
}

.gallery-screw.top-right {
    top: 15px;
    right: 15px;
}

.gallery-screw.bottom-left {
    bottom: 15px;
    left: 15px;
}

.gallery-screw.bottom-right {
    bottom: 15px;
    right: 15px;
}

.gallery-panel-inner {
    background: rgba(255, 255, 255, 0.5);
    border-radius: 20px;
    padding: 10px;
    box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.05);
}

.gallery-panel-metal .carousel-control-prev-icon,
.gallery-panel-metal .carousel-control-next-icon {
    filter: invert(1) grayscale(100%) brightness(0.5);
}

/* GunBound Style Top Ranking */
.ranking-orange-panel {
    background-color: #ff8c00;
    background-image: repeating-linear-gradient(-45deg,
            #ff9933,
            #ff9933 15px,
            #ff8c00 15px,
            #ff8c00 30px);
    border-radius: 15px;
    padding: 35px 12px 15px 12px;
    position: relative;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2), inset 0 2px 5px rgba(255, 255, 255, 0.3);
    margin-top: 10px;
}

.ranking-header-classic {
    position: absolute;
    top: 8px;
    /* Movido para dentro do painel */
    left: 12px;
    width: calc(100% - 24px);
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-family: 'Arial Black', sans-serif;
    z-index: 5;
}

.ranking-header-main {
    color: #fff;
    font-weight: 900;
    font-size: 20px;
    /* Reduzido um pouco para caber melhor */
    text-transform: uppercase;
    text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.2);
}

.ranking-header-sub {
    color: #ffd700;
    /* Dourado/Amarelo para combinar com o laranja */
    font-weight: bold;
    font-size: 16px;
    text-shadow: 1px 1px 0px rgba(0, 0, 0, 0.2);
}

.ranking-plus-btn {
    position: absolute;
    top: -10px;
    /* Sobe um pouco para ficar "à frente" */
    right: -10px;
    width: 30px;
    height: 30px;
    background: radial-gradient(circle at 30% 30%, #ffcc00, #ff8800);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.4);
    border: 2px solid #fff;
    color: #fff;
    font-size: 20px;
    font-weight: bold;
    cursor: pointer;
    z-index: 10;
    /* Garante que fique na frente de tudo */
}

.ranking-strip-item {
    background: #fffef0;
    background: linear-gradient(to bottom, #fffef0 0%, #f7f7f7 100%);
    margin: 6px 0;
    padding: 4px 8px;
    display: flex;
    align-items: center;
    position: relative;
    box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
    /* Leve inclinação para estilo adesivo */
}

/* Alternar inclinação para naturalidade */
.ranking-strip-item:nth-child(odd) {
    transform: rotate(-0.5deg);
}

.ranking-strip-item:nth-child(even) {
    transform: rotate(0.5deg);
}

.ranking-pos-number {
    position: absolute;
    left: -15px;
    font-size: 32px;
    font-weight: 900;
    color: #fff;
    text-shadow: 3px 3px 0 #ff4500, -1px -1px 0 #ff4500, 1px -1px 0 #ff4500, -1px 1px 0 #ff4500, 1px 1px 0 #ff4500;
    z-index: 2;
    font-style: italic;
    font-family: 'Arial Black', sans-serif;
}

.ranking-pos-number::after {
    content: 'º';
    font-size: 14px;
    position: relative;
    top: -12px;
}

.ranking-content-wrap {
    flex: 1;
    display: flex;
    align-items: center;
    margin-left: 10px;
    /* Espaço para o número */
}

.ranking-info {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ranking-nick {
    color: #444;
    font-weight: 800;
    font-size: 13px;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ranking-guild-name {
    color: #666;
    font-size: 12px;
    font-weight: bold;
}

.ranking-icons-wrap {
    display: flex;
    align-items: center;
    gap: 1px;
    margin-right: 2px;
}

.ranking-gender-img {
    height: 18px;
    border-radius: 2px;
}

.ranking-level-img {
    height: auto;
}

/* Floating Dragon Download Banner */
.dragon-download-wrapper {
    margin: 20px 0;
    text-align: center;
    perspective: 1000px;
    animation: dragonEntrance 1.2s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
    opacity: 0;
}

.dragon-download-link {
    display: inline-block;
    transition: transform 0.3s ease;
    cursor: pointer;
    text-decoration: none;
}

.dragon-image {
    max-width: 250px;
    height: auto;
    filter: drop-shadow(0 10px 15px rgba(0, 0, 0, 0.5));
    animation: dragonFloat 5s ease-in-out infinite;
}

.dragon-download-link:hover {
    transform: scale(1.05);
}

.dragon-download-link:hover .dragon-image {
    filter: drop-shadow(0 15px 25px rgba(0, 255, 255, 0.4));
}

@keyframes dragonFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-20px);
    }

}

@keyframes dragonEntrance {
    0% {
        opacity: 0;
        transform: scale(0.5) translateY(50px);
    }

    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* Retro Glossy Action Buttons (GunBound Style) */
.gb-retro-buttons-container {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 10px;
}

.gb-retro-btn {
    display: block;
    width: 100%;
    background: #fff;
    background: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%);
    border: 1px solid #aaa;
    border-radius: 12px;
    padding: 2px;
    /* Espaço para a borda interna branca */
    text-decoration: none;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    transition: transform 0.2s, box-shadow 0.2s;
    overflow: hidden;
    position: relative;
    cursor: pointer;
}

.gb-retro-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.25);
}

.gb-retro-btn-inner {
    border: 1px solid #fff;
    /* Borda branca interna */
    border-radius: 10px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.gb-retro-btn-top {
    height: 38px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}

/* Efeito Zebrado/Listrado no topo */
.gb-retro-btn-top::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: repeating-linear-gradient(-45deg,
            rgba(255, 255, 255, 0.2),
            rgba(255, 255, 255, 0.2) 8px,
            transparent 8px,
            transparent 16px);
    z-index: 1;
}

/* Brilho Glossy no topo */
.gb-retro-btn-top::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 10%;
    width: 80%;
    height: 12px;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 10px;
    z-index: 2;
}

.gb-retro-btn-bottom {
    padding: 2px 10px 5px 10px;
    text-align: center;
}

.gb-retro-btn-title {
    font-size: 20px;
    font-weight: 900;
    text-transform: none;
    z-index: 3;
    position: relative;
    /* Stroke effect */
    text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff, 0 2px 4px rgba(0, 0, 0, 0.2);
    font-family: 'Arial Narrow', sans-serif;
    text-transform: uppercase;
}

.gb-retro-btn-subtitle {
    font-size: 13px;
    color: #555;
    font-weight: bold;
    display: block;
    line-height: 1.2;
}

/* Full-Width Retro Footer (GunBound Style) */
.gb-main-footer {
    width: 100%;
    margin-top: 25px;
    clear: both;
}

.gb-footer-body {
    background-color: #689ba4;
    background-image: repeating-linear-gradient(-45deg,
            #74abb4,
            #74abb4 15px,
            #689ba4 15px,
            #689ba4 30px);
    padding: 15px 0 20px 0;
    color: #fff;
    border-top: 2px solid #5a8a92;
    border-bottom: 2px solid #5a8a92;
}

.gb-footer-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    text-align: center;
}

.gb-footer-social {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-bottom: 15px;
}

.gb-footer-social a {
    color: #fff;
    font-size: 24px;
    transition: transform 0.2s, color 0.2s;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}

.gb-footer-social a:hover {
    transform: scale(1.2);
    color: #ffd700;
}

.gb-footer-text-main {
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 5px;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.4);
}

.gb-footer-text-sub {
    font-size: 13px;
    opacity: 0.9;
    text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.4);
}

.gb-footer-links {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin: 15px 0;
    flex-wrap: wrap;
}

.gb-footer-link {
    background: rgba(0, 0, 0, 0.2);
    color: #fff;
    padding: 6px 15px;
    border-radius: 20px;
    font-size: 14px;
    font-weight: bold;
    text-decoration: none;
    transition: all 0.3s ease;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.gb-footer-link:hover {
    background: rgba(255, 255, 255, 0.2);
    color: #ffd700;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}

.gb-retro-btn.green .gb-retro-btn-top {
    background: linear-gradient(to bottom, #7cfc00 0%, #32cd32 100%);
}

.gb-retro-btn.green .gb-retro-btn-title {
    color: #4CAF50;
}

/* Esquema de Cores: LARANJA (Guia) */
.gb-retro-btn.orange .gb-retro-btn-top {
    background: linear-gradient(to bottom, #ffcc00 0%, #ff8c00 100%);
}

.gb-retro-btn.orange .gb-retro-btn-title {
    color: #ff6600;
}

/* Quicklink Menu Panel */
.quicklink-panel {
    background: #74abb4;
    background: linear-gradient(180deg, #89bfc9 0%, #689ba4 100%);
    border-radius: 12px;
    padding: 15px;
    margin-top: 30px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2), inset 0 2px 5px rgba(255, 255, 255, 0.2);
    border: 1px solid #5a8a92;
}

.quicklink-title {
    color: #fff;
    font-size: 24px;
    font-weight: 900;
    margin-bottom: 15px;
    text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.2);
    font-family: 'Arial Narrow', sans-serif;
}

.quicklink-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.quicklink-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: transform 0.2s;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 8px;
    padding: 10px 5px;
    min-height: 100px;
}

.quicklink-item:hover {
    transform: scale(1.05);
    background: rgba(255, 255, 255, 0.2);
}

.quicklink-icon {
    font-size: 32px;
    color: #fff;
    margin-bottom: 8px;
    filter: drop-shadow(2px 2px 2px rgba(0, 0, 0, 0.3));
}

.quicklink-text {
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-align: center;
    line-height: 1.2;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.4);
}

.tv-widget-container {
    padding: 0 15px;
    margin-bottom: 25px;
}

.tv-frame {
    background: linear-gradient(135deg, #1e5799 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%);
    border: 8px solid #0a3d62;
    border-radius: 60px;
    padding: 25px;
    position: relative;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.4), inset 0 0 15px rgba(255, 255, 255, 0.3);
    width: 100%;
}

.tv-screen {
    background: #000;
    border: 5px solid #141414;
    border-radius: 40px;
    width: 100%;
    aspect-ratio: 16 / 9;
    /* Agora a tela interna é exatamente 16:9 */
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 0 20px rgba(0, 255, 255, 0.1);
}

.tv-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* Faz a imagem preencher todo o espaço da tela */
    opacity: 0;
    transition: opacity 1.5s ease-in-out;
}

.tv-slide.active {
    opacity: 1;
}

/* Reflexo na tela */
.tv-screen::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.05) 40%, transparent 41%);
    pointer-events: none;
    z-index: 2;
}

/* Antenas */
.tv-antenna {
    position: absolute;
    top: -40px;
    left: 50%;
    width: 100px;
    height: 50px;
    transform: translateX(-50%);
    z-index: -1;
}

.tv-antenna::before,
.tv-antenna::after {
    content: '';
    position: absolute;
    bottom: 0;
    width: 2px;
    height: 60px;
    background: #444;
}

.tv-antenna::before {
    left: 40px;
    transform: rotate(-30deg);
}

.tv-antenna::after {
    right: 40px;
    transform: rotate(30deg);
}

/*slide CSS main*/

.slide-items {
    width: 90%;
    margin: 0px auto;
    margin-top: 100px;
}

.slick-slide {
    margin: 10px;
}

.slick-slide img {
    width: 100%;
    border: 0px solid #fff;
}

/*slider da home */

.thumb {
    width: 150px;
    /* tamanho fixo das miniaturas */
    height: auto;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.thumb:hover {
    transform: scale(1.1);
    cursor: pointer;
}

/* Opcional: ajusta os controles pra ficarem visíveis sobre bg escuro */
.carousel-control-prev-icon,
.carousel-control-next-icon {
    filter: invert(1) brightness(2);
}

.carousel-inner {
    overflow: hidden;
    /* impede o vazamento visual */
    position: relative;
}

.carousel-track {
    display: flex;
    width: 200%;
    will-change: transform;
    backface-visibility: hidden;
    animation: scroll 30s linear infinite;
}

.carousel-track:hover {
    animation-play-state: paused;
}

@keyframes scroll {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }

    /* move só o track, não o container */
}

@media (max-width: 992px) {
    .thumb {
        width: 120px;
    }
}

@media (max-width: 576px) {
    .thumb {
        width: 90px;
    }
}

/*FIM slider da home */

/*modal lightbox da home */

/* Garantir contexto e camada correta */
.modal-content {
    position: relative;
    /* base para o button */
    overflow: visible;
    /* previne imagem de tampar o botão */
}

/* imagem */
#modalImage {
    position: relative;
    z-index: 1;
    /* deixa a imagem atrás do botão */
}

/* botão do X */
.btn-close {
    z-index: 2;
    /* fica acima da imagem */
    filter: invert(1);
    opacity: 0.8;
    transition: transform 0.25s, opacity 0.25s;
}

.btn-close:hover {
    opacity: 1;
    transform: scale(1.3);
}

/* fundo bonito */
.modal-backdrop.show {
    background-color: rgba(0, 0, 0, 0.85);
    backdrop-filter: blur(6px);
}

/*---------------Overlay para carregar pagina---------------*/
.loader {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 50, 66, 0.911);
    z-index: 9998;
    justify-content: center;
    align-items: center;
}

.loader.active {
    display: flex;
}

.spinner {
    /* 1. Defina o tamanho de UM ÚNICO frame */
    width: 236px;
    /* (Use a largura de 1 das suas imagens) */
    height: 110px;
    /* (Use a altura de 1 das suas imagens) */

    /* 2. Carregue a sua imagem de sprite inteira */
    background-image: url('../images/wait/waiting.png');
    /* <-- Altere o caminho/nome se necessário */
    background-repeat: no-repeat;

    /* 3. A MÁGICA: Animação "steps(4)" 
       Isto diz ao CSS para "cortar" a animação em 4 passos (frames) */
    animation: play-sprite 0.6s steps(4) infinite;
    /* 0.6s = duração, 4 = frames */

    /* (Opcional) Para pixel art não ficar "borrado" */
    image-rendering: pixelated;
    image-rendering: -moz-crisp-edges;
}

@keyframes play-sprite {
    from {
        /* Inicia na Posição 0 (Frame 1) */
        background-position: 0px 0px;
    }

    to {
        /* Termina na Posição -240px (Frame 4) */
        /* (Use a largura TOTAL da sua sprite sheet, ex: 4 * 60px = 240px) */
        background-position: -944px 0px;
    }
}

/*---------------FIM Overlay para carregar pagina---------------*/


/* ===== REGISTRATION SUCCESS OVERLAY ===== */
.registration-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 32, 60, 0.75);
    backdrop-filter: blur(8px);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.5s ease;
}

.registration-overlay.show {
    opacity: 1;
    pointer-events: auto;
}

.registration-overlay-card {
    background: linear-gradient(135deg, #ffffff 0%, #e8f5fb 100%);
    border: 3px solid #0189c7;
    border-radius: 12px;
    padding: 30px;
    text-align: center;
    max-width: 500px;
    width: 90%;
    transform: scale(0.9);
    transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.registration-overlay.show .registration-overlay-card {
    transform: scale(1);
}

.registration-overlay-card .welcome-img {
    max-width: 300px;
    filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.2));
}

/* Divisórias Responsivas para a Página de Power User */
@media (min-width: 992px) {
    .pu-divider-right {
        border-right: 1px dashed var(--pu-border-color) !important;
        border-bottom: none !important;
    }

    .pu-divider-left {
        border-left: 1px dashed var(--pu-border-color) !important;
        border-top: none !important;
    }
}

@media (max-width: 991.98px) {
    .pu-divider-right {
        border-right: none !important;
        border-bottom: 1px dashed var(--pu-border-color) !important;
        padding-bottom: 20px !important;
        margin-bottom: 10px !important;
    }

    .pu-divider-left {
        border-left: none !important;
        border-top: 1px dashed var(--pu-border-color) !important;
        padding-top: 20px !important;
        margin-top: 10px !important;
    }
}

/* ==========================================================================
   Power User Refinements (UI-UX Pro Max)
   ========================================================================== */

/* Archivo Font Utility Class */
.font-family-archivo {
    font-family: 'Archivo Narrow', sans-serif !important;
}

/* Font Size Utility Class */
.font-size-pu-text {
    font-size: 0.95rem;
}

/* List Item Micro-interactions */
.poweruser-list-item {
    transition: transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94), padding-left 0.2s ease;
}

.poweruser-list-item:hover {
    transform: translateX(6px);
}

.poweruser-list-item .rounded-circle {
    transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), background-color 0.2s ease, box-shadow 0.2s ease;
}

.poweruser-list-item:hover .rounded-circle {
    transform: scale(1.18);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

/* Red Power User Panel Customization */
.gb-inventory-panel-danger {
    border: 3px double rgba(220, 53, 69, 0.3) !important;
    background: linear-gradient(180deg, #fdfaf2 0%, #fff7f7 100%) !important;
    box-shadow: inset 0 0 10px rgba(220, 53, 69, 0.02), 0 2px 5px rgba(0, 0, 0, 0.03) !important;
    transition: transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.15), border-color 0.25s ease, box-shadow 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.15) !important;
}

.gb-inventory-panel-danger:hover {
    border-color: rgba(220, 53, 69, 0.6) !important;
    box-shadow: 0 8px 24px rgba(220, 53, 69, 0.12), inset 0 0 8px rgba(220, 53, 69, 0.04) !important;
}

.gb-inventory-panel-danger .border-bottom {
    border-bottom-color: rgba(220, 53, 69, 0.15) !important;
}

/* Orange Power User Panel Customization */
.gb-inventory-panel-warning {
    border: 3px double rgba(226, 161, 60, 0.3) !important;
    background: linear-gradient(180deg, #fdfaf2 0%, #fffaf3 100%) !important;
    box-shadow: inset 0 0 10px rgba(226, 161, 60, 0.02), 0 2px 5px rgba(0, 0, 0, 0.03) !important;
    transition: transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.15), border-color 0.25s ease, box-shadow 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.15) !important;
}

.gb-inventory-panel-warning:hover {
    border-color: rgba(226, 161, 60, 0.6) !important;
    box-shadow: 0 8px 24px rgba(226, 161, 60, 0.12), inset 0 0 8px rgba(226, 161, 60, 0.04) !important;
}

.gb-inventory-panel-warning .border-bottom {
    border-bottom-color: rgba(226, 161, 60, 0.15) !important;
}

/* Amethyst Power User Panel Customization */
.gb-inventory-panel-amethyst {
    border: 3px double rgba(142, 84, 192, 0.3) !important;
    background: linear-gradient(180deg, #fdfaf2 0%, #fbf8ff 100%) !important;
    box-shadow: inset 0 0 10px rgba(142, 84, 192, 0.02), 0 2px 5px rgba(0, 0, 0, 0.03) !important;
    transition: transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.15), border-color 0.25s ease, box-shadow 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.15) !important;
}

.gb-inventory-panel-amethyst:hover {
    border-color: rgba(142, 84, 192, 0.6) !important;
    box-shadow: 0 8px 24px rgba(142, 84, 192, 0.12), inset 0 0 8px rgba(142, 84, 192, 0.04) !important;
}

.gb-inventory-panel-amethyst .border-bottom {
    border-bottom-color: rgba(142, 84, 192, 0.15) !important;
}

/* Black Power User Panel Customization */
.gb-inventory-panel-black {
    border: 3px double rgba(0, 0, 0, 0.3) !important;
    background: linear-gradient(180deg, #fdfaf2 0%, #fbf8ff 100%) !important;
    box-shadow: inset 0 0 10px rgba(142, 84, 192, 0.02), 0 2px 5px rgba(0, 0, 0, 0.03) !important;
    transition: transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.15), border-color 0.25s ease, box-shadow 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.15) !important;
}

.gb-inventory-panel-black:hover {
    border-color: rgba(0, 0, 0, 0.6) !important;
    box-shadow: 0 8px 24px rgba(142, 84, 192, 0.12), inset 0 0 8px rgba(142, 84, 192, 0.04) !important;
}

.gb-inventory-panel-black .border-bottom {
    border-bottom-color: rgba(142, 84, 192, 0.15) !important;
}

/* Check Badges */
.pu-check-badge-danger {
    width: 22px;
    height: 22px;
    background-color: rgba(220, 53, 69, 0.08);
    font-size: 0.75rem;
    flex-shrink: 0;
    transition: transform 0.2s ease, background-color 0.2s ease;
}

.poweruser-list-item:hover .pu-check-badge-danger {
    background-color: rgba(220, 53, 69, 0.16);
}

.pu-check-badge-warning {
    width: 22px;
    height: 22px;
    background-color: rgba(226, 161, 60, 0.08);
    color: #ff9933;
    font-size: 0.75rem;
    flex-shrink: 0;
    transition: transform 0.2s ease, background-color 0.2s ease;
}

.poweruser-list-item:hover .pu-check-badge-warning {
    background-color: rgba(226, 161, 60, 0.16);
}

.pu-check-badge-amethyst {
    width: 22px;
    height: 22px;
    background-color: rgba(142, 84, 192, 0.08);
    color: #8e54c0;
    font-size: 0.75rem;
    flex-shrink: 0;
    transition: transform 0.2s ease, background-color 0.2s ease;
}

.poweruser-list-item:hover .pu-check-badge-amethyst {
    background-color: rgba(142, 84, 192, 0.16);
}

/* Premium Status Consoles */
.gb-pu-console-danger {
    background-color: rgba(220, 53, 69, 0.04) !important;
    border: 1px solid rgba(220, 53, 69, 0.12) !important;
    max-width: fit-content;
    box-shadow: inset 0 2px 4px rgba(220, 53, 69, 0.01);
}

.gb-pu-console-warning {
    background-color: rgba(226, 161, 60, 0.04) !important;
    border: 1px solid rgba(226, 161, 60, 0.12) !important;
    max-width: fit-content;
    box-shadow: inset 0 2px 4px rgba(226, 161, 60, 0.01);
}

.gb-pu-console-amethyst {
    background-color: rgba(142, 84, 192, 0.04) !important;
    border: 1px solid rgba(142, 84, 192, 0.12) !important;
    max-width: fit-content;
    box-shadow: inset 0 2px 4px rgba(142, 84, 192, 0.01);
}

@media (min-width: 768px) {
    .gb-pu-console-danger .pu-divider-left {
        border-left: 1px dashed rgba(220, 53, 69, 0.2) !important;
    }

    .gb-pu-console-warning .pu-divider-left {
        border-left: 1px dashed rgba(226, 161, 60, 0.2) !important;
    }

    .gb-pu-console-amethyst .pu-divider-left {
        border-left: 1px dashed rgba(142, 84, 192, 0.2) !important;
    }
}

/* ==========================================================================
   Mobiles & Weapons Neo-Retro HUD Frames (UI-UX Pro Max)
   ========================================================================== */

/* Premium Retro Mobile Class & Type Gifs Frames */
.gb-mobile-image-frame {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px;
    background: #080808;
    border: 3px double rgba(255, 255, 255, 0.15);
    border-radius: 6px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5), inset 0 0 8px rgba(255, 255, 255, 0.05);
    transition: transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275), border-color 0.25s ease, box-shadow 0.25s ease;
    cursor: pointer;
    position: relative;
    overflow: hidden;
}

.gb-mobile-image-frame::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.15) 50%);
    background-size: 100% 3px;
    pointer-events: none;
    z-index: 2;
}

.gb-mobile-image-frame img {
    display: block;
    object-fit: contain;
    image-rendering: pixelated;
    transition: filter 0.25s ease;
}

/* Color thematic console adjustments for mobiles frames */
.gb-mobile-image-frame.frame-danger {
    border-color: rgba(220, 53, 69, 0.4);
}

.gb-mobile-image-frame.frame-danger:hover {
    border-color: rgba(220, 53, 69, 0.8);
    box-shadow: 0 6px 20px rgba(220, 53, 69, 0.35), inset 0 0 8px rgba(220, 53, 69, 0.1);
    transform: scale(1.02);
}

.gb-mobile-image-frame.frame-warning {
    border-color: rgba(226, 161, 60, 0.4);
}

.gb-mobile-image-frame.frame-warning:hover {
    border-color: rgba(226, 161, 60, 0.8);
    box-shadow: 0 6px 20px rgba(226, 161, 60, 0.35), inset 0 0 8px rgba(226, 161, 60, 0.1);
    transform: scale(1.02);
}

.gb-mobile-image-frame.frame-amethyst {
    border-color: rgba(142, 84, 192, 0.4);
}

.gb-mobile-image-frame.frame-amethyst:hover {
    border-color: rgba(142, 84, 192, 0.8);
    box-shadow: 0 6px 20px rgba(142, 84, 192, 0.35), inset 0 0 8px rgba(142, 84, 192, 0.1);
    transform: scale(1.02);
}

.gb-mobile-image-frame.frame-dark {
    border-color: rgba(100, 100, 100, 0.4);
}

.gb-mobile-image-frame.frame-dark:hover {
    border-color: rgba(200, 200, 200, 0.8);
    box-shadow: 0 6px 20px rgba(255, 255, 255, 0.15), inset 0 0 8px rgba(255, 255, 255, 0.05);
    transform: scale(1.02);
}

/* Enhancements to retro monitors display */
.gb-retro-monitor {
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.15), box-shadow 0.3s ease;
}

.gb-retro-monitor:hover {
    transform: translateY(-4px) scale(1.01);
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.65), inset 0 0 12px rgba(255, 255, 255, 0.15) !important;
}


/* ===================================================
   PROFILE PAGES — shared between profile & player-profile
   =================================================== */

/* Card title (orange left border, dark blue) */
.profile-card-title {
    font-family: 'Archivo Narrow', sans-serif;
    text-transform: uppercase;
    font-weight: bold;
    border-left: 3px solid #ff9c00;
    padding-left: 10px;
    color: #0d3261;
    font-size: 1rem;
}

/* Info rows (label / value pairs) */
.profile-info-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    font-size: 0.9rem;
}

.profile-info-row:last-child {
    border-bottom: none;
}

.profile-label {
    color: #6c757d;
    font-weight: 500;
}

.profile-value {
    font-weight: 600;
    color: #0d3261;
}

/* Nickname & userid */
.profile-nickname {
    font-size: 1.4rem;
    font-weight: 800;
    color: #0d3261;
    font-family: 'Archivo Narrow', sans-serif;
}

.profile-userid {
    font-size: 0.8rem;
    color: #999;
}

/* Rank badge circle */
.profile-avatar-wrap {
    background: rgba(13, 50, 97, 0.08);
    border-radius: 50%;
    width: 72px;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #8bb5c3;
}

/* Stat boxes (Gold, Cash, GP…) */
.profile-stat-box {
    border-radius: 10px;
    border: 1.5px solid;
    padding: 14px 10px;
    text-align: center;
}

.stat-icon {
    font-size: 1.5rem;
    margin-bottom: 4px;
}

.stat-value {
    font-size: 1.1rem;
    font-weight: 800;
    color: #0d3261;
}

.stat-label {
    font-size: 0.72rem;
    color: #6c757d;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Avatar render card */
.avatar-render-wrap {
    position: relative;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 8px;
    border: 1px solid rgba(255, 156, 0, 0.3);
}

/* Password form labels */
#change-password-form .form-label {
    color: #495057;
}

/* Guild request items */
.request-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 12px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.7);
    border: 1px solid #c9dbe8;
    margin-bottom: 6px;
    font-size: 0.85rem;
}

.request-badge {
    padding: 2px 10px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
}

.badge-pending {
    background: #fff3cd;
    color: #856404;
    border: 1px solid #ffc107;
}

.badge-approved {
    background: #d1e7dd;
    color: #155724;
    border: 1px solid #198754;
}

.badge-rejected {
    background: #f8d7da;
    color: #842029;
    border: 1px solid #dc3545;
}

.badge-cancelled {
    background: #e2e3e5;
    color: #6c757d;
    border: 1px solid #adb5bd;
}

/* --------------- PAGINATION SKELETON & TRANSITIONS --------------- */
@keyframes shine {
    0% {
        background-position: -200px 0;
    }
    100% {
        background-position: 200px 0;
    }
}

.skeleton-row td {
    padding: 12px 8px !important;
    vertical-align: middle;
}

.skeleton-text {
    height: 16px;
    background: rgba(13, 50, 97, 0.08);
    background-image: linear-gradient(90deg, rgba(13, 50, 97, 0.08) 0px, rgba(13, 50, 97, 0.15) 40px, rgba(13, 50, 97, 0.08) 80px);
    background-size: 200px 100%;
    background-repeat: no-repeat;
    animation: shine 1.4s infinite linear;
    border-radius: 4px;
    display: inline-block;
}

.skeleton-avatar {
    width: 24px;
    height: 24px;
    border-radius: 4px;
    background: rgba(13, 50, 97, 0.08);
    background-image: linear-gradient(90deg, rgba(13, 50, 97, 0.08) 0px, rgba(13, 50, 97, 0.15) 40px, rgba(13, 50, 97, 0.08) 80px);
    background-size: 200px 100%;
    background-repeat: no-repeat;
    animation: shine 1.4s infinite linear;
    display: inline-block;
    vertical-align: middle;
}

.table-fade-in {
    animation: tableFadeIn 0.3s ease-out forwards;
}

@keyframes tableFadeIn {
    from {
        opacity: 0;
        transform: translateY(4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}