MediaWiki:Common.js: Difference between revisions

From Elwiki
No edit summary
No edit summary
(97 intermediate revisions by 2 users not shown)
Line 1: Line 1:
/* Color scheme */
function matchHeaderText() {
:root {
     $('table[cellpadding="5"][border="1"][style] tr[style]:not(.dungeon-page-fields tr), table[cellpadding="5"][border="1"][style] tr[class]:not(.dungeon-page-fields tr), .instance-page .segment-header, .auto-header-color .segment-header, .alt-langs th, .updates-table th, table[cellpadding="5"][border="1"][class*="colortable-"] th, .auto-text-color .segment-header').each(function () {
     --accent-color: #00adda;
        var rgb = $(this).css('backgroundColor');
    --border-color: #d9d9d9;
        var colors = rgb.match(/\d+/g);
    --border-color-tone-2: #bbbbbb;
        var o = Math.round(((parseInt(colors[0]) * 299) + (parseInt(colors[1]) * 587) + (parseInt(colors[2]) * 114)) / 1000);
    --theme-tone-1: #fff;
        if ($(this).parents('.section-characters').length) return;
    --theme-tone-2: #f5f5f5;
        if (o < 155 && rgb != 'rgba(0, 0, 0, 0)') {
    --theme-tone-3: #ededed;
            $(this).addClass('force-white');
    --theme-tone-4: #f7f7f7;
        } else if (!$(this).is('tr')) {
    --theme-tone-5: #f4f5f7;
            $(this).addClass('force-black');
     --theme-tone-6: #f9fafb;
        }
     --theme-tone-7: #eaecf0;
     });
    --theme-tone-8: #dce0e6;
     setTimeout(function () {
    --theme-tone-9: #b2b6bd;
        $('.segment-partial .mw-collapsible-text, .segment .mw-collapsible-text').each(function () {
    --text-color: black;
            var matched_white = $(this).parents('.segment').find('.segment-header:eq(0)').hasClass('force-white');
    --text-color-invert: white;
            var matched_black = $(this).parents('.segment').find('.segment-header:eq(0)').hasClass('force-black');
     --inactive-color: #555a60;
            if (matched_white) {
                $(this).addClass('force-white')
            } else if (matched_black) {
                $(this).addClass('force-black')
            }
        });
     }, 50);
}
}


::selection {
var loadJS = function (url, implementationCode, location) {
     background-color: var(--accent-color);
     var scriptTag = document.createElement('script');
     color: white;
     scriptTag.src = url;
}
    scriptTag.onload = implementationCode;
    scriptTag.onreadystatechange = implementationCode;
    location.appendChild(scriptTag);
};
var popperLoaded = function () {
    var tippyLoaded = function () {
        tippy('.tippy-btn', {
            interactive: true,
            allowHTML: true,
            appendTo: document.body,
            delay: 200
        });
        document.body.classList.add('tippy-loaded');
    };


::-moz-selection {
    loadJS('https://elwiki.net/wiki/index.php?title=MediaWiki:Tippy.js&action=raw&ctype=text/javascript', tippyLoaded, document.body);
    background-color: var(--accent-color);
    color: white;
}
}


::-webkit-scrollbar {
function enhancements() {
     background: var(--theme-tone-6);
     $('.infobox .tabs-tabbox').before('<div class="tabs-background"></div>');
     width: 12px;
     $('dfn').parents('p').remove();
     border-radius: 8px;
     $('.sidebar-chunk #nav > ul > li:has(".mw-selflink")').find('> a').addClass('mw-has-selflink');
    border: 1px solid var(--border-color);
    if (window.location.pathname == '/w/Special:RecentChanges') $('#mw-site-navigation .sidebar-chunk a[href="/w/Special:RecentChanges"]').addClass('mw-has-selflink');
}
     $('#p-banner').html("<span><span class='main-accent'>El</span>wiki</span>");
::-webkit-scrollbar-thumb {
     $('.region-map img[alt="About this image"]').attr('src', 'https://elwiki.net/wiki/images/1/1f/UI_-_Help.png').show();
    background-color: var(--theme-tone-9);
     $('table[cellpadding="5"][border="1"][style] tr[style*="rgb(68, 68, 68)"] th').css('border-color', 'black');
     border-radius: 8px;
     border-left: 1px solid var(--border-color);
     border-right: 1px solid var(--border-color);
}
::-webkit-scrollbar-button {
    display: none;
}


::-moz-scrollbar {
     matchHeaderText();
     background: var(--theme-tone-6);
     $('.skill-nav-skill:has(.mw-selflink)').addClass('self-skill');
     width: 12px;
    $("#ca-ve-edit").clone().attr('id', 'ca-ve-edit-clone').prependTo($('#p-views .mw-portlet-body ul'));
    border-radius: 8px;
     $("#ca-ve-edit").hide();
    border: 1px solid var(--border-color);
}
::-moz-scrollbar-thumb {
    background: var(--theme-tone-8);
    border-radius: 8px;
    border-left: 1px solid var(--border-color);
     border-right: 1px solid var(--border-color);
}
::-moz-scrollbar-button {
    display: none;
}


body {
     var rows_to_highlight = [
     background-color: var(--theme-tone-4);
        'Normal',
     overflow-x: hidden;
        '[Enhanced]',
}
        'PvE',
        'PvP'
     ]


#mw-wrapper {
    rows_to_highlight.forEach(function (rowContent) {
    color: var(--text-color);
        var rows = $('[class^="colortable-"] td b:contains("' + rowContent + '")');
}
        rows.each(function () {
            const textContent = $(this).parents('td')[0].textContent.trim();
            if (textContent == rowContent) $(this).parent().addClass('tone-4');
        })
    })
    loadJS('https://unpkg.com/@popperjs/core@2.11.6/dist/umd/popper.min.js', popperLoaded, document.body);


/* Element colors */
    $('.related-skills td[width="150"]').each(function () {
        if (!$(this).find('.skill-wrap').length) {
            $(this).wrapInner('<div class="skill-wrap-text"></div>');
            $(this).wrapInner('<div class="skill-wrap"></div>');
        }
    });


a,
    $('.related-skills:not(.no-div):not(.skill-table)').each(function () {
a:link,
        var limit = $(this).attr('width');
.mw-parser-output a.external {
        var limitString = '';
    color: var(--accent-color);
        if (limit !== undefined) limitString = " data-limit='" + limit + "'";
}
        $(this).replaceWith($(this).html()
            .replace(/<tbody/gi, "<div class='" + $(this).attr('class') + "'" + limitString)
            .replace(/<tr/gi, "<div data-type='table-row'")
            .replace(/<\/tr>/gi, "</div>")
            .replace(/<td/gi, "<div data-type='table-cell'")
            .replace(/<\/td>/gi, "</div>")
            .replace(/<th/gi, "<div data-type='table-head'")
            .replace(/<\/th>/gi, "</div>")
            .replace(/<\/tbody/gi, "<\/div")
        );
    });


a:visited {
    $('.skill-wrap:not(.no-div .skill-wrap, .skill-table .skill-wrap)').each(function () {
    color: #328ba4;
        var link = $(this).find('> .skill-wrap-text a:not(.image)').attr('href');
}
        $(this).wrap('<a href="' + link + '">');
    });


a.new:hover,
    $('.related-skills.no-div td[width="150"]').click(function () {
.new a:hover,
        $(this).find('.skill-wrap > .skill-wrap-text a:not(.image)').get(0).click();
a.new:visited,
     });
.new a:visited {
     color: #b32424;
}


a.new,
    function chunk(arr, len) {
.new a {
        var chunks = [],
    color: #dd3333;
            i = 0,
}
            n = arr.length;
        while (i < n) {
            chunks.push(arr.slice(i, i += len));
        }
        return chunks;
    }


table tr[style]:not(.textfloat) {
    color: black;
}


.mw-editform .editOptions,
    $('.related-skills:not(.skill-table)').each(function () {
.suggestions .suggestions-results {
        var cell = $(this).find('[data-type="table-cell"]');
    background-color: var(--theme-tone-2);
        var limit = $(this).attr('data-limit');
    border-color: var(--border-color);
        if (limit !== undefined && limit != '' && !isNaN(limit)) limit = parseInt(limit) * 2;
}
        else limit = 8;
        var attempt = false;
        $(this).find('[data-type="table-row"]').each(function () {
            if ($(this).find('[data-type="table-cell"]').length > limit) attempt = true;
        });
        if (attempt) {
            var overflow_elems = chunk(cell, limit);
            $(this).empty();
            for (var i = 0; i < overflow_elems.length; i++) {
                $(this).append('<div data-type="table-row">');
                $(this).find('[data-type="table-row"]:last').append(overflow_elems[i]);
            }
        }
    });


#pagehistory li.selected {
    $('.related-skills:not(.no-div):not(.skill-table)').addClass('shown');
    background-color: var(--theme-tone-2);
    color: var(--text-color);
    outline: 1px dashed #a2a9b1;
    outline-color: var(--border-color-tone-2);
}


.oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover {
    background-color: var(--theme-tone-3);
}


.mw-body li.gallerybox div.thumb,
    $('.boss-timer-section .tabber-tab').click(function (e) {
.oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button {
        if (e.screenX && e.screenX != 0 && e.screenY && e.screenY != 0) {
    background: var(--theme-tone-4);
            setCookie('current-server-timer', $(this).text());
     border-color: var(--border-color);
        }
}
     });


pre,
    $('.henir-stage .inner').click(function (e) {
textarea,
        e.preventDefault();
input,
        var link = $(this).find('a:not(.tippy-content a)').attr('href');
.mw-editform,
        //window.location.href = window.location.origin + link;
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined .oo-ui-inputWidget-input {
        window.open(window.location.origin + link)
    background-color: var(--theme-tone-4);
    });
    border-color: var(--border-color);
    color: var(--text-color);
}


.oo-ui-popupWidget-head {
    setTimeout(function () { $('.current-info .segment-contents > .mw-collapsible-content').addClass('shown') }, 100);
    background: var(--theme-tone-4);
    border-color: var(--border-color) !important;
}


.oo-ui-tagItemWidget.oo-ui-widget-enabled:not(.oo-ui-tagItemWidget-fixed),
    if (typeof character_banner_exists !== undefined) mw.loader.load('https://elwiki.net/wiki/index.php?title=MediaWiki:Character-Banner.js&action=raw&ctype=text/javascript');
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined
    .oo-ui-tagItemWidget.oo-ui-widget-enabled,
.oo-ui-popupWidget-popup,
.oo-ui-decoratedOptionWidget.oo-ui-iconElement,
.mw-rcfilters-ui-menuSelectWidget,
.oo-ui-widget.oo-ui-labelElement.mw-rcfilters-ui-filterMenuHeaderWidget,
.mw-rcfilters-ui-filterMenuOptionWidget.oo-ui-flaggedElement-muted:not(.oo-ui-optionWidget-selected),
.mw-rcfilters-ui-filterMenuHeaderWidget-header,
div > .flow-menu ul,
.thumbinner,
.mw-body .mw-search-profile-tabs,
ul#filetoc,
.toc,
.mw-warning {
    background-color: var(--theme-tone-5);
    border-color: var(--border-color);
    color: var(--text-color);
}


textarea.oo-ui-inputWidget-input,
    if ($('.boss-timer').length) {
.flow-ui-editorWidget-editor > .oo-ui-textInputWidget textarea,
        mw.loader.load('https://elwiki.net/wiki/index.php?title=MediaWiki:BossTimer.js&action=raw&ctype=text/javascript');
.flow-ui-newTopicWidget-expanded .flow-ui-newTopicWidget-title.oo-ui-textInputWidget input,
     }
.oo-ui-textInputWidget .oo-ui-inputWidget-input,
input.mw-ui-input.mw-ui-input-large,
a.flow-ui-input-replacement-anchor.mw-ui-input,
input.mw-ui-input {
    background-color: var(--theme-tone-5);
     color: var(--text-color);
}


.oo-ui-menuSectionOptionWidget,
     if ($('.server-time-wrap').length) {
.mw-rcfilters-ui-menuSelectWidget-footer,
        mw.loader.load('https://elwiki.net/wiki/index.php?title=MediaWiki:ServerTime.js&action=raw&ctype=text/javascript');
.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined
     }
     .mw-rcfilters-ui-tagItemWidget-selected.oo-ui-tagItemWidget.oo-ui-widget-enabled,
.mw-notification.mw-notification-autohide.mw-notification-tag-watch-self,
.suggestions .suggestions-special,
.mw-notification.mw-notification-replaced {
    background: var(--theme-tone-5);
     border-color: var(--border-color);
}


.oo-ui-widget.oo-ui-widget-enabled.mw-echo-ui-notificationItemWidget,
    $('.dungeon-map .region-map').prepend('<div class="tabber-list-toggle"><img src="https://elwiki.net/wiki/images/7/7c/UI_-_Toggle.png"/></div>');
.oo-ui-menuSelectWidget {
    background-color: var(--theme-tone-5);
    border-color: var(--border-color-tone-2) !important;
}


.oo-ui-tagMultiselectWidget-handle {
    $('.tabber-list-toggle img').click(function () {
    background-color: var(--theme-tone-5) !important;
        $('.tabber-list-toggle img').toggleClass('back');
    border-color: var(--border-color) !important;
        $('.dungeon-map .tabber-vertical .tabber-ul').toggleClass('list-hidden');
}
    });


.mw-echo-ui-crossWikiNotificationItemWidget-group,
    $('body').append('<div id="dark-mode-switch"></div>')
.mw-echo-ui-bundleNotificationItemWidget-group,
.oo-ui-tabSelectWidget-framed,
.mw-echo-ui-placeholderItemWidget,
.flow-topic-titlebar {
    background-color: var(--theme-tone-5);
}


.mw-changeslist-legend {
    $('#dark-mode-switch').click(function () {
    background: var(--theme-tone-5) !important;
        setCookie('not-new', true);
    border: none !important;
        if ($('body').hasClass('dark-mode')) {
    color: var(--text-color) !important;
            setCookie('elwiki-dark-mode', 'false');
}
        } else {
            setCookie('elwiki-dark-mode', 'true');
        }
        setTimeout(function () {
            window.location.reload(1);
        }, 50)
    });


.oo-ui-popupWidget-anchored-top .oo-ui-popupWidget-anchor:after {
    if (getCookie('elwiki-dark-mode') == 'true') $('body').addClass('dark-mode');
     border-bottom-color: var(--theme-tone-4);
     if (getCookie('not-new') == null) $('#dark-mode-switch').addClass('new');
}


.oo-ui-popupWidget-anchored-top .oo-ui-popupWidget-anchor:before {
    // This is pretty cringe, tabs don't load sometimes
    border-bottom-color: var(--border-color);
    if (!$('.tabber-new.loaded').length) mw.loader.load('https://elwiki.net/wiki/index.php?title=MediaWiki:Gadget-Tabs.js&action=raw&ctype=text/javascript')
}
}


#wpSummary {
$(function () {
     background-color: var(--theme-tone-6);
     doRoundEdges();
     border-color: var(--border-color-tone-2);
     performIE();
     color: var(--text-color);
     enhancements();
}


#mw-related-navigation .sidebar-chunk,
    // Fix the preview button losing custom script output
#mw-content,
    // This is a complete ChatGPT moment, I couldn't be arsed to debug on my own
#personal .dropdown ul {
    $(document).on('DOMNodeInserted', function (event) {
    border-color: var(--theme-tone-6);
        var element = event.target;
}
        if ($(element).hasClass('previewnote')) {
            var previewLoaded = $(element).find('.previewloading').length == 0;
            if (previewLoaded && !$(element).hasClass('custom-preview-run')) {
                $(element).addClass('custom-preview-run');
                enhancements();
            }
        }
    });
});


.diff-context {
if ($('.skin-minerva').length) {
     background: var(--theme-tone-6);
     var time_loading = 0;
    border-color: var(--border-color);
    var chkReadyState = setInterval(function () {
     color: var(--text-color);
        if (document.readyState == "complete" || time_loading > 3000) {
            // clear the interval
            clearInterval(chkReadyState);
            $('#loading-screen').css({ transition: '300ms', pointerEvents: 'none', opacity: 0 });
        }
        time_loading += 100;
     }, 100);
}
}


