Mudanças entre as edições de "Widget:Teste"

De Wiki Gla
Ir para navegação Ir para pesquisar
m
m
Linha 1: Linha 1:
/*******************************************************************************
<style>
* TEMA ESCURO MODERNO - WIKI GLA
    .utab {
* Estilo wiki.gg com paleta personalizada
        font-family: "Segoe UI", Arial, sans-serif;
* Substitua seu Common.css por este arquivo
        color: #e2ecff;
*******************************************************************************/
        padding: 24px;
        max-width: 980px;
        margin: 24px auto;
    }


@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;600;700&display=swap');
    .utab__tabs {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-bottom: 0;
        border-bottom: 1px solid #203c5f;
    }


/*******************************************************************************
    .utab__tab {
* SISTEMA DE VARIÁVEIS - PALETA ESCURA
        display: inline-flex;
*******************************************************************************/
        align-items: center;
:root {
        border: 1px solid #274a74;
    /* Backgrounds */
        border-bottom: none;
    --page-bg: #14161b;
        background: #0f1b2d;
    --content-bg: #1f2229;
        padding: 10px 14px;
    --content-bg-alt: #242831;
        border-radius: 10px 10px 0 0;
    --surface-bg: #2a2f38;
        cursor: pointer;
   
        font-weight: 600;
    /* Borders & Shadows */
        color: #cfe1ff;
    --border-color: #2d313a;
        transition: all 0.2s ease;
    --border-light: #343a46;
     }
    --shadow-color: rgba(0, 0, 0, 0.45);
    --content-shadow: 0 8px 22px var(--shadow-color);
   
    /* Text */
    --text-primary: #e7ebf2;
    --text-secondary: #b7bfcc;
    --text-muted: #8891a0;
   
    /* Links */
    --link-color: #7ec8ff;
    --link-visited: #9aa9ff;
    --link-hover: #a7e0ff;
    --link-new: #ff6b6b;
   
    /* Accent Colors */
    --accent-primary: #459cca;
    --accent-secondary: #5684c8;
    --accent-gradient: linear-gradient(135deg, #459cca 0%, #5684c8 100%);
   
    /* Tables */
    --table-bg: #242831;
    --table-header: #2d313a;
    --table-border: #343a46;
    --table-hover: #2a303b;
    --table-stripe: #262b34;
   
    /* Forms */
    --input-bg: #242831;
    --input-border: #3d4450;
    --input-focus: #459cca;
   
    /* Scrollbar */
    --scrollbar-track: #1f2229;
    --scrollbar-thumb: #3d4450;
    --scrollbar-hover: #4a5263;
   
    /* Legacy compatibility */
    --content-text: var(--text-primary);
    --simpleSearch-bg: var(--input-bg);
    --searchInput-text: var(--text-secondary);
    --lightGray: var(--surface-bg);
    --gray: var(--border-light);
    --transparent-blue: rgba(69, 156, 202, 0.3);
     --blue: #459cca;
}


/*******************************************************************************
    .utab__tab:hover {
* BASE & BODY
        border-color: #4a86d8;
*******************************************************************************/
        color: #ffffff;
html {
    }
    scroll-behavior: smooth;
}


body {
    .utab__tab.is-active {
    background-color: var(--page-bg);
        background: #2e7dd7;
    color: var(--text-primary);
        border-color: #2e7dd7;
    font-family: 'Noto Sans', sans-serif;
        color: #ffffff;
}
        position: relative;
        top: 1px;
    }


/* Remove imagem de fundo clara */
    .utab__tab.is-active::after {
body::before {
        content: "";
    display: none !important;
        position: absolute;
}
        left: 0;
        right: 0;
        bottom: -2px;
        height: 2px;
        background: #0f1b2d;
    }


/*******************************************************************************
    .utab__tab:focus-visible,
* TIPOGRAFIA
    .utab__levelBtn:focus-visible {
*******************************************************************************/
        outline: 2px solid rgba(46, 125, 215, 0.4);
body,
        outline-offset: 2px;
.mw-parser-output,
     }
.mw-headline,
#firstHeading,
h1, h2, h3, h4, h5, h6,
p, ul, ol, li,
table, td, th, caption {
    font-family: 'Noto Sans', sans-serif !important;
     color: var(--text-primary);
}


h1, h2, h3, h4, h5, h6 {
    .utab__section {
    color: var(--text-primary) !important;
        display: none;
     border-bottom: none !important;
     }
}


.mw-headline {
    .utab__section.is-active {
    border-bottom: none !important;
        display: block;
}
    }


#firstHeading {
    .utab__panel {
    border-bottom: none !important;
        background: #0f1b2d;
    color: var(--text-primary) !important;
        border-radius: 0 14px 14px 14px;
}
        padding: 20px;
        border: 1px solid #203c5f;
        box-shadow: 0 10px 24px rgba(7, 14, 26, 0.35);
    }


/*******************************************************************************
    .utab__levels {
* LINKS
        display: flex;
*******************************************************************************/
        flex-wrap: wrap;
a {
        gap: 8px;
    color: var(--link-color) !important;
        margin-bottom: 16px;
    transition: color 0.2s ease;
    }
}


a:visited {
    .utab__levelBtn {
    color: var(--link-visited) !important;
        border: 1px solid #274a74;
}
        background: #13243a;
        padding: 6px 12px;
        border-radius: 10px;
        font-weight: 600;
        color: #cfe1ff;
        cursor: pointer;
        transition: all 0.2s ease;
    }


a:hover {
    .utab__levelBtn:hover {
    color: var(--link-hover) !important;
        border-color: #4a86d8;
    text-decoration: none;
        color: #ffffff;
}
    }


a.new {
    .utab__levelBtn.is-active {
    color: var(--link-new) !important;
        background: #2e7dd7;
}
        border-color: #2e7dd7;
        color: #ffffff;
    }


/*******************************************************************************
    .utab__display {
* CONTENT AREA
        display: grid;
*******************************************************************************/
        grid-template-columns: minmax(160px, 220px) 1fr;
#content,
        gap: 18px;
.mw-body {
        align-items: start;
    background-color: var(--content-bg) !important;
    }
    color: var(--text-primary) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: var(--content-shadow);
}


#mw-page-base,
    .utab__display.is-image-empty {
#mw-head-base {
        grid-template-columns: 1fr;
    background: transparent !important;
    }
}


#mw-head-base {
    .utab__display.is-fading {
    background: linear-gradient(180deg, var(--page-bg) 0%, transparent 100%) !important;
        animation: utabFade 0.25s ease;
}
    }


/*******************************************************************************
    .utab__image {
* SIDEBAR & NAVIGATION
        border-radius: 12px;
*******************************************************************************/
        border: 1px solid #203c5f;
#mw-panel {
        background: #0b1422;
    background: transparent;
        padding: 10px;
}
    }


#mw-panel .mw-portlet {
    .utab__image img {
    background: transparent;
        display: block;
}
        width: 100%;
        height: auto;
        border-radius: 8px;
    }


#mw-panel .mw-portlet h3 {
    .utab__image.is-empty {
    color: var(--text-muted) !important;
        display: none;
     font-size: 0.75em;
     }
    text-transform: uppercase;
    letter-spacing: 0.5px;
}


#mw-panel .mw-portlet .vector-menu-content-list > li > a {
    .utab__stats {
    color: var(--link-color) !important;
        display: grid;
    font-size: 0.80rem !important;
        gap: 10px;
    font-weight: 500 !important;
        color: #dbe7ff;
    padding: 0.3em 0;
        font-size: 14px;
     transition: color 0.2s ease, padding-left 0.2s ease;
     }
}


#mw-panel .mw-portlet .vector-menu-content-list > li > a:hover {
    .utab__stat {
    color: var(--link-hover) !important;
        background: #13243a;
    padding-left: 4px;
        border: 1px solid #274a74;
}
        border-radius: 10px;
        padding: 10px 12px;
    }


