*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{
    -webkit-text-size-adjust:100%;
    font-size:15px;
    scroll-behavior:smooth;
    overflow-x:hidden !important;
    width:100% !important;
    max-width:100vw !important;
}
body{
    font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
    background:var(--page);
    color:var(--text);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    min-height:100vh;
    min-height:100dvh;
    display:flex;
    flex-direction:column;
    overflow-x:hidden !important;
    width:100% !important;
    max-width:100vw !important;
    position:relative;
}
.site-main{flex:1 0 auto;padding:24px 0}
a{color:var(--text);text-decoration:none;transition:color .15s}
a:hover{color:var(--accent-bright)}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-weight:700;line-height:1.3}
.container{max-width:1160px;margin:0 auto;padding:0 20px}

/* Scrollbar */
::-webkit-scrollbar{width:8px}
::-webkit-scrollbar-track{background:var(--page)}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--muted)}

/* Header — "Liquid Glass" preview pass. The navbar itself is now a floating
   island (detached from all 3 edges, sticky with a top gap) with a flat glass
   surface — no white specular sheen on the bar itself, that's reserved for the
   popup panels only, per feedback. A real distortion filter (SVG feTurbulence +
   feDisplacementMap, see the <svg> defs at the top of this file) is layered
   into the blur as a progressive enhancement — browsers that don't support an
   SVG reference inside backdrop-filter silently keep the plain blur baseline
   (declared first, ungated) instead of losing the blur entirely. */