#mw-header-container,
function docReady(fn) {
#mw-header-hack div,
    // see if DOM is already available
#mw-related-navigation .sidebar-chunk,
    if (document.readyState === "complete" || document.readyState === "interactive") {
#p-personal ul,
        // call on next available tick
#personal #personal-inner,
        setTimeout(fn, 1);
.oo-ui-checkboxInputWidget [type="checkbox"] + span,
    } else {
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
        document.addEventListener("DOMContentLoaded", fn);
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active:focus,
     }
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button,
.mw-prefs-buttons,
#mw-footer-container,
.flow-ui-modal-layout {
    background-color: var(--theme-tone-6);
     color: var(--text-color);
}
}


.flow-component .flow-list li:hover,
function setCookie(name, value, days) {
.flow-component.flow-board-page .flow-board-header,
    var expires = "";
.oo-ui-messageDialog-text.oo-ui-layout.oo-ui-panelLayout.oo-ui-panelLayout-padded {
    if (days) {
     background-color: var(--theme-tone-6);
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toUTCString();
    }
     document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
}
 
function getCookie(name) {
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
     var nameEQ = name + "=";
    background-color: var(--theme-tone-7);
     var ca = document.cookie.split(';');
    color: var(--text-color);
     for (var i = 0; i < ca.length; i++) {
    border-color: var(--border-color);
        var c = ca[i];
}
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
 
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
.mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-optionWidget-selected,
     }
.mw-rcfilters-ui-itemMenuOptionWidget:hover,
     return null;
.oo-ui-widget.oo-ui-widget-enabled.mw-echo-ui-notificationItemWidget.mw-echo-ui-notificationItemWidget-unread
    .oo-ui-widget.oo-ui-widget-enabled.mw-echo-ui-notificationItemWidget.mw-echo-ui-notificationItemWidget-unread
    .mw-echo-ui-notificationsListWidget
    a,
.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted,
.oo-ui-menuOptionWidget.oo-ui-optionWidget-selected,
.oo-ui-widget.oo-ui-widget-enabled.mw-echo-ui-notificationItemWidget.mw-echo-ui-notificationItemWidget-unread,
.mw-echo-ui-notificationItemWidget-unread .mw-echo-ui-menuItemWidget {
     background: var(--theme-tone-7);
}
 
.oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected,
.oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-widget-enabled:active,
.mw-echo-ui-notificationBadgeButtonPopupWidget-popup
    > .oo-ui-popupWidget-popup
    > .oo-ui-popupWidget-footer
    .mw-echo-ui-notificationBadgeButtonPopupWidget-footer-buttons
    .oo-ui-buttonElement
    > .oo-ui-buttonElement-button:hover,
.oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button:hover {
     background-color: var(--theme-tone-7) !important;
}
 
.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
    background-color: var(--theme-tone-7);
    border-color: var(--border-color);
}
 
.mw-ui-button.mw-ui-progressive:disabled,
.mw-ui-button.mw-ui-progressive:disabled:hover {
     background-color: var(--theme-tone-7);
    border-color: var(--border-color-tone-2);
}
 
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover {
    background-color: var(--theme-tone-8);
    color: var(--text-color);
    border-color: var(--theme-tone-8);
}
 
.dark-mode .henir-stage {
    background-color: var(--theme-tone-8);
}
 
.wikitable,
.wikitable td,
.wikitable th,
#mw-site-navigation .sidebar-chunk h3,
#mw-related-navigation .sidebar-chunk h3,
.oo-ui-checkboxInputWidget [type="checkbox"] + span,
.wikiEditor-ui .wikiEditor-ui-view,
#personal-inner,
.mw-rcfilters-ui-filterTagMultiselectWidget-views-select-widget.oo-ui-widget,
.mw-rcfilters-ui-itemMenuOptionWidget:not(:last-child):not(.mw-rcfilters-ui-itemMenuOptionWidget-identifier-talk),
.mw-prefs-tabs-wrapper.oo-ui-panelLayout-framed,
.mw-prefs-tabs > .oo-ui-menuLayout-content > .oo-ui-indexLayout-stackLayout > .oo-ui-tabPanelLayout,
.mw-echo-ui-notificationBadgeButtonPopupWidget-popup
    > .oo-ui-popupWidget-popup
    > .oo-ui-popupWidget-footer
    .mw-echo-ui-notificationBadgeButtonPopupWidget-footer-buttons
    .oo-ui-buttonElement:last-child {
    border-color: var(--border-color) !important;
}
 
textarea:focus-within {
    outline-color: var(--border-color-tone-2);
}
 
textarea:focus-visible {
    outline: 1px solid var(--border-color-tone-2);
    border-radius: 3px;
}
 
.mw-echo-ui-notificationBadgeButtonPopupWidget-popup > .oo-ui-popupWidget-popup > .oo-ui-popupWidget-footer,
div > .flow-menu ul > section:not(:first-of-type) > li:first-of-type,
div > .flow-menu ul li.flow-menu-section:not(:first-of-type),
.flow-ui-editorWidget-editor,
.flow-ui-editorWidget-editor > .oo-ui-textInputWidget textarea,
.oo-ui-textInputWidget.oo-ui-widget-enabled .oo-ui-inputWidget-input,
.oo-ui-textInputWidget .oo-ui-inputWidget-input,
input.mw-ui-input.mw-ui-input-large,
a.flow-ui-input-replacement-anchor.mw-ui-input,
input.mw-ui-input,
.mw-body .toctitle {
    border-color: var(--border-color-tone-2);
}
 
div#mw-page-header-links li.selected a,
.wikitable,
#searchInput,
.mw-rcfilters-ui-savedLinksListWidget-placeholder-title,
.mw-rcfilters-ui-savedLinksListWidget-placeholder-description,
.mw-echo-ui-notificationItemWidget-content-message-header,
.mw-content-ltr .flow-topic-meta,
.flow-post .flow-post-content,
.flow-moderated-topic-title {
    color: var(--text-color);
}
 
.wikitable,
.mw-ui-button.mw-ui-quiet,
.toctogglelabel,
.search-types .current a {
    color: var(--text-color) !important;
}
 
span.oo-ui-labelElement-label,
.oo-ui-labelElement .oo-ui-labelElement-label,
.oo-ui-labelElement.oo-ui-labelElement-label,
.mw-rcfilters-ui-itemMenuOptionWidget-label-desc,
.mw-rcfilters-ui-viewSwitchWidget label.oo-ui-labelWidget,
.suggestions .suggestions-result,
.suggestions a.mw-searchSuggest-link .special-query {
    color: var(--text-color);
}
 
/*----*/
 
.mw-echo-ui-notificationItemWidget-content-message-body,
.flow-post-meta,
.flow-moderated-post-content .plainlinks,
.mw-ui-anchor.mw-ui-progressive.mw-ui-quiet,
.tocnumber {
    color: var(--inactive-color);
}
 
.oo-ui-buttonElement-active span {
    color: white !important;
}
 
.mw-editform {
    background: none;
}
 
.dark-mode .diff-addedline .diffchange {
    background: #3e4d5b;
}
 
.dark-mode .diff-deletedline .diffchange {
    background: #69655a;
}
 
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked + span,
.oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:indeterminate + span {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
}
 
.oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:checked + span {
    border-color: var(--accent-color);
}
 
.mw-echo-ui-bundleNotificationItemWidget-separator {
    bottom: 0;
    opacity: 0.6;
}
 
.mw-echo-ui-actionMenuPopupWidget-menu.oo-ui-widget.oo-ui-widget-enabled.oo-ui-selectWidget.oo-ui-selectWidget-unpressed.oo-ui-clippableElement-clippable.oo-ui-floatableElement-floatable.oo-ui-menuSelectWidget {
    right: 20px !important;
    left: unset !important;
}
 
a.flow-ui-input-replacement-anchor.mw-ui-input,
.flow-ui-modal-layout {
    box-shadow: none;
}
 
.flow-ui-modal,
.oo-ui-windowManager-modal > .oo-ui-dialog {
    background: rgba(0, 0, 0, 0.65);
}
 
.flow-moderated-topic-title {
    display: flex;
    place-content: start;
    align-items: center;
    gap: 0.25rem;
    margin-bottom: 0;
    padding-left: 10px;
}
 
.flow-moderated-topic-title .flow-undo {
    margin-left: auto;
}
 
span.flow-timestamp-user-formatted {
    color: var(--accent-color);
}
 
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive
    > .oo-ui-buttonElement-button,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button:hover {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
}
 
a.oo-ui-buttonElement-button {
    background-color: transparent;
}
 
.tools-inline li[id^="ca-nstab-"],
#ca-talk,
#ca-edit,
#ca-history,
#p-views li,
#p-more li {
    border-bottom: none;
    background: var(--theme-tone-7);
    border-radius: 4px;
    transition: background-color 0.3s;
}
.tools-inline li[id^="ca-nstab-"]:hover,
#ca-talk:hover,
#ca-edit:hover,
#ca-history:hover,
#p-views li:hover,
#p-more li:hover {
    background-color: var(--theme-tone-8);
}
.tools-inline li[id^="ca-nstab-"] a,
#ca-talk a,
#ca-edit a,
#ca-history a,
#p-views li a,
#p-more li a {
    padding: 5px 7px 9px 27px;
    color: var(--text-color) !important;
    background-position: 5px 6px;
    text-decoration: none;
    font-weight: 500;
}
.tools-inline li[id^="ca-nstab-"]:active,
#ca-talk:active,
#ca-edit:active,
#ca-history:active,
#p-views li:active,
#p-more li:active {
    background-color: var(--theme-tone-7);
}
#ca-watch:hover,
#ca-unwatch:hover {
    border: 0;
}
#ca-unwatch a,
#ca-watch a {
    margin-bottom: -5px;
    background-position: center;
    margin-left: 0.5rem;
}
#p-namespaces li {
    margin-right: 0.35rem;
}
#p-views li,
#p-more li {
    margin-left: 0.35rem;
}
 
input.historysubmit.mw-history-compareselectedversions-button {
    background-color: var(--theme-tone-7);
    border: none;
    border-radius: 4px;
    font-weight: 500;
    border: 1px solid var(--border-color);
    transition: background-color 0.3s;
}
 
input.historysubmit.mw-history-compareselectedversions-button:hover {
    background-color: var(--theme-tone-8);
}
 
span.oo-ui-iconElement-icon.oo-ui-icon-reload.oo-ui-image-progressive {
    filter: brightness(1.8) saturate(1.5) invert(0) !important;
}
 
/* Font */
html {
    font-size: 104.5%;
     overflow-y: overlay;
}
 
@font-face {
    font-family: "Heading";
     font-style: normal;
    font-weight: normal;
    src: url("/fonts/MYRIADPRO-BOLDCOND.woff") format("woff");
}
}


@font-face {
var usesClass = (function () {
     font-family: SegoeUI;
     var reCache = {};
     src: local("Segoe UI Light"), url(https://elwiki.net/fonts/Segoe_UI/Light/latest.ttf) format("truetype");
     return function (element, className) {
     font-weight: 200;
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
}
     };
})();


@font-face {
/* JavaScript for rounding borders
    font-family: SegoeUI;
  Source: http://webdesign.html.it/articoli/leggi/528/more-nifty-corners */
    src: local("Segoe UI Semilight"), url(https://elwiki.net/fonts/Segoe_UI/Semilight/latest.ttf) format("truetype");
    font-weight: 300;
}


@font-face {
function NiftyCheck() {
    font-family: SegoeUI;
     if (!document.getElementById || !document.createElement)
    src: local("Segoe UI"), url(https://elwiki.net/fonts/Segoe_UI/Regular/latest.ttf) format("truetype");
        return (false);
    font-weight: 400;
     isXHTML = /html\:/.test(document.getElementsByTagName('body')[0].nodeName);
}
     if (Array.prototype.push == null) {
 
        Array.prototype.push = function () {
@font-face {
            this[this.length] = arguments[0];
     font-family: SegoeUI;
            return (this.length);
    src: local("Segoe UI Semibold"), url(https://elwiki.net/fonts/Segoe_UI/Semibold/latest.ttf) format("truetype");
         }
     font-weight: 500;
}
 
@font-face {
    font-family: SegoeUI;
    src: local("Segoe UI Bold"), url(https://elwiki.net/fonts/Segoe_UI/Bold/latest.ttf) format("truetype");
    font-weight: 600;
}
 
.fancy-font {
    font-family: "Heading" !important;
}
 
html *:not(.wikiEditor-ui *, .mw-editfont-monospace),
#p-logo-text a {
    font-family: "SegoeUI", "Frutiger", "Frutiger Linotype", "Dejavu Sans", "Helvetica Neue", "Arial", sans-serif;
}
 
/* Generic elements */
hr {
    border: none;
    height: 1px;
    background-color: var(--border-color);
}
 
.main-accent {
    color: var(--accent-color);
}
 
.clearfix {
    clear: both;
}
 
.left {
    text-align: left;
}
 
b,
th {
    font-weight: 500;
}
 
.sig .sig-icon {
    border-radius: 50%;
    display: inline-flex;
    background: white;
    padding: 2px;
    border: 2px solid black;
    width: 16px;
    height: 16px;
    place-content: center;
    place-items: center;
    margin: 0 5px;
    position: relative;
    top: 2px;
}
 
.sig .sig-icon .image {
    display: inline-flex;
}
 
.sig .sig-icon img {
    border-radius: 50%;
    margin-left: 1px;
}
 
.wikiEditor-ui-toolbar {
    background-image: none;
    background-color: var(--theme-tone-5);
}
 
.tone-7 {
    background-color: var(--theme-tone-7);
}
 
.tone-4 {
    background-color: var(--theme-tone-4);
}
 
.tone-8 {
    background-color: var(--theme-tone-8);
}
 
.color-normal {
    color: var(--text-color);
}
 
#contentSub {
    margin-bottom: 7px;
}
 
/* header */
div.color-left,
div.color-middle,
div.color-right {
    background-color: white;
}
 
#p-logo {
    background-color: var(--theme-tone-6);
    border-radius: 5px 5px 0 0;
}
 
.mw-wiki-logo.fallback {
    height: 8em;
    background-position: bottom center;
}
 
#mw-site-navigation .sidebar-chunk {
    margin-top: 0;
    border-top: 0;
    background-color: var(--theme-tone-6);
}
 
/* border */
div.mw-body h1.firstHeading,
div#mw-page-header-links li.selected {
    border-color: var(--border-color);
}
 
div.mw-body h1.firstHeading {
    border-width: 1px;
    padding-bottom: 5px;
}
 
/* Topbar */
#personal span {
    font-weight: 500;
}
 
#mw-header-hack {
    border-bottom: 1px solid var(--border-color);
}
 
#personal-inner {
    border-radius: 5px;
    border-color: var(--border-color);
}
 
#personal h2 {
    padding-top: 7px;
    color: var(--text-color);
}
 
#searchButton {
    background-position: top right;
    box-shadow: none;
    background-image: url("https://elwiki.net/wiki/images/e/e4/UI_-_Search.png");
    background-size: 34px;
    right: 0;
    margin-top: -1px;
}
 
#searchButton:hover {
    filter: brightness(1.1);
}
 
#mw-searchButton {
    display: none;
}
 
#searchInput {
    padding: 1em;
    transition: box-shadow 0.3s;
    border-color: var(--border-color);
    letter-spacing: 0.7px;
    background-color: var(--theme-tone-4);
}
 
#searchInput:focus {
    outline: none;
    box-shadow: 2px 2px 5px rgb(0 0 0 / 20%);
}
 
#simpleSearch {
    border-radius: 5px;
    box-shadow: none;
    border-color: var(--border-color) !important;
}
 
#p-logo-text a {
    letter-spacing: 1.5px;
    font-weight: 500;
    color: rgb(60, 60, 60);
    display: flex;
    place-items: center;
    place-content: center;
    text-decoration: none !important;
    margin-top: -5px;
    gap: 2px;
    padding: 0;
}
 
a#p-banner::before {
    content: "";
    height: 37px;
    width: 37px;
    display: block;
    background-image: url(https://elwiki.net/wiki/images/thumb/e/ee/UI_-_Hedgehog_Event.png/37px-UI_-_Hedgehog_Event.png);
     background-repeat: no-repeat;
    background-color: transparent;
    position: relative;
    margin-top: 4px;
}
 
.suggestions-result-current {
    background: var(--accent-color) !important;
}
 
.highlight {
    font-weight: 500;
}
 
#personal h2 {
    background-image: none;
    padding-top: 6px;
    padding-left: 5px;
    letter-spacing: 0.75px;
}
 
