
:root {
    --nf-bg: #050509;
    --nf-card: rgba(14, 12, 24, 0.96);
    --nf-card2: rgba(22, 16, 38, 0.96);
    --nf-border: rgba(155, 82, 255, 0.38);
    --nf-border-soft: rgba(255, 255, 255, 0.08);
    --nf-purple: #8d45ff;
    --nf-purple2: #b66aff;
    --nf-red: #d4243f;
    --nf-green: #63df64;
    --nf-text: #f5f2ff;
    --nf-muted: rgba(245, 242, 255, 0.68);
    --nf-dark: #07070d;
}

* {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    padding: 0;
    background:
        radial-gradient(circle at 20% 0%, rgba(141, 69, 255, .28), transparent 34%),
        radial-gradient(circle at 80% 10%, rgba(71, 26, 130, .34), transparent 38%),
        linear-gradient(180deg, #030305 0%, #080713 48%, #040406 100%) !important;
    color: var(--nf-text) !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 12px;
}

#nf-page-bg {
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
    background-size: 42px 42px;
    opacity: .45;
    z-index: 0;
}

a {
    color: var(--nf-purple2);
    text-decoration: none;
}

a:hover {
    color: #fff;
    text-decoration: none;
}

#mainwrapper {
    width: 1180px;
    max-width: calc(100% - 28px);
    margin: 0 auto;
}

#nf-header {
    position: relative;
    z-index: 2;
    min-height: 205px;
    background:
        linear-gradient(90deg, rgba(0,0,0,.94), rgba(20,8,45,.78), rgba(0,0,0,.88)),
        radial-gradient(circle at 68% 44%, rgba(141, 69, 255, .36), transparent 28%);
    border-bottom: 1px solid rgba(141, 69, 255, .24);
}

#nf-header #mainwrapper {
    min-height: 205px;
    display: flex;
    align-items: center;
    gap: 28px;
    padding: 24px 0;
}

#nf-logo img {
    width: min(540px, 52vw);
    height: auto;
    display: block;
    filter: drop-shadow(0 0 18px rgba(141, 69, 255, .45));
}

#nf-header-text {
    margin-left: auto;
    text-align: right;
    text-transform: uppercase;
}

.nf-kicker {
    color: var(--nf-purple2);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 2px;
    margin-bottom: 9px;
}

.nf-title {
    color: #fff;
    font-size: 36px;
    font-weight: 950;
    letter-spacing: 2px;
    line-height: 1;
}

.nf-subtitle {
    color: var(--nf-muted);
    font-size: 13px;
    letter-spacing: 1px;
    margin-top: 10px;
}

#tabsWrapper {
    position: relative;
    z-index: 20;
    background: transparent;
}

#tabs {
    min-height: 44px;
    margin: 0 auto 18px;
    padding: 9px;
    background: rgba(6, 5, 12, .94);
    border: 1px solid rgba(141, 69, 255, .42);
    border-top: 0;
    border-radius: 0 0 12px 12px;
    box-shadow: 0 15px 40px rgba(0,0,0,.28);
}

#tabs ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

#tabs li {
    display: inline-block;
    margin: 0 3px 4px 0;
    padding: 0;
}

#tabs li a,
#tabs a {
    display: inline-block;
    color: #fff !important;
    padding: 10px 14px;
    border-radius: 8px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .45px;
    font-size: 12px;
}

#tabs li.active a,
#tabs li a:hover,
#tabs a:hover,
.nf-login-button {
    background: linear-gradient(135deg, rgba(141,69,255,.95), rgba(84,30,170,.95)) !important;
    box-shadow: 0 0 18px rgba(141, 69, 255, .24);
}

.nf-logout {
    background: linear-gradient(135deg, #d4243f, #851227) !important;
}

.user {
    float: right;
    color: var(--nf-muted);
    padding: 10px 12px;
}

#content_title {
    color: #fff;
    font-size: 28px;
    margin: 12px 0 8px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

#breadcrumb {
    color: var(--nf-muted);
    margin: 5px 0 14px;
}

#breadcrumb a {
    color: var(--nf-purple2);
}

#content,
#main,
#innerwrapper,
#admin-page-content,
#dashboard,
#banlist,
#commslist {
    background:
        linear-gradient(180deg, rgba(28, 16, 50, .97), rgba(8, 8, 15, .98)) !important;
    border: 1px solid var(--nf-border);
    border-radius: 14px;
    box-shadow: 0 18px 60px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.05);
    color: var(--nf-text) !important;
    padding: 16px;
}

#admin-page-menu {
    background: rgba(14, 12, 24, .96) !important;
    border: 1px solid rgba(141,69,255,.34);
    border-radius: 10px;
    color: var(--nf-text) !important;
}

#admin-page-menu ul,
#admin-page-menu li {
    list-style: none;
    margin: 0;
    padding: 0;
}

#admin-page-menu a {
    display: block;
    padding: 10px 12px;
    color: #fff !important;
    font-weight: 800;
}

#admin-page-menu a:hover {
    background: rgba(141,69,255,.22) !important;
}

table,
.listtable,
.data-table,
.livestats-table {
    width: 100%;
    background: rgba(11, 9, 19, .96) !important;
    border: 1px solid rgba(141, 69, 255, .32) !important;
    border-collapse: collapse;
    color: var(--nf-text) !important;
}