#p-logo {
    .utab__statTitle {
    background-color: transparent !important;
        font-weight: 700;
}
        color: #8bb8ff;
    }


#p-navigation {
    .utab__statList {
    background-color: transparent;
        margin: 6px 0 0;
}
        padding-left: 18px;
        display: grid;
        gap: 2px;
        list-style: disc;
        list-style-position: outside;
    }


#p-tb {
    .utab__statList li {
    display: none;
        display: list-item;
}
        text-align: left;
    }


/*******************************************************************************
    .utab__costRow {
* SEARCH BAR
        position: relative;
*******************************************************************************/
     }
#simpleSearch {
    background-color: var(--input-bg) !important;
     border: 1px solid var(--input-border) !important;
    border-radius: 6px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}


#simpleSearch:focus-within {
    .utab__costBerry,
    border-color: var(--input-focus) !important;
    .utab__costGems,
    box-shadow: 0 0 0 3px rgba(69, 156, 202, 0.2);
    .utab__costPoints {
}
        display: inline-flex;
        align-items: center;
        gap: 6px;
        font-weight: 700;
        line-height: 1.1;
        font-size: 15px;
    }


#searchInput {
    .utab__costBerry {
    background-color: transparent !important;
        color: #ffd166;
    color: var(--text-primary) !important;
     }
     border: none !important;
}


#searchInput::placeholder {
    .utab__costGems {
    color: var(--text-muted);
        color: #57d889;
}
    }


#searchButton {
    .utab__costPoints {
    filter: invert(0.8);
        color: #a6b0bf;
}
    }


#p-search {
     .utab__costIcon {
     float: left;
        display: none;
    margin-left: -0.1em;
     }
    margin-right: 1em;
     margin-top: -0.4em;
}


/*******************************************************************************
    .utab__costBerry .utab__costIcon,
* TABS & ACTIONS
    .utab__costGems .utab__costIcon,
*******************************************************************************/
    .utab__costPoints .utab__costIcon,
.vector-menu-tabs,
    .utab__costBerry .utab__costText,
.vector-menu-tabs a,
    .utab__costGems .utab__costText,
#mw-head .vector-menu-dropdown h3 {
    .utab__costPoints .utab__costText {
    background: none;
        transform: none;
}
    }


.vector-menu-tabs li {
    .utab__level--source {
    background: transparent;
        display: none;
}
    }


.vector-menu-tabs li a {
    @keyframes utabFade {
    color: var(--text-secondary) !important;
        from {
    background: transparent;
            opacity: 0;
    transition: color 0.2s ease;
            transform: translateY(4px);
}
        }


.vector-menu-tabs li a:hover {
        to {
    color: var(--link-hover) !important;
            opacity: 1;
}
            transform: translateY(0);
        }
    }


.vector-menu-tabs .selected {
     @media (max-width: 720px) {
     background: var(--content-bg) !important;
        .utab {
    border: 1px solid var(--border-color) !important;
            padding: 16px;
    border-bottom-color: var(--content-bg) !important;
        }
    border-radius: 4px 4px 0 0;
}


.vector-menu-tabs .selected a {
        .utab__display {
    color: var(--text-primary) !important;
            grid-template-columns: 1fr;
     font-weight: 600;
        }
}
     }
</style>


#p-cactions {
<div class="utab">
     background: none;
    <section class="utab__section" data-tab="Designer">
     margin-top: -0.6em;
        <div class="utab__level" data-level="1">
}
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Designer_lvl1.png|200px]]</div>
                <ul class="utab__statList">
                    <li>1 pilar de artefato disponível</li>
                    <li>27 símbolos disponíveis</li>
                    <li>1 plano de fundo disponível</li>
                    <li>6 cores disponíveis</li>
                    <li>2% de EXP</li>
                    <li>4% de sorte</li>
                    <li>5% de pontos de aliança</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="2">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Designer_lvl2.png|200px]]</div>
                <ul class="utab__statList">
                    <li>2 pilares de artefato disponíveis</li>
                    <li>9 planos de fundo disponíveis</li>
                    <li>47 símbolos disponíveis</li>
                    <li>12 cores disponíveis</li>
                    <li>4% de EXP</li>
                    <li>9% de sorte</li>
                    <li>12% de pontos de aliança</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="3">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Designer_lvl3.png|200px]]</div>
                <ul class="utab__statList">
                    <li>2 pilares de artefato disponíveis</li>
                    <li>34 planos de fundo disponíveis</li>
                    <li>72 símbolos disponíveis</li>
                    <li>30 cores disponíveis</li>
                    <li>6% de EXP</li>
                    <li>15% de sorte</li>
                    <li>22% de pontos de aliança</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="4">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Designer_lvl4.png|200px]]</div>
                <ul class="utab__statList">
                    <li>3 pilares de artefato disponíveis</li>
                    <li>34 planos de fundo disponíveis</li>
                    <li>92 símbolos disponíveis</li>
                    <li>30 cores disponíveis</li>
                    <li>8% de EXP</li>
                    <li>22% de sorte</li>
                    <li>35% de pontos de aliança</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="5">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Designer_lvl5.png|200px]]</div>
                <ul class="utab__statList">
                    <li>4 pilares de artefato disponíveis</li>
                    <li>34 planos de fundo disponíveis</li>
                    <li>112 símbolos disponíveis</li>
                    <li>30 cores disponíveis</li>
                    <li>10% de EXP</li>
                    <li>30% de sorte</li>
                    <li>50% de pontos de aliança</li>
                </ul>
            </div>
        </div>
    </section>
    <section class="utab__section" data-tab="Cofre">
        <div class="utab__level" data-level="1">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Cofre_lvl1.png|200px]]</div>
                <ul class="utab__statList">
                    <li>10% de bônus pra aliança</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="2">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Cofre_lvl2.png|200px]]</div>
                <ul class="utab__statList">
                    <li>+ 100 espaços extra no cofre</li>
                    <li>25% de bônus pra aliança</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="3">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Cofre_lvl3.png|200px]]</div>
                <ul class="utab__statList">
                    <li>+ 200 espaços extra no cofre</li>
                    <li>45% de bônus pra aliança</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="4">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Cofre_lvl4.png|200px]]</div>
                <ul class="utab__statList">
                    <li>+ 300 espaços extra no cofre</li>
                    <li>75% de bônus pra aliança</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="5">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Cofre_lvl5.png|200px]]</div>
                <ul class="utab__statList">
                    <li>+ 400 espaços extra no cofre</li>
                    <li>100% de bônus pra aliança</li>
                </ul>
            </div>
        </div>
    </section>
    <section class="utab__section" data-tab="Salão Principal">
        <div class="utab__level" data-level="1">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:SalaoPrincipal_lvl1.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 1</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="2">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:SalaoPrincipal_lvl2.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 2</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="3">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:SalaoPrincipal_lvl3.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 3</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="4">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:SalaoPrincipal_lvl4.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 4</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="5">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:SalaoPrincipal_lvl5.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 5</li>
                </ul>
            </div>
        </div>
    </section>
    <section class="utab__section" data-tab="Quartos">
        <div class="utab__level" data-level="1">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Quartos_lvl1.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 1</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="2">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Quartos_lvl2.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 2</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="3">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Quartos_lvl3.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 3</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="4">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Quartos_lvl4.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 4</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="5">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Quartos_lvl5.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 5</li>
                </ul>
            </div>
        </div>
    </section>
    <section class="utab__section" data-tab="Sala de Guerra">
        <div class="utab__level" data-level="1">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:SalaDeGuerra_lvl1.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 1</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="2">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:SalaDeGuerra_lvl2.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 2</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="3">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:SalaDeGuerra_lvl3.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 3</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="4">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:SalaDeGuerra_lvl4.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 4</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="5">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:SalaDeGuerra_lvl5.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 5</li>
                </ul>
            </div>
        </div>
    </section>
    <section class="utab__section" data-tab="Treinamento">
        <div class="utab__level" data-level="1">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Treinamento_lvl1.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 1</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="2">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Treinamento_lvl2.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 2</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="3">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Treinamento_lvl3.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 3</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="4">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Treinamento_lvl4.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 4</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="5">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Treinamento_lvl5.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 5</li>
                </ul>
            </div>
        </div>
    </section>
     <section class="utab__section" data-tab="Ferreiro">
        <div class="utab__level" data-level="1">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Ferreiro_lvl1.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 1</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="2">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Ferreiro_lvl2.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 2</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="3">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Ferreiro_lvl3.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 3</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="4">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Ferreiro_lvl4.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 4</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="5">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Ferreiro_lvl5.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 5</li>
                </ul>
            </div>
        </div>
    </section>
     <section class="utab__section" data-tab="Cozinha">
        <div class="utab__level" data-level="1">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Cozinha_lvl1.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 1</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="2">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Cozinha_lvl2.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 2</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="3">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Cozinha_lvl3.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 3</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="4">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Cozinha_lvl4.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 4</li>
                </ul>
            </div>
        </div>
        <div class="utab__level" data-level="5">
            <div class="utab__content">
                <div class="utab__mediaImage">[[File:Cozinha_lvl5.png|200px]]</div>
                <ul class="utab__statList">
                    <li>Descrição do nível 5</li>
                </ul>
            </div>
        </div>
    </section>