.site-header{
    position:sticky;top:14px;z-index:100;
    width:calc(100% - 32px);max-width:1160px;margin:14px auto 0;
    background:var(--panel-glass);
    backdrop-filter:var(--lg-blur);-webkit-backdrop-filter:var(--lg-blur);
    border:var(--lg-border);border-radius:28px;
    box-shadow:var(--lg-rim), var(--lg-ambient);
    height:68px;
}
@supports (backdrop-filter: url(#lg-distortion)) {
    .site-header{backdrop-filter:var(--lg-blur-distort);-webkit-backdrop-filter:var(--lg-blur-distort)}
}
.header-inner{
    max-width:100%;margin:0 auto;padding:0 22px;
    display:flex;align-items:center;justify-content:space-between;
    height:100%;
}
.logo{display:flex;align-items:center;gap:8px;font-size:1.5rem;font-weight:800;letter-spacing:-.5px;text-shadow:var(--lg-text-shadow)}
.logo-z{color:var(--accent-bright)}
.logo-r{color:var(--text)}

/* ========= BRAND MARK (logo.png, recolored to --accent) =========
   A neon-style glow via stacked drop-shadow filters -- drop-shadow (unlike
   box-shadow) follows the PNG's own alpha shape instead of its rectangle, so
   the glow hugs the mark itself. Static by default; .logo:hover on the small
   nav mark and .intro-brand-mark on the login page both pulse for a bit more
   presence in a spot that isn't competing with as much other UI. */
.logo-mark{
    display:block;height:23px;width:auto;
    filter:drop-shadow(0 0 3px rgba(204,0,68,.85)) drop-shadow(0 0 9px rgba(204,0,68,.5));
    transition:filter .2s ease;
}
.logo:hover .logo-mark{filter:drop-shadow(0 0 4px rgba(204,0,68,1)) drop-shadow(0 0 14px rgba(204,0,68,.75)) drop-shadow(0 0 26px rgba(204,0,68,.4))}

.footer-logo-mark{height:19px;margin-right:2px}

.intro-brand-mark{
    /* Fixed size, not container-relative -- logo-hero.png already has even
       padding baked in on every side, so a percentage width just made the
       whole thing (padding included) scale unpredictably with the column.
       max-width keeps it from overflowing a genuinely narrow phone screen. */
    display:block;width:190px;max-width:100%;height:auto;margin:0 0 26px;
    filter:drop-shadow(0 0 6px rgba(204,0,68,.8)) drop-shadow(0 0 22px rgba(204,0,68,.45)) drop-shadow(0 0 44px rgba(153,0,51,.3));
    animation:brandGlowPulse 3.6s ease-in-out infinite;
}
@keyframes brandGlowPulse{
    0%,100%{filter:drop-shadow(0 0 6px rgba(204,0,68,.8)) drop-shadow(0 0 22px rgba(204,0,68,.45)) drop-shadow(0 0 44px rgba(153,0,51,.3))}
    50%{filter:drop-shadow(0 0 9px rgba(204,0,68,1)) drop-shadow(0 0 30px rgba(204,0,68,.65)) drop-shadow(0 0 58px rgba(153,0,51,.4))}
}
@media (prefers-reduced-motion: reduce){
    .intro-brand-mark{animation:none}
}

.main-nav{display:flex;gap:4px}
.nav-item{
    padding:8px 14px;border-radius:9999px;
    font-size:.85rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;
    color:var(--muted);transition:all .18s;border:1px solid transparent;
    text-shadow:var(--lg-text-shadow);
}
.nav-item:hover{color:var(--text);background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.08)}
.nav-item.active{
    color:var(--text);
    background:var(--accent-soft);
    border-color:var(--accent-border);
    box-shadow:var(--lg-rim);
}
.nav-item-split{
    display:inline-flex;
    align-items:stretch;
    border-radius:9999px;
    border:1px solid transparent;
    transition:all .18s;
    overflow:hidden;
    position:relative;
}
.nav-item-split:hover{
    background:rgba(255,255,255,.04);
    border-color:rgba(255,255,255,.08);
}
.nav-item-split.active{
    background:var(--accent-soft);
    border-color:var(--accent-border);
    box-shadow:var(--lg-rim);
}
.nav-item-split-link{
    display:inline-flex;
    align-items:center;
    padding:8px 5px 8px 14px;
    font-size:.85rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.5px;
    color:var(--muted);
    text-decoration:none;
    text-shadow:var(--lg-text-shadow);
    line-height:1.5;
    transition:color .18s, background .18s;
    border-top-left-radius:9999px;
    border-bottom-left-radius:9999px;
}
.nav-item-split-link:hover{
    color:var(--text);
    background:rgba(255,255,255,.06);
}
.nav-item-split.active .nav-item-split-link{
    color:var(--text);
}
.nav-item-split-arrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 10px 8px 6px;
    background:transparent;
    border:none;
    color:var(--muted);
    cursor:pointer;
    font:inherit;
    line-height:1;
    transition:color .18s, background .18s;
    border-top-right-radius:9999px;
    border-bottom-right-radius:9999px;
    position:relative;
}
.nav-item-split-arrow::before{
    content:"";
    position:absolute;
    left:0;
    top:25%;
    height:50%;
    width:1px;
    background:rgba(255,255,255,.08);
    transition:background .18s;
}
.nav-item-split-arrow:hover{
    color:var(--text);
    background:rgba(255,255,255,.1);
}
.nav-item-split-arrow:hover::before,
.nav-item-split-arrow.open::before{
    background:rgba(255,255,255,.22);
}
.nav-item-split.active .nav-item-split-arrow{
    color:var(--text);
}
.nav-item-split.active .nav-item-split-arrow::before{
    background:rgba(255,255,255,.16);
}
.nav-item-split-arrow.open{
    color:var(--text);
    background:rgba(255,255,255,.12);
}
.nav-item-split-arrow svg{
    display:block;
    transition:transform .2s cubic-bezier(.22,1,.36,1);
    pointer-events:none;
}
.nav-item-split-arrow.open svg{
    transform:rotate(180deg);
}
.nav-item-split-link:focus-visible,
.nav-item-split-arrow:focus-visible{
    outline:2px solid var(--accent,#990033);
    outline-offset:-2px;
}

.header-actions{display:flex;align-items:center;gap:8px}
.user-menu{position:relative}
.user-menu-trigger{
    display:flex;align-items:center;gap:8px;
    background:rgba(255,255,255,.04);
    border:var(--lg-border);border-radius:9999px;
    padding:6px 14px 6px 6px;color:var(--text);cursor:pointer;font-size:.85rem;
    transition:all .18s;text-shadow:var(--lg-text-shadow);
}
.user-menu-trigger:hover{background:rgba(255,255,255,.08);box-shadow:var(--lg-rim)}
.user-avatar-sm{width:24px;height:24px;border-radius:50%}
.user-name-nav{font-weight:600}

.dropdown{
    position:absolute;right:0;top:calc(100% + 6px);
    background: linear-gradient(165deg, rgba(20, 24, 32, 0.98), rgba(12, 15, 21, 0.99)) !important;
    backdrop-filter: blur(36px) saturate(190%) !important;
    -webkit-backdrop-filter: blur(36px) saturate(190%) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: var(--lg-radius);
    min-width:180px;padding:8px;
    box-shadow: 0 20px 48px -10px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(255, 255, 255, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.14) !important;
    z-index:200;
    transform-origin:top right;
    opacity:0;visibility:hidden;pointer-events:none;
    transform:translateY(-6px) scale(.96);
    transition:opacity .16s cubic-bezier(.22,1,.36,1), transform .16s cubic-bezier(.22,1,.36,1), visibility 0s linear .16s;
}
.dropdown.open{
    opacity:1;visibility:visible;pointer-events:auto;
    transform:translateY(0) scale(1);
    transition:opacity .22s cubic-bezier(.22,1,.36,1), transform .22s cubic-bezier(.22,1,.36,1);
}
.dropdown-item{
    display:block;padding:8px 14px;border-radius:9999px;
    font-size:.85rem;color:var(--muted-strong);transition:all .15s;
}
.dropdown-item:hover{background:rgba(255,255,255,.07);color:var(--text)}
.dropdown-divider{height:1px;background:var(--line);margin:6px 4px}

.mobile-toggle{display:none;background:none;border:none;color:var(--text);cursor:pointer;padding:8px}

/* Nav items with an attached flyout dropdown ("Forums" sub-forum tree,
   "Server" stats tabs). display:flex here matters, not just cosmetic: without
   it this wrapper isn't a flex container, so the nav-item <a> inside loses the
   automatic blockification flex items normally get and renders with its own
   inline box model — which visibly grows taller than its plain <a> siblings. */
.nav-dropdown-menu{position:relative;display:flex;align-items:center}
.forums-flyout{
    left:0;right:auto;top:calc(100% + 6px);
    min-width:320px;max-width:380px;max-height:70vh;overflow-y:auto;
    padding:var(--space-2,8px);
    transform-origin:top left;
}
.server-flyout{
    left:0;right:auto;top:calc(100% + 6px);
    min-width:200px;padding:var(--space-2,8px);
    transform-origin:top left;
}
.flyout-node{margin-left:calc(var(--flyout-depth, 0) * var(--space-4, 16px))}
.flyout-row{display:flex;align-items:center;justify-content:space-between;gap:6px}
.flyout-link{
    display:flex;align-items:center;gap:8px;flex:1;min-width:0;
    padding:7px 8px;border-radius:4px;font-size:var(--fs-sm,.8rem);color:var(--muted-strong);
    transition:all .15s;
}
.flyout-link:hover{background:var(--raised);color:var(--text)}
.flyout-icon{flex-shrink:0;font-size:.9rem}
.flyout-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.flyout-toggle{
    flex-shrink:0;display:flex;align-items:center;gap:4px;
    background:none;border:none;color:var(--muted);cursor:pointer;
    font-size:var(--fs-2xs,.68rem);text-transform:uppercase;letter-spacing:.3px;font-weight:700;
    padding:4px 8px;border-radius:4px;
}
.flyout-toggle:hover{color:var(--text);background:var(--raised)}
.flyout-toggle svg{transition:transform .15s}
.flyout-toggle.open svg{transform:rotate(180deg)}
.flyout-children{margin-top:2px}
.flyout-children[hidden]{display:none}

/* Buttons */
.btn{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    padding:10px 20px;border-radius:var(--radius);font-weight:600;font-size:.85rem;
    border:none;cursor:pointer;transition:all .15s;text-decoration:none;
    line-height:1;
}
.btn-primary{
    background:linear-gradient(135deg,var(--button_primary),var(--button_third));
    color:#fff;
}
.btn-primary:hover{filter:brightness(1.15);color:#fff}
.btn-secondary{
    background:transparent;color:var(--text);
    border:1px solid var(--line);
}
.btn-secondary:hover{border-color:var(--muted);color:var(--text)}
.btn-sm{padding:6px 12px;font-size:.8rem}
.btn-large{padding:14px 32px;font-size:1rem}
.btn-full{width:100%}

/* Forms */
.form-group{margin-bottom:16px}
.form-group label{display:block;font-weight:600;margin-bottom:6px;font-size:.85rem;color:var(--muted-strong)}
.form-input,.form-textarea,.form-select{
    width:100%;padding:10px 14px;
    background:var(--field);border:1px solid var(--line);border-radius:var(--radius);
    color:var(--text);font-size:.9rem;font-family:inherit;
    transition:border-color .15s;
}
.form-input:focus,.form-textarea:focus,.form-select:focus{
    outline:none;border-color:var(--accent);
}
.form-textarea{resize:vertical;min-height:120px}
.form-hint{display:block;margin-top:4px;font-size:.75rem;color:var(--muted)}
.form-actions{display:flex;gap:8px;margin-top:20px}

/* Editor toolbar (BBCode-lite) */
.editor-toolbar{
    display:flex;gap:2px;flex-wrap:wrap;padding:6px;
    background:var(--field);border:1px solid var(--line);border-bottom:none;
    border-radius:var(--radius) var(--radius) 0 0;
}
.editor-toolbar + textarea{border-top-left-radius:0;border-top-right-radius:0}
.editor-toolbar button{
    min-width:30px;height:30px;padding:0 8px;
    background:transparent;border:1px solid transparent;border-radius:5px;
    color:var(--muted-strong);font-size:.85rem;cursor:pointer;transition:all .15s;
}
.editor-toolbar button:hover{background:var(--raised);color:var(--text);border-color:var(--line)}
.editor-toolbar-sep{width:1px;background:var(--line);margin:4px 4px}

/* BBCode-rendered post content */
.post-body blockquote{
    margin:10px 0;padding:8px 14px;border-left:3px solid var(--accent);
    background:var(--raised);color:var(--muted-strong);border-radius:0 6px 6px 0;
}
.post-body pre{
    margin:10px 0;padding:12px 14px;background:var(--field);border:1px solid var(--line);
    border-radius:6px;overflow-x:auto;font-size:.82rem;
}
.post-body code{font-family:ui-monospace,"SF Mono",Consolas,monospace}
.post-body ul{margin:8px 0;padding-left:22px}
.post-body img{max-width:100%;border-radius:6px;margin:8px 0}
.post-body a{color:var(--accent-bright);text-decoration:underline}

/* Alerts */
.alert{padding:12px 16px;border-radius:var(--radius);margin-bottom:16px;font-size:.85rem}
.alert-error{background:rgba(233,82,91,.12);border:1px solid rgba(233,82,91,.3);color:var(--red)}
.alert-success{background:rgba(47,201,105,.12);border:1px solid rgba(47,201,105,.3);color:var(--green)}
.alert-warning{background:rgba(242,201,76,.12);border:1px solid rgba(242,201,76,.3);color:var(--gold)}

/* Auth pages */
.auth-page{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:40px 0}
.auth-card{
    width:100%;max-width:420px;
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    padding:32px;
}
.auth-header{text-align:center;margin-bottom:24px}
.auth-header h1{font-size:1.5rem;margin-bottom:4px}
.auth-header p{color:var(--muted);font-size:.85rem}
.auth-footer{text-align:center;margin-top:20px;font-size:.85rem;color:var(--muted)}
.auth-footer a{color:var(--accent-bright)}

/* Page header */
.page-header{margin-bottom:var(--space-5,24px)}
.page-title{margin:0 0 var(--space-1,4px);font-size:var(--fs-2xl,1.8rem);font-weight:800;color:var(--text);line-height:1.25}
.page-desc{margin-top:var(--space-1,4px);color:var(--muted);font-size:var(--fs-base,.9rem)}
.topic-info{margin-top:var(--space-2,8px);color:var(--muted);font-size:var(--fs-xs,.75rem)}
.breadcrumb{font-size:.8rem;color:var(--muted);margin-bottom:8px}
.breadcrumb a{color:var(--muted-strong)}
.breadcrumb a:hover{color:var(--accent-bright)}
.bc-sep{margin:0 6px;color:var(--line)}

/* Home layout */
.home-layout{display:grid;grid-template-columns:1fr 320px;gap:24px;margin-top:24px}
.main-content{min-width:0}
.sidebar{display:flex;flex-direction:column;gap:16px}

/* Section grouping (homepage) — a plain-text label above a group of board
   rows, collapsible as a whole (tff.gg-style "Important" / "Community" etc). */
.board-section{margin-bottom:22px}
.board-section+.board-section{margin-top:0}
.board-section-header{
    display:flex;align-items:center;justify-content:space-between;
    padding-bottom:8px;margin-bottom:10px;border-bottom:1px solid var(--line);
}
.board-section-header h2{font-size:1rem;font-weight:800;letter-spacing:.2px;color:var(--text)}
.board-section-collapse{
    width:20px;height:20px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
    background:var(--raised);border:1px solid var(--line);border-radius:4px;
    color:var(--muted-strong);font-size:.9rem;line-height:1;cursor:pointer;
}
.board-section-collapse:hover{color:var(--text);border-color:var(--muted)}
.board-section .category-grid[hidden]{display:none}

/* Category board rows (homepage) — a parent category is a board row like its
   children, not a plain text header; its children stay hidden behind a
   "Sub-forums" toggle instead of always being shown (tff.gg-style). */
.category-grid{display:flex;flex-direction:column;gap:2px}
.category-card-wrap{margin-left:calc(var(--board-depth, 0) * 20px)}
.category-card{
    display:grid;
    grid-template-columns:48px 1fr auto;
    gap:12px;align-items:center;
    padding:14px 16px;
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    transition:all .15s;cursor:pointer;
}
.category-card:hover{border-color:var(--accent-border);background:var(--raised)}
.category-card.full-width{grid-template-columns:1fr auto}

.card-icon{
    width:44px;height:44px;
    display:flex;align-items:center;justify-content:center;
    border-radius:11px;font-size:1.3rem;
    flex-shrink:0;
}
.cat-img-icon{
    display:inline-block;
    vertical-align:middle;
    object-fit:contain;
    transition:transform .2s cubic-bezier(0.4, 0, 0.2, 1), filter .2s ease;
}
.board-cat-icon{
    width:44px;height:44px;
    border-radius:11px;
    filter:drop-shadow(0 4px 10px rgba(153,0,51,.35));
}
.category-card:hover .board-cat-icon{
    transform:scale(1.06);
    filter:drop-shadow(0 6px 14px rgba(153,0,51,.55));
}
.flyout-cat-icon{
    width:22px;height:22px;
    border-radius:6px;
    flex-shrink:0;
    filter:drop-shadow(0 2px 5px rgba(153,0,51,.3));
}
.cat-title-icon{
    width:36px;height:36px;
    border-radius:9px;
    filter:drop-shadow(0 4px 10px rgba(153,0,51,.4));
}
.admin-cat-icon{
    width:26px;height:26px;
    border-radius:6px;
    filter:drop-shadow(0 2px 5px rgba(153,0,51,.3));
}
.card-info h3{font-size:.9rem;margin-bottom:2px}
.card-info h3 a{color:inherit}
.card-info p{font-size:.75rem;color:var(--muted);line-height:1.4}
.card-subforums-toggle{
    display:inline-flex;align-items:center;gap:4px;margin-top:4px;
    background:none;border:none;color:var(--accent-bright);cursor:pointer;
    font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;
    padding:0;
}
.card-subforums-toggle:hover{text-decoration:underline}
.card-subforums-toggle svg{transition:transform .15s}
.card-subforums-toggle.open svg{transform:rotate(180deg)}
.category-grid.nested{margin-top:2px;padding-top:2px}
.category-grid.nested[hidden]{display:none}
.stat{text-align:center}
.stat-num{display:block;font-weight:700;font-size:.9rem;color:var(--text)}
.stat-label{font-size:.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}

.card-latest{
    grid-column:1/-1;
    display:flex;align-items:center;gap:8px;
    padding-top:10px;margin-top:6px;
    border-top:1px solid var(--line-soft);
}
.latest-avatar{width:20px;height:20px;border-radius:50%}
.latest-info{display:flex;flex-direction:column;font-size:.75rem;min-width:0}
.latest-title{color:var(--muted-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.latest-meta{color:var(--muted);font-size:.7rem}

/* Topic list */
.topics-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.topics-count{color:var(--muted);font-size:.85rem}

.topic-list{display:flex;flex-direction:column;gap:2px}
.topic-row{
    display:grid;grid-template-columns:1fr auto auto;gap:20px;align-items:center;
    padding:14px 16px;
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    transition:all .15s;
}
.topic-row:hover{border-color:var(--accent-border);background:var(--raised)}
.topic-row.sticky{border-left:3px solid var(--gold)}

.topic-main{min-width:0}
.topic-title{font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topic-meta{font-size:.75rem;color:var(--muted);margin-top:2px}
.topic-meta strong{color:var(--muted-strong)}

.topic-badge{
    display:inline-block;padding:2px 6px;border-radius:3px;
    font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;
    margin-right:6px;vertical-align:middle;
}
.topic-badge.sticky{background:rgba(242,201,76,.15);color:var(--gold)}
.topic-badge.locked{background:rgba(233,82,91,.15);color:var(--red)}

.prefix-pill{
    display:inline-block;padding:1px 8px;border:1px solid;border-radius:12px;
    font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;
    margin-right:6px;vertical-align:middle;
}

.topic-stats{display:flex;gap:20px;text-align:center}
.ts-item{min-width:50px}
.ts-num{display:block;font-weight:700;font-size:.85rem}
.ts-label{font-size:.65rem;color:var(--muted);text-transform:uppercase}

.topic-last-post{display:flex;align-items:center;justify-content:flex-end;gap:6px;text-align:right;font-size:.75rem;min-width:80px}
.topic-last-post .latest-avatar{flex-shrink:0}
.tlp-user{display:block;color:var(--muted-strong);font-weight:600}
.tlp-time{color:var(--muted)}

/* Post layout */
.post-list{display:flex;flex-direction:column;gap:2px;margin-bottom:24px}
.post{
    display:grid;grid-template-columns:160px 1fr;
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    overflow:hidden;
}
.post-admin{border-color:rgba(233,82,91,.3)}

.post-sidebar{
    background:var(--raised);padding:16px;
    display:flex;flex-direction:column;align-items:center;gap:8px;
    text-align:center;border-right:1px solid var(--line);
}
.post-avatar{width:64px;height:64px;border-radius:50%;overflow:hidden;border:2px solid var(--line)}
.post-avatar img{width:100%;height:100%;object-fit:cover}
.post-author{display:flex;flex-direction:column;gap:4px}
.post-username{font-weight:700;font-size:.85rem}
.post-username:hover{color:var(--accent-bright)}
.post-user-stats{font-size:.7rem;color:var(--muted);display:flex;flex-direction:column;gap:2px}

.trophy-badge{
    display:inline-block;margin-top:6px;padding:2px 8px;border:1px solid;border-radius:20px;
    font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;
}
.post-signature{
    margin-top:12px;padding-top:10px;border-top:1px solid var(--line-soft);
    color:var(--muted);font-size:.78rem;
}

.group-badge{
    display:inline-block;padding:2px 8px;border-radius:3px;
    font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;
}
.group-badge.admin{background:rgba(233,82,91,.2);color:var(--red)}
.group-badge.mod{background:rgba(93,156,236,.2);color:var(--blue)}
.group-badge.member{background:rgba(146,154,168,.15);color:var(--muted-strong)}

.post-content{padding:16px}
.post-timestamp{
    display:flex;align-items:center;gap:8px;margin-bottom:12px;
    font-size:.75rem;color:var(--muted);
}
.post-timestamp a{color:var(--muted-strong)}
.post-timestamp a:hover{color:var(--accent-bright)}
.post-number{margin-left:auto}
.edited{color:var(--muted);font-style:italic}
.post-body{font-size:.9rem;line-height:1.7;word-wrap:break-word}

.reply-box,.reply-login{
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    padding:20px;
}
.reply-box h3{margin-bottom:12px;font-size:1rem}

/* Pagination */
.pagination{display:flex;gap:4px;margin-top:24px;justify-content:center}
.page-btn{
    display:flex;align-items:center;justify-content:center;
    min-width:36px;height:36px;padding:0 10px;
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    font-size:.8rem;font-weight:600;color:var(--muted);transition:all .15s;
}
.page-btn:hover{border-color:var(--accent);color:var(--text)}
.page-btn.active{background:var(--button_primary);border-color:var(--button_primary);color:#fff}

/* Sidebar widgets */
.widget{
    background:var(--panel-glass);border:var(--lg-border,1px solid var(--line-glass));border-radius:var(--lg-radius,var(--radius));
    backdrop-filter:var(--lg-blur,blur(20px) saturate(1.6));-webkit-backdrop-filter:var(--lg-blur,blur(20px) saturate(1.6));
    box-shadow:var(--lg-rim,none), var(--lg-ambient,var(--glass-highlight));
    overflow:hidden;
}
.widget-title{
    padding:12px 16px;font-size:.8rem;font-weight:700;text-transform:uppercase;
    letter-spacing:.5px;color:var(--muted-strong);
    background:var(--raised-glass);border-bottom:1px solid var(--line-glass);
}

/* Shoutbox */
.shoutbox-messages{
    height:280px;overflow-y:auto;padding:8px;
    display:flex;flex-direction:column;gap:2px;
}
.shoutbox-empty{color:var(--muted);text-align:center;padding:40px 0;font-size:.8rem}
.shout-item{padding:6px 8px;border-radius:4px;font-size:.8rem;line-height:1.4}
.shout-item:hover{background:var(--raised)}
.shout-user{font-weight:700;color:var(--accent-bright);margin-right:6px}
.shout-msg{color:var(--muted-strong)}
.shoutbox-input{
    display:flex;gap:6px;padding:8px;
    border-top:1px solid var(--line);background:var(--raised);
}
.shoutbox-input input{
    flex:1;padding:8px 10px;background:var(--field);border:1px solid var(--line);
    border-radius:4px;color:var(--text);font-size:.8rem;
}
.shoutbox-input input:focus{outline:none;border-color:var(--accent)}

/* Server status widget */
.server-status-widget{padding:12px 16px}
.status-row{display:flex;align-items:center;gap:8px;font-weight:600;margin-bottom:8px}
.status-row.online{color:var(--green)}
.status-row.offline{color:var(--red)}
.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.status-row.online .status-dot{background:var(--green);box-shadow:0 0 8px var(--green)}
.status-row.offline .status-dot{background:var(--red)}
.status-dot.large{width:12px;height:12px}
.status-detail{display:flex;justify-content:space-between;font-size:.8rem;padding:4px 0;color:var(--muted)}
.status-label{color:var(--muted)}

/* Latest threads widget */
.latest-threads{padding:4px 0}
.thread-item{display:block;padding:8px 16px;border-bottom:1px solid var(--line-soft);transition:background .15s}
.thread-item:last-child{border-bottom:none}
.thread-item:hover{background:var(--raised)}
.thread-title{font-size:.8rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.thread-meta{font-size:.7rem;color:var(--muted);margin-top:2px}

/* Forum stats widget */
.forum-stats{padding:12px 16px}
.fs-row{
    display:flex;justify-content:space-between;
    padding:6px 0;font-size:.8rem;
    border-bottom:1px solid var(--line-soft);
}
.fs-row:last-child{border-bottom:none}
.fs-row span:first-child{color:var(--muted)}
.fs-row span:last-child,.fs-row a{font-weight:600}
.fs-row a:hover{color:var(--accent-bright)}

/* Members grid */
.members-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin-bottom:24px}
.member-card{
    display:flex;align-items:center;gap:12px;
    padding:12px 16px;
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    transition:all .15s;
}
.member-card:hover{border-color:var(--accent-border);background:var(--raised)}
.member-avatar{width:40px;height:40px;border-radius:50%}
.member-info{display:flex;flex-direction:column;flex:1;min-width:0}
.member-name{font-weight:700;font-size:.85rem}
.member-group{font-size:.7rem;color:var(--muted)}
.member-joined{font-size:.7rem;color:var(--muted)}
.member-posts{font-size:.75rem;color:var(--muted-strong);white-space:nowrap}

/* Search */
.search-bar{margin-bottom:24px}
.search-form{display:flex;gap:8px}
.search-form .form-input{flex:1}
.results-count{color:var(--muted);margin-bottom:12px;font-size:.85rem}
.search-result-item{
    display:block;padding:12px 16px;
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    margin-bottom:4px;transition:all .15s;
}
.search-result-item:hover{border-color:var(--accent-border);background:var(--raised)}
.search-result-item h3{font-size:.9rem;margin-bottom:4px}
.sr-meta{font-size:.75rem;color:var(--muted)}

/* Profile */
.profile-header{
    display:flex;gap:20px;align-items:center;
    padding:24px;margin-bottom:24px;
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.profile-avatar{width:100px;height:100px;border-radius:50%;overflow:hidden;border:3px solid var(--accent)}
.profile-avatar img{width:100%;height:100%;object-fit:cover}
.profile-name{font-size:1.5rem;margin-bottom:4px}
.profile-meta{display:flex;gap:16px;font-size:.8rem;color:var(--muted);margin-top:4px}

.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.profile-card{
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    padding:20px;
}
.profile-card h3{margin-bottom:12px;font-size:.9rem}
.stat-rows{display:flex;flex-direction:column;gap:8px}
.stat-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line-soft);font-size:.85rem}
.stat-row:last-child{border-bottom:none}
.stat-row span{color:var(--muted)}
.stat-row strong{color:var(--text)}

/* Stats pages */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.stats-card{
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    padding:20px;
}
.stats-card h3{margin-bottom:12px;font-size:.9rem}
.server-details{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.sd-row{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted)}
.sd-row span:last-child{color:var(--text);font-weight:600}

.ranking-list{display:flex;flex-direction:column;gap:2px}
.ranking-item{
    display:flex;align-items:center;gap:10px;
    padding:8px 12px;border-radius:4px;transition:background .15s;font-size:.8rem;
}
.ranking-item:hover{background:var(--raised)}
.rank-pos{font-weight:700;color:var(--muted);min-width:24px}
.rank-avatar{width:24px;height:24px;border-radius:50%}
.rank-name{flex:1;font-weight:600}
.rank-value{color:var(--muted);font-size:.75rem}
.empty-state-sm{color:var(--muted);text-align:center;padding:16px;font-size:.8rem}

.sort-tabs{display:flex;gap:4px;margin-top:12px}
.sort-tab{
    padding:6px 14px;border-radius:var(--radius);font-size:.8rem;font-weight:600;
    color:var(--muted);background:var(--panel);border:1px solid var(--line);transition:all .15s;
}
.sort-tab:hover{color:var(--text);border-color:var(--muted)}
.sort-tab.active{background:var(--button_primary);border-color:var(--button_primary);color:#fff}

/* Monitor */
.monitor-card{
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    padding:24px;
}
.monitor-status{display:flex;align-items:center;gap:16px;margin-bottom:24px}
.monitor-status.online h2{color:var(--green)}
.monitor-status.offline h2{color:var(--red)}
.monitor-status p{color:var(--muted);font-size:.85rem}
.monitor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:24px}
.monitor-stat{
    background:var(--raised);padding:16px;border-radius:var(--radius);text-align:center;
}
.ms-label{display:block;font-size:.7rem;color:var(--muted);text-transform:uppercase;margin-bottom:4px}
.ms-value{font-size:1.2rem;font-weight:700}

.player-list-section h3{margin-bottom:12px;font-size:.9rem}
.player-list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px}
.player-list-item{
    display:flex;align-items:center;gap:8px;
    padding:8px 12px;background:var(--raised);border-radius:4px;font-size:.8rem;
}
.pl-avatar{width:24px;height:24px;border-radius:50%}

/* Tables */
.table-wrap{overflow-x:auto}
.data-table{width:100%;border-collapse:collapse}
.data-table th{
    padding:10px 14px;text-align:left;font-size:.7rem;font-weight:700;
    text-transform:uppercase;letter-spacing:.5px;color:var(--muted);
    background:var(--raised);border-bottom:1px solid var(--line);
}
.data-table td{
    padding:10px 14px;font-size:.85rem;
    border-bottom:1px solid var(--line-soft);
}
.data-table tbody tr{transition:background .15s}
.data-table tbody tr:hover{background:var(--raised)}
.col-rank{width:50px;text-align:center}
.col-num{text-align:right;font-variant-numeric:tabular-nums}
.col-empty{text-align:center;color:var(--muted);padding:40px 14px}
.player-link{display:flex;align-items:center;gap:8px;font-weight:600}
.arena-badge{
    display:inline-block;padding:2px 8px;border-radius:3px;
    font-size:.7rem;font-weight:700;
    background:var(--accent-soft);color:var(--accent-bright);
}

/* Player stats page */
.player-profile{
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    padding:24px;
}
.player-header{display:flex;gap:20px;align-items:center;margin-bottom:24px}
.player-avatar-lg{width:100px;height:100px;border-radius:50%;border:3px solid var(--accent)}
.player-info h1{font-size:1.4rem;margin-bottom:4px}
.player-registered,.player-country{font-size:.8rem;color:var(--muted);margin-top:2px}
.player-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}
.ps-card{
    text-align:center;padding:16px;
    background:var(--raised);border-radius:var(--radius);
}
.ps-value{display:block;font-size:1.3rem;font-weight:700;margin-bottom:4px}
.ps-label{font-size:.7rem;color:var(--muted);text-transform:uppercase}

/* Empty state */
.empty-state{padding:40px;text-align:center;color:var(--muted)}
.empty-state p{font-size:.9rem}

/* Form card */
.form-card{
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    padding:24px;max-width:600px;
}

/* Responsive */
@media(max-width:900px){
    .home-layout{grid-template-columns:1fr}
    .topic-row{grid-template-columns:1fr auto;gap:12px}
    .topic-last-post{display:none}
    .post{grid-template-columns:1fr}
    .post-sidebar{
        flex-direction:row;border-right:none;border-bottom:1px solid var(--line);
        padding:12px;justify-content:flex-start;
    }
    .post-avatar{width:40px;height:40px}
    .post-user-stats{flex-direction:row;gap:12px}
    .category-card{grid-template-columns:40px 1fr;gap:10px}
    .card-stats{display:none}
}

@media(max-width:650px){
    .main-nav{display:none !important}
    .mobile-toggle{display:flex}
    .topic-row{grid-template-columns:1fr}
    .topic-stats{display:none}
    .members-grid{grid-template-columns:1fr}
    .stats-grid{grid-template-columns:1fr}
    .profile-header{flex-direction:column;text-align:center}
    .player-header{flex-direction:column;text-align:center}
}


/* ===================== AUTH PAGES (Flarum-style) ===================== */
.auth-page {
    min-height: calc(100vh - 200px);
    display: flex;
    align-items: center;
}

.auth-split {
    display: grid;
    width: min(960px, 100%);
    margin: 0 auto;
    grid-template-columns: .9fr 1.1fr;
    align-items: center;
    gap: 54px;
    padding: 42px 16px;
}

.intro {
    padding: 12px 0;
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 14px;
    color: var(--accent-bright);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.intro h1 {
    max-width: 480px;
    margin: 0;
    font-size: clamp(31px, 5vw, 48px);
    line-height: 1.06;
    letter-spacing: -.045em;
}

.intro h1 span {
    color: var(--accent-bright);
}

.intro > p {
    max-width: 470px;
    margin: 18px 0 24px;
    color: var(--muted);
    font-size: 14px;
}

.benefits {
    display: grid;
    gap: 9px;
}

.benefit {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #cbd0d8;
    font-size: 12px;
}

.benefit-icon {
    display: grid;
    width: 26px;
    height: 26px;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid rgba(204, 0, 68, .3);
    border-radius: 6px;
    color: var(--accent-bright);
    background: var(--accent-soft);
    font-size: 10px;
}

.auth-card {
    overflow: hidden;
    border: 1px solid var(--line);
    border-top: 2px solid var(--accent);
    border-radius: 10px;
    background: rgba(21, 24, 30, .97);
    box-shadow: 0 30px 90px rgba(0, 0, 0, .38);
}

.card-head {
    padding: 22px 24px 16px;
    border-bottom: 1px solid var(--line);
}

.card-head h2 {
    margin: 0;
    font-size: 19px;
    color: var(--text);
}

.card-head p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 11px;
}

.tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px;
    margin-top: 16px;
    padding: 4px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: var(--field);
}

.tab {
    min-height: 36px;
    border: 0;
    border-radius: 5px;
    color: var(--muted);
    background: transparent;
    cursor: pointer;
    font-size: 12px;
    font-weight: 850;
    transition: all .15s;
}

.tab.active {
    color: #fff;
    background: var(--accent);
    box-shadow: 0 5px 15px rgba(153, 0, 51, .24);
}

.tab:hover:not(.active) {
    color: var(--text);
    background: rgba(255, 255, 255, .04);
}

.card-body {
    padding: 22px 24px 24px;
}

.alert {
    margin-bottom: 16px;
    padding: 11px 12px;
    border: 1px solid rgba(235, 82, 89, .4);
    border-radius: 7px;
    color: #ff9ca1;
    background: rgba(235, 82, 89, .09);
    font-size: 11px;
}

.alert.success {
    border-color: rgba(47, 201, 105, .35);
    color: #82dfa5;
    background: rgba(47, 201, 105, .08);
}

.field {
    margin-bottom: 14px;
}

.field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.field label {
    display: flex;
    margin-bottom: 6px;
    align-items: center;
    justify-content: space-between;
    color: #b6bdc8;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.field label span {
    color: var(--accent-bright);
}

.field input {
    width: 100%;
    min-height: 43px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 7px;
    outline: none;
    color: #fff;
    background: var(--field);
    font-size: 13px;
    transition: border-color .15s, box-shadow .15s;
}

.field input:focus {
    border-color: var(--accent-bright);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.field input::placeholder {
    color: #666e7b;
}

.submit {
    width: 100%;
    min-height: 45px;
    margin-top: 4px;
    border: 1px solid var(--accent-bright);
    border-radius: 7px;
    color: #fff;
    background: linear-gradient(135deg, var(--accent-bright), var(--accent));
    box-shadow: 0 10px 25px rgba(153, 0, 51, .24);
    cursor: pointer;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .035em;
    text-transform: uppercase;
    transition: filter .15s;
}

.submit:hover {
    filter: brightness(1.12);
}

.sync-note {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-top: 15px;
    padding: 10px;
    border: 1px solid rgba(204, 0, 68, .24);
    border-radius: 7px;
    color: var(--muted);
    background: var(--accent-soft);
    font-size: 10px;
}

.sync-note strong {
    color: #fff;
}

@media (max-width: 780px) {
    .auth-split {
        grid-template-columns: 1fr;
        gap: 28px;
        align-items: start;
    }
    .intro { text-align: center; }
    .intro > p { margin-left: auto; margin-right: auto; }
    .benefits { max-width: 100%; margin: 0 auto; text-align: left; width: max-content; }
}

@media (max-width: 470px) {
    .auth-split { width: min(100% - 20px, 960px); }
    .card-head, .card-body { padding: 17px; }
    .field-row { grid-template-columns: 1fr; gap: 0; }
}

/* ===================== DONATE PAGE ===================== */
.donate-page { padding: 28px 0 52px; }

.donate-shell { }

.donate-shell .page-title {
    margin: 0 0 14px;
    font-size: 22px;
    letter-spacing: -.02em;
    color: var(--text);
}

.donate-shell .panel {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--panel);
    box-shadow: 0 18px 46px rgba(0, 0, 0, .16);
}

.donor-hero {
    position: relative;
    display: flex;
    min-height: 116px;
    align-items: center;
    gap: 18px;
    margin-bottom: 14px;
    padding: 22px;
    overflow: hidden;
}

.donor-hero::after {
    position: absolute;
    inset: 0 0 0 auto;
    width: 48%;
    content: "";
    background: linear-gradient(110deg, transparent, rgba(153, 0, 51, .2));
    pointer-events: none;
}

.account-avatar {
    z-index: 1;
    display: grid;
    width: 72px;
    height: 72px;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid var(--accent-border);
    border-radius: 9px;
    background: linear-gradient(145deg, #282d36, #11141a);
    color: var(--accent-bright);
    font-size: 28px;
    font-weight: 900;
}

.hero-copy {
    z-index: 1;
    min-width: 0;
    flex: 1;
}

.hero-copy h2 {
    margin: 0 0 5px;
    font-size: 17px;
    text-transform: uppercase;
    color: var(--text);
}

.hero-copy h2 span {
    color: var(--accent-bright);
}

.hero-copy p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}

.hero-stats {
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(92px, 1fr));
    gap: 9px;
}

.hero-stat {
    padding: 10px 12px;
    border: 1px solid rgba(255, 255, 255, .055);
    border-radius: 6px;
    background: rgba(9, 11, 15, .35);
}

.hero-stat strong,
.hero-stat span {
    display: block;
}

.hero-stat strong {
    font-size: 15px;
    color: var(--text);
}

.hero-stat span {
    margin-top: 2px;
    color: var(--muted);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.donate-shell .section {
    margin-top: 14px;
    padding: 17px;
}

.section-heading {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--line-soft);
    color: var(--muted-strong);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .065em;
    text-transform: uppercase;
}

.section-icon {
    display: grid;
    width: 27px;
    height: 27px;
    place-items: center;
    border-radius: 6px;
    color: #fff;
    background: var(--accent-soft);
}

.calculator {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 38px minmax(310px, 1.1fr);
    align-items: center;
    gap: 18px;
}

.field-label {
    display: block;
    margin-bottom: 7px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.amount-field {
    position: relative;
}

.amount-field input {
    width: 100%;
    height: 50px;
    padding: 0 48px 0 14px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    outline: none;
    color: #fff;
    background: var(--field);
    font-size: 19px;
    font-weight: 800;
}

.amount-field input:focus {
    border-color: var(--accent-bright);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.amount-field span {
    position: absolute;
    top: 50%;
    right: 15px;
    color: var(--accent-bright);
    font-size: 18px;
    font-weight: 900;
    transform: translateY(-50%);
}

.presets {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 5px;
    margin-top: 7px;
}

.preset {
    padding: 6px;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted-strong);
    background: var(--field);
    cursor: pointer;
    font-size: 11px;
    font-weight: 800;
    transition: all .15s;
}

.preset:hover {
    border-color: var(--accent-border);
    color: #fff;
}

.calc-arrow {
    color: var(--muted);
    text-align: center;
    font-size: 22px;
}

.reward-list {
    display: grid;
    gap: 7px;
}

.reward {
    display: flex;
    min-height: 48px;
    align-items: center;
    gap: 11px;
    padding: 8px 11px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--raised);
}

.reward-badge {
    display: grid;
    width: 31px;
    height: 31px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 7px;
    color: #fff;
    background: var(--accent-soft);
}

.reward:nth-child(2) .reward-badge {
    color: #8ee3ad;
    background: rgba(47, 201, 105, .13);
}

.reward:nth-child(3) .reward-badge {
    color: #d7a9f6;
    background: rgba(176, 113, 232, .13);
}

.reward strong,
.reward small {
    display: block;
}

.reward strong {
    font-size: 14px;
    color: var(--text);
}

.reward small {
    color: var(--muted);
    font-size: 10px;
}

.donate-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 16px;
}