#personal h2::after {
    width: 0;
    height: 0 !important;
    border: 0 solid transparent;
    border-left-width: 6px;
    border-right-width: 6px;
    border-top: 6px solid var(--border-color-tone-2);
    background-image: none;
    position: relative;
    top: -4px;
    margin-left: 10px;
}
 
#p-personal-label {
    display: none;
}
 
#personal-inner {
    padding: 0 !important;
}
 
#personal .dropdown .mw-portlet-body {
    margin-bottom: 0;
}
 
#personal .dropdown li {
    padding: 0;
}
 
#personal .dropdown li a {
    border: 0.25em solid var(--theme-tone-6);
    display: block;
    padding: 0.4em;
    color: var(--text-color);
    border-radius: 6px;
    font-size: 1.02em;
    letter-spacing: 0.03em;
    transition: background-color 0.3s, color 0.2s;
    border-bottom: none;
    text-decoration: none;
}
 
#personal .dropdown li:last-child a {
    border-bottom: 0.25em solid var(--theme-tone-6);
}
 
#personal .dropdown li:hover a {
    background-color: var(--accent-color);
    color: white;
}
 
#mw-wrapper #mw-header .dropdown {
    display: block !important;
    opacity: 0;
    pointer-events: none;
    transform: scale(0);
    transform-origin: top right;
    transition: 0.15s;
}
 
#mw-wrapper #mw-header .dropdown-active .dropdown {
    display: block !important;
    transform: scale(1);
    opacity: 1;
    pointer-events: all;
}
 
.suggestions .suggestions-result {
    padding: 0.5em 1em;
}
 
.suggestions .suggestions-special {
    padding: 0.5em 1em;
}
 
.suggestions .suggestions-result-current,
.suggestions-result-current .special-query {
    color: white !important;
}
 
/* Footer */
 
#mw-footer {
    width: 65vw;
    margin-left: 14em !important;
    margin-right: 16em;
    padding-left: 0;
    padding-right: 0;
}
 
#mw-footer-container {
    margin: auto;
    border: none;
    box-shadow: none;
    color: var(--text-color);
}
 
#mw-footer-container a,
#mw-footer-container a:hover {
    color: var(--accent-color) !important;
    transition: 0.3s;
    font-weight: 500;
    transition: opacity 0.3s;
}
 
#mw-footer-container a:hover {
    opacity: 0.65;
}
 
/* main container */
#mw-content-container {
    border-bottom: none;
    min-height: 200vh;
}
 
#mw-content {
    border-bottom: none;
    background-color: var(--theme-tone-6);
}
 
@media screen and (min-width: 1100px) and (max-width: 1340px) {
    #mw-related-navigation {
         display: none !important;
    }
 
    #mw-content {
        margin-left: 0;
        margin-right: 0;
        width: 70vw !important;
    }
 
    #content-bottom-stuff {
        padding: 1em 2em 3em;
        width: 70vw;
        background: var(--theme-tone-6);
        border-radius: 0 0 5px 5px;
        display: block;
    }
 
    #mw-data-after-content {
        background: transparent;
     }
     }
    return (true);
}
}


@media screen and (min-width: 1100px) {
function Rounded(selector, wich, bk, color, opt) {
     #mw-content-wrapper {
     var i, prefixt, prefixb, cn = "r",
         margin: 0;
        ecolor = "",
         width: 100% !important;
        edges = false,
    }
        eclass = "",
         b = false,
         t = false;


     #mw-content-wrapper {
     if (color == "transparent") {
         margin-left: 14em;
        cn = cn + "x";
         margin-right: 16em;
        ecolor = bk;
         width: 65vw !important;
        bk = "transparent";
         min-width: 50%;
    } else if (opt && opt.indexOf("border") >= 0) {
        var optar = opt.split(" ");
        for (i = 0; i < optar.length; i++)
            if (optar[i].indexOf("#") >= 0) ecolor = optar[i];
        if (ecolor == "") ecolor = "#666";
         cn += "e";
         edges = true;
    } else if (opt && opt.indexOf("smooth") >= 0) {
         cn += "a";
         ecolor = Mix(bk, color);
     }
     }
 
    if (opt && opt.indexOf("small") >= 0) cn += "s";
     #mw-related-navigation {
    prefixt = cn;
         position: absolute;
    prefixb = cn;
         right: 1em;
    if (wich.indexOf("all") >= 0) {
        t = true;
        b = true
    } else if (wich.indexOf("top") >= 0) t = "true";
    else if (wich.indexOf("tl") >= 0) {
        t = "true";
        if (wich.indexOf("tr") < 0) prefixt += "l";
     } else if (wich.indexOf("tr") >= 0) {
         t = "true";
         prefixt += "r";
     }
     }
 
    if (wich.indexOf("bottom") >= 0) b = true;
     #mw-site-navigation {
     else if (wich.indexOf("bl") >= 0) {
         position: absolute;
         b = "true";
         left: 1em;
         if (wich.indexOf("br") < 0) prefixb += "l";
     }
     } else if (wich.indexOf("br") >= 0) {
 
         b = "true";
    #mw-content-block {
         prefixb += "r";
         position: relative;
         display: flex !important;
    }
 
    #mw-header-container {
        padding: 0.65em 0 0;
     }
     }
}
    var v = getElementsBySelector(selector);
 
    var l = v.length;
@media screen and (max-width: 1099px) {
    for (i = 0; i < l; i++) {
    div#mw-site-navigation {
        if (edges) AddBorder(v[i], ecolor);
         z-index: 99;
        if (t) AddTop(v[i], bk, color, ecolor, prefixt);
         if (b) AddBottom(v[i], bk, color, ecolor, prefixb);
     }
     }
}
}


@media screen and (max-width: 850px) {
function AddBorder(el, bc) {
     #mw-content-block {
     var i;
         background: var(--theme-tone-7);
    if (!el.passed) {
         if (el.childNodes.length == 1 && el.childNodes[0].nodeType == 3) {
            var t = el.firstChild.nodeValue;
            el.removeChild(el.lastChild);
            var d = CreateEl("span");
            d.style.display = "block";
            d.appendChild(document.createTextNode(t));
            el.appendChild(d);
        }
        for (i = 0; i < el.childNodes.length; i++) {
            if (el.childNodes[i].nodeType == 1) {
                el.childNodes[i].style.borderLeft = "1px solid " + bc;
                el.childNodes[i].style.borderRight = "1px solid " + bc;
            }
        }
     }
     }
    el.passed = true;
}
}


/* after content section */
function AddTop(el, bk, color, bc, cn) {
#mw-data-after-content > div {
     var i, lim = 4,
     display: flex;
        d = CreateEl("b");
    flex-direction: column;
    padding: 10px;
    gap: 15px;
    place-items: center;
}


#mw-data-after-content br {
     if (cn.indexOf("s") >= 0) lim = 2;
     display: none;
     if (bc) d.className = "artop";
}
     else d.className = "rtop";
 
     d.style.backgroundColor = bk;
#mw-data-after-content {
     for (i = 1; i <= lim; i++) {
    background: var(--theme-tone-6);
        var x = CreateEl("b");
    border-radius: 0 0 5px 5px;
        x.className = cn + i;
}
        x.style.backgroundColor = color;
 
        if (bc) x.style.borderColor = bc;
#mw-data-after-content a.nn-cmp-show {
         d.appendChild(x);
    margin-top: 0.8em;
    display: inline-block;
    padding: 5px 10px;
     background-color: var(--theme-tone-3);
     width: fit-content;
    border-radius: 4px;
     font-weight: 500;
    color: black;
    transition: background-color 0.3s, color 0.2s;
     text-decoration: none;
    color: var(--text-color);
}
 
#mw-data-after-content a.nn-cmp-show:hover {
    background-color: var(--accent-color);
    color: white;
}
 
@media screen and (min-width: 1100px) and (max-width: 1340px) {
    #content-bottom-stuff {
        margin-left: 0;
         display: table-caption;
     }
     }
    el.style.paddingTop = 0;
    el.insertBefore(d, el.firstChild);
}
}


/****************************** Checkbox, Radio & Button Styles ******************************/
function AddBottom(el, bk, color, bc, cn) {
input,
     var i, lim = 4,
button {
        d = CreateEl("b");
     position: relative;
}
 
/****************************** Namebox Styles ******************************/
table.nmbox {
    border-collapse: collapse;
    width: 100%;
    clear: both;
    font-size: 85%;
    border: 2px solid #bfdbe3;
    margin: 20px 0;
}
 
.nmbox th:first-of-type {
    width: 80px;
}
 
table.nmbox > tbody > tr > th,
table.nmbox > tbody > tr > td {
    padding: 0.4em 0.8em;
}
 
table.nmbox > tbody > tr > td {
    background-color: #f7fdff;
}
 
table.nmbox > tbody > tr > th {
    background-color: #ebf4f7;
}
 
#p-googleadsense .pBody {
    padding-top: 5px;
    text-align: center;
}
 
/* Collapsible toggle */
.mw-content-ltr .section-border .mw-collapsible-toggle {
    padding-right: 10px;
    position: absolute;
    right: 0;
}
 
/* section */
 
div.section-wrapper {
    padding: 0.5em;
    border-radius: 5px;
    border-width: 2px;
    border-style: solid;
    clear: both;
}
 
table.top-nav {
    border-spacing: 0;
    width: auto;
    margin: 1em;
    text-align: center;
    vertical-align: middle;
}
 
table.section,
table.section-side-column {
    position: relative;
    width: 100%;
    margin: 0;
    border-width: 1px;
    border-style: solid;
    border-spacing: 0;
}
 
table.section > tbody > tr:first-child {
    text-align: center;
    background-color: var(--theme-tone-7);
}
 
table.section > tbody > tr:first-child > th {
    line-height: 1em;
    padding: 0.5em 0;
    text-align: center;
    vertical-align: middle;
    border-width: 1px;
    border-style: solid;
    border-top: none !important;
}