</div>


#p-cactions li {
<script>
    background: none;
    function handleArrowNavigation(event, buttons, activate) {
}
        const keys = ["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown", "Home", "End"];
        if (!keys.includes(event.key)) {
            return;
        }


#p-cactions li.selected {
        event.preventDefault();
    background: var(--content-bg);
        const currentIndex = buttons.findIndex((button) => button === document.activeElement);
    border: 1px solid var(--border-color);
        if (currentIndex === -1) {
}
            return;
        }


#p-cactions li a {
        let nextIndex = currentIndex;
    background-color: var(--surface-bg) !important;
        if (event.key === "Home") {
    color: var(--link-color) !important;
            nextIndex = 0;
}
        } else if (event.key === "End") {
            nextIndex = buttons.length - 1;
        } else if (event.key === "ArrowLeft" || event.key === "ArrowUp") {
            nextIndex = (currentIndex - 1 + buttons.length) % buttons.length;
        } else if (event.key === "ArrowRight" || event.key === "ArrowDown") {
            nextIndex = (currentIndex + 1) % buttons.length;
        }


.vector-menu-dropdown .vector-menu-content {
        activate(nextIndex, true);
    background-color: var(--content-bg) !important;
     }
    border: 1px solid var(--border-color) !important;
     box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}


.vector-menu-dropdown .vector-menu-content li a {
    function triggerFade(element) {
    color: var(--text-primary) !important;
        element.classList.remove("is-fading");
}
        void element.offsetWidth;
        element.classList.add("is-fading");
    }


.vector-menu-dropdown .vector-menu-content li a:hover {
    function hasWikitext(value) {
    background-color: var(--surface-bg) !important;
        return typeof value === "string" && (value.includes("[[") || value.includes("{{"));
}
    }


#ca-view,
    function parseWikitextCached(raw, cacheKey, target) {
#ca-history,
        if (!raw || !hasWikitext(raw)) {
#ca-viewsource {
            return Promise.resolve(raw);
    display: none !important;
        }
}
        if (target[cacheKey]) {
            return Promise.resolve(target[cacheKey]);
        }
        if (!window.mw || !mw.Api) {
            return Promise.resolve(raw);
        }


/*******************************************************************************
        const api = new mw.Api();
* DISCORD BUTTON
        return api
*******************************************************************************/
            .post({
#n-Discord {
                action: "parse",
    font-size: 10px;
                text: raw,
    line-height: 1.5em;
                contentmodel: "wikitext",
}
                prop: "text",
                formatversion: 2
            })
            .then((response) => {
                const html = response?.parse?.text || response?.parse?.text?.["*"] || raw;
                target[cacheKey] = html;
                return html;
            })
            .catch(() => raw);
    }


#p-Discord-label {
    const upgradeCosts = [
    display: none;
        { level: 1, berries: "50.000", gems: "10", points: "400" },
}
        { level: 2, berries: "250.000", gems: "10", points: "1.500" },
        { level: 3, berries: "400.000", gems: "20", points: "3.000" },
        { level: 4, berries: "1.000.000", gems: "50", points: "12.500" },
        { level: 5, berries: "1.800.000", gems: "90", points: "28.000" }
    ];


#n-Discord a {
    function buildLevelUI(section, tabLabel) {
    color: #fff !important;
        const levelElements = Array.from(section.querySelectorAll(".utab__level"));
    font-weight: bold;
        const levels = levelElements.map((levelElement, index) => {
    border-radius: 6px;
            const levelNumber = levelElement.dataset.level || String(index + 1);
    border: 1px solid #4c57d0;
            const contentElement = levelElement.querySelector(".utab__content") || levelElement;
    background-color: #5865f2;
            const rawHtml = contentElement.innerHTML.trim();
    display: block;
            const contentWrapper = document.createElement("div");
    position: relative;
            contentWrapper.innerHTML = rawHtml;
    padding: 6px 8px 5px calc(14px + 6.5px * 2);
            const mediaImage = contentWrapper.querySelector(".utab__mediaImage");
    box-shadow: 0 2px 8px rgba(88, 101, 242, 0.3);
            const imageHtml = mediaImage ? mediaImage.innerHTML.trim() : "";
    transition: all 0.2s ease;
            if (mediaImage) {
}
                mediaImage.remove();
            }
            const statsHtml = contentWrapper.innerHTML.trim();


#n-Discord a::after {
            return {
    content: '';
                level: levelNumber,
    background: url(/images/7/76/Discord-brands.png) no-repeat;
                imageHtml,
    background-size: contain;
                statsHtml
    background-position: center;
            };
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.1));
        });
    position: absolute;
    top: 4px;
    left: 6px;
    width: 18px;
    height: 18px;
}


#n-Discord a:hover {
        levelElements.forEach((levelElement) => {
    text-decoration: none;
            levelElement.classList.add("utab__level--source");
    background-color: #7885ff;
        });
    border-color: #6c77f0;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(88, 101, 242, 0.4);
}


/*******************************************************************************
        const nav = document.createElement("div");
* TABLES - GENERAL
        nav.className = "utab__levels";
*******************************************************************************/
        nav.setAttribute("role", "tablist");
table {
        nav.setAttribute("aria-label", `Níveis de ${tabLabel}`);
    background-color: var(--table-bg);
    border-color: var(--table-border);
}


table th {
        const display = document.createElement("div");
    background-color: var(--table-header) !important;
        display.className = "utab__display";
    color: var(--text-primary) !important;
    border-color: var(--table-border) !important;
}


table td {
        const imageWrap = document.createElement("div");
    background-color: var(--table-bg) !important;
        imageWrap.className = "utab__image";
    color: var(--text-primary) !important;
    border-color: var(--table-border) !important;
}


table tr:hover td {
        const stats = document.createElement("div");
    background-color: var(--table-hover) !important;
        stats.className = "utab__stats";
}


/*******************************************************************************
        display.appendChild(imageWrap);
* TABLE-ENHANCE
        display.appendChild(stats);
*******************************************************************************/
table.table-enhance {
    background-color: var(--table-bg);
    border: 1px solid var(--table-border);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}


.table-enhance th,
        const buttons = levels.map((level, index) => {
.table-enhance td {
            const button = document.createElement("button");
    border: 1px solid var(--table-border);
            button.type = "button";
    color: var(--text-primary);
            button.className = "utab__levelBtn";
}
            button.textContent = `Nv ${level.level}`;
            button.setAttribute("role", "tab");
            button.setAttribute("aria-selected", "false");
            button.setAttribute("tabindex", "-1");
            button.addEventListener("click", () => activateLevel(index, true));
            button.addEventListener("keydown", (event) => handleArrowNavigation(event, buttons, activateLevel));
            nav.appendChild(button);
            return button;
        });


.table-enhance th {
        section.prepend(display);
    background-color: var(--table-header);
        section.prepend(nav);
    color: var(--text-primary);
}


.table-enhance tr:nth-child(even) td {
        let renderToken = 0;
    background-color: var(--table-stripe);
}


.table-enhance tr:hover td {
        function activateLevel(index, shouldFocus) {
    background-color: var(--table-hover);
            if (!levels.length) {
}
                return;
            }


.table-enhance-vertical td:first-child {
            const safeIndex = Math.max(0, Math.min(index, levels.length - 1));
    color: var(--link-color);
            const current = levels[safeIndex];
}
            const token = ++renderToken;


/*******************************************************************************
            buttons.forEach((button, buttonIndex) => {
* WIKITABLES
                const isActive = buttonIndex === safeIndex;
*******************************************************************************/
                button.classList.toggle("is-active", isActive);
table.wikitable,
                button.setAttribute("aria-selected", isActive ? "true" : "false");
table.wikitablec,
                button.setAttribute("tabindex", isActive ? "0" : "-1");
table.wikitablew,
            });
table.wikitablenb,
table.wikitablewhite,
table.wikitablecenter,
table.wikitablew-tr,
table.prettytable {
    background-color: var(--table-bg) !important;
    border: 1px solid var(--table-border) !important;
}


table.wikitable th,
            if (current.imageHtml) {
table.wikitablec th,
                imageWrap.innerHTML = current.imageHtml;
table.wikitablew th,
                imageWrap.classList.remove("is-empty");
table.wikitablenb th,
                display.classList.remove("is-image-empty");
table.wikitablewhite th,
            } else {
table.wikitablecenter th,
                imageWrap.innerHTML = "";
table.wikitablew-tr th,
                imageWrap.classList.add("is-empty");
table.prettytable th {
                display.classList.add("is-image-empty");
    background-color: var(--table-header) !important;
            }
    color: var(--text-primary) !important;
    border: 1px solid var(--table-border) !important;
}


table.wikitable td,
            const levelNumber = Number(current.level);
table.wikitablec td,
            const cost = upgradeCosts.find((item) => item.level === levelNumber);
table.wikitablew td,
            const costHtml = cost
table.wikitablenb td,
                ? `
table.wikitablewhite td,
                    <div class="utab__stat">
table.wikitablecenter td,
                        <div class="utab__statTitle">Custo do upgrade</div>
table.wikitablew-tr td,
                        <ul class="utab__statList">
table.prettytable td {
                            <li class="utab__costRow">
    background-color: var(--table-bg) !important;
                                <span class="utab__costBerry">
    color: var(--text-primary) !important;
                                    <span class="utab__costText">${cost.berries} berries</span>
    border: 1px solid var(--table-border) !important;
                                </span>
}
                            </li>
                            ${cost.gems ? `
                                <li class="utab__costRow">
                                    <span class="utab__costGems">
                                        <span class="utab__costText">${cost.gems} gemas</span>
                                    </span>
                                </li>
                            ` : ""}
                            <li class="utab__costRow">
                                <span class="utab__costPoints">
                                    <span class="utab__costText">${cost.points} pontos</span>
                                </span>
                            </li>
                        </ul>
                    </div>
                `
                : "";


table.wikitable tr:hover td,
            stats.innerHTML = `${current.statsHtml}${costHtml}`;
table.wikitablew tr:hover td,
            triggerFade(display);
table.wikitablew-tr tr:hover td {
    background-color: var(--table-hover) !important;
}


/*******************************************************************************
            const shouldParse =
* JQUERY TABLESORTER
                (current.imageHtml && hasWikitext(current.imageHtml)) ||
*******************************************************************************/
                (current.statsHtml && hasWikitext(current.statsHtml));
.jquery-tablesorter {
    background-color: var(--table-bg) !important;
    border-color: var(--table-border) !important;
}


.jquery-tablesorter tr td {
            if (shouldParse) {
    background-color: var(--table-bg) !important;
                Promise.all([
    color: var(--text-primary) !important;
                    parseWikitextCached(current.imageHtml, "parsedImageHtml", current),
}
                    parseWikitextCached(current.statsHtml, "parsedStatsHtml", current)
                ]).then(([parsedImage, parsedStats]) => {
                    if (renderToken !== token) {
                        return;
                    }
                    if (parsedImage && parsedImage !== current.imageHtml) {
                        imageWrap.innerHTML = parsedImage;
                        imageWrap.classList.remove("is-empty");
                        display.classList.remove("is-image-empty");
                    }
                    if (parsedStats && parsedStats !== current.statsHtml) {
                        stats.innerHTML = `${parsedStats}${costHtml}`;
                    }
                });
            }


.jquery-tablesorter tr th {
            if (shouldFocus) {
    background-color: var(--table-header) !important;
                buttons[safeIndex].focus();
    color: var(--text-primary) !important;
            }
}
        }


#mw-content-text .mw-parser-output .jquery-tablesorter {
        return {
    background-color: var(--table-bg) !important;
            activateLevel
    color: var(--text-primary) !important;
        };
     border-color: var(--table-border) !important;
     }
}


/*******************************************************************************
     function initTabber(widget) {
* CARDS
        const sections = Array.from(widget.querySelectorAll(".utab__section"));
*******************************************************************************/
        if (!sections.length) {
.card {
            return;
     background-color: var(--content-bg);
        }
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}


.card:hover {
        const tabs = document.createElement("div");
    transform: translateY(-2px);
        tabs.className = "utab__tabs";
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
        tabs.setAttribute("role", "tablist");
}
        tabs.setAttribute("aria-label", "Categorias");


.card-title {
        const tabButtons = [];
    background: var(--accent-gradient);
        const sectionStates = [];
    color: #fff;
}


/*******************************************************************************
        sections.forEach((section, index) => {
* HOMEPAGE
            const label = section.dataset.tab || `Categoria ${index + 1}`;
*******************************************************************************/
            section.classList.add("utab__panel");
.initialPage--table {
            section.setAttribute("role", "tabpanel");
    background: transparent !important;
            section.setAttribute("aria-label", label);
}


.initialPage--table > tbody > tr > th,
            const button = document.createElement("button");
.initialPage--table > tbody > tr > td {
            button.type = "button";
    background: transparent !important;
            button.className = "utab__tab";
}
            button.textContent = label;
            button.setAttribute("role", "tab");
            button.setAttribute("aria-selected", "false");
            button.setAttribute("tabindex", "-1");
            button.addEventListener("click", () => activateTab(index, true));
            button.addEventListener("keydown", (event) => handleArrowNavigation(event, tabButtons, activateTab));


.initialPage--title th {
            tabs.appendChild(button);
    background-color: transparent !important;
            tabButtons.push(button);
    color: var(--text-primary) !important;
            sectionStates.push(buildLevelUI(section, label));
}
        });


.initialPage--menuTitle {
        widget.prepend(tabs);
    background: var(--accent-gradient);
    color: #fff;
}


.initialPage--menuContainer,
        function activateTab(index, shouldFocus) {
.initialPage--sideMenuContainer {
            const safeIndex = Math.max(0, Math.min(index, sections.length - 1));
    background: transparent;
}


/*******************************************************************************
            sections.forEach((section, sectionIndex) => {
* SOCIAL MEDIA LINKS
                const isActive = sectionIndex === safeIndex;
*******************************************************************************/
                section.classList.toggle("is-active", isActive);
.initialPage--socialMedia {
                section.setAttribute("aria-hidden", isActive ? "false" : "true");
    border-top: 2px solid var(--border-light);
}


.initialPage--socialMediaLink {
                const tabButton = tabButtons[sectionIndex];
    color: var(--text-secondary) !important;
                tabButton.classList.toggle("is-active", isActive);
}
                tabButton.setAttribute("aria-selected", isActive ? "true" : "false");
                tabButton.setAttribute("tabindex", isActive ? "0" : "-1");
            });


.initialPage--socialMediaLink:visited {
            sectionStates[safeIndex]?.activateLevel(0, false);
    color: var(--text-secondary) !important;
}


.socialMedia--svg svg {
            if (shouldFocus) {
    fill: var(--text-secondary);
                tabButtons[safeIndex].focus();
}
            }
        }


/* Discord */
        activateTab(0, false);
.initialPage--socialMedia.discord > .initialPage--socialMediaLink:hover {
     }
    color: #5865f2 !important;
}
 
.initialPage--socialMedia.discord:before {
    background: #5865f2;
}
 
.initialPage--socialMedia.discord > .initialPage--socialMediaLink:hover > .socialMedia--svg svg {
    fill: #5865f2 !important;
}
 
/* Instagram */
.initialPage--socialMedia.instagram > .initialPage--socialMediaLink:hover {
    color: #f09433 !important;
}
 
.initialPage--socialMedia.instagram:before {
    background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
}
 
/* Facebook */
.initialPage--socialMedia.facebook > .initialPage--socialMediaLink:hover {
    color: #4267B2 !important;
}
 
.initialPage--socialMedia.facebook:before {
    background: #4267B2;
}
 
/*******************************************************************************
* BADGES & SECTION TITLES
*******************************************************************************/
.badge {
    background: var(--accent-gradient);
    color: #fff;
    box-shadow: rgba(69, 156, 202, 0.3) 0px 0px 0px 3px;
}
 
.section-title {
    background: var(--accent-gradient);
    color: #fff;
}
 
/*******************************************************************************
* FILTERS (CHARACTERS PAGE)
*******************************************************************************/
.filter {
    background-color: var(--content-bg);
    border: 2px solid var(--border-light);
}
 
.filter--title {
    background: var(--accent-gradient);
    border-right: 2px solid var(--border-light);
    color: #fff;
}
 
.filter--input {
    background-color: var(--input-bg);
    border: 2px solid var(--border-light);
    color: var(--text-primary);
}
 
.filter--input::placeholder {
    color: var(--text-muted);
}
 
.filter--searchButton {
    background: var(--accent-gradient);
    border: 2px solid var(--border-light);
}
 
.filter--icon img {
    filter: grayscale(0.5) brightness(0.9);
}
 
.filter--icon.active img {
    filter: grayscale(0) brightness(1);
    box-shadow: 0 0 12px rgba(69, 156, 202, 0.5);
}
 
/*******************************************************************************
* CHARACTER CARDS
*******************************************************************************/
#characters-container > div > a > img {
    filter: grayscale(0.2) brightness(0.95);
    border: 2px solid var(--border-color);
    transition: all 0.25s ease;
}
 
#characters-container > div:hover > a > img {
    filter: grayscale(0) brightness(1);
     border-color: var(--accent-primary);
    box-shadow: 0 0 20px rgba(69, 156, 202, 0.4);
    transform: scale(1.05);
}
 
/*******************************************************************************
* CHARACTER PAGE
*******************************************************************************/
.characterInfo--name {
    color: var(--text-primary) !important;
}
 
.characterInfo--contentContainer {
    background-color: var(--content-bg);
}
 
.stats--container {
    background-color: var(--content-bg);
}
 
.bar-filled {
    background: var(--accent-primary);
}
 
.bar-notFilled {
    background: var(--transparent-blue);
}
 
/*******************************************************************************
* SKILLS TABS
*******************************************************************************/
.tabsContainer table {
    background: transparent;
}
 
.tabsContainer table > tbody > tr > td {
    border-bottom: 2px solid var(--border-color);
}
 
.tab-skill {
    background-color: var(--content-bg);
    border: 2px solid transparent;
    transition: all 0.25s ease;
}
 
.tab-skill.active {
    border-color: var(--accent-primary);
    background-color: var(--surface-bg);
}
 
.tab-skill:hover {
    background-color: var(--surface-bg);
}
 
.skillInfo--name {
    color: var(--text-primary) !important;
}
 
.skillInfo--description {
    color: var(--text-secondary);
}
 
.skillInfo > div > .skillInfo--infoContainer b {
    color: var(--link-color) !important;
}
 
.skillInfo--attributesContainer > h1 {
    color: var(--text-muted) !important;
}
 
/* Scrollbar for skills */
.skillInfo--description::-webkit-scrollbar,
.tabSkill--container::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
 
.skillInfo--description::-webkit-scrollbar-track,
.tabSkill--container::-webkit-scrollbar-track {
    background-color: var(--scrollbar-track);
    border-radius: 10px;
}
 
.skillInfo--description::-webkit-scrollbar-thumb,
.tabSkill--container::-webkit-scrollbar-thumb {
    background-color: var(--scrollbar-thumb);
    border-radius: 10px;
}
 
.skillInfo--description::-webkit-scrollbar-thumb:hover,
.tabSkill--container::-webkit-scrollbar-thumb:hover {
    background-color: var(--scrollbar-hover);
}
 
/*******************************************************************************
* ATTRIBUTE CARDS
*******************************************************************************/
.attribute--cardsContainer {
    background: var(--surface-bg);
    border: 2px solid var(--border-color);
}
 
.cardAttribute--value {
    color: var(--text-primary) !important;
}
 
/*******************************************************************************
* SKINS CONTAINER
*******************************************************************************/
.skins--container {
    background-color: var(--content-bg);
}
 
.skins--container::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
 
.skins--container::-webkit-scrollbar-track {
    background-color: var(--scrollbar-track);
    border-radius: 10px;
}
 
.skins--container::-webkit-scrollbar-thumb {
    background-color: var(--scrollbar-thumb);
    border-radius: 10px;
}
 
/*******************************************************************************
* CALCULATOR XP
*******************************************************************************/
.calcXp--container {
    background-color: var(--content-bg);
    border: 2px solid var(--border-light);
}
 
.calcXp--resultTitle {
    color: var(--text-secondary) !important;
}
 
.calcXp--formItem input {
    background-color: var(--input-bg);
    border: 2px solid var(--border-light);
    color: var(--text-primary);
}
 
.calcXp--formItem span {
    color: var(--link-color);
}
 
#calculate-btn {
    background: var(--accent-gradient);
    color: #fff;
    border: none;
    box-shadow: 0 4px 12px rgba(69, 156, 202, 0.3);
}
 
#calculate-btn:hover {
    box-shadow: 0 6px 16px rgba(69, 156, 202, 0.4);
    transform: translateY(-2px);
    background: linear-gradient(135deg, #3d8ab8 0%, #4a76b5 100%);
}
 
/*******************************************************************************
* ITEM INFOBOX
*******************************************************************************/
.iteminfobox {
    background: var(--content-bg);
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
 
.iteminfobox b {
    color: var(--link-color);
}
 
/*******************************************************************************
* TOOLTIPS
*******************************************************************************/
.tooltipster-default {
    background-color: var(--content-bg) !important;
    color: var(--text-primary) !important;
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
}
 
.tip2 {
    background-color: var(--content-bg);
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
    color: var(--text-primary);
}
 
/*******************************************************************************
* TRANSCRIPTIONS / DIALOGS
*******************************************************************************/
.transcrições {
    background-color: var(--surface-bg);
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    color: var(--text-primary);
}
 
.transcrições::before {
    background-color: var(--surface-bg);
}
 
.transcrições b,
.transcrições strong {
    color: var(--text-primary) !important;
}
 
.me {
    color: var(--text-primary);
}
 
/*******************************************************************************
* TABBER COMPONENT
*******************************************************************************/
.mw-tabber-container {
    background-color: var(--content-bg);
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}
 
.mw-tabber-tabs {
    background-color: var(--surface-bg);
    border-bottom: 2px solid var(--border-color);
}
 
.mw-tabber-tab {
    background-color: var(--surface-bg);
    border-right: 1px solid var(--border-color);
    color: var(--text-secondary);
}
 
.mw-tabber-tab:hover {
    background-color: var(--content-bg);
    color: var(--link-hover);
}
 
.mw-tabber-tab.active {
    background-color: var(--content-bg);
    color: var(--link-color);
    border-bottom: 3px solid var(--accent-primary);
}
 
.mw-tabber-content {
    background-color: var(--content-bg);
}
 
/*******************************************************************************
* PRESET ABAS
*******************************************************************************/
.tabela-abas {
    background: transparent;
}
 
.mostrar-aba {
    background-color: transparent;
}
 
.mostrar-aba:hover::after {
    background-color: var(--text-muted);
}
 
.mostrar-aba.ativa::after {
    background-color: var(--accent-primary);
}
 
.sec-aba-cem {
    color: var(--text-primary);
}
 
.aba {
    background-color: var(--content-bg);
}
 
/*******************************************************************************
* WANTED PAGE
*******************************************************************************/
#selectbox-wanted {
    background-color: var(--input-bg);
    border: 2px solid var(--border-light);
    color: var(--text-primary);
}
 
.wantedPortrait--title {
    color: var(--text-primary);
}
 
/*******************************************************************************
* GLOBAL EVENT WIDGET
*******************************************************************************/
.global-event-widget {
    background-color: var(--content-bg);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    overflow: hidden;
}
 
#global-event-time {
    background: linear-gradient(to right, rgba(20, 22, 27, 0.9), transparent);
    color: var(--text-primary);
}
 
/*******************************************************************************
* CATEGORIES
*******************************************************************************/
#mw-normal-catlinks {
    background-color: var(--surface-bg);
    border: 1px solid var(--border-color);
    padding: 0.5em 1em;
    border-radius: 4px;
}
 
#mw-normal-catlinks ul a,
#mw-normal-catlinks a {
    color: var(--link-color) !important;
}
 
/*******************************************************************************
* TABLE OF CONTENTS
*******************************************************************************/
#toc {
    background-color: var(--surface-bg);
    border: 1px solid var(--border-color);
}
 
#toc h2 {
    color: var(--text-primary);
}
 
#toc ul li a {
    color: var(--link-color) !important;
}
 
#toc .toctogglelabel,
span.toctogglespan {
    display: none !important;
}
 
/*******************************************************************************
* IMAGE THUMBNAILS
*******************************************************************************/
.thumb {
    background-color: var(--surface-bg);
    border: 1px solid var(--border-color);
}
 
.thumbinner {
    background-color: var(--surface-bg);
    border: 1px solid var(--border-color);
}
 
.thumbcaption {
    color: var(--text-secondary) !important;
}
 
.mw-parser-output .center .thumbcaption,
.mw-parser-output .tright .thumbcaption {
    color: var(--text-secondary) !important;
}
 
.magnify a {
    display: none;
}
 
/*******************************************************************************
* EDITOR & UPLOAD
*******************************************************************************/
.wikiEditor-ui-toolbar {
    background-color: var(--surface-bg);
    border-color: var(--border-color);
}
 
.wikiEditor-ui-toolbar .tabs span.tab a {
    color: var(--text-primary) !important;
}
 
.wikiEditor-ui-toolbar .group .tool-select .label {
    color: var(--text-primary) !important;
}
 
.wikiEditor-ui-toolbar .group .tool-select .options .option {
    color: var(--text-primary) !important;
    background-color: var(--content-bg);
}
 
.wikiEditor-ui-toolbar .group .tool-select .options .option:hover {
    background-color: var(--surface-bg);
}
 
.wikiEditor-ui-toolbar .booklet > .index {
    color: var(--text-primary);
    background-color: var(--surface-bg);
}
 
.codeEditor-status-message {
    color: var(--text-primary) !important;
    background-color: var(--surface-bg);
    border-color: var(--border-color);
}
 
#msupload-div a {
    color: var(--link-color) !important;
}
 
#msupload-bottom a {
    color: var(--text-primary) !important;
}
 
#msupload-list .file {
    background: var(--surface-bg);
    border-top: 1px solid var(--border-color);
    color: var(--text-primary) !important;
}


/*******************************************************************************
     function initTabbers() {
* MISC ELEMENTS
        document.querySelectorAll(".utab").forEach(initTabber);
*******************************************************************************/
.mw-destfile-warning {
     background-color: var(--surface-bg);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
}
 
.mw-logline-protect {
    color: var(--text-primary) !important;
}
 
div.mw-number-text {
    color: var(--text-muted) !important;
}
 
div.mw-number-text h3 {
    color: var(--text-secondary) !important;
}
 
hr {
    border-color: var(--border-color);
}
 
ul {
    list-style-image: none;
}
 
.mw-parser-output small li,
.mw-parser-output tr i,
.mw-parser-output tr big {
    color: var(--text-primary) !important;
}
 
#contentSub,
#contentSub2 {
    margin: 0 !important;
    padding: 0 !important;
    display: none;
}
 
#footer-info-lastmod {
    display: none !important;
}
 
/*******************************************************************************
* SCALE UP HOVER EFFECT
*******************************************************************************/
.scaleUp-hover {
    transition: all 0.25s ease;
}
 
.scaleUp-hover:hover {
    transform: scale(1.08);
    filter: brightness(1.1);
}
 
/*******************************************************************************
* GLOBAL SCROLLBAR
*******************************************************************************/
::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}
 
::-webkit-scrollbar-track {
    background-color: var(--scrollbar-track);
}
 
::-webkit-scrollbar-thumb {
    background-color: var(--scrollbar-thumb);
    border-radius: 5px;
}
 
::-webkit-scrollbar-thumb:hover {
    background-color: var(--scrollbar-hover);
}
 
/* Firefox */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}
 
/*******************************************************************************
* SELECTION HIGHLIGHT
*******************************************************************************/
::selection {
    background-color: rgba(69, 156, 202, 0.4);
    color: var(--text-primary);
}
 
::-moz-selection {
    background-color: rgba(69, 156, 202, 0.4);
    color: var(--text-primary);
}
 
/*******************************************************************************
* RESPONSIVE ADJUSTMENTS
*******************************************************************************/
@media screen and (max-width: 1024px) {
    .initialPage--sideMenuContainer .card {
        background-color: var(--content-bg);
     }
     }
}


@media screen and (max-width: 768px) {
    if (document.readyState === "loading") {
    .mw-tabber-tab {
        document.addEventListener("DOMContentLoaded", initTabbers);
        background-color: var(--surface-bg);
    } else {
         border-bottom: 1px solid var(--border-color);
         initTabbers();
     }
     }
   
</script>
    .mw-tabber-tab.active {
        border-bottom: 3px solid var(--accent-primary);
    }
}
 
/*******************************************************************************
* VIDEO RESPONSIVO
*******************************************************************************/
.video-responsivo {
    background: var(--page-bg);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    overflow: hidden;
}
 
.pagevideo {
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background-color: var(--page-bg);
}
 
/*******************************************************************************
* UTILITY OVERRIDES (ensure dark theme)
*******************************************************************************/
.oo-ui-popupWidget-head > .oo-ui-iconElement-noIcon + .oo-ui-labelElement-label {
    color: var(--text-primary);
}
 
#ca-delete a,
#ca-move a,
#ca-unprotect a {
    background-color: var(--surface-bg) !important;
    border-color: var(--border-color) !important;
    color: var(--link-color) !important;
}

Edição das 16h57min de 7 de fevereiro de 2026

<style>

   .utab {
       font-family: "Segoe UI", Arial, sans-serif;
       color: #e2ecff;
       padding: 24px;
       max-width: 980px;
       margin: 24px auto;
   }
   .utab__tabs {
       display: flex;
       flex-wrap: wrap;
       gap: 8px;
       margin-bottom: 0;
       border-bottom: 1px solid #203c5f;
   }
   .utab__tab {
       display: inline-flex;
       align-items: center;
       border: 1px solid #274a74;
       border-bottom: none;
       background: #0f1b2d;
       padding: 10px 14px;
       border-radius: 10px 10px 0 0;
       cursor: pointer;
       font-weight: 600;
       color: #cfe1ff;
       transition: all 0.2s ease;
   }
   .utab__tab:hover {
       border-color: #4a86d8;
       color: #ffffff;
   }
   .utab__tab.is-active {
       background: #2e7dd7;
       border-color: #2e7dd7;
       color: #ffffff;
       position: relative;
       top: 1px;
   }
   .utab__tab.is-active::after {
       content: "";
       position: absolute;
       left: 0;
       right: 0;
       bottom: -2px;
       height: 2px;
       background: #0f1b2d;
   }
   .utab__tab:focus-visible,
   .utab__levelBtn:focus-visible {
       outline: 2px solid rgba(46, 125, 215, 0.4);
       outline-offset: 2px;
   }
   .utab__section {
       display: none;
   }
   .utab__section.is-active {
       display: block;
   }
   .utab__panel {
       background: #0f1b2d;
       border-radius: 0 14px 14px 14px;
       padding: 20px;
       border: 1px solid #203c5f;
       box-shadow: 0 10px 24px rgba(7, 14, 26, 0.35);
   }
   .utab__levels {
       display: flex;
       flex-wrap: wrap;
       gap: 8px;
       margin-bottom: 16px;
   }
   .utab__levelBtn {
       border: 1px solid #274a74;
       background: #13243a;
       padding: 6px 12px;
       border-radius: 10px;
       font-weight: 600;
       color: #cfe1ff;
       cursor: pointer;
       transition: all 0.2s ease;
   }
   .utab__levelBtn:hover {
       border-color: #4a86d8;
       color: #ffffff;
   }
   .utab__levelBtn.is-active {
       background: #2e7dd7;
       border-color: #2e7dd7;
       color: #ffffff;
   }
   .utab__display {
       display: grid;
       grid-template-columns: minmax(160px, 220px) 1fr;
       gap: 18px;
       align-items: start;
   }
   .utab__display.is-image-empty {
       grid-template-columns: 1fr;
   }
   .utab__display.is-fading {
       animation: utabFade 0.25s ease;
   }
   .utab__image {
       border-radius: 12px;
       border: 1px solid #203c5f;
       background: #0b1422;
       padding: 10px;
   }
   .utab__image img {
       display: block;
       width: 100%;
       height: auto;
       border-radius: 8px;
   }
   .utab__image.is-empty {
       display: none;
   }
   .utab__stats {
       display: grid;
       gap: 10px;
       color: #dbe7ff;
       font-size: 14px;
   }
   .utab__stat {
       background: #13243a;
       border: 1px solid #274a74;
       border-radius: 10px;
       padding: 10px 12px;
   }
   .utab__statTitle {
       font-weight: 700;
       color: #8bb8ff;
   }
   .utab__statList {
       margin: 6px 0 0;
       padding-left: 18px;
       display: grid;
       gap: 2px;
       list-style: disc;
       list-style-position: outside;
   }
   .utab__statList li {
       display: list-item;
       text-align: left;
   }
   .utab__costRow {
       position: relative;
   }
   .utab__costBerry,
   .utab__costGems,
   .utab__costPoints {
       display: inline-flex;
       align-items: center;
       gap: 6px;
       font-weight: 700;
       line-height: 1.1;
       font-size: 15px;
   }
   .utab__costBerry {
       color: #ffd166;
   }
   .utab__costGems {
       color: #57d889;
   }
   .utab__costPoints {
       color: #a6b0bf;
   }
   .utab__costIcon {
       display: none;
   }
   .utab__costBerry .utab__costIcon,
   .utab__costGems .utab__costIcon,
   .utab__costPoints .utab__costIcon,
   .utab__costBerry .utab__costText,
   .utab__costGems .utab__costText,
   .utab__costPoints .utab__costText {
       transform: none;
   }
   .utab__level--source {
       display: none;
   }
   @keyframes utabFade {
       from {
           opacity: 0;
           transform: translateY(4px);
       }
       to {
           opacity: 1;
           transform: translateY(0);
       }
   }
   @media (max-width: 720px) {
       .utab {
           padding: 16px;
       }
       .utab__display {
           grid-template-columns: 1fr;
       }
   }

</style>

   <section class="utab__section" data-tab="Designer">
  • 1 pilar de artefato disponível
  • 27 símbolos disponíveis
  • 1 plano de fundo disponível
  • 6 cores disponíveis
  • 2% de EXP
  • 4% de sorte
  • 5% de pontos de aliança
  • 2 pilares de artefato disponíveis
  • 9 planos de fundo disponíveis
  • 47 símbolos disponíveis
  • 12 cores disponíveis
  • 4% de EXP
  • 9% de sorte
  • 12% de pontos de aliança
  • 2 pilares de artefato disponíveis
  • 34 planos de fundo disponíveis
  • 72 símbolos disponíveis
  • 30 cores disponíveis
  • 6% de EXP
  • 15% de sorte
  • 22% de pontos de aliança
  • 3 pilares de artefato disponíveis
  • 34 planos de fundo disponíveis
  • 92 símbolos disponíveis
  • 30 cores disponíveis
  • 8% de EXP
  • 22% de sorte
  • 35% de pontos de aliança
  • 4 pilares de artefato disponíveis
  • 34 planos de fundo disponíveis
  • 112 símbolos disponíveis
  • 30 cores disponíveis
  • 10% de EXP
  • 30% de sorte
  • 50% de pontos de aliança
   </section>
   <section class="utab__section" data-tab="Cofre">
  • 10% de bônus pra aliança
  • + 100 espaços extra no cofre
  • 25% de bônus pra aliança
  • + 200 espaços extra no cofre
  • 45% de bônus pra aliança
  • + 300 espaços extra no cofre
  • 75% de bônus pra aliança
  • + 400 espaços extra no cofre
  • 100% de bônus pra aliança
   </section>
   <section class="utab__section" data-tab="Salão Principal">
  • Descrição do nível 1
  • Descrição do nível 2
  • Descrição do nível 3
  • Descrição do nível 4
  • Descrição do nível 5
   </section>
   <section class="utab__section" data-tab="Quartos">
  • Descrição do nível 1
  • Descrição do nível 2
  • Descrição do nível 3
  • Descrição do nível 4
  • Descrição do nível 5
   </section>
   <section class="utab__section" data-tab="Sala de Guerra">
  • Descrição do nível 1
  • Descrição do nível 2
  • Descrição do nível 3
  • Descrição do nível 4
  • Descrição do nível 5
   </section>
   <section class="utab__section" data-tab="Treinamento">
  • Descrição do nível 1
  • Descrição do nível 2
  • Descrição do nível 3
  • Descrição do nível 4
  • Descrição do nível 5
   </section>
   <section class="utab__section" data-tab="Ferreiro">
  • Descrição do nível 1
  • Descrição do nível 2
  • Descrição do nível 3
  • Descrição do nível 4
  • Descrição do nível 5
   </section>
   <section class="utab__section" data-tab="Cozinha">
  • Descrição do nível 1
  • Descrição do nível 2
  • Descrição do nível 3
  • Descrição do nível 4
  • Descrição do nível 5
   </section>

<script>

   function handleArrowNavigation(event, buttons, activate) {
       const keys = ["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown", "Home", "End"];
       if (!keys.includes(event.key)) {
           return;
       }
       event.preventDefault();
       const currentIndex = buttons.findIndex((button) => button === document.activeElement);
       if (currentIndex === -1) {
           return;
       }
       let nextIndex = currentIndex;
       if (event.key === "Home") {
           nextIndex = 0;
       } else if (event.key === "End") {
           nextIndex = buttons.length - 1;
       } else if (event.key === "ArrowLeft" || event.key === "ArrowUp") {
           nextIndex = (currentIndex - 1 + buttons.length) % buttons.length;
       } else if (event.key === "ArrowRight" || event.key === "ArrowDown") {
           nextIndex = (currentIndex + 1) % buttons.length;
       }
       activate(nextIndex, true);
   }
   function triggerFade(element) {
       element.classList.remove("is-fading");
       void element.offsetWidth;
       element.classList.add("is-fading");
   }
   function hasWikitext(value) {
       return typeof value === "string" && (value.includes("[[") || value.includes("{{"));
   }
   function parseWikitextCached(raw, cacheKey, target) {
       if (!raw || !hasWikitext(raw)) {
           return Promise.resolve(raw);
       }
       if (target[cacheKey]) {
           return Promise.resolve(target[cacheKey]);
       }
       if (!window.mw || !mw.Api) {
           return Promise.resolve(raw);
       }
       const api = new mw.Api();
       return api
           .post({
               action: "parse",
               text: raw,
               contentmodel: "wikitext",
               prop: "text",
               formatversion: 2
           })
           .then((response) => {
               const html = response?.parse?.text || response?.parse?.text?.["*"] || raw;
               target[cacheKey] = html;
               return html;
           })
           .catch(() => raw);
   }
   const upgradeCosts = [
       { level: 1, berries: "50.000", gems: "10", points: "400" },
       { level: 2, berries: "250.000", gems: "10", points: "1.500" },
       { level: 3, berries: "400.000", gems: "20", points: "3.000" },
       { level: 4, berries: "1.000.000", gems: "50", points: "12.500" },
       { level: 5, berries: "1.800.000", gems: "90", points: "28.000" }
   ];
   function buildLevelUI(section, tabLabel) {
       const levelElements = Array.from(section.querySelectorAll(".utab__level"));
       const levels = levelElements.map((levelElement, index) => {
           const levelNumber = levelElement.dataset.level || String(index + 1);
           const contentElement = levelElement.querySelector(".utab__content") || levelElement;
           const rawHtml = contentElement.innerHTML.trim();
           const contentWrapper = document.createElement("div");
           contentWrapper.innerHTML = rawHtml;
           const mediaImage = contentWrapper.querySelector(".utab__mediaImage");
           const imageHtml = mediaImage ? mediaImage.innerHTML.trim() : "";
           if (mediaImage) {
               mediaImage.remove();
           }
           const statsHtml = contentWrapper.innerHTML.trim();
           return {
               level: levelNumber,
               imageHtml,
               statsHtml
           };
       });
       levelElements.forEach((levelElement) => {
           levelElement.classList.add("utab__level--source");
       });
       const nav = document.createElement("div");
       nav.className = "utab__levels";
       nav.setAttribute("role", "tablist");
       nav.setAttribute("aria-label", `Níveis de ${tabLabel}`);
       const display = document.createElement("div");
       display.className = "utab__display";
       const imageWrap = document.createElement("div");
       imageWrap.className = "utab__image";
       const stats = document.createElement("div");
       stats.className = "utab__stats";
       display.appendChild(imageWrap);
       display.appendChild(stats);
       const buttons = levels.map((level, index) => {
           const button = document.createElement("button");
           button.type = "button";
           button.className = "utab__levelBtn";
           button.textContent = `Nv ${level.level}`;
           button.setAttribute("role", "tab");
           button.setAttribute("aria-selected", "false");
           button.setAttribute("tabindex", "-1");
           button.addEventListener("click", () => activateLevel(index, true));
           button.addEventListener("keydown", (event) => handleArrowNavigation(event, buttons, activateLevel));
           nav.appendChild(button);
           return button;
       });
       section.prepend(display);
       section.prepend(nav);
       let renderToken = 0;
       function activateLevel(index, shouldFocus) {
           if (!levels.length) {
               return;
           }
           const safeIndex = Math.max(0, Math.min(index, levels.length - 1));
           const current = levels[safeIndex];
           const token = ++renderToken;
           buttons.forEach((button, buttonIndex) => {
               const isActive = buttonIndex === safeIndex;
               button.classList.toggle("is-active", isActive);
               button.setAttribute("aria-selected", isActive ? "true" : "false");
               button.setAttribute("tabindex", isActive ? "0" : "-1");
           });
           if (current.imageHtml) {
               imageWrap.innerHTML = current.imageHtml;
               imageWrap.classList.remove("is-empty");
               display.classList.remove("is-image-empty");
           } else {
               imageWrap.innerHTML = "";
               imageWrap.classList.add("is-empty");
               display.classList.add("is-image-empty");
           }
           const levelNumber = Number(current.level);
           const cost = upgradeCosts.find((item) => item.level === levelNumber);
           const costHtml = cost
               ? `
Custo do upgrade
  • ${cost.berries} berries
  • ${cost.gems ? `
  • ${cost.gems} gemas
  • ` : ""}
  • ${cost.points} pontos
               `
               : "";
           stats.innerHTML = `${current.statsHtml}${costHtml}`;
           triggerFade(display);
           const shouldParse =
               (current.imageHtml && hasWikitext(current.imageHtml)) ||
               (current.statsHtml && hasWikitext(current.statsHtml));
           if (shouldParse) {
               Promise.all([
                   parseWikitextCached(current.imageHtml, "parsedImageHtml", current),
                   parseWikitextCached(current.statsHtml, "parsedStatsHtml", current)
               ]).then(([parsedImage, parsedStats]) => {
                   if (renderToken !== token) {
                       return;
                   }
                   if (parsedImage && parsedImage !== current.imageHtml) {
                       imageWrap.innerHTML = parsedImage;
                       imageWrap.classList.remove("is-empty");
                       display.classList.remove("is-image-empty");
                   }
                   if (parsedStats && parsedStats !== current.statsHtml) {
                       stats.innerHTML = `${parsedStats}${costHtml}`;
                   }
               });
           }
           if (shouldFocus) {
               buttons[safeIndex].focus();
           }
       }
       return {
           activateLevel
       };
   }
   function initTabber(widget) {
       const sections = Array.from(widget.querySelectorAll(".utab__section"));
       if (!sections.length) {
           return;
       }
       const tabs = document.createElement("div");
       tabs.className = "utab__tabs";
       tabs.setAttribute("role", "tablist");
       tabs.setAttribute("aria-label", "Categorias");
       const tabButtons = [];
       const sectionStates = [];
       sections.forEach((section, index) => {
           const label = section.dataset.tab || `Categoria ${index + 1}`;
           section.classList.add("utab__panel");
           section.setAttribute("role", "tabpanel");
           section.setAttribute("aria-label", label);
           const button = document.createElement("button");
           button.type = "button";
           button.className = "utab__tab";
           button.textContent = label;
           button.setAttribute("role", "tab");
           button.setAttribute("aria-selected", "false");
           button.setAttribute("tabindex", "-1");
           button.addEventListener("click", () => activateTab(index, true));
           button.addEventListener("keydown", (event) => handleArrowNavigation(event, tabButtons, activateTab));
           tabs.appendChild(button);
           tabButtons.push(button);
           sectionStates.push(buildLevelUI(section, label));
       });
       widget.prepend(tabs);
       function activateTab(index, shouldFocus) {
           const safeIndex = Math.max(0, Math.min(index, sections.length - 1));
           sections.forEach((section, sectionIndex) => {
               const isActive = sectionIndex === safeIndex;
               section.classList.toggle("is-active", isActive);
               section.setAttribute("aria-hidden", isActive ? "false" : "true");
               const tabButton = tabButtons[sectionIndex];
               tabButton.classList.toggle("is-active", isActive);
               tabButton.setAttribute("aria-selected", isActive ? "true" : "false");
               tabButton.setAttribute("tabindex", isActive ? "0" : "-1");
           });
           sectionStates[safeIndex]?.activateLevel(0, false);
           if (shouldFocus) {
               tabButtons[safeIndex].focus();
           }
       }
       activateTab(0, false);
   }
   function initTabbers() {
       document.querySelectorAll(".utab").forEach(initTabber);
   }
   if (document.readyState === "loading") {
       document.addEventListener("DOMContentLoaded", initTabbers);
   } else {
       initTabbers();
   }

</script>