th,
.listtable_top,
.data-table-head,
.data-table-row {
    background:
        linear-gradient(180deg, rgba(141,69,255,.32), rgba(18,10,34,.98)) !important;
    border: 1px solid rgba(141, 69, 255, .42) !important;
    color: #fff !important;
    text-transform: uppercase;
    letter-spacing: .6px;
    font-weight: 900;
    padding: 9px !important;
}

td,
.listtable td,
.data-table td,
.livestats-table td {
    border: 1px solid rgba(141, 69, 255, .18) !important;
    color: var(--nf-text) !important;
    padding: 8px !important;
    background: rgba(255,255,255,.025) !important;
}

tr:hover td {
    background: rgba(141, 69, 255, .10) !important;
}

.row0,
.row1,
.row2,
.bg1,
.bg2 {
    background: rgba(255,255,255,.025) !important;
    color: var(--nf-text) !important;
}

.fHeading,
.fTitle,
.title,
.subtitle,
h1, h2, h3, h4 {
    color: #fff !important;
}

.fSmall,
.small,
.description {
    color: var(--nf-muted) !important;
}

.fNormal,
.normal {
    color: var(--nf-text) !important;
}

input,
select,
textarea,
.textbox,
input[type="text"],
input[type="password"] {
    background: rgba(0,0,0,.46) !important;
    border: 1px solid rgba(141, 69, 255, .42) !important;
    color: #fff !important;
    border-radius: 8px !important;
    padding: 8px !important;
}

input:focus,
select:focus,
textarea:focus {
    outline: none !important;
    border-color: var(--nf-purple2) !important;
    box-shadow: 0 0 0 2px rgba(141,69,255,.18);
}

button,
input[type="submit"],
input[type="button"],
.btn,
.button {
    background: linear-gradient(135deg, var(--nf-purple), #551bbd) !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.15) !important;
    border-radius: 8px !important;
    padding: 8px 13px !important;
    font-weight: 900 !important;
    text-transform: uppercase;
    cursor: pointer;
}

button:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
.btn:hover,
.button:hover {
    filter: brightness(1.15);
}

fieldset,
.dialog,
.modal,
.panel,
.box {
    background: rgba(14, 12, 24, .96) !important;
    border: 1px solid rgba(141,69,255,.34) !important;
    color: var(--nf-text) !important;
    border-radius: 12px !important;
}

.error,
.bad,
.alert-error {
    background: rgba(160, 26, 48, .18) !important;
    border: 1px solid rgba(255, 79, 114, .38) !important;
    color: #ff8da4 !important;
    border-radius: 10px;
    padding: 10px;
}

.success,
.good,
.alert-success {
    background: rgba(48, 190, 83, .15) !important;
    border: 1px solid rgba(48, 190, 83, .36) !important;
    color: #74ff91 !important;
    border-radius: 10px;
    padding: 10px;
}

.warning,
.alert-warning {
    background: rgba(255, 190, 60, .13) !important;
    border: 1px solid rgba(255, 190, 60, .34) !important;
    color: #ffd27a !important;
    border-radius: 10px;
    padding: 10px;
}

#footer {
    position: relative;
    z-index: 2;
    margin-top: 35px;
    padding: 28px 0;
    background: #030305;
    border-top: 1px solid rgba(141,69,255,.28);
    color: var(--nf-muted);
}

#footer img {
    filter: drop-shadow(0 0 12px rgba(141,69,255,.35));
}

#footer a {
    color: var(--nf-purple2) !important;
}

::-webkit-scrollbar {
    width: 10px;
}

::-webkit-scrollbar-track {
    background: #050509;
}

::-webkit-scrollbar-thumb {
    background: #5d2bb4;
    border-radius: 8px;
}

::-webkit-scrollbar-thumb:hover {
    background: #8d45ff;
}

@media (max-width: 850px) {
    #nf-header #mainwrapper {
        display: block;
        text-align: center;
        min-height: unset;
    }

    #nf-logo img {
        width: 100%;
        max-width: 560px;
        margin: 0 auto;
    }

    #nf-header-text {
        text-align: center;
        margin-top: 10px;
    }

    .nf-title {
        font-size: 28px;
    }

    #content,
    #main,
    #innerwrapper,
    #admin-page-content,
    #dashboard,
    #banlist,
    #commslist {
        padding: 8px;
        overflow-x: auto;
    }

    .user {
        float: none;
        display: block;
    }
}


/* ===== Nomad Fury v2 layout fix =====
   SourceBans++ dashboard panels use floats in some versions.
   These rules prevent the footer from appearing before dashboard content ends.
*/

#mainwrapper:after,
#content:after,
#innerwrapper:after,
#dashboard:after,
#admin-page-content:after,
#banlist:after,
#commslist:after,
.clearfix:after {
    content: "";
    display: table;
    clear: both;
}

#content,
#main,
#innerwrapper,
#admin-page-content,
#dashboard,
#banlist,
#commslist {
    overflow: visible !important;
    height: auto !important;
    min-height: 0 !important;
}

#footer {
    clear: both !important;
    position: relative !important;
    display: block !important;
    margin-top: 80px !important;
}

#footer:before {
    content: "";
    display: table;
    clear: both;
}

#admin-page-content,
#dashboard {
    margin-bottom: 60px !important;
}

/* Keep lower dashboard boxes from being hidden/cut off */
div[id*="latest"],
div[class*="latest"],
div[id*="block"],
div[class*="block"] {
    overflow: visible !important;
}

/* Make dashboard smaller panels wrap cleaner */
#dashboard table {
    margin-bottom: 14px !important;
}

/* Add breathing room at bottom of every SourceBans page */
body {
    padding-bottom: 40px !important;
}
