/* ==========================================
   PROJETO VÁCUO
========================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    background:#0d0d0d;
    color:#fff;
    font-family:'Poppins',sans-serif;
}

/* CONTAINER */

.container{
    width:90%;
    max-width:1200px;
    margin:auto;
}

/* MENU */

header{
    background:#111;
    border-bottom:1px solid #222;
}

header .container{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:20px 0;
}

.logo{
    color:#8bc34a;
    font-size:28px;
    font-weight:bold;
}

nav a{
    color:white;
    text-decoration:none;
    margin-left:20px;
    transition:.3s;
}

nav a:hover{
    color:#8bc34a;
}

.login{
    border:1px solid #8bc34a;
    padding:8px 18px;
    border-radius:6px;
}

/* HERO */

.hero{
    height:600px;
    background:
        linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,.8)),
        url('../img/banner.jpg');
    background-size:cover;
    background-position:center;
    display:flex;
    justify-content:center;
    align-items:center;
    text-align:center;
}

.overlay h1{
    font-size:60px;
}

.overlay p{
    margin:20px 0;
    font-size:22px;
}

.btn{
    display:inline-block;
    background:#8bc34a;
    color:#000;
    text-decoration:none;
    padding:15px 30px;
    border-radius:5px;
    font-weight:bold;
}

/* STATUS */

.status{
    padding:70px 0;
}

.card{
    background:#181818;
    padding:25px;
    border-left:4px solid #8bc34a;
    border-radius:8px;
}

/* NOTÍCIAS */

.news{
    background:#111;
    padding:70px 0;
}

/* FOOTER */

footer{
    background:#080808;
    padding:30px;
    text-align:center;
    color:#888;
}

/* ==========================================
   PAINEL ADMINISTRATIVO
========================================== */

.admin{
    display:flex;
    min-height:100vh;
}

.sidebar{
    width:260px;
    background:#111;
    padding:30px;
}

.sidebar h2{
    color:#8bc34a;
    margin-bottom:35px;
}

.sidebar a{
    display:block;
    text-decoration:none;
    color:#ddd;
    padding:12px;
    border-radius:6px;
    margin-bottom:10px;
    transition:.3s;
}

.sidebar a:hover{
    background:#8bc34a;
    color:#000;
}

.content{
    flex:1;
    padding:40px;
}

.cards{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
    gap:20px;
    margin-top:35px;
}

.admin-card{
    background:#1b1b1b;
    border-left:5px solid #8bc34a;
    border-radius:8px;
    padding:25px;
}

.admin-card h3{
    color:#8bc34a;
    margin-bottom:15px;
}

.numero{
    font-size:40px;
    font-weight:bold;
}

/* FORMULÁRIOS */

form{
    margin-top:20px;
}

input,
textarea,
select{
    width:100%;
    padding:12px;
    margin-bottom:15px;
    background:#181818;
    border:1px solid #333;
    color:#fff;
    border-radius:6px;
}

button{
    cursor:pointer;
}

@media(max-width:900px){

    header .container{
        flex-direction:column;
    }

    nav{
        margin-top:20px;
    }

    .admin{
        flex-direction:column;
    }

    .sidebar{
        width:100%;
    }

}
table{
    width:100%;
    border-collapse:collapse;
    background:#181818;
}

th{
    background:#222;
    color:#8bc34a;
    padding:15px;
    text-align:left;
}

td{
    padding:15px;
    border-top:1px solid #333;
}

tr:hover{
    background:#202020;
}/* ===========================
   NOTÍCIAS HOME
=========================== */

.cards-news{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(320px,1fr));

gap:25px;

margin-top:30px;

}

.news-card{

background:#181818;

border-radius:8px;

overflow:hidden;

box-shadow:0 0 10px rgba(0,0,0,.4);

transition:.3s;

}

.news-card:hover{

transform:translateY(-5px);

}

.news-img{

width:100%;

height:220px;

object-fit:cover;

}

.news-card h3{

padding:20px;

color:#8bc34a;

}

.news-card p{

padding:0 20px;

color:#ccc;

}

.news-card small{

display:block;

padding:20px;

color:#777;

}/* ==========================================
   PÁGINA DA NOTÍCIA
========================================== */