table.section > tbody > tr:last-child > td {
     if (cn.indexOf("s") >= 0) lim = 2;
    vertical-align: top;
     if (bc) d.className = "artop";
    padding: 0.5em;
     else d.className = "rtop";
    border: none;
     d.style.backgroundColor = bk;
    border-bottom: none !important;
     for (i = lim; i > 0; i--) {
}
        var x = CreateEl("b");
 
         x.className = cn + i;
table.section > tbody > tr:first-child > th:first-child,
        x.style.backgroundColor = color;
table.section > tbody > tr:last-child > td:first-child {
        if (bc) x.style.borderColor = bc;
    border-left: none !important;
        d.appendChild(x);
}
 
table.section > tbody > tr:first-child > th:last-child,
table.section > tbody > tr:last-child > td:last-child {
    border-right: none !important;
}
 
table.section > tbody > tr:first-child > th ~ th,
table.section > tbody > tr:last-child > td ~ td {
    border-left: none !important;
}
 
table.section-side-column {
    text-align: center;
}
 
table.section-side-column > tbody > tr > td:first-child {
    width: 50%;
    height: 400px;
    padding: 10px;
}
 
table.section-side-column > tbody > tr > td:last-child {
    border-left: 1px solid #000;
    height: 420px;
    padding: 0;
}
 
table.section-side-column > tbody > tr > td:last-child > table.section > tbody > tr:last-child > td {
    vertical-align: middle;
}
 
table.section-side-column > tbody > tr > td:last-child > table.section {
    text-align: center;
    border: none;
}
 
table.section-side-column > tbody > tr > td:last-child > table.section + table.section {
    border-top-width: 1px;
    border-top-style: solid;
}
 
table.section-border,
table.section-border.section > tbody > tr > th,
table.section-border.section > tbody > tr > td,
.section-border.tabdiv > ul,
.section-border:not(table) {
    border-color: var(--border-color);
    border-width: 1px !important;
}
 
.section-border-top-radius {
    -webkit-border-top-left-radius: 5px;
    border-top-left-radius: 5px;
    -moz-border-radius-topleft: 5px;
    -webkit-border-top-right-radius: 5px;
    border-top-right-radius: 5px;
    -moz-border-radius-topright: 5px;
}
 
.section-border-bottom-radius {
    -webkit-border-bottom-left-radius: 5px;
    border-bottom-left-radius: 5px;
    -moz-border-radius-bottomleft: 5px;
    -webkit-border-bottom-right-radius: 5px;
    border-bottom-right-radius: 5px;
    -moz-border-radius-bottomright: 5px;
}
 
table.section-border.section > tbody > tr > th {
     background-color: var(--theme-tone-7);
}
 
.section-border .wikitable > * > tr > th {
    border-color: var(--border-color);
    background-color: var(--theme-tone-5);
}
 
.section-border .wikitable > * > tr > td {
    border-color: var(--border-color);
}
 
.wikitable > * > tr > td {
    background-color: var(--theme-tone-6);
    color: var(--text-color);
}
 
.wikitable > * > tr > th {
    background-color: var(--theme-tone-5);
    border-bottom-width: 1px;
    color: var(--text-color) !important;
}
 
table td {
    color: var(--text-color);
}
 
.tabber-new .wikitable tr th {
    background-color: var(--theme-tone-2);
}
 
table.section-border {
    margin: 10px 0;
     border-radius: 4px;
}
 
.section-border-right td:first-of-type {
    border-right: 1px solid var(--border-color) !important;
}
 
.section-tabber .section-border {
    margin-top: 5px;
}
 
.section-tabber .tabber-ul {
    margin-top: 5px;
}
 
/* section - character */
.mw-content-ltr .section-border.section-characters .mw-collapsible-toggle {
    padding-top: 0;
}
 
.section-characters .textfloat a + a {
    font-size: 1.3em;
    margin-left: 7px;
}
 
.section-characters th {
    padding: 10px !important;
    border-radius: 3px;
}
 
.section-characters table table td {
    font-size: 1.085em;
    font-weight: 500;
}
 
.section-characters table .textfloat th {
    color: white !important;
}
 
/* tabber section design */
 
.section-tabber .tabber-new ul:not(.tabber-ul) li {
    display: block;
}
 
.section-tabber .tabber-new ul:not(.tabber-ul) li a {
    color: var(--text-color) !important;
    padding: 4px;
    background: var(--theme-tone-6);
    margin: 5px 0;
    display: block;
    font-weight: 500;
    transition: background-color 0.3s, color 0.2s;
    border: 1px solid var(--border-color);
    border-radius: 2px;
}
 
.section-tabber .tabber-new ul:not(.tabber-ul) li a:hover,
.section-tabber .tabber-new ul:not(.tabber-ul) li a.mw-selflink {
    background: var(--accent-color);
    color: white !important;
}
 
.section-tabber .tabber-new ul:not(.tabber-ul) li a {
    text-decoration: none !important;
}
 
.section-tabber .tabber-new ul:not(.tabber-ul) {
    margin-left: 2px;
    margin-right: 2px;
}
 
.section-tabber .tabber-content {
    padding: 0 5px 5px 5px !important;
}
 
.section-fields > tbody > tr > th {
    color: black !important;
    text-shadow: none !important;
}
 
/* floating text */
 
.textfloat {
    color: #fff;
    text-shadow: 1px 1px 1px #000;
}
 
table.section-border .textfloat:not(.section-characters table .textfloat) {
    text-shadow: none;
    color: black;
    font-weight: 500;
}
 
table.section-border .textfloat th {
    font-weight: 500;
}
 
.section-tabber table tr.textfloat th {
    color: white;
    text-shadow: 1px 1px 1px #000;
}
 
.section-tabber table tr.textfloat th a {
    vertical-align: middle;
    font-size: 1.15em;
}
 
.textfloat a,
.textfloat a:link,
.textfloat a:visited,
.textfloat a:hover,
.textfloat a:active {
    color: inherit;
}
 
th {
    background-color: inherit;
}
 
/**
    Bilibili Sidebar Style
**/
.portal h3 {
    background-image: none !important;
    padding: 0 0 3px 0 !important;
}
 
.portal h3,
.portal h3:hover,
.portal h3:active,
.portal h3:link,
.portal h3:visited {
    font-weight: bolder !important;
    text-decoration: none !important;
}
 
.portal li > ul {
    position: absolute;
    visibility: hidden;
    left: 100%;
    background-color: #fff;
    margin-top: -1em !important;
    margin-left: -10px !important;
    min-width: 180px;
    max-width: 230px;
    opacity: 0;
    -webkit-box-shadow: 10px 10px 10px #ccf;
    -moz-box-shadow: 10px 10px 10px #ccf;
    box-shadow: 10px 10px 10px #ccf;
}
 
.portal li:hover > ul {
    opacity: 1;
    visibility: visible;
}
 
.portal ul,
.portal li,
.portal a,
.portal strong.selflink {
    display: block;
}
 
.portal a,
.portal strong.selflink {
    max-width: 96%;
}
 
.portal li {
    position: relative;
    font-weight: bold;
    font-family: "Microsoft YaHei", Arial, Helvetica, sans-serif;
     text-decoration: none;
    padding: 0;
    margin: 0;
}
 
.portal li:hover {
    -webkit-transform: translateX(10px);
    -moz-transform: translateX(10px);
    -ms-transform: translateX(10px);
    -o-transform: translateX(10px);
    transform: translateX(10px);
}
 
.portal a,
.portal a:link,
.portal a:visited,
.portal a:hover,
.portal a:active,
.portal strong.selflink {
    text-decoration: none;
    color: #000 !important;
}
 
.portal a:before,
.portal a:after,
.portal strong.selflink:before,
.portal strong.selflink:after {
    color: #07a3d7;
    margin: auto 3px;
}
 
.portal a:before,
.portal strong.selflink:before {
    content: ">";
}
 
.portal a:after,
.portal strong.selflink:after {
    content: "<";
     visibility: hidden;
    -webkit-transform: translateX(15px);
    -moz-transform: translateX(15px);
    -ms-transform: translateX(15px);
    -o-transform: translateX(15px);
    transform: translateX(15px);
}
 
.portal a:hover:after,
.portal strong.selflink:hover:after {
    visibility: visible;
     -webkit-transform: translateX(0px);
    -moz-transform: translateX(0px);
    -ms-transform: translateX(0px);
    -o-transform: translateX(0px);
    transform: translateX(0px);
}
 
.portal strong.selflink {
    color: #07a3d7 !important;
    border-bottom: 2px #07a3d7 solid;
}
 
.portal a:after,
.portal strong.selflink:after,
.portal li {
    -webkit-transition: transform 0.3s;
    -moz-transition: transform 0.3s;
    -o-transition: transform 0.3s;
    transition: transform 0.3s;
}
 
.portal li > ul {
    -webkit-transition: opacity 0.3s;
    -moz-transition: opacity 0.3s;
    -o-transition: opacity 0.3s;
    transition: opacity 0.3s;
}
 
/** floating header **/
.persistHeader {
    position: fixed;
    top: 0;
    display: block;
    width: 100%;
    z-index: 3000;
    background-color: red;
}
 
.persistHeader.visible {
    visibility: visible;
}
 
code {
    display: inline-block;
    font-weight: bold;
    font-family: "Consolas", "Menlo", "Deja Vu Sans Mono", "Bitstream Vera Sans Mono", monospace;
    background-color: #eee;
    color: #4e9a06;
    padding: 2px 0.4em;
    border-radius: 3px;
}
 
.rainbow-text {
    background-image: -webkit-gradient(
        linear,
        left top,
        right top,
        color-stop(0, #f22),
        color-stop(0.15, #f2f),
        color-stop(0.3, #22f),
        color-stop(0.45, #2ff),
        color-stop(0.6, #2f2),
        color-stop(0.75, #2f2),
        color-stop(0.9, #ff2),
        color-stop(1, #f22)
    );
    background-image: gradient(
        linear,
        left top,
        right top,
        color-stop(0, #f22),
        color-stop(0.15, #f2f),
        color-stop(0.3, #22f),
         color-stop(0.45, #2ff),
        color-stop(0.6, #2f2),
        color-stop(0.75, #2f2),
        color-stop(0.9, #ff2),
        color-stop(1, #f22)
    );
    color: transparent;
    -webkit-background-clip: text;
    background-clip: text;
}
 
.rainbow {
    background-color: orange;
}
 
* {
    text-rendering: optimizeSpeed;
}
 
.mw-body .external {
    padding-right: 0;
    background-image: none;
}
 
.shady,
.shady a {
    background-color: black !important;
    color: transparent !important;
}
 
.shady:hover,
.shady:hover a,
.shady a:hover {
    background-color: black !important;
    color: white !important;
}
 
/* Hoverimage */
.hoverimage img {
    opacity: 0;
    filter: alpha(opacity=0);
}
 
.hoverimage img:hover {
    opacity: 1;
    filter: alpha(opacity=100);
}
 
.hoverimages img {
    opacity: 0.85;
    filter: alpha(opacity=0);
}
 
.hoverimages img:hover {
    opacity: 1;
    filter: alpha(opacity=100);
}
 
/* Installing Hover Logo */
#WikiHeader h1.wordmark img {
    opacity: 0.85;
    filter: alpha(opacity=85);
    /* For IE8 and earlier */
}
 
#WikiHeader h1.wordmark img:hover {
    opacity: 1;
    filter: alpha(opacity=100);
    /* For IE8 and earlier */
}
 
/* ImageHover */
.fadeout img:hover {
    opacity: 0;
}
 
.fadeout img:active {
    opacity: 0;
}
 
body:not(.editor) .fadeout-container.fadeout-hide-bottom > :nth-child(2) {
    visibility: hidden;
    /* the 'body:not(.editor)' is used to prevent hiding the image in editing mode where it is not displayed properly */
}
 
/* Tooltip */
.tooltip {
    position: relative;
    display: inline-block;
    border-bottom: 1px dotted black;
}
 
.tooltiptext {
    visibility: hidden;
    min-width: 400px;
    padding: 12px 14px;
    text-align: center;
    position: absolute;
    left: 50%;
    bottom: calc(20px + 100%);
    z-index: 100004;
    background: #fff;
    box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.15);
    border: 1px solid #a2a9b1;
    border-radius: 2px;
    font-weight: normal;
    text-shadow: none;
    border-radius: 4px;
}
 
.tooltiptext:after,
.tooltiptext:before {
    content: "";
    position: absolute;
    left: 50%;
    border-style: solid;
}
 
.tooltiptext:after {
    top: 100%;
    bottom: auto;
    width: 20px;
    height: 20px;
    background: #fff;
    margin-top: -10px;
    margin-left: -10px;
    box-shadow: 1px 1px 0px #a2a9b1;
    transform: rotate(45deg);
    border-width: 0;
}
 
.tooltiptext:before {
    top: 100%;
    bottom: auto;
    border-width: 18px;
    margin-left: -18px;
    border-color: rgba(0, 0, 0, 0.15) transparent transparent transparent;
    pointer-events: none;
}
 
.tooltip .tooltip .tooltiptext {
    bottom: auto;
    top: calc(20px + 100%);
}
 
.tooltip .tooltip .tooltiptext:after {
    top: auto;
    bottom: 100%;
    border-width: 15px;
    margin-left: -15px;
    border-color: transparent transparent white transparent;
    width: 0;
    height: 0;
    box-shadow: none;
    background: none;
    transform: none;
}
 
.tooltip .tooltip .tooltiptext:before {
    top: auto;
    bottom: 100%;
    border-width: 16px;
    margin-left: -16px;
    border-color: transparent transparent #888 transparent;
}
 
.tooltiptext hr {
    margin: 10px 0 12px;
    position: relative;
    background: none;
}
 
.tooltiptext hr:after {
    content: "";
    display: block;
    width: 100%;
    height: 1px !important;
    position: absolute;
    left: -14px;
    background: #a2a9b1;
    padding: 0 14px;
}
 
.tooltip:hover > .tooltiptext {
    visibility: visible;
}
 
.tooltiptext {
    opacity: 0;
    transition: opacity 200ms ease, visibility 0s ease 200ms, transform 200ms ease;
    transform: translate(-50%, 8px);
}
 
.tooltip .tooltip .tooltiptext {
    transform: translate(-50%, -8px);
}
 
.tooltip:hover > .tooltiptext {
    opacity: 1;
    transition-delay: 0s;
    transform: translate(-50%, 0);
}
 
.tooltiptext a {
    color: #0645ad;
    border-bottom: 0;
}
 
.tooltiptext a:visited {
    color: #0b0080;
}
 
.tooltiptext a:active {
    color: #faa700;
}
 
.tooltiptext a:hover,
a:focus {
    text-decoration: underline;
}
 
.tooltiptext {
    color: #252525;
}
 
.tooltiptext a.new {
    color: #ba0000;
}
 
.mwe-math-element {
    filter: brightness(0%);
}
 
@media screen and (min-width: 851px) {
    #personal {
        padding-left: 0;
     }
     }
    el.style.paddingBottom = 0;
    el.appendChild(d);
}
}


.infobox * {
function CreateEl(x) {
    z-index: 2;
     if (isXHTML) return (document.createElementNS('http://www.w3.org/1999/xhtml', x));
}
     else return (document.createElement(x));
 
/* Syntax highlighter - dark mode */
.dark-mode .mw-highlight .k,
.mw-search-result-data {
    color: #76ff76;
}
 
.dark-mode .mw-highlight .kc {
    color: #fff;
    font-weight: 400;
}
 
.dark-mode .mw-highlight .mh {
    color: #ffc0c0;
}
 
.dark-mode .mw-highlight .nf,
.dark-mode .mw-highlight .nc {
    color: #44f5ff;
    font-weight: 500;
}
 
.dark-mode .mw-highlight .nn {
    color: #ffe144;
    font-weight: 500;
}
 
.dark-mode .mw-highlight .mi,
.dark-mode .mw-highlight .kt {
    color: #eee;
    font-weight: 500;
}
 
.dark-mode .mw-highlight .o,
.dark-mode .mw-highlight .mf {
    color: #eee;
}
 
.dark-mode .mw-highlight .nt,
.dark-mode .mw-highlight .nb {
    color: #33ffa1;
    font-weight: 500;
}
 
.dark-mode .mw-highlight .nd {
    color: #e152ff;
}
 
.dark-mode .mw-highlight .cp {
    color: #ff3232;
}
 
.dark-mode .mw-highlight .s2 {
    color: #ffffff;
}
 
.dark-mode .mw-highlight .c {
    color: #63c2c2;
}
 
.dark-mode .mw-highlight .sx {
    color: #56d0ff;
}
 
/* Tabs styling (new) */
 
div.tabdiv > ul > li:hover,
div.tabdiv > ul > li.active {
    background: var(--accent-color);
    border-bottom-color: var(--accent-color);
    color: white;
}
 
div.tabdiv > ul > li.active {
    cursor: initial;
}
 
div.tabdiv > ul > li {
    border: 1px solid var(--border-color);
    transition: border-color 0.3s, background-color 0.3s, color 0.2s;
    cursor: pointer;
    padding: 5px 15px;
    height: auto;
    line-height: normal;
    margin-right: 3px !important;
    margin-bottom: 0;
    color: var(--text-color);
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    background-color: var(--theme-tone-2);
    border-radius: 4px 4px 0 0;
    font-weight: 500;
}
 
div.tabdiv > ul > li a {
    transition: color 0.3s;
    color: var(--inactive-color) !important;
    user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
}
 
div.tabdiv > ul > li.active a:not(.infobox a),
div.tabdiv > ul > li:hover a:not(.infobox a) {
    color: white !important;
}
 
div.tabdiv div.tabdiv:not(.forceport) > ul,
table.infobox div.tabdiv:not(.forceport) > ul,
div.tabdiv,
div.tabdiv > ul,
div.tabdiv.forceland > ul {
    border: none;
}
 
.image > div.tabdiv > ul {
    padding-top: 7px;
    padding-bottom: 5px;
}
 
div.tabber-new {
    display: flex;
    flex-direction: column;
}
 
div.tabber-new > ul {
    display: flex;
    flex-wrap: wrap;
}
 
.tabber-new .tabber-tab {
    color: var(--text-color);
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    background-color: var(--theme-tone-2);
    border-radius: 4px 4px 0 0;
}
 
div.tabdiv.tabber-new > div {
    padding: 0;
}
 
.tabber-center .tabber-ul {
    justify-content: center;
}
 
div.tabber-vertical {
    display: flex !important;
    flex-direction: row;
}
 
.tabber-vertical > .tabber-ul .tabber-tab:first-child {
    margin-top: 0;
}
 
.tabber-vertical > .tabber-ul {
    flex-direction: column;
    margin-right: 25px;
}
 
div.tabber-border div.tabber-content {
    border: 1px solid var(--border-color);
    padding: 15px;
    border-radius: 0 5px 5px 5px;
}
 
div.tabber-border.tabber-padding > div.tabber-content {
    padding: 10px 20px;
}
 
.tabber-content > table:first-child {
    margin-top: 0;
}
 
.tabber-content > h2 {
    margin-top: 0.5em;
}
 
.tabber-content p:not(.fadeout-container):first-child {
    margin-top: 0;
}
 
.tabber-content p:not(.fadeout-container):last-child {
    margin-bottom: 0;
}
 
.tabber-new.fancy > ul {
    gap: 0 6px;
}
 
.tabber-new.fancy > .tabber-ul .tabber-tab,
.tabber-new.fancy > .tabber-ul .tabber-tab.active {
     background-color: transparent;
    transform: skew(-10deg);
    border-radius: 0;
    /* background-image: linear-gradient(to left bottom, #00A5EA 0, transparent 90%), linear-gradient(to left top, #00A5EA 49px, #00E2FE 50px); */
    color: white;
    text-align: center;
    color: #5f5f5f;
    border: none;
    transition: none;
    font-weight: 500;
    z-index: 2;
}
 
.tabber-new.fancy > .tabber-ul .tabber-tab:hover,
.tabber-new.fancy > .tabber-ul .tabber-tab.active {
    background-image: linear-gradient(to left bottom, #00a5ea 0, transparent 70%),
        linear-gradient(to left top, #20b7e5 49px, #00f6ff 50px);
    color: white;
}
 
.tabber-new.fancy > .tabber-ul .tabber-tab::after {
    content: "";
    display: block;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    width: 18px;
    right: -11px;
    bottom: -8px;
    height: 18px;
    background-repeat: no-repeat;
    background-image: url("https://elwiki.net/wiki/images/6/64/Tabber_-_Arrow.png");
}
 
.tabber-new.fancy > .tabber-ul .tabber-tab.active::after {
    opacity: 1;
}
 
.tabber-new.fancy > .tabber-content table {
    border-color: #bdbdbd;
}
 
.tabber-new.fancy > .tabber-ul .tabber-tab-content {
    transform: skew(10deg);
    display: block;
}
 
/* Tabs styling (new) end */
 
/* Infobox */
.infobox-wrap {
    padding: 0;
    float: right;
    clear: right;
    position: relative;
}
 
table.infobox div.tabdiv:not(.forceport) > ul {
    background-color: #f7f7f7;
    padding: 7px 0 7px 0;
    border-bottom: 2px solid var(--theme-tone-2);
    align-items: center;
    justify-content: center;
}
 
.infobox .tabber-new > .tabber-content {
    margin-top: 10px;
}
 
table.infobox div.tabdiv:not(.forceport) > ul ~ div ul {
    margin-top: -10px;
    margin-left: -10px;
    margin-right: -10px;
    background: none;
    border-bottom: none;
}
 
table.infobox div.tabdiv:not(.forceport) > ul > li {
    padding-top: 0;
}
 
.infobox div.tabdiv > ul > li:hover,
.infobox div.tabdiv > ul > li.active {
    background: none;
    color: var(--accent-color);
    border-radius: 0;
}
 
table.infobox div.tabdiv:not(.forceport) > ul > li {
    background: none;
}
 
.infobox div.tabdiv > ul > li {
    padding: 5px 10px;
    margin-right: 5px !important;
}
 
.infobox .tabber-content p:first-child {
    margin-top: 5px;
}
 
.infobox div.tabdiv > ul > li.active a,
.infobox div.tabdiv > ul > li:hover a {
    color: var(--accent-color) !important;
}
 
/* Remove .mw-body-content stacking context so the tooltip can
  overlap with elements outside content area and be shown properly */
.mw-body-content {
    z-index: auto;
}
 
/* Template fix */
dfn {
    display: none !important;
}
 
/* Image margin in headlines */
.mw-headline .image img {
    padding-bottom: 5px;
}
 
/* Navbar */
.sidebar-chunk,
#p-logo,
#p-banner,
#personal,
#personal-inner,
#mw-data-after-content img,
#mw-data-after-content a,
::placeholder {
    user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
}
 
::-moz-placeholder {
    user-select: none;
    -moz-user-select: none;
}
 
::-webkit-placeholder {
    user-select: none;
    -webkit-user-select: none;
}
 
#mw-site-navigation {
    z-index: 3;
}
 
#mw-site-navigation .sidebar-chunk li {
    padding: 0;
}
 
.sidebar-chunk a {
    padding: 0.4em 0 0.4em 0.4em;
    font-size: 1.02em;
    font-weight: 500;
    letter-spacing: 0.03em;
    transition: background-color 0.3s, color 0.2s;
    border-radius: 6px;
    border: 0.25em solid var(--theme-tone-6);
    border-bottom: none;
}
 
.sidebar-chunk ul > li:last-child > a {
    border-bottom: 0.25em solid var(--theme-tone-6);
}
 
.sidebar-chunk li {
    font-size: 1.02em;
    font-weight: 500;
}
 
.sidebar-chunk a::before,
.sidebar-chunk a::after {
    content: unset !important;
}
 
.sidebar-chunk ul li > a,
.sidebar-chunk ul li > a:visited,
.sidebar-chunk ul li > a:link,
div.sidebar-chunk a.external.text {
    padding: 0.3em;
    background-image: none !important;
    color: var(--text-color);
}
 
.sidebar-chunk ul li > a[href="#.21"],
.sidebar-chunk .mw-selflink {
    cursor: default;
}
 
.sidebar-chunk li > ul a {
    border-color: var(--theme-tone-6);
}
 
.sidebar-chunk a,
.sidebar-chunk a:link,
.sidebar-chunk a:visited,
.sidebar-chunk strong.selflink {
    text-decoration: none;
    color: #000;
}
 
.sidebar-chunk li:hover > a,
.sidebar-chunk li:hover > a:link,
.sidebar-chunk .mw-selflink,
.sidebar-chunk a.mw-has-selflink {
    background: var(--accent-color);
    color: white !important;
}
 
#mw-related-navigation .sidebar-chunk li {
    padding: 0;
}
 
#mw-site-navigation .sidebar-chunk {
    padding: 1.6em;
    border-color: var(--theme-tone-6);
}
 
.sidebar-chunk li:hover {
    transform: none !important;
}
 
.sidebar-chunk li > ul {
    top: 0;
    border-radius: 5px;
    box-shadow: 0 4px 5px 0 rgb(0 0 0 / 14%), 0 1px 10px 0 rgb(0 0 0 / 12%), 0 2px 4px -1px rgb(0 0 0 / 30%);
}
 
.sidebar-chunk li:hover > ul {
    pointer-events: all;
    transform: translateX(0);
}
 
div.sidebar-chunk li > ul {
    visibility: visible !important;
    pointer-events: none;
    left: 100%;
    margin-left: 0 !important;
    display: block;
    transform: translateX(-7px);
    transition: 0.3s !important;
    border: 1px solid var(--border-color);
    box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.1) !important;
    background-color: var(--theme-tone-6);
}
 
div.sidebar-chunk h3 {
    font-size: 1em;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-left: 0.65em !important;
}
 
.sidebar-chunk {
    border-radius: 5px;
}
 
#site-tools .mw-portlet-body {
    margin-bottom: 0 !important;
}
 
#mw-related-navigation .sidebar-chunk #p-normal-catlinks .mw-portlet-body {
    margin-bottom: 1.5em;
}
 
#site-navigation {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}
 
/* vertical grid table */
.vgrid-table {
    display: grid;
    grid-template-columns: 135px auto;
    gap: 5px;
}
 
.vgrid-table > div {
    padding: 2px;
    box-shadow: 0 0 0 1px var(--border-color);
    height: 100%;
}
 
/* title */
.vgrid-table > .vgrid-cat {
    font-weight: 500;
    width: 100%;
    height: 100%;
    display: flex;
    place-content: center;
    place-items: center;
    text-align: center;
    background-color: var(--theme-tone-5);
}
 
/* content */
.vgrid-table > div:not(.vgrid-cat) {
    display: flex;
    place-content: start;
    flex-direction: row;
    place-items: center;
    background-color: var(--theme-tone-6);
}
 
.vgrid-table > div:not(.vgrid-cat) ul {
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    list-style-type: none;
    gap: 0.3em;
    place-items: center;
    padding: 0 0.9em;
    padding-left: 0;
}
 
.vgrid-table > div:not(.vgrid-cat) ul li {
    position: relative;
    padding: 3px;
}
 
.vgrid-table > div:not(.vgrid-cat) ul li::after {
    content: "▪";
    position: absolute;
    right: -0.37em;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.8em;
}
 
.vgrid-table > div:not(.vgrid-cat) ul li:last-child::after {
    content: unset;
}
 
.vgrid-table > div:not(.vgrid-cat) ul li a {
    font-weight: 500;
    color: var(--text-color) !important;
    padding: 5px;
    border-radius: 4px;
    transition: background-color 0.3s, color 0.2s;
    user-select: none;
    -webkit-user-select: none;
     -moz-user-select: none;
    text-decoration: none;
}
 
.vgrid-table > div:not(.vgrid-cat) ul li a:hover,
.vgrid-table > div:not(.vgrid-cat) ul li a.mw-selflink {
    color: white !important;
    background-color: var(--accent-color);
}
 
.vgrid-table > .vgrid-cat > span {
    padding: 4px;
}
 
.vgrid-table .textfloat {
    color: #fff !important;
    text-shadow: 1px 1px 1px #000 !important;
}
 
.vgrid-table > div .vgrid-cat {
    background: var(--theme-tone-5);
    padding: 2px 6px;
    font-weight: 500;
    margin-left: -2px;
    height: 100%;
    width: 135px;
    min-width: 135px;
    text-align: center;
    border-right: 1px solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: center;
}
 
table .vgrid-table {
    margin-bottom: 5px;
}
 
/* Long table tooltip adjustments */
.long-table {
    overflow-x: auto;
}
 
.long-table .tooltiptext:not(.tooltip-up .tooltiptext),
.tooltip-down .tooltiptext {
    top: calc(20px + 100%);
    box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.15);
    bottom: auto;
}
 
.long-table .tooltiptext:not(.tooltip-up .tooltiptext):before,
.tooltip-down .tooltiptext:before {
    bottom: 100%;
    top: unset;
    border-color: transparent transparent rgba(0, 0, 0, 0.15) transparent;
}
 
.long-table .tooltiptext:not(.tooltip-up .tooltiptext):after,
.tooltip-down .tooltiptext:after {
    bottom: 100%;
    margin-bottom: -10px;
    top: unset;
    transform: rotate(225deg);
    box-shadow: 1px 1px 0px rgb(165, 165, 165);
}
 
/* systems */
.section-systems table th:nth-of-type(2n + 1) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
 
.section-systems table th:nth-of-type(2n) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}
 
/* status effect icons */
.status {
    display: inline-flex;
    gap: 0.35em;
}
 
.status .tooltip {
    white-space: nowrap;
}
 
/* New section - segment */
.segment {
    position: relative;
    margin: 15px 0;
}
 
.segment .vgrid-table {
    margin: 0;
}
 
.segment .segment-header {
    color: var(--text-color);
    text-shadow: none;
    font-weight: 500;
    background-color: var(--theme-tone-5);
    border: 1px solid var(--border-color);
    padding: 7px 10px;
    border-radius: 4px 4px 0 0;
    text-align: center;
    letter-spacing: 0.5px;
    font-size: 19px;
}
 
.segment > .mw-collapsible-toggle::before,
.segment > .mw-collapsible-toggle::after {
    display: none;
}
 
.mw-content-ltr .segment > .mw-collapsible-toggle {
    position: absolute;
    padding: 6px;
    top: 5px;
    border-radius: 4px;
    right: 5px;
    transition: 0.3s;
}
 
.segment > .mw-collapsible-toggle:hover {
    background-color: var(--theme-tone-3);
}
 
.segment > .mw-collapsible-toggle a {
    color: var(--text-color);
    letter-spacing: 0.5px;
    font-weight: 500;
}
 
.segment.section-border > .segment-contents {
    border: 1px solid var(--border-color);
}
}


.client-js .segment.mw-collapsed:not(.mw-made-collapsible):before,
function getElementsBySelector(selector) {
.client-js .segment.mw-collapsible:not(.mw-made-collapsible):before {
    var i, selid = "",
    display: none !important;
        selclass = "",
}
        tag = selector,
        f, s = [],
        objlist = [];


.segment > .segment-contents {
     if (selector.indexOf(" ") > 0) { //descendant selector like "tag#id tag"
    padding: 1em;
        s = selector.split(" ");
}
         var fs = s[0].split("#");
 
        if (fs.length == 1) return (objlist);
.segment .segment-header:not(.mw-collapsed .segment-header) {
        f = document.getElementById(fs[1]);
    border-bottom: none;
        if (f) return (f.getElementsByTagName(s[1]));
}
        return (objlist);
 
.segment .segment-header.single-title {
    border-bottom: 1px solid var(--border-color) !important;
}
 
.segment.section-border.section-bg > .segment-contents {
    background-color: var(--theme-tone-7);
}
 
.segment.section-border.section-bg > .segment-headers > .segment-header {
    background-color: var(--theme-tone-6);
}
 
.segment.section-border.section-bg .tabber-new .tabber-tab {
    background-color: var(--theme-tone-6);
    border: 1px solid var(--border-color);
    font-weight: 500;
    color: var(--text-color);
}
 
.segment.section-border.section-bg .tabber-new .tabber-tab:hover,
.segment.section-border.section-bg .tabber-new .tabber-tab.active {
    background-color: var(--accent-color);
    color: white;
}
 
.split {
    --min-side-width: 250px;
}
 
.split .segment-headers {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(var(--min-side-width), 1fr));
    gap: 0 !important;
}
 
.split .segment-contents {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(var(--min-side-width), 1fr));
}
 
.split .segment-contents .mw-collapsible-content,
.instance-page .split .segment-header {
    flex-basis: 50%;
    box-sizing: border-box;
}
 
.split .segment-contents .mw-collapsible-content:first-child {
     padding-right: 1rem;
}
 
.split .segment-contents .mw-collapsible-content:nth-child(2) {
    border-left: 1px var(--border-color) solid;
    margin: -1rem -0 -1rem 0;
    padding: 1rem 0 1rem 1rem;
}
 
.split.uneven-split .segment-contents {
    grid-template-columns: 70% 30%;
}
 
.split.uneven-split .segment-headers {
    grid-template-columns: calc(70% - 0.4rem) calc(30% + 0.4rem);
}
 
.split .segment-header:first-of-type {
    border-top-right-radius: 0;
    margin-right: -1px;
}
 
.split .segment-header:nth-of-type(2) {
    border-top-left-radius: 0;
}
 
/* Fix for loading */
.segment-partial .segment-header,
.segment-partial > .mw-collapsible-toggle a {
    color: transparent;
}
 
/* Quest */
 
.job-change-collapsible {
    border: 1px solid var(--border-color);
    border-radius: 7px 7px 4px 4px;
    display: flex;
    flex-direction: column;
}
 
.job-change-collapsible .segment-headers {
    background-color: var(--theme-tone-5);
}
 
.job-change-collapsible .segment-header {
    border: none;
    color: var(--text-color);
    text-shadow: none;
    padding: 0;
    font-size: 1em;
}
 
.job-change-collapsible .segment {
    border: none;
    margin: 0;
}
 
.job-change-collapsible [style*="1.25em"] * {
    font-size: 15.2px !important;
}
 
.job-change-collapsible > .section > .mw-collapsible-toggle:hover {
    background-color: rgba(255, 255, 255, 0.15);
}
 
.job-change-collapsible .section .section {
    border-bottom: 1px solid var(--border-color);
}
 
.job-change-collapsible .section .section:first-of-type {
    border-bottom: 1px solid var(--border-color);
}
 
.job-change-collapsible .mw-collapsible-toggle-default::before,
.job-change-collapsible .mw-collapsible-toggle-default::after,
.job-change-collapsible .mw-collapsible-text {
    display: none;
}
 
.job-change-collapsible .section {
    position: relative;
}
 
.mw-content-ltr .job-change-collapsible .segment > .mw-collapsible-toggle {
    display: block;
    position: absolute;
    right: 8px;
    top: 8px;
    padding: 3px 5px;
    transition: 0.3s;
    border-radius: 4px;
}
 
.mw-content-ltr .job-change-collapsible > .section > .mw-collapsible-toggle {
    color: white;
    text-shadow: 1px 1px 1px #000;
    top: 5px;
    right: 7px;
    height: fit-content;
}
 
.job-change-collapsible .mw-collapsible-toggle:hover {
    background-color: var(--theme-tone-7);
}
 
.client-js .job-change-collapsible div.mw-collapsed:not(.mw-made-collapsible):before,
.client-js .generic-quest.mw-collapsed:not(.mw-made-collapsible):before {
    content: unset;
    /* (Bandaid for FoUC) */
}
 
.job-change-collapsible .mw-collapsible-toggle::after {
    display: block;
    content: "Hide";
}
 
.job-change-collapsible .mw-collapsed .mw-collapsible-toggle::after {
    display: block;
    content: "Show";
}
 
.job-change-collapsible .mw-collapsible-toggle {
    font-weight: 500;
}
 
.job-change-collapsible .segment > .segment-contents {
    padding: 0;
}
 
.job-change-collapsible > .segment > .segment-headers .segment-header {
    color: white;
    text-shadow: 1px 1px 1px #000;
}
 
.generic-quest {
    position: relative;
    margin-top: 5px;
    margin-bottom: 5px;
}
 
.generic-quest > div {
    border-radius: 4px;
}
 
.generic-quest .mw-collapsible-toggle {
    color: white !important;
    text-shadow: 1px 1px 1px #000;
    font-size: 1em;
    position: absolute;
    right: 7px;
    top: 11px;
}
 
.generic-quest .mw-collapsible-toggle a {
    color: white !important;
    font-weight: 500;
}
 
.generic-quest > .segment-contents {
    border: 1px solid var(--border-color);
}
 
.generic-quest .mw-collapsible-toggle-default::before,
.generic-quest .mw-collapsible-toggle-default::after,
.generic-quest .mw-collapsible-text {
    display: none;
}
 
.generic-quest .mw-collapsible-toggle::after {
    display: block;
    content: "(Hide)";
}
 
.generic-quest.mw-collapsed .mw-collapsible-toggle::after {
    display: block;
    content: "(Show)";
}
 
.generic-quest .mw-collapsible-toggle {
    font-weight: 500;
}
 
.generic-quest > div:not(.mw-collapsed > div) {
    border-radius: 4px 4px 0 0;
}
 
.generic-quest > .segment-header {
    color: white;
    text-shadow: 1px 1px 1px #000;
    font-size: 19px;
}
 
.mw-content-ltr .segment.generic-quest > .mw-collapsible-toggle {
    top: 8px;
    right: 8px;
    padding: 3px;
}
 
.mw-content-ltr .segment.generic-quest > .mw-collapsible-toggle:hover {
    background-color: rgba(255, 255, 255, 0.15);
}
 
.segment.generic-quest .segment-header {
    padding: 0;
    background: transparent;
    color: white;
    text-shadow: 1px 1px 1px #000;
}
 
.segment.generic-quest .segment-contents {
    padding: 0;
}
 
/* combo overlay */
.combo-overlay a {
    display: flex;
}
 
/* New Infobox */
.infobox-new {
    float: right;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    margin-left: 1rem;
    max-width: 470px;
    margin-bottom: 1em;
}
 
.infobox-new-header {
    padding: 7px;
    text-align: center;
    text-shadow: 1px 1px 1px #000;
    font-weight: 500;
    border-bottom: 1px solid var(--border-color);
    color: white;
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}
 
.infobox-character .infobox-new-image img,
.infobox-npc .infobox-new-image img {
    margin: 5px 0;
}
 
.infobox-character .infobox-new-header img[alt^="Mini Icon"] {
    display: none;
}
 
.infobox-new-image {
    text-align: center;
}
 
.infobox-new-image img {
    max-width: 100%;
    height: auto;
}
 
.infobox-equipment .infobox-new-image {
    margin: 5px;
}
 
.infobox-new .infobox-row {
    display: grid;
    grid-template-columns: 120px auto;
    border-top: 1px solid var(--border-color);
}
 
.infobox-song .infobox-row,
.infobox-goods .infobox-row {
    grid-template-columns: 125px auto;
}
 
.infobox-new .infobox-row.infobox-double-row {
    --first-column-width: 120px;
    grid-template-columns: var(--first-column-width) calc((100% - var(--first-column-width)) / 2) calc(
            (100% - var(--first-column-width)) / 2
         );
}
 
.infobox-new .infobox-row-title {
    padding: 8px;
    border-right: 1px solid var(--border-color);
    font-weight: 500;
    background-color: var(--theme-tone-4);
    display: flex;
    align-items: center;
    word-break: break-word;
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}
 
.infobox-new .infobox-row-content {
    padding: 8px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}
 
.infobox-new .infobox-row-content:nth-child(3) {
    border-left: 1px solid var(--border-color);
}
 
.infobox-new .embedvideo {
    width: 350px;
    height: 197px;
}
 
.infobox-song .embedvideo {
    margin: 0;
    height: auto;
    max-width: 100%;
}
 
.infobox-song .infobox-new-image {
    height: 223px;
    width: 397px;
}
 
.infobox-song {
    max-width: 397px;
}
 
.infobox-new .infobox-row-content.infobox-video-row {
    padding: 0;
}
 
.infobox-new .tabber-ul {
    place-items: center;
    place-content: center;
    background-color: var(--theme-tone-4);
    border-bottom: 1px solid var(--border-color);
    --accent-color: var(--theme-tone-3);
}
 
.infobox-new .tabber-tab {
    border: none;
    margin-top: 0;
    background-color: transparent;
    border-bottom: 0;
    border-radius: 0;
    margin-right: 0 !important;
    padding: 7px 12px;
    font-size: 15px;
    border-right: 1px solid var(--border-color);
    color: var(--text-color) !important;
    font-weight: 500;
}
 
.infobox-new .tabdiv .tabdiv .tabber-ul {
    border-bottom: 1px solid var(--border-color);
}
 
.infobox-new .tabber-tab:first-child {
    border-left: 1px solid var(--border-color);
}
 
.infobox-new .infobox-row-content img[alt^="Mini Icon"] {
    vertical-align: sub;
}
 
.infobox-new .infobox-row-content table {
    margin: 5px 0;
}
 
/* New nmbox */
.nmbox-new {
    display: grid;
    grid-template-columns: min-content auto;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    margin: 1em 0;
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}
 
.nmbox-new .nmbox-new-header {
    display: flex;
    place-content: center;
    place-items: center;
    background-color: var(--theme-tone-5);
    padding: 8px;
    border-right: 1px solid var(--border-color);
    border-radius: 4px 0 0 4px;
}
 
.nmbox-new .nmbox-new-header a {
    text-decoration: none !important;
    white-space: pre;
}
 
.nmbox-new .nmbox-new-header a b {
    color: var(--text-color);
    font-weight: 500;
}
 
.nmbox-new .nmbox-new-content {
    display: flex;
    place-items: center;
}
 
.nmbox-new ul {
    display: flex;
    place-items: center;
    list-style-type: none;
    margin: 0;
    flex-wrap: wrap;
    background-color: var(--theme-tone-6);
}
 
.nmbox-new ul li {
    display: block;
}
 
.nmbox-new ul a {
    color: var(--text-color) !important;
    text-decoration: none !important;
    display: flex;
    place-content: center;
    place-items: center;
    padding: 8px;
    transition: background-color 0.2s;
    font-size: 14px;
    direction: ltr;
    height: 24px;
}
 
.nmbox-new ul .mw-selflink,
.nmbox-new ul b {
    font-weight: 500;
    color: var(--text-color);
}
 
.nmbox-new ul a:not(.mw-selflink, .selflink):hover {
    background-color: var(--theme-tone-5);
}
 
/* Tables */
table[cellpadding="5"][border="1"][style],
table[cellpadding="5"][border="1"][style] td,
table[cellpadding="5"][border="1"][style] th,
.related-skills,
.related-skills td,
.related-skills tr,
.related-skills th {
    border-color: var(--border-color);
}
 
tr[style] th a,
tr[style] th a:visited,
tr[style] th a:link {
    color: #1d5383;
}
 
table[cellpadding="5"][border="1"][style] tr[style]:not(.wikitable tr, .updates-section-table tr, .alt-langs tr),
table[cellpadding="5"][border="1"][style] tr[style] th:not(.wikitable th) {
    border: 1px solid rgb(71, 71, 71);
}
 
table.colored-table td {
    border: 1px solid rgb(71, 71, 71) !important;
}
 
tr[style*="#444444"] th {
    color: white;
    text-shadow: none !important;
}
 
tr[style*="background:#444444"] a {
    color: white !important;
    text-shadow: none !important;
}
 
table[cellpadding="5"][border="1"][style] tr[style*="#444444"],
table[cellpadding="5"][border="1"][style] tr[style*="#444444"] th {
    border-color: black;
}
 
tr[style*="#414243"] th {
    border-color: var(--border-color-tone-2) !important;
}
 
.force-white {
    color: white !important;
    text-shadow: 1px 1px 1px #000;
}
 
.force-black {
    color: black !important;
    text-shadow: none !important;
}
 
/* Char stats */
.char-stats {
    display: inline-grid;
    grid-template-columns: repeat(3, 105px);
    grid-template-rows: repeat(3, 30px);
    gap: 5px;
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}
 
.char-stats-cat,
.char-stats-attack-caption,
.char-stats-attack {
    background-color: var(--theme-tone-5);
    color: var(--text-color);
    font-weight: 500;
    display: flex;
    place-items: center;
    place-content: center;
    transform: skew(-7deg);
    border-bottom: 2px solid var(--border-color);
}
 
.char-stats-cat {
    place-content: start;
    padding-left: 8px;
}
 
.char-stats-cat span,
.char-stats-attack-caption span,
.char-stats-attack img {
    transform: skew(7deg);
}
 
.char-stats-active {
    background-image: url("https://elwiki.net/wiki/images/f/f5/UI_-_Stats_Active.png");
    background-repeat: no-repeat;
    display: flex;
    place-items: center;
    place-content: center;
    color: white;
    font-weight: 500;
}
 
.char-stats-attack {
    display: flex;
    place-items: center;
    place-content: center;
    grid-row: span 2;
    /*    background-color: var(--theme-tone-5); */
}
 
.char-stats-attack img {
    width: 57px;
    height: auto;
}
 
/* SkillNav */
.skillnav .separate a:not(.image),
.forcenav a:not(.image) {
    margin-right: 13px;
    font-weight: 500;
}
 
.skillnav .separate a:not(.image):last-child,
.forcenav a:not(.image):last-child {
    margin-right: 0;
}
 
.forcenav .forcedot::before {
    content: "▪";
    margin-right: 13px;
}
 
.forcenav table.section .section .section th {
    border-left: 1px solid var(--border-color) !important;
    border-right: 1px solid var(--border-color) !important;
    background: var(--theme-tone-4) !important;
}
 
table.section > tbody > tr:first-child > th.skillnav-section {
    background-color: var(--theme-tone-3) !important;
    text-shadow: none;
    border-top: 1px solid var(--border-color) !important;
    border-bottom: 1px solid var(--border-color) !important;
    color: var(--text-color);
}
 
/* Force tabs */
.force-tabs .parent-tab {
    border: 1px solid rgb(71, 71, 71);
}
 
.force-tabs .parent-tab a:not(.mw-selflink) {
    color: black !important;
    text-decoration: none !important;
}
 
.parent-tab a {
    height: 100%;
    display: block;
    padding: 0 0.5em;
}
 
.force-tabs .parent-alt-tab {
    transition: 0.3s;
}
 
.force-tabs .parent-tab.parent-alt-tab a {
    color: white !important;
    text-shadow: 1px 1px 1px #000;
}
 
.force-tabs .parent-alt-tab:hover {
    transform: translateY(-5px);
}
 
.parent-tabs .mw-selflink {
    font-weight: 500 !important;
}
 
/* Warning */
div.mw-warning-with-logexcerpt {
    padding: 15px;
    border-radius: 6px;
    border: none;
    background: var(--theme-tone-5);
    margin-bottom: 1em;
    border: 1px solid var(--border-color);
}
 
.mw-warning-with-logexcerpt p:first-of-type {
    margin-top: 0;
}
 
.mw-warning-with-logexcerpt strong {
    font-weight: 500;
}
 
/* Region Map */
.region-map {
    position: relative;
    width: fit-content;
}
 
.region-map img[alt="About this image"] {
    position: absolute;
    display: none;
    bottom: 0;
    right: 0;
}
 
.region-map img[alt="About this image"]:hover {
    filter: brightness(1.1);
}
 
.dungeon-map map + div {
    border-radius: 0 4px 4px 4px;
}
 
/* Boss timer */
.boss-timer {
    display: flex;
}
 
.boss-timer-image img {
    display: none;
}
 
.boss-timer-image a {
    display: inline-block;
    width: 105px;
    height: 105px;
}
 
.boss-timer-caption,
.server-time-caption {
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.75px;
    display: flex;
    flex-direction: column;
    place-content: center;
    color: var(--text-color);
}
 
.boss-timer-countdown,
.server-time {
    font-size: 22px;
    font-weight: 700;
    color: var(--text-color);
}
 
.boss-timer-text {
    margin-bottom: 2px;
}
 
.server-time-wrap {
    display: grid;
    grid-template-columns: 80px auto;
}
 
.server-time-image-wrap {
    display: flex;
    place-content: center;
    place-items: center;
}
 
.tabber-border.fancy .tabber-tab {
    z-index: 2;
}
 
.server-time-caption {
    margin-bottom: -2px;
    color: var(--text-color);
}
 
.server-time-reset {
    text-transform: lowercase;
    font-size: 12px;
    letter-spacing: 0.75px;
}
 
.henir-grid {
    display: flex;
    place-items: center;
    place-content: center;
    gap: 10px;
    flex-wrap: wrap;
}
 
.henir-grid a:not(.tooltiptext a) {
    display: block;
    color: var(--text-color);
}
 
.henir-grid .tooltiptext {
    min-width: 150px;
    box-shadow: 0 2px 0 0 rgb(0, 0, 0, 0.15);
}
 
.boss-sprite-1 {
    background-image: url("/wiki/images/e/e2/Sprite_-_Boss_Icon_1.png");
}
 
.boss-sprite-2 {
    background-image: url("/wiki/images/f/ff/Sprite_-_Boss_Icon_2.png");
}
 
.boss-sprite-3 {
    background-image: url("/wiki/images/1/1c/Sprite_-_Boss_Icon_3.png");
}
 
.boss-image {
    display: inline-block;
    background-repeat: no-repeat;
    order: 2;
    backface-visibility: hidden;
    transition: transform 0.2s;
}
 
.henir-caption {
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.75px;
    text-align: center;
    color: var(--text-color);
}
 
.timers-wrap {
    display: flex;
    place-items: center;
}
 
.boss-timer-section .timers-wrap {
    border-right: 1px solid var(--border-color);
}
 
.henir-stage {
    display: flex;
    background-color: var(--theme-tone-7);
    place-items: flex-end;
    cursor: pointer;
    overflow: hidden;
}
 
.henir-stage .text {
    display: flex;
    gap: 3px;
    padding: 0 7px;
    font-size: 11px;
    border-radius: 4px;
    letter-spacing: 0.75px;
    font-weight: 700;
    border-top-right-radius: 0;
}
 
.henir-stage .text a {
    font-weight: 700;
    color: var(--text-color);
    text-decoration: none !important;
}
 
.henir-stage:hover .boss-image {
    transform: translateZ(0) scale(1.2);
}
 
.henir-section .tabber-content {
    display: flex;
    flex-direction: column;
    place-content: center;
    place-items: center;
    gap: 13px;
}
 
.current-info .tabber-tab {
    margin-top: 0;
}
 
.current-info .fancy .tabber-tab.active,
.current-info .fancy .tabber-tab:hover {
    background-image: linear-gradient(to left bottom, #00a5ea 0, transparent 70%),
        linear-gradient(to left top, #20b7e5 43px, #00f6ff 44px) !important;
}
 
.henir-outer {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    place-content: center;
}
 
/* Char tree - required here */
.char-banner-tree-image::before {
    background-image: url(https://elwiki.net/wiki/images/0/0b/Arrowright.png);
}
 
.tabber-list-toggle img:hover {
    filter: brightness(1.1);
}
 
/* Related skills */
 
.related-skills td:not(.no-div td) {
    padding: 0;
}
 
.related-skills.secret-art .skill-wrap {
    min-height: 108px;
}
 
.related-skills .skill-wrap-text {
    padding: 0 0.5rem;
}
 
.related-skills .skill-wrap-text > a:not(.image),
.related-skills td[width="150"] > a:not(.image) {
    font-weight: 500;
    color: var(--text-color);
    place-content: center;
    place-items: center;
    transition: 0.3s;
    width: auto;
    display: inline;
    word-break: break-word;
}
 
.skill-wrap:not(.no-div .skill-wrap):hover {
    background-color: var(--theme-tone-7);
}
 
.related-skills .skill-wrap {
    transition: 0.3s;
    cursor: pointer;
    min-height: 54px;
    place-content: center;
    place-items: center;
    display: flex;
    width: 150px;
    padding: 0.15rem;
    box-sizing: border-box;
}
 
.related-skills .tooltip {
    margin-right: 0.15rem;
    font-weight: 500;
}
 
.related-skills .tooltip a:not(.tooltiptext a) {
    color: var(--text-color) !important;
}
 
.related-skills {
    width: fit-content;
    border: 1px solid var(--border-color);
    border-bottom: none;
    border-right: none;
}
 
[data-type="table-row"] {
    display: flex;
    margin: 1px -1px -1px 0;
}
 
[data-type="table-row"]:first-child {
    margin-top: 0;
}
 
.related-skills .skill-wrap {
    height: 100%;
}
 
[data-type="table-cell"] {
    display: flex;
    align-items: center;
    border-right: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
    width: fit-content;
}
 
.related-skills [data-type="table-cell"]:not([width], .related-title) {
    max-width: 108px;
    flex-wrap: wrap;
}
 
.related-skills [data-type="table-cell"]:active .skill-wrap,
.related-skills [data-type="table-cell"]:focus .skill-wrap {
    background-color: var(--theme-tone-8);
}
 
.related-skills a:focus,
.related-skills a:active {
    text-decoration: none;
}
 
[data-type="table-head"] {
    display: flex;
    place-content: center;
    gap: 3px;
    place-items: center;
    padding: 3px;
    margin: 0 auto;
}
 
[data-type="table-head"] img {
    display: block;
}
 
.related-skills:not(.no-div) {
    opacity: 0;
    pointer-events: none;
}
 
.shown {
    opacity: 1 !important;
    pointer-events: all !important;
}
 
.related-skills.no-div td[width="150"]:hover {
    background-color: var(--theme-tone-7);
    cursor: pointer;
}
 
.related-skills.no-div td[width="150"] {
    transition: 0.3s;
}
 
.related-skills.no-div td[width="150"] a {
    color: var(--text-color) !important;
}
 
[data-type="table-head"] {
    background-image: none !important;
}
 
.category-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1em;
    place-content: center;
}
 
.master-skill-grid .skill-wrap a {
    padding: 0 !important;
}
 
.related-title {
    padding: 5px;
    font-weight: 500;
    width: 100%;
    place-content: center;
    background-color: var(--theme-tone-4);
}
 
.related-skills-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    place-content: space-between;
    padding: 0 0 1.5rem 0;
}
 
/* header */
.mw-body .mw-parser-output h1 {
    display: flex;
    place-items: center;
    border-bottom: 1px solid var(--border-color);
}
 
.mw-body .mw-parser-output h1::after,
.mw-body .mw-parser-output h2::after {
    border-bottom: 1px solid var(--border-color);
    overflow: hidden;
    width: 100%;
    position: absolute;
    bottom: 0;
}
 
.mw-body .mw-parser-output h1 .mw-headline,
.mw-body .mw-parser-output h1 .mw-headline a,
.mw-body .mw-parser-output h1 .mw-headline font,
.mw-body .mw-parser-output h1 .mw-headline .custom-text,
.mw-body .mw-parser-output h2 .mw-headline,
.mw-body .mw-parser-output h2 .mw-headline a,
.mw-body .mw-parser-output h2 .mw-headline font,
.mw-body .mw-parser-output h2 .mw-headline .custom-text,
.mw-body .mw-parser-output h2 .mw-headline .tooltip {
    font-size: 0.8em;
    display: inline-flex;
    place-items: center;
    padding-left: 27px;
    /*font-family: "Heading";*/
    font-weight: 500;
    /*letter-spacing: 0.2px;*/
    letter-spacing: -1px;
    gap: 5px;
}
 
.mw-body .mw-parser-output h2 .mw-headline .tooltiptext {
    font-size: initial;
    letter-spacing: initial;
}
 
.mw-body .mw-parser-output h1 .mw-headline,
.mw-body .mw-parser-output h1 .mw-headline a,
.mw-body .mw-parser-output h1 .mw-headline font,
.mw-body .mw-parser-output h1 .mw-headline .custom-text {
    padding-left: 0;
    gap: 8px;
}
 
.mw-body .mw-parser-output h3 .mw-headline,
.mw-body .mw-parser-output h3 .mw-headline a,
.mw-body .mw-parser-output h3 .mw-headline font,
.mw-body .mw-parser-output h3 .mw-headline .custom-text {
    font-size: 1.1rem;
    font-weight: 500;
}
 
.mw-body .mw-parser-output h1 .mw-headline,
.mw-body .mw-parser-output h1 .mw-headline a,
.mw-body .mw-parser-output h1 .mw-headline font,
.mw-body .mw-parser-output h1 .mw-headline .custom-text {
    font-size: 0.9em;
}
 
.mw-body .mw-parser-output h1 .mw-headline a,
.mw-body .mw-parser-output h1 .mw-headline font,
.mw-body .mw-parser-output h1 .mw-headline .custom-text,
.mw-body .mw-parser-output h2 .mw-headline a,
.mw-body .mw-parser-output h2 .mw-headline font,
.mw-body .mw-parser-output h2 .mw-headline .custom-text,
.mw-body .mw-parser-output h2 .mw-headline .tooltip {
    padding-left: 0;
    font-size: inherit;
}
 
.mw-body .mw-parser-output h4 .mw-headline,
.mw-body .mw-parser-output h4 .mw-headline a,
.mw-body .mw-parser-output h4 .mw-headline font,
.mw-body .mw-parser-output h4 .mw-headline .custom-text {
    font-size: 1rem;
    font-weight: 600;
}
 
.mw-body .mw-parser-output h1 .mw-headline a:hover,
.mw-body .mw-parser-output h2 .mw-headline a:hover {
    text-decoration: underline;
}
 
.mw-body .mw-parser-output h2:not(.toctitle h2) {
    background-image: url(https://elwiki.net/wiki/images/0/0a/Asset_-_Header.png);
    background-repeat: no-repeat;
    background-position: left;
    min-height: 38px;
    background-size: contain;
    display: flex;
    position: relative;
}
 
.mw-body .mw-parser-output h3 {
    margin-top: 1rem;
}
 
.mw-editsection {
    background-position: left center;
}
 
.has-arrow {
    position: relative;
}
 
.class-tree > .has-arrow:after {
    content: "";
    display: block;
    position: absolute;
    z-index: 2;
    top: 13px;
    right: -18px;
    width: 15px;
    background-repeat: no-repeat;
    height: 15px;
    background-image: url(https://elwiki.net/wiki/images/0/0b/Arrowright.png);
    background-size: contain;
    background-position: center;
}
 
/* Echo */
 
#personal-extra ul {
    margin-top: 0.7rem;
    margin-left: 0.7rem;
    display: flex;
    gap: 0.3rem;
}
 
#user-tools {
    display: flex;
    place-content: center;
    min-width: 0;
    padding: 0 1.5rem;
}
 
#personal-extra {
    padding: 0.05rem 0 00;
}
 
.mw-echo-alert {
    margin: 0;
}
 
.mw-echo-ui-notificationItemWidget-icon img {
    filter: brightness(1.8) saturate(1.3);
}
 
.mw-echo-ui-toggleReadCircleButtonWidget-circle,
#pt-notifications-notice .mw-echo-notifications-badge.oo-ui-flaggedElement-unseen:after,
#pt-notifications-notice .mw-echo-notifications-badge.mw-echo-unseen-notifications:after {
    background: var(--accent-color) !important;
}
 
.mw-echo-ui-notificationItemWidget-content-actions
    > .mw-echo-ui-notificationItemWidget-content-actions-buttons.oo-ui-buttonSelectWidget {
    display: flex;
}
 
/* Anchor tabs */
.anchor-tabs a {
    background-color: var(--theme-tone-7);
}
 
.anchor-tabs a.mw-selflink {
    background: var(--accent-color);
}
 
/* Instance page */
.instance-page .wikitable tr > th {
    background-color: var(--theme-tone-5);
}
 
.instance-page .segment-contents {
    border-color: var(--border-color) !important;
}
 
/* Old tabs hacks */
.tabdiv table.wikitable:first-of-type {
    margin-top: 0;
}
.infobox-new .tabdiv:not(.tabber-new) {
    display: flex;
    flex-direction: column;
}
.infobox-new .tabdiv ul:not(.tabber-new ul) {
    display: flex;
    place-content: center;
}
 
/* Responsive Styles */
@media screen and (min-width: 851px) and (max-width: 1099px) {
    #mw-site-navigation .sidebar-chunk {
        padding: 0 !important;
     }
     }
 
     if (selector.indexOf("#") > 0) { //id selector like "tag#id"
     #mw-site-navigation .sidebar-inner {
        s = selector.split("#");
         padding: 1em;
        tag = s[0];
         selid = s[1];
     }
     }
 
    if (selid != "") {
    .sidebar-chunk ul li > a {
        f = document.getElementById(selid);
         border-color: white;
        if (f) objlist.push(f);
         return (objlist);
     }
     }
 
     if (selector.indexOf(".") > 0) { //class selector like "tag.class"
     #simpleSearch {
        s = selector.split(".");
         width: 95%;
         tag = s[0];
         margin-left: auto;
         selclass = s[1];
     }
     }
 
    var v = document.getElementsByTagName(tag); // tag selector like "tag"
     #mw-site-navigation {
     if (selclass == "")
         z-index: 99;
        return (v);
    for (i = 0; i < v.length; i++) {
         if (v[i].className.indexOf(selclass) >= 0) {
            objlist.push(v[i]);
        }
     }
     }
    return (objlist);
}
}


@media screen and (max-width: 1300px) {
function Mix(c1, c2) {
     body {
     var i, step1, step2, x, y, r = new Array(3);
         overflow-x: hidden;
    if (c1.length == 4) step1 = 1;
    else step1 = 2;
    if (c2.length == 4) step2 = 1;
    else step2 = 2;
    for (i = 0; i < 3; i++) {
         x = parseInt(c1.substr(1 + step1 * i, step1), 16);
        if (step1 == 1) x = 16 * x + x;
        y = parseInt(c2.substr(1 + step2 * i, step2), 16);
        if (step2 == 1) y = 16 * y + y;
        r[i] = Math.floor((x * 50 + y * 50) / 100);
     }
     }
    return ("#" + r[0].toString(16) + r[1].toString(16) + r[2].toString(16));
}
}


@media screen and (max-width: 850px) {
function doRoundEdges() {
     .sidebar-inner,
     if (!NiftyCheck())
    .dropdown {
         return;
         background: #f8f9fa;
     Rounded("div#nifty", "all", "#FFF", "#D4DDFF", "smooth");
     }
}
}


@media screen and (max-width: 1600px) {
/* IE Correction Code **********************************************
    .current-info .segment-contents .mw-collapsible-content {
* Description: This is code to fix known bugs in IE
        flex-direction: column;
* Detects if an IE browser and applies browser-specific code
    }
* Author: User:Bigfoot Lover @ Bionic Wiki
    .boss-timer-section,
* Added: 8 October 2007
    .boss-timer-section .tabber-content {
* Modified 18 October 2007 to fix ie imagemap bug
        width: auto !important;
*/
    }
 
     .timers-wrap {
// setStyleById: given an element id, style property and
        place-content: center;
// value, apply the style.
     }
// args:
//  i - element id
//  p - property
//  v - value
//
function setStyleById(i, p, v) {
     var n = document.getElementById(i);
     n.style[p] = v;
}
}


@media screen and (max-width: 767px) {
function performIE() {
     table {
     if (-1 != navigator.userAgent.indexOf("MSIE")) {
         max-width: 100%;
         /* perform Microsoft Internet Explorer-specific subs */
         overflow-x: auto;
        var Divs = document.getElementsByTagName("div");
         display: inline-table !important;
         var divCnt = 0;
    }
         var divID = "";
 
        if (Divs.length > 0) {
    .hscroll {
            var CurrDiv = Divs[0];
        width: 100%;
            var s = "";
         overflow-x: scroll;
            while (Divs.length > divCnt) {
                s = eval("CurrDiv.style.ietop");
                if ((s != "") && (s != null)) {
                    divID = "mapDiv" + divCnt;
                    CurrDiv.setAttribute("id", divID);
                    setStyleById(divID, "top", CurrDiv.style.ietop);
                }
                divCnt++;
                CurrDiv = Divs[divCnt];
            }
         }
     }
     }
    .infobox {
        float: left !important;
    }
    .split.uneven-split .segment-headers,
    .split.uneven-split .segment-contents {
        grid-template-columns: auto;
    }
}
/* Dark mode */
.dark-mode {
    --accent-color: #41afcc;
    --border-color: #444444;
    --border-color-tone-2: #838383;
    --theme-tone-1: #171717;
    --theme-tone-2: #242424;
    --theme-tone-3: #3b3b3b;
    --theme-tone-4: #2b2b2b;
    --theme-tone-5: #232323;
    --theme-tone-6: #1f1f1f;
    --theme-tone-7: #323435;
    --theme-tone-8: #4c4f53;
    --theme-tone-9: var(--theme-tone-8);
    --text-color: #f7f7f7;
    --text-color-invert: black;
    --inactive-color: #afbbca;
}
#dark-mode-switch {
    height: 40px;
    width: 40px;
    position: fixed;
    border-radius: 50%;
    background: var(--theme-tone-1);
    z-index: 9999;
    bottom: 10px;
    left: 10px;
    cursor: pointer;
    display: flex;
    align-items: center;
    place-content: center;
    transition: background-color 0.3s;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.35);
}
#dark-mode-switch:hover {
    animation: wobble 1s;
    background-color: var(--accent-color);
}
#dark-mode-switch:hover::before {
    filter: brightness(2);
}
}