.primary-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 20px;
    border: 1px solid var(--accent-bright);
    border-radius: var(--radius);
    color: #fff;
    background: linear-gradient(135deg, var(--accent-bright), var(--accent));
    box-shadow: 0 10px 26px rgba(153, 0, 51, .25);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .025em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: filter .15s;
}

.primary-button:hover {
    filter: brightness(1.12);
}

.secure-note {
    color: var(--muted);
    font-size: 10px;
    text-align: right;
}

.secure-note strong {
    color: #79d99d;
}

.package-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}

.package {
    display: flex;
    flex-direction: column;
    min-height: 148px;
    padding: 14px;
    border: 1px solid var(--line);
    border-top: 2px solid var(--accent);
    border-radius: var(--radius);
    background: var(--raised);
}

.package h3 {
    margin: 0;
    font-size: 14px;
    color: var(--text);
}

.package p {
    margin: 4px 0 12px;
    color: var(--muted);
    font-size: 11px;
}

.package-price {
    margin-top: auto;
    color: #fff;
    font-size: 23px;
    font-weight: 900;
}

.package-price small {
    color: var(--muted);
    font-size: 9px;
}

.package a {
    display: block;
    margin-top: 9px;
    padding: 7px 9px;
    border: 1px solid var(--accent-border);
    border-radius: 5px;
    color: #fff;
    background: var(--accent-soft);
    font-size: 10px;
    font-weight: 900;
    text-align: center;
    text-transform: uppercase;
    text-decoration: none;
    transition: all .15s;
}

.package a:hover {
    background: var(--accent);
    border-color: var(--accent);
}

.perks {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}

.perk {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--raised);
}

.perk-icon {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 7px;
    color: var(--accent-bright);
    background: var(--accent-soft);
}

.perk strong,
.perk span {
    display: block;
}

.perk strong {
    font-size: 11px;
    color: var(--text);
}

.perk span {
    color: var(--muted);
    font-size: 9px;
}

.link-box {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: end;
    gap: 12px;
}

.link-box p {
    margin: 0 0 10px;
    color: var(--muted);
    font-size: 11px;
}

.link-box p strong {
    color: var(--text);
}

.link-form {
    display: flex;
    gap: 7px;
}

.link-form input {
    width: min(420px, 60vw);
    min-height: 40px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    outline: none;
    color: #fff;
    background: var(--field);
    font-size: 13px;
}

.link-form input:focus {
    border-color: var(--accent-bright);
}

.link-form button {
    padding: 0 16px;
    border: 1px solid var(--accent-border);
    border-radius: var(--radius);
    color: #fff;
    background: var(--accent);
    cursor: pointer;
    font-size: 11px;
    font-weight: 900;
    transition: all .15s;
}

.link-form button:hover {
    background: var(--accent-bright);
}

.guest-card {
    padding: 26px;
    text-align: center;
}

.guest-card h2 {
    margin: 0 0 8px;
    font-size: 18px;
    color: var(--text);
}

.guest-card p {
    margin: 0 0 14px;
    color: var(--muted);
    font-size: 13px;
}

@media (max-width: 900px) {
    .donor-hero { flex-wrap: wrap; }
    .hero-stats { width: 100%; }
    .calculator { grid-template-columns: 1fr; }
    .calc-arrow { transform: rotate(90deg); }
    .package-grid, .perks { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 620px) {
    .donate-shell { }
    .hero-stats, .package-grid, .perks { grid-template-columns: 1fr; }
    .donate-row, .link-box { flex-direction: column; align-items: stretch; }
    .secure-note { text-align: left; }
    .link-form { flex-direction: column; }
    .link-form input { width: 100%; }
    .link-form button { min-height: 40px; }
}

/* ===================== USER PROFILE PAGE ===================== */
.profile-page {
    padding: 0 0 52px;
}

.profile-shell { }

.profile-hero {
    position: relative;
    margin-bottom: 14px;
}

.profile-banner {
    height: 180px;
    border-radius: var(--radius) var(--radius) 0 0;
    overflow: hidden;
    position: relative;
}

.profile-banner-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 40%, rgba(13, 15, 19, .85));
}

.profile-header {
    display: flex;
    align-items: flex-end;
    gap: 20px;
    margin-top: -48px;
    padding: 0 24px 20px;
    position: relative;
    z-index: 1;
}

.profile-avatar-wrap {
    position: relative;
    flex: 0 0 auto;
}

.profile-avatar {
    width: 128px;
    height: 128px;
    border-radius: 12px;
    border: 3px solid var(--panel);
    background: linear-gradient(145deg, #282d36, #11141a);
    object-fit: cover;
}

.profile-avatar-fallback {
    display: grid;
    place-items: center;
    color: var(--accent-bright);
    font-size: 36px;
    font-weight: 900;
}

.profile-level-badge {
    position: absolute;
    bottom: -6px;
    right: -6px;
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    border: 2px solid var(--panel);
    background: var(--accent);
    color: #fff;
    font-size: 11px;
    font-weight: 900;
}

.profile-info {
    flex: 1;
    min-width: 0;
    padding-bottom: 4px;
}

.profile-name {
    margin: 0;
    font-size: 24px;
    letter-spacing: -.02em;
    color: var(--text);
}

.profile-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 2px;
}

.profile-username {
    color: var(--muted);
    font-size: 13px;
}

.profile-clan {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border: 1px solid var(--accent-border);
    border-radius: 4px;
    color: var(--accent-bright);
    background: var(--accent-soft);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}

.profile-quick-stats {
    display: flex;
    gap: 12px;
    flex: 0 0 auto;
}

.pqs-item {
    text-align: center;
    padding: 10px 16px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--panel);
    min-width: 80px;
}

.pqs-item strong {
    display: block;
    font-size: 16px;
    color: var(--text);
}

.pqs-item span {
    display: block;
    margin-top: 2px;
    color: var(--muted);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.profile-tabs {
    display: flex;
    gap: 4px;
    margin-bottom: 14px;
    padding: 4px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--panel);
}

.ptab {
    flex: 1;
    display: block;
    padding: 10px 16px;
    border: 0;
    border-radius: 5px;
    color: var(--muted);
    background: transparent;
    cursor: pointer;
    font-size: 12px;
    font-weight: 850;
    text-align: center;
    text-decoration: none;
    transition: all .15s;
}

.ptab.active {
    color: #fff;
    background: var(--accent);
    box-shadow: 0 5px 15px rgba(153, 0, 51, .24);
}

.ptab:hover:not(.active) {
    color: var(--text);
    background: rgba(255, 255, 255, .04);
}

.profile-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.profile-panel {
    border: var(--lg-border, 1px solid var(--line-glass));
    border-radius: var(--lg-radius, var(--radius));
    background: var(--panel-glass);
    backdrop-filter: var(--lg-blur, blur(20px) saturate(1.6));
    -webkit-backdrop-filter: var(--lg-blur, blur(20px) saturate(1.6));
    box-shadow: var(--lg-rim, none), var(--lg-ambient, var(--glass-highlight));
    overflow: hidden;
}

.pp-header {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--line);
    background: var(--raised);
    color: var(--muted-strong);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .065em;
    text-transform: uppercase;
}

.pp-icon {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 6px;
    color: #fff;
    background: var(--accent-soft);
    font-size: 10px;
}

.pp-body {
    padding: 4px 0;
}
.pp-body.no-pad { padding: 0; }

.recent-viewers-list{display:flex;flex-wrap:wrap;gap:6px;padding:10px 16px}
.recent-viewer-avatar{width:32px;height:32px;border-radius:50%;border:2px solid var(--line)}
.recent-viewer:hover .recent-viewer-avatar{border-color:var(--accent)}

.activity-row{
    display:flex;flex-direction:column;gap:2px;padding:10px 16px;
    border-bottom:1px solid var(--line-soft);
}
.activity-row:last-child{border-bottom:0}
.activity-row:hover{background:rgba(255,255,255,.02)}
.activity-title{font-weight:600;color:var(--text);font-size:.85rem}
.activity-excerpt{color:var(--muted-strong);font-size:.78rem}
.activity-meta{color:var(--muted);font-size:.72rem}

.stat-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 16px;
    border-bottom: 1px solid var(--line-soft);
}

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

.stat-label {
    color: var(--muted);
    font-size: 12px;
}

.stat-value {
    color: var(--text);
    font-size: 13px;
    font-weight: 700;
}

.mode-summary-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--line-soft);
}

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

.mode-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.mode-name {
    flex: 1;
    color: var(--text);
    font-size: 12px;
    font-weight: 600;
}

.mode-stats-inline {
    display: flex;
    gap: 14px;
    color: var(--muted);
    font-size: 11px;
}

.mode-stats-inline strong {
    color: var(--text);
}

@media (max-width: 780px) {
    .profile-header { flex-direction: column; align-items: center; text-align: center; }
    .profile-meta { justify-content: center; }
    .profile-quick-stats { width: 100%; justify-content: center; }
    .profile-grid-2 { grid-template-columns: 1fr; }
}

@media (max-width: 470px) {
    .profile-shell { }
    .profile-banner { height: 120px; }
    .profile-avatar { width: 128px; height: 128px; border-radius: 12px; border: 3px solid var(--panel); background: linear-gradient(145deg, #282d36, #11141a); object-fit: cover; }
    .profile-quick-stats { flex-wrap: wrap; }
    .pqs-item { flex: 1; min-width: 70px; }
}

/* ===================== STATS OVERVIEW PAGE ===================== */
.stats-overview-page {
    padding: 20px 0 52px;
}

.stats-overview-page { padding: 20px 0 52px; }

.stats-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    margin-bottom: 14px;
    border: var(--lg-border, 1px solid var(--line-glass));
    border-radius: var(--lg-radius, var(--radius));
    background: var(--panel-glass);
    backdrop-filter: var(--lg-blur, blur(20px) saturate(1.6));
    -webkit-backdrop-filter: var(--lg-blur, blur(20px) saturate(1.6));
    box-shadow: var(--lg-rim, none), var(--lg-ambient, var(--glass-highlight));
}

.stats-hero-left {
    display: flex;
    align-items: center;
    gap: 16px;
}

.zr-logo-mark {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border: 1px solid var(--accent-border);
    border-radius: 10px;
    background: linear-gradient(145deg, var(--accent-bright), var(--accent-dark, #650021));
    color: #fff;
    font-size: 14px;
    font-weight: 900;
    flex: 0 0 auto;
}

.stats-hero h1 {
    margin: 0;
    font-size: 18px;
    color: var(--text);
}

.stats-hero-sub {
    color: var(--muted);
    font-size: 12px;
    margin-top: 2px;
}

.stats-hero-right {
    display: flex;
    align-items: center;
    gap: 16px;
}

.sh-status {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 700;
}

.sh-status.online { color: var(--green); }
.sh-status.offline { color: var(--red); }

.status-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: currentColor;
}

.sh-status.online .status-dot {
    box-shadow: 0 0 8px var(--green);
}

.sh-players {
    padding: 6px 14px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--field);
    color: var(--text);
    font-size: 13px;
    font-weight: 700;
}

.sh-uptime {
    color: var(--muted);
    font-size: var(--fs-xs, .75rem);
}

.stats-tabs {
    display: flex;
    gap: 4px;
    margin-bottom: 14px;
    padding: 4px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--panel);
}

.stab {
    flex: 1;
    display: block;
    padding: 10px 16px;
    border: 0;
    border-radius: 5px;
    color: var(--muted);
    background: transparent;
    cursor: pointer;
    font-size: 12px;
    font-weight: 850;
    text-align: center;
    text-decoration: none;
    transition: all .15s;
}

.stab.active {
    color: #fff;
    background: var(--accent);
    box-shadow: 0 5px 15px rgba(153, 0, 51, .24);
}

.stab:hover:not(.active) {
    color: var(--text);
    background: rgba(255, 255, 255, .04);
}

.stats-grid-2col {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 14px;
}
.stats-col-main, .stats-col-side { min-width: 0; }

.spanel {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--panel);
    margin-bottom: 14px;
    overflow: hidden;
}

.spanel-head {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--line);
    background: var(--raised);
    color: var(--muted-strong);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .065em;
    text-transform: uppercase;
}

.sicon {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 6px;
    color: #fff;
    background: var(--accent-soft);
    font-size: 10px;
}

.spanel-body { padding: 4px 0; }
.spanel-body.no-pad { padding: 0; }

.spanel-empty {
    padding: 24px;
    text-align: center;
    color: var(--muted);
    font-size: 12px;
}

.ranking-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--line-soft);
    text-decoration: none;
    transition: background .1s;
}

.ranking-row:last-child { border-bottom: 0; }
.ranking-row:hover { background: rgba(255, 255, 255, .02); }

.rank-num {
    width: 28px;
    text-align: center;
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    flex: 0 0 auto;
}

.rank-avatar {
    width: 32px;
    height: 32px;
    border-radius: 7px;
    border: 1px solid var(--line);
    background: var(--field);
    object-fit: cover;
    flex: 0 0 auto;
}

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

.rank-name {
    display: block;
    color: var(--text);
    font-size: 13px;
    font-weight: 600;
}

.rank-sub {
    display: block;
    color: var(--muted);
    font-size: 10px;
}

.rank-val {
    color: var(--muted-strong);
    font-size: 12px;
    font-weight: 700;
    flex: 0 0 auto;
}

.recent-row {
    padding: 8px 16px;
    border-bottom: 1px solid var(--line-soft);
}

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

.recent-map {
    color: var(--text);
    font-size: 12px;
    font-weight: 600;
}

.recent-meta {
    color: var(--muted);
    font-size: 10px;
    margin-top: 2px;
}

.comm-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    padding: 12px 16px;
}

.cs-item { text-align: center; }

.cs-item strong {
    display: block;
    font-size: 18px;
    color: var(--text);
}

.cs-item span {
    display: block;
    color: var(--muted);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

/* ===================== MEMBERS PAGE ===================== */
.members-page { padding: 28px 0 52px; }

.members-header {
    margin-bottom: 20px;
}

.members-header h1 {
    margin: 0;
    font-size: 22px;
    color: var(--text);
}

.members-header p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.members-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 10px;
}

.member-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--panel);
    text-decoration: none;
    transition: border-color .15s, background .15s;
}

.member-card:hover {
    border-color: var(--accent-border);
    background: var(--raised);
}

.member-avatar {
    width: 48px;
    height: 48px;
    border-radius: 8px;
    border: 1px solid var(--line);
    background: var(--field);
    object-fit: cover;
    flex: 0 0 auto;
}

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

.member-name {
    display: block;
    color: var(--text);
    font-size: 13px;
    font-weight: 700;
}

.member-group {
    display: block;
    color: var(--accent-bright);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}

.member-joined {
    display: block;
    color: var(--muted);
    font-size: 10px;
}

.member-posts {
    color: var(--muted);
    font-size: 11px;
    flex: 0 0 auto;
}

.members-empty {
    grid-column: 1 / -1;
    padding: 40px;
    text-align: center;
    color: var(--muted);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--panel);
}

.pagination-bar {
    display: flex;
    justify-content: center;
    gap: 4px;
    margin-top: 20px;
}

.page-link {
    display: grid;
    place-items: center;
    min-width: 36px;
    height: 36px;
    padding: 0 8px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--panel);
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    transition: all .15s;
}

.page-link:hover { border-color: var(--accent-border); color: var(--text); }
.page-link.active { background: var(--accent); border-color: var(--accent); color: #fff; }

@media (max-width: 900px) {
    .stats-grid-2col { grid-template-columns: 1fr; }
    .stats-hero { flex-direction: column; gap: 12px; text-align: center; }
    .stats-hero-left { flex-direction: column; }
}

/* ===================== SETTINGS PAGE ===================== */
.settings-page {
    padding: 28px 0 52px;
}

.settings-shell {
    width: min(1160px, calc(100% - 32px));
    margin: 0 auto;
}

.settings-shell .page-title {
    margin: 0 0 20px;
    font-size: 22px;
    color: var(--text);
}

.settings-grid {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 16px;
}
.settings-content { min-width: 0; }

.settings-nav {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.settings-nav-item {
    display: block;
    padding: 10px 14px;
    border: 1px solid transparent;
    border-radius: var(--radius);
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition: all .15s;
}

.settings-nav-item:hover {
    color: var(--text);
    background: var(--raised);
}

.settings-nav-item.active {
    color: var(--text);
    background: var(--panel);
    border-color: var(--line);
}

.settings-panel {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--panel);
    overflow: hidden;
}

.sp-head {
    padding: 14px 18px;
    border-bottom: 1px solid var(--line);
    background: var(--raised);
    color: var(--muted-strong);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .065em;
    text-transform: uppercase;
}

.sp-body {
    padding: 18px;
}

.profile-preview {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--line-soft);
}

.settings-avatar {
    width: 64px;
    height: 64px;
    border-radius: 10px;
    border: 1px solid var(--line);
    background: var(--field);
}

.settings-display-name {
    font-size: 18px;
    font-weight: 700;
    color: var(--text);
}

.settings-username {
    color: var(--muted);
    font-size: 13px;
}

.settings-group {
    display: inline-block;
    margin-top: 4px;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}

.badge-admin { background: rgba(242, 201, 76, .15); color: var(--gold); }
.badge-donator { background: rgba(93, 156, 236, .15); color: var(--blue); }
.badge-member { background: var(--accent-soft); color: var(--accent-bright); }

.settings-readonly {
    display: grid;
    gap: 1px;
}

.sr-row {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid var(--line-soft);
}

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

.sr-label { color: var(--muted); font-size: 12px; }
.sr-value { color: var(--text); font-size: 13px; font-weight: 600; }

.settings-note {
    margin-top: 14px;
    color: var(--muted);
    font-size: 11px;
}

@media (max-width: 780px) {
    .settings-grid { grid-template-columns: 1fr; }
    .settings-nav { flex-direction: row; flex-wrap: wrap; }
}

/* ===================== PROFILE EDIT / UPLOADS ===================== */
.upload-grid-container {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.upload-section-card {
    background: var(--field);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 20px;
    position: relative;
    transition: border-color 0.2s ease;
}

.upload-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--line-soft);
}

.upload-section-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
    display: flex;
    align-items: center;
    gap: 10px;
}

.upload-ratio-badge {
    font-size: 11px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 6px;
    background: rgba(153, 0, 51, 0.2);
    color: var(--accent-bright);
    border: 1px solid rgba(204, 0, 68, 0.3);
}

.upload-nogif-badge {
    font-size: 11px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 6px;
    background: rgba(233, 82, 91, 0.15);
    color: #ff6b72;
    border: 1px solid rgba(233, 82, 91, 0.3);
}

.upload-main-layout {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 20px;
    align-items: start;
}

@media (max-width: 768px) {
    .upload-main-layout {
        grid-template-columns: 1fr;
    }
}

/* Large Drag & Drop Dropzone */
.dropzone-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 180px;
    padding: 28px 20px;
    background: linear-gradient(180deg, rgba(26, 30, 37, 0.5), rgba(16, 19, 25, 0.7));
    border: 2px dashed rgba(255, 255, 255, 0.14);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    user-select: none;
}

.dropzone-box:hover {
    border-color: var(--accent-bright);
    background: linear-gradient(180deg, rgba(153, 0, 51, 0.1), rgba(26, 30, 37, 0.5));
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}

.dropzone-box.dragover {
    border-color: var(--accent-bright);
    border-style: solid;
    background: rgba(153, 0, 51, 0.18);
    box-shadow: 0 0 28px rgba(204, 0, 68, 0.4);
    transform: scale(1.01);
}

.dropzone-icon {
    width: 44px;
    height: 44px;
    margin-bottom: 12px;
    color: var(--accent-bright);
    display: grid;
    place-items: center;
    background: rgba(153, 0, 51, 0.15);
    border-radius: 50%;
    transition: transform 0.25s ease;
}

.dropzone-box:hover .dropzone-icon {
    transform: scale(1.12);
}

.dropzone-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 4px;
}

.dropzone-title span {
    color: var(--accent-bright);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.dropzone-subtitle {
    font-size: 12px;
    color: var(--muted);
    margin-bottom: 10px;
    max-width: 320px;
}

.dropzone-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: center;
}

.dropzone-tag {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.05);
    color: var(--muted-strong);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.dropzone-tag.danger {
    background: rgba(233, 82, 91, 0.1);
    color: #ff757b;
    border-color: rgba(233, 82, 91, 0.25);
}

.dropzone-file-input {
    display: none !important;
}

/* Live Preview Areas */
.preview-container-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 16px;
    background: var(--raised);
    border: 1px solid var(--line);
    border-radius: 12px;
}

.preview-badge-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--muted);
    display: flex;
    align-items: center;
    gap: 6px;
}

.preview-badge-label .live-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--green);
    display: inline-block;
    box-shadow: 0 0 6px var(--green);
}

.avatar-preview-wrapper {
    position: relative;
}

.avatar-preview-display {
    width: 120px;
    height: 120px;
    border-radius: 16px;
    object-fit: cover;
    border: 3px solid var(--panel);
    background: linear-gradient(145deg, #282d36, #11141a);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.45);
    transition: all 0.2s ease;
}

.avatar-preview-fallback {
    width: 120px;
    height: 120px;
    border-radius: 16px;
    background: linear-gradient(145deg, #282d36, #11141a);
    border: 3px solid var(--panel);
    display: grid;
    place-items: center;
    color: var(--accent-bright);
    font-size: 40px;
    font-weight: 900;
}

.avatar-mini-preview {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: var(--muted);
    margin-top: 4px;
}

.avatar-mini-img {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--accent-border);
}

/* Banner Live Preview Card */
.banner-preview-card {
    width: 100%;
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    height: 120px;
    background: #11141a;
    border: 1px solid var(--line);
}

.banner-preview-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.banner-preview-placeholder {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    color: var(--muted);
    font-size: 12px;
    background: repeating-linear-gradient(45deg, #15181e, #15181e 10px, #1a1e25 10px, #1a1e25 20px);
}

.banner-preview-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(13, 15, 19, 0.85) 100%);
    pointer-events: none;
}

.banner-preview-profile-mock {
    position: absolute;
    bottom: 10px;
    left: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 2;
}

.banner-preview-avatar {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    border: 2px solid #fff;
    object-fit: cover;
}

.banner-preview-name {
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    text-shadow: 0 1px 4px rgba(0,0,0,0.8);
}

.btn-recrop {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text);
    background: var(--raised);
    border: 1px solid var(--line);
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
    margin-top: 6px;
}

.btn-recrop:hover {
    background: var(--panel);
    border-color: var(--accent-border);
    color: var(--accent-bright);
}

.crop-status-tag {
    font-size: 11px;
    font-weight: 600;
    color: var(--green);
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
}

/* Cropper Modal */
.cropper-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: rgba(4, 6, 9, 0.88);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.cropper-modal-overlay.active {
    opacity: 1;
    pointer-events: auto;
}

.cropper-modal-window {
    background: #15181e;
    border: 1px solid var(--line);
    border-radius: 16px;
    width: 100%;
    max-width: 660px;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.75), 0 0 0 1px rgba(255, 255, 255, 0.08);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform: scale(0.95) translateY(10px);
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.cropper-modal-overlay.active .cropper-modal-window {
    transform: scale(1) translateY(0);
}

.cropper-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--line);
    background: #12151a;
}

.cropper-modal-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--text);
    display: flex;
    align-items: center;
    gap: 10px;
}

.cropper-close-btn {
    background: transparent;
    border: none;
    color: var(--muted);
    font-size: 20px;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: all 0.2s ease;
}

.cropper-close-btn:hover {
    background: rgba(255, 255, 255, 0.08);
    color: var(--text);
}

.cropper-canvas-box {
    height: 380px;
    max-height: 52vh;
    background: #090b0e;
    position: relative;
    overflow: hidden;
}

.cropper-canvas-box img {
    display: block;
    max-width: 100%;
}

.cropper-toolbar-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 16px;
    background: #101319;
    border-top: 1px solid var(--line-soft);
    border-bottom: 1px solid var(--line);
}

.cropper-tool-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: var(--raised);
    border: 1px solid var(--line);
    color: var(--text);
    cursor: pointer;
    transition: all 0.2s ease;
}

.cropper-tool-btn:hover {
    background: var(--line);
    color: var(--accent-bright);
    border-color: var(--accent-border);
}

.cropper-modal-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    padding: 14px 20px;
    background: #12151a;
}

/* Floating Toast Notification */
.settings-toast {
    position: fixed;
    top: 24px;
    right: 24px;
    z-index: 100002;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 20px;
    border-radius: 12px;
    background: #15181e;
    border: 1px solid var(--line);
    color: var(--text);
    font-size: 13px;
    font-weight: 600;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.65), 0 0 0 1px rgba(255, 255, 255, 0.08);
    opacity: 0;
    transform: translateY(-16px) scale(0.95);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
}

.settings-toast.active {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

.settings-toast.success {
    border-color: rgba(47, 201, 105, 0.45);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.65), 0 0 24px rgba(47, 201, 105, 0.2);
}

.settings-toast.error {
    border-color: rgba(233, 82, 91, 0.45);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.65), 0 0 24px rgba(233, 82, 91, 0.2);
}

.settings-toast-icon {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    flex-shrink: 0;
}

.settings-toast.success .settings-toast-icon {
    background: rgba(47, 201, 105, 0.2);
    color: var(--green);
}

.settings-toast.error .settings-toast-icon {
    background: rgba(233, 82, 91, 0.2);
    color: var(--red);
}

.btn-spinner {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    border-top-color: #fff;
    animation: settings-spin 0.8s linear infinite;
    margin-right: 6px;
    vertical-align: middle;
}

@keyframes settings-spin {
    to { transform: rotate(360deg); }
}

/* Legacy support styles */
.upload-preview {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--field);
}

.upload-preview-img {
    width: 80px;
    height: 80px;
    border-radius: 10px;
    object-fit: cover;
    border: 1px solid var(--line);
}

.upload-preview-img.banner-img {
    width: 200px;
    height: 50px;
}

.upload-preview-placeholder {
    width: 80px;
    height: 80px;
    border-radius: 10px;
    background: var(--raised);
    border: 1px solid var(--line);
    display: grid;
    place-items: center;
    color: var(--accent-bright);
    font-size: 28px;
    font-weight: 900;
}

.banner-placeholder {
    width: 200px;
    height: 50px;
    font-size: 11px;
    color: var(--muted);
}

.upload-info {
    flex: 1;
}

.upload-info p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}

.file-input {
    display: block;
    width: 100%;
    padding: 10px;
    border: 1px dashed var(--line);
    border-radius: var(--radius);
    background: var(--field);
    color: var(--text);
    font-size: 13px;
    cursor: pointer;
}

.file-input:hover {
    border-color: var(--accent-border);
}

.checkbox-label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    color: var(--muted);
    font-size: 12px;
    cursor: pointer;
}

.checkbox-label input[type="checkbox"] {
    accent-color: var(--accent);
}

/* Hero avatar */
.hero-avatar-img {
    width: 72px;
    height: 72px;
    border-radius: 9px;
    border: 1px solid var(--accent-border);
    object-fit: cover;
    z-index: 1;
}

.hero-avatar-fallback {
    width: 72px;
    height: 72px;
    border-radius: 9px;
    border: 1px solid var(--accent-border);
    background: linear-gradient(145deg, #282d36, #11141a);
    display: grid;
    place-items: center;
    color: var(--accent-bright);
    font-size: 28px;
    font-weight: 900;
    z-index: 1;
}

/* How to donate */
.how-to-donate {
    display: grid;
    gap: 14px;
}

.htd-step {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--raised);
}

.htd-num {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border-radius: 8px;
    background: var(--accent-soft);
    color: var(--accent-bright);
    font-size: 14px;
    font-weight: 900;
    flex: 0 0 auto;
}

.htd-step strong {
    display: block;
    color: var(--text);
    font-size: 13px;
    margin-bottom: 2px;
}

.htd-step p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}

/* ===================== PAYMENT METHODS ===================== */
.payment-methods {
    display: grid;
    gap: 10px;
}

.payment-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--raised);
    text-decoration: none;
    transition: all .15s;
}

.payment-card:hover {
    border-color: var(--accent-border);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,.2);
}

.pm-icon {
    width: 48px;
    height: 48px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}

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

.pm-info strong {
    display: block;
    color: var(--text);
    font-size: 14px;
}

.pm-info span {
    color: var(--muted);
    font-size: 11px;
}

.pm-badge {
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    flex: 0 0 auto;
}

.fee-note {
    margin-top: 14px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--field);
    font-size: 12px;
    color: var(--muted);
}

.fee-note strong {
    color: var(--text);
    display: block;
    margin-bottom: 8px;
}

.fee-grid {
    display: grid;
    gap: 6px;
    margin: 10px 0;
}

.fee-item {
    display: flex;
    justify-content: space-between;
    padding: 6px 10px;
    border-radius: 6px;
    background: var(--panel);
}

.fee-name {
    color: var(--text);
    font-weight: 600;
}

.fee-amount {
    color: var(--muted);
    font-size: 11px;
}

.fee-note p {
    margin: 8px 0 0;
    font-size: 11px;
}

.test-note {
    margin-bottom: 14px;
    padding: 14px;
    border: 1px dashed var(--accent-border);
    border-radius: var(--radius);
    background: var(--accent-soft);
    font-size: 12px;
    color: var(--muted);
}

.test-note strong {
    color: var(--text);
    display: block;
    margin-bottom: 4px;
}

.test-note p {
    margin: 0;
    font-size: 11px;
}

/* Revolut confirm section */
.revolut-confirm {
    margin-top: 12px;
    padding: 14px;
    border: 1px dashed var(--accent-border);
    border-radius: var(--radius);
    background: var(--accent-soft);
}

.revolut-confirm p {
    margin: 0 0 10px;
    color: var(--muted);
    font-size: 12px;
}

.confirm-row {
    display: flex;
    gap: 8px;
}

.confirm-input {
    flex: 1;
    padding: 8px 12px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--field);
    color: var(--text);
    font-size: 13px;
}

.confirm-input:focus {
    border-color: var(--accent-bright);
    outline: none;
}

/* ===================== KO-FI SECTION ===================== */
.kofi-section {
    text-align: center;
    padding: 10px 0;
}

.kofi-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 28px;
    border-radius: var(--radius);
    background: #FF5E5B;
    color: white;
    font-size: 16px;
    font-weight: 700;
    text-decoration: none;
    transition: all .15s;
    box-shadow: 0 4px 12px rgba(255, 94, 91, .3);
}

.kofi-button:hover {
    background: #ff4744;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(255, 94, 91, .4);
}

.kofi-info {
    margin-top: 16px;
    text-align: left;
}

.kofi-info p {
    margin: 6px 0;
    color: var(--muted);
    font-size: 13px;
}

.kofi-info p::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 6px;
    border-radius: 50%;
    background: var(--green);
}

.kofi-note {
    margin-top: 14px !important;
    padding: 12px;
    border: 1px solid var(--accent-border);
    border-radius: var(--radius);
    background: var(--accent-soft);
    font-size: 12px !important;
}

.kofi-note strong {
    color: var(--text);
}

/* ========= SHOUTBOX AVATARS & USER LINKS ========= */
.shout-item{
    display:flex;align-items:flex-start;gap:8px;
    padding:6px 8px;border-radius:4px;font-size:.8rem;line-height:1.4;
}
.shout-avatar-link{
    display:block;flex-shrink:0;transition:opacity .15s;
}
.shout-avatar-link:hover{
    opacity:.85;
}
.shout-avatar{
    width:28px;height:28px;border-radius:50%;flex-shrink:0;
    margin-top:1px;object-fit:cover;
}
.shout-content{display:flex;flex-direction:column;min-width:0}
.shout-user{font-weight:700;color:var(--accent-bright);font-size:.78rem;text-decoration:none;transition:color .15s}
.shout-user:hover{color:#fff;text-decoration:underline}
.shout-msg{color:var(--muted-strong);word-break:break-word}

/* ========= SERVER STATUS ENHANCED ========= */
.server-status-widget-wrap .join-server-btn{
    margin:10px 12px 12px;width:calc(100% - 24px);
    display:flex;align-items:center;justify-content:center;
    font-size:.85rem;font-weight:600;
}
.status-players-count{font-weight:700;color:var(--text)}
.status-players-list{margin-top:8px;border-top:1px solid var(--line-soft);padding-top:8px}
.status-players-list .status-label{display:block;font-size:.7rem;color:var(--muted);margin-bottom:6px}
.status-players-scroll{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto}
.status-player-row{
    display:flex;align-items:center;gap:6px;
    padding:3px 0;font-size:.75rem;
}
.status-player-avatar{width:20px;height:20px;border-radius:50%;flex-shrink:0}
.status-player-name{color:var(--muted-strong);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ========= MEMBERS TABLE ========= */
.members-table-wrap{overflow-x:auto;margin-bottom:16px}
.members-data-table{
    width:100%;border-collapse:collapse;
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    overflow:hidden;
}
.members-data-table th{
    padding:10px 12px;text-align:left;
    font-size:.7rem;font-weight:600;color:var(--muted);
    text-transform:uppercase;letter-spacing:.04em;
    background:var(--raised);border-bottom:1px solid var(--line);
    white-space:nowrap;
}
.members-data-table td{
    padding:8px 12px;font-size:.8rem;
    border-bottom:1px solid var(--line-soft);
    color:var(--muted-strong);
}
.members-data-table tbody tr:hover{background:var(--raised)}
.members-data-table .col-rank{width:40px;text-align:center;color:var(--muted);font-size:.75rem}
.members-data-table .col-level,.members-data-table .col-xp,
.members-data-table .col-money,.members-data-table .col-kills,
.members-data-table .col-deaths,.members-data-table .col-posts{width:80px;text-align:right}
.members-data-table .col-joined{width:90px;color:var(--muted);font-size:.75rem}
.members-data-table .col-level strong{color:var(--gold)}

.member-link{
    display:flex;align-items:center;gap:8px;
    text-decoration:none;color:inherit;
}
.member-link:hover .member-tbl-name{color:var(--accent-bright)}
.member-tbl-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;object-fit:cover}
.member-tbl-info{display:flex;flex-direction:column;min-width:0}
.member-tbl-name{font-weight:700;font-size:.82rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.member-tbl-group{font-size:.68rem;color:var(--muted)}

.group-admin{color:var(--red) !important}
.group-mod,.group-moderator{color:var(--blue) !important}
.group-donator{color:var(--gold) !important}
.group-member{color:var(--muted) !important}

/* ========= MEMBERS LOADER ========= */
.members-loader{
    display:flex;align-items:center;justify-content:center;gap:10px;
    padding:24px;color:var(--muted);font-size:.85rem;
}
.loader-spinner{
    width:20px;height:20px;
    border:2px solid var(--line);
    border-top-color:var(--accent);
    border-radius:50%;
    animation:spin .6s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

.members-end{
    text-align:center;padding:16px;
    color:var(--muted);font-size:.8rem;
}

/* ========= MOBILE TABLE ========= */
@media(max-width:780px){
    .members-data-table .col-money,
    .members-data-table .col-kills,
    .members-data-table .col-deaths,
    .members-data-table .col-posts{display:none}
}
@media(max-width:650px){
    .members-data-table .col-xp,
    .members-data-table .col-level{display:none}
}

/* ========= FOOTER ========= */
.site-footer{
    border-top:1px solid var(--line);
    margin-top:48px;
    background:var(--header);
}
.footer-stats-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:16px;
    padding:24px 20px 0;
}
.footer-stats-widget .forum-stats{padding:10px 16px}
.footer-stats-note{padding:8px 16px 4px;color:var(--muted);font-size:var(--fs-2xs,.68rem)}
.footer-newest-members{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px}
.footer-newest-member img{width:36px;height:36px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}
.footer-newest-member:hover img{border-color:var(--accent)}
@media(max-width:800px){
    .footer-stats-grid{grid-template-columns:1fr}
}
.footer-inner{
    padding:22px 20px;
    display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px 24px;
}
.footer-brand{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.footer-logo{display:inline-flex;align-items:center;gap:6px;font-size:1.05rem;font-weight:800;letter-spacing:-.3px}
.footer-tagline{color:var(--muted);font-size:.78rem}
.footer-links{display:flex;flex-wrap:wrap;gap:4px}
.footer-links a{
    color:var(--muted-strong);font-size:.8rem;font-weight:600;
    padding:4px 10px;border-radius:var(--radius);transition:all .15s;
}
.footer-links a:hover{color:var(--text);background:var(--raised)}
.footer-copy{color:var(--muted);font-size:.75rem;white-space:nowrap}

@media(max-width:700px){
    .footer-inner{flex-direction:column;align-items:flex-start;text-align:left}
    .footer-links{gap:2px}
}

.row-clickable{cursor:pointer}

/* ========= DISCORD WIDGET ========= */
.discord-widget-frame{width:100%;overflow:hidden;border-radius:var(--radius)}
.discord-widget-frame iframe{width:100%;height:400px;border:0;display:block}

/* ========= STAFF PAGE ========= */
.staff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-top:20px}
.staff-card{
    display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;
    padding:20px 14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    transition:border-color .15s,transform .15s;
}
.staff-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.staff-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover}
.staff-name{font-weight:700;color:var(--text);font-size:.9rem}
.staff-rank{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:3px 10px;border-radius:20px;background:var(--raised);color:var(--muted-strong)}
.staff-rank.rank-founder{background:rgba(204,0,68,.16);color:var(--accent-bright)}
.staff-rank.rank-innovator{background:rgba(93,156,236,.16);color:var(--blue)}
.staff-rank.rank-leader{background:rgba(242,201,76,.16);color:var(--gold)}
.staff-rank.rank-moderator{background:rgba(47,201,105,.16);color:var(--green)}
.staff-rank.rank-shooter-moderator,.staff-rank.rank-dm-moderator,.staff-rank.rank-dd-moderator,.staff-rank.rank-race-moderator{background:rgba(147,154,168,.16);color:var(--muted-strong)}

/* ========= RULES PAGE ========= */
.rules-page{margin-top:20px;display:flex;flex-direction:column;gap:20px}
.rules-section{padding:20px 24px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}
.rules-section h2{font-size:1.05rem;margin-bottom:12px}
.rules-section ol{padding-left:20px;display:flex;flex-direction:column;gap:8px}
.rules-section li{color:var(--muted-strong);font-size:.88rem;line-height:1.5}
.rules-section p{color:var(--muted-strong);font-size:.88rem}

/* ========= WHO'S ONLINE WIDGET ========= */
.online-users-list{display:flex;flex-direction:column;gap:2px}
.online-user-row{display:flex;align-items:center;gap:8px;padding:6px 0}
.online-user-dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0}
.online-user-name{font-size:.8rem;color:var(--muted-strong);font-weight:600}

/* ========= ADMIN SHARED (moved from per-page <style> blocks so every
   /admin/* page gets consistent styling, not just dashboard.php) ========= */
.admin-nav{display:flex;gap:4px;margin-top:var(--space-3,12px)}
.admin-stat-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:var(--space-4,16px)}
.admin-stat-card{
    flex:1;min-width:140px;padding:var(--space-4,16px);border-radius:var(--lg-radius,var(--radius));
    background:var(--panel-glass);backdrop-filter:var(--lg-blur,blur(20px) saturate(1.6));-webkit-backdrop-filter:var(--lg-blur,blur(20px) saturate(1.6));
    border:var(--lg-border,1px solid var(--line-glass));box-shadow:var(--lg-rim,none), var(--lg-ambient,var(--glass-highlight));text-align:center;
}
.admin-stat-card strong{display:block;font-size:var(--fs-lg,1.5rem);font-weight:800}
.admin-stat-card span{color:var(--muted);font-size:var(--fs-xs,.78rem)}
.admin-actions{white-space:nowrap}
.btn-mini{
    padding:5px 11px;font-size:var(--fs-xs,.75rem);font-weight:600;border-radius:5px;
    border:1px solid var(--line);background:var(--raised);color:var(--muted-strong);cursor:pointer;margin-left:4px;
    transition:all .15s;
}
.btn-mini:hover{color:var(--text);border-color:var(--muted)}
.btn-mini-danger:hover{color:#fff;background:var(--error);border-color:var(--error)}

/* ========= ADMIN EDIT MODALS (shared across categories/topics/users) ========= */
.admin-modal-overlay{
    position:fixed;inset:0;background:rgba(4,6,9,.72);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .2s ease, visibility 0s linear .2s;
}
.admin-modal-overlay.open{
    opacity:1;visibility:visible;pointer-events:auto;
    transition:opacity .22s ease;
}
.admin-modal{
    background:var(--lg-specular), var(--panel-glass,rgba(21,24,30,.6));backdrop-filter:var(--lg-blur,blur(28px) saturate(1.6));-webkit-backdrop-filter:var(--lg-blur,blur(28px) saturate(1.6));
    border:var(--lg-border,1px solid rgba(255,255,255,.09));border-radius:var(--lg-radius,20px);
    box-shadow:var(--lg-rim), var(--lg-ambient,0 12px 32px rgba(0,0,0,.4));
    padding:28px;width:100%;max-width:420px;max-height:88vh;overflow-y:auto;position:relative;color:var(--text,#f3f5f7);
    transform:scale(.94) translateY(10px);
    transition:transform .22s cubic-bezier(.22,1,.36,1);
}
@supports (backdrop-filter: url(#lg-distortion)) {
    .admin-modal{backdrop-filter:var(--lg-blur-distort);-webkit-backdrop-filter:var(--lg-blur-distort)}
}
.admin-modal-overlay.open .admin-modal{transform:scale(1) translateY(0)}
.admin-modal h2{margin:0 0 16px;font-size:var(--fs-lg,1.15rem)}
.admin-modal-close{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--muted,#929aa8);font-size:1.4rem;cursor:pointer;line-height:1}
.admin-modal .field{margin-bottom:12px}
.admin-modal .field label{display:block;font-size:var(--fs-xs,.8rem);color:var(--muted,#929aa8);margin-bottom:4px}
.admin-modal .field input,.admin-modal .field select,.admin-modal .field textarea{
    width:100%;box-sizing:border-box;padding:9px 10px;border-radius:6px;
    border:1px solid var(--line,#262b34);background:var(--field,#101319);color:var(--text,#f3f5f7);font-size:var(--fs-sm,.85rem);
}
.admin-modal .field textarea{resize:vertical;min-height:100px}

/* ========= Map uploader ========= */
.map-uploader{--uploader-accent:var(--accent-bright);--uploader-accent-soft:var(--accent-soft);padding-bottom:24px}
.uploader-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:6px 0 20px}
.uploader-heading .page-title{font-size:1.72rem;letter-spacing:-.03em;margin:2px 0 5px}
.uploader-heading p{color:var(--muted);font-size:.88rem}
.uploader-eyebrow{display:block;color:var(--uploader-accent);font-size:.69rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.uploader-stats{margin-bottom:16px}
.tester-access-badge{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid rgba(47,201,105,.28);border-radius:999px;background:rgba(47,201,105,.09);color:var(--green);font-size:.73rem;font-weight:700;white-space:nowrap}
.uploader-alert{margin-bottom:14px;padding:11px 14px;border:1px solid var(--line);border-radius:8px;background:var(--raised);font-size:.82rem}
.uploader-alert.success{border-color:rgba(47,201,105,.34);background:rgba(47,201,105,.09);color:#8ee6b2}
.uploader-alert.warning{border-color:rgba(242,201,76,.34);background:rgba(242,201,76,.09);color:#f7df8a}
.uploader-alert.error{border-color:rgba(233,82,91,.34);background:rgba(233,82,91,.09);color:#f19aa0}
.uploader-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:12px}
.uploader-tabs-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.uploader-tabs-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.uploader-tabs-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.uploader-tab{display:flex;align-items:center;justify-content:center;gap:7px;min-height:39px;padding:8px 13px;border:var(--lg-border,1px solid var(--line));border-radius:7px;background:var(--panel-glass);backdrop-filter:var(--lg-blur,blur(16px) saturate(1.4));-webkit-backdrop-filter:var(--lg-blur,blur(16px) saturate(1.4));color:var(--muted-strong);font:inherit;font-size:.78rem;font-weight:700;cursor:pointer;transition:border-color .15s,background .15s,color .15s,transform .15s}
.uploader-tab:hover{border-color:#3a414d;color:var(--text)}
.uploader-tab:active{transform:translateY(1px)}
.uploader-tab.active{border-color:rgba(204,0,68,.65);background:linear-gradient(135deg,var(--accent),var(--accent-bright));color:#fff;box-shadow:0 8px 24px rgba(153,0,51,.18)}
.uploader-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:rgba(255,255,255,.08);font-size:.66rem}
.uploader-tab.active .uploader-tab-count{background:rgba(255,255,255,.18)}
.uploader-pane{animation:uploader-pane-in .18s ease}
@keyframes uploader-pane-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.map-dropzone{min-height:164px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px dashed #343b47;border-radius:10px;background:linear-gradient(180deg,rgba(26,30,37,.48),rgba(16,19,25,.35));cursor:pointer;outline:none;transition:border-color .18s,background .18s,transform .18s}
.map-dropzone:hover,.map-dropzone:focus-visible,.map-dropzone.dragging{border-color:var(--uploader-accent);background:var(--uploader-accent-soft)}
.map-dropzone.dragging{transform:scale(.995)}
.dropzone-icon{height:48px;color:var(--uploader-accent);filter:drop-shadow(0 7px 18px rgba(204,0,68,.2))}
.map-dropzone strong{text-transform:uppercase;font-size:.8rem;letter-spacing:.025em}
.map-dropzone strong span{color:var(--uploader-accent)}
.map-dropzone small{color:var(--muted);font-size:.7rem}
.mobile-upload-blocked{display:none;flex-direction:column;align-items:center;text-align:center;padding:32px 20px;background:rgba(255,255,255,.03);border:1px dashed rgba(255,255,255,.12);border-radius:var(--lg-radius,16px);gap:12px}
.mobile-upload-icon{width:52px;height:52px;border-radius:14px;background:rgba(204,0,68,.12);border:1px solid rgba(204,0,68,.3);color:var(--accent-bright);display:flex;align-items:center;justify-content:center}
.mobile-upload-title{font-size:1.08rem;font-weight:700;color:var(--text)}
.mobile-upload-desc{font-size:.86rem;color:var(--muted);max-width:440px;line-height:1.5}
.mobile-upload-btn{margin-top:6px;display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:9999px;background:var(--button_primary,#990033);color:#fff;font-size:.85rem;font-weight:700;cursor:pointer;border:none;transition:opacity .15s ease}
.mobile-upload-btn:active{transform:scale(.96)}
.upload-selection{margin-top:10px;padding:13px;border:1px solid var(--line);border-radius:9999px;border-radius:9px;background:var(--panel)}
.upload-selection-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:.78rem}
.upload-selection-head button{border:0;background:none;color:var(--muted);font:inherit;font-size:.72rem;cursor:pointer}
.upload-selection-head button:hover{color:var(--red)}
.selected-map-file{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:8px 10px;border-radius:6px;background:var(--field);font-size:.75rem;margin-top:5px}
.selected-map-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.selected-map-right{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.remove-file-btn{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:16px;line-height:1;transition:all .15s}
.remove-file-btn:hover{background:rgba(233,82,91,.18);color:var(--red)}
.selected-map-file small{color:var(--green);white-space:nowrap}
.selected-map-file.invalid{outline:1px solid rgba(233,82,91,.35)}
.selected-map-file.invalid small,.selected-file-warning{color:var(--red)}
.selected-map-file.is-duplicate{outline:1px solid rgba(242,201,76,.4);opacity:.75}
.selected-map-file.is-duplicate small{color:#f2c94c}
.selected-file-warning{padding:8px 3px;font-size:.72rem}
.uploader-submit{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;padding:10px 14px;border:0;border-radius:7px;background:linear-gradient(135deg,#990033,#c00040);color:#fff;font:inherit;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.025em;cursor:pointer;box-shadow:0 8px 20px rgba(153,0,51,.18)}
.uploader-submit:disabled{opacity:.48;cursor:not-allowed;box-shadow:none}
.upload-progress{margin-top:14px;padding:13px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}
.upload-progress-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px;font-size:.78rem;font-weight:700}
.upload-progress-status{color:var(--text)}
.upload-progress-pct{color:var(--uploader-accent);font-variant-numeric:tabular-nums}
.upload-progress-track{height:8px;border-radius:999px;background:var(--field);overflow:hidden}
.upload-progress-fill{height:100%;width:0%;border-radius:999px;background:linear-gradient(135deg,#990033,#c00040);transition:width .15s ease}
.upload-progress.is-done .upload-progress-fill{background:linear-gradient(135deg,var(--green),#3fe08a)}
.upload-progress.is-error .upload-progress-fill{background:linear-gradient(135deg,var(--red),#f2707a)}
.upload-progress-meta{margin-top:7px;color:var(--muted);font-size:.7rem;font-variant-numeric:tabular-nums}
.upload-progress-errors{margin-top:10px;padding:10px 12px;border:1px solid rgba(233,82,91,.3);border-radius:8px;background:rgba(233,82,91,.08);max-height:220px;overflow-y:auto}
.upload-progress-errors-head{margin-bottom:6px;color:var(--red);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.upload-progress-errors ul{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:5px}
.upload-progress-errors li{color:#f19aa0;font-size:.72rem;line-height:1.45;word-break:break-word}
.upload-progress-files{margin-top:10px;display:flex;flex-direction:column;gap:5px}
.upload-progress-file{display:flex;align-items:center;gap:9px;padding:6px 9px;border-radius:6px;background:var(--field);font-size:.73rem}
.upload-progress-file-icon{flex:0 0 auto;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.06);color:var(--muted);font-size:.6rem}
.upload-progress-file-name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.upload-progress-file-size{flex:0 0 auto;color:var(--muted);font-size:.68rem}
.upload-progress-file.is-active .upload-progress-file-icon{background:var(--uploader-accent-soft);color:var(--uploader-accent)}
.upload-progress-file.is-active .upload-progress-file-name{color:var(--text)}
.upload-progress-file.is-done .upload-progress-file-icon{background:rgba(47,201,105,.16);color:var(--green)}
.upload-progress-file.is-done .upload-progress-file-name{color:var(--text)}
.upload-progress-file.is-error .upload-progress-file-icon{background:rgba(233,82,91,.16);color:var(--red)}
.upload-progress-file.is-error .upload-progress-file-name{color:var(--red)}
.upload-progress-file.is-active .upload-progress-file-icon{animation:upload-pulse 1s ease-in-out infinite}
@keyframes upload-pulse{0%,100%{opacity:.4}50%{opacity:1}}
.uploader-info-grid{display:grid;grid-template-columns:1.04fr 1fr 1fr;gap:10px;margin-top:10px}
.uploader-info-card{min-height:206px;padding:13px;border:var(--lg-border,1px solid var(--line));border-radius:var(--lg-radius-sm,9px);background:var(--panel-glass);backdrop-filter:var(--lg-blur,blur(16px) saturate(1.4));-webkit-backdrop-filter:var(--lg-blur,blur(16px) saturate(1.4))}
.prefix-group-label{margin:12px 0 0;color:var(--muted);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.prefix-group-label:first-of-type{margin-top:9px}
.uploader-info-card h2{display:flex;align-items:center;gap:8px;padding-bottom:10px;border-bottom:1px solid var(--line-soft);font-size:.7rem;text-transform:uppercase;letter-spacing:.045em;color:#d6d9df}
.info-card-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:var(--uploader-accent-soft);color:var(--uploader-accent)}
.uploader-spec-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:9px}
.uploader-spec{padding:8px 10px;border-radius:6px;background:rgba(255,255,255,.018);border:1px solid var(--line-soft)}
.uploader-spec-value{display:block;font-size:.92rem;font-weight:800;color:var(--text)}
.uploader-spec-label{display:block;margin-top:2px;color:var(--muted);font-size:.62rem;text-transform:uppercase;letter-spacing:.04em}
.uploader-naming-rule{margin-top:12px;color:var(--muted-strong);font-size:.71rem;line-height:1.6}
.uploader-naming-rule code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#d8dbe1;font-size:.9em}
.uploader-name-example{display:grid;gap:4px;margin-top:9px}
.uploader-name-example-label{color:var(--muted);font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.uploader-name-example code,.info-card-note code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#d8dbe1}
.uploader-name-example code{padding:6px 9px;border:1px solid var(--line-soft);border-radius:4px;background:var(--field);font-size:.68rem;overflow:hidden;text-overflow:ellipsis}
.prefix-highlight{color:var(--uploader-accent);font-weight:800}
.prefix-cloud{display:flex;flex-wrap:wrap;align-content:flex-start;gap:6px;margin-top:6px}
.prefix-cloud span{padding:4px 9px;border:1px solid rgba(204,0,68,.48);border-radius:999px;background:var(--uploader-accent-soft);color:#ff6b9d;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.65rem;font-weight:700;text-transform:uppercase}
.prefix-cloud.minigame span{border-color:rgba(93,156,236,.48);background:rgba(93,156,236,.13);color:var(--blue)}
.info-card-note{margin-top:16px;color:var(--muted);font-size:.69rem;line-height:1.65}
.review-flow-list{display:grid;gap:8px;margin-top:11px;list-style:none}
.review-flow-list li{display:flex;align-items:center;gap:9px}
.review-flow-list>li>span{width:25px;height:25px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;border:1px solid rgba(204,0,68,.35);border-radius:50%;background:var(--uploader-accent-soft);color:#ff6b9d;font-size:.65rem;font-weight:800}
.review-flow-list div{display:grid}
.review-flow-list strong{font-size:.7rem}
.review-flow-list small{color:var(--muted);font-size:.64rem}
.uploader-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:14px 2px;flex-wrap:wrap}
.uploader-section-head h2{font-size:1.05rem;margin-bottom:2px}
.uploader-section-head p{font-size:.76rem;color:var(--muted)}
.uploader-section-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.uploader-section-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.uploader-filter{padding:8px 10px;border-radius:6px;border:1px solid var(--line);background:var(--field);color:var(--text);font:inherit;font-size:.73rem}
.uploader-search{padding:8px 12px;border-radius:6px;border:1px solid var(--line);background:var(--field);color:var(--text);font:inherit;font-size:.73rem;min-width:180px;transition:border-color .15s}
.uploader-search:focus{outline:none;border-color:var(--accent)}
.uploader-search::placeholder{color:var(--muted)}
.submission-card[hidden],.review-card[hidden]{display:none !important}
.page-btn{cursor:pointer}
.page-btn:disabled,.page-btn.disabled{opacity:.35;cursor:not-allowed;pointer-events:none}
.page-dots{display:flex;align-items:center;justify-content:center;min-width:28px;height:36px;color:var(--muted);font-weight:700}
.queue-total{padding:5px 9px;border-radius:999px;background:var(--uploader-accent-soft);color:#ff6b9d;font-size:.68rem;font-weight:700}
.uploader-empty{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1px dashed var(--line);border-radius:10px;background:rgba(16,19,25,.35);color:var(--muted)}
.uploader-empty svg{margin-bottom:5px;color:#4a5260}
.uploader-empty.success svg{color:var(--green)}
.uploader-empty strong{color:var(--muted-strong);font-size:.86rem}
.uploader-empty span{font-size:.72rem}
.submission-list,.review-queue-list{display:grid;gap:9px}
.submission-card{display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:13px;padding:13px;border:var(--lg-border,1px solid var(--line));border-radius:var(--lg-radius-sm,9px);background:var(--panel-glass);backdrop-filter:var(--lg-blur,blur(16px) saturate(1.4));-webkit-backdrop-filter:var(--lg-blur,blur(16px) saturate(1.4))}
.submission-card.has-inline-form{grid-template-columns:54px minmax(0,1fr);align-items:start}
.submission-card.has-inline-form form.review-form{grid-column:1/-1;padding:9px 0 0}
.submission-prefix{width:54px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:7px;background:var(--uploader-accent-soft);color:#ff6b9d;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.66rem;font-weight:800;text-transform:uppercase}
.submission-main{min-width:0}
.submission-title-row{display:flex;align-items:center;gap:9px;min-width:0}
.submission-title-row h3{font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.submission-status{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:.59rem;font-weight:800;text-transform:uppercase;white-space:nowrap}
.submission-status.pending{background:rgba(242,201,76,.1);color:var(--gold)}
.submission-status.approved{background:rgba(47,201,105,.1);color:var(--green)}
.submission-status.declined{background:rgba(233,82,91,.1);color:var(--red)}
.submission-status.deleted{background:rgba(146,154,168,.14);color:var(--muted-strong)}
.submission-meta{display:flex;flex-wrap:wrap;gap:5px 13px;margin-top:4px;color:var(--muted);font-size:.65rem}
.review-note,.deployed-path{margin-top:7px;padding:6px 8px;border-left:2px solid var(--line);background:rgba(255,255,255,.018);color:var(--muted-strong);font-size:.67rem;overflow-wrap:anywhere}
.deployed-path{border-left-color:var(--green)}
.submission-actions{display:flex;align-items:center;gap:6px}
.submission-actions form{margin:0}
.uploader-action{min-height:32px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:var(--raised);color:var(--muted-strong);font:inherit;font-size:.67rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s,background .15s}
.uploader-action:hover{border-color:#444c59;color:#fff}
.uploader-action.approve{border-color:rgba(47,201,105,.35);background:rgba(47,201,105,.1);color:#81e1a8}
.uploader-action.approve:hover{background:rgba(47,201,105,.18)}
.uploader-action.danger{border-color:rgba(233,82,91,.28);background:rgba(233,82,91,.08);color:#ed858c}
.uploader-action.danger:hover{background:rgba(233,82,91,.16)}
.uploader-action.primary{border-color:rgba(204,0,68,.4);background:linear-gradient(135deg,var(--accent),var(--accent-bright));color:#fff}
.uploader-action.primary:hover{opacity:.92}
.uploader-action.download-test{border-color:rgba(93,156,236,.4);background:rgba(93,156,236,.14);color:var(--blue);font-weight:800}
.uploader-action.download-test:hover{background:rgba(93,156,236,.24);border-color:rgba(93,156,236,.6);color:#fff}
.uploader-action.approve-all{border:0;padding:8px 13px;background:linear-gradient(135deg,#990033,#c00040);color:#fff;font-weight:800;text-transform:uppercase;letter-spacing:.02em;box-shadow:0 6px 16px rgba(153,0,51,.24)}
.uploader-action.approve-all:hover{opacity:.92;color:#fff}
.uploader-action:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}
.review-card{border:var(--lg-border,1px solid var(--line));border-radius:var(--lg-radius-sm,9px);background:var(--panel-glass);backdrop-filter:var(--lg-blur,blur(16px) saturate(1.4));-webkit-backdrop-filter:var(--lg-blur,blur(16px) saturate(1.4));overflow:hidden}
.review-card-top{display:flex;align-items:center;gap:12px;padding:13px}
.review-card-title{min-width:0;flex:1}
.review-card-title h3{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.review-card-title p{margin-top:3px;color:var(--muted);font-size:.66rem}
.review-card-title p strong{color:var(--muted-strong)}
.review-card-stats{display:flex;align-items:center;flex-wrap:wrap;gap:7px 18px;padding:9px 13px;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);background:rgba(10,12,17,.38);color:var(--muted);font-size:.64rem}
.review-card-stats strong{color:var(--muted-strong)}
.review-card-stats .server-script-warning,.review-card-stats .server-script-warning strong{color:var(--gold)}
.review-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 10px;padding:12px 13px}
.review-form label{grid-column:1/-1;color:var(--muted-strong);font-size:.67rem;font-weight:700}
.review-form label span{color:var(--muted);font-weight:400}
.review-form textarea{width:100%;min-height:55px;resize:vertical;padding:8px 9px;border:1px solid var(--line);border-radius:6px;background:var(--field);color:var(--text);font:inherit;font-size:.7rem;outline:none}
.review-form textarea:focus{border-color:rgba(204,0,68,.65)}
.review-buttons{display:flex;align-items:stretch;gap:6px}

@media (max-width:900px){
    .uploader-info-grid{grid-template-columns:1fr 1fr}
    .uploader-info-card:last-child{grid-column:1/-1;min-height:0}
    .review-flow-list{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:700px){
    .uploader-heading{align-items:flex-start;flex-direction:column;gap:10px}
    .uploader-tabs{display:flex;overflow-x:auto;scrollbar-width:none}
    .uploader-tabs::-webkit-scrollbar{display:none}
    .uploader-tab{min-width:max-content;flex:1}
    .uploader-info-grid{grid-template-columns:1fr}
    .uploader-info-card:last-child{grid-column:auto}
    .review-flow-list{grid-template-columns:1fr}
    .submission-card{grid-template-columns:45px minmax(0,1fr)}
    .submission-prefix{width:45px}
    .submission-actions{grid-column:1/-1;justify-content:flex-end;border-top:1px solid var(--line-soft);padding-top:9px}
    .review-card-top{align-items:flex-start;flex-wrap:wrap}
    .review-card-top .uploader-action{margin-left:66px}
    .review-form{grid-template-columns:1fr}
    .review-buttons{justify-content:flex-end}
}
@media (max-width:440px){
    .map-dropzone{min-height:145px;padding:16px;text-align:center}
    .map-dropzone strong{font-size:.72rem}
    .submission-title-row{align-items:flex-start;flex-direction:column;gap:4px}
    .review-card-top .uploader-action{width:100%;margin-left:0}
    .review-buttons{display:grid;grid-template-columns:1fr 1fr}
}

/* ==========================================================================
   Compact Gridlist & Live Maps Styles (Matches Community Standard)
   ========================================================================== */
.gridlist-top-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.gridlist-filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.gridlist-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:6px;border:1px solid var(--line);background:var(--raised);color:var(--muted);font:inherit;font-size:.76rem;font-weight:700;cursor:pointer;transition:all .15s}
.gridlist-tab:hover{color:#fff;border-color:#444c59}
.gridlist-tab.active{background:linear-gradient(135deg,#990033,#c00040);border-color:#990033;color:#fff;box-shadow:0 3px 12px rgba(153,0,51,.35)}
.gridlist-tab .tab-badge{display:inline-flex;align-items:center;justify-content:center;padding:1px 6px;border-radius:999px;font-size:.65rem;font-weight:800;background:rgba(0,0,0,.35);color:inherit;margin-left:2px}
.gridlist-tab.active .tab-badge{background:rgba(0,0,0,.35);color:#fff}
.gridlist-upload-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;font-size:.76rem}

.gridlist-search-wrap{position:relative;width:100%;margin-bottom:12px}
.gridlist-search-wrap .search-icon{position:absolute;left:12px;top:12px;color:var(--muted);pointer-events:none}
.gridlist-search-input{width:100%;height:38px;padding:0 12px 0 36px;border:1px solid var(--line);border-radius:7px;background:var(--field);color:#fff;font:inherit;font-size:.78rem;outline:none;transition:border-color .15s}
.gridlist-search-input:focus{border-color:rgba(153,0,51,.75)}
.gridlist-search-input::placeholder{color:var(--muted)}

.gridlist-table{border:1px solid var(--line);border-radius:8px;background:var(--panel-glass);backdrop-filter:var(--lg-blur,blur(16px) saturate(1.4));-webkit-backdrop-filter:var(--lg-blur,blur(16px) saturate(1.4));overflow:hidden}
.gridlist-header{display:grid;grid-template-columns:60px minmax(0,1fr) 220px;gap:12px;padding:9px 14px;background:rgba(0,0,0,.3);border-bottom:1px solid var(--line-soft);color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.gridlist-body{display:flex;flex-direction:column}
.gridlist-row{display:grid;grid-template-columns:60px minmax(0,1fr) 220px;gap:12px;align-items:center;padding:9px 14px;border-bottom:1px solid rgba(255,255,255,.035);background:transparent;transition:background .12s;border-left:3px solid transparent}
.gridlist-row:last-child{border-bottom:none}
.gridlist-row:hover{background:rgba(255,255,255,.025)}
.gridlist-row[hidden]{display:none !important}
.gridlist-row.status-approved{border-left-color:#22c55e}
.gridlist-row.status-pending{border-left-color:#f59e0b}
.gridlist-row.status-declined{border-left-color:#ef4444}
.gridlist-row.status-deleted{border-left-color:#64748b}

.col-id{color:#64748b;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;font-weight:700}
.col-map{min-width:0;display:flex;flex-direction:column;gap:2px}
.gridlist-map-title{display:flex;align-items:center;gap:8px;min-width:0}
.gridlist-map-title .map-name{font-size:.82rem;font-weight:700;color:#f8fafc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gridlist-tag-owner{padding:1px 5px;border-radius:4px;background:rgba(204,0,68,.18);color:#ff6b9d;font-size:.62rem;font-weight:800}
.gridlist-map-meta{display:flex;align-items:center;flex-wrap:wrap;gap:5px;color:#64748b;font-size:.68rem}
.gridlist-map-meta strong a{color:#cbd5e1}
.gridlist-map-meta .meta-dot{opacity:.4}
.gridlist-map-meta .meta-time{display:inline-flex;align-items:center;gap:3px}

.col-status{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;min-width:0}
.gridlist-status-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:.68rem;font-weight:800;text-transform:capitalize}
.gridlist-status-pill.status-approved{background:rgba(34,197,94,.14);color:#22c55e;border:1px solid rgba(34,197,94,.28)}
.gridlist-status-pill.status-pending{background:rgba(245,158,11,.14);color:#f59e0b;border:1px solid rgba(245,158,11,.28)}
.gridlist-status-pill.status-declined{background:rgba(239,68,68,.14);color:#ef4444;border:1px solid rgba(239,68,68,.28)}
.gridlist-status-pill.status-deleted{background:rgba(148,163,184,.12);color:#94a3b8;border:1px solid rgba(148,163,184,.22)}

.gridlist-reviewer{margin-top:2px;font-size:.64rem;color:#64748b;text-align:right}
.gridlist-reviewer a{color:#cbd5e1}
.gridlist-note{margin-top:2px;font-size:.63rem;color:#f87171;text-align:right;max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gridlist-delete-form{margin-top:4px}
.gridlist-delete-btn{border:none;background:none;color:#ef4444;font-size:.66rem;font-weight:700;cursor:pointer;padding:1px 4px;border-radius:3px}
.gridlist-delete-btn:hover{background:rgba(239,68,68,.15);text-decoration:underline}

/* Compact Live Maps in Deleted Maps tab */
.col-actions{display:flex;align-items:center;justify-content:flex-end}
.live-map-quick-delete{display:flex;align-items:center;gap:6px;margin:0}
.live-remove-reason{height:28px;width:170px;padding:0 8px;border:1px solid var(--line);border-radius:5px;background:var(--field);color:#fff;font:inherit;font-size:.68rem;outline:none}
.live-remove-reason:focus{border-color:#ef4444}
.btn-compact{min-height:28px !important;padding:4px 10px !important;font-size:.66rem !important}

@media (max-width:700px){
    .gridlist-header{display:none}
    .gridlist-row{grid-template-columns:45px 1fr;gap:8px;padding:10px}
    .col-status,.col-actions{grid-column:1/-1;align-items:flex-start;justify-content:flex-start;margin-top:4px}
    .gridlist-reviewer,.gridlist-note{text-align:left}
    .live-remove-reason{width:100%}
    .live-map-quick-delete{width:100%}
}

/* ==========================================================================
   User Profile Hovercard (Frosted Glassmorphism Popover)
   ========================================================================== */
.user-hovercard{
    position:absolute;
    z-index:999999;
    width:280px;
    border-radius:12px;
    background:rgba(15,18,25,0.85);
    backdrop-filter:blur(18px) saturate(1.45);
    -webkit-backdrop-filter:blur(18px) saturate(1.45);
    border:1px solid rgba(255,255,255,0.14);
    box-shadow:0 16px 36px rgba(0,0,0,0.65), 0 0 0 1px rgba(0,0,0,0.3);
    overflow:hidden;
    opacity:0;
    pointer-events:none;
    transform:translateY(6px) scale(0.97);
    transition:opacity .15s ease, transform .15s ease;
}
.user-hovercard.visible{
    opacity:1;
    pointer-events:auto;
    transform:translateY(0) scale(1);
}
.hovercard-banner{
    height:56px;
    background:linear-gradient(135deg, rgba(153,0,51,0.7), rgba(204,0,68,0.35)) center/cover no-repeat;
    background-size:cover;
    background-position:center;
    border-bottom:1px solid rgba(255,255,255,0.08);
}
.hovercard-body{
    padding:0 14px 12px;
}
.hovercard-top{
    display:flex;
    align-items:flex-end;
    gap:10px;
    margin-top:-22px;
    margin-bottom:10px;
}
.hovercard-avatar-wrap{
    display:inline-block;
    flex-shrink:0;
    position:relative;
    text-decoration:none;
}
.hovercard-avatar{
    width:46px;
    height:46px;
    border-radius:50%;
    object-fit:cover;
    border:2.5px solid #14171f;
    box-shadow:0 4px 10px rgba(0,0,0,0.4);
    background:#12151b;
    display:block;
}
.hovercard-identity{
    min-width:0;
    flex:1;
    padding-bottom:2px;
}
.hovercard-names{
    display:flex;
    align-items:center;
    gap:6px;
    min-width:0;
}
.hovercard-nickname{
    color:#f8fafc;
    font-size:.88rem;
    font-weight:800;
    text-decoration:none;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    display:inline-block;
}
.hovercard-nickname:hover{
    color:#fff;
    text-decoration:underline;
}
.hovercard-username{
    color:var(--muted);
    font-size:.68rem;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    margin-top:-1px;
}
.hovercard-badges{
    display:flex;
    align-items:center;
    gap:5px;
    margin-top:4px;
    flex-wrap:wrap;
}
.hovercard-group{
    display:inline-flex;
    align-items:center;
    padding:1.5px 7px;
    border-radius:999px;
    font-size:.62rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.03em;
    background:rgba(153,0,51,0.22);
    color:#ff6b9d;
    border:1px solid rgba(153,0,51,0.4);
}
.hovercard-clan{
    display:inline-flex;
    align-items:center;
    padding:1.5px 7px;
    border-radius:999px;
    font-size:.62rem;
    font-weight:800;
    background:rgba(46,204,113,0.15);
    color:#2ecc71;
    border:1px solid rgba(46,204,113,0.3);
}
.hovercard-stats{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:5px;
    padding:7px 8px;
    background:rgba(0,0,0,0.35);
    border:1px solid rgba(255,255,255,0.06);
    border-radius:7px;
    margin-bottom:10px;
}
.hovercard-stat{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
}
.hovercard-stat .stat-label{
    font-size:.58rem;
    color:var(--muted);
    text-transform:uppercase;
    font-weight:700;
    letter-spacing:.04em;
}
.hovercard-stat .stat-value{
    font-size:.78rem;
    font-weight:800;
    color:#f1f5f9;
    margin-top:1px;
}
.hovercard-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding-top:4px;
    border-top:1px solid rgba(255,255,255,0.06);
}
.hovercard-joined{
    color:var(--muted);
    font-size:.66rem;
}
.hovercard-actions{
    display:flex;
    align-items:center;
    gap:6px;
}
.hovercard-btn{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:4px 10px;
    border-radius:5px;
    font-size:.68rem;
    font-weight:700;
    text-decoration:none;
    color:#fff;
    background:linear-gradient(135deg, #990033, #c00040);
    box-shadow:0 3px 8px rgba(153,0,51,0.25);
    transition:all .15s;
}
.hovercard-btn:hover{
    opacity:.9;
    transform:translateY(-1px);
    color:#fff;
}

/* ========= ADMIN PANEL (rebuilt sections) =========
   The panel already had a component set above; these cover the pieces added
   when it grew search, pagination, filters and the new sections. */
.admin-title{font-size:1.6rem;font-weight:800;margin:0}
.admin-nav{flex-wrap:wrap}
.admin-tab-count{
    display:inline-block;min-width:17px;padding:1px 5px;margin-left:5px;border-radius:9px;
    background:var(--accent-bright,#c04);color:#fff;font-size:.68rem;font-weight:700;text-align:center;
}
.admin-intro{
    color:var(--muted);font-size:var(--fs-sm,.85rem);line-height:1.6;
    max-width:78ch;margin:14px 0 4px;
}
.admin-intro code{
    padding:1px 5px;border-radius:4px;background:var(--field);
    border:1px solid var(--line);font-size:.85em;
}
.admin-section-title{font-size:1.05rem;margin:26px 0 12px;display:flex;align-items:center;gap:9px}
.admin-count{
    padding:1px 8px;border-radius:9px;background:var(--raised);
    border:1px solid var(--line);color:var(--muted);font-size:.72rem;font-weight:700;
}
.admin-empty{padding:28px 0;text-align:center}

.admin-filter-bar{
    display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:16px 0;
}
.admin-search{
    flex:1;min-width:200px;max-width:380px;box-sizing:border-box;padding:9px 12px;
    border-radius:6px;border:1px solid var(--line);background:var(--field);
    color:var(--text);font-size:var(--fs-sm,.85rem);
}
.admin-search:focus{outline:none;border-color:var(--accent-bright)}
.admin-select{
    padding:9px 10px;border-radius:6px;border:1px solid var(--line);
    background:var(--field);color:var(--text);font-size:var(--fs-sm,.85rem);
}
.admin-result-count{margin-left:auto;color:var(--muted);font-size:var(--fs-xs,.78rem)}
.admin-subtle{display:block;color:var(--muted);font-size:var(--fs-xs,.72rem);margin-top:2px}

/* Action forms sit side by side; this replaces the repeated inline style="display:inline". */
.inline-form{display:inline}
.admin-actions .btn-mini{margin-left:4px}

.admin-stat-card.is-warn{border-color:rgba(242,201,76,.34)}
.admin-stat-card.is-warn strong{color:#f7df8a}

.admin-columns{display:grid;grid-template-columns:1fr 300px;gap:22px;align-items:start;margin-top:8px}
.admin-col{min-width:0}
.admin-col-narrow{font-size:var(--fs-sm,.85rem)}

.audit-feed{list-style:none;margin:0 0 14px;padding:0}
.audit-feed li{
    padding:9px 0;border-bottom:1px solid var(--line);font-size:var(--fs-xs,.78rem);line-height:1.5;
}
.audit-feed li:last-child{border-bottom:none}
.audit-action{font-weight:600;color:var(--text)}
.audit-target{color:var(--muted-strong);margin-left:4px}
.audit-meta{display:block;color:var(--muted);font-size:.7rem;margin-top:2px}

.admin-pagination{display:flex;align-items:center;gap:12px;justify-content:center;margin:18px 0}
.page-current{color:var(--muted);font-size:var(--fs-xs,.78rem)}

.admin-modal-section{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.admin-modal-section h3{margin:0 0 8px;font-size:var(--fs-sm,.9rem)}
.field-hint{color:var(--muted);font-size:var(--fs-xs,.74rem);line-height:1.55;margin:0 0 11px}
.field-check{display:flex;align-items:center;gap:8px}
.field-check input{width:auto !important;margin:0}
.field-check label{margin:0 !important}
.btn-danger-solid{background:var(--error);border-color:var(--error);color:#fff}
.btn-danger-solid:hover{filter:brightness(1.1)}

.post-excerpt-cell{max-width:420px;line-height:1.5}
.shout-cell{max-width:460px;word-break:break-word}

.appeal-admin-card{
    margin-top:16px;padding:20px;
    background:var(--panel-glass);backdrop-filter:var(--lg-blur,blur(20px) saturate(1.6));
    -webkit-backdrop-filter:var(--lg-blur,blur(20px) saturate(1.6));
    border:var(--lg-border,1px solid var(--line-glass));border-radius:var(--lg-radius,var(--radius));
}
.appeal-admin-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.appeal-admin-user{font-weight:700;margin-right:7px}
.appeal-arena-tag{
    padding:2px 8px;border-radius:5px;background:var(--raised);border:1px solid var(--line);
    color:var(--muted-strong);font-size:var(--fs-xs,.72rem);margin-right:6px;
}
.appeal-admin-when{color:var(--muted);font-size:var(--fs-xs,.75rem)}
.appeal-admin-message{
    padding:13px 15px;border-radius:8px;background:var(--field);border:1px solid var(--line);
    font-size:var(--fs-sm,.86rem);line-height:1.6;margin-bottom:14px;white-space:normal;
}
.appeal-admin-actions{display:flex;gap:9px;flex-wrap:wrap}

@media (max-width:900px){
    .admin-columns{grid-template-columns:1fr}
}
@media (max-width:640px){
    .admin-filter-bar{flex-direction:column;align-items:stretch}
    .admin-search{max-width:none}
    .admin-result-count{margin-left:0}
    .post-excerpt-cell,.shout-cell{max-width:none}
}

/* ========= SERVER BAN NOTICE =========
   A game-server ban never restricts the forum; it only shows this bar, which
   points at the existing "Unban Requests" board rather than a bespoke page. */
.server-ban-bar{
    background:linear-gradient(180deg,rgba(233,82,91,.16),rgba(233,82,91,.07));
    border-bottom:1px solid rgba(233,82,91,.32);
}
.server-ban-inner{display:flex;align-items:center;gap:14px;padding:11px 0;flex-wrap:wrap}
.server-ban-icon{color:#f19aa0;font-size:1.15rem;line-height:1;flex-shrink:0}
.server-ban-text{flex:1;min-width:220px;font-size:var(--fs-sm,.84rem);color:var(--muted-strong,#c6ccd6);line-height:1.5}
.server-ban-text strong{color:#f19aa0;display:block}
.server-ban-cta{flex-shrink:0;white-space:nowrap}

/* ========= UNBAN REQUEST PANEL =========
   Shown at the top of any topic inside the Unban Requests board: the author's
   live ban record pulled from the game server, plus a staff accept action.
   The thread itself is a normal topic; this panel is the only bespoke part. */
.unban-panel{
    margin-bottom:18px;padding:18px 20px;
    background:var(--panel-glass);backdrop-filter:var(--lg-blur,blur(20px) saturate(1.6));
    -webkit-backdrop-filter:var(--lg-blur,blur(20px) saturate(1.6));
    border:var(--lg-border,1px solid var(--line-glass));border-radius:var(--lg-radius,var(--radius));
    border-left:3px solid rgba(233,82,91,.5);
}
.unban-panel.is-clear{border-left-color:rgba(47,201,105,.5)}
.unban-panel-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.unban-panel .appeal-ban-meta{margin:0 0 14px;padding:0 0 14px;border-top:none;border-bottom:1px solid var(--line)}
.unban-panel form{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.unban-panel-hint{margin:0}

.appeal-ban-meta{display:flex;gap:26px;flex-wrap:wrap}
.appeal-ban-meta dt{color:var(--muted);font-size:var(--fs-xs,.72rem);text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}
.appeal-ban-meta dd{margin:0;font-size:var(--fs-sm,.86rem)}

@media (max-width:640px){
    .server-ban-inner{flex-direction:column;align-items:flex-start;gap:9px}
    .server-ban-cta{width:100%;text-align:center}
    .unban-panel .appeal-ban-meta{gap:16px}
}

/* ========= STAFF PAGE MANAGEMENT (Founder/Innovator only) =========
   Rank label/color/order and per-user display tags, edited right on the
   public /staff page. Uses native <details> instead of JS-driven modals --
   this is a small, occasional-use form, not worth wiring into admin.js. */
.staff-admin-panel{
    margin:16px 0;padding:14px 18px;border-radius:var(--radius);
    background:var(--panel-glass);border:1px solid var(--line-glass);
}
.staff-admin-panel summary{
    cursor:pointer;font-weight:700;font-size:.88rem;color:var(--text);
    list-style:none;user-select:none;
}
.staff-admin-panel summary::-webkit-details-marker{display:none}
.staff-admin-panel summary::before{content:'▸ ';color:var(--muted)}
.staff-admin-panel[open] summary::before{content:'▾ '}
.rank-config-form{margin-top:14px}
.rank-config-table{margin-bottom:10px}
.rank-config-table input[type="text"],
.rank-config-table input[type="number"]{
    width:100%;box-sizing:border-box;padding:6px 8px;border-radius:5px;
    border:1px solid var(--line);background:var(--field);color:var(--text);font-size:.82rem;
}
.rank-position-input{max-width:70px}
.rank-color-input{width:44px;height:30px;padding:2px;border-radius:5px;border:1px solid var(--line);background:var(--field);cursor:pointer}
.rank-key-name{font-weight:600;color:var(--muted-strong)}

.tag-edit{display:inline-block;margin-left:6px}
.tag-edit summary{
    cursor:pointer;list-style:none;font-size:.78rem;color:var(--muted);
    padding:1px 5px;border-radius:4px;
}
.tag-edit summary::-webkit-details-marker{display:none}
.tag-edit summary:hover{color:var(--accent-bright);background:var(--raised)}
.tag-edit form{
    display:flex;gap:6px;align-items:center;margin-top:6px;padding:8px;
    border-radius:6px;background:var(--raised);border:1px solid var(--line);
}
.tag-edit input[type="text"]{
    padding:5px 8px;border-radius:5px;border:1px solid var(--line);
    background:var(--field);color:var(--text);font-size:.78rem;min-width:180px;
}

@media (max-width:640px){
    .rank-config-table{font-size:.78rem}
    .tag-edit form{flex-direction:column;align-items:stretch}
    .tag-edit input[type="text"]{min-width:0}
}

/* ========= STAFF NAME TAG + CUSTOM ROLES ========= */
.staff-name-tag{font-weight:800;margin-right:2px}
.field-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.field-inline input[type="text"]{
    flex:1;min-width:180px;padding:8px 10px;border-radius:6px;
    border:1px solid var(--line);background:var(--field);color:var(--text);font-size:.85rem;
}
.custom-role-new-form{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.tag-edit select{
    margin-top:6px;width:100%;padding:6px 8px;border-radius:5px;
    border:1px solid var(--line);background:var(--field);color:var(--text);font-size:.78rem;
}

@media (max-width:640px){
    .field-inline{flex-direction:column;align-items:stretch}
    .field-inline input[type="text"]{min-width:0}
}

/* ========= DONATE PAGE ========= */
.donate-layout{display:grid;grid-template-columns:1fr 320px;gap:22px;align-items:start;margin-top:8px}
.donate-main{display:flex;flex-direction:column;gap:18px;min-width:0}
.donate-side{display:flex;flex-direction:column;gap:18px}

.donate-card{
    padding:22px;border-radius:var(--lg-radius,var(--radius));
    background:var(--panel-glass);backdrop-filter:var(--lg-blur,blur(20px) saturate(1.6));
    -webkit-backdrop-filter:var(--lg-blur,blur(20px) saturate(1.6));
    border:var(--lg-border,1px solid var(--line-glass));box-shadow:var(--lg-rim,none), var(--lg-ambient,var(--glass-highlight));
}
.donate-card-title{font-size:1.05rem;margin:0 0 16px}

.donate-amount-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.donate-chip{
    padding:9px 18px;border-radius:8px;border:1px solid var(--line);background:var(--raised);
    color:var(--text);font-weight:700;font-size:.9rem;cursor:pointer;transition:all .15s;
}
.donate-chip:hover{border-color:var(--accent-bright)}
.donate-chip.active{background:var(--accent-bright);border-color:var(--accent-bright);color:#fff}

.donate-custom-amount{
    display:flex;align-items:center;gap:8px;padding:10px 14px;margin-bottom:18px;
    border-radius:8px;border:1px solid var(--line);background:var(--field);max-width:220px;
}
.donate-amount-prefix{color:var(--muted);font-weight:700}
.donate-custom-amount input{
    border:none;background:transparent;color:var(--text);font-size:1.1rem;font-weight:700;
    width:100%;outline:none;
}

.donate-preview{
    display:flex;gap:24px;padding:16px;margin-bottom:18px;border-radius:10px;
    background:rgba(204,0,68,.08);border:1px solid rgba(204,0,68,.22);
}
.donate-preview-item{display:flex;flex-direction:column}
.donate-preview-value{font-size:1.6rem;font-weight:800;color:var(--accent-bright)}
.donate-preview-label{font-size:var(--fs-xs,.75rem);color:var(--muted)}

.donate-paypal-slot{max-width:420px;min-height:45px}
.donate-fineprint{margin-top:12px;color:var(--muted);font-size:var(--fs-xs,.76rem);line-height:1.5}
.donate-status-msg{margin-top:12px;padding:11px 14px;border-radius:8px;font-size:var(--fs-sm,.85rem)}
.donate-status-msg.is-success{background:rgba(47,201,105,.09);border:1px solid rgba(47,201,105,.3);color:#8ee6b2}
.donate-status-msg.is-error{background:rgba(233,82,91,.09);border:1px solid rgba(233,82,91,.3);color:#f19aa0}

.donate-perks{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.donate-perk{display:flex;gap:12px;align-items:flex-start}
.donate-perk-icon{font-size:1.3rem;flex-shrink:0;line-height:1}
.donate-perk strong{display:block;font-size:.88rem;margin-bottom:2px}
.donate-perk span{color:var(--muted);font-size:var(--fs-xs,.78rem);line-height:1.5}

.donate-tier-badge{
    display:inline-block;padding:6px 16px;border-radius:20px;border:1.5px solid var(--line);
    font-weight:800;font-size:.9rem;margin-bottom:14px;
}
.donate-tier-badge.donate-tier-none{color:var(--muted);border-color:var(--line)}
.donate-total{margin-bottom:10px}
.donate-total-value{display:block;font-size:1.5rem;font-weight:800}
.donate-total-label{color:var(--muted);font-size:var(--fs-xs,.76rem)}
.donate-next-tier{color:var(--muted);font-size:var(--fs-xs,.78rem);line-height:1.5;margin:0}

.donate-history{list-style:none;margin:0;padding:0}
.donate-history li{
    display:flex;flex-direction:column;padding:10px 0;border-bottom:1px solid var(--line);font-size:var(--fs-xs,.78rem);
}
.donate-history li:last-child{border-bottom:none}
.donate-history-amount{font-weight:700}
.donate-history-meta{color:var(--muted);margin-top:1px}
.donate-history-zrc{color:var(--gold);font-weight:600;margin-top:2px}

.donate-alt-card{text-align:left}
.donate-alt-text{color:var(--muted);font-size:var(--fs-xs,.8rem);line-height:1.55;margin:0 0 12px}
.donate-alt-text code{padding:1px 5px;border-radius:4px;background:var(--field);border:1px solid var(--line);font-size:.85em}

@media (max-width:900px){
    .donate-layout{grid-template-columns:1fr}
    .donate-perks{grid-template-columns:1fr}
}

/* ========= EMAIL VERIFICATION NOTICE =========
   Same layout as .server-ban-bar, gold instead of red -- this is a nudge
   (nothing browsing/posting-related is blocked), not a warning about
   something already wrong. */
.email-notice-bar{
    margin-top:14px;
    background:linear-gradient(180deg,rgba(242,201,76,.14),rgba(242,201,76,.06));
    border-top:1px solid rgba(242,201,76,.3);
    border-bottom:1px solid rgba(242,201,76,.3);
}
.email-notice-inner{display:flex;align-items:center;gap:14px;padding:13px 0;flex-wrap:wrap}
.email-notice-icon{color:#f7df8a;font-size:1.15rem;line-height:1;flex-shrink:0}
.email-notice-text{flex:1;min-width:220px;font-size:var(--fs-sm,.84rem);color:var(--muted-strong,#c6ccd6);line-height:1.5}
.email-notice-text strong{color:#f7df8a}
.email-notice-cta{flex-shrink:0;white-space:nowrap}

@media (max-width:640px){
    .email-notice-inner{flex-direction:column;align-items:flex-start;gap:9px}
    .email-notice-cta{width:100%;text-align:center}
}

/* ========= EMAIL STATUS CARD (Settings > Email) ========= */
.email-status-card{
    display:flex;gap:14px;align-items:flex-start;padding:16px 18px;margin-bottom:16px;
    border-radius:var(--radius);background:var(--panel-glass);border:1px solid var(--line-glass);
}
.email-status-icon{font-size:1.3rem;line-height:1.3;flex-shrink:0}
.email-status-body strong{display:block;margin-bottom:4px;font-size:.92rem}
.email-status-body p{margin:0 0 10px;color:var(--muted);font-size:var(--fs-sm,.84rem);line-height:1.55}
.email-status-body form{margin:0}
.email-status-card.is-verified{border-color:rgba(47,201,105,.3)}
.email-status-card.is-verified .email-status-icon{color:var(--green)}
.email-status-card.is-verified strong{color:var(--green)}
.email-status-card.is-pending{border-color:rgba(242,201,76,.3)}
.email-status-card.is-pending .email-status-icon{color:#f7df8a}
.email-status-card.is-pending strong{color:#f7df8a}
.email-status-card.is-placeholder{border-color:rgba(233,82,91,.3)}
.email-status-card.is-placeholder .email-status-icon{color:#f19aa0}
.email-status-card.is-placeholder strong{color:#f19aa0}

/* ========= PASSWORD VISIBILITY TOGGLE =========
   Wrap a password <input> in .password-field with a .password-toggle button
   as its sibling; assets/js/app.js handles the click (toggles type + icon).
   Two SVGs live inside the button, one hidden at a time via .is-visible on
   the button itself -- no innerHTML swapping, just a CSS visibility flip. */
.password-field{position:relative}
.password-field input{padding-right:40px !important}
.password-toggle{
    position:absolute;top:50%;right:4px;transform:translateY(-50%);
    display:flex;align-items:center;justify-content:center;width:32px;height:32px;
    background:none;border:none;border-radius:6px;color:var(--muted);cursor:pointer;padding:0;
    transition:color .15s,background .15s;
}
.password-toggle:hover{color:var(--text);background:var(--raised)}
.password-toggle svg{width:18px;height:18px;pointer-events:none}
.password-toggle .icon-eye-closed{display:none}
.password-toggle.is-visible .icon-eye-open{display:none}
.password-toggle.is-visible .icon-eye-closed{display:block}

/* ========= STYLED CHECKBOX (remember me, etc.) ========= */
.styled-checkbox{display:inline-flex;align-items:center;gap:9px;cursor:pointer;user-select:none}
.styled-checkbox input{position:absolute;opacity:0;width:1px;height:1px}
.checkbox-box{
    position:relative;flex-shrink:0;width:19px;height:19px;border-radius:5px;
    border:1.5px solid var(--line);background:var(--field);transition:all .15s;
}
.checkbox-box::after{
    content:'';position:absolute;left:5px;top:1px;width:6px;height:11px;
    border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);
    transition:transform .15s cubic-bezier(.4,0,.2,1);
}
.styled-checkbox input:checked ~ .checkbox-box{background:var(--accent-bright);border-color:var(--accent-bright)}
.styled-checkbox input:checked ~ .checkbox-box::after{transform:rotate(45deg) scale(1)}
.styled-checkbox input:focus-visible ~ .checkbox-box{outline:2px solid var(--accent-bright);outline-offset:2px}
.styled-checkbox:hover .checkbox-box{border-color:var(--accent-bright)}

/* ========= USERNAME AUTOCOMPLETE (new message "To" field) ========= */
.user-autocomplete{position:relative}
.user-autocomplete-list{
    position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;
    max-height:260px;overflow-y:auto;padding:6px;border-radius:8px;
    background:var(--panel);border:1px solid var(--line);box-shadow:0 12px 32px rgba(0,0,0,.4);
}
.user-autocomplete-item{
    display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:none;border-radius:6px;
    background:none;color:var(--text);font-size:.85rem;text-align:left;cursor:pointer;
}
.user-autocomplete-item:hover,.user-autocomplete-item.is-active{background:var(--raised)}
.user-autocomplete-avatar{width:24px;height:24px;border-radius:50%;flex-shrink:0}

/* ========= NEW TOPIC PAGE ========= */
.new-topic-card{
    padding:26px;border-radius:var(--lg-radius,var(--radius));
    background:var(--panel-glass);backdrop-filter:var(--lg-blur,blur(20px) saturate(1.6));
    -webkit-backdrop-filter:var(--lg-blur,blur(20px) saturate(1.6));
    border:var(--lg-border,1px solid var(--line-glass));box-shadow:var(--lg-rim,none), var(--lg-ambient,var(--glass-highlight));
}
.form-hint-inline{font-weight:400;color:var(--muted);font-size:.78em}
.new-topic-title-input{font-size:1.05rem;font-weight:600;padding:12px 14px}

.prefix-picker{display:flex;flex-wrap:wrap;gap:8px}
.prefix-chip{
    padding:7px 15px;border-radius:20px;font-size:.82rem;font-weight:700;cursor:pointer;
    background:var(--raised);border:1.5px solid var(--line);color:var(--muted-strong);
    transition:all .15s;
}
.prefix-chip:not(.is-none){color:var(--chip-color);border-color:var(--chip-color)}
.prefix-chip:not(.is-none):hover{opacity:.8}
.prefix-chip.is-none:hover{border-color:var(--muted)}
.prefix-chip.is-selected{
    background:var(--chip-color, var(--accent-bright));border-color:var(--chip-color, var(--accent-bright));color:#fff;
}
.prefix-chip.is-none.is-selected{background:var(--raised-glass,var(--raised));border-color:var(--muted);color:var(--text)}

/* ==========================================================================
   MOBILE UI SYSTEM (Senior 25Y Mobile Architecture)
   Native App-Like Experience, Glassmorphism, Micro-Interactions & Safe Area
   ========================================================================== */

:root {
    --mb-header-height: 58px;
    --mb-nav-height: 60px;
    --safe-area-top: env(safe-area-inset-top, 0px);
    --safe-area-bottom: env(safe-area-inset-bottom, 0px);
    --safe-area-left: env(safe-area-inset-left, 0px);
    --safe-area-right: env(safe-area-inset-right, 0px);
}

body.drawer-open {
    overflow: hidden !important;
    touch-action: none;
}

/* ========= MOBILE DRAWER BACKDROP ========= */
.mobile-drawer-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(4, 6, 9, 0.76);
    backdrop-filter: blur(16px) saturate(160%);
    -webkit-backdrop-filter: blur(16px) saturate(160%);
    z-index: 9998;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.28s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 0.28s;
}
.mobile-drawer-backdrop.open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ========= MOBILE DRAWER WINDOW ========= */
.mobile-drawer {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    width: min(340px, 86vw);
    background: linear-gradient(180deg, rgba(20, 24, 31, 0.98), rgba(13, 15, 19, 0.98));
    backdrop-filter: blur(28px) saturate(180%);
    -webkit-backdrop-filter: blur(28px) saturate(180%);
    border-right: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 12px 0 38px rgba(0, 0, 0, 0.7);
    z-index: 9999;
    transform: translateX(-100%);
    transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.mobile-drawer.open {
    transform: translateX(0);
}

.mobile-drawer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: max(14px, var(--safe-area-top)) 16px 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    background: rgba(255, 255, 255, 0.02);
}
.mobile-drawer-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.08);
    color: var(--muted-strong);
    cursor: pointer;
    transition: all 0.18s ease;
}
.mobile-drawer-close:hover,
.mobile-drawer-close:active {
    background: rgba(204, 0, 68, 0.2);
    color: #fff;
    border-color: rgba(204, 0, 68, 0.4);
}

.mobile-drawer-body {
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* User Card in Drawer */
.drawer-user-card {
    background: var(--panel-glass, rgba(21, 24, 30, 0.7));
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 14px;
    padding: 12px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
.drawer-user-main {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    margin-bottom: 10px;
}
.drawer-user-avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--accent-border);
}
.drawer-user-details {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.drawer-user-name {
    font-weight: 800;
    font-size: 0.95rem;
    color: var(--text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.drawer-user-role {
    font-size: 0.72rem;
    color: var(--accent-bright);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.drawer-user-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding-top: 10px;
    border-top: 1px solid var(--line-soft);
}
.drawer-action-btn {
    flex: 1 1 calc(50% - 6px);
    text-align: center;
    padding: 7px 10px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.06);
    color: var(--muted-strong);
    font-size: 0.78rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.15s;
}
.drawer-action-btn:hover {
    background: rgba(255, 255, 255, 0.08);
    color: var(--text);
}
.drawer-admin-btn {
    color: var(--red);
    border-color: rgba(233, 82, 91, 0.25);
    background: rgba(233, 82, 91, 0.06);
}
.drawer-logout-btn {
    color: var(--muted);
}

/* Guest Card in Drawer */
.drawer-guest-card {
    background: linear-gradient(135deg, rgba(153, 0, 51, 0.12), rgba(21, 24, 30, 0.8));
    border: 1px solid var(--accent-border);
    border-radius: 14px;
    padding: 14px;
}
.drawer-guest-title {
    font-weight: 800;
    font-size: 0.92rem;
    color: var(--text);
    margin-bottom: 4px;
}
.drawer-guest-desc {
    font-size: 0.78rem;
    color: var(--muted);
    margin-bottom: 12px;
    line-height: 1.4;
}
.drawer-guest-buttons {
    display: flex;
    gap: 8px;
}
.drawer-guest-buttons .btn {
    flex: 1;
    text-align: center;
    justify-content: center;
    padding: 8px 12px;
}

/* Drawer Navigation Links */
.drawer-nav {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.drawer-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    border-radius: 10px;
    color: var(--muted-strong);
    font-size: 0.88rem;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.15s ease;
}
.drawer-link:hover,
.drawer-link:active {
    background: rgba(255, 255, 255, 0.06);
    color: var(--text);
}
.drawer-link.active {
    color: #fff;
    background: var(--accent-soft);
    border-left: 3px solid var(--accent-bright);
}
.drawer-nav-item-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--muted);
    flex-shrink: 0;
}
.drawer-link:hover .drawer-nav-item-icon,
.drawer-link.active .drawer-nav-item-icon {
    color: var(--accent-bright);
}

/* Drawer Accordions */
.drawer-accordion {
    display: flex;
    flex-direction: column;
}
.drawer-acc-trigger {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 11px 14px;
    border-radius: 10px;
    background: transparent;
    border: none;
    color: var(--muted-strong);
    font-size: 0.88rem;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
    transition: all 0.15s ease;
}
.drawer-acc-trigger:hover {
    background: rgba(255, 255, 255, 0.05);
    color: var(--text);
}
.drawer-acc-trigger.active {
    color: var(--text);
    background: var(--accent-soft);
}
.drawer-acc-title {
    flex: 1;
}
.drawer-acc-chevron {
    transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
    color: var(--muted);
}
.drawer-acc-trigger.open .drawer-acc-chevron {
    transform: rotate(180deg);
    color: var(--accent-bright);
}
.drawer-acc-panel {
    padding: 4px 0 8px 14px;
    border-left: 2px solid rgba(255, 255, 255, 0.08);
    margin-left: 20px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.drawer-acc-panel[hidden] {
    display: none !important;
}
.drawer-sub-link {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 6px;
    color: var(--muted-strong);
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.15s ease;
}
.drawer-sub-link:hover {
    background: rgba(255, 255, 255, 0.05);
    color: var(--text);
}
.drawer-sub-link.active {
    color: var(--accent-bright);
    background: rgba(204, 0, 68, 0.12);
}
.drawer-sub-icon {
    font-size: 0.9rem;
}

/* Category tree node in drawer */
.drawer-cat-node {
    display: flex;
    flex-direction: column;
    margin-left: calc(var(--depth, 0) * 12px);
}
.drawer-cat-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
}
.drawer-cat-link {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
    padding: 7px 10px;
    border-radius: 6px;
    color: var(--muted-strong);
    font-size: 0.8rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.15s;
}
.drawer-cat-link:hover {
    background: rgba(255, 255, 255, 0.05);
    color: var(--text);
}
.drawer-cat-title {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.drawer-cat-bullet {
    color: var(--muted);
    font-size: 0.9rem;
    line-height: 1;
}
.drawer-cat-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 4px;
    background: transparent;
    border: none;
    color: var(--muted);
    cursor: pointer;
    transition: all 0.15s;
}
.drawer-cat-toggle:hover {
    color: var(--text);
    background: rgba(255, 255, 255, 0.06);
}
.drawer-cat-toggle svg {
    transition: transform 0.18s ease;
}
.drawer-cat-toggle.open svg {
    transform: rotate(180deg);
}
.drawer-cat-children {
    padding-left: 10px;
    border-left: 1px solid rgba(255, 255, 255, 0.07);
    margin-left: 12px;
}
.drawer-cat-children[hidden] {
    display: none !important;
}

/* Community Box in Drawer */
.drawer-community {
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}
.drawer-community-label {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--muted);
    margin-bottom: 8px;
}
.drawer-community-grid {
    display: flex;
    gap: 8px;
}
.drawer-comm-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px;
    border-radius: 8px;
    font-size: 0.8rem;
    font-weight: 700;
    text-decoration: none;
    color: #fff;
    transition: transform 0.15s ease, opacity 0.15s ease;
}
.drawer-comm-btn:hover {
    transform: translateY(-1px);
    opacity: 0.9;
}
.drawer-comm-btn.discord {
    background: #5865F2;
}
.drawer-comm-btn.youtube {
    background: #CC0000;
}

/* ========= MOBILE BOTTOM NAVIGATION BAR ========= */
.mobile-bottom-nav {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: calc(var(--mb-nav-height) + var(--safe-area-bottom));
    padding-bottom: var(--safe-area-bottom);
    background: rgba(13, 15, 19, 0.96);
    backdrop-filter: blur(24px) saturate(180%);
    -webkit-backdrop-filter: blur(24px) saturate(180%);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.45);
    z-index: 9990 !important;
    display: none;
    align-items: center;
    justify-content: space-around;
    transform: translate3d(0, 0, 0) !important;
    -webkit-transform: translate3d(0, 0, 0) !important;
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    contain: layout paint;
}
.mb-nav-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    background: transparent;
    border: none;
    color: var(--muted);
    text-decoration: none;
    cursor: pointer;
    padding: 6px 0;
    transition: color 0.15s ease, transform 0.1s ease;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}
.mb-nav-item:active {
    transform: scale(0.92);
}
.mb-nav-item.active {
    color: var(--accent-bright);
}
.mb-nav-icon {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 22px;
}
.mb-nav-item.active .mb-nav-icon svg {
    filter: drop-shadow(0 0 6px rgba(204, 0, 68, 0.6));
}
.mb-nav-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.3px;
    margin-top: 2px;
    text-transform: uppercase;
}
.mb-nav-badge {
    position: absolute;
    top: -5px;
    right: -8px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 8px;
    background: var(--accent-bright);
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    line-height: 16px;
    text-align: center;
    box-shadow: 0 0 6px rgba(204, 0, 68, 0.8);
}

/* ========= MASTER RESPONSIVE BREAKPOINTS ========= */
@media (max-width: 860px) {
    /* Safe-Area Padding & Site Layout */
    .site-main {
        padding-bottom: calc(var(--mb-nav-height) + var(--safe-area-bottom) + 24px);
    }
    .site-footer {
        padding-bottom: calc(var(--mb-nav-height) + var(--safe-area-bottom) + 32px) !important;
    }
    .container {
        padding: 0 14px;
        max-width: 100vw !important;
        overflow-x: hidden;
    }

    /* Header Compact Floating App Bar */
    .site-header {
        position: sticky;
        top: 0;
        width: 100% !important;
        max-width: 100vw !important;
        margin: 0 !important;
        border-radius: 0 0 16px 16px;
        height: calc(var(--mb-header-height) + var(--safe-area-top));
        padding-top: var(--safe-area-top);
        border-left: none;
        border-right: none;
        border-top: none;
        overflow: hidden;
    }
    .header-inner {
        padding: 0 12px !important;
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    .header-actions {
        gap: 6px !important;
        flex-shrink: 0 !important;
    }
    /* Hide redundant message button in header (available in bottom nav) */
    .header-msg-trigger {
        display: none !important;
    }
    /* User profile button: convert to sleek 34px round avatar button */
    .user-name-nav,
    .user-menu-trigger svg {
        display: none !important;
    }
    .user-menu-trigger {
        padding: 0 !important;
        width: 34px !important;
        height: 34px !important;
        border-radius: 50% !important;
        justify-content: center !important;
    }
    .user-avatar-sm {
        width: 28px !important;
        height: 28px !important;
    }
    .notif-trigger,
    .mobile-toggle {
        width: 34px !important;
        height: 34px !important;
    }
    .user-menu .dropdown {
        position: absolute !important;
        right: -36px !important;
        max-width: calc(100vw - 24px) !important;
        z-index: 99998 !important;
    }

    .main-nav {
        display: none !important;
    }
    .mobile-toggle {
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 34px !important;
        height: 34px !important;
        border-radius: 9px;
        background: rgba(255, 255, 255, 0.05);
        border: 1px solid rgba(255, 255, 255, 0.08);
        color: var(--text);
        cursor: pointer;
    }
    .mobile-toggle:active {
        background: rgba(255, 255, 255, 0.1);
        transform: scale(0.95);
    }

    /* Bottom Nav becomes active */
    .mobile-bottom-nav {
        display: flex;
    }

    /* Guest Header: Hide Register text button to prevent header wrap */
    .header-reg-btn {
        display: none !important;
    }

    /* Modals & Dropdowns Responsive Width */
    .notif-dropdown {
        position: fixed !important;
        top: calc(var(--mb-header-height) + var(--safe-area-top) + 8px) !important;
        left: 12px !important;
        right: 12px !important;
        width: auto !important;
        max-width: calc(100vw - 24px) !important;
        transform-origin: top center !important;
        z-index: 99998 !important;
    }
    .login-modal {
        width: calc(100% - 24px);
        max-width: 380px;
        padding: 22px 18px;
        border-radius: 20px;
    }

    /* Map Uploader Mobile Restriction */
    #mapUploadForm {
        display: none !important;
    }
    .mobile-upload-blocked {
        display: flex !important;
    }

    /* Home Layout & Sidebar Widgets */
    .home-layout {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .sidebar {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }
    .discord-widget-frame {
        width: 100% !important;
    }
    .discord-widget-frame iframe {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Categories on Mobile */
    .category-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .category-card {
        grid-template-columns: 36px 1fr;
        gap: 12px;
        padding: 12px;
        align-items: center;
    }
    .category-card .card-stats {
        display: none;
    }
    .category-card .card-latest {
        display: none;
    }
    .card-info h3 {
        font-size: 0.92rem;
    }
    .card-info p {
        font-size: 0.78rem;
        display: -webkit-box;
        -webkit-line-clamp: 1;
        line-clamp: 1;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    /* Topic Lists / Category View */
    .topics-header {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }
    .topics-header > div {
        display: flex;
        gap: 8px;
    }
    .topics-header input[type="text"],
    #topicFilter {
        flex: 1;
        width: 100%;
    }
    .topic-row {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 12px;
    }
    .topic-stats {
        display: none;
    }
    .topic-last-post {
        display: none;
    }
    .topic-title {
        font-size: 0.94rem;
        line-height: 1.4;
    }
    .topic-meta {
        font-size: 0.74rem;
    }

    /* Topic Posts Feed Cards */
    .post {
        display: flex;
        flex-direction: column;
        border-radius: 12px;
        margin-bottom: 12px;
        background: var(--panel);
        border: 1px solid var(--line);
    }
    .post-sidebar {
        width: 100%;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        gap: 10px;
        padding: 10px 14px;
        border-right: none;
        border-bottom: 1px solid var(--line-soft);
        background: rgba(255, 255, 255, 0.02);
        text-align: left;
    }
    .post-avatar {
        width: 38px;
        height: 38px;
        flex-shrink: 0;
    }
    .post-author {
        display: flex;
        flex-direction: column;
        gap: 2px;
        flex: 1;
        min-width: 0;
    }
    .post-username {
        font-size: 0.88rem;
        font-weight: 700;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .post-user-stats {
        display: none !important;
    }
    .trophy-badge {
        display: none !important;
    }
    .post-content {
        padding: 14px;
    }
    .post-timestamp {
        font-size: 0.74rem;
        margin-bottom: 8px;
    }
    .post-body {
        font-size: 0.92rem;
        line-height: 1.65;
        word-break: break-word;
    }
    .post-body img {
        max-width: 100% !important;
        height: auto !important;
        border-radius: 8px;
    }
    .post-body pre,
    .post-body code {
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        font-size: 0.82rem;
    }
    .post-reactions {
        display: flex;
        gap: 8px;
        margin-top: 12px;
        flex-wrap: wrap;
    }
    .react-btn {
        min-height: 40px;
        min-width: 44px;
        padding: 6px 14px;
        font-size: 0.85rem;
        border-radius: 8px;
    }

    /* BBCode Editor Toolbar */
    .editor-toolbar {
        display: flex;
        align-items: center;
        gap: 6px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding: 8px;
        border-radius: 8px 8px 0 0;
        background: var(--raised);
        white-space: nowrap;
    }
    .editor-toolbar::-webkit-scrollbar {
        display: none;
    }
    .editor-toolbar button {
        min-width: 38px;
        height: 38px;
        padding: 0 10px;
        border-radius: 6px;
        font-size: 0.88rem;
    }
    .editor-toolbar-sep {
        height: 20px;
        margin: 0 2px;
    }

    /* Stats Tabs & Content */
    .stats-tabs {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        flex-wrap: nowrap;
        padding: 6px;
        gap: 6px;
        border-radius: 10px;
    }
    .stats-tabs::-webkit-scrollbar {
        display: none;
    }
    .stab {
        flex-shrink: 0;
        white-space: nowrap;
        padding: 9px 16px;
        font-size: 13px;
        border-radius: 7px;
    }
    .stats-grid-2col {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .stats-hero {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
        padding: 16px;
    }
    .stats-hero-right {
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        justify-content: flex-start;
    }

    /* Data Tables on Mobile - zero negative margins */
    .table-wrap,
    .members-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        border-radius: 0;
    }

    /* Members Grid & Staff */
    .members-grid {
        grid-template-columns: 1fr;
    }
    .staff-grid {
        grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
        gap: 10px;
    }

    /* Profile Page Header */
    .profile-banner {
        height: 160px;
    }
    .profile-header {
        flex-direction: column;
        text-align: center;
        align-items: center;
        padding: 0 14px 16px;
    }
    .profile-avatar-wrap {
        margin-top: -50px;
    }
    .profile-info {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    .profile-quick-stats {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 8px;
        margin-top: 14px;
    }
    .pqs-item {
        padding: 8px 4px;
    }
    .pqs-item strong {
        font-size: 0.95rem;
    }
    .profile-grid-2 {
        grid-template-columns: 1fr;
    }

    /* Shoutbox Mobile Layout */
    .shoutbox-messages {
        height: 250px;
        -webkit-overflow-scrolling: touch;
        padding: 8px;
    }
    .shoutbox-input {
        padding: 8px;
    }
    .shoutbox-input input {
        height: 40px;
        border-radius: 8px;
    }
    .shoutbox-input button {
        height: 40px;
        padding: 0 16px;
    }

    /* Footer Mobile Optimization */
    .footer-stats-grid {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 16px 14px 0;
    }
    .footer-inner {
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
        padding: 18px 14px 20px;
        gap: 14px;
    }
    .footer-links {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
    }

    /* Page Title & Breadcrumb on Mobile */
    .page-title {
        font-size: clamp(1.25rem, 5vw, 1.7rem) !important;
        word-break: break-word;
    }
    .breadcrumb {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 4px 6px;
        font-size: 0.76rem;
    }

    /* Reply Box & Forms on Mobile */
    .reply-box,
    .reply-login {
        padding: 14px;
        border-radius: 12px;
    }
    .reply-box .form-actions {
        display: flex;
        margin-top: 10px;
    }
    .reply-box .form-actions .btn {
        width: 100%;
        justify-content: center;
        padding: 12px;
        font-size: 0.95rem;
    }

    /* Messages Inbox Mobile Card Transformation */
    .messages-inbox-table thead {
        display: none;
    }
    .messages-inbox-table,
    .messages-inbox-table tbody,
    .messages-inbox-table tr,
    .messages-inbox-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    .messages-inbox-table tr {
        background: var(--panel);
        border: 1px solid var(--line);
        border-radius: 12px;
        margin-bottom: 10px;
        padding: 12px 14px;
        position: relative;
        cursor: pointer;
        transition: border-color 0.15s;
    }
    .messages-inbox-table tr:hover {
        border-color: var(--accent-bright);
    }
    .messages-inbox-table td {
        padding: 2px 0;
        white-space: normal;
        border: none;
    }
    .messages-inbox-table td:nth-child(1) {
        font-weight: 700;
        color: var(--accent-bright);
        font-size: 0.85rem;
    }
    .messages-inbox-table td:nth-child(2) {
        font-size: 0.95rem;
        font-weight: 700;
    }
    .messages-inbox-table td:nth-child(3) {
        font-size: 0.82rem;
        color: var(--muted);
        margin-top: 3px;
    }
    .messages-inbox-table td:nth-child(4) {
        position: absolute;
        top: 12px;
        right: 14px;
        font-size: 0.72rem;
        color: var(--muted);
    }

    /* Input iOS 16px Auto-Zoom Fix */
    input[type="text"],
    input[type="password"],
    input[type="email"],
    input[type="search"],
    input[type="number"],
    select,
    textarea {
        font-size: 16px !important;
    }
}

/* ========= SMALL PHONE TWEAKS (Under 400px) ========= */
@media (max-width: 400px) {
    .profile-quick-stats {
        grid-template-columns: repeat(2, 1fr);
    }
    .logo-text {
        font-size: 1.3rem;
    }
    .header-inner {
        padding: 0 10px;
    }
    .btn {
        padding: 8px 14px;
    }
}

/* ==========================================================================
   GLOBAL MAIL SENDING LOADER OVERLAY
   Liquid glassmorphism, animated envelope, progress shimmer, and click-blocker
   ========================================================================== */
.mail-loader-overlay {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.3s;
}

.mail-loader-overlay.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.mail-loader-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(5, 7, 11, 0.85);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
}

.mail-loader-container {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 440px;
    margin: 0 20px;
}

.mail-loader-card {
    background: linear-gradient(160deg, rgba(24, 29, 39, 0.96), rgba(13, 16, 23, 0.98));
    border: 1px solid rgba(204, 0, 68, 0.38);
    border-radius: 20px;
    padding: 38px 28px 28px;
    text-align: center;
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.8),
                0 0 50px rgba(204, 0, 68, 0.22),
                inset 0 1px 1px rgba(255, 255, 255, 0.15);
    transform: scale(0.92) translateY(10px);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.mail-loader-overlay.active .mail-loader-card {
    transform: scale(1) translateY(0);
}

.mail-loader-visual {
    position: relative;
    width: 88px;
    height: 88px;
    margin: 0 auto 22px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.mail-loader-glow {
    position: absolute;
    inset: -12px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(204, 0, 68, 0.38), transparent 70%);
    animation: mailPulseGlow 2.4s ease-in-out infinite;
}

.mail-loader-orbit {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px dashed rgba(204, 0, 68, 0.55);
    animation: mailOrbitRotate 7s linear infinite;
}

.mail-loader-icon-wrap {
    position: relative;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(153, 0, 51, 0.45), rgba(20, 24, 32, 0.92));
    border: 1.5px solid rgba(204, 0, 68, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ff5c7c;
    box-shadow: 0 0 24px rgba(204, 0, 68, 0.35);
}

.mail-loader-icon {
    width: 28px;
    height: 28px;
    color: #ffffff;
    animation: mailIconHover 2.2s ease-in-out infinite;
}

.mail-loader-badge-ping {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: #2fc969;
    box-shadow: 0 0 10px #2fc969;
    animation: mailPing 1.6s cubic-bezier(0, 0, 0.2, 1) infinite;
}

.mail-loader-title {
    margin: 0 0 8px;
    font-size: 1.25rem;
    font-weight: 700;
    color: #ffffff;
    letter-spacing: -0.01em;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
}

.mail-loader-desc {
    margin: 0 0 22px;
    font-size: 0.88rem;
    color: var(--muted, #929aa8);
    line-height: 1.5;
}

.mail-loader-progress-track {
    width: 100%;
    max-width: 280px;
    height: 5px;
    margin: 0 auto 20px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 999px;
    overflow: hidden;
    position: relative;
}

.mail-loader-progress-bar {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 48%;
    background: linear-gradient(90deg, transparent, #cc0044, #ff3366, #ff758c, transparent);
    border-radius: 999px;
    animation: mailBarShimmer 1.5s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

.mail-loader-meta {
    display: flex;
    justify-content: center;
}

.mail-loader-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 999px;
    font-size: 0.78rem;
    color: #a6adb9;
}

.mail-loader-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #f2c94c;
    box-shadow: 0 0 8px #f2c94c;
    animation: mailDotBlink 1.2s infinite ease-in-out;
}

.mail-loader-timeout-dismiss {
    display: block;
    margin: 18px auto 0;
    background: none;
    border: none;
    color: var(--muted, #929aa8);
    font-size: 0.78rem;
    text-decoration: underline;
    cursor: pointer;
    transition: color 0.15s;
}

.mail-loader-timeout-dismiss:hover {
    color: #ffffff;
}

/* Button sending state when mail form is submitted */
.btn.is-mail-sending,
button.is-mail-sending {
    pointer-events: none !important;
    opacity: 0.65 !important;
    cursor: wait !important;
}

@keyframes mailPulseGlow {
    0%, 100% {
        transform: scale(0.95);
        opacity: 0.55;
    }
    50% {
        transform: scale(1.18);
        opacity: 0.85;
    }
}

@keyframes mailOrbitRotate {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

@keyframes mailIconHover {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-3px);
    }
}

@keyframes mailPing {
    0% {
        transform: scale(0.9);
        opacity: 0.9;
    }
    70%, 100% {
        transform: scale(1.9);
        opacity: 0;
    }
}

@keyframes mailBarShimmer {
    0% {
        left: -50%;
    }
    100% {
        left: 120%;
    }
}

@keyframes mailDotBlink {
    0%, 100% {
        opacity: 0.4;
    }
    50% {
        opacity: 1;
    }
}