.noticia-imagem{

    width:100%;

    max-height:500px;

    object-fit:cover;

    border-radius:10px;

    margin-bottom:30px;

}

.info-noticia{

    color:#999;

    margin:20px 0;

}

.conteudo-noticia{

    line-height:1.9;

    font-size:18px;

    margin-bottom:40px;

}/* ==========================================
   CHECKOUT E PEDIDOS
========================================== */

.checkout-page{
    min-height:calc(100vh - 160px);
    padding:70px 0;
    background:#0d0d0d;
}

.checkout-header{
    margin-bottom:35px;
}

.checkout-header h1{
    margin:8px 0 10px;
    font-size:38px;
}

.checkout-header p{
    color:#aaa;
}

.section-label{
    color:#8bc34a;
    font-size:13px;
    font-weight:700;
    letter-spacing:2px;
}

.checkout-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:25px;
    align-items:start;
}

.checkout-card,
.order-card{
    background:#181818;
    border:1px solid #292929;
    border-radius:12px;
    padding:30px;
    box-shadow:0 15px 40px rgba(0,0,0,.25);
}

.checkout-card h2{
    margin-bottom:25px;
}

.checkout-product{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:25px;
}

.checkout-product h3{
    color:#8bc34a;
    margin-bottom:10px;
}

.checkout-product p{
    color:#bbb;
    line-height:1.7;
}

.checkout-price{
    white-space:nowrap;
    font-size:25px;
}

.checkout-data{
    display:grid;
    gap:15px;
    margin-bottom:25px;
}

.checkout-data div,
.order-details div{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding-bottom:14px;
    border-bottom:1px solid #292929;
}

.checkout-data span,
.order-details span{
    color:#999;
}

.checkout-data strong,
.order-details strong{
    text-align:right;
    word-break:break-word;
}

.checkout-warning{
    padding:15px;
    margin-bottom:20px;
    color:#f5ca75;
    background:rgba(245,202,117,.08);
    border:1px solid rgba(245,202,117,.25);
    border-radius:8px;
}

.alert{
    padding:16px 18px;
    margin-bottom:25px;
    border-radius:8px;
}

.alert-error{
    color:#ffb5b5;
    background:rgba(255,70,70,.09);
    border:1px solid rgba(255,70,70,.3);
}

.btn-secondary{
    background:#2a2a2a;
    color:#fff;
}

.btn-secondary:hover{
    background:#363636;
}

.order-card{
    max-width:760px;
    margin:auto;
    text-align:center;
}

.order-card h1{
    margin:10px 0 15px;
}

.order-card > p{
    color:#aaa;
    line-height:1.7;
    margin-bottom:30px;
}

.order-icon{
    width:70px;
    height:70px;
    margin:0 auto 20px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#8bc34a;
    color:#111;
    font-size:35px;
    font-weight:700;
}

.order-details{
    display:grid;
    gap:15px;
    margin:30px 0;
    text-align:left;
}

.status-badge{
    display:inline-block;
    padding:6px 10px;
    border-radius:20px;
    font-size:13px;
}

.status-pending{
    color:#f5ca75;
    background:rgba(245,202,117,.12);
}

.order-actions{
    display:flex;
    justify-content:center;
    gap:15px;
    flex-wrap:wrap;
}

@media(max-width:800px){

    .checkout-grid{
        grid-template-columns:1fr;
    }

    .checkout-product{
        flex-direction:column;
    }

    .checkout-data div,
    .order-details div{
        flex-direction:column;
        gap:7px;
    }

    .checkout-data strong,
    .order-details strong{
        text-align:left;
    }

}/* ==========================================
   PERFIL DO JOGADOR
========================================== */

.profile-page{
    min-height:calc(100vh - 160px);
    padding:70px 0;
}

.profile-header{
    margin-bottom:35px;
}

.profile-header h1{
    margin:8px 0 10px;
    font-size:38px;
}

.profile-header p{
    color:#aaa;
}

.profile-grid{
    display:grid;
    grid-template-columns:1.2fr .8fr;
    gap:25px;
    align-items:start;
}