#dark-mode-switch.new::after {
//Fix height issue with ads
    content: "NEW!";
var HeightFix = $("#mw-content-block");
    position: absolute;
//$("#mw-related-navigation").css("min-height", HeightFix.height());
    top: -15px;
$("#mw-related-navigation").attr("style", "min-height: " + HeightFix.height() + "px !important");
    right: -23px;
    font-weight: 500;
    color: #fff;
    background: #dc3545;
    padding: 0.125rem 0.25rem;
    border-radius: 0.2rem;
    font-size: 0.8rem;
}


#dark-mode-switch::before {
//Get Ad Dart Number
    content: "";
var randDARTNumber = 0;
    width: 20px;
    height: 20px;
    display: block;
    background-image: url("https://svgshare.com/i/iDJ.svg");
    background-size: contain;
    color: red;
    transition: filter 0.3s;
}


.dark-mode #dark-mode-switch::before {
function genSetRandDARTNumber() {
     background-image: url("https://svgshare.com/i/iD5.svg");
     randDARTNumber = Math.round(Math.random() * 1000000000000);
}
}
genSetRandDARTNumber();


@keyframes wobble {
// Fix scripts literally disappearing when clicking "save changes" in VE
     0% {
mw.hook('ve.activationComplete').add(function () {
         transform: translateX(0%);
     var originalSaveComplete = ve.init.mw.ArticleTarget.prototype.saveComplete;
    ve.init.mw.ArticleTarget.prototype.saveComplete = function (data) {
         // Calling the original implementation first
        originalSaveComplete.call(this, data);
        // Custom things
        doRoundEdges();
        enhancements();
     }
     }
    15% {
});
        transform: translate(-4%) rotate(-5deg);
    }
    30% {
        transform: translate(4%) rotate(3deg);
    }
    45% {
        transform: translate(-2.5%) rotate(-3deg);
    }
    60% {
        transform: translate(1.25%) rotate(2deg);
    }
    75% {
        transform: translate(-2.5%) rotate(-1deg);
    }
    100% {
        transform: translateX(0%);
    }
}
 
.dark-mode #mw-content-container {
    background-color: var(--theme-tone-4);
}
 
.dark-mode .tabber-tab span {
    color: var(--text-color);
}
 
.dark-mode #personal .dropdown:before {
    border-bottom-color: var(--border-color);
}
 
.dark-mode #personal .dropdown:after {
    border-bottom-color: var(--theme-tone-6);
}
 
.dark-mode #p-logo-text a {
    color: var(--border-color-tone-2);
}
.dark-mode #personal-extra,
.dark-mode .server-time-image-wrap,
.dark-mode .tools-inline li a,
.dark-mode .tools-inline li a span,
.dark-mode #mw-data-after-content img,
.dark-mode .mw-editsection,
.dark-mode .mw-editsection a,
.dark-mode span.oo-ui-iconElement-icon,
.dark-mode span.oo-ui-fieldLayout-field span,
.dark-mode .postedit:after,
.dark-mode #mw-indicator-mw-helplink a,
.dark-mode
    .oo-ui-buttonElement.oo-ui-widget-enabled
    > .oo-ui-buttonElement-button
    > .oo-ui-iconElement-icon:not(.oo-ui-image-invert),
.dark-mode
    .oo-ui-buttonElement.oo-ui-widget-enabled
    > .oo-ui-buttonElement-button
    > .oo-ui-indicatorElement-indicator:not(.oo-ui-image-invert),
.dark-mode .flow-component .mw-ui-icon::before,
.dark-mode
    .oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-textInputWidget-type-search
    > .oo-ui-indicatorElement-indicator,
.dark-mode div.magnify a {
    filter: invert(1);
}
.dark-mode .warningbox,
.dark-mode .postedit.mw-notification {
    background-color: var(--theme-tone-7);
    border-color: var(--border-color);
    color: var(--text-color);
}
.dark-mode .mw-body .mw-parser-output h2:not(.toctitle h2) {
    background-image: url("https://elwiki.net/wiki/images/c/cc/Asset_-_Header_%28Dark%29.png");
}
.dark-mode .oo-ui-icon-stop,
.dark-mode .mw-ui-icon-stop:before {
    filter: invert(0) !important;
}
.dark-mode #mw-indicator-mw-helplink a {
    color: black;
    font-weight: 500;
}
.dark-mode .mw-plusminus-pos {
    color: #abff8e;
}
.dark-mode .mw-plusminus-neg {
    color: #ff6565;
}
.dark-mode .autocomment,
.dark-mode .autocomment a,
.dark-mode .autocomment a:visited {
    color: #b6bdc4;
}

Revision as of 17:47, 13 March 2024

function matchHeaderText() {
    $('table[cellpadding="5"][border="1"][style] tr[style]:not(.dungeon-page-fields tr), table[cellpadding="5"][border="1"][style] tr[class]:not(.dungeon-page-fields tr), .instance-page .segment-header, .auto-header-color .segment-header, .alt-langs th, .updates-table th, table[cellpadding="5"][border="1"][class*="colortable-"] th, .auto-text-color .segment-header').each(function () {
        var rgb = $(this).css('backgroundColor');
        var colors = rgb.match(/\d+/g);
        var o = Math.round(((parseInt(colors[0]) * 299) + (parseInt(colors[1]) * 587) + (parseInt(colors[2]) * 114)) / 1000);
        if ($(this).parents('.section-characters').length) return;
        if (o < 155 && rgb != 'rgba(0, 0, 0, 0)') {
            $(this).addClass('force-white');
        } else if (!$(this).is('tr')) {
            $(this).addClass('force-black');
        }
    });
    setTimeout(function () {
        $('.segment-partial .mw-collapsible-text, .segment .mw-collapsible-text').each(function () {
            var matched_white = $(this).parents('.segment').find('.segment-header:eq(0)').hasClass('force-white');
            var matched_black = $(this).parents('.segment').find('.segment-header:eq(0)').hasClass('force-black');
            if (matched_white) {
                $(this).addClass('force-white')
            } else if (matched_black) {
                $(this).addClass('force-black')
            }
        });
    }, 50);
}

var loadJS = function (url, implementationCode, location) {
    var scriptTag = document.createElement('script');
    scriptTag.src = url;
    scriptTag.onload = implementationCode;
    scriptTag.onreadystatechange = implementationCode;
    location.appendChild(scriptTag);
};
var popperLoaded = function () {
    var tippyLoaded = function () {
        tippy('.tippy-btn', {
            interactive: true,
            allowHTML: true,
            appendTo: document.body,
            delay: 200
        });
        document.body.classList.add('tippy-loaded');
    };

    loadJS('https://elwiki.net/wiki/index.php?title=MediaWiki:Tippy.js&action=raw&ctype=text/javascript', tippyLoaded, document.body);
}

function enhancements() {
    $('.infobox .tabs-tabbox').before('<div class="tabs-background"></div>');
    $('dfn').parents('p').remove();
    $('.sidebar-chunk #nav > ul > li:has(".mw-selflink")').find('> a').addClass('mw-has-selflink');
    if (window.location.pathname == '/w/Special:RecentChanges') $('#mw-site-navigation .sidebar-chunk a[href="/w/Special:RecentChanges"]').addClass('mw-has-selflink');
    $('#p-banner').html("<span><span class='main-accent'>El</span>wiki</span>");
    $('.region-map img[alt="About this image"]').attr('src', 'https://elwiki.net/wiki/images/1/1f/UI_-_Help.png').show();
    $('table[cellpadding="5"][border="1"][style] tr[style*="rgb(68, 68, 68)"] th').css('border-color', 'black');

    matchHeaderText();
    $('.skill-nav-skill:has(.mw-selflink)').addClass('self-skill');
    $("#ca-ve-edit").clone().attr('id', 'ca-ve-edit-clone').prependTo($('#p-views .mw-portlet-body ul'));
    $("#ca-ve-edit").hide();

    var rows_to_highlight = [
        'Normal',
        '[Enhanced]',
        'PvE',
        'PvP'
    ]

    rows_to_highlight.forEach(function (rowContent) {
        var rows = $('[class^="colortable-"] td b:contains("' + rowContent + '")');
        rows.each(function () {
            const textContent = $(this).parents('td')[0].textContent.trim();
            if (textContent == rowContent) $(this).parent().addClass('tone-4');
        })
    })
    loadJS('https://unpkg.com/@popperjs/core@2.11.6/dist/umd/popper.min.js', popperLoaded, document.body);

    $('.related-skills td[width="150"]').each(function () {
        if (!$(this).find('.skill-wrap').length) {
            $(this).wrapInner('<div class="skill-wrap-text"></div>');
            $(this).wrapInner('<div class="skill-wrap"></div>');
        }
    });

    $('.related-skills:not(.no-div):not(.skill-table)').each(function () {
        var limit = $(this).attr('width');
        var limitString = '';
        if (limit !== undefined) limitString = " data-limit='" + limit + "'";
        $(this).replaceWith($(this).html()
            .replace(/<tbody/gi, "<div class='" + $(this).attr('class') + "'" + limitString)
            .replace(/<tr/gi, "<div data-type='table-row'")
            .replace(/<\/tr>/gi, "</div>")
            .replace(/<td/gi, "<div data-type='table-cell'")
            .replace(/<\/td>/gi, "</div>")
            .replace(/<th/gi, "<div data-type='table-head'")
            .replace(/<\/th>/gi, "</div>")
            .replace(/<\/tbody/gi, "<\/div")
        );
    });

    $('.skill-wrap:not(.no-div .skill-wrap, .skill-table .skill-wrap)').each(function () {
        var link = $(this).find('> .skill-wrap-text a:not(.image)').attr('href');
        $(this).wrap('<a href="' + link + '">');
    });

    $('.related-skills.no-div td[width="150"]').click(function () {
        $(this).find('.skill-wrap > .skill-wrap-text a:not(.image)').get(0).click();
    });

    function chunk(arr, len) {
        var chunks = [],
            i = 0,
            n = arr.length;
        while (i < n) {
            chunks.push(arr.slice(i, i += len));
        }
        return chunks;
    }


    $('.related-skills:not(.skill-table)').each(function () {
        var cell = $(this).find('[data-type="table-cell"]');
        var limit = $(this).attr('data-limit');
        if (limit !== undefined && limit != '' && !isNaN(limit)) limit = parseInt(limit) * 2;
        else limit = 8;
        var attempt = false;
        $(this).find('[data-type="table-row"]').each(function () {
            if ($(this).find('[data-type="table-cell"]').length > limit) attempt = true;
        });
        if (attempt) {
            var overflow_elems = chunk(cell, limit);
            $(this).empty();
            for (var i = 0; i < overflow_elems.length; i++) {
                $(this).append('<div data-type="table-row">');
                $(this).find('[data-type="table-row"]:last').append(overflow_elems[i]);
            }
        }
    });

    $('.related-skills:not(.no-div):not(.skill-table)').addClass('shown');


    $('.boss-timer-section .tabber-tab').click(function (e) {
        if (e.screenX && e.screenX != 0 && e.screenY && e.screenY != 0) {
            setCookie('current-server-timer', $(this).text());
        }
    });

    $('.henir-stage .inner').click(function (e) {
        e.preventDefault();
        var link = $(this).find('a:not(.tippy-content a)').attr('href');
        //window.location.href = window.location.origin + link;
        window.open(window.location.origin + link)
    });

    setTimeout(function () { $('.current-info .segment-contents > .mw-collapsible-content').addClass('shown') }, 100);

    if (typeof character_banner_exists !== undefined) mw.loader.load('https://elwiki.net/wiki/index.php?title=MediaWiki:Character-Banner.js&action=raw&ctype=text/javascript');

    if ($('.boss-timer').length) {
        mw.loader.load('https://elwiki.net/wiki/index.php?title=MediaWiki:BossTimer.js&action=raw&ctype=text/javascript');
    }

    if ($('.server-time-wrap').length) {
        mw.loader.load('https://elwiki.net/wiki/index.php?title=MediaWiki:ServerTime.js&action=raw&ctype=text/javascript');
    }

    $('.dungeon-map .region-map').prepend('<div class="tabber-list-toggle"><img src="https://elwiki.net/wiki/images/7/7c/UI_-_Toggle.png"/></div>');

    $('.tabber-list-toggle img').click(function () {
        $('.tabber-list-toggle img').toggleClass('back');
        $('.dungeon-map .tabber-vertical .tabber-ul').toggleClass('list-hidden');
    });

    $('body').append('<div id="dark-mode-switch"></div>')

    $('#dark-mode-switch').click(function () {
        setCookie('not-new', true);
        if ($('body').hasClass('dark-mode')) {
            setCookie('elwiki-dark-mode', 'false');
        } else {
            setCookie('elwiki-dark-mode', 'true');
        }
        setTimeout(function () {
            window.location.reload(1);
        }, 50)
    });

    if (getCookie('elwiki-dark-mode') == 'true') $('body').addClass('dark-mode');
    if (getCookie('not-new') == null) $('#dark-mode-switch').addClass('new');

    // This is pretty cringe, tabs don't load sometimes
    if (!$('.tabber-new.loaded').length) mw.loader.load('https://elwiki.net/wiki/index.php?title=MediaWiki:Gadget-Tabs.js&action=raw&ctype=text/javascript')
}

$(function () {
    doRoundEdges();
    performIE();
    enhancements();

    // Fix the preview button losing custom script output
    // This is a complete ChatGPT moment, I couldn't be arsed to debug on my own
    $(document).on('DOMNodeInserted', function (event) {
        var element = event.target;
        if ($(element).hasClass('previewnote')) {
            var previewLoaded = $(element).find('.previewloading').length == 0;
            if (previewLoaded && !$(element).hasClass('custom-preview-run')) {
                $(element).addClass('custom-preview-run');
                enhancements();
            }
        }
    });
});

if ($('.skin-minerva').length) {
    var time_loading = 0;
    var chkReadyState = setInterval(function () {
        if (document.readyState == "complete" || time_loading > 3000) {
            // clear the interval
            clearInterval(chkReadyState);
            $('#loading-screen').css({ transition: '300ms', pointerEvents: 'none', opacity: 0 });
        }
        time_loading += 100;
    }, 100);
}

function docReady(fn) {
    // see if DOM is already available
    if (document.readyState === "complete" || document.readyState === "interactive") {
        // call on next available tick
        setTimeout(fn, 1);
    } else {
        document.addEventListener("DOMContentLoaded", fn);
    }
}

function setCookie(name, value, days) {
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toUTCString();
    }
    document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
function getCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

var usesClass = (function () {
    var reCache = {};
    return function (element, className) {
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
    };
})();

/* JavaScript for rounding borders
   Source: http://webdesign.html.it/articoli/leggi/528/more-nifty-corners */

function NiftyCheck() {
    if (!document.getElementById || !document.createElement)
        return (false);
    isXHTML = /html\:/.test(document.getElementsByTagName('body')[0].nodeName);
    if (Array.prototype.push == null) {
        Array.prototype.push = function () {
            this[this.length] = arguments[0];
            return (this.length);
        }
    }
    return (true);
}

function Rounded(selector, wich, bk, color, opt) {
    var i, prefixt, prefixb, cn = "r",
        ecolor = "",
        edges = false,
        eclass = "",
        b = false,
        t = false;

    if (color == "transparent") {
        cn = cn + "x";
        ecolor = bk;
        bk = "transparent";
    } else if (opt && opt.indexOf("border") >= 0) {
        var optar = opt.split(" ");
        for (i = 0; i < optar.length; i++)
            if (optar[i].indexOf("#") >= 0) ecolor = optar[i];
        if (ecolor == "") ecolor = "#666";
        cn += "e";
        edges = true;
    } else if (opt && opt.indexOf("smooth") >= 0) {
        cn += "a";
        ecolor = Mix(bk, color);
    }
    if (opt && opt.indexOf("small") >= 0) cn += "s";
    prefixt = cn;
    prefixb = cn;
    if (wich.indexOf("all") >= 0) {
        t = true;
        b = true
    } else if (wich.indexOf("top") >= 0) t = "true";
    else if (wich.indexOf("tl") >= 0) {
        t = "true";
        if (wich.indexOf("tr") < 0) prefixt += "l";
    } else if (wich.indexOf("tr") >= 0) {
        t = "true";
        prefixt += "r";
    }
    if (wich.indexOf("bottom") >= 0) b = true;
    else if (wich.indexOf("bl") >= 0) {
        b = "true";
        if (wich.indexOf("br") < 0) prefixb += "l";
    } else if (wich.indexOf("br") >= 0) {
        b = "true";
        prefixb += "r";
    }
    var v = getElementsBySelector(selector);
    var l = v.length;
    for (i = 0; i < l; i++) {
        if (edges) AddBorder(v[i], ecolor);
        if (t) AddTop(v[i], bk, color, ecolor, prefixt);
        if (b) AddBottom(v[i], bk, color, ecolor, prefixb);
    }
}

function AddBorder(el, bc) {
    var i;
    if (!el.passed) {
        if (el.childNodes.length == 1 && el.childNodes[0].nodeType == 3) {
            var t = el.firstChild.nodeValue;
            el.removeChild(el.lastChild);
            var d = CreateEl("span");
            d.style.display = "block";
            d.appendChild(document.createTextNode(t));
            el.appendChild(d);
        }
        for (i = 0; i < el.childNodes.length; i++) {
            if (el.childNodes[i].nodeType == 1) {
                el.childNodes[i].style.borderLeft = "1px solid " + bc;
                el.childNodes[i].style.borderRight = "1px solid " + bc;
            }
        }
    }
    el.passed = true;
}

function AddTop(el, bk, color, bc, cn) {
    var i, lim = 4,
        d = CreateEl("b");

    if (cn.indexOf("s") >= 0) lim = 2;
    if (bc) d.className = "artop";
    else d.className = "rtop";
    d.style.backgroundColor = bk;
    for (i = 1; i <= lim; i++) {
        var x = CreateEl("b");
        x.className = cn + i;
        x.style.backgroundColor = color;
        if (bc) x.style.borderColor = bc;
        d.appendChild(x);
    }
    el.style.paddingTop = 0;
    el.insertBefore(d, el.firstChild);
}

function AddBottom(el, bk, color, bc, cn) {
    var i, lim = 4,
        d = CreateEl("b");

    if (cn.indexOf("s") >= 0) lim = 2;
    if (bc) d.className = "artop";
    else d.className = "rtop";
    d.style.backgroundColor = bk;
    for (i = lim; i > 0; i--) {
        var x = CreateEl("b");
        x.className = cn + i;
        x.style.backgroundColor = color;
        if (bc) x.style.borderColor = bc;
        d.appendChild(x);
    }
    el.style.paddingBottom = 0;
    el.appendChild(d);
}

function CreateEl(x) {
    if (isXHTML) return (document.createElementNS('http://www.w3.org/1999/xhtml', x));
    else return (document.createElement(x));
}

function getElementsBySelector(selector) {
    var i, selid = "",
        selclass = "",
        tag = selector,
        f, s = [],
        objlist = [];

    if (selector.indexOf(" ") > 0) { //descendant selector like "tag#id tag"
        s = selector.split(" ");
        var fs = s[0].split("#");
        if (fs.length == 1) return (objlist);
        f = document.getElementById(fs[1]);
        if (f) return (f.getElementsByTagName(s[1]));
        return (objlist);
    }
    if (selector.indexOf("#") > 0) { //id selector like "tag#id"
        s = selector.split("#");
        tag = s[0];
        selid = s[1];
    }
    if (selid != "") {
        f = document.getElementById(selid);
        if (f) objlist.push(f);
        return (objlist);
    }
    if (selector.indexOf(".") > 0) { //class selector like "tag.class"
        s = selector.split(".");
        tag = s[0];
        selclass = s[1];
    }
    var v = document.getElementsByTagName(tag); // tag selector like "tag"
    if (selclass == "")
        return (v);
    for (i = 0; i < v.length; i++) {
        if (v[i].className.indexOf(selclass) >= 0) {
            objlist.push(v[i]);
        }
    }
    return (objlist);
}

function Mix(c1, c2) {
    var i, step1, step2, x, y, r = new Array(3);
    if (c1.length == 4) step1 = 1;
    else step1 = 2;
    if (c2.length == 4) step2 = 1;
    else step2 = 2;
    for (i = 0; i < 3; i++) {
        x = parseInt(c1.substr(1 + step1 * i, step1), 16);
        if (step1 == 1) x = 16 * x + x;
        y = parseInt(c2.substr(1 + step2 * i, step2), 16);
        if (step2 == 1) y = 16 * y + y;
        r[i] = Math.floor((x * 50 + y * 50) / 100);
    }
    return ("#" + r[0].toString(16) + r[1].toString(16) + r[2].toString(16));
}

function doRoundEdges() {
    if (!NiftyCheck())
        return;
    Rounded("div#nifty", "all", "#FFF", "#D4DDFF", "smooth");
}

/* IE Correction Code **********************************************
 * Description: This is code to fix known bugs in IE
 * Detects if an IE browser and applies browser-specific code
 * Author: User:Bigfoot Lover @ Bionic Wiki
 * Added: 8 October 2007
 * Modified 18 October 2007 to fix ie imagemap bug
 */

// setStyleById: given an element id, style property and 
// value, apply the style.
// args:
//  i - element id
//  p - property
//  v - value
//
function setStyleById(i, p, v) {
    var n = document.getElementById(i);
    n.style[p] = v;
}

function performIE() {
    if (-1 != navigator.userAgent.indexOf("MSIE")) {
        /* perform Microsoft Internet Explorer-specific subs */
        var Divs = document.getElementsByTagName("div");
        var divCnt = 0;
        var divID = "";
        if (Divs.length > 0) {
            var CurrDiv = Divs[0];
            var s = "";
            while (Divs.length > divCnt) {
                s = eval("CurrDiv.style.ietop");
                if ((s != "") && (s != null)) {
                    divID = "mapDiv" + divCnt;
                    CurrDiv.setAttribute("id", divID);
                    setStyleById(divID, "top", CurrDiv.style.ietop);
                }
                divCnt++;
                CurrDiv = Divs[divCnt];
            }
        }
    }
}

//Fix height issue with ads
var HeightFix = $("#mw-content-block");
//$("#mw-related-navigation").css("min-height", HeightFix.height());
$("#mw-related-navigation").attr("style", "min-height: " + HeightFix.height() + "px !important");

//Get Ad Dart Number
var randDARTNumber = 0;

function genSetRandDARTNumber() {
    randDARTNumber = Math.round(Math.random() * 1000000000000);
}
genSetRandDARTNumber();

// Fix scripts literally disappearing when clicking "save changes" in VE
mw.hook('ve.activationComplete').add(function () {
    var originalSaveComplete = ve.init.mw.ArticleTarget.prototype.saveComplete;
    ve.init.mw.ArticleTarget.prototype.saveComplete = function (data) {
        // Calling the original implementation first
        originalSaveComplete.call(this, data);
        // Custom things
        doRoundEdges();
        enhancements();
    }
});