/* ==========================================================
   ÓLIMPO MU — personalizações do template
   Este arquivo carrega depois do app.css, então tudo aqui
   tem prioridade. Edite aqui sem precisar mexer no app.css.
   ========================================================== */

:root {
    --olimpo-gold-1: #fbe3a0;
    --olimpo-gold-2: #e7b453;
    --olimpo-gold-3: #b97a24;
    --olimpo-gold-line: rgba(214, 165, 78, .55);
    --olimpo-text: #ece6d8;
    --olimpo-bar-bg: rgba(8, 10, 18, .88);
    --olimpo-nav-height: 76px;
}

/* ---------- Barra ---------- */
header .navbar.navbar-olimpo {
    min-height: var(--olimpo-nav-height);
    padding: 0;
    background:
        linear-gradient(180deg, rgba(20, 24, 38, .35), rgba(0, 0, 0, .35)),
        var(--olimpo-bar-bg);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    border-top: 1px solid var(--olimpo-gold-line);
    border-bottom: 1px solid var(--olimpo-gold-line);
    box-shadow: 0 6px 24px rgba(0, 0, 0, .55), inset 0 -1px 0 rgba(0, 0, 0, .6);
    font-family: 'Montserrat', gisha, sans-serif;
}

header .navbar-olimpo > .container {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 1.5rem;
    min-height: var(--olimpo-nav-height);
}

/* ---------- Logo ---------- */
.navbar-olimpo-brand {
    display: flex;
    align-items: center;
    gap: .55rem;
    text-decoration: none;
    flex-shrink: 0;
}

.navbar-olimpo-brand img {
    width: 40px;
    height: 52px;
    filter: drop-shadow(0 0 6px rgba(231, 180, 83, .45));
}

.navbar-olimpo-brand-text {
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1;
    font-family: 'Cinzel', Georgia, serif;
}

.navbar-olimpo-brand-name,
.navbar-olimpo-brand-sub {
    background: linear-gradient(180deg, var(--olimpo-gold-1) 0%, var(--olimpo-gold-2) 55%, var(--olimpo-gold-3) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.navbar-olimpo-brand-name {
    font-size: 1.45rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.navbar-olimpo-brand-sub {
    position: relative;
    margin-top: .15rem;
    padding: 0 1.4rem;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: .12em;
}

.navbar-olimpo-brand-sub::before,
.navbar-olimpo-brand-sub::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 1.05rem;
    height: 1px;
    background: var(--olimpo-gold-2);
}

.navbar-olimpo-brand-sub::before { left: 0; }
.navbar-olimpo-brand-sub::after  { right: 0; }

/* ---------- Links ---------- */
header .navbar-olimpo .navbar-nav {
    align-items: center;
    gap: .25rem;
}

header .navbar-olimpo .nav-item {
    margin: 0;
}

header .navbar-olimpo .nav-link {
    position: relative;
    display: flex;
    align-items: center;
    height: var(--olimpo-nav-height);
    padding: 0 .9rem !important;
    color: var(--olimpo-text);
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    background: none !important;
    border-radius: 0 !important;
    transition: color .2s ease;
}

header .navbar-olimpo .nav-link::after {
    content: "";
    position: absolute;
    left: .9rem;
    right: .9rem;
    bottom: 14px;
    height: 2px;
    border: 0;
    margin: 0;
    background: linear-gradient(90deg, transparent, var(--olimpo-gold-2), transparent);
    opacity: 0;
    transform: scaleX(.4);
    transition: opacity .2s ease, transform .2s ease;
}

header .navbar-olimpo .nav-link:hover,
header .navbar-olimpo .nav-link:focus,
header .navbar-olimpo .nav-link.show {
    color: var(--olimpo-gold-1) !important;
}

header .navbar-olimpo .nav-link.active {
    color: var(--olimpo-gold-2) !important;
}

header .navbar-olimpo .nav-link.active::after,
header .navbar-olimpo .nav-link:hover::after {
    opacity: 1;
    transform: scaleX(1);
}

/* seta do "Mais" */
header .navbar-olimpo .nav-link.dropdown-toggle::after {
    position: static;
    width: 0;
    height: 0;
    margin-left: .4rem;
    opacity: 1;
    transform: none;
    background: none;
    border-top: .3em solid;
    border-right: .3em solid transparent;
    border-left: .3em solid transparent;
}

/* ---------- Botões da direita ---------- */
.navbar-olimpo-actions {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-left: auto;
    flex-shrink: 0;
}

.navbar-olimpo .navbar-auth {
    margin-left: 0;
}

.btn.btn-olimpo-outline,
.btn.btn-olimpo-gold,
.btn.btn-olimpo-lang {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    height: 40px;
    padding: 0 1.4rem;
    border-radius: 4px;
    font-family: 'Montserrat', gisha, sans-serif;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    white-space: nowrap;
    transition: all .2s ease;
}

.btn.btn-olimpo-outline {
    color: var(--olimpo-gold-1);
    background: rgba(0, 0, 0, .35);
    border: 1px solid var(--olimpo-gold-3);
}

.btn.btn-olimpo-outline:hover,
.btn.btn-olimpo-outline:focus,
.btn.btn-olimpo-outline.show {
    color: #fff;
    background: rgba(185, 122, 36, .18);
    border-color: var(--olimpo-gold-2);
    box-shadow: 0 0 12px rgba(231, 180, 83, .3);
}

.btn.btn-olimpo-gold {
    color: #2a1904;
    background: linear-gradient(180deg, #ffd889 0%, #e8a943 55%, #c4842a 100%);
    border: 1px solid #f6d48a;
    box-shadow: 0 0 14px rgba(231, 170, 70, .35), inset 0 1px 0 rgba(255, 255, 255, .45);
    padding: 0 1.6rem;
}

.btn.btn-olimpo-gold:hover,
.btn.btn-olimpo-gold:focus {
    color: #1a0f02;
    filter: brightness(1.08);
    box-shadow: 0 0 20px rgba(231, 170, 70, .55), inset 0 1px 0 rgba(255, 255, 255, .5);
}

.btn.btn-olimpo-lang {
    padding: 0 .65rem;
    color: var(--olimpo-text);
    background: rgba(0, 0, 0, .35);
    border: 1px solid var(--olimpo-gold-line);
}

.btn.btn-olimpo-lang:hover,
.btn.btn-olimpo-lang.show {
    color: #fff;
    border-color: var(--olimpo-gold-2);
}

.btn.btn-olimpo-lang img {
    width: 20px;
    height: auto;
}

.btn.btn-olimpo-lang .btn-olimpo-caret {
    width: 6px;
    height: 6px;
    margin: -3px 0 0 .1rem;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
}

.btn.btn-olimpo-icon {
    width: 40px;
    padding: 0;
}

.btn.btn-olimpo-icon .material-symbols-outlined {
    font-size: 20px;
}

/* ---------- Menus suspensos (Mais / idioma) ---------- */
header .navbar-olimpo .navbar-nav .dropdown-menu,
header .navbar-olimpo .navbar-language .dropdown-menu {
    margin-top: 0;
    padding: .4rem 0;
    background: rgba(10, 12, 20, .97);
    border: 1px solid var(--olimpo-gold-line);
    border-radius: 4px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .6);
}

header .navbar-olimpo .navbar-nav .dropdown-item,
header .navbar-olimpo .navbar-language .dropdown-item {
    color: var(--olimpo-text);
    font-size: .85rem;
    font-weight: 500;
    padding: .5rem 1.1rem;
}

header .navbar-olimpo .navbar-nav .dropdown-item:hover,
header .navbar-olimpo .navbar-language .dropdown-item:hover {
    color: var(--olimpo-gold-1);
    background: rgba(185, 122, 36, .15);
}

header .navbar-olimpo .navbar-language .dropdown-item img {
    width: 20px;
    margin-right: .4rem;
}

/* espaço abaixo da barra fixa */
header .header {
    margin-top: var(--olimpo-nav-height);
}

/* ---------- Telas menores ---------- */
@media (max-width: 1199.98px) {
    header .navbar-olimpo > .container { gap: 1rem; }
    header .navbar-olimpo .nav-link { padding: 0 .6rem !important; }
    header .navbar-olimpo .nav-link::after { left: .6rem; right: .6rem; }
    .btn.btn-olimpo-outline, .btn.btn-olimpo-gold { padding: 0 1rem; }
}

/* entre 992px e 1199px o espaço é curto: menu mais compacto */
@media (min-width: 992px) and (max-width: 1199.98px) {
    header .navbar-olimpo > .container { gap: .75rem; }
    .navbar-olimpo-brand-name { font-size: 1.2rem; }
    header .navbar-olimpo .nav-link { padding: 0 .45rem !important; font-size: .72rem; }
    header .navbar-olimpo .nav-link::after { left: .45rem; right: .45rem; }
    .navbar-olimpo-actions { gap: .5rem; }
    .btn.btn-olimpo-outline, .btn.btn-olimpo-gold { padding: 0 .8rem; font-size: .72rem; }
    .btn.btn-olimpo-lang > span:not(.btn-olimpo-caret) { display: none; }
}

@media (max-width: 991.98px) {
    header .navbar-olimpo .navbar-collapse {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: rgba(8, 10, 18, .97);
        border-bottom: 1px solid var(--olimpo-gold-line);
        z-index: 100;
    }

    header .navbar-olimpo .navbar-nav {
        align-items: stretch;
        padding: .5rem 1rem 1rem;
        gap: 0;
    }

    header .navbar-olimpo .nav-link {
        height: auto;
        padding: .75rem .25rem !important;
        color: var(--olimpo-text);
        border-bottom: 1px solid rgba(214, 165, 78, .15);
    }

    header .navbar-olimpo .nav-link::after {
        display: none;
    }

    header .navbar-olimpo .nav-link.dropdown-toggle::after {
        display: inline-block;
    }

    header .navbar-olimpo .navbar-toggle {
        display: inline-flex !important;
    }
}

@media (max-width: 575.98px) {
    :root { --olimpo-nav-height: 64px; }
    .navbar-olimpo-brand img { width: 32px; height: 42px; }
    .navbar-olimpo-brand-name { font-size: 1.1rem; }
    .navbar-olimpo-brand-sub { font-size: .85rem; }
    .navbar-olimpo-actions { gap: .4rem; }
    .btn.btn-olimpo-outline { padding: 0 .75rem; }
    .btn.btn-olimpo-lang > span:not(.btn-olimpo-caret) { display: none; }
}

/* ==========================================================
   BANNER PRINCIPAL (hero) — só aparece na página inicial
   ========================================================== */
.olimpo-page-spacer {
    height: calc(var(--olimpo-nav-height) + 1rem);
}

.olimpo-hero {
    position: relative;
    margin-top: var(--olimpo-nav-height);
    padding: 3.5rem 0 3rem;
    min-height: 600px;
    display: flex;
    align-items: center;
    overflow: hidden;
}

/* escurece a esquerda para o texto ficar legível */
.olimpo-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(4, 7, 16, .88) 0%, rgba(4, 7, 16, .7) 35%, rgba(4, 7, 16, .15) 62%, transparent 75%),
        linear-gradient(180deg, transparent 75%, rgba(4, 7, 16, .55) 100%);
    pointer-events: none;
}

.olimpo-hero > .container {
    position: relative;
    z-index: 1;
}

.olimpo-hero-content {
    max-width: 640px;
    color: var(--olimpo-text);
    font-family: 'Montserrat', gisha, sans-serif;
}

.olimpo-hero-tagline {
    display: flex;
    flex-wrap: wrap;
    gap: .2rem .45rem;
    margin: 0 0 .5rem;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #d9d3c4;
}

.olimpo-hero-dot {
    color: var(--olimpo-gold-2);
}

/* ---------- título OLIMPO / MU ---------- */
.olimpo-hero-title {
    display: grid;
    grid-template-columns: auto auto auto;
    justify-content: start;
    align-items: end;
    column-gap: .4rem;
    margin: 0 0 1rem;
    font-family: 'Cinzel', Georgia, serif;
    line-height: .95;
}

.olimpo-hero-title-main,
.olimpo-hero-title-sub {
    background: linear-gradient(180deg, #fff3c9 0%, #f0c768 38%, #d69a3a 62%, #a8701f 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    filter: drop-shadow(0 3px 2px rgba(0, 0, 0, .7)) drop-shadow(0 0 18px rgba(231, 170, 70, .25));
}

.olimpo-hero-title-main {
    font-size: clamp(3.4rem, 7vw, 6.4rem);
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.olimpo-hero-title-sub {
    grid-column: 1 / -1;
    justify-self: center;
    position: relative;
    margin-top: .1rem;
    padding: 0 7.5rem;
    font-size: clamp(2.4rem, 4.6vw, 4.2rem);
    font-weight: 800;
    letter-spacing: .06em;
}

/* linhas douradas dos lados do MU */
.olimpo-hero-title-sub::before,
.olimpo-hero-title-sub::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 6rem;
    height: 2px;
    background:
        radial-gradient(circle, #f3cd7a 0 3px, transparent 3.5px) right center / 8px 8px no-repeat,
        linear-gradient(90deg, transparent, #d9a24a);
}

.olimpo-hero-title-sub::before { left: 0; }
.olimpo-hero-title-sub::after {
    right: 0;
    transform: scaleX(-1);
}

.olimpo-hero-laurel {
    width: clamp(48px, 6vw, 78px);
    height: auto;
    align-self: center;
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .6));
}

.olimpo-hero-laurel-right {
    transform: scaleX(-1);
}

/* ---------- textos ---------- */
.olimpo-hero-headline {
    margin: 0 0 .6rem;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.6rem, 2.6vw, 2.3rem);
    font-weight: 700;
    color: #fff;
    text-shadow: 0 2px 8px rgba(0, 0, 0, .7);
}

.olimpo-hero-text {
    margin: 0 0 1.8rem;
    font-size: 1.05rem;
    line-height: 1.55;
    color: #e4e0d6;
    text-shadow: 0 1px 4px rgba(0, 0, 0, .7);
}

/* ---------- botões ---------- */
.olimpo-hero-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 2.4rem;
}

.btn.btn-olimpo-lg {
    height: 56px;
    min-width: 230px;
    padding: 0 1.8rem;
    font-size: .95rem;
    gap: .7rem;
}

.olimpo-icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

.btn.btn-olimpo-blue {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    font-family: 'Montserrat', gisha, sans-serif;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    white-space: nowrap;
    color: #fff;
    background: linear-gradient(180deg, #1c2f6e 0%, #12204f 100%);
    border: 1px solid #3a5bb8;
    box-shadow: 0 0 14px rgba(40, 80, 200, .3), inset 0 1px 0 rgba(255, 255, 255, .12);
    transition: all .2s ease;
}

.btn.btn-olimpo-blue:hover,
.btn.btn-olimpo-blue:focus {
    color: #fff;
    border-color: #6b8cf0;
    box-shadow: 0 0 22px rgba(60, 110, 240, .5), inset 0 1px 0 rgba(255, 255, 255, .15);
    filter: brightness(1.1);
}

/* ---------- vantagens ---------- */
.olimpo-hero-features {
    display: grid;
    grid-template-columns: repeat(4, auto);
    gap: 1rem 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.olimpo-hero-features li {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: 0 1rem;
    border-left: 1px solid rgba(214, 165, 78, .25);
}

.olimpo-hero-features li:first-child {
    padding-left: 0;
    border-left: 0;
}

.olimpo-hero-feature-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: var(--olimpo-gold-1);
    background: radial-gradient(circle at 50% 35%, rgba(231, 180, 83, .25), rgba(0, 0, 0, .6));
    border: 1px solid var(--olimpo-gold-3);
    box-shadow: 0 0 10px rgba(231, 170, 70, .25);
}

.olimpo-hero-feature-icon .olimpo-icon {
    width: 19px;
    height: 19px;
}

.olimpo-hero-feature-text {
    font-size: .74rem;
    line-height: 1.35;
    color: #d9d3c4;
    white-space: nowrap;
}

/* ---------- responsivo ---------- */
@media (max-width: 1199.98px) {
    .olimpo-hero-features { grid-template-columns: repeat(2, auto); justify-content: start; }
    .olimpo-hero-features li:nth-child(3) { padding-left: 0; border-left: 0; }
}

@media (max-width: 767.98px) {
    .olimpo-hero {
        min-height: 0;
        padding: 2.5rem 0 2rem;
    }

    .olimpo-hero::before {
        background: linear-gradient(180deg, rgba(4, 7, 16, .65) 0%, rgba(4, 7, 16, .85) 100%);
    }

    .olimpo-hero-content { text-align: center; margin: 0 auto; }
    .olimpo-hero-tagline { justify-content: center; font-size: .62rem; }
    .olimpo-hero-title { justify-content: center; }
    .olimpo-hero-title-sub { padding: 0 4.5rem; }
    .olimpo-hero-title-sub::before, .olimpo-hero-title-sub::after { width: 3.5rem; }
    .olimpo-hero-text { font-size: .95rem; }
    .olimpo-hero-buttons { justify-content: center; }
    .btn.btn-olimpo-lg { width: 100%; min-width: 0; height: 52px; }
    .olimpo-hero-features { grid-template-columns: 1fr 1fr; text-align: left; }
    .olimpo-hero-features li { padding: 0 .5rem; }
    .olimpo-hero-features li:nth-child(odd) { padding-left: 0; border-left: 0; }
}

/* ==========================================================
   PAINÉIS (Status do Reino, Notícias, Equipe...)
   ========================================================== */
.olimpo-panel {
    --olimpo-corner: #e2ad4c;
    position: relative;
    padding: 1.1rem 1.25rem 1.25rem;
    color: var(--olimpo-text);
    font-family: 'Montserrat', gisha, sans-serif;
    background:
        radial-gradient(120% 60% at 50% 0%, rgba(40, 60, 120, .22), transparent 70%),
        linear-gradient(180deg, rgba(13, 18, 34, .94) 0%, rgba(6, 9, 18, .96) 100%);
    border: 1px solid rgba(201, 151, 63, .55);
    border-radius: 6px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .6), inset 0 0 0 1px rgba(0, 0, 0, .6);
}

/* borda interna fina */
.olimpo-panel::before {
    content: "";
    position: absolute;
    inset: 5px;
    border: 1px solid rgba(201, 151, 63, .16);
    border-radius: 4px;
    pointer-events: none;
}

/* cantos dourados */
.olimpo-panel::after {
    content: "";
    position: absolute;
    inset: -2px;
    pointer-events: none;
    background:
        linear-gradient(var(--olimpo-corner), var(--olimpo-corner)) top left / 22px 2px no-repeat,
        linear-gradient(var(--olimpo-corner), var(--olimpo-corner)) top left / 2px 22px no-repeat,
        linear-gradient(var(--olimpo-corner), var(--olimpo-corner)) top right / 22px 2px no-repeat,
        linear-gradient(var(--olimpo-corner), var(--olimpo-corner)) top right / 2px 22px no-repeat,
        linear-gradient(var(--olimpo-corner), var(--olimpo-corner)) bottom left / 22px 2px no-repeat,
        linear-gradient(var(--olimpo-corner), var(--olimpo-corner)) bottom left / 2px 22px no-repeat,
        linear-gradient(var(--olimpo-corner), var(--olimpo-corner)) bottom right / 22px 2px no-repeat,
        linear-gradient(var(--olimpo-corner), var(--olimpo-corner)) bottom right / 2px 22px no-repeat;
    filter: drop-shadow(0 0 3px rgba(226, 173, 76, .6));
}

.olimpo-panel > * {
    position: relative;
    z-index: 1;
}

.olimpo-panel a {
    color: var(--olimpo-gold-1);
}

.olimpo-panel a:hover {
    color: #fff;
}

.olimpo-panel-title {
    margin: 0 0 .9rem;
    padding-bottom: .7rem;
    text-align: center;
    font-family: 'Cinzel', Georgia, serif;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
    background: linear-gradient(180deg, var(--olimpo-gold-1), var(--olimpo-gold-2) 60%, var(--olimpo-gold-3));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    border-bottom: 0;
    position: relative;
}

/* linha dourada abaixo do título */
.olimpo-panel-title::after {
    content: "";
    position: absolute;
    left: 10%;
    right: 10%;
    bottom: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(226, 173, 76, .8), transparent);
}

.olimpo-panel-body {
    font-size: .85rem;
}

.olimpo-panel-more {
    display: block;
    margin-top: .8rem;
    text-align: right;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
}

/* ---------- lista de status ---------- */
.olimpo-status {
    list-style: none;
    margin: 0;
    padding: 0;
}

.olimpo-status li {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .5rem .2rem;
    border-bottom: 1px solid rgba(255, 255, 255, .07);
    font-size: .78rem;
}

.olimpo-status li:last-child {
    border-bottom: 0;
}

.olimpo-status li > .olimpo-icon {
    width: 18px;
    height: 18px;
    color: var(--olimpo-gold-2);
    filter: drop-shadow(0 0 3px rgba(226, 173, 76, .45));
}

.olimpo-status-label {
    flex: 1;
    min-width: 0;
    font-weight: 600;
    letter-spacing: .03em;
    text-transform: uppercase;
    color: #ece6d8;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.olimpo-status-name {
    text-transform: none;
}

.olimpo-status-value {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: 700;
    color: #f3efe6;
    white-space: nowrap;
}

.olimpo-status-value a {
    color: inherit !important;
    text-decoration: none;
}

.olimpo-status-value.is-green { color: #3ee07f; }
.olimpo-status-value.is-red   { color: #ff5c5c; }

.olimpo-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 6px currentColor;
}

.olimpo-sidebar {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

/* ---------- notícias ---------- */
.olimpo-news {
    display: flex;
    flex-direction: column;
}

.olimpo-panel-header {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
}

.olimpo-panel-header .olimpo-panel-title {
    flex: 1;
    margin: 0;
}

.olimpo-btn-plus {
    position: absolute;
    right: 0;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 1px solid var(--olimpo-gold-3);
    border-radius: 4px;
    background: rgba(0, 0, 0, .35);
    color: var(--olimpo-gold-1) !important;
    transition: all .2s ease;
}

.olimpo-btn-plus:hover {
    border-color: var(--olimpo-gold-2);
    box-shadow: 0 0 10px rgba(231, 180, 83, .35);
}

.olimpo-btn-plus .olimpo-icon {
    width: 18px;
    height: 18px;
}

.olimpo-news .posts-post {
    padding: .9rem 0;
    border-bottom: 1px solid rgba(214, 165, 78, .15);
}

.olimpo-news .posts-post:first-child { padding-top: 0; }
.olimpo-news .posts-post:last-child  { border-bottom: 0; }

.olimpo-news .posts-image {
    border: 1px solid rgba(214, 165, 78, .35);
    border-radius: 4px;
}

.olimpo-news .posts-title,
.olimpo-news .posts-title a {
    color: var(--olimpo-gold-1);
    font-weight: 700;
    text-decoration: none;
}

.olimpo-news .posts-body {
    color: #cfc9bb;
    font-size: .9rem;
}

.olimpo-news .text-muted,
.olimpo-news small {
    color: #9c968a !important;
}

.olimpo-news .alert {
    background: rgba(255, 255, 255, .04);
    border-color: rgba(214, 165, 78, .25);
    color: var(--olimpo-text);
}

/* Computador: notícias ficam lado a lado só com o "Status do Reino",
   com a mesma altura dele. Se tiver muita notícia, rola dentro do painel.
   Os outros painéis da lateral (Equipe, WebShop...) descem por baixo. */
@media (min-width: 992px) {
    .olimpo-home-top {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 25%);
        gap: 1.5rem;
        align-items: start;
        margin: 0;
    }

    .olimpo-home-top > [class*="col-"] {
        width: auto;
        max-width: none;
        margin: 0;
        padding: 0;
    }

    .olimpo-home-top > .olimpo-sidebar-col,
    .olimpo-home-top .olimpo-sidebar {
        display: contents;
    }

    .olimpo-home-top .olimpo-sidebar > * {
        grid-column: 2;
    }

    .olimpo-home-top .olimpo-sidebar > :first-child {
        grid-row: 1;
    }

    .olimpo-home-top .olimpo-sidebar > .olimpo-sidebar-rest {
        grid-row: 2;
    }

    /* "Recursos" fica embaixo das notícias, ao lado de Equipe/WebShop */
    .olimpo-home-top > .olimpo-recursos-col {
        grid-column: 1;
        grid-row: 2;
    }

    .olimpo-home-top > .olimpo-news-col {
        grid-column: 1;
        grid-row: 1;
        align-self: stretch;
        position: relative;
        min-height: 300px;
    }

    .olimpo-home-top .olimpo-news {
        position: absolute;
        inset: 0;
    }

    .olimpo-news-list {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        padding-right: .5rem;
        scrollbar-width: thin;
        scrollbar-color: rgba(214, 165, 78, .6) transparent;
    }

    .olimpo-news-list::-webkit-scrollbar { width: 6px; }
    .olimpo-news-list::-webkit-scrollbar-thumb {
        background: rgba(214, 165, 78, .6);
        border-radius: 3px;
    }
}

.olimpo-sidebar-rest {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.olimpo-sidebar-rest:empty {
    display: none;
}

/* ==========================================================
   RECURSOS QUE FAZEM A DIFERENÇA
   ========================================================== */
.olimpo-recursos {
    padding: 1.1rem 1.4rem 1.5rem;
}

.olimpo-recursos-title {
    font-size: 1.35rem;
    margin-bottom: 1.2rem;
}

.olimpo-recursos-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.olimpo-recurso {
    display: flex;
    align-items: flex-start;
    gap: .9rem;
    padding: 1.1rem 1rem;
    background: linear-gradient(180deg, rgba(20, 26, 46, .75), rgba(8, 11, 22, .85));
    border: 1px solid rgba(201, 151, 63, .3);
    border-radius: 6px;
    box-shadow: inset 0 0 20px rgba(0, 0, 0, .45);
    transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.olimpo-recurso:hover {
    border-color: rgba(226, 173, 76, .75);
    transform: translateY(-2px);
    box-shadow: inset 0 0 20px rgba(0, 0, 0, .45), 0 0 16px rgba(226, 173, 76, .18);
}

.olimpo-recurso-icon {
    flex-shrink: 0;
    width: 58px;
    height: 58px;
    filter: drop-shadow(0 0 6px rgba(234, 181, 82, .45)) drop-shadow(0 2px 2px rgba(0, 0, 0, .7));
}

.olimpo-recurso-title {
    margin: 0 0 .4rem;
    font-family: 'Cinzel', Georgia, serif;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .02em;
    text-transform: uppercase;
    background: linear-gradient(180deg, var(--olimpo-gold-1), var(--olimpo-gold-2) 60%, var(--olimpo-gold-3));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.olimpo-recurso-text {
    margin: 0;
    font-size: .8rem;
    line-height: 1.45;
    color: #cfc9bb;
}

@media (max-width: 1199.98px) {
    .olimpo-recursos-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575.98px) {
    .olimpo-recursos-grid { grid-template-columns: 1fr; }
    .olimpo-recursos-title { font-size: 1.1rem; }
}

/* ==========================================================
   DESTAQUE DA SEMANA
   ========================================================== */
.olimpo-destaque {
    padding-bottom: 1rem;
}

.olimpo-destaque .olimpo-panel-title {
    margin-bottom: .8rem;
}

.olimpo-destaque-body {
    display: grid;
    grid-template-columns: 44% 1fr;
    gap: .8rem;
    align-items: center;
}

.olimpo-destaque-arte img,
.olimpo-destaque-vazio img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 4px;
    /* esfuma as bordas da arte no fundo do painel */
    -webkit-mask-image: radial-gradient(ellipse 75% 72% at 50% 48%, #000 60%, transparent 100%);
    mask-image: radial-gradient(ellipse 75% 72% at 50% 48%, #000 60%, transparent 100%);
}

.olimpo-destaque-info {
    min-width: 0;
}

.olimpo-destaque-status {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.olimpo-destaque-status.is-on  { color: #3ee07f; }
.olimpo-destaque-status.is-off { color: #ff5c5c; }

.olimpo-destaque-nome {
    margin-top: .3rem;
    font-family: 'Cinzel', Georgia, serif;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.olimpo-destaque-nome,
.olimpo-destaque-nome a {
    background: linear-gradient(180deg, var(--olimpo-gold-1), var(--olimpo-gold-2) 60%, var(--olimpo-gold-3));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent !important;
    text-decoration: none;
}

.olimpo-destaque-classe {
    margin-top: .15rem;
    font-size: .75rem;
    color: #cfc9bb;
}

.olimpo-destaque-stats {
    list-style: none;
    margin: .7rem 0 0;
    padding: 0;
}

.olimpo-destaque-stats li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: .38rem 0;
    border-top: 1px solid rgba(255, 255, 255, .07);
    font-size: .76rem;
}

.olimpo-destaque-stats span {
    color: #e6e0d2;
}

.olimpo-destaque-stats strong {
    color: var(--olimpo-gold-1);
    font-weight: 700;
}

.olimpo-destaque-semana {
    margin-top: .7rem;
    padding-top: .5rem;
    border-top: 1px solid rgba(214, 165, 78, .2);
    text-align: center;
    font-size: .68rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #9c968a;
}

.olimpo-destaque-vazio {
    text-align: center;
}

.olimpo-destaque-vazio img {
    max-width: 140px;
    margin: 0 auto .6rem;
}

.olimpo-destaque-vazio p {
    margin: 0;
    font-size: .8rem;
    color: #cfc9bb;
}

/* ==========================================================
   HALL DA FAMA — O PANTEÃO DOS DEUSES
   ========================================================== */
.olimpo-hallfame {
    margin-top: 1.5rem;
}

.olimpo-panteao {
    container-type: inline-size;
    padding: 1.1rem 1.4rem 1.4rem;
}

.olimpo-panteao-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .8rem 1.5rem;
    margin-bottom: 1rem;
}

.olimpo-panteao-title {
    margin: 0;
    padding: 0;
    text-align: left;
    font-size: 1.35rem;
}

.olimpo-panteao-title::after {
    display: none;
}

/* botões dos rankings */
.olimpo-panteao-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.olimpo-panteao-tab {
    height: 32px;
    padding: 0 .9rem;
    border: 1px solid rgba(201, 151, 63, .55);
    border-radius: 4px;
    background: rgba(0, 0, 0, .35);
    color: var(--olimpo-text);
    font-family: 'Montserrat', gisha, sans-serif;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all .2s ease;
}

.olimpo-panteao-tab:hover {
    color: var(--olimpo-gold-1);
    border-color: var(--olimpo-gold-2);
}

.olimpo-panteao-tab.active {
    color: #2a1904;
    background: linear-gradient(180deg, #ffd889 0%, #e8a943 55%, #c4842a 100%);
    border-color: #f6d48a;
    box-shadow: 0 0 12px rgba(231, 170, 70, .35);
}

/* corpo: pódio + tabela */
.olimpo-panteao-body {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@container (min-width: 1100px) {
    .olimpo-panteao-body {
        grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
        align-items: center;
    }
}

/* ---------- pódio ---------- */
.olimpo-podio {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: .6rem;
    max-width: 860px;
    width: 100%;
    margin: 0 auto;
}

.olimpo-podio-card {
    flex: 0 0 31%;
    min-width: 0;
}

.olimpo-podio-card.is-1 {
    flex-basis: 38%;
}

.olimpo-podio-frame {
    position: relative;
}

.olimpo-podio-art {
    display: block;
    width: 100%;
    height: auto;
    filter: drop-shadow(0 6px 14px rgba(0, 0, 0, .6));
}



/* número dentro da medalha */
/* fica exatamente em cima do círculo escuro da medalha */
.olimpo-podio-pos {
    position: absolute;
    left: 50%;
    top: 16.8%;
    width: 21%;
    aspect-ratio: 1 / 1;
    transform: translate(-50%, -50%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: .06em;
    font-family: 'Cinzel', Georgia, serif;
    font-weight: 800;
    font-size: clamp(1rem, 2.6cqi, 1.9rem);
    line-height: 1;
    text-shadow: 0 2px 4px rgba(0, 0, 0, .9);
}

.olimpo-podio-card.is-1 .olimpo-podio-pos { color: #ffe39a; font-size: clamp(1.2rem, 3.4cqi, 2.4rem); }
.olimpo-podio-card.is-2 .olimpo-podio-pos { color: #e4ecf7; }
.olimpo-podio-card.is-3 .olimpo-podio-pos { color: #f4b98a; }

/* nome / classe / pontos em cima da arte */
.olimpo-podio-info {
    position: absolute;
    left: 8%;
    right: 8%;
    bottom: 8%;
    padding: 1.2rem .3rem .1rem;
    text-align: center;
    background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, .6) 40%, rgba(0, 0, 0, .78) 100%);
    border-radius: 0 0 4px 4px;
}

.olimpo-podio-mark {
    display: flex;
    justify-content: center;
    margin-bottom: .2rem;
}

.olimpo-podio-name {
    font-family: 'Cinzel', Georgia, serif;
    font-weight: 700;
    font-size: clamp(.8rem, 1.9cqi, 1.15rem);
    line-height: 1.15;
    color: #fff;
    text-shadow: 0 2px 4px rgba(0, 0, 0, .9);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.olimpo-podio-name a {
    color: inherit !important;
    text-decoration: none;
}

.olimpo-podio-class {
    font-size: clamp(.6rem, 1.3cqi, .75rem);
    color: #e6e0d2;
    text-shadow: 0 1px 3px rgba(0, 0, 0, .9);
}

.olimpo-podio-score {
    margin-top: .1rem;
    font-family: 'Cinzel', Georgia, serif;
    font-weight: 800;
    font-size: clamp(.95rem, 2.4cqi, 1.5rem);
    line-height: 1.1;
    background: linear-gradient(180deg, #fff3c9, #f0c768 50%, #c98d2f);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    filter: drop-shadow(0 2px 2px rgba(0, 0, 0, .8));
}

.olimpo-podio-card.is-1 .olimpo-podio-name { font-size: clamp(.9rem, 2.3cqi, 1.35rem); }
.olimpo-podio-card.is-1 .olimpo-podio-score { font-size: clamp(1.1rem, 2.9cqi, 1.8rem); }

/* ---------- tabela 4º em diante ---------- */
.olimpo-panteao-lista {
    min-width: 0;
}

.olimpo-panteao-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .78rem;
    color: #e6e0d2;
    background: rgba(8, 11, 22, .55);
    border: 1px solid rgba(201, 151, 63, .25);
}

.olimpo-panteao-table th {
    padding: .55rem .6rem;
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #b9b3a5;
    background: rgba(255, 255, 255, .04);
    border-bottom: 1px solid rgba(201, 151, 63, .3);
    white-space: nowrap;
}

.olimpo-panteao-table td {
    padding: .45rem .6rem;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
    white-space: nowrap;
}

.olimpo-panteao-table tbody tr:last-child td {
    border-bottom: 0;
}

.olimpo-panteao-table tbody tr:hover td {
    background: rgba(201, 151, 63, .08);
}

.olimpo-panteao-rank {
    width: 2.2rem;
    color: var(--olimpo-gold-2);
    font-weight: 700;
}

.olimpo-panteao-nome {
    max-width: 0;
    width: 40%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.olimpo-panteao-nome a {
    color: #f3efe6 !important;
    text-decoration: none;
}

.olimpo-panteao-nome a:hover {
    color: var(--olimpo-gold-1) !important;
}

.olimpo-panteao-nome canvas,
.olimpo-panteao-nome img {
    vertical-align: middle;
    margin-right: .3rem;
}

.olimpo-panteao-score {
    font-weight: 700;
    color: var(--olimpo-gold-1);
}

.olimpo-panteao-vazio {
    padding: 1rem;
    text-align: center;
    color: #9c968a;
    font-size: .8rem;
}

.olimpo-panteao-mais {
    display: block;
    margin-top: .8rem;
    text-align: center;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
}

@media (max-width: 575.98px) {
    .olimpo-panteao { padding: 1rem .8rem 1.2rem; }
    .olimpo-panteao-header { justify-content: center; }
    .olimpo-panteao-title { text-align: center; width: 100%; font-size: 1.1rem; }
    .olimpo-panteao-tabs { justify-content: center; }
    .olimpo-panteao-table { font-size: .72rem; }
}

/* abas do Panteão */
.olimpo-panteao-pane { display: none; }
.olimpo-panteao-pane.is-active { display: block; animation: olimpoFade .25s ease; }
@keyframes olimpoFade { from { opacity: 0; } to { opacity: 1; } }

/* ==========================================================
   EVENTOS / INVASÕES (lateral)
   ========================================================== */
.olimpo-eventos {
    padding: 1rem 1rem 1.1rem;
}

.olimpo-eventos-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .7rem;
    padding-bottom: .6rem;
    border-bottom: 1px solid rgba(214, 165, 78, .3);
}

.olimpo-eventos-title {
    margin: 0;
    padding: 0;
    text-align: left;
    font-size: 1rem;
    line-height: 1.15;
}

.olimpo-eventos-title::after {
    display: none;
}

.olimpo-eventos-actions {
    display: flex;
    gap: .35rem;
    flex-shrink: 0;
}

.olimpo-eventos-btn {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    height: 28px;
    padding: 0 .55rem;
    border: 1px solid rgba(201, 151, 63, .55);
    border-radius: 4px;
    background: rgba(0, 0, 0, .35);
    color: var(--olimpo-gold-1);
    font: 700 .65rem 'Montserrat', gisha, sans-serif;
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all .2s ease;
}

.olimpo-eventos-btn:hover {
    border-color: var(--olimpo-gold-2);
    box-shadow: 0 0 10px rgba(231, 180, 83, .3);
}

.olimpo-eventos-btn svg {
    width: 14px;
    height: 14px;
}

.olimpo-eventos-btn.is-spin svg {
    animation: oevGira .6s linear;
}

@keyframes oevGira { to { transform: rotate(360deg); } }

.olimpo-eventos-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.oev-row {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .38rem .25rem;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
    font-size: .74rem;
    transition: background .2s ease;
}

.oev-row:last-child {
    border-bottom: 0;
}

.oev-row.is-active {
    background: linear-gradient(90deg, color-mix(in srgb, var(--oev-cor) 18%, transparent), transparent 80%);
    border-radius: 3px;
}

.oev-badge {
    flex-shrink: 0;
    min-width: 52px;
    padding: .18rem .35rem;
    border-radius: 3px;
    color: #fff;
    font-size: .56rem;
    font-weight: 800;
    letter-spacing: .04em;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
}

.oev-name {
    flex: 1;
    min-width: 0;
    font-weight: 600;
    color: #ece6d8;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.oev-row.is-active .oev-name {
    color: #fff;
}

.oev-time {
    flex-shrink: 0;
    min-width: 54px;
    text-align: right;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: #b9b3a5;
}

.oev-row.is-active .oev-time {
    color: var(--oev-cor);
    text-shadow: 0 0 8px var(--oev-cor);
}

.oev-dot {
    flex-shrink: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #ef4444;
    box-shadow: 0 0 5px rgba(239, 68, 68, .6);
}

.oev-row.is-active .oev-dot {
    background: #3ee07f;
    box-shadow: 0 0 7px rgba(62, 224, 127, .9);
    animation: oevPisca 1s infinite;
}

@keyframes oevPisca { 50% { opacity: .35; } }

.olimpo-eventos-vazio {
    padding: .8rem;
    text-align: center;
    color: #9c968a;
    font-size: .78rem;
    list-style: none;
}

/* ---------- janela de avisos ---------- */
#oev-modal {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
}

#oev-modal.is-open {
    opacity: 1;
    pointer-events: auto;
}

.oev-modal-bg {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .7);
}

.oev-modal-box {
    width: 380px;
    max-width: 100%;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    transform: scale(.94);
    transition: transform .2s ease;
}

#oev-modal.is-open .oev-modal-box {
    transform: scale(1);
}

.oev-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .6rem;
}

.oev-modal-head .olimpo-panel-title {
    margin: 0;
    padding: 0;
    font-size: 1.05rem;
}

.oev-modal-head .olimpo-panel-title::after { display: none; }

.oev-modal-x {
    background: none;
    border: 0;
    color: #9c968a;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
}

.oev-modal-x:hover { color: #fff; }

.oev-perm {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin-bottom: .6rem;
    padding: .6rem .7rem;
    border: 1px solid rgba(226, 173, 76, .35);
    border-radius: 4px;
    background: rgba(226, 173, 76, .08);
    font-size: .76rem;
    color: var(--olimpo-gold-1);
}

.oev-perm .is-ok { color: #3ee07f; }
.oev-perm .is-erro { color: #ff7b7b; }

.btn.oev-perm-btn {
    height: 30px;
    padding: 0 .8rem;
    font-size: .68rem;
    flex-shrink: 0;
}

.oev-modal-bulk {
    display: flex;
    gap: .5rem;
    margin-bottom: .5rem;
}

.oev-modal-bulk .btn {
    flex: 1;
    height: 32px;
    padding: 0 .5rem;
    font-size: .66rem;
}

.oev-modal-body {
    overflow-y: auto;
    min-height: 0;
    scrollbar-width: thin;
    scrollbar-color: rgba(214, 165, 78, .6) transparent;
}

.oev-modal-row {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .45rem .2rem;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
}

.oev-modal-row:last-child { border-bottom: 0; }

.oev-modal-name {
    flex: 1;
    min-width: 0;
    font-size: .8rem;
    color: #ece6d8;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.oev-switch {
    position: relative;
    flex-shrink: 0;
    width: 36px;
    height: 20px;
    margin: 0;
}

.oev-switch input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.oev-switch span {
    position: absolute;
    inset: 0;
    border-radius: 20px;
    background: #2a2f3d;
    border: 1px solid rgba(214, 165, 78, .3);
    cursor: pointer;
    transition: background .2s ease;
}

.oev-switch span::before {
    content: "";
    position: absolute;
    left: 2px;
    top: 2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #fff;
    transition: transform .2s ease;
}

.oev-switch input:checked + span {
    background: linear-gradient(180deg, #ffd889, #c4842a);
}

.oev-switch input:checked + span::before {
    transform: translateX(16px);
}

.oev-switch input:focus-visible + span {
    outline: 2px solid var(--olimpo-gold-2);
    outline-offset: 2px;
}

/* ==========================================================
   TRONO DO OLIMPO (Castle Siege) — arte com os textos por cima
   ========================================================== */
.olimpo-trono {
    position: relative;
    container-type: inline-size;
    font-family: 'Montserrat', gisha, sans-serif;
    filter: drop-shadow(0 10px 22px rgba(0, 0, 0, .55));
}

.olimpo-trono-bg {
    display: block;
    width: 100%;
    height: auto;
}

.olimpo-trono-titulo {
    position: absolute;
    left: 8%;
    right: 8%;
    top: 4.5%;
    height: 12.5%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Cinzel', Georgia, serif;
    font-weight: 700;
    font-size: 5.6cqw;
    letter-spacing: .03em;
    text-transform: uppercase;
    background: linear-gradient(180deg, var(--olimpo-gold-1), var(--olimpo-gold-2) 60%, var(--olimpo-gold-3));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    white-space: nowrap;
}

/* área à direita do emblema, alinhada às 3 linhas azuis da arte */
.olimpo-trono-info {
    position: absolute;
    left: 45%;
    right: 9.5%;
    top: 18.5%;
    bottom: 3%;
}

.olimpo-trono-linha {
    position: absolute;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .15em;
    min-width: 0;
}

/* faixas entre as linhas da arte (38%, 58.6% e 76.8% da altura) */
.olimpo-trono-linha:nth-child(1) { top: 0;     height: 24.5%; }
.olimpo-trono-linha:nth-child(2) { top: 25.6%; height: 25.3%; }
.olimpo-trono-linha:nth-child(3) { top: 51.2%; height: 22.6%; }

.olimpo-trono-label {
    font-size: 3.1cqw;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--olimpo-gold-2);
    line-height: 1.1;
}

.olimpo-trono-valor {
    display: flex;
    align-items: center;
    gap: .35em;
    min-width: 0;
    font-size: 4.3cqw;
    font-weight: 600;
    color: #f3efe6;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.olimpo-trono-valor a {
    color: inherit !important;
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
}

.olimpo-trono-valor a:hover {
    color: var(--olimpo-gold-1) !important;
}

.olimpo-trono-vazio {
    color: #9c968a;
}

.olimpo-trono-mark {
    display: inline-flex;
    flex-shrink: 0;
}

.olimpo-trono-mark canvas,
.olimpo-trono-mark img {
    width: 1.1em !important;
    height: 1.1em !important;
}

.olimpo-trono-ico {
    flex-shrink: 0;
    width: 1em;
    height: 1em;
    color: var(--olimpo-gold-2);
}

.olimpo-trono-btn {
    position: absolute;
    left: 6%;
    right: 6%;
    top: 77.5%;
    height: 13%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #3a5bb8;
    border-radius: 4px;
    background: linear-gradient(180deg, #1c2f6e 0%, #12204f 100%);
    box-shadow: 0 0 12px rgba(40, 80, 200, .3), inset 0 1px 0 rgba(255, 255, 255, .12);
    color: #fff !important;
    font-size: 3.4cqw;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    transition: all .2s ease;
}

.olimpo-trono-btn:hover {
    border-color: #6b8cf0;
    box-shadow: 0 0 18px rgba(60, 110, 240, .5), inset 0 1px 0 rgba(255, 255, 255, .15);
    filter: brightness(1.1);
}

/* ==========================================================
   RODAPÉ
   ========================================================== */
footer.footer.olimpo-footer {
    position: relative;
    margin-top: 2.5rem;
    padding: 0;
    color: var(--olimpo-text);
    font-family: 'Montserrat', gisha, sans-serif;
    background: linear-gradient(180deg, rgba(4, 6, 14, .78) 0%, rgba(2, 3, 8, .92) 100%);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    border-top: 1px solid var(--olimpo-gold-line);
    box-shadow: 0 -10px 30px rgba(0, 0, 0, .45);
}

.olimpo-footer-inner {
    position: relative;
    max-width: 1440px;
    margin: 0 auto;
    min-height: 245px;
    padding: 2rem 330px 1.2rem 300px;
}

.olimpo-footer-arte {
    position: absolute;
    bottom: 0;
    height: 235px;
    width: auto;
    pointer-events: none;
    filter: drop-shadow(0 0 12px rgba(0, 0, 0, .7));
}

.olimpo-footer-arte-esq { left: 0; }
.olimpo-footer-arte-dir { right: 0; }

.olimpo-footer-conteudo {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    align-items: start;
}

.olimpo-footer-logo {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: .6rem;
    font-family: 'Cinzel', Georgia, serif;
    font-weight: 700;
    line-height: 1;
}

.olimpo-footer-logo-nome,
.olimpo-footer-logo-sub {
    background: linear-gradient(180deg, var(--olimpo-gold-1), var(--olimpo-gold-2) 55%, var(--olimpo-gold-3));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.olimpo-footer-logo-nome {
    font-size: 1.35rem;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.olimpo-footer-logo-sub {
    position: relative;
    padding: 0 1.4rem;
    font-size: 1rem;
    letter-spacing: .12em;
}

.olimpo-footer-logo-sub::before,
.olimpo-footer-logo-sub::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 1rem;
    height: 1px;
    background: var(--olimpo-gold-2);
}

.olimpo-footer-logo-sub::before { left: 0; }
.olimpo-footer-logo-sub::after  { right: 0; }

.olimpo-footer-marca p {
    margin: 0;
    font-size: .78rem;
    line-height: 1.6;
    color: #cfc9bb;
}

.olimpo-footer-col {
    padding-left: 1rem;
    border-left: 1px solid rgba(214, 165, 78, .25);
}

.olimpo-footer-col h4 {
    margin: 0 0 .55rem;
    font-family: 'Montserrat', gisha, sans-serif;
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--olimpo-gold-2);
}

.olimpo-footer-col ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.olimpo-footer-col li {
    margin-bottom: .3rem;
}

.olimpo-footer-col a {
    font-size: .8rem;
    color: #e6e0d2;
    text-decoration: none;
    transition: color .2s ease;
}

.olimpo-footer-col a:hover {
    color: var(--olimpo-gold-1);
}

.olimpo-footer-base {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .4rem 1rem;
    padding: .9rem 1rem 1.1rem;
    border-top: 1px solid rgba(214, 165, 78, .15);
    font-size: .74rem;
    color: #b9b3a5;
    text-align: center;
}

.olimpo-footer-base strong,
.olimpo-footer-base a {
    color: var(--olimpo-gold-1);
    font-weight: 700;
    text-decoration: none;
}

.olimpo-footer-sep {
    color: rgba(214, 165, 78, .5);
}

.olimpo-footer-coracao {
    width: 14px;
    height: 14px;
    margin-left: .2rem;
    vertical-align: -2px;
    color: #f5c242;
}

.olimpo-footer-plataforma {
    flex-basis: 100%;
    font-size: .62rem;
    opacity: .55;
}

.olimpo-footer-plataforma a {
    color: inherit;
    font-weight: 500;
}

/* telas médias: artes menores */
@media (max-width: 1399.98px) {
    .olimpo-footer-inner { padding: 2rem 250px 1.2rem 225px; }
    .olimpo-footer-arte { height: 190px; }
}

@media (max-width: 1199.98px) {
    .olimpo-footer-conteudo { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .olimpo-footer-marca { grid-column: 1 / -1; text-align: center; }
    .olimpo-footer-col:first-of-type { border-left: 0; padding-left: 0; }
}

/* celular: some com as artes laterais, conteúdo centralizado */
@media (max-width: 991.98px) {
    .olimpo-footer-inner { padding: 1.8rem 1rem 1rem; min-height: 0; }
    .olimpo-footer-arte { display: none; }
}

@media (max-width: 575.98px) {
    .olimpo-footer-conteudo { grid-template-columns: 1fr 1fr; }
    .olimpo-footer-col { border-left: 0; padding-left: 0; text-align: center; }
    .olimpo-footer-col:last-child { grid-column: 1 / -1; }
    .olimpo-footer-sep { display: none; }
}

/* ==========================================================
   PÁGINAS INTERNAS (base) — usado pela página de Downloads
   ========================================================== */
.olimpo-pagina {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    margin-top: .5rem;
}

.olimpo-pagina-topo {
    padding: 1.4rem 1.6rem 1.6rem;
}

.olimpo-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: 0 0 .4rem;
    padding: 0;
    list-style: none;
    font-size: .72rem;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #9c968a;
}

.olimpo-breadcrumb li + li::before {
    content: "›";
    margin-right: .4rem;
    color: var(--olimpo-gold-3);
}

.olimpo-breadcrumb a {
    color: var(--olimpo-gold-1);
    text-decoration: none;
}

.olimpo-pagina-titulo {
    margin: 0;
    font-family: 'Cinzel', Georgia, serif;
    font-size: clamp(1.8rem, 3.4vw, 2.6rem);
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
    background: linear-gradient(180deg, #fff3c9 0%, #f0c768 45%, #c98d2f 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    filter: drop-shadow(0 2px 2px rgba(0, 0, 0, .6));
}

.olimpo-pagina-sub {
    margin: .35rem 0 0;
    color: #cfc9bb;
    font-size: .95rem;
}

.olimpo-secao-titulo {
    text-align: left;
    font-size: 1.1rem;
    padding-bottom: .6rem;
    margin-bottom: 1rem;
}

.olimpo-secao-titulo::after {
    left: 0;
    right: 40%;
    background: linear-gradient(90deg, rgba(226, 173, 76, .8), transparent);
}

.olimpo-vazio {
    margin: 0;
    padding: 1.2rem;
    text-align: center;
    color: #9c968a;
    border: 1px dashed rgba(214, 165, 78, .3);
    border-radius: 4px;
}

/* passo a passo */
.olimpo-passos {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin: 1.3rem 0 0;
    padding: 0;
    list-style: none;
}

.olimpo-passos li {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .8rem .9rem;
    background: rgba(8, 11, 22, .6);
    border: 1px solid rgba(201, 151, 63, .25);
    border-radius: 6px;
}

.olimpo-passo-num {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid var(--olimpo-gold-3);
    background: radial-gradient(circle at 50% 35%, rgba(231, 180, 83, .3), rgba(0, 0, 0, .6));
    font-family: 'Cinzel', Georgia, serif;
    font-weight: 800;
    font-size: 1.05rem;
    color: var(--olimpo-gold-1);
}

.olimpo-passos strong {
    display: block;
    font-size: .82rem;
    color: #f3efe6;
}

.olimpo-passos small {
    display: block;
    font-size: .74rem;
    line-height: 1.4;
    color: #b9b3a5;
}

/* arquivos do jogo */
.olimpo-dl-lista {
    display: flex;
    flex-direction: column;
    gap: .8rem;
}

.olimpo-dl-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.1rem;
    background: linear-gradient(90deg, rgba(185, 122, 36, .12), rgba(8, 11, 22, .6) 45%);
    border: 1px solid rgba(201, 151, 63, .35);
    border-radius: 6px;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.olimpo-dl-card:hover {
    border-color: rgba(226, 173, 76, .75);
    box-shadow: 0 0 16px rgba(226, 173, 76, .15);
}

.olimpo-dl-icone {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 8px;
    color: #2a1904;
    background: linear-gradient(180deg, #ffd889 0%, #e8a943 55%, #c4842a 100%);
    box-shadow: 0 0 14px rgba(231, 170, 70, .35);
}

.olimpo-dl-icone svg {
    width: 28px;
    height: 28px;
}

.olimpo-dl-info {
    flex: 1;
    min-width: 0;
}

.olimpo-dl-nome {
    font-family: 'Cinzel', Georgia, serif;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--olimpo-gold-1);
}

.olimpo-dl-desc {
    font-size: .82rem;
    color: #cfc9bb;
}

.olimpo-dl-tamanho {
    display: inline-block;
    margin-top: .35rem;
    padding: .1rem .5rem;
    border-radius: 3px;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(214, 165, 78, .25);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: #e6e0d2;
}

.olimpo-dl-botoes {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
}

/* extras + requisitos */
.olimpo-dl-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
}

.olimpo-dl-extras {
    list-style: none;
    margin: 0;
    padding: 0;
}

.olimpo-dl-extras li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .7rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
}

.olimpo-dl-extras li:last-child {
    border-bottom: 0;
}

.olimpo-dl-extras strong {
    display: block;
    font-size: .85rem;
    color: #f3efe6;
}

.olimpo-dl-extras small {
    display: block;
    font-size: .74rem;
    color: #9c968a;
}

.olimpo-dl-extras .btn {
    flex-shrink: 0;
    height: 34px;
    padding: 0 1rem;
    font-size: .7rem;
}

.olimpo-tabela {
    width: 100%;
    border-collapse: collapse;
    font-size: .82rem;
    color: #e6e0d2;
}

.olimpo-tabela th {
    padding: .55rem .7rem;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--olimpo-gold-2);
    border-bottom: 1px solid rgba(201, 151, 63, .35);
    text-align: left;
    white-space: nowrap;
}

.olimpo-tabela td {
    padding: .6rem .7rem;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
}

.olimpo-tabela tbody tr:last-child td {
    border-bottom: 0;
}

.olimpo-tabela tbody tr:hover td {
    background: rgba(201, 151, 63, .06);
}

.olimpo-tabela-item {
    font-weight: 700;
    color: #b9b3a5;
    white-space: nowrap;
}

.olimpo-tabela-destaque {
    color: var(--olimpo-gold-1);
}

@media (max-width: 991.98px) {
    .olimpo-dl-grid { grid-template-columns: 1fr; }
    .olimpo-passos { grid-template-columns: 1fr; }
}

@media (max-width: 575.98px) {
    .olimpo-pagina-topo { padding: 1.2rem 1rem; }
    .olimpo-dl-card { flex-wrap: wrap; }
    .olimpo-dl-botoes { width: 100%; justify-content: stretch; }
    .olimpo-dl-botoes .btn { flex: 1; }
    .olimpo-dl-extras li { flex-wrap: wrap; }
}

/* ==========================================================
   FUNDO ESCURO ATRÁS DO CONTEÚDO (todas as páginas)
   ========================================================== */
main {
    margin: 0;
    display: flex;
    flex-direction: column;
}

/* o fundo escuro vai até o rodapé mesmo em páginas curtas */
main > .container {
    flex: 1;
    width: 100%;
    position: relative;
    padding-top: 1.75rem;
    padding-bottom: 2rem;
    background: linear-gradient(180deg, rgba(3, 5, 12, .72) 0%, rgba(3, 5, 12, .62) 100%);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    border-left: 1px solid rgba(214, 165, 78, .14);
    border-right: 1px solid rgba(214, 165, 78, .14);
    box-shadow: 0 0 60px rgba(0, 0, 0, .55);
}

/* emenda suave com o banner da página inicial */
header:has(.olimpo-hero) + main > .container {
    border-top: 1px solid rgba(214, 165, 78, .22);
}

/* nas páginas sem banner, o fundo começa logo abaixo do menu */
.olimpo-page-spacer {
    height: var(--olimpo-nav-height);
}

/* sem espaço sobrando entre o conteúdo e o rodapé */
footer.footer.olimpo-footer {
    margin-top: 0;
}

@media (max-width: 575.98px) {
    main > .container {
        padding-top: 1.25rem;
        padding-bottom: 1.5rem;
        border-left: 0;
        border-right: 0;
    }
}

/* ==========================================================
   PÁGINA DE RANKINGS
   ========================================================== */
.olimpo-rk-botoes {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: 1.2rem;
}

.olimpo-rk-botoes .olimpo-panteao-tab {
    display: inline-flex;
    align-items: center;
    height: 36px;
    padding: 0 1.1rem;
    text-decoration: none;
}

.olimpo-rk-cabeca {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: .6rem 1rem;
}

.olimpo-rk-cabeca .olimpo-secao-titulo {
    flex: 1;
    min-width: 200px;
}

.olimpo-rk-periodos,
.olimpo-rk-classes {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.olimpo-rk-gens,
.olimpo-rk-classes {
    margin-bottom: 1rem;
}

.olimpo-rk-periodos a,
.olimpo-rk-classes a {
    display: inline-flex;
    align-items: center;
    height: 28px;
    padding: 0 .75rem;
    border: 1px solid rgba(201, 151, 63, .4);
    border-radius: 14px;
    background: rgba(0, 0, 0, .3);
    color: #e6e0d2;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-decoration: none;
    transition: all .2s ease;
}

.olimpo-rk-periodos a:hover,
.olimpo-rk-classes a:hover {
    color: var(--olimpo-gold-1);
    border-color: var(--olimpo-gold-2);
}

.olimpo-rk-periodos a.active,
.olimpo-rk-classes a.active {
    color: #2a1904;
    background: linear-gradient(180deg, #ffd889, #c4842a);
    border-color: #f6d48a;
}

.olimpo-rk-tabela td {
    white-space: nowrap;
}

.olimpo-rk-tabela a {
    color: #f3efe6;
    text-decoration: none;
}

.olimpo-rk-tabela a:hover {
    color: var(--olimpo-gold-1);
}

.olimpo-rk-pos {
    width: 3rem;
}

.olimpo-rk-pos span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    height: 26px;
    padding: 0 .3rem;
    border-radius: 50%;
    font-weight: 800;
    font-size: .78rem;
    color: var(--olimpo-gold-2);
}

.olimpo-rk-nome {
    font-weight: 600;
}

.olimpo-rk-nome canvas,
.olimpo-rk-nome img {
    vertical-align: middle;
    margin-right: .3rem;
}

.olimpo-rk-flag {
    margin-left: .3rem;
}

.olimpo-rk-on {
    display: inline-block;
    margin-left: .35rem;
    padding: .05rem .4rem;
    border-radius: 3px;
    background: rgba(62, 224, 127, .15);
    border: 1px solid rgba(62, 224, 127, .5);
    color: #3ee07f;
    font-size: .6rem;
    font-weight: 800;
    vertical-align: middle;
}

.olimpo-rk-patente {
    display: inline-block;
    margin-left: .35rem;
    padding: .05rem .4rem;
    border-radius: 3px;
    background: rgba(201, 151, 63, .15);
    border: 1px solid rgba(201, 151, 63, .45);
    color: var(--olimpo-gold-1);
    font-size: .6rem;
    font-weight: 700;
    vertical-align: middle;
}

.olimpo-rk-score {
    font-weight: 700;
    color: var(--olimpo-gold-1);
}

.olimpo-rk-seta {
    width: 1.5rem;
    text-align: center;
}

/* 1º, 2º e 3º lugar */
.olimpo-rk-top-1 td { background: rgba(240, 199, 104, .09); }
.olimpo-rk-top-2 td { background: rgba(200, 214, 235, .05); }
.olimpo-rk-top-3 td { background: rgba(214, 140, 80, .06); }
.olimpo-rk-top-1 td:first-child { box-shadow: inset 3px 0 0 #f0c768; }
.olimpo-rk-top-2 td:first-child { box-shadow: inset 3px 0 0 #c8d6eb; }
.olimpo-rk-top-3 td:first-child { box-shadow: inset 3px 0 0 #d68c50; }

.olimpo-rk-top-1 .olimpo-rk-pos span { color: #2a1904; background: linear-gradient(180deg, #ffe39a, #c98d2f); box-shadow: 0 0 10px rgba(240, 199, 104, .5); }
.olimpo-rk-top-2 .olimpo-rk-pos span { color: #1b2230; background: linear-gradient(180deg, #f1f5fb, #9aa6b8); }
.olimpo-rk-top-3 .olimpo-rk-pos span { color: #2a1406; background: linear-gradient(180deg, #f4b98a, #a35a25); }

/* ==========================================================
   PÁGINA DE INFORMAÇÕES
   ========================================================== */
.olimpo-info-destaques {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.3rem;
}

.olimpo-info-destaques > div {
    padding: .8rem 1rem;
    background: rgba(8, 11, 22, .6);
    border: 1px solid rgba(201, 151, 63, .25);
    border-radius: 6px;
}

.olimpo-info-destaques span {
    display: block;
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--olimpo-gold-2);
}

.olimpo-info-destaques strong {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-top: .2rem;
    font-family: 'Cinzel', Georgia, serif;
    font-size: 1.15rem;
    color: #f3efe6;
}

.olimpo-info-destaques .is-green { color: #3ee07f; }
.olimpo-info-destaques .is-red   { color: #ff5c5c; }

.olimpo-info-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
}

.olimpo-info-lista {
    list-style: none;
    margin: 0;
    padding: 0;
}

.olimpo-info-lista li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .55rem .2rem;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
    font-size: .84rem;
}

.olimpo-info-lista li:last-child {
    border-bottom: 0;
}

.olimpo-info-lista li > span {
    color: #cfc9bb;
}

.olimpo-info-lista strong {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: 700;
    color: #f3efe6;
    text-align: right;
}

.olimpo-info-lista strong a {
    color: inherit;
    text-decoration: none;
}

.olimpo-info-lista strong a:hover {
    color: var(--olimpo-gold-1);
}

.olimpo-info-lista .is-green { color: #3ee07f; }
.olimpo-info-lista .is-red   { color: #ff5c5c; }

.olimpo-info-comandos li {
    justify-content: flex-start;
}

.olimpo-info-comandos code {
    flex-shrink: 0;
    min-width: 100px;
    padding: .15rem .5rem;
    border-radius: 3px;
    background: rgba(201, 151, 63, .12);
    border: 1px solid rgba(201, 151, 63, .35);
    color: var(--olimpo-gold-1);
    font-size: .78rem;
    font-weight: 700;
    text-align: center;
}

.olimpo-info-comandos li > span {
    color: #e6e0d2;
}

.olimpo-info-sn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    font-size: .7rem;
    font-weight: 800;
}

.olimpo-info-sn.is-sim { color: #3ee07f; background: rgba(62, 224, 127, .12); border: 1px solid rgba(62, 224, 127, .45); }
.olimpo-info-sn.is-nao { color: #ff6b6b; background: rgba(255, 92, 92, .08); border: 1px solid rgba(255, 92, 92, .35); }

@media (max-width: 991.98px) {
    .olimpo-info-grid { grid-template-columns: 1fr; }
    .olimpo-info-destaques { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ==========================================================
   FORMULÁRIOS (campos escuros dentro dos painéis)
   ========================================================== */
.olimpo-panel .form-label,
.olimpo-panel label {
    color: #e6e0d2;
    font-size: .8rem;
    font-weight: 600;
}

.olimpo-panel .form-control,
.olimpo-panel .form-select,
.olimpo-panel textarea,
.olimpo-captcha input[type="text"] {
    height: auto;
    min-height: 44px;
    padding: .6rem .85rem;
    background-color: rgba(3, 5, 12, .75);
    border: 1px solid rgba(201, 151, 63, .35);
    border-radius: 4px;
    color: #f3efe6;
    font-size: .9rem;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, .5);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.olimpo-panel .form-select {
    --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23e7b453' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    --form-select-bg-img: var(--bs-form-select-bg-img);
}

.olimpo-panel .form-select option {
    background: #0b0f1c;
    color: #f3efe6;
}

.olimpo-panel .form-control::placeholder {
    color: #6f6a60;
}

.olimpo-panel .form-control:focus,
.olimpo-panel .form-select:focus,
.olimpo-captcha input[type="text"]:focus {
    outline: none;
    background-color: rgba(3, 5, 12, .9);
    border-color: var(--olimpo-gold-2);
    box-shadow: 0 0 0 3px rgba(231, 180, 83, .18), inset 0 1px 3px rgba(0, 0, 0, .5);
    color: #fff;
}

/* preenchimento automático do navegador sem fundo azul/branco */
.olimpo-panel input:-webkit-autofill,
.olimpo-panel input:-webkit-autofill:hover,
.olimpo-panel input:-webkit-autofill:focus {
    -webkit-text-fill-color: #f3efe6;
    -webkit-box-shadow: 0 0 0 1000px #0a0d18 inset;
    caret-color: #f3efe6;
    transition: background-color 9999s ease-out 0s;
}

.olimpo-panel .form-text {
    margin-top: .3rem;
    font-size: .72rem;
    color: #8f897d;
}

.olimpo-panel .text-danger {
    color: #ff6b6b !important;
}

.olimpo-panel .is-invalid,
.olimpo-panel .form-control.is-invalid {
    border-color: #ff5c5c;
}

.olimpo-panel .invalid-feedback {
    color: #ff7b7b;
}

/* caixinha de marcar */
.olimpo-panel .styled-checkbox + label {
    align-items: center;
    color: #e6e0d2;
    font-weight: 500;
}

.olimpo-panel .styled-checkbox + label:before {
    width: 20px;
    height: 20px;
    margin-right: .55rem;
    background: rgba(3, 5, 12, .75);
    border: 1px solid rgba(201, 151, 63, .55);
    border-radius: 3px;
}

.olimpo-panel .styled-checkbox:hover + label:before,
.olimpo-panel .styled-checkbox:focus + label:before {
    border-color: var(--olimpo-gold-2);
    box-shadow: 0 0 0 3px rgba(231, 180, 83, .18);
}

.olimpo-panel .styled-checkbox:checked + label:before {
    background: linear-gradient(180deg, #ffd889, #c4842a);
    border-color: #f6d48a;
}

.olimpo-panel .styled-checkbox:checked + label:after {
    left: 5px;
    top: 50%;
    margin-top: -1px;
    background: #2a1904;
    box-shadow: 2px 0 0 #2a1904, 4px 0 0 #2a1904, 4px -2px 0 #2a1904, 4px -4px 0 #2a1904, 4px -6px 0 #2a1904, 4px -8px 0 #2a1904;
}

.olimpo-panel .styled-checkbox + label a {
    color: var(--olimpo-gold-1);
}

/* captcha */
.olimpo-captcha {
    display: inline-flex;
    flex-direction: column;
    gap: .5rem;
    max-width: 320px;
    padding: .8rem;
    background: rgba(8, 11, 22, .6);
    border: 1px solid rgba(201, 151, 63, .25);
    border-radius: 6px;
}

.olimpo-captcha img {
    max-width: 100%;
    border-radius: 4px;
    background: #f3efe6;
}

.olimpo-captcha a,
.olimpo-captcha button,
.olimpo-captcha .material-symbols-outlined {
    color: var(--olimpo-gold-1) !important;
}

.olimpo-captcha .row {
    --bs-gutter-x: .5rem;
}

/* ==========================================================
   CADASTRO
   ========================================================== */
.olimpo-cadastro-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 1.5rem;
    align-items: start;
}

.olimpo-form {
    padding: 1.3rem 1.6rem 1.6rem;
}

.btn.olimpo-cadastro-btn {
    min-width: 260px;
    margin-top: .4rem;
}

.olimpo-cadastro-lado {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.olimpo-cadastro-vantagens {
    list-style: none;
    margin: 0;
    padding: 0;
}

.olimpo-cadastro-vantagens li {
    position: relative;
    padding: .55rem 0 .55rem 1.4rem;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
}

.olimpo-cadastro-vantagens li:last-child {
    border-bottom: 0;
}

.olimpo-cadastro-vantagens li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .95rem;
    width: 8px;
    height: 8px;
    transform: rotate(45deg);
    background: linear-gradient(180deg, #ffd889, #c4842a);
    box-shadow: 0 0 6px rgba(231, 180, 83, .5);
}

.olimpo-cadastro-vantagens strong {
    display: block;
    font-size: .85rem;
    color: var(--olimpo-gold-1);
}

.olimpo-cadastro-vantagens span {
    display: block;
    font-size: .78rem;
    color: #cfc9bb;
}

.olimpo-cadastro-login {
    text-align: center;
}

.olimpo-cadastro-login p {
    margin: 0 0 .7rem;
    font-family: 'Cinzel', Georgia, serif;
    font-size: 1.05rem;
    color: #f3efe6;
}

.olimpo-cadastro-login .btn {
    width: 100%;
}

.olimpo-cadastro-esqueci {
    display: inline-block;
    margin-top: .7rem;
    font-size: .75rem;
}

/* janela dos termos */
.olimpo-modal .modal-content {
    background: linear-gradient(180deg, #111830, #070a14);
    border: 1px solid rgba(201, 151, 63, .55);
    color: #e6e0d2;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .7);
}

.olimpo-modal .modal-header {
    border-bottom: 1px solid rgba(201, 151, 63, .3);
}

.olimpo-modal .modal-title {
    font-family: 'Cinzel', Georgia, serif;
    font-weight: 700;
    color: var(--olimpo-gold-2);
}

.olimpo-modal .modal-body {
    font-size: .88rem;
    line-height: 1.6;
}

@media (max-width: 991.98px) {
    .olimpo-cadastro-grid { grid-template-columns: 1fr; }
}

@media (max-width: 575.98px) {
    .olimpo-form { padding: 1.1rem 1rem 1.3rem; }
    .btn.olimpo-cadastro-btn { width: 100%; min-width: 0; }
    .olimpo-captcha { display: flex; max-width: none; }
}

/* ==========================================================
   TEMA ESCURO PARA AS PÁGINAS PADRÃO DO MORPHEUS (.page)
   Painel do jogador, minha conta, personagens, VIP, login...
   ========================================================== */
main .page {
    position: relative;
    padding: 1.4rem 1.6rem 1.6rem;
    color: var(--olimpo-text);
    background:
        radial-gradient(120% 50% at 50% 0%, rgba(40, 60, 120, .18), transparent 70%),
        linear-gradient(180deg, rgba(13, 18, 34, .94), rgba(6, 9, 18, .96));
    border: 1px solid rgba(201, 151, 63, .55);
    border-radius: 6px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .6);
}

main .page h1 {
    margin: 0 0 .6rem;
    font-family: 'Cinzel', Georgia, serif;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 800;
    background: linear-gradient(180deg, #fff3c9, #f0c768 45%, #c98d2f);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

main .page h2 {
    font-family: 'Cinzel', Georgia, serif;
    color: var(--olimpo-gold-2);
}

main .page h3 {
    margin: 1.4rem 0 .8rem;
    font-family: 'Cinzel', Georgia, serif;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--olimpo-gold-2);
}

main .page h3:first-child { margin-top: 0; }

main .page h3:before,
main .page h3:after {
    border-top: 1px solid rgba(201, 151, 63, .35);
}

/* caminho (breadcrumb) */
main .page .breadcrumb {
    margin-bottom: 1.2rem;
    font-size: .72rem;
    letter-spacing: .05em;
    text-transform: uppercase;
    --bs-breadcrumb-divider-color: var(--olimpo-gold-3);
    --bs-breadcrumb-item-active-color: #9c968a;
}

main .page .breadcrumb a {
    color: var(--olimpo-gold-1);
    text-decoration: none;
}

main .page .breadcrumb-item.active { color: #9c968a; }
main .page .breadcrumb-item + .breadcrumb-item::before { color: var(--olimpo-gold-3); }

/* menu lateral (serviços / rankings) */
main .page .list-group {
    --bs-list-group-bg: transparent;
    --bs-list-group-border-color: rgba(255, 255, 255, .06);
    border: 1px solid rgba(201, 151, 63, .35);
    border-radius: 6px;
    overflow: hidden;
    background: rgba(3, 5, 12, .55);
}

main .page .list-group-item {
    padding: .65rem 1rem;
    background: transparent;
    color: #e6e0d2;
    font-size: .85rem;
    font-weight: 600;
    border-color: rgba(255, 255, 255, .06);
    transition: all .15s ease;
}

main .page .list-group-item-action:hover,
main .page .list-group-item-action:focus {
    background: rgba(201, 151, 63, .1);
    color: var(--olimpo-gold-1);
}

main .page .list-group-item.active {
    background: linear-gradient(90deg, rgba(231, 180, 83, .28), rgba(231, 180, 83, .06));
    border-color: rgba(255, 255, 255, .06);
    color: var(--olimpo-gold-1);
    box-shadow: inset 3px 0 0 var(--olimpo-gold-2);
}

main .page .sidebar-toggler {
    color: var(--olimpo-gold-1);
    font-weight: 700;
}

main .page .sidebar-toggler svg path { stroke: var(--olimpo-gold-1); fill: var(--olimpo-gold-1); }

/* tabelas */
main .page .table {
    --bs-table-bg: transparent;
    --bs-table-color: #e6e0d2;
    --bs-table-striped-bg: rgba(255, 255, 255, .03);
    --bs-table-striped-color: #e6e0d2;
    --bs-table-hover-bg: rgba(201, 151, 63, .07);
    --bs-table-hover-color: #fff;
    --bs-table-border-color: rgba(255, 255, 255, .07);
    color: #e6e0d2;
    font-size: .86rem;
    border-color: rgba(255, 255, 255, .07);
}

main .page .table > :not(caption) > * > * {
    padding: .6rem .8rem;
    background-color: var(--bs-table-bg);
    border-color: rgba(255, 255, 255, .07);
    color: inherit;
}

main .page .table-bordered {
    border: 1px solid rgba(201, 151, 63, .25);
}

main .page .table tr > td:first-child {
    color: #b9b3a5;
}

main .page .table-dark,
main .page .table thead th {
    --bs-table-bg: rgba(201, 151, 63, .08);
    --bs-table-color: var(--olimpo-gold-2);
    color: var(--olimpo-gold-2);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    border-color: rgba(201, 151, 63, .3);
}

main .page a { color: var(--olimpo-gold-1); }
main .page a:hover { color: #fff; }

/* avisos */
main .page .alert {
    border-radius: 6px;
    border-width: 1px;
    font-size: .88rem;
}
main .page .alert-warning { background: rgba(231, 180, 83, .1);  border-color: rgba(231, 180, 83, .4);  color: var(--olimpo-gold-1); }
main .page .alert-danger  { background: rgba(255, 92, 92, .1);  border-color: rgba(255, 92, 92, .45);  color: #ff9a9a; }
main .page .alert-success { background: rgba(62, 224, 127, .1); border-color: rgba(62, 224, 127, .4);  color: #7ff0ab; }
main .page .alert-info    { background: rgba(80, 140, 255, .1); border-color: rgba(80, 140, 255, .4);  color: #a9c6ff; }

/* botões padrão do Morpheus no estilo do site */
main .page .btn-primary,
main .page .btn-success {
    color: #2a1904;
    background: linear-gradient(180deg, #ffd889 0%, #e8a943 55%, #c4842a 100%);
    border: 1px solid #f6d48a;
    font-weight: 700;
    box-shadow: 0 0 12px rgba(231, 170, 70, .25);
}
main .page .btn-primary:hover,
main .page .btn-success:hover { color: #1a0f02; filter: brightness(1.08); }

main .page .btn-secondary,
main .page .btn-outline-secondary,
main .page .btn-light {
    color: var(--olimpo-gold-1);
    background: rgba(0, 0, 0, .35);
    border: 1px solid var(--olimpo-gold-3);
}
main .page .btn-secondary:hover,
main .page .btn-outline-secondary:hover,
main .page .btn-outline-secondary.active { color: #fff; border-color: var(--olimpo-gold-2); background: rgba(185, 122, 36, .2); }

main .page .btn-danger {
    color: #fff;
    background: linear-gradient(180deg, #b52a2a, #7f1d1d);
    border: 1px solid #d14a4a;
}

/* cartões (ex.: Meus personagens) */
main .page .card {
    --bs-card-bg: rgba(3, 5, 12, .6);
    --bs-card-border-color: rgba(201, 151, 63, .35);
    --bs-card-cap-bg: rgba(201, 151, 63, .08);
    color: #e6e0d2;
    border-radius: 6px;
    overflow: hidden;
    transition: border-color .2s ease, box-shadow .2s ease;
}
main .page .card:hover { border-color: rgba(226, 173, 76, .75); box-shadow: 0 0 14px rgba(226, 173, 76, .15); }
main .page .card-header {
    font-family: 'Cinzel', Georgia, serif;
    font-weight: 700;
    color: var(--olimpo-gold-1);
    border-color: rgba(201, 151, 63, .3);
}
main .page .card-footer { background: transparent; border-color: rgba(201, 151, 63, .2); }
main .page .card,
main .page .card-body,
main .page .list-characters .card { background: rgba(3, 5, 12, .65) !important; }
main .page .card-header { background: rgba(201, 151, 63, .1) !important; }
main .page .character-avatar { background: radial-gradient(circle at 50% 40%, rgba(40, 60, 120, .45), transparent 70%) !important; }

/* abas / paginação */
main .page .nav-tabs { border-color: rgba(201, 151, 63, .3); }
main .page .nav-tabs .nav-link { color: #cfc9bb; border: 0; }
main .page .nav-tabs .nav-link.active { color: var(--olimpo-gold-1); background: rgba(201, 151, 63, .12); box-shadow: inset 0 -2px 0 var(--olimpo-gold-2); }
main .page .pagination { --bs-pagination-bg: rgba(0,0,0,.35); --bs-pagination-color: var(--olimpo-gold-1); --bs-pagination-border-color: rgba(201,151,63,.35); --bs-pagination-active-bg: #c4842a; --bs-pagination-active-border-color: #f6d48a; --bs-pagination-hover-bg: rgba(201,151,63,.15); --bs-pagination-hover-color: #fff; --bs-pagination-disabled-bg: rgba(0,0,0,.2); --bs-pagination-disabled-color: #6f6a60; }

/* campos de formulário dentro de .page (usa o mesmo estilo do cadastro) */
main .page .form-label,
main .page label { color: #e6e0d2; font-size: .8rem; font-weight: 600; }
main .page .form-control,
main .page .form-select,
main .page textarea {
    min-height: 42px;
    background-color: rgba(3, 5, 12, .75);
    border: 1px solid rgba(201, 151, 63, .35);
    color: #f3efe6;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, .5);
}
main .page .form-control:focus,
main .page .form-select:focus {
    background-color: rgba(3, 5, 12, .9);
    border-color: var(--olimpo-gold-2);
    box-shadow: 0 0 0 3px rgba(231, 180, 83, .18);
    color: #fff;
}
main .page .form-select option { background: #0b0f1c; color: #f3efe6; }
main .page .form-control:disabled,
main .page .form-control[readonly] { background-color: rgba(255, 255, 255, .04); color: #9c968a; }
main .page input:-webkit-autofill { -webkit-text-fill-color: #f3efe6; -webkit-box-shadow: 0 0 0 1000px #0a0d18 inset; }
main .page .text-muted, main .page .form-text { color: #8f897d !important; }
main .page hr { border-color: rgba(201, 151, 63, .3); opacity: 1; }

/* janelas (2FA, confirmações...) */
.modal-content {
    background: linear-gradient(180deg, #111830, #070a14);
    border: 1px solid rgba(201, 151, 63, .55);
    color: #e6e0d2;
}
.modal-header, .modal-footer { border-color: rgba(201, 151, 63, .3); }
.modal-title { font-family: 'Cinzel', Georgia, serif; color: var(--olimpo-gold-2); }
.modal .btn-close { filter: invert(1) grayscale(1) brightness(1.6); }

@media (max-width: 575.98px) {
    main .page { padding: 1.1rem 1rem 1.3rem; }
}

/* ==========================================================
   MENU DE LOGIN (deslogado)
   ========================================================== */
header .navbar .dropdown-menu.olimpo-login-menu {
    min-width: 300px;
    margin-top: .6rem !important;
    padding: 1.1rem 1.2rem 1.2rem;
    background: linear-gradient(180deg, #111830, #070a14);
    border: 1px solid rgba(201, 151, 63, .55);
    border-radius: 6px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, .7);
    color: #e6e0d2;
}

.olimpo-login-menu .form-label {
    color: #e6e0d2;
    font-size: .78rem;
    font-weight: 600;
}

.olimpo-login-menu .form-label a {
    color: var(--olimpo-gold-1);
    font-size: .72rem;
    font-weight: 500;
}

.olimpo-login-menu .form-control {
    min-height: 42px;
    background: rgba(3, 5, 12, .8);
    border: 1px solid rgba(201, 151, 63, .4);
    color: #f3efe6;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, .5);
}

.olimpo-login-menu .form-control:focus {
    background: rgba(3, 5, 12, .95);
    border-color: var(--olimpo-gold-2);
    box-shadow: 0 0 0 3px rgba(231, 180, 83, .18);
    color: #fff;
}

.olimpo-login-menu input:-webkit-autofill,
.olimpo-login-menu input:-webkit-autofill:focus {
    -webkit-text-fill-color: #f3efe6;
    -webkit-box-shadow: 0 0 0 1000px #0a0d18 inset;
    caret-color: #f3efe6;
}

.olimpo-login-menu .text-danger { color: #ff6b6b !important; }

.olimpo-login-menu .btn {
    height: 42px;
}

.olimpo-login-menu .divisor,
main .page .divisor {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin: .9rem 0 .7rem;
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #9c968a;
}

.olimpo-login-menu .divisor::before,
.olimpo-login-menu .divisor::after,
main .page .divisor::before,
main .page .divisor::after {
    content: "";
    flex: 1;
    height: 1px;
    background: rgba(201, 151, 63, .3);
}

.olimpo-login-menu .styled-checkbox + label { color: #cfc9bb; font-size: .78rem; align-items: center; }
.olimpo-login-menu .styled-checkbox + label:before { background: rgba(3, 5, 12, .8); border-color: rgba(201, 151, 63, .55); border-radius: 3px; }
.olimpo-login-menu .styled-checkbox:checked + label:before { background: linear-gradient(180deg, #ffd889, #c4842a); border-color: #f6d48a; }

/* ==========================================================
   MENU DA CONTA (logado)
   ========================================================== */
header .navbar .dropdown-menu.olimpo-conta-menu {
    min-width: 280px;
    margin-top: .6rem !important;
    padding: 0;
    overflow: hidden;
    background: linear-gradient(180deg, #111830, #070a14);
    border: 1px solid rgba(201, 151, 63, .55);
    border-radius: 6px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, .7);
    color: #e6e0d2;
}

.olimpo-conta-topo {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: 1rem 1.1rem;
    background: linear-gradient(90deg, rgba(231, 180, 83, .14), transparent);
    border-bottom: 1px solid rgba(201, 151, 63, .3);
}

.olimpo-conta-avatar {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid #f6d48a;
    background: linear-gradient(180deg, #ffd889, #c4842a);
    color: #2a1904;
    font-family: 'Cinzel', Georgia, serif;
    font-weight: 800;
    font-size: 1.1rem;
}

.olimpo-conta-topo strong {
    display: block;
    font-family: 'Cinzel', Georgia, serif;
    font-size: 1rem;
    color: var(--olimpo-gold-1);
}

.olimpo-conta-topo small {
    display: block;
    font-size: .72rem;
    color: #b9b3a5;
}

.olimpo-conta-saldos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: .5rem;
    padding: .8rem 1.1rem;
    border-bottom: 1px solid rgba(201, 151, 63, .2);
}

.olimpo-conta-saldos div {
    padding: .45rem .6rem;
    background: rgba(3, 5, 12, .6);
    border: 1px solid rgba(201, 151, 63, .25);
    border-radius: 4px;
}

.olimpo-conta-saldos span {
    display: block;
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--olimpo-gold-2);
}

.olimpo-conta-saldos strong {
    font-size: .9rem;
    color: #f3efe6;
}

.olimpo-conta-titulo {
    padding: .7rem 1.1rem .3rem;
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #9c968a;
}

.olimpo-conta-links {
    display: flex;
    flex-direction: column;
    padding: 0 .5rem .5rem;
}

.olimpo-conta-links a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .55rem .6rem;
    border-radius: 4px;
    color: #e6e0d2;
    font-size: .85rem;
    font-weight: 600;
    text-decoration: none;
    transition: all .15s ease;
}

.olimpo-conta-links a:hover {
    background: rgba(201, 151, 63, .12);
    color: var(--olimpo-gold-1);
}

.olimpo-conta-badge {
    min-width: 20px;
    padding: 0 .35rem;
    border-radius: 10px;
    background: #e53935;
    color: #fff;
    font-size: .65rem;
    font-style: normal;
    font-weight: 800;
    text-align: center;
}

.olimpo-conta-sair {
    display: block;
    padding: .75rem;
    text-align: center;
    border-top: 1px solid rgba(201, 151, 63, .25);
    background: rgba(127, 29, 29, .25);
    color: #ff8a8a !important;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background .15s ease;
}

.olimpo-conta-sair:hover {
    background: rgba(181, 42, 42, .45);
    color: #fff !important;
}

@media (max-width: 575.98px) {
    header .navbar .dropdown-menu.olimpo-login-menu,
    header .navbar .dropdown-menu.olimpo-conta-menu {
        position: fixed !important;
        left: 12px !important;
        right: 12px !important;
        top: var(--olimpo-nav-height) !important;
        transform: none !important;
        min-width: 0;
    }
}