.profile-card{
    background:#181818;
    border:1px solid #292929;
    border-radius:12px;
    padding:30px;
    box-shadow:0 15px 40px rgba(0,0,0,.25);
}

.profile-card h2{
    margin-bottom:25px;
}

.account-data,
.priority-details{
    display:grid;
    gap:15px;
    margin-bottom:25px;
}

.account-data div,
.priority-details div{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding-bottom:14px;
    border-bottom:1px solid #292929;
}

.account-data span,
.priority-details span{
    color:#999;
}

.account-data strong,
.priority-details strong{
    text-align:right;
    word-break:break-word;
}

.profile-card label{
    display:block;
    margin-bottom:8px;
    font-weight:600;
}

.field-help{
    display:block;
    margin-top:-8px;
    margin-bottom:18px;
    color:#888;
}

.alert-success{
    color:#b9ef9a;
    background:rgba(139,195,74,.1);
    border:1px solid rgba(139,195,74,.35);
}

.priority-status{
    display:inline-block;
    padding:8px 14px;
    margin-bottom:20px;
    border-radius:30px;
    font-weight:700;
    letter-spacing:1px;
}

.priority-active{
    color:#b9ef9a;
    background:rgba(139,195,74,.12);
    border:1px solid rgba(139,195,74,.35);
}

.priority-inactive{
    color:#aaa;
    background:#222;
    border:1px solid #333;
}

.priority-text{
    margin-bottom:25px;
    color:#aaa;
    line-height:1.7;
}

.profile-actions{
    margin-top:25px;
}

@media(max-width:800px){

    .profile-grid{
        grid-template-columns:1fr;
    }

    .account-data div,
    .priority-details div{
        flex-direction:column;
        gap:7px;
    }

    .account-data strong,
    .priority-details strong{
        text-align:left;
    }

}/* ==========================================
   MINHAS COMPRAS
========================================== */

.purchases-page{
    min-height:calc(100vh - 160px);
    padding:70px 0;
}

.purchases-header{
    margin-bottom:35px;
}

.purchases-header h1{
    margin:8px 0 10px;
    font-size:38px;
}

.purchases-header p{
    color:#aaa;
}

.purchases-list{
    display:grid;
    gap:22px;
}

.purchase-card{
    background:#181818;
    border:1px solid #292929;
    border-radius:12px;
    padding:28px;
    box-shadow:0 15px 40px rgba(0,0,0,.2);
}

.purchase-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    margin-bottom:25px;
}

.purchase-number{
    display:block;
    margin-bottom:8px;
    color:#8bc34a;
    font-size:12px;
    font-weight:700;
    letter-spacing:1.5px;
}

.purchase-top h2{
    font-size:23px;
}

.purchase-details{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:15px;
}

.purchase-details div{
    padding:15px;
    background:#131313;
    border:1px solid #252525;
    border-radius:8px;
}

.purchase-details span{
    display:block;
    margin-bottom:7px;
    color:#888;
    font-size:13px;
}

.purchase-details strong{
    word-break:break-word;
}

.purchase-actions{
    display:flex;
    justify-content:flex-end;
    margin-top:22px;
}

.btn-small{
    padding:10px 18px;
    font-size:14px;
}

.status-approved{
    color:#b9ef9a;
    background:rgba(139,195,74,.12);
}

.status-cancelled{
    color:#ffaaaa;
    background:rgba(255,70,70,.12);
}

.empty-state{
    padding:55px 30px;
    background:#181818;
    border:1px solid #292929;
    border-radius:12px;
    text-align:center;
}

.empty-state h2{
    margin-bottom:10px;
}

.empty-state p{
    margin-bottom:25px;
    color:#999;
}

.profile-actions{
    display:flex;
    gap:15px;
    flex-wrap:wrap;
}

@media(max-width:900px){

    .purchase-details{
        grid-template-columns:repeat(2,1fr);
    }

}

@media(max-width:600px){

    .purchase-top{
        flex-direction:column;
    }

    .purchase-details{
        grid-template-columns:1fr;
    }

    .purchase-actions{
        justify-content:flex-start;
    }

}/* =========================================================
   STATUS DO SERVIDOR
========================================================= */

.server-status-page {
    min-height: 75vh;
    padding: 70px 0 100px;
}

.server-status-header {
    margin-bottom: 35px;
}

.server-status-header h1 {
    margin: 10px 0;
    font-size: 38px;
}

.server-status-header p {
    color: #aaa;
}

.server-status-card {
    padding: 32px;
    border: 1px solid #2e2e2e;
    border-radius: 12px;
    background: #191919;
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.25);
}

.server-status-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 30px;
}

.server-status-label {
    display: block;
    margin-bottom: 8px;
    color: #888;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.5px;
}

.server-online,
.server-offline {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 15px;
    font-weight: 700;
}

.server-online {
    color: #8ed143;
}

.server-offline {
    color: #e26464;
}

.server-online span,
.server-offline span {
    width: 11px;
    height: 11px;
    border-radius: 50%;
}

.server-online span {
    background: #8ed143;
    box-shadow: 0 0 12px rgba(142, 209, 67, 0.65);
}

.server-offline span {
    background: #e26464;
    box-shadow: 0 0 12px rgba(226, 100, 100, 0.55);
}

.server-status-card h2 {
    margin-bottom: 28px;
    font-size: 26px;
}

.server-status-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.server-info-item {
    padding: 20px;
    border: 1px solid #303030;
    border-radius: 9px;
    background: #141414;
}

.server-info-item span {
    display: block;
    margin-bottom: 8px;
    color: #929292;
    font-size: 13px;
}

.server-info-item strong {
    color: #fff;
    font-size: 17px;
}

.player-progress {
    margin-top: 30px;
}

.player-progress-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
}

.player-progress-header span {
    color: #aaa;
}

.player-progress-bar {
    width: 100%;
    height: 12px;
    overflow: hidden;
    border-radius: 999px;
    background: #303030;
}

.player-progress-value {
    height: 100%;
    border-radius: inherit;
    background: #8ed143;
    transition: width 0.4s ease;
}

.server-connect-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 30px;
    padding: 22px;
    border: 1px solid rgba(142, 209, 67, 0.28);
    border-radius: 9px;
    background: rgba(142, 209, 67, 0.06);
}

.server-connect-box span {
    display: block;
    margin-bottom: 6px;
    color: #8ed143;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1px;
}

.server-connect-box strong {
    font-size: 19px;
}

.server-error-message {
    padding: 35px;
    border: 1px solid rgba(226, 100, 100, 0.3);
    border-radius: 9px;
    background: rgba(226, 100, 100, 0.06);
}

.server-error-message h2 {
    margin-bottom: 12px;
}

.server-error-message p {
    color: #bbb;
}

.server-error-message small {
    display: block;
    margin-top: 14px;
    color: #e28b8b;
}

@media (max-width: 900px) {
    .server-status-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .server-status-page {
        padding: 45px 0 70px;
    }

    .server-status-top,
    .server-connect-box {
        align-items: flex-start;
        flex-direction: column;
    }

    .server-status-grid {
        grid-template-columns: 1fr;
    }

    .server-status-card {
        padding: 22px;
    }
}
/* =========================================================
   MENU DO USUÁRIO
========================================================= */

.logo {
    color: #8ed143;
    text-decoration: none;
}

.nav-logout {
    padding: 10px 15px;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    color: #bdbdbd;
    text-decoration: none;
    transition: 0.2s ease;
}

.nav-logout:hover {
    border-color: #e26464;
    color: #e26464;
}

.main-nav .login {
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* =========================================================
   PÁGINA DE REGRAS
========================================================= */

.rules-page {
    min-height: 75vh;
    padding: 70px 0 100px;
}

.rules-header {
    max-width: 760px;
    margin-bottom: 38px;
}

.rules-header h1 {
    margin: 10px 0 12px;
    font-size: 38px;
}

.rules-header p {
    color: #aaa;
    line-height: 1.7;
}

.rules-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

.rules-card {
    display: flex;
    gap: 20px;
    padding: 26px;
    border: 1px solid #2e2e2e;
    border-radius: 12px;
    background: #191919;
    box-shadow: 0 18px 35px rgba(0, 0, 0, 0.18);
    transition: transform 0.2s ease, border-color 0.2s ease;
}

.rules-card:hover {
    transform: translateY(-3px);
    border-color: rgba(142, 209, 67, 0.45);
}

.rule-number {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border: 1px solid rgba(142, 209, 67, 0.4);
    border-radius: 10px;
    color: #8ed143;
    background: rgba(142, 209, 67, 0.07);
    font-size: 14px;
    font-weight: 700;
}

.rule-content h2 {
    margin: 0 0 10px;
    font-size: 20px;
}

.rule-content p {
    margin: 0;
    color: #aaa;
    line-height: 1.7;
}

.rules-warning {
    margin-top: 30px;
    padding: 30px;
    border: 1px solid rgba(142, 209, 67, 0.3);
    border-radius: 12px;
    background: rgba(142, 209, 67, 0.06);
}

.rules-warning h2 {
    margin-top: 0;
    margin-bottom: 10px;
}

.rules-warning p {
    max-width: 780px;
    margin-bottom: 22px;
    color: #b5b5b5;
    line-height: 1.7;
}

@media (max-width: 850px) {
    .rules-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .rules-page {
        padding: 45px 0 70px;
    }

    .rules-header h1 {
        font-size: 31px;
    }

    .rules-card {
        align-items: flex-start;
        padding: 21px;
    }
}
/* =========================================================
   RANKING DE SOBREVIVENTES
========================================================= */

.ranking-page {
    min-height: 75vh;
    padding: 70px 0 100px;
}

.ranking-header {
    max-width: 760px;
    margin-bottom: 40px;
}

.ranking-header h1 {
    margin: 10px 0 12px;
    font-size: 38px;
}

.ranking-header p {
    color: #aaa;
    line-height: 1.7;
}

/* PÓDIO */

.ranking-podium {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: end;
    gap: 18px;
    margin-bottom: 28px;
}

.podium-card {
    position: relative;
    padding: 30px 22px;
    overflow: hidden;
    border: 1px solid #303030;
    border-radius: 12px;
    background: #191919;
    text-align: center;
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.22);
}

.podium-first {
    min-height: 245px;
    padding-top: 40px;
    border-color: rgba(216, 180, 66, 0.55);
    background:
        linear-gradient(
            180deg,
            rgba(216, 180, 66, 0.09),
            rgba(25, 25, 25, 1)
        );
}

.podium-second {
    min-height: 210px;
    border-color: rgba(190, 190, 190, 0.35);
}

.podium-third {
    min-height: 190px;
    border-color: rgba(176, 112, 65, 0.42);
}

.podium-position {
    position: absolute;
    top: 14px;
    left: 16px;
    color: #777;
    font-size: 13px;
    font-weight: 700;
}

.podium-medal {
    margin-bottom: 12px;
    font-size: 42px;
}

.podium-card h2 {
    margin: 0 0 8px;
    overflow: hidden;
    color: #fff;
    font-size: 20px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.podium-card strong {
    color: #8ed143;
    font-size: 15px;
}

/* TABELA */

.ranking-table-card {
    overflow: hidden;
    border: 1px solid #2e2e2e;
    border-radius: 12px;
    background: #191919;
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.2);
}

.ranking-table-wrapper {
    overflow-x: auto;
}

.ranking-table {
    width: 100%;
    border-collapse: collapse;
}

.ranking-table th,
.ranking-table td {
    padding: 18px 20px;
    border-bottom: 1px solid #2c2c2c;
    text-align: left;
}

.ranking-table th {
    color: #8ed143;
    background: #141414;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.7px;
    text-transform: uppercase;
}

.ranking-table td {
    color: #bbb;
    font-size: 14px;
}

.ranking-table tbody tr {
    transition: background 0.2s ease;
}

.ranking-table tbody tr:hover {
    background: rgba(142, 209, 67, 0.05);
}

.ranking-table tbody tr:last-child td {
    border-bottom: none;
}

.ranking-position {
    color: #fff;
    font-weight: 700;
}

.ranking-player-name {
    color: #fff;
}

.ranking-points {
    color: #8ed143;
}

.ranking-update {
    margin-top: 18px;
    color: #777;
    font-size: 13px;
    text-align: right;
}

.ranking-update strong {
    color: #aaa;
}

.ranking-empty {
    padding: 50px 30px;
    border: 1px solid #303030;
    border-radius: 12px;
    background: #191919;
    text-align: center;
}

.ranking-empty h2 {
    margin-top: 0;
}

.ranking-empty p {
    margin-bottom: 0;
    color: #999;
}

@media (max-width: 800px) {
    .ranking-podium {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .podium-first {
        order: -1;
    }

    .podium-card,
    .podium-first,
    .podium-second,
    .podium-third {
        min-height: auto;
    }
}

@media (max-width: 600px) {
    .ranking-page {
        padding: 45px 0 70px;
    }

    .ranking-header h1 {
        font-size: 31px;
    }

    .ranking-table th,
    .ranking-table td {
        padding: 15px;
        white-space: nowrap;
    }
}
/* =========================================================
   GALERIA
========================================================= */

.gallery-page {
    min-height: 75vh;
    padding: 70px 0 100px;
}

.gallery-header {
    max-width: 760px;
    margin-bottom: 38px;
}

.gallery-header h1 {
    margin: 10px 0 12px;
    font-size: 38px;
}

.gallery-header p {
    color: #aaa;
    line-height: 1.7;
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.gallery-card {
    overflow: hidden;
    border: 1px solid #2e2e2e;
    border-radius: 12px;
    background: #191919;
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.22);
    transition: transform 0.2s ease, border-color 0.2s ease;
}

.gallery-card:hover {
    transform: translateY(-4px);
    border-color: rgba(142, 209, 67, 0.45);
}

.gallery-image-button {
    position: relative;
    display: block;
    width: 100%;
    height: 230px;
    padding: 0;
    overflow: hidden;
    border: none;
    background: #111;
    cursor: pointer;
}

.gallery-image-button img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.gallery-card:hover .gallery-image-button img {
    transform: scale(1.05);
}

.gallery-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: rgba(0, 0, 0, 0.58);
    font-size: 14px;
    font-weight: 700;
    opacity: 0;
    transition: opacity 0.25s ease;
}

.gallery-image-button:hover .gallery-overlay {
    opacity: 1;
}

.gallery-card-content {
    padding: 20px;
}

.gallery-card-content h2 {
    margin: 0 0 8px;
    font-size: 19px;
}

.gallery-card-content p {
    margin: 0 0 14px;
    color: #aaa;
    line-height: 1.6;
}

.gallery-card-content small {
    color: #777;
}

.gallery-empty {
    padding: 55px 30px;
    border: 1px solid #303030;
    border-radius: 12px;
    background: #191919;
    text-align: center;
}

.gallery-empty h2 {
    margin-top: 0;
}

.gallery-empty p {
    margin-bottom: 0;
    color: #999;
}

/* MODAL DA GALERIA */

.gallery-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 30px;
    background: rgba(0, 0, 0, 0.9);
}

.gallery-modal.active {
    display: flex;
}

.gallery-modal-content {
    width: min(1100px, 100%);
    max-height: 90vh;
    overflow: auto;
    border: 1px solid #333;
    border-radius: 12px;
    background: #151515;
}

.gallery-modal-content img {
    display: block;
    width: 100%;
    max-height: 72vh;
    object-fit: contain;
    background: #080808;
}

.gallery-modal-info {
    padding: 22px;
}

.gallery-modal-info h2 {
    margin: 0 0 8px;
}

.gallery-modal-info p {
    margin: 0;
    color: #aaa;
    line-height: 1.6;
}

.gallery-modal-close {
    position: fixed;
    top: 22px;
    right: 28px;
    z-index: 10000;
    width: 46px;
    height: 46px;
    border: 1px solid #444;
    border-radius: 50%;
    color: #fff;
    background: #1a1a1a;
    font-size: 29px;
    line-height: 1;
    cursor: pointer;
}

.gallery-modal-close:hover {
    border-color: #8ed143;
    color: #8ed143;
}

.gallery-modal-open {
    overflow: hidden;
}

@media (max-width: 950px) {
    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 620px) {
    .gallery-page {
        padding: 45px 0 70px;
    }

    .gallery-header h1 {
        font-size: 31px;
    }

    .gallery-grid {
        grid-template-columns: 1fr;
    }

    .gallery-image-button {
        height: 220px;
    }

    .gallery-modal {
        padding: 15px;
    }

    .gallery-modal-close {
        top: 12px;
        right: 12px;
    }
}
/* =========================================================
   ADMINISTRAÇÃO DA GALERIA
========================================================= */

.admin-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.admin-gallery-card {
    overflow: hidden;
    border: 1px solid #303030;
    border-radius: 12px;
    background: #191919;
}

.admin-gallery-card > img {
    display: block;
    width: 100%;
    height: 210px;
    object-fit: cover;
    background: #101010;
}

.admin-gallery-info {
    padding: 20px;
}

.admin-gallery-info h2 {
    margin: 0 0 8px;
    font-size: 19px;
}

.admin-gallery-info p {
    margin: 0 0 14px;
    color: #aaa;
    line-height: 1.6;
}

.admin-gallery-info small {
    display: block;
    margin-bottom: 18px;
    color: #777;
}

.admin-gallery-info form {
    margin: 0;
}

.admin-form {
    max-width: 760px;
    padding: 28px;
    border: 1px solid #303030;
    border-radius: 12px;
    background: #191919;
}

.admin-form label {
    display: block;
    margin: 18px 0 8px;
    color: #ddd;
    font-weight: 600;
}

.admin-form label:first-child {
    margin-top: 0;
}

.admin-form input[type="text"],
.admin-form input[type="file"],
.admin-form textarea {
    width: 100%;
    padding: 13px 14px;
    border: 1px solid #363636;
    border-radius: 7px;
    color: #fff;
    background: #121212;
    font-family: inherit;
}

.admin-form textarea {
    resize: vertical;
}

.admin-form input:focus,
.admin-form textarea:focus {
    outline: none;
    border-color: #8ed143;
}

.admin-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 25px;
}

.btn-danger {
    border-color: #a53e3e;
    color: #fff;
    background: #8b3030;
}

.btn-danger:hover {
    border-color: #d85b5b;
    background: #a93d3d;
}

.admin-empty {
    padding: 45px 30px;
    border: 1px solid #303030;
    border-radius: 12px;
    background: #191919;
    text-align: center;
}

.admin-empty h2 {
    margin-top: 0;
}

.admin-empty p {
    margin-bottom: 0;
    color: #999;
}

@media (max-width: 1100px) {
    .admin-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 700px) {
    .admin-gallery-grid {
        grid-template-columns: 1fr;
    }

    .admin-form {
        padding: 20px;
    }
}
/* AÇÕES DO PAINEL */

.admin-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.admin-actions form {
    margin: 0;
}

.btn-small {
    display: inline-block;
    padding: 7px 12px;
    font-size: 13px;
}

.btn-secondary {
    border-color: #444;
    background: #333;
    color: #fff;
}

.btn-secondary:hover {
    background: #444;
}
.admin-product-preview {
    display: block;
    width: 240px;
    max-width: 100%;
    height: 150px;
    margin: 10px 0 15px;
    border: 1px solid #333;
    border-radius: 8px;
    object-fit: cover;
    background: #111;
}

.admin-product-image {
    width: 85px;
    height: 60px;
    border-radius: 7px;
    object-fit: cover;
    background: #111;
}
.ranking-kd {
    color: #8ccf4d;
    font-weight: 700;
}

.ranking-points {
    color: #ffffff;
    font-weight: 800;
}

.ranking-player-name {
    color: #ffffff;
}

.ranking-table-wrapper {
    overflow-x: auto;
}

.ranking-table {
    width: 100%;
    border-collapse: collapse;
}

.ranking-table th,
.ranking-table td {
    padding: 15px 14px;
    text-align: center;
    border-bottom: 1px solid #2b2b2b;
}

.ranking-table th {
    color: #8ccf4d;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.ranking-table tbody tr {
    transition: background 0.2s ease;
}

.ranking-table tbody tr:hover {
    background: rgba(140, 207, 77, 0.07);
}

@media (max-width: 768px) {

    .ranking-table {
        min-width: 760px;
    }

}