/* ==========================================================
   Nostalgic Server - tema "Guilda dos Aventureiros" (azul)
   Visual de RPG clássico: pedra azul-marinho, aço, ouro envelhecido,
   janelas com rebites, tochas, sprites.

   >>> TROCAR O FUNDO DO SITE: edite a linha --page-bg abaixo. <<<
   Ex.: --page-bg: url(img/background/qualquer-imagem.jpg);
   O conteúdo fica em painéis opacos, então qualquer arte funciona.
   ========================================================== */

:root {
    --page-bg: none;

    --ink-0:     #070b13;
    --ink-1:     #0a111c;
    --wood:      #16233a;
    --wood-hi:   #243a5c;
    --bronze:    #4f7fb5;
    --gold:      #e6b450;
    --gold-hi:   #ffe08a;
    --parch:     #dfe9f5;
    --parch-dim: #9fb3cc;
    --azure:     #2f6fcf;
    --azure-hi:  #5aa2ff;
    --hp:        #4fbf5f;
    --mana:      #4a86e8;
    --bad:       #e5503f;

    --f-logo:  'Cinzel Decorative', 'Cinzel', Georgia, serif;
    --f-title: 'Cinzel', Georgia, serif;
    --f-body:  'Alegreya Sans', 'Segoe UI', Tahoma, sans-serif;

    --noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .22 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    --bricks: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='48'%3E%3Cpath d='M0 .5H96M0 24.5H96M.5 0V24M48.5 24V48' stroke='%23000' stroke-opacity='.42' fill='none'/%3E%3C/svg%3E");
}

/* ---------- Base (compatível com as páginas internas) ---------- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    color: #e0e0e0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    background:
        var(--page-bg),
        var(--noise),
        radial-gradient(ellipse at 50% 0%, #13233f 0%, #0a111c 55%, #04070d 100%);
    background-color: #070b13;
    background-attachment: fixed;
    cursor: url("/img/cursor.png"), url("/img/cursor.png"), auto;
}

input{cursor: url("/img/spe9.cur"), url("/img/spe9.cur"), auto;}
a:hover {cursor: url("/img/spe9.cur"), url("/img/spe9.cur"), auto; color: #963;}
button:hover {cursor: url("/img/spe9.cur"), url("/img/spe9.cur"), auto; color: #963;}

a { color: var(--gold); }
a:hover { color: var(--gold-hi); }
.main-content { flex: 1; }
.container { max-width: 1200px; margin: 30px auto; padding: 0 20px; flex: 1; }

* { scrollbar-width: thin; scrollbar-color: var(--bronze) var(--ink-1); }
::-webkit-scrollbar { width: 12px; }
::-webkit-scrollbar-track { background: var(--ink-1); }
::-webkit-scrollbar-thumb { background-color: var(--bronze); border-radius: 20px; border: 3px solid var(--ink-1); }
:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 2px; }

/* Moldura para as páginas internas (as da home não usam) */
.ns-page {
    max-width: 1240px;
    background: rgba(12,7,4,.86);
    border: 2px solid #03060b;
    border-radius: 4px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 0 0 4px #091221, inset 0 0 0 5px rgba(230,180,80,.3), 0 14px 40px rgba(0,0,0,.65);
    padding: 28px 26px !important;
}

/* ---------- Compatibilidade: botões antigos das páginas internas ---------- */
.btn {
    padding: 10px 20px; border-radius: 3px; font-weight: 700; text-decoration: none;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    border: 1px solid #03060b; cursor: pointer; font-size: 14px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.3), inset 0 -2px 0 rgba(0,0,0,.35), 0 2px 0 #03060b;
    transition: filter .15s ease, transform .1s ease;
}
.btn:hover { filter: brightness(1.15); text-decoration: none; }
.btn:active { transform: translateY(1px); }
.btn-primary   { background: linear-gradient(#f1c660, #a87a2c); color: #2a1604; }
.btn-secondary { background: linear-gradient(#4f93ee, #1f56b0); color: #fff; }
.btn-warning   { background: linear-gradient(#e6b450, #4f7fb5); color: #2a1604; }
.btn-account   { background: linear-gradient(#7a8fe0, #3b4a9a); color: #fff; }
.btn-logout    { background: linear-gradient(#52627a, #26344a); color: #e6eefa; }
.btn-primary:hover, .btn-warning:hover { color: #2a1604; }
.btn-secondary:hover, .btn-account:hover, .btn-logout:hover { color: #fff; }
.btn-small { padding: 6px 12px; font-size: 12px; }

.status-indicator { width: 10px; height: 10px; border-radius: 50%; background: #4CAF50; position: relative; animation: pulse 2s infinite; }
@keyframes pulse {
    0%   { box-shadow: 0 0 0 0 rgba(76,175,80,.7); }
    70%  { box-shadow: 0 0 0 10px rgba(76,175,80,0); }
    100% { box-shadow: 0 0 0 0 rgba(76,175,80,0); }
}

/* ==========================================================
   Novo tema (prefixo ns-)
   ========================================================== */
.ns-wrap { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.ns-header, .ns-footer, .ns-home, .ns-hero, .ns-rates, .ns-admin { font-family: var(--f-body); }

/* ---------- Letreiro (masthead) ---------- */
.ns-mast {
    position: relative;
    background:
        radial-gradient(ellipse 320px 200px at 8% 20%, rgba(70,150,255,.30), transparent 70%),
        radial-gradient(ellipse 320px 200px at 92% 20%, rgba(70,150,255,.30), transparent 70%),
        var(--bricks), var(--noise),
        linear-gradient(#14213a, #0a111c);
    border-bottom: 3px solid #03060b;
    box-shadow: inset 0 -1px 0 var(--bronze);
}
.ns-mast .ns-wrap {
    display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 9%;
    min-height: 140px; padding-top: 14px; padding-bottom: 14px;
}

.ns-brand { display: flex; align-items: center; gap: 16px; text-decoration: none; position: relative; }
.ns-brand svg { filter: drop-shadow(0 4px 6px rgba(0,0,0,.8)); flex: none; }
.ns-brand__name {
    display: block;
    font: 900 clamp(1.9rem, 3.6vw, 2.9rem)/1 var(--f-logo);
    background: linear-gradient(#fff2b8 10%, #e6b450 50%, #4f7fb5 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 2px 0 #03060b) drop-shadow(0 0 14px rgba(70,150,255,.35));
}
.ns-brand__sub { display: block; margin-top: 6px; font: 600 .95rem var(--f-title); color: var(--parch-dim); letter-spacing: .12em; }

/* Tochas */
.ns-torch { position: absolute; top: 18px; width: 22px; height: 110px; pointer-events: none; }
.ns-brand .ns-torch { top: -14px; }
.ns-brand .ns-torch--l { left: -36px; } .ns-brand .ns-torch--r { right: -36px; }
.ns-torch::before { /* cabo */
    content: ""; position: absolute; left: 8px; bottom: 0; width: 7px; height: 62px;
    background: linear-gradient(90deg, #1b0f07, #5a3820, #1b0f07); border-radius: 2px;
}
.ns-torch::after { /* copa de ferro */
    content: ""; position: absolute; left: 3px; bottom: 52px; width: 17px; height: 12px;
    background: linear-gradient(#6d6d72, #2a2a2e); border-radius: 2px 2px 6px 6px; border: 1px solid #03060b;
}
.ns-flame {
    position: absolute; left: 1px; bottom: 60px; width: 21px; height: 40px;
    background: radial-gradient(ellipse at 50% 75%, #f2fcff 0 18%, #9fe0ff 38%, #3b8cff 62%, rgba(30,90,255,0) 74%);
    border-radius: 50% 50% 48% 48% / 68% 68% 32% 32%;
    filter: blur(.4px) drop-shadow(0 0 10px rgba(90,170,255,.9));
    transform-origin: 50% 100%;
    animation: ns-flicker 1.3s ease-in-out infinite alternate;
}
.ns-torch--r .ns-flame { animation-delay: -.6s; }
@keyframes ns-flicker {
    0%   { transform: scale(1, 1) rotate(-2deg); opacity: .92; }
    35%  { transform: scale(.94, 1.08) rotate(2deg); opacity: 1; }
    70%  { transform: scale(1.04, .95) rotate(-1deg); opacity: .88; }
    100% { transform: scale(.97, 1.06) rotate(1.5deg); opacity: 1; }
}

/* Arte no canto esquerdo, marca no centro, status à direita */
.ns-mast__art { grid-column: 1; justify-self: start; align-self: end; height: 150px; width: auto; margin: -14px 0 -10px; filter: drop-shadow(0 6px 8px rgba(0,0,0,.65)); pointer-events: none; }
.ns-mast .ns-brand  { grid-column: 2; justify-self: center; }
.ns-mast .ns-status { grid-column: 3; }

/* Placa de status (direita) */
.ns-status {
    justify-self: end; position: relative; z-index: 1; text-decoration: none;
    display: flex; align-items: center; gap: 14px;
    background: linear-gradient(#0e1828, #080e18);
    border: 2px solid #03060b; border-radius: 4px;
    box-shadow: inset 0 0 0 1px var(--bronze), 0 4px 10px rgba(0,0,0,.6);
    padding: 12px 20px 12px 16px; min-width: 210px;
    transition: filter .15s ease;
}
.ns-status:hover { filter: brightness(1.15); }
.ns-orb {
    width: 34px; height: 34px; border-radius: 50%; flex: none; position: relative;
    background: radial-gradient(circle at 35% 30%, #fff 0 8%, #8b8378 24%, #3a342c 70%);
    box-shadow: inset 0 -3px 6px rgba(0,0,0,.6), 0 0 0 2px #03060b;
}
.ns-orb.is-on  { background: radial-gradient(circle at 35% 30%, #eaffea 0 8%, #5fe07a 28%, #1e7a35 75%); box-shadow: inset 0 -3px 6px rgba(0,0,0,.45), 0 0 0 2px #03060b, 0 0 16px rgba(79,191,95,.75); }
.ns-orb.is-off { background: radial-gradient(circle at 35% 30%, #ffe4df 0 8%, #f0705f 28%, #8f1f17 75%); box-shadow: inset 0 -3px 6px rgba(0,0,0,.45), 0 0 0 2px #03060b, 0 0 14px rgba(229,80,63,.6); }
.ns-status__txt strong { display: block; font: 700 1.05rem var(--f-title); color: var(--parch); }
.ns-status__txt span { color: var(--parch-dim); font-size: .98rem; }
.ns-status__txt b { color: var(--gold-hi); }

/* ---------- Barra de navegação ---------- */
.ns-nav-bar {
    position: sticky; top: 0; z-index: 1000;
    background: var(--noise), linear-gradient(#2c4a74, #16233a 55%, #0d1626);
    border-bottom: 3px solid #03060b;
    box-shadow: inset 0 1px 0 rgba(170,210,255,.35), 0 6px 18px rgba(0,0,0,.6);
}
.ns-nav-bar .ns-wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 54px; }
.ns-nav > ul { list-style: none; display: flex; align-items: center; gap: 4px; }
.ns-nav a, .ns-nav button.ns-nav__link {
    display: flex; align-items: center; gap: 9px; padding: 9px 14px;
    font: 700 .98rem var(--f-title); color: var(--parch); text-decoration: none;
    background: none; border: 1px solid transparent; border-radius: 3px; cursor: pointer;
    transition: background .12s ease, color .12s ease;
    text-shadow: 0 1px 0 #000;
}
.ns-nav i.ns-ico {
    width: 26px; height: 26px; display: grid; place-items: center; font-size: .8rem; color: var(--gold);
    background: linear-gradient(#060a12, #0e1828); border: 1px solid #03060b; border-radius: 3px;
    box-shadow: inset 0 0 0 1px rgba(79,127,181,.65);
}
.ns-nav a:hover, .ns-nav button.ns-nav__link:hover { background: rgba(170,210,255,.1); color: var(--gold-hi); }
.ns-nav a.is-active {
    color: var(--gold-hi); background: linear-gradient(#150d07, #14213a);
    border-color: #03060b; box-shadow: inset 0 2px 5px rgba(0,0,0,.7), 0 1px 0 rgba(170,210,255,.2);
}
.ns-has-sub { position: relative; }
.ns-sub {
    position: absolute; left: 0; top: 100%; min-width: 210px; list-style: none; display: none; flex-direction: column; align-items: stretch;
    background: linear-gradient(#16233a, #0e1828); border: 2px solid #03060b; box-shadow: inset 0 0 0 1px var(--bronze), 0 14px 28px rgba(0,0,0,.7); padding: 6px; gap: 2px;
}
.ns-has-sub:hover > .ns-sub, .ns-has-sub:focus-within > .ns-sub { display: flex; }
/* menus suspensos do cabeçalho: aberto por toque, seta, grupo da página atual, rótulos sem quebra */
.ns-has-sub.is-open > .ns-sub { display: flex; }
.ns-chev { font-size: .65rem; transition: transform .15s ease; }
.ns-has-sub:hover .ns-chev, .ns-has-sub.is-open .ns-chev { transform: rotate(180deg); }
.ns-nav button.ns-nav__link.is-active {
    color: var(--gold-hi); background: linear-gradient(#150d07, #14213a);
    border-color: #03060b; box-shadow: inset 0 2px 5px rgba(0,0,0,.7), 0 1px 0 rgba(170,210,255,.2);
}
.ns-sub a { white-space: nowrap; }

.ns-acct { display: flex; align-items: center; gap: 10px; color: var(--parch-dim); font-size: .98rem; }
.ns-acct__name { color: var(--gold-hi); font-weight: 700; }
.ns-acct__tag.is-premium { color: var(--hp); font-weight: 700; }

.ns-burger { display: none; background: #0e1828; border: 1px solid var(--bronze); color: var(--gold); font-size: 1.15rem; padding: 8px 12px; cursor: pointer; border-radius: 3px; }

/* ---------- Botões ---------- */
.ns-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    padding: 13px 28px; font: 700 1.05rem var(--f-title); text-decoration: none; cursor: pointer;
    border: 2px solid #03060b; border-radius: 4px;
    text-shadow: 0 1px 0 rgba(255,255,255,.25);
    box-shadow: inset 0 2px 0 rgba(255,255,255,.4), inset 0 -3px 0 rgba(0,0,0,.35), 0 4px 0 #03060b, 0 8px 14px rgba(0,0,0,.5);
    transition: filter .15s ease, transform .08s ease;
}
.ns-btn:hover { filter: brightness(1.12); }
.ns-btn:active { transform: translateY(3px); box-shadow: inset 0 2px 0 rgba(255,255,255,.3), inset 0 -2px 0 rgba(0,0,0,.35), 0 1px 0 #03060b; }
.ns-btn--gold  { background: linear-gradient(#ffe08a, #e6b450 45%, #a87a2c); color: #2a1604; }
.ns-btn--gold:hover { color: #2a1604; }
.ns-btn--blue { background: linear-gradient(#6db3ff, #2f74d6 45%, #17458f); color: #f2f8ff; text-shadow: 0 1px 0 #000; }
.ns-btn--blue:hover { color: #fff; }
.ns-btn--block { width: 100%; }

/* ---------- Janela (painel) ---------- */
.ns-win {
    position: relative;
    background: var(--noise), linear-gradient(#16233a, #0e1828);
    border: 2px solid #03060b; border-radius: 4px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 0 0 4px #091221, inset 0 0 0 5px rgba(230,180,80,.28), 0 10px 24px rgba(0,0,0,.6);
}
.ns-win::before { /* rebites nos 4 cantos */
    content: ""; position: absolute; inset: 7px; pointer-events: none; z-index: 2;
    background:
        radial-gradient(circle, #ffe9a8 0 1.4px, #4f7fb5 2.2px, rgba(0,0,0,.7) 3.6px, transparent 4.2px) 0 0 / 10px 10px no-repeat,
        radial-gradient(circle, #ffe9a8 0 1.4px, #4f7fb5 2.2px, rgba(0,0,0,.7) 3.6px, transparent 4.2px) 100% 0 / 10px 10px no-repeat,
        radial-gradient(circle, #ffe9a8 0 1.4px, #4f7fb5 2.2px, rgba(0,0,0,.7) 3.6px, transparent 4.2px) 0 100% / 10px 10px no-repeat,
        radial-gradient(circle, #ffe9a8 0 1.4px, #4f7fb5 2.2px, rgba(0,0,0,.7) 3.6px, transparent 4.2px) 100% 100% / 10px 10px no-repeat;
}
.ns-win__title {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    margin: 6px 6px 0; padding: 9px 22px;
    font: 700 1.02rem var(--f-title); letter-spacing: .04em; color: var(--gold-hi);
    background: linear-gradient(#3f84e6, #2760b8 55%, #173f82);
    border: 1px solid #03060b; border-radius: 2px;
    box-shadow: inset 0 1px 0 rgba(190,225,255,.45), inset 0 -2px 0 rgba(0,0,0,.35);
    text-shadow: 0 1px 0 #000, 0 0 8px rgba(0,0,0,.6);
}
.ns-win__title > span::before { content: "\25C6"; color: var(--gold); margin-right: 9px; font-size: .7em; vertical-align: .12em; }
.ns-win__title a { font: 700 .85rem var(--f-body); color: var(--parch); text-decoration: none; text-shadow: none; border-bottom: 1px dotted var(--parch-dim); }
.ns-win__title a:hover { color: #fff; }
.ns-win__body { padding: 16px 18px 18px; }

/* ---------- Hero (cena) ---------- */
.ns-hero {
    position: relative; overflow: hidden; margin-bottom: 26px; min-height: 480px;
    display: flex; flex-direction: column; justify-content: space-between;
    border: 2px solid #03060b; border-radius: 4px;
    background:
        radial-gradient(ellipse 360px 280px at 5% 28%, rgba(70,150,255,.38), transparent 70%),
        radial-gradient(ellipse 360px 280px at 95% 28%, rgba(70,150,255,.38), transparent 70%),
        radial-gradient(ellipse at 50% 55%, rgba(0,0,0,.0) 30%, rgba(0,0,0,.7) 100%),
        var(--bricks), var(--noise),
        linear-gradient(#12213b, #0a1424);
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 0 110px rgba(0,0,0,.85), 0 14px 34px rgba(0,0,0,.65);
}
.ns-hero .ns-torch { top: 26px; }
.ns-hero .ns-torch--l { left: 30px; } .ns-hero .ns-torch--r { right: 30px; }
.ns-hero__text { position: relative; z-index: 3; text-align: center; padding: 44px 90px 0; }
.ns-hero__title {
    font: 900 clamp(2rem, 5vw, 3.4rem)/1.1 var(--f-logo);
    background: linear-gradient(#fff2b8 5%, #e6b450 55%, #4f7fb5 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 3px 0 #03060b) drop-shadow(0 0 18px rgba(70,150,255,.3));
}
.ns-hero__lead { max-width: 36em; margin: 14px auto 10px; font-size: 1.28rem; line-height: 1.5; color: var(--parch); text-shadow: 0 2px 6px #000; }
.ns-hero__cta { display: flex; gap: 7px; justify-content: center; flex-wrap: wrap; }

.ns-lineup { position: relative; z-index: 2; display: flex; justify-content: center; align-items: flex-end; gap: 2px; padding: 0 16px; margin-bottom: 20px; }
.ns-mon { position: relative; display: block; text-decoration: none; }
.ns-mon img { display: block; width: 128px; height: 128px; image-rendering: pixelated; position: relative; z-index: 1; transition: transform .15s ease; }
.ns-mon::after { /* sombra no chão */
    content: ""; position: absolute; left: 18%; right: 18%; bottom: 8px; height: 14px;
    background: radial-gradient(ellipse, rgba(0,0,0,.75), transparent 70%);
}
.ns-mon:hover img { transform: translateY(-8px); }
.ns-mon::before { /* nome ao passar o mouse */
    content: attr(data-name); position: absolute; left: 50%; bottom: 100%; transform: translateX(-50%);
    background: #070b13; color: var(--gold-hi); border: 1px solid var(--bronze); border-radius: 2px;
    font: 700 .82rem var(--f-title); padding: 3px 8px; white-space: nowrap; opacity: 0; pointer-events: none; z-index: 5; transition: opacity .12s ease;
}
.ns-mon:hover::before { opacity: 1; }
.ns-floor {
    position: relative; z-index: 1; height: 38px; margin-top: -26px;
    background: var(--bricks), var(--noise), linear-gradient(#34507a, #16233a 40%, #0a1220);
    border-top: 3px solid #6b8fbf; box-shadow: 0 -6px 14px rgba(0,0,0,.55);
}

/* ---------- Slots de rates (inventário) ---------- */
.ns-rates { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin-bottom: 26px; }
.ns-slot {
    text-align: center; padding: 14px 8px 12px;
    background: var(--noise), linear-gradient(#060a12, #0f1a2b);
    border: 2px solid #03060b; border-radius: 4px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 6px 14px rgba(0,0,0,.7);
}
.ns-slot i { display: block; font-size: 1.3rem; color: var(--gold); margin-bottom: 4px; filter: drop-shadow(0 2px 0 #000); }
.ns-slot b { display: block; font: 900 1.9rem/1.1 var(--f-logo); color: var(--gold-hi); text-shadow: 0 2px 0 #000, 0 0 12px rgba(70,150,255,.35); }
.ns-slot span { display: block; margin-top: 2px; font: 600 .95rem var(--f-title); color: var(--parch-dim); }

/* ---------- Layout da home ---------- */
.ns-home { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 26px; align-items: start; }
.ns-col { display: flex; flex-direction: column; gap: 26px; min-width: 0; }

/* Notícias */
.ns-news { list-style: none; }
.ns-news li { display: grid; grid-template-columns: 92px 1fr; gap: 18px; padding: 16px 0; }
.ns-news li + li { border-top: 1px dashed rgba(79,127,181,.45); }
.ns-news time {
    align-self: start; text-align: center; padding: 6px 4px; font: 700 .9rem/1.25 var(--f-title);
    color: #10243f; background: linear-gradient(#e8f1fb, #b9cde6); border: 1px solid #03060b; border-radius: 2px;
    box-shadow: inset 0 0 0 1px rgba(79,127,181,.6), 0 2px 0 #03060b;
}
.ns-news h3 { font: 700 1.3rem/1.2 var(--f-title); color: var(--gold-hi); margin-bottom: 6px; }
.ns-news p { color: var(--parch); font-size: 1.08rem; line-height: 1.55; max-width: 62ch; }

/* Mídia dentro das notícias */
.ns-news__main { min-width: 0; }
.ns-news__img { display: block; margin: 4px 0 12px; max-width: 560px; }
.ns-news__img img { display: block; width: 100%; height: auto; border: 2px solid #03060b; border-radius: 3px; box-shadow: 0 0 0 1px var(--bronze), 0 6px 14px rgba(0,0,0,.55); }
.ns-video { position: relative; max-width: 640px; aspect-ratio: 16 / 9; margin: 4px 0 12px; border: 2px solid #03060b; border-radius: 3px; box-shadow: 0 0 0 1px var(--bronze), 0 6px 14px rgba(0,0,0,.55); background: #000; }
.ns-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ns-videofile { display: block; width: 100%; max-width: 640px; margin: 4px 0 12px; border: 2px solid #03060b; border-radius: 3px; box-shadow: 0 0 0 1px var(--bronze); background: #000; }
.ns-news p a { color: var(--gold-hi); word-break: break-all; }

/* Paginação */
.ns-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; margin-top: 18px; padding-top: 16px; border-top: 1px dashed rgba(79,127,181,.45); }
.ns-pager a, .ns-pager span { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; padding: 0 12px; font: 700 1rem var(--f-title); text-decoration: none; border-radius: 3px; }
.ns-pager a { color: var(--parch); background: linear-gradient(#1d3556, #0e1828); border: 2px solid #03060b; box-shadow: inset 0 0 0 1px var(--bronze); }
.ns-pager a:hover { color: var(--gold-hi); filter: brightness(1.2); }
.ns-pager .is-current { color: #2a1604; background: linear-gradient(#ffe08a, #e6b450 50%, #a87a2c); border: 2px solid #03060b; box-shadow: inset 0 1px 0 rgba(255,255,255,.4); }
.ns-pager .is-off { color: var(--parch-dim); opacity: .45; border: 2px solid transparent; }
.ns-pager__gap { color: var(--parch-dim); min-width: 0 !important; padding: 0 2px !important; }

/* Painel de notícias (admin) */
.ns-admin__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 26px; align-items: start; }
.ns-form textarea, .ns-form input[type=number], .ns-form input[type=file] {
    width: 100%; padding: 10px 12px; margin-bottom: 8px; font: 500 1.05rem var(--f-body); color: var(--parch);
    background: #070b13; border: 2px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px var(--bronze), inset 0 3px 6px rgba(0,0,0,.6);
}
.ns-form textarea { resize: vertical; min-height: 160px; line-height: 1.5; }
.ns-form input[type=file] { padding: 8px; cursor: pointer; }
.ns-form input[type=file]::file-selector-button { margin-right: 12px; padding: 6px 14px; font: 700 .95rem var(--f-title); color: #2a1604; background: linear-gradient(#ffe08a, #e6b450 50%, #a87a2c); border: 1px solid #03060b; border-radius: 3px; cursor: pointer; }
.ns-hint { color: var(--parch-dim); font-size: .93rem; line-height: 1.4; margin: 0 0 14px; }
.ns-current { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 8px; }
.ns-current img { max-width: 200px; max-height: 120px; border: 2px solid #03060b; border-radius: 3px; box-shadow: 0 0 0 1px var(--bronze); }
.ns-form label.ns-check { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font: 500 1rem var(--f-body); color: var(--parch); cursor: pointer; }
.ns-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 8px; }
.ns-btn--sm { padding: 6px 12px; font-size: .88rem; border-radius: 3px; box-shadow: inset 0 1px 0 rgba(255,255,255,.35), inset 0 -2px 0 rgba(0,0,0,.35), 0 2px 0 #03060b; }
.ns-btn--danger { background: linear-gradient(#b8453a, #7d231b); color: #ffeae6; text-shadow: 0 1px 0 #000; }
.ns-btn--danger:hover { color: #fff; }
.ns-link { color: var(--gold-hi); font-weight: 700; }
.ns-flash { margin-bottom: 20px; padding: 12px 16px; border-radius: 3px; border: 2px solid #03060b; font-size: 1.05rem; box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); }
.ns-flash.is-ok  { background: #0f2a1c; color: #a9f0c3; }
.ns-flash.is-err { background: #35120f; color: #ffc9c2; }
.ns-flash ul { margin: 6px 0 0 20px; }
.ns-code { margin: 10px 0; padding: 12px 14px; background: #070b13; border: 1px solid var(--bronze); border-radius: 3px; color: var(--gold-hi); font-family: Consolas, monospace; overflow-x: auto; }
.ns-admin code { background: #070b13; border: 1px solid var(--bronze); border-radius: 2px; padding: 1px 6px; color: var(--gold-hi); }
.ns-tablewrap { overflow-x: auto; }
.ns-table { width: 100%; border-collapse: collapse; font-size: 1.02rem; }
.ns-table th { text-align: left; font: 700 .95rem var(--f-title); color: var(--gold); padding: 8px 10px; border-bottom: 2px solid var(--bronze); }
.ns-table td { padding: 10px; border-bottom: 1px dashed rgba(79,127,181,.4); color: var(--parch); vertical-align: middle; }
.ns-table td i { color: var(--azure-hi); margin-right: 6px; }
.ns-right { text-align: right !important; }
.ns-rowactions { white-space: nowrap; }
.ns-inline { display: inline-block; margin-left: 6px; }
.ns-dim { color: var(--parch-dim); }

/* Login */
.ns-form label { display: block; font: 600 .92rem var(--f-title); color: var(--parch-dim); margin-bottom: 4px; }
.ns-form input[type=text], .ns-form input[type=password] {
    width: 100%; padding: 10px 12px; margin-bottom: 12px; font: 500 1.05rem var(--f-body); color: var(--parch);
    background: #070b13; border: 2px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px var(--bronze), inset 0 3px 6px rgba(0,0,0,.6);
}
.ns-form input:focus { outline: 2px solid var(--gold-hi); outline-offset: 1px; }
.ns-links { display: flex; justify-content: space-between; gap: 10px; margin-top: 12px; font-size: .98rem; }
.ns-links a { color: var(--parch-dim); }
.ns-links a:hover { color: var(--gold-hi); }
.ns-hello { color: var(--parch); font-size: 1.1rem; margin-bottom: 12px; }
.ns-hello b { color: var(--gold-hi); }
.ns-stack { display: flex; flex-direction: column; gap: 10px; }

/* Rankings */
.ns-rank { list-style: none; }
.ns-rank li { display: grid; grid-template-columns: 34px 44px 1fr auto; align-items: center; gap: 10px; padding: 9px 0; }
.ns-rank li + li { border-top: 1px dashed rgba(79,127,181,.45); }
.ns-rank__pos { font: 900 1.3rem var(--f-logo); color: var(--gold); text-align: center; text-shadow: 0 2px 0 #000; }
.ns-avatar { width: 44px; height: 44px; display: grid; place-items: center; color: var(--gold); font-size: 1.15rem; background: radial-gradient(circle at 50% 35%, #1d3556, #070b13); border: 2px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px var(--bronze); }
.ns-rank__name { display: block; color: var(--parch); font-weight: 700; text-decoration: none; font-size: 1.05rem; }
.ns-rank__name:hover { color: var(--gold-hi); }
.ns-rank__meta { color: var(--parch-dim); font-size: .95rem; }
.ns-rank__lvl { color: var(--hp); font-weight: 700; font-size: 1.02rem; }
.ns-rank--plain li { grid-template-columns: 1fr auto; }

.ns-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.ns-chips a { display: inline-block; padding: 4px 10px; color: var(--parch); font-weight: 700; text-decoration: none; background: #070b13; border: 1px solid var(--bronze); border-radius: 2px; }
.ns-chips a:hover { color: var(--gold-hi); border-color: var(--gold); }
.ns-empty { color: var(--parch-dim); font-size: 1.02rem; line-height: 1.5; }
.ns-empty a { color: var(--gold-hi); font-weight: 700; }

.ns-guilds { list-style: none; }
.ns-guilds li { display: grid; grid-template-columns: 38px 44px 1fr auto; align-items: center; gap: 12px; padding: 11px 0; }
.ns-guilds li + li { border-top: 1px dashed rgba(79,127,181,.45); }
.ns-guilds__name { display: block; color: var(--parch); font-weight: 700; font-size: 1.12rem; text-decoration: none; }
.ns-guilds__name:hover { color: var(--gold-hi); }
.ns-guilds__meta { color: var(--parch-dim); font-size: .98rem; }
.ns-guilds__score { color: var(--azure-hi); font-weight: 700; text-align: right; white-space: nowrap; }
.ns-guilds__score small { display: block; color: var(--parch-dim); font-weight: 500; font-size: .85rem; }

/* ---------- Rodapé ---------- */
.ns-footer { margin-top: 50px; background: var(--noise), linear-gradient(#0d1626, #070b13); border-top: 4px solid #03060b; box-shadow: inset 0 1px 0 var(--bronze); color: var(--parch-dim); }
.ns-footer__orn { text-align: center; color: var(--gold); letter-spacing: 12px; padding-top: 18px; font-size: .8rem; }
.ns-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; padding: 26px 0 30px; }
.ns-footer h4 { font: 700 1.05rem var(--f-title); color: var(--gold); margin-bottom: 12px; }
.ns-footer p { line-height: 1.55; max-width: 36ch; }
.ns-footer ul { list-style: none; }
.ns-footer li + li { margin-top: 8px; }
.ns-footer a { color: var(--parch-dim); text-decoration: none; }
.ns-footer a:hover { color: var(--gold-hi); }
.ns-footer__brand { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; font: 900 1.25rem var(--f-logo); color: var(--gold-hi); }
.ns-social { display: flex; gap: 10px; margin-top: 16px; }
.ns-social a { width: 38px; height: 38px; display: grid; place-items: center; color: var(--gold); background: #070b13; border: 2px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px var(--bronze); }
.ns-social a:hover { color: var(--gold-hi); filter: brightness(1.2); }
.ns-footer__stats { display: flex; gap: 28px; flex-wrap: wrap; justify-content: center; padding: 16px 0; border-top: 1px dashed rgba(79,127,181,.5); color: var(--parch); }
.ns-footer__stats i { color: var(--gold); margin-right: 6px; }
.ns-footer__legal { text-align: center; padding: 4px 0 26px; font-size: .92rem; }

/* ---------- Responsivo ---------- */
/* telas médias: sem espaço para a arte, então empilha o cabeçalho */
@media (max-width: 1180px) {
    .ns-mast .ns-wrap { display: flex; flex-direction: column; min-height: 0; gap: 12px; }
    .ns-mast .ns-brand, .ns-mast .ns-status { grid-column: auto; justify-self: auto; }
    .ns-mast__art { display: none; }
}
@media (max-width: 1020px) {
    .ns-admin__grid { grid-template-columns: 1fr; }
    .ns-home { grid-template-columns: 1fr; }
    .ns-rates { grid-template-columns: repeat(3, 1fr); }
    .ns-footer__grid { grid-template-columns: 1fr 1fr; }
    .ns-lineup .ns-mon:nth-child(n+6) { display: none; }
}
@media (max-width: 860px) {
    .ns-mast .ns-wrap { display: flex; flex-direction: column; min-height: 0; gap: 12px; }
    .ns-mast .ns-brand, .ns-mast .ns-status { grid-column: auto; justify-self: auto; }
    .ns-torch { display: none; }
    .ns-brand { padding: 0; }
    .ns-burger { display: block; }
    .ns-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #0d1626; border-bottom: 3px solid #03060b; padding: 8px 20px 14px; }
    .ns-nav.is-open { display: block; }
    .ns-nav > ul { flex-direction: column; align-items: stretch; }
    .ns-sub { position: static; display: flex; box-shadow: none; border: 0; background: transparent; padding: 0 0 0 16px; }
    .ns-hero__text { padding: 34px 20px 0; }
    .ns-mon img { width: 96px; height: 96px; }
    .ns-lineup .ns-mon:nth-child(n+5) { display: none; }
    .ns-news li { grid-template-columns: 1fr; gap: 8px; }
    .ns-news time { justify-self: start; padding: 4px 12px; }
    .ns-nav-bar .ns-wrap { flex-wrap: wrap; }
    .ns-acct { order: 3; width: 100%; justify-content: center; padding-bottom: 8px; }
}
@media (max-width: 560px) {
    .ns-rates { grid-template-columns: repeat(2, 1fr); }
    .ns-footer__grid { grid-template-columns: 1fr; }
    .ns-page { padding: 18px 12px !important; }
}
@media (prefers-reduced-motion: reduce) {
    .ns-flame, .status-indicator { animation: none; }
    .ns-mon img, .ns-btn, .btn { transition: none; }
    html { scroll-behavior: auto; }
}

/* ==========================================================
   Páginas de conta: login.php, register.php, lostaccount.php
   Reaproveitam os blocos da home (.ns-win, .ns-form, .ns-btn,
   .ns-flash) e só acrescentam o que a home não tinha.
   ========================================================== */
.ns-pagehead, .ns-auth { font-family: var(--f-body); }

/* Faixa de título: versão compacta do hero da home */
.ns-pagehead {
    position: relative; overflow: hidden; max-width: 1040px; margin: 0 auto 26px;
    padding: 30px 100px 28px; text-align: center;
    border: 2px solid #03060b; border-radius: 4px;
    background:
        radial-gradient(ellipse 360px 220px at 5% 40%, rgba(70,150,255,.38), transparent 70%),
        radial-gradient(ellipse 360px 220px at 95% 40%, rgba(70,150,255,.38), transparent 70%),
        radial-gradient(ellipse at 50% 55%, rgba(0,0,0,0) 30%, rgba(0,0,0,.7) 100%),
        var(--bricks), var(--noise),
        linear-gradient(#12213b, #0a1424);
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 0 90px rgba(0,0,0,.8), 0 14px 34px rgba(0,0,0,.65);
}
.ns-pagehead .ns-torch { top: 22px; }
.ns-pagehead .ns-torch--l { left: 30px; }
.ns-pagehead .ns-torch--r { right: 30px; }
.ns-pagehead__ico {
    display: inline-grid; place-items: center; width: 62px; height: 62px; margin-bottom: 12px;
    font-size: 1.7rem; color: var(--gold);
    background: var(--noise), linear-gradient(#060a12, #0f1a2b);
    border: 2px solid #03060b; border-radius: 4px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 6px 14px rgba(0,0,0,.7);
}
.ns-pagehead__title {
    font: 900 clamp(1.7rem, 4.2vw, 2.6rem)/1.1 var(--f-logo);
    background: linear-gradient(#fff2b8 5%, #e6b450 55%, #4f7fb5 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 3px 0 #03060b) drop-shadow(0 0 18px rgba(70,150,255,.3));
}
.ns-pagehead__lead { max-width: 34em; margin: 10px auto 0; font-size: 1.18rem; line-height: 1.45; color: var(--parch); text-shadow: 0 2px 6px #000; }

/* Coluna principal + lateral (mesma ideia da home) */
.ns-auth { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 26px; align-items: start; max-width: 1040px; margin: 0 auto; }
.ns-auth .ns-win { animation: ns-rise .45s ease both; }
.ns-auth .ns-col > .ns-win:nth-child(2) { animation-delay: .08s; }
@keyframes ns-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* Campos */
.ns-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.ns-fields .ns-field--full { grid-column: 1 / -1; }
.ns-field { margin-bottom: 16px; min-width: 0; }
.ns-form .ns-field > label { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.ns-field > label i { color: var(--gold); width: 1.1em; text-align: center; }
.ns-req::after { content: "*"; color: var(--bad); margin-left: 2px; }
.ns-opt { margin-left: auto; font: 500 .82rem var(--f-body); color: var(--parch-dim); }

.ns-form input.ns-input {
    width: 100%; padding: 11px 13px; margin: 0; font: 500 1.08rem var(--f-body); color: var(--parch);
    background: #070b13; border: 2px solid #03060b; border-radius: 3px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 3px 6px rgba(0,0,0,.6);
    transition: box-shadow .15s ease;
}
.ns-form input.ns-input::placeholder { color: #5f738f; }
.ns-form input.ns-input:focus { outline: 2px solid var(--gold-hi); outline-offset: 1px; }
.ns-form input.ns-input.is-valid   { box-shadow: inset 0 0 0 1px var(--hp),  inset 0 3px 6px rgba(0,0,0,.6); }
.ns-form input.ns-input.is-invalid { box-shadow: inset 0 0 0 1px var(--bad), inset 0 3px 6px rgba(0,0,0,.6); }
.ns-form input.ns-input:disabled { opacity: .5; cursor: not-allowed; }

.ns-field .ns-hint { display: flex; align-items: flex-start; gap: 6px; margin: 6px 0 0; }
.ns-field .ns-hint i { color: var(--gold); margin-top: .2em; }

/* Senha com botão de olho */
.ns-pw { position: relative; }
.ns-form .ns-pw input.ns-input { padding-right: 50px; }
.ns-pw__toggle {
    position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
    width: 34px; height: 34px; display: grid; place-items: center; cursor: pointer;
    color: var(--gold); background: linear-gradient(#1d3556, #0e1828);
    border: 1px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px rgba(79,127,181,.6);
}
.ns-pw__toggle:hover { color: var(--gold-hi); filter: brightness(1.2); }

/* Força da senha */
.ns-meter { height: 6px; margin-top: 8px; overflow: hidden; background: #070b13; border: 1px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px rgba(79,127,181,.45); }
.ns-meter span { display: block; width: 0; height: 100%; background: var(--bad); transition: width .25s ease, background-color .25s ease; }
.ns-meter.is-mid span { background: var(--gold); }
.ns-meter.is-strong span { background: var(--hp); }

/* Botões e avisos nestas páginas */
.ns-form .ns-btn { margin-top: 6px; }
.ns-btn:disabled { filter: grayscale(1) brightness(.6); cursor: not-allowed; transform: none; }
.ns-auth .ns-flash { display: flex; align-items: flex-start; gap: 10px; animation: ns-rise .35s ease both; }
.ns-auth .ns-flash i { flex: none; margin-top: .2em; }
.ns-flash.is-warn { background: #33250c; color: #ffe2a3; }

/* Links no fim da janela */
.ns-auth .ns-links { flex-wrap: wrap; margin-top: 22px; padding-top: 16px; border-top: 1px dashed rgba(79,127,181,.45); }
.ns-auth .ns-links a { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }
.ns-auth .ns-links a i { color: var(--gold); }

/* Listas da lateral */
.ns-tips { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.ns-tips li { display: flex; align-items: flex-start; gap: 10px; color: var(--parch); font-size: 1.02rem; line-height: 1.4; }
.ns-tips li i { flex: none; width: 1.1em; margin-top: .25em; text-align: center; color: var(--hp); }
.ns-steps { list-style: none; counter-reset: ns-step; display: flex; flex-direction: column; gap: 12px; }
.ns-steps li { counter-increment: ns-step; display: grid; grid-template-columns: 30px 1fr; gap: 12px; align-items: start; color: var(--parch); font-size: 1.02rem; line-height: 1.4; }
.ns-steps li::before {
    content: counter(ns-step); width: 30px; height: 30px; display: grid; place-items: center;
    font: 900 .95rem var(--f-logo); color: var(--gold-hi);
    background: radial-gradient(circle at 50% 35%, #1d3556, #070b13);
    border: 2px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px var(--bronze);
}
.ns-aside-cta { color: var(--parch); font-size: 1.05rem; line-height: 1.5; margin-bottom: 14px; }

/* Tela de resultado (conta criada, e-mail enviado, bloqueio) */
.ns-done { text-align: center; padding: 6px 0 2px; }
.ns-done__ico {
    width: 76px; height: 76px; margin: 0 auto 14px; display: grid; place-items: center; font-size: 2rem; color: var(--hp);
    background: radial-gradient(circle at 50% 35%, #1d3556, #070b13);
    border: 2px solid #03060b; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--bronze), 0 0 22px rgba(79,191,95,.35);
}
.ns-done__ico.is-lock { color: var(--gold); box-shadow: inset 0 0 0 1px var(--bronze), 0 0 22px rgba(230,180,80,.3); }
.ns-done h3 { font: 700 1.4rem var(--f-title); color: var(--gold-hi); margin-bottom: 8px; }
.ns-done p { color: var(--parch); font-size: 1.08rem; line-height: 1.55; margin-bottom: 18px; }
.ns-done .ns-actions { justify-content: center; }

@media (max-width: 1020px) {
    .ns-auth { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
    .ns-pagehead { padding: 24px 16px 22px; }
}
@media (max-width: 640px) {
    .ns-fields { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .ns-auth .ns-win, .ns-auth .ns-flash { animation: none; }
    .ns-meter span, .ns-form input.ns-input { transition: none; }
}

/* ---------- Contrato de uso (acc.php) ---------- */
.ns-contract {
    max-height: 440px; overflow-y: auto; padding: 18px 22px; margin-bottom: 14px;
    background: #070b13; border: 2px solid #03060b; border-radius: 3px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 3px 8px rgba(0,0,0,.6);
    color: var(--parch); font-size: 1.04rem; line-height: 1.6;
}
.ns-contract:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 1px; }
.ns-contract p { margin: 0 0 12px; }
.ns-contract .ns-c-intro { color: var(--parch-dim); padding-bottom: 12px; border-bottom: 1px dashed rgba(79,127,181,.45); }
.ns-contract .ns-c-title { text-align: center; font: 700 1.15rem var(--f-title); color: var(--gold-hi); }
.ns-contract .ns-c-h { margin-top: 20px; font: 700 1.08rem var(--f-title); color: var(--gold); }
.ns-terms-note { margin-bottom: 16px !important; }
.ns-terms-actions { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; }
.ns-terms-actions .ns-btn { min-width: 170px; margin-top: 0; }

/* ---------- CAPTCHA (lostaccount.php) ---------- */
.ns-captcha { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.ns-captcha img { display: block; width: 210px; max-width: calc(100% - 54px); height: auto; background: #0a111c; border: 2px solid #03060b; border-radius: 3px; box-shadow: 0 0 0 1px var(--bronze), 0 3px 8px rgba(0,0,0,.5); }
.ns-captcha__refresh {
    flex: none; width: 44px; height: 44px; display: grid; place-items: center; cursor: pointer;
    color: var(--gold); font-size: 1rem; background: linear-gradient(#1d3556, #0e1828);
    border: 2px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px rgba(79,127,181,.6);
}
.ns-captcha__refresh:hover { color: var(--gold-hi); filter: brightness(1.2); }
.ns-form input.ns-input.ns-captcha-input { text-transform: uppercase; letter-spacing: .22em; }
.ns-form input.ns-input.ns-captcha-input::placeholder { text-transform: none; letter-spacing: 0; }

/* ==========================================================
   Página de personagem (character.php)
   ========================================================== */
.ns-charpage { display: flex; flex-direction: column; gap: 26px; font-family: var(--f-body); }
.ns-charpage .ns-flash { margin-bottom: 0; }
.ns-charpage .ns-actions { margin-top: 0; }

/* Ficha */
.ns-char__body { display: flex; align-items: center; gap: 26px; padding: 22px 24px 24px; }
.ns-char__avatar {
    flex: none; position: relative; width: 148px; height: 148px; overflow: hidden;
    display: grid; place-items: center;
    background: radial-gradient(circle at 50% 38%, #1d3556, #070b13);
    border: 2px solid #03060b; border-radius: 4px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 0 34px rgba(0,0,0,.7);
}
.ns-char__avatar::after { /* sombra no chão */
    content: ""; position: absolute; left: 24%; right: 24%; bottom: 16px; height: 12px;
    background: radial-gradient(ellipse, rgba(0,0,0,.7), transparent 70%); z-index: 0;
}
.ns-char__avatar .ns-oimg { position: relative; z-index: 1; }
.ns-char__initial { font: 900 3rem var(--f-logo); color: var(--gold); }
.ns-char__main { flex: 1; min-width: 0; }
.ns-char__name {
    display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 14px;
    font: 900 clamp(1.8rem, 4vw, 2.6rem)/1.1 var(--f-logo);
}
.ns-char__name > span {
    background: linear-gradient(#fff2b8 10%, #e6b450 55%, #4f7fb5 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 2px 0 #03060b) drop-shadow(0 0 14px rgba(70,150,255,.3));
}
.ns-char__hidden { font: 700 .9rem var(--f-title); color: #ffcf8a; }

/* Selos */
.ns-badges { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0 18px; }
.ns-badge {
    display: inline-flex; align-items: center; gap: 8px; padding: 6px 13px;
    font: 700 .95rem var(--f-title); color: var(--parch); text-decoration: none; white-space: nowrap;
    background: linear-gradient(#060a12, #0f1a2b); border: 2px solid #03060b; border-radius: 3px;
    box-shadow: inset 0 0 0 1px var(--bronze);
}
.ns-badge i { color: var(--gold); }
.ns-badge--on  { color: #c4f6cf; }
.ns-badge--off { color: var(--parch-dim); }
.ns-badge--free { color: var(--parch-dim); }
.ns-badge--free i { color: var(--parch-dim); }
.ns-badge--prem { color: #2a1604; text-shadow: 0 1px 0 rgba(255,255,255,.3); background: linear-gradient(#ffe08a, #e6b450 50%, #a87a2c); box-shadow: inset 0 1px 0 rgba(255,255,255,.45), inset 0 -2px 0 rgba(0,0,0,.3); }
.ns-badge--prem i { color: #5a3410; }
a.ns-badge--guild { background: linear-gradient(#1d3556, #0e1828); }
a.ns-badge--guild:hover { filter: brightness(1.2); color: var(--gold-hi); }
.ns-badge__txt { display: flex; flex-direction: column; line-height: 1.15; white-space: normal; }
.ns-badge__txt small { font: 600 .78rem var(--f-body); color: var(--parch-dim); }
.ns-dot { display: inline-block; width: 11px; height: 11px; flex: none; border-radius: 50%; background: #5b6472; box-shadow: 0 0 0 2px #03060b; }
.ns-dot.is-on  { background: radial-gradient(circle at 35% 30%, #eaffea, #4fbf5f 60%); box-shadow: 0 0 0 2px #03060b, 0 0 9px rgba(79,191,95,.8); }
.ns-dot.is-off { background: radial-gradient(circle at 35% 30%, #ffe4df, #c0473a 60%); box-shadow: 0 0 0 2px #03060b; }

/* Level e experiência */
.ns-lvl { display: flex; align-items: center; gap: 18px; }
.ns-lvl__num {
    flex: none; text-align: center; padding: 6px 18px 8px; color: #10243f;
    background: linear-gradient(#e8f1fb, #b9cde6); border: 1px solid #03060b; border-radius: 2px;
    box-shadow: inset 0 0 0 1px rgba(79,127,181,.6), 0 2px 0 #03060b;
}
.ns-lvl__num small { display: block; font: 700 .78rem var(--f-title); letter-spacing: .08em; text-transform: uppercase; }
.ns-lvl__num b { display: block; font: 700 2.3rem/1 var(--f-body); } /* Cinzel desenha o 1 como "I": números usam a fonte do corpo */
.ns-lvl__exp { flex: 1; min-width: 0; }
.ns-lvl__line { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px 14px; margin-bottom: 7px; color: var(--parch); font-size: 1.02rem; }
.ns-lvl__line b { color: var(--gold-hi); }

/* Barras */
.ns-bar { height: 15px; overflow: hidden; background: #070b13; border: 2px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px rgba(79,127,181,.55); }
.ns-bar__fill { display: block; height: 100%; width: var(--w, 0%); box-shadow: inset 0 1px 0 rgba(255,255,255,.35), inset 0 -2px 0 rgba(0,0,0,.25); animation: ns-fill .9s ease both; }
.ns-bar--hp   .ns-bar__fill { background: linear-gradient(#7fe08e, #2f9a46); }
.ns-bar--mana .ns-bar__fill { background: linear-gradient(#7db6ff, #2f6fcf); }
.ns-bar--soul .ns-bar__fill { background: linear-gradient(#ffe08a, #c4922f); }
.ns-bar--exp  .ns-bar__fill { background: linear-gradient(#ffe08a, #e6b450 50%, #a87a2c); }
@keyframes ns-fill { from { width: 0; } }

.ns-stat { margin-bottom: 16px; }
.ns-stat:last-child { margin-bottom: 0; }
.ns-stat__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 6px; font: 700 1rem var(--f-title); color: var(--parch); }
.ns-stat__head i { width: 1.3em; color: var(--gold); }
.ns-stat__head b { color: var(--gold-hi); font-family: var(--f-body); font-size: 1.08rem; }
.ns-stat--plain { padding-top: 12px; border-top: 1px dashed rgba(79,127,181,.45); }
.ns-stat--plain .ns-stat__head { margin-bottom: 0; }

/* Skills */
.ns-skills { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.ns-skill {
    text-align: center; padding: 12px 6px 10px;
    background: var(--noise), linear-gradient(#060a12, #0f1a2b);
    border: 2px solid #03060b; border-radius: 4px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 6px 14px rgba(0,0,0,.7);
}
.ns-skill i { display: block; margin-bottom: 3px; font-size: 1.15rem; color: var(--gold); filter: drop-shadow(0 2px 0 #000); }
.ns-skill b { display: block; font: 700 1.9rem/1.1 var(--f-body); color: var(--gold-hi); text-shadow: 0 2px 0 #000, 0 0 12px rgba(70,150,255,.35); }
.ns-skill span { display: block; margin-top: 3px; font: 600 .82rem var(--f-title); color: var(--parch-dim); }

/* Set em uso (equipamento) */
.ns-eq {
    list-style: none; display: grid; justify-content: center; gap: 10px;
    grid-template-columns: repeat(3, 72px); grid-template-rows: repeat(4, 72px);
    grid-template-areas: "neck head back" "rhand armor lhand" "ring legs ammo" ". feet .";
}
.ns-eq__slot {
    position: relative; display: grid; place-items: center;
    background: var(--noise), linear-gradient(#060a12, #0f1a2b);
    border: 2px solid #03060b; border-radius: 4px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 6px 14px rgba(0,0,0,.7);
}
.ns-eq__slot.is-filled { background: radial-gradient(circle at 50% 42%, #1d3556, #070b13); }
.ns-eq__slot.is-filled:hover { box-shadow: inset 0 0 0 1px var(--gold), inset 0 6px 14px rgba(0,0,0,.6), 0 0 12px rgba(230,180,80,.35); }
.ns-eq__slot.is-empty i { font-size: 1.5rem; color: rgba(159,179,204,.14); }
.ns-eq__slot .ns-oimg { width: 64px; height: 64px; }
.ns-eq__slot .ns-ofb { color: var(--parch-dim); font-size: 1.4rem; }
.ns-eq__n { position: absolute; right: 5px; bottom: 2px; font: 900 .88rem var(--f-body); color: #fff; text-shadow: 1px 0 #000, -1px 0 #000, 0 1px #000, 0 -1px #000; pointer-events: none; }
.ns-eq__note { margin: 14px 0 0; text-align: center; }

/* Informações */
.ns-info > div { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 10px 0; }
.ns-info > div + div { border-top: 1px dashed rgba(79,127,181,.45); }
.ns-info > div:first-child { padding-top: 0; }
.ns-info > div:last-child { padding-bottom: 0; }
.ns-info dt { flex: none; font: 600 .95rem var(--f-title); color: var(--parch-dim); }
.ns-info dd { text-align: right; color: var(--parch); font-weight: 700; font-size: 1.04rem; }
.ns-info dd a { color: var(--gold-hi); text-decoration: none; }
.ns-info dd a:hover { text-decoration: underline; }
.ns-info dd small { display: block; font-weight: 500; font-size: .9rem; }
.ns-tag { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; font: 700 .9rem var(--f-title); color: var(--parch-dim); background: #070b13; border: 1px solid var(--bronze); border-radius: 2px; }
.ns-tag--prem { color: #2a1604; background: linear-gradient(#ffe08a, #e6b450 50%, #a87a2c); border-color: #03060b; }

/* Mortes */
.ns-deaths { list-style: none; }
.ns-deaths li { display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 12px; padding: 10px 0; }
.ns-deaths li + li, .ns-more > .ns-deaths li:first-child { border-top: 1px dashed rgba(79,127,181,.4); }
.ns-death__lvl { font: 700 1.1rem var(--f-body); color: var(--bad); }
.ns-death__by { color: var(--parch); }
.ns-death__by b { color: var(--gold-hi); }
.ns-deaths time { font-size: .92rem; white-space: nowrap; }
.ns-more { margin-top: 4px; border-top: 1px dashed rgba(79,127,181,.4); }
.ns-more summary { padding: 10px 0 2px; cursor: pointer; color: var(--azure-hi); font: 700 .98rem var(--f-title); }
.ns-more summary:hover { color: var(--gold-hi); }
.ns-empty i { color: var(--hp); margin-right: 6px; }

/* Outros personagens */
.ns-alts { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
.ns-alt {
    display: grid; grid-template-columns: 58px 1fr auto; align-items: center; gap: 12px; padding: 10px 12px;
    background: var(--noise), linear-gradient(#060a12, #0f1a2b);
    border: 2px solid #03060b; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--bronze);
}
.ns-alt__av { width: 58px; height: 58px; display: grid; place-items: center; overflow: hidden; color: var(--gold); background: radial-gradient(circle at 50% 40%, #1d3556, #070b13); border: 2px solid #03060b; border-bottom-width: 3px; border-radius: 3px; }
.ns-alt__txt { min-width: 0; }
.ns-alt__txt a { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--parch); font-weight: 700; font-size: 1.06rem; text-decoration: none; }
.ns-alt__txt a:hover { color: var(--gold-hi); }
.ns-alt__txt small { color: var(--parch-dim); font-size: .92rem; }

@media (max-width: 860px) {
    .ns-char__body { flex-direction: column; text-align: center; }
    .ns-char__name, .ns-badges { justify-content: center; }
    .ns-lvl { flex-direction: column; align-items: stretch; }
    .ns-lvl__line { justify-content: center; }
}
@media (max-width: 640px) {
    .ns-skills { grid-template-columns: repeat(2, 1fr); }
    .ns-deaths li { grid-template-columns: 52px 1fr; }
    .ns-deaths time { grid-column: 2; }
}
@media (prefers-reduced-motion: reduce) {
    .ns-bar__fill { animation: none; }
}

/* Celular/tablet: o Set em uso sobe para logo depois da ficha */
@media (max-width: 1020px) {
    .ns-charpage .ns-home .ns-col { display: contents; }
    .ns-charpage .ns-ord-1 { order: 1; } .ns-charpage .ns-ord-2 { order: 2; } .ns-charpage .ns-ord-3 { order: 3; }
    .ns-charpage .ns-ord-4 { order: 4; } .ns-charpage .ns-ord-5 { order: 5; } .ns-charpage .ns-ord-6 { order: 6; }
}

/* ==========================================================
   Páginas de listagem: players, online, guilds, highscores,
   houses e monsters. Reaproveitam .ns-win, .ns-slot, .ns-table,
   .ns-pager, .ns-btn, .ns-form, .ns-info e .ns-done; só acrescentam
   o que a home não tinha. HTML gerado em includes/ui.php.
   ========================================================== */
.ns-listpage { display: flex; flex-direction: column; gap: 26px; font-family: var(--f-body); }
.ns-listpage > * { min-width: 0; animation: ns-rise .45s ease both; }
.ns-listpage > *:nth-child(2) { animation-delay: .05s; }
.ns-listpage > *:nth-child(3) { animation-delay: .1s; }
.ns-listpage > *:nth-child(4) { animation-delay: .15s; }
.ns-listpage > .ns-pagehead { max-width: none; width: 100%; margin: 0; }
.ns-win__meta { font: 600 .92rem var(--f-body); letter-spacing: 0; color: var(--parch); text-shadow: none; }
.ns-win__meta i { color: var(--gold-hi); margin-right: 4px; }

/* Outfit / sprite dentro de molduras */
.ns-oimg { display: block; width: 100%; height: 100%; object-fit: contain; image-rendering: pixelated; }
.ns-oimg--smooth { image-rendering: auto; }
.ns-ofb { display: grid; place-items: center; width: 100%; height: 100%; color: var(--gold); }

/* Destaque do termo buscado */
.ns-hl { background: rgba(230,180,80,.3); color: var(--gold-hi); border-radius: 2px; padding: 0 2px; }

/* ---------- Números em destaque ---------- */
.ns-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; }
/* Cinzel desenha o 1 como "I": os números usam a fonte do corpo */
.ns-tiles .ns-slot b { font-family: var(--f-body); font-weight: 700; font-size: 2.3rem; line-height: 1.05; }
.ns-slot small { display: block; margin-top: 4px; font: 500 .88rem var(--f-body); color: var(--parch-dim); }
.ns-slot .ns-bar { margin-top: 10px; height: 9px; }

/* ---------- Busca e filtros ---------- */
.ns-toolbar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px 16px; }
.ns-toolbar .ns-field { flex: 1 1 200px; margin: 0; }
.ns-toolbar .ns-field--grow { flex: 3 1 300px; }
.ns-toolbar__btns { display: flex; flex-wrap: wrap; gap: 10px; }
.ns-toolbar .ns-btn { margin: 0; padding: 11px 20px; font-size: 1rem; }
.ns-search { position: relative; }
.ns-search > i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--gold); pointer-events: none; }
.ns-form .ns-search input.ns-input { padding-left: 42px; }
.ns-form select.ns-input {
    width: 100%; padding: 11px 40px 11px 13px; margin: 0; font: 500 1.08rem var(--f-body); color: var(--parch);
    background-color: #070b13; border: 2px solid #03060b; border-radius: 3px; cursor: pointer;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 3px 6px rgba(0,0,0,.6);
    -webkit-appearance: none; appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23e6b450' stroke-width='2'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 14px center;
}
.ns-form select.ns-input:focus { outline: 2px solid var(--gold-hi); outline-offset: 1px; }
.ns-form select.ns-input option { background: #0e1828; color: var(--parch); }
.ns-filterchip { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; padding: 5px 12px; color: var(--parch); font-weight: 700; background: #070b13; border: 1px solid var(--bronze); border-radius: 3px; }
.ns-filterchip i { color: var(--gold); }
.ns-filterchip a { color: var(--parch-dim); text-decoration: none; }
.ns-filterchip a:hover { color: var(--bad); }
.ns-found { margin: 0 0 12px; color: var(--parch-dim); font-size: 1.02rem; }
.ns-found b { color: var(--gold-hi); }

/* ---------- Tabelas ---------- */
.ns-table th i { color: var(--gold); margin-right: 6px; }
.ns-table--rows tbody tr { transition: background .12s ease; }
.ns-table--rows tbody tr:hover td { background: rgba(90,162,255,.08); }
.ns-table .ns-w-sm { width: 1%; white-space: nowrap; }
.ns-num { font: 700 1.14rem var(--f-body); }
.ns-num--lvl { color: var(--hp); }
.ns-num--val { color: var(--gold-hi); font-size: 1.28rem; }

/* Jogador: moldura com outfit + nome */
.ns-pl { display: flex; align-items: center; gap: 12px; min-width: 0; }
.ns-pl__av {
    flex: none; width: 52px; height: 52px; display: grid; place-items: center; overflow: hidden;
    color: var(--gold); font-size: 1.2rem;
    background: radial-gradient(circle at 50% 40%, #1d3556, #070b13);
    border: 2px solid #03060b; border-radius: 4px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 0 14px rgba(0,0,0,.6);
}
.ns-table .ns-pl__av i, .ns-pl__av i { margin: 0; color: var(--gold); }
.ns-pl__name { display: block; color: var(--parch); font-weight: 700; font-size: 1.1rem; text-decoration: none; overflow-wrap: anywhere; }
.ns-pl__name:hover { color: var(--gold-hi); }
.ns-pl__sub { display: block; color: var(--parch-dim); font-size: .92rem; }

/* Vocations (a promovida usa a cor da base) */
.ns-voc { display: inline-flex; align-items: center; gap: 8px; color: var(--parch); font-weight: 700; }
.ns-voc i, .ns-table .ns-voc i { color: var(--voc, var(--parch-dim)); margin: 0; width: 1.1em; text-align: center; }
.ns-voc--sorcerer { --voc: #ff7a66; }
.ns-voc--druid    { --voc: #6fd57f; }
.ns-voc--paladin  { --voc: #ffd36b; }
.ns-voc--knight   { --voc: #7db6ff; }
.ns-voc--none     { --voc: #9fb3cc; }
.ns-slot.ns-vtile i { color: var(--voc); }
.ns-bar--voc .ns-bar__fill { background: var(--voc); }

/* Online / offline */
.ns-state { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; white-space: nowrap; }
.ns-state.is-on  { color: #c4f6cf; }
.ns-state.is-off { color: var(--parch-dim); }

/* Posição no ranking */
.ns-rankpos {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 46px; height: 34px; padding: 0 10px;
    font: 700 1.1rem var(--f-body); color: var(--parch-dim); background: #070b13;
    border: 1px solid var(--bronze); border-radius: 3px;
}
.ns-table .ns-rankpos i, .ns-rankpos i { margin: 0; color: inherit; font-size: .85em; }
.ns-rankpos--1 { color: #2a1604; border-color: #03060b; background: linear-gradient(#ffe08a, #e6b450 50%, #a87a2c); }
.ns-rankpos--2 { color: #10243f; border-color: #03060b; background: linear-gradient(#f4f8fc, #b4c2d4); }
.ns-rankpos--3 { color: #2a1604; border-color: #03060b; background: linear-gradient(#f3c08a, #a8642c); }
.ns-rankpos--top { color: var(--gold-hi); border-color: var(--gold); }

/* ---------- Pódio ---------- */
.ns-podium { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: end; max-width: 880px; margin: 0 auto; padding-top: 6px; }
.ns-podium__place { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ns-podium__place--1 { --medal: #ffe08a; --medal-glow: rgba(255,224,138,.45); }
.ns-podium__place--2 { --medal: #cfd9e6; --medal-glow: rgba(207,217,230,.3); }
.ns-podium__place--3 { --medal: #e0975a; --medal-glow: rgba(224,151,90,.35); }
.ns-podium__av {
    position: relative; z-index: 1; width: 112px; height: 112px; margin-bottom: -16px; overflow: hidden;
    display: grid; place-items: center; font: 900 2.4rem var(--f-logo); color: var(--gold);
    background: radial-gradient(circle at 50% 38%, #1d3556, #070b13);
    border: 3px solid var(--medal); border-radius: 4px;
    box-shadow: inset 0 0 22px rgba(0,0,0,.7), 0 0 18px var(--medal-glow);
}
.ns-podium__place--1 .ns-podium__av { width: 128px; height: 128px; }
.ns-podium__base {
    width: 100%; padding: 28px 10px 16px; display: flex; flex-direction: column; align-items: center;
    background: var(--noise), linear-gradient(#1d3556, #0e1828);
    border: 2px solid #03060b; border-radius: 4px 4px 2px 2px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 4px 0 var(--medal);
}
.ns-podium__place--1 .ns-podium__base { min-height: 210px; }
.ns-podium__place--2 .ns-podium__base { min-height: 178px; }
.ns-podium__place--3 .ns-podium__base { min-height: 156px; }
.ns-podium__pos { font: 900 1.02rem var(--f-title); letter-spacing: .06em; color: var(--medal); }
.ns-podium__pos i { margin-right: 6px; }
.ns-podium__name { display: block; max-width: 100%; margin-top: 4px; color: var(--parch); font: 700 1.2rem var(--f-body); text-decoration: none; overflow-wrap: anywhere; }
.ns-podium__name:hover { color: var(--gold-hi); }
.ns-podium__val { margin-top: 6px; font: 700 2.1rem/1 var(--f-body); color: var(--gold-hi); text-shadow: 0 2px 0 #000, 0 0 12px rgba(70,150,255,.35); }
.ns-podium__sub { margin-top: 8px; color: var(--parch-dim); font-size: .95rem; }
.ns-podium__empty { color: var(--parch-dim); font-style: italic; margin-top: 10px; }

/* ---------- Cartões (guilds, casas) ---------- */
.ns-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 16px; }
.ns-card {
    position: relative; display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 14px 16px;
    color: inherit; text-decoration: none;
    background: var(--noise), linear-gradient(#060a12, #0f1a2b);
    border: 2px solid #03060b; border-radius: 4px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 6px 14px rgba(0,0,0,.5);
    transition: transform .15s ease, box-shadow .15s ease;
}
.ns-card:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px var(--gold), 0 10px 20px rgba(0,0,0,.5); }
.ns-card__head { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.ns-card__title { display: block; color: var(--gold-hi); font: 700 1.18rem/1.2 var(--f-title); text-decoration: none; overflow-wrap: anywhere; }
a.ns-card__title:hover { color: #fff; }
.ns-card__sub { display: block; margin-top: 2px; color: var(--parch-dim); font-size: .95rem; }
.ns-card__sub i { color: var(--gold); margin-right: 5px; }
.ns-card__text { flex: 1; color: var(--parch); font-size: 1.02rem; line-height: 1.45; overflow-wrap: anywhere; }
.ns-card__foot { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; padding-top: 12px; border-top: 1px dashed rgba(79,127,181,.45); }
.ns-card .ns-info { margin: 0; }
.ns-emblem {
    width: 52px; height: 52px; display: grid; place-items: center; font: 900 1.15rem var(--f-logo); color: var(--g, var(--gold));
    background: radial-gradient(circle at 50% 35%, #1d3556, #070b13);
    border: 2px solid var(--g, #03060b); border-radius: 4px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.6), inset 0 0 14px rgba(0,0,0,.6);
}
.ns-mini { display: flex; flex-wrap: wrap; gap: 6px 16px; color: var(--parch); font-weight: 700; }
.ns-mini i { color: var(--gold); margin-right: 6px; }
.ns-mini .is-live { color: #c4f6cf; }
.ns-mini .is-live i { color: var(--hp); font-size: .6rem; vertical-align: .15em; }
.ns-dim-i { color: var(--parch-dim); font-style: italic; }

/* Selo de status (casas) */
.ns-tagb { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; font: 700 .78rem var(--f-title); letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; border: 1px solid #03060b; border-radius: 3px; }
.ns-tagb--free { color: #0f2a1c; background: linear-gradient(#a9f0c3, #4fbf5f); }
.ns-tagb--sold { color: #f2f8ff; background: linear-gradient(#6db3ff, #2f74d6); text-shadow: 0 1px 0 #000; }
.ns-tagb--late { color: #2a1604; background: linear-gradient(#ffd08a, #e08a2c); }
.ns-card--free:hover { box-shadow: inset 0 0 0 1px var(--hp), 0 10px 20px rgba(0,0,0,.5); }
.ns-card--late:hover { box-shadow: inset 0 0 0 1px #e08a2c, 0 10px 20px rgba(0,0,0,.5); }
.ns-house-ico { width: 52px; height: 52px; display: grid; place-items: center; font-size: 1.4rem; color: var(--gold); background: radial-gradient(circle at 50% 35%, #1d3556, #070b13); border: 2px solid #03060b; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--bronze); }
.ns-card--free .ns-house-ico { color: var(--hp); }
.ns-card--late .ns-house-ico { color: #ffb35c; }
.ns-card[hidden] { display: none; }

/* ---------- Monstros ---------- */
.ns-mgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(176px, 1fr)); gap: 14px; }
.ns-mcard {
    display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 14px 10px 12px; text-align: center; text-decoration: none;
    background: var(--noise), linear-gradient(#060a12, #0f1a2b);
    border: 2px solid #03060b; border-radius: 4px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 6px 14px rgba(0,0,0,.5);
    transition: transform .15s ease, box-shadow .15s ease;
}
.ns-mcard:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px var(--gold), 0 10px 20px rgba(0,0,0,.5); }
.ns-mcard__img { width: 100px; height: 100px; display: grid; place-items: center; overflow: hidden; }
.ns-mcard__name { color: var(--parch); font: 700 1.08rem/1.2 var(--f-body); overflow-wrap: anywhere; }
.ns-mcard:hover .ns-mcard__name { color: var(--gold-hi); }
.ns-mcard__stats { display: flex; gap: 14px; font-size: .95rem; color: var(--parch-dim); }
.ns-mcard__stats i { margin-right: 4px; }
.ns-mcard__xp i { color: var(--gold); }
.ns-mcard__hp i { color: var(--bad); }

.ns-mhero { display: flex; align-items: center; gap: 26px; padding: 22px 24px 24px; }
.ns-mhero__img {
    flex: none; width: 150px; height: 150px; display: grid; place-items: center; overflow: hidden;
    background: radial-gradient(circle at 50% 38%, #1d3556, #070b13);
    border: 2px solid #03060b; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--bronze), inset 0 0 34px rgba(0,0,0,.7);
}
.ns-mhero__title {
    font: 900 clamp(1.8rem, 4vw, 2.6rem)/1.1 var(--f-logo); overflow-wrap: anywhere;
    background: linear-gradient(#fff2b8 10%, #e6b450 55%, #4f7fb5 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 2px 0 #03060b) drop-shadow(0 0 14px rgba(70,150,255,.3));
}
.ns-chipgrid { display: flex; flex-wrap: wrap; gap: 09px; }
.ns-chip {
    display: inline-flex; align-items: center; gap: 8px; padding: 6px 13px; color: var(--parch); font: 700 .98rem var(--f-body); text-decoration: none;
    background: linear-gradient(#060a12, #0f1a2b); border: 2px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px var(--bronze);
}
.ns-chip i { color: var(--c, var(--gold)); width: 1.1em; text-align: center; }
.ns-chip img { width: 24px; height: 24px; image-rendering: pixelated; }
.ns-chip small { color: var(--parch-dim); font-weight: 500; }
a.ns-chip:hover { color: var(--gold-hi); filter: brightness(1.2); }
.ns-chip__sprite { width: 34px; height: 34px; display: grid; place-items: center; overflow: hidden; flex: none; }
.ns-chip__sprite i { width: auto; }
.ns-block + .ns-block { margin-top: 22px; padding-top: 18px; border-top: 1px dashed rgba(79,127,181,.45); }
.ns-block__h { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font: 700 1.05rem var(--f-title); color: var(--gold); }
.ns-loot { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.ns-loot__item {
    display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 8px 10px; text-align: center;
    background: var(--noise), linear-gradient(#060a12, #0f1a2b); border: 2px solid #03060b; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--bronze);
}
.ns-loot__ico {
    width: 64px; height: 64px; display: grid; place-items: center; overflow: hidden; color: var(--parch-dim); font-size: 1.4rem;
    background: radial-gradient(circle at 50% 42%, #1d3556, #070b13); border: 2px solid #03060b; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--bronze);
}
.ns-loot__name { color: var(--parch); font-weight: 700; line-height: 1.2; overflow-wrap: anywhere; }
.ns-loot__meta { color: var(--parch-dim); font-size: .88rem; }

.ns-refresh { color: var(--parch-dim); text-align: center; font-size: .95rem; margin-top: 14px; }
.ns-refresh i { color: var(--gold); margin-right: 6px; }

@media (max-width: 860px) {
    .ns-podium { grid-template-columns: 1fr; max-width: 420px; }
    .ns-podium__place--1 { order: 1; } .ns-podium__place--2 { order: 2; } .ns-podium__place--3 { order: 3; }
    .ns-podium__place .ns-podium__base { min-height: 0; }
    .ns-mhero { flex-direction: column; text-align: center; }
}
/* Celular: a tabela vira uma lista de fichas */
@media (max-width: 700px) {
    .ns-table--stack thead { display: none; }
    .ns-table--stack, .ns-table--stack tbody, .ns-table--stack tr, .ns-table--stack td { display: block; width: 100%; }
    .ns-table--stack tr { padding: 10px 0; border-bottom: 1px dashed rgba(79,127,181,.55); }
    .ns-table--stack td { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 5px 4px; border: 0; }
    .ns-table--stack td::before { content: attr(data-label); flex: none; font: 600 .85rem var(--f-title); color: var(--parch-dim); }
    .ns-table--stack td.ns-td--main::before { display: none; }
    .ns-table--stack td.ns-td--main { justify-content: flex-start; }
    .ns-table--rows.ns-table--stack tbody tr:hover td { background: transparent; }
    .ns-table .ns-w-sm { width: auto; }
}
@media (prefers-reduced-motion: reduce) {
    .ns-listpage > *, .ns-card, .ns-mcard { animation: none; transition: none; }
}

/* Detalhes que faltavam */
.ns-cards[hidden], .ns-mgrid[hidden] { display: none; }
.ns-chip.is-active { color: #2a1604; background: linear-gradient(#ffe08a, #e6b450 50%, #a87a2c); box-shadow: inset 0 1px 0 rgba(255,255,255,.4); }
.ns-chip.is-active i { color: #5a3410; }
a.ns-chip.is-active:hover { color: #2a1604; }
.ns-listpage .ns-guilds .ns-avatar { font: 900 1rem var(--f-title); }
.ns-listpage .ns-guilds__score small { white-space: nowrap; }
.ns-listpage code { background: #070b13; border: 1px solid var(--bronze); border-radius: 2px; padding: 1px 6px; color: var(--gold-hi); }

/* ==========================================================
   Conta e criação de personagem: account.php e create_character.php
   Reaproveitam .ns-pagehead, .ns-win, .ns-form, .ns-btn, .ns-info,
   .ns-card, .ns-chip, .ns-tiles e .ns-done; só acrescentam o que faltava.
   ========================================================== */

/* Menu da conta (abas) */
.ns-subnav { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.ns-subnav .ns-chip { padding: 9px 18px; font-family: var(--f-title); font-size: .98rem; }
.ns-chip--ok   { --c: var(--hp); }
.ns-chip--exit { --c: var(--bad); }

/* ---------- Menu da conta v2: dois grupos separados e alinhados ---------- */
.ns-accnav { container-type: inline-size; display: flex; flex-direction: column; gap: 10px; }
.ns-accnav .ns-subnav {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; justify-content: stretch; align-items: stretch;
    padding: 8px; background: var(--noise), linear-gradient(#16233a, #0e1828);
    border: 2px solid #03060b; border-radius: 4px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 0 0 4px #091221, 0 6px 16px rgba(0,0,0,.5);
}
.ns-accnav .ns-subnav .ns-chip {
    justify-content: center; gap: 8px; min-width: 0; padding: 10px 8px;
    font-family: var(--f-title); font-size: .9rem; line-height: 1.2; text-align: center;
}
.ns-accnav .ns-subnav .ns-chip span { min-width: 0; }
.ns-accnav .ns-chip--cta { color: #eafff1; background: linear-gradient(#37a05a, #1b5c32); box-shadow: inset 0 0 0 1px #7be09b, inset 0 1px 0 rgba(255,255,255,.25); }
.ns-accnav .ns-chip--cta i { color: #eafff1; }
.ns-accnav a.ns-chip--cta:hover { color: #fff; }

/* barra da loja: separada, menor e com título */
.ns-accnav .ns-subnav--shop { display: flex; flex-wrap: wrap; align-items: center; padding: 6px 8px; }
.ns-accnav .ns-subnav--shop .ns-chip { flex: 1 1 140px; padding: 7px 10px; font-size: .86rem; }
.ns-subnav__label {
    flex: 0 0 100%; display: flex; align-items: center; gap: 8px;
    font: 700 .74rem var(--f-title); letter-spacing: .14em; text-transform: uppercase; color: var(--parch-dim);
}
.ns-subnav__label i { color: var(--gold); }

@container (min-width: 640px) {
    .ns-accnav .ns-subnav--main { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ns-subnav__label { flex: 0 0 auto; padding: 0 10px 0 4px; }
    .ns-accnav .ns-subnav--shop .ns-chip { flex: 1 1 0; }
}
@container (min-width: 1100px) {
    .ns-accnav .ns-subnav--main { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
}

/* Avisos dentro das páginas de listagem/conta */
.ns-listpage > .ns-flash { margin-bottom: 0; }
.ns-listpage .ns-flash { display: flex; align-items: flex-start; gap: 10px; }
.ns-listpage .ns-flash > i { flex: none; margin-top: .2em; }
.ns-listpage .ns-flash > div { min-width: 0; }

/* Dentro de .ns-listpage (flex) o .ns-auth precisa ocupar toda a largura permitida */
.ns-listpage > .ns-auth { width: 100%; }
/* Coluna única centralizada (resultado de ação) */
.ns-auth--single { grid-template-columns: minmax(0, 1fr); max-width: 640px; }

/* Cartões de personagem (account.php?page=personagens) */
.ns-card--char .ns-info dd { font-size: 1rem; }
.ns-card--char .ns-card__sub .ns-voc i { margin: 0; color: var(--voc, var(--parch-dim)); }
.ns-card--char:hover { transform: none; box-shadow: inset 0 0 0 1px var(--bronze), inset 0 6px 14px rgba(0,0,0,.5); }

/* Opções selecionáveis (sexo, cidade, vocation) */
.ns-choices { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.ns-choices--voc { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ns-form label.ns-choice { position: relative; display: block; margin: 0; font: inherit; color: inherit; cursor: pointer; }
.ns-choice > input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.ns-choice__box {
    position: relative; display: flex; align-items: center; gap: 12px; height: 100%; padding: 12px 14px;
    background: var(--noise), linear-gradient(#060a12, #0f1a2b);
    border: 2px solid #03060b; border-radius: 4px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 6px 14px rgba(0,0,0,.5);
    transition: box-shadow .15s ease, transform .15s ease;
}
.ns-choice:hover .ns-choice__box { box-shadow: inset 0 0 0 1px var(--azure-hi), inset 0 6px 14px rgba(0,0,0,.5); transform: translateY(-2px); }
.ns-choice > input:checked + .ns-choice__box {
    background: var(--noise), radial-gradient(circle at 50% 0%, #1d3556, #0a1424 75%);
    box-shadow: inset 0 0 0 2px var(--gold), 0 0 16px rgba(230,180,80,.28);
}
.ns-choice > input:checked + .ns-choice__box::after { content: "\25C6"; position: absolute; top: 6px; right: 9px; font-size: .75rem; color: var(--gold); }
.ns-choice > input:focus-visible + .ns-choice__box { outline: 2px solid var(--gold-hi); outline-offset: 2px; }
.ns-choice__ico {
    flex: none; width: 46px; height: 46px; display: grid; place-items: center; font-size: 1.3rem;
    color: var(--voc, var(--gold)); background: radial-gradient(circle at 50% 38%, #1d3556, #070b13);
    border: 2px solid #03060b; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--bronze);
}
.ns-choice__txt { min-width: 0; }
.ns-choice__txt b { display: block; font: 700 1.08rem var(--f-title); color: var(--parch); }
.ns-choice__txt small { display: block; margin-top: 1px; color: var(--parch-dim); font-size: .95rem; }
.ns-choice > input:checked + .ns-choice__box .ns-choice__txt b { color: var(--gold-hi); }
.ns-choice--tile .ns-choice__box { flex-direction: column; justify-content: center; text-align: center; padding: 16px 10px 14px; gap: 8px; }
.ns-choice--tile .ns-choice__ico { width: 56px; height: 56px; font-size: 1.6rem; }

/* Feedback do campo de nome */
.ns-feedback { min-height: 1.3em; }
.ns-feedback:empty { display: none; }
.ns-hint.is-ok   { color: #a9f0c3; } .ns-hint.is-ok i   { color: var(--hp); }
.ns-hint.is-warn { color: #ffd08a; } .ns-hint.is-warn i { color: #e08a2c; }
.ns-hint.is-bad  { color: #ffb3a8; } .ns-hint.is-bad i  { color: var(--bad); }

/* Listas de regras e blocos laterais */
.ns-tips--no li i { color: var(--bad); }
.ns-tips__h { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font: 700 .95rem var(--f-title); color: var(--gold); }
.ns-tips__h + .ns-tips { margin-bottom: 16px; }
.ns-tips + .ns-hint { margin-top: 14px; margin-bottom: 0; }
.ns-info + .ns-bar { margin-top: 14px; height: 10px; }

/* Set inicial (create_character.php): um por vocation, só o escolhido aparece */
.ns-eqset[hidden] { display: none; }

/* Lateral compacta (create_character.php): termina na altura dos botões do formulário */
.ns-aside--compact { gap: 16px; }
.ns-aside--compact .ns-win__title { padding: 6px 18px; font-size: .95rem; }
.ns-aside--compact .ns-win__body { padding: 10px 14px 14px; }
.ns-aside--compact .ns-info > div { padding: 5px 0; }
.ns-aside--compact .ns-info dt { font-size: .88rem; }
.ns-aside--compact .ns-info dd { font-size: .98rem; }
.ns-aside--compact .ns-info + .ns-bar { margin-top: 8px; height: 8px; }
/* bônus: chips pequenos em 3 colunas */
.ns-aside--compact .ns-chipgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.ns-aside--compact .ns-chip { justify-content: center; gap: 5px; padding: 4px 6px; font-size: .86rem; white-space: nowrap; }
/* set inicial: slots menores (o sprite é reduzido com suavização) */
.ns-aside--compact .ns-eq { grid-template-columns: repeat(3, 46px); grid-template-rows: repeat(4, 46px); gap: 6px; }
.ns-aside--compact .ns-eq__slot .ns-oimg { width: 40px; height: 40px; image-rendering: auto; }
.ns-aside--compact .ns-eq__slot.is-empty i { font-size: 1.1rem; }
.ns-aside--compact .ns-eq__note { margin: 10px 0 0; font-size: .86rem; }
/* regras: duas colunas lado a lado */
.ns-rules2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
.ns-aside--compact .ns-tips__h { margin-bottom: 6px; font-size: .88rem; }
.ns-aside--compact .ns-tips__h + .ns-tips, .ns-aside--compact .ns-tips { margin-bottom: 0; }
.ns-aside--compact .ns-tips { gap: 5px; }
.ns-aside--compact .ns-tips li { gap: 6px; font-size: .88rem; line-height: 1.3; }
.ns-aside--compact .ns-tips + .ns-hint, .ns-aside--compact .ns-rules2 + .ns-hint { margin: 10px 0 0; font-size: .86rem; }

/* Botões lado a lado no fim de um formulário */
.ns-actions--split .ns-btn { flex: 1 1 200px; margin-top: 0; }

@media (max-width: 700px) {
    .ns-choices--voc { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
    .ns-choice__box { transition: none; }
}

/* Vocation compacta (highscores): bolinha na cor da vocation + nome pequeno */
.ns-vocmini { display: inline-flex; align-items: center; gap: 6px; font: 600 .84rem var(--f-body); letter-spacing: .02em; color: var(--parch-dim); }
.ns-vocmini::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--voc, var(--parch-dim)); box-shadow: 0 0 6px var(--voc, transparent); }
.ns-pl__sub .ns-vocmini { margin-top: 1px; }

/* ==========================================================
   Páginas: Últimas mortes, Spells e Comandos
   ========================================================== */

/* Comando / palavras da magia em fonte de código */
.ns-cmd { display: inline-block; padding: 2px 9px; font: 600 .98rem Consolas, "Courier New", monospace; color: var(--gold-hi); background: #070b13; border: 1px solid var(--bronze); border-radius: 3px; overflow-wrap: anywhere; }
.ns-table .ns-w-cmd { width: 1%; white-space: nowrap; }

/* Últimas mortes */
.ns-when { color: var(--parch-dim); font-size: .95rem; white-space: nowrap; }
.ns-kill { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; text-decoration: none; color: var(--parch); }
.ns-table td .ns-kill i { margin: 0; }
.ns-kill--mob i { color: #f0a35c; }
.ns-kill--pvp, .ns-kill--pvp i { color: var(--bad); }
a.ns-kill--pvp:hover { color: #ff9b8f; }
.ns-table .ns-death__lvl { font: 700 1.14rem var(--f-body); }

/* Spells */
.ns-spell__name { display: block; margin-bottom: 4px; color: var(--parch); font-size: 1.06rem; }
.ns-tag--magia   { color: var(--azure-hi); }
.ns-tag--conjure { color: #f0a35c; }
.ns-num--mana { color: var(--mana); }
.ns-vocs { display: flex; flex-wrap: wrap; gap: 4px 14px; }
@media (max-width: 700px) {
    .ns-table .ns-w-cmd { width: auto; white-space: normal; }
    .ns-table--stack td.ns-td--main .ns-spell__name { margin-bottom: 6px; }
}

/* ==========================================================
   Guilds: página pública (guild.php) e gestão (guild_manage.php)
   ========================================================== */
.ns-story { margin: 0; color: var(--parch); font-size: 1.06rem; line-height: 1.6; overflow-wrap: anywhere; }
.ns-rank { display: inline-block; margin-right: 6px; color: var(--parch); font-weight: 700; }
.ns-gp-emblem { display: flex; justify-content: center; margin-bottom: 14px; }
.ns-gp-emblem .ns-emblem { width: 84px; height: 84px; font-size: 1.9rem; }

/* Edição de rank/nick na própria linha do membro */
.ns-form.ns-rowform { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; }
.ns-form input.ns-input.ns-input--sm { flex: 1 1 120px; min-width: 100px; width: auto; padding: 7px 10px; font-size: .98rem; }
.ns-form.ns-rowform .ns-btn { margin: 0; }

/* Listas com ação à direita (personagens, convites) */
.ns-gchars { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.ns-gchars li { display: flex; align-items: center; gap: 12px; padding: 10px 0; }
.ns-gchars li + li { border-top: 1px dashed rgba(79,127,181,.4); }
.ns-gchars .ns-emblem { flex: none; width: 44px; height: 44px; font-size: 1rem; }
.ns-gchars__txt { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ns-gchars__txt > a { color: var(--parch); font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
.ns-gchars__txt > a:hover { color: var(--gold-hi); }
.ns-gchars__txt small a { color: var(--gold-hi); }
.ns-gchars__act { flex: none; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.ns-gchars__act form { margin: 0; }
.ns-gchars__act .ns-btn { margin: 0; }
.ns-btn[disabled] { opacity: .5; cursor: not-allowed; filter: grayscale(.4); }

/* Vice-líder da guild */
.ns-tag--vice { color: var(--azure-hi); }
.ns-gchars__txt small .ns-tag { margin-right: 4px; }

/* ==========================================================
   Cargos da guild: selo (Líder / Vice-líder / Membro) e nick
   ========================================================== */
.ns-rankbadge {
    display: inline-flex; align-items: center; gap: 8px; padding: 3px 14px 3px 4px; white-space: nowrap; line-height: 1;
    font: 700 .84rem var(--f-title); letter-spacing: .07em; text-transform: uppercase;
    color: var(--rb-fg); background: var(--rb-bg); border: 1px solid var(--rb-bd); border-radius: 999px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 1px 4px rgba(0,0,0,.55);
}
.ns-rankbadge__ico {
    flex: none; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; font-size: .72rem;
    color: var(--rb-ico-fg); background: var(--rb-ico-bg); box-shadow: inset 0 0 0 1px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.25);
}
.ns-table td .ns-rankbadge i, .ns-gchars .ns-rankbadge i { margin: 0; color: inherit; }
.ns-rankbadge--leader {
    --rb-fg: #2b1c04; --rb-bg: linear-gradient(#f7d97c, #cf9b32); --rb-bd: #fbe6a0; --rb-ico-bg: #2b1c04; --rb-ico-fg: #ffd66b;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.45), 0 1px 4px rgba(0,0,0,.55), 0 0 14px rgba(230,180,80,.35);
}
.ns-rankbadge--vice   { --rb-fg: #c9e0ff; --rb-bg: linear-gradient(#24477a, #142c52); --rb-bd: #5a8fd0; --rb-ico-bg: #6fb0ff; --rb-ico-fg: #0b1a30; }
.ns-rankbadge--member { --rb-fg: #a9bdd6; --rb-bg: linear-gradient(#192a42, #101c2e); --rb-bd: #2f4a6e; --rb-ico-bg: #2f4a6e; --rb-ico-fg: #a9bdd6; font-weight: 600; }

/* Rank em cima, nick embaixo e separado (sem ficar grudado) */
.ns-rankcell { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.ns-nick { display: inline-flex; align-items: center; gap: 6px; padding-left: 6px; font-size: .95rem; font-style: italic; color: var(--parch-dim); overflow-wrap: anywhere; }
.ns-table td .ns-nick i { margin: 0; font-size: .72rem; color: var(--bronze); }

/* Linha do líder com um leve destaque dourado */
.ns-table tr.ns-row--leader td { background-color: rgba(230,180,80,.07); }
.ns-table tr.ns-row--leader td:first-child { box-shadow: inset 3px 0 0 var(--gold); }

/* Top Guilds (home): brasão da guild no tamanho da coluna */
.ns-guilds .ns-emblem { width: 44px; height: 44px; font-size: 1rem; }

/* Cor do brasão da guild: quadradinhos de cor */
.ns-swatchset { border: 0; margin: 0; padding: 0; min-width: 0; }
.ns-swatchset legend { display: block; margin: 0 0 10px; padding: 0; font: 600 .92rem var(--f-title); color: var(--parch-dim); }
.ns-swatchset legend i { margin-right: 6px; color: var(--azure-hi); }
.ns-swatches { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 8px; }
.ns-form label.ns-swatch { position: relative; display: block; margin: 0; cursor: pointer; }
.ns-swatch > input[type="radio"] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.ns-swatch > span {
    display: block; aspect-ratio: 1 / 1; border-radius: 5px; background: var(--c); border: 2px solid #03060b;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.28), 0 1px 3px rgba(0,0,0,.6); transition: transform .12s ease;
}
.ns-swatch:hover > span { transform: translateY(-2px); }
.ns-swatch > input[type="radio"]:checked + span { box-shadow: inset 0 0 0 2px #fff, 0 0 0 2px var(--gold), 0 0 12px rgba(230,180,80,.55); }
.ns-swatch > input[type="radio"]:focus-visible + span { outline: 2px solid var(--gold-hi); outline-offset: 2px; }
.ns-swatch--custom > span { background: conic-gradient(#ff4d4d, #ffd36b, #6fd57f, #59d9d9, #5aa2ff, #d58bff, #ff4d4d); }
.ns-swatch--custom > input[type="color"] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; opacity: 0; cursor: pointer; }
@media (prefers-reduced-motion: reduce) { .ns-swatch > span { transition: none; } }

/* =====================================================================
   NOTÍCIAS EM BLOCOS
   - Últimas atualizações (lista que expande)
   - Notícia completa (.ns-post) e seus blocos
   - Editor do painel (admin_news.php)
   ===================================================================== */
[hidden] { display: none !important; }

/* ---------- Últimas atualizações ---------- */
.ns-upds { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.ns-upd {
    border: 2px solid #03060b; border-radius: 3px;
    background: linear-gradient(#162842, #0f1b2e);
    box-shadow: inset 0 0 0 1px rgba(79,127,181,.55);
    transition: box-shadow .15s ease;
}
.ns-upd:hover { box-shadow: inset 0 0 0 1px var(--azure-hi); }
.ns-upd.is-current { box-shadow: inset 0 0 0 1px var(--gold); }
.ns-upd summary {
    display: grid; grid-template-columns: 30px 112px minmax(0, 1fr) 18px; align-items: center; gap: 12px;
    padding: 9px 14px; cursor: pointer; list-style: none; color: var(--parch);
}
.ns-upd summary::-webkit-details-marker { display: none; }
.ns-upd summary:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: -2px; }
.ns-upd__ico {
    display: grid; place-items: center; width: 28px; height: 28px; font-size: .85rem; color: var(--gold-hi);
    background: #070b13; border: 1px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px var(--bronze);
}
.ns-upd__date { font: 600 .9rem var(--f-body); color: var(--parch-dim); white-space: nowrap; }
.ns-upd__txt { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 500 1.02rem var(--f-body); }
.ns-upd__txt strong { color: var(--gold-hi); font-weight: 700; }
.ns-upd__ex { color: var(--parch); }
.ns-upd__chev { color: var(--parch-dim); font-size: .8rem; text-align: right; transition: transform .2s ease, color .15s ease; }
.ns-upd:hover .ns-upd__chev { color: var(--gold-hi); }
.ns-upd[open] .ns-upd__chev { transform: rotate(90deg); color: var(--gold-hi); }
.ns-upd[open] .ns-upd__ex { display: none; }
.ns-upd[open] .ns-upd__txt { white-space: normal; }
.ns-upd__body { padding: 2px 16px 14px 56px; animation: ns-upd-in .22s ease both; }
.ns-upd__body p { color: var(--parch); font-size: 1.05rem; line-height: 1.55; margin: 0 0 12px; max-width: 70ch; }
@keyframes ns-upd-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

/* ---------- Notícia completa ---------- */
.ns-post {
    background: linear-gradient(rgba(7,11,19,.5), rgba(7,11,19,.32));
    border: 1px solid rgba(79,127,181,.55); border-radius: 4px;
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.45), inset 0 8px 22px rgba(0,0,0,.35);
    padding: 22px 26px 24px;
}
.ns-post__head { display: flex; align-items: center; gap: 12px; padding-bottom: 14px; margin-bottom: 20px; border-bottom: 1px dashed rgba(79,127,181,.5); }
.ns-post__head > i {
    flex: none; display: grid; place-items: center; width: 34px; height: 34px; color: var(--gold-hi); font-size: 1rem;
    background: #070b13; border: 1px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px var(--bronze);
}
.ns-post__head h3 { flex: 1; min-width: 0; font: 700 1.4rem/1.2 var(--f-title); color: var(--gold-hi); margin: 0; text-shadow: 0 1px 0 #000; }
.ns-post__head time { flex: none; font: 600 .92rem var(--f-body); color: var(--parch-dim); }
.ns-post__edit { flex: none; font: 700 .85rem var(--f-body); color: var(--parch); text-decoration: none; border-bottom: 1px dotted var(--parch-dim); }
.ns-post__edit:hover { color: #fff; }

.ns-post__body { display: flow-root; color: var(--parch); font-size: 1.1rem; line-height: 1.65; }
.ns-blk { min-width: 0; }
.ns-blk--text p { margin: 0 0 1.05em; }
.ns-blk--text.is-justify { text-align: justify; hyphens: auto; -webkit-hyphens: auto; }
.ns-blk--text.is-center { text-align: center; }
.ns-blk--text.is-right { text-align: right; }
.ns-blk--text a { color: var(--gold-hi); word-break: break-word; }
.ns-blk--text a:hover { color: #fff; }
.ns-blk--text strong { color: #fff; }

/* subtítulo destacado ("## Texto") */
.ns-subtitle { clear: both; text-align: center; margin: 26px 0 14px; font: 700 1.12rem/1.3 var(--f-title); letter-spacing: .09em; text-transform: uppercase; color: var(--azure-hi); text-shadow: 0 1px 0 #000, 0 0 14px rgba(47,111,207,.45); }
.ns-subtitle span::before, .ns-subtitle span::after { content: "\25C6"; color: var(--gold); font-size: .6em; vertical-align: .18em; margin: 0 12px; }

/* imagem e vídeo: largura controlada pelo painel (--w) */
.ns-blk--img, .ns-blk--video { width: var(--w, 100%); max-width: 100%; margin: 6px 0 16px; }
.ns-blk--img img { display: block; width: 100%; height: auto; }
.ns-blk--img.has-frame img { border: 2px solid #03060b; border-radius: 3px; box-shadow: 0 0 0 1px var(--bronze), 0 6px 14px rgba(0,0,0,.55); }
.ns-blk--img a { display: block; }
.ns-blk--img figcaption { margin-top: 7px; text-align: center; font: italic 500 .95rem var(--f-body); color: var(--parch-dim); }
.ns-blk--video .ns-video, .ns-blk--video .ns-videofile { max-width: none; width: 100%; margin: 0; }
.ns-al-left   { margin-right: auto; }
.ns-al-center { margin-left: auto; margin-right: auto; }
.ns-al-right  { margin-left: auto; }
.ns-al-float-left  { float: left;  margin: 6px 24px 12px 0; }
.ns-al-float-right { float: right; margin: 6px 0 12px 24px; }

.ns-blk--link { margin: 8px 0 18px; }
.ns-blk--link.is-left   { text-align: left; }
.ns-blk--link.is-center { text-align: center; }
.ns-blk--link.is-right  { text-align: right; }
.ns-blk--link .ns-btn { padding: 10px 22px; font-size: .98rem; }
.ns-blk--link .ns-btn i { font-size: .8em; }
.ns-textlink { color: var(--gold-hi); font-weight: 700; border-bottom: 1px dotted var(--gold); text-decoration: none; }
.ns-textlink:hover { color: #fff; }

/* quebra de linha com o brasão */
.ns-divider { clear: both; margin: 20px 0; text-align: center; }
.ns-divider img { display: block; width: 100%; max-width: 780px; height: auto; margin: 0 auto; }

.ns-post__sign { clear: both; text-align: center; margin: 8px 0 0; padding-top: 6px; color: var(--parch); font-size: 1.02rem; }
.ns-post__sign strong { color: var(--gold-hi); }

/* navegação entre publicações */
.ns-postnav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; margin-top: 18px; padding-top: 16px; border-top: 1px dashed rgba(79,127,181,.5); }
.ns-postnav__pos { font: 700 .98rem var(--f-title); color: var(--parch-dim); letter-spacing: .06em; }
.ns-postnav .ns-btn { padding: 9px 18px; font-size: .92rem; }
.ns-postnav__next { justify-self: end; }
.ns-postnav__prev { justify-self: start; }
.ns-postnav .ns-btn.is-off { filter: grayscale(1) brightness(.55); opacity: .65; cursor: not-allowed; pointer-events: none; }

@media (max-width: 720px) {
    .ns-upd summary { grid-template-columns: 28px minmax(0, 1fr) 16px; gap: 4px 10px; padding: 9px 11px; }
    .ns-upd__ico { grid-row: 1 / span 2; }
    .ns-upd__date { grid-column: 2; grid-row: 2; font-size: .82rem; }
    .ns-upd__txt { grid-column: 2; grid-row: 1; }
    .ns-upd__chev { grid-column: 3; grid-row: 1 / span 2; }
    .ns-upd__body { padding: 2px 12px 12px 12px; }
    .ns-post { padding: 16px 14px 18px; }
    .ns-post__head h3 { font-size: 1.15rem; }
    .ns-al-float-left, .ns-al-float-right { float: none; margin: 6px auto 16px; width: min(var(--w, 100%), 100%); }
    .ns-blk--text.is-justify { text-align: left; }
    .ns-postnav { grid-template-columns: 1fr 1fr; }
    .ns-postnav__pos { grid-column: 1 / -1; grid-row: 1; text-align: center; }
    .ns-postnav .ns-btn { width: 100%; padding: 9px 8px; }
    .ns-postnav__next { justify-self: stretch; }
    .ns-postnav__prev { justify-self: stretch; }
}
@media (prefers-reduced-motion: reduce) { .ns-upd__body { animation: none; } .ns-upd__chev { transition: none; } }

/* ---------- Editor (painel) ---------- */
.ns-ed__top { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 16px; }
.ns-ed select { width: 100%; }
.ns-ed #f-summary { min-height: 64px; }
.ns-ed__head { margin-top: 8px; padding-top: 14px; border-top: 1px dashed rgba(79,127,181,.5); }
.ns-ed__head h3 { font: 700 1.15rem var(--f-title); color: var(--gold-hi); margin: 0 0 4px; }
.ns-dim { color: var(--parch-dim); font-weight: 400; }

.ns-blocks { display: flex; flex-direction: column; margin-bottom: 8px; }
.ns-blocks__empty { text-align: center; padding: 18px 10px 4px; color: var(--parch-dim); }

.ns-gap { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px; padding: 6px 0; min-height: 34px; }
.ns-gap__plus { display: grid; place-items: center; width: 22px; height: 22px; font-size: .7rem; color: var(--parch-dim); border: 1px dashed var(--bronze); border-radius: 50%; }
.ns-gap__b {
    display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; font: 600 .82rem var(--f-body); color: var(--parch);
    background: #0d1a2e; border: 1px solid var(--bronze); border-radius: 14px; cursor: pointer;
}
.ns-gap__b:hover, .ns-gap__b:focus-visible { color: #2a1604; background: linear-gradient(#ffe08a, #e6b450); border-color: #03060b; outline: none; }
@media (hover: hover) {
    .ns-gap:not(:hover):not(:focus-within) .ns-gap__b { display: none; }
    .ns-blocks > .ns-gap:last-child .ns-gap__b { display: inline-flex !important; }
}

.ns-bcard { border: 2px solid #03060b; border-radius: 4px; background: #0b1424; box-shadow: inset 0 0 0 1px var(--bronze), 0 4px 10px rgba(0,0,0,.4); }
.ns-bcard.is-new { animation: ns-bcard-new 1.2s ease; }
@keyframes ns-bcard-new { from { box-shadow: inset 0 0 0 1px var(--gold-hi), 0 0 0 3px rgba(255,224,138,.5); } to { box-shadow: inset 0 0 0 1px var(--bronze), 0 4px 10px rgba(0,0,0,.4); } }
.ns-bcard__head { display: flex; align-items: center; gap: 10px; padding: 6px 8px 6px 12px; background: linear-gradient(#24477a, #17335c); border-bottom: 1px solid #03060b; border-radius: 2px 2px 0 0; }
.ns-bcard__tag { font: 700 .95rem var(--f-title); color: var(--gold-hi); }
.ns-bcard__tag i { margin-right: 4px; font-size: .85em; }
.ns-bcard__n { font: 600 .85rem var(--f-body); color: var(--parch-dim); }
.ns-bcard__tools { margin-left: auto; display: flex; gap: 4px; }
.ns-ib { width: 30px; height: 30px; display: grid; place-items: center; color: var(--parch); background: #0d1a2e; border: 1px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px var(--bronze); cursor: pointer; font-size: .8rem; }
.ns-ib:hover:not(:disabled) { color: var(--gold-hi); filter: brightness(1.25); }
.ns-ib:disabled { opacity: .3; cursor: default; }
.ns-ib--del:hover:not(:disabled) { color: #ffb4aa; background: #4a1913; }
.ns-bcard__body { padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.ns-bcard__body .ns-hint { margin: 0; }
.ns-ed__f > label { margin-bottom: 6px; }
.ns-ed__f input[type=text] { margin-bottom: 0; }
.ns-ed__row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

.ns-ed__ta { min-height: 120px; }
.ns-tbar { display: flex; flex-wrap: wrap; gap: 6px; }
.ns-tb { min-width: 34px; padding: 5px 10px; font: 600 .9rem var(--f-body); color: var(--parch); background: #0d1a2e; border: 1px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px var(--bronze); cursor: pointer; }
.ns-tb:hover { color: var(--gold-hi); }

.ns-seg { display: flex; flex-wrap: wrap; gap: 5px; }
.ns-seg__b { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; font: 600 .88rem var(--f-body); color: var(--parch); background: #0d1a2e; border: 1px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px var(--bronze); cursor: pointer; }
.ns-seg__b:hover { color: var(--gold-hi); }
.ns-seg__b.is-on { color: #2a1604; background: linear-gradient(#ffe08a, #e6b450 50%, #a87a2c); box-shadow: inset 0 1px 0 rgba(255,255,255,.4); }

.ns-size { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ns-size input[type=range] { flex: 1 1 180px; min-width: 140px; accent-color: var(--gold); }
.ns-size__val { min-width: 48px; text-align: right; font: 700 1rem var(--f-title); color: var(--gold-hi); }
.ns-size__presets { display: flex; gap: 5px; }
.ns-chipbtn { padding: 4px 10px; font: 600 .82rem var(--f-body); color: var(--parch); background: #0d1a2e; border: 1px solid var(--bronze); border-radius: 12px; cursor: pointer; }
.ns-chipbtn:hover { color: #2a1604; background: linear-gradient(#ffe08a, #e6b450); }

.ns-up { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ns-up__file { display: none; }
.ns-up__state { margin: 0; font: 600 .95rem var(--f-body); color: var(--parch-dim); }
.ns-up__state.is-ok { color: #a9f0c3; }
.ns-up__state.is-err { color: #ffb4aa; }
.ns-up .ns-btn { margin: 0; }

.ns-pv { display: flow-root; padding: 10px; background: repeating-conic-gradient(#0a1220 0 25%, #0d1830 0 50%) 0 0 / 18px 18px; border: 1px dashed var(--bronze); border-radius: 3px; color: var(--parch-dim); font-size: .92rem; }
.ns-pv img { display: block; max-width: 100%; height: auto; }
.ns-pv--center img { margin: 0 auto; }
.ns-pv--right img { margin-left: auto; }
.ns-pv.has-frame img { border: 2px solid #03060b; box-shadow: 0 0 0 1px var(--bronze); }
.ns-pv.is-float img { max-width: none; margin: 0 14px 6px 0; float: left; }
.ns-pv--right.is-float img { float: right; margin: 0 0 6px 14px; }
.ns-pv__empty { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 22px 0; }

.ns-divpick { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ns-divpick__o { display: flex; flex-direction: column; gap: 6px; padding: 10px; color: var(--parch); font: 600 .92rem var(--f-title); background: #0a1220; border: 2px solid #03060b; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--bronze); cursor: pointer; }
.ns-divpick__o img { width: 100%; height: auto; display: block; }
.ns-divpick__o:hover { filter: brightness(1.15); }
.ns-divpick__o.is-on { box-shadow: inset 0 0 0 2px var(--gold-hi); color: var(--gold-hi); }

.ns-ed__sig { margin-top: 14px; padding-top: 14px; border-top: 1px dashed rgba(79,127,181,.5); }
.ns-ed__sig input[type=text] { margin-top: 2px; }
.ns-ed .ns-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.ns-ed .ns-actions .ns-btn { margin: 0; }

.ns-previewbox { margin-top: 24px; padding: 12px; border: 2px solid var(--gold); border-radius: 4px; background: rgba(230,180,80,.05); }
.ns-previewbox__bar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; color: var(--gold-hi); font-family: var(--f-title); }
.ns-previewbox__bar .ns-btn { margin: 0; }

@media (max-width: 720px) {
    .ns-ed__top, .ns-ed__row2, .ns-divpick { grid-template-columns: 1fr; }
}

/* Últimas atualizações acima do hero */
.ns-updwin { margin-bottom: 26px; }

/* =====================================================================
   HOME EM 3 COLUNAS (index.php)
   Esquerda: Online agora + Top Guilds | Centro: Atualizações, Hero, Rates, Notícias
   Direita: Maiores levels + Entrar
   ===================================================================== */
.container:has(.ns-home3) { max-width: 1440px; }
.ns-home3 { display: grid; grid-template-columns: 270px minmax(0, 1fr) 290px; gap: 26px; align-items: start; font-family: var(--f-body); }
.ns-home3 > * { min-width: 0; }
.ns-home3 .ns-hero, .ns-home3 .ns-rates, .ns-home3 .ns-updwin { margin-bottom: 0; }

/* hero e rates ajustados para a coluna do meio */
.ns-home3 .ns-hero { min-height: 430px; }
.ns-home3 .ns-hero__text { padding: 18px 56px 0; }
.ns-home3 .ns-hero__lead { font-size: 1.15rem; }
.ns-home3 .ns-mon img { width: 96px; height: 96px; }
.ns-home3 .ns-lineup .ns-mon:nth-child(n+6) { display: none; }
.ns-home3 .ns-slot b { font-size: 1.6rem; }

/* listas dentro das colunas estreitas */
.ns-home3 .ns-guilds li { grid-template-columns: 30px 44px minmax(0, 1fr) auto; gap: 8px; }
.ns-home3 .ns-guilds__name, .ns-home3 .ns-rank__name { overflow-wrap: anywhere; }
.ns-home3 .ns-guilds__score { font-size: .95rem; }

@media (max-width: 1240px) {
    .ns-home3 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .ns-home3 .ns-col--c { grid-column: 1 / -1; order: -1; }
}
@media (max-width: 860px) {
    .ns-home3 .ns-hero__text { padding: 26px 20px 0; }
    .ns-home3 .ns-mon img { width: 80px; height: 80px; }
    .ns-home3 .ns-lineup .ns-mon:nth-child(n+5) { display: none; }
}
@media (max-width: 700px) {
    .ns-home3 { grid-template-columns: 1fr; }
}

/* colunas laterais: títulos e guilds sem quebrar feio */
.ns-home3 .ns-col--l .ns-win__title, .ns-home3 .ns-col--r .ns-win__title { padding: 9px 14px; font-size: .92rem; letter-spacing: .02em; }
.ns-home3 .ns-win__title > span::before { margin-right: 6px; }
.ns-home3 .ns-win__title a { white-space: nowrap; }
.ns-home3 .ns-guilds li { grid-template-columns: 28px 44px minmax(0, 1fr); }
.ns-home3 .ns-guilds__name, .ns-home3 .ns-rank__name { overflow-wrap: break-word; word-break: normal; }
.ns-home3 .ns-guilds__score { grid-column: 3; text-align: left; font-size: .92rem; }
.ns-home3 .ns-guilds__score small { display: inline; margin-left: 4px; }

/* Últimas atualizações mais compacta */
.ns-updwin .ns-win__title { padding: 6px 18px; font-size: .92rem; }
.ns-updwin .ns-win__body { padding: 9px 12px 11px; }
.ns-updwin .ns-upds { gap: 4px; }
.ns-updwin .ns-upd summary { grid-template-columns: 24px 96px minmax(0, 1fr) 16px; gap: 10px; padding: 5px 10px; }
.ns-updwin .ns-upd__ico { width: 22px; height: 22px; font-size: .72rem; }
.ns-updwin .ns-upd__date { font-size: .84rem; }
.ns-updwin .ns-upd__txt { font-size: .95rem; }
.ns-updwin .ns-upd__body { padding: 0 12px 10px 44px; }
.ns-updwin .ns-upd__body p { font-size: .98rem; line-height: 1.45; margin-bottom: 8px; }
.ns-updwin .ns-upd__body .ns-btn { padding: 5px 12px; font-size: .82rem; }
@media (max-width: 720px) {
    .ns-updwin .ns-upd summary { grid-template-columns: 24px minmax(0, 1fr) 16px; gap: 2px 8px; }
    .ns-updwin .ns-upd__body { padding: 0 10px 10px; }
}
/* Últimas atualizações ainda mais compacta */
.ns-updwin .ns-win__title { padding: 5px 16px; font-size: .88rem; }
.ns-updwin .ns-win__body { padding: 7px 10px 9px; }
.ns-updwin .ns-upds { gap: 3px; }
.ns-updwin .ns-upd summary { grid-template-columns: 20px 88px minmax(0, 1fr) 14px; gap: 8px; padding: 3px 8px; }
.ns-updwin .ns-upd__ico { width: 19px; height: 19px; font-size: .62rem; }
.ns-updwin .ns-upd__date { font-size: .8rem; }
.ns-updwin .ns-upd__txt { font-size: .9rem; }
.ns-updwin .ns-upd__body { padding: 0 10px 8px 36px; }
.ns-updwin .ns-upd__body p { font-size: .92rem; line-height: 1.4; margin-bottom: 6px; }
.ns-updwin .ns-upd__body .ns-btn { padding: 4px 10px; font-size: .78rem; }
@media (max-width: 720px) {
    .ns-updwin .ns-upd summary { grid-template-columns: 20px minmax(0, 1fr) 14px; }
    .ns-updwin .ns-upd__body { padding: 0 8px 8px; }
}

/* =====================================================================
   TÍTULO DO HEADER EM 3D (sem o escudo) + subtítulo centralizado
   ===================================================================== */
.ns-brand > span:not(.ns-torch) { display: block; text-align: center; }
.ns-brand__name {
    display: block; position: relative; padding-bottom: 4px;
    font: 900 clamp(2rem, 3.8vw, 3.1rem)/1.05 var(--f-logo); letter-spacing: .03em;
    background:
        linear-gradient(105deg, transparent 38%, rgba(255,255,255,.9) 50%, transparent 62%) 100% 0 / 260% 100% no-repeat,
        linear-gradient(180deg, #fffbe6 0%, #ffeaa3 16%, #f6c850 38%, #c98f2b 50%, #f2c04a 62%, #b97d20 82%, #8a5513 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    filter:
        drop-shadow(0 1px 0 #9a6416) drop-shadow(0 2px 0 #865410) drop-shadow(0 3px 0 #72460d)
        drop-shadow(0 4px 0 #5e3a0a) drop-shadow(0 5px 0 #03060b)
        drop-shadow(0 10px 8px rgba(0,0,0,.75)) drop-shadow(0 0 18px rgba(70,150,255,.5));
    animation: ns-title-shine 6.5s ease-in-out infinite;
}
.ns-brand__sub {
    display: block; margin-top: 10px; padding-left: .14em; text-align: center;
    font: 700 .92rem var(--f-title); letter-spacing: .14em; color: #b9cde6;
    text-shadow: 0 1px 0 #03060b, 0 0 10px rgba(70,150,255,.35);
}
@keyframes ns-title-shine { 0%, 55% { background-position: 100% 0, 0 0; } 100% { background-position: 0% 0, 0 0; } }
@media (prefers-reduced-motion: reduce) { .ns-brand__name { animation: none; } }

/* =====================================================================
   BOTÃO VOLTAR AO TOPO (todas as páginas)
   ===================================================================== */
.ns-top {
    position: fixed; z-index: 1100; right: 22px; bottom: 22px;
    right: max(22px, env(safe-area-inset-right)); bottom: max(22px, env(safe-area-inset-bottom));
    width: 56px; height: 56px; padding: 0; border: 0; background: none; cursor: pointer;
    opacity: 0; transform: translateY(16px) scale(.85); pointer-events: none;
    transition: opacity .25s ease, transform .25s ease, filter .15s ease;
    filter: drop-shadow(0 8px 10px rgba(0,0,0,.6));
}
.ns-top.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.ns-top:hover { transform: translateY(-4px); filter: drop-shadow(0 12px 14px rgba(0,0,0,.65)) drop-shadow(0 0 14px rgba(90,170,255,.6)); }
.ns-top:active { transform: translateY(0) scale(.96); }
.ns-top:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 4px; border-radius: 50%; }
/* anel dourado = quanto da página você já rolou */
.ns-top__ring {
    display: grid; place-items: center; width: 100%; height: 100%; border-radius: 50%;
    background: conic-gradient(#ffe08a var(--p, 0%), #6b4a14 0);
    border: 2px solid #03060b; box-shadow: 0 0 0 1px rgba(230,180,80,.55);
}
.ns-top__disc {
    display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%;
    font-size: 1.05rem; color: var(--gold-hi); text-shadow: 0 1px 0 #03060b;
    background: radial-gradient(circle at 35% 28%, #6db3ff, #2f74d6 45%, #12397d);
    border: 2px solid #03060b;
    box-shadow: inset 0 2px 0 rgba(255,255,255,.4), inset 0 -3px 0 rgba(0,0,0,.3);
}
.ns-top:hover .ns-top__disc { color: #fff; filter: brightness(1.12); }
.ns-top:hover .ns-top__disc i { animation: ns-top-bob .7s ease-in-out infinite alternate; }
@keyframes ns-top-bob { to { transform: translateY(-3px); } }
@media (max-width: 560px) { .ns-top { width: 48px; height: 48px; right: 14px; bottom: 14px; } .ns-top__disc { width: 35px; height: 35px; font-size: .95rem; } }
@media (prefers-reduced-motion: reduce) { .ns-top, .ns-top:hover .ns-top__disc i { transition: none; animation: none; } }


/* =====================================================================
   AVISO DE COOKIES + página Política de Cookies
   ===================================================================== */
.ns-cookie {
    position: fixed; z-index: 1200; left: 50%; bottom: 18px;
    width: min(800px, calc(100% - 28px));
    transform: translate(-50%, 26px); opacity: 0;
    transition: opacity .28s ease, transform .28s ease;
    font-family: var(--f-body);
    background: var(--noise), linear-gradient(#16233a, #0e1828);
    border: 2px solid #03060b; border-radius: 4px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 0 0 4px #091221, inset 0 0 0 5px rgba(230,180,80,.28), 0 14px 34px rgba(0,0,0,.7);
}
.ns-cookie.is-in { opacity: 1; transform: translate(-50%, 0); }
.ns-cookie[hidden] { display: none; }
.ns-cookie__bar {
    display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 6px 6px 0; padding: 7px 8px 7px 18px;
    font: 700 .98rem var(--f-title); letter-spacing: .04em; color: var(--gold-hi); text-shadow: 0 1px 0 #000;
    background: linear-gradient(#3f84e6, #2760b8 55%, #173f82); border: 1px solid #03060b; border-radius: 2px;
    box-shadow: inset 0 1px 0 rgba(190,225,255,.45), inset 0 -2px 0 rgba(0,0,0,.35);
}
.ns-cookie__bar i { color: var(--gold); margin-right: 8px; }
.ns-cookie__x {
    flex: none; width: 28px; height: 28px; display: grid; place-items: center; cursor: pointer; font-size: .85rem;
    color: var(--parch); background: #0d1a2e; border: 1px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px var(--bronze);
}
.ns-cookie__x:hover { color: #fff; background: #4a1913; }
.ns-cookie__x i { margin: 0; color: inherit; }
.ns-cookie__body { display: flex; align-items: center; gap: 22px; padding: 14px 20px 18px; }
.ns-cookie__body p { flex: 1; min-width: 0; margin: 0; color: var(--parch); font-size: 1.02rem; line-height: 1.5; }
.ns-cookie__body p a { color: var(--gold-hi); font-weight: 700; }
.ns-cookie__btns { flex: none; display: flex; flex-direction: column; gap: 10px; min-width: 168px; }
.ns-cookie__btns .ns-btn { width: 100%; padding: 9px 14px; font-size: .9rem; }
.ns-btn--steel { background: linear-gradient(#6b7f9c, #34465f 48%, #1f2d42); color: #eaf2fc; text-shadow: 0 1px 0 #000; }
.ns-btn--steel:hover { color: #fff; }
.ns-cookie:focus-within { outline: none; }
body.ns-cookie-open .ns-footer { padding-bottom: 0; }

/* botões "de link" (rodapé) */
.ns-linkbtn { background: none; border: 0; padding: 0; font: inherit; color: var(--parch-dim); text-decoration: underline; text-decoration-style: dotted; cursor: pointer; }
.ns-linkbtn:hover { color: var(--gold-hi); }
.ns-footer__legal a { color: var(--parch-dim); text-decoration: underline; text-decoration-style: dotted; }
.ns-footer__legal a:hover { color: var(--gold-hi); }

/* o botão de voltar ao topo sobe quando o aviso ocupa a largura toda */
@media (max-width: 900px) {
    body.ns-cookie-open .ns-top { bottom: calc(var(--ns-cookie-h, 200px) + 32px); }
}
@media (max-width: 640px) {
    .ns-cookie { bottom: 10px; width: calc(100% - 20px); }
    .ns-cookie__body { flex-direction: column; align-items: stretch; gap: 14px; padding: 12px 14px 16px; }
    .ns-cookie__body p { font-size: .95rem; }
    .ns-cookie__btns { flex-direction: row; min-width: 0; }
    .ns-cookie__btns .ns-btn { flex: 1; }
}
@media (prefers-reduced-motion: reduce) { .ns-cookie { transition: none; } }

/* ---------- Política de Cookies (cookies.php) ---------- */
.ns-legal { color: var(--parch); font-size: 1.06rem; line-height: 1.65; }
.ns-legal p { margin: 0 0 14px; }
.ns-legal h3 { margin: 22px 0 8px; font: 700 1.12rem var(--f-title); color: var(--gold-hi); }
.ns-legal h3:first-child { margin-top: 0; }
.ns-legal ul { margin: 0 0 14px; padding: 0; list-style: none; }
.ns-legal li { position: relative; padding: 4px 0 4px 24px; }
.ns-legal li::before { content: "\25C6"; position: absolute; left: 4px; top: 7px; font-size: .6rem; color: var(--gold); }
.ns-legal a { color: var(--gold-hi); }
.ns-legal__meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.ns-legal__meta span { color: var(--parch-dim); }
.ns-legal__meta i { color: var(--gold); margin-right: 6px; }
.ns-legal__status { margin: 4px 0 16px; padding: 10px 14px; background: #070b13; border: 1px solid var(--bronze); border-radius: 3px; }
.ns-legal__status b { color: var(--gold-hi); }
.ns-ctype { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin: 0 0 8px; }
.ns-ctype h3 { margin: 0; }
.ns-ctag { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; font: 700 .78rem var(--f-title); letter-spacing: .05em; text-transform: uppercase; border: 1px solid #03060b; border-radius: 3px; }
.ns-ctag--on  { color: #0f2a1c; background: linear-gradient(#a9f0c3, #4fbf5f); }
.ns-ctag--off { color: var(--parch); background: linear-gradient(#52627a, #26344a); }
.ns-ctag--opt { color: #2a1604; background: linear-gradient(#ffe08a, #e6b450 50%, #a87a2c); }
.ns-legal .ns-table td code, .ns-legal .ns-table th code { white-space: nowrap; }

/* ==========================================================
   Páginas informativas: downloads.php, rules.php, support.php
   Reaproveitam .ns-win, .ns-card, .ns-btn, .ns-choice, .ns-tagb...
   e só acrescentam o que ainda não existia.
   ========================================================== */
.ns-infopage { max-width: 1040px; margin: 0 auto; display: flex; flex-direction: column; gap: 26px; font-family: var(--f-body); }
.ns-infopage .ns-win { animation: ns-rise .45s ease both; }
.ns-duo { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 26px; align-items: start; }
.ns-duo > .ns-win, .ns-duo > .ns-col { min-width: 0; }
.ns-infopage .ns-flash { display: flex; align-items: flex-start; gap: 10px; margin: 16px 0 0; }
.ns-infopage .ns-flash i { flex: none; margin-top: .2em; }
.ns-lead { margin: 0 0 14px; color: var(--parch); font-size: 1.08rem; line-height: 1.6; }
.ns-lead:last-child { margin-bottom: 0; }
.ns-lead a, .ns-faq__a a { color: var(--gold-hi); font-weight: 700; }
.ns-tagb--gold { color: #2a1604; background: linear-gradient(#ffe08a, #e6b450 50%, #a87a2c); }
.ns-tagb--bad  { color: #2a0a07; background: linear-gradient(#ffb3a8, #e5503f); }
.ns-tagb--off  { color: var(--parch); background: linear-gradient(#52627a, #26344a); }

/* ---------- Downloads ---------- */
.ns-dls { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.ns-dl .ns-emblem { font-size: 1.5rem; color: var(--gold); }
.ns-dl.is-featured { box-shadow: inset 0 0 0 1px var(--gold), 0 0 18px rgba(230,180,80,.2), inset 0 6px 14px rgba(0,0,0,.5); }
.ns-dl .ns-card__foot { border-top: 0; padding-top: 0; }
.ns-dl .ns-btn { width: 100%; margin: 0; }
.ns-conn dd code { padding: 2px 8px; font: 700 1rem Consolas, monospace; color: var(--gold-hi); background: #070b13; border: 1px solid var(--bronze); border-radius: 3px; user-select: all; }

/* ---------- Regras ---------- */
.ns-sevkey { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 14px; color: var(--parch-dim); font-size: .95rem; }
.ns-rules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ns-rule {
    --sev: var(--azure-hi);
    position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden;
    background: var(--noise), linear-gradient(#060a12, #0f1a2b);
    border: 2px solid #03060b; border-radius: 4px;
    box-shadow: inset 0 0 0 1px var(--bronze), inset 0 6px 14px rgba(0,0,0,.5);
}
.ns-rule::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--sev); box-shadow: 0 0 14px var(--sev); }
.ns-rule--severe    { --sev: var(--bad); }
.ns-rule--important { --sev: #e08a2c; }
.ns-rule__head { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 18px 16px 12px; }
.ns-rule__ico {
    width: 46px; height: 46px; display: grid; place-items: center; font-size: 1.25rem; color: var(--sev);
    background: radial-gradient(circle at 50% 38%, #1d3556, #070b13);
    border: 2px solid #03060b; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--bronze);
}
.ns-rule__title { font: 700 1.15rem/1.2 var(--f-title); color: var(--gold-hi); overflow-wrap: anywhere; }
.ns-rule__body { flex: 1; display: flex; flex-direction: column; gap: 12px; padding: 0 16px 16px; }
.ns-rule__body > p { color: var(--parch); font-size: 1.02rem; line-height: 1.5; }
.ns-rule .ns-tips { gap: 6px; }
.ns-rule .ns-tips li { font-size: .98rem; }
.ns-rule .ns-tips__h { margin-bottom: 6px; }
.ns-punish {
    margin-top: auto; padding: 10px 12px; color: var(--parch); font-size: .98rem; line-height: 1.5;
    background: rgba(229,80,63,.1); border: 1px solid rgba(229,80,63,.45); border-radius: 3px;
}
.ns-punish b { display: flex; align-items: center; gap: 8px; margin-bottom: 3px; font: 700 .92rem var(--f-title); color: #ffb3a8; }

/* FAQ (details/summary: abre e fecha sem JavaScript) */
.ns-faq details {
    margin-bottom: 10px; background: var(--noise), linear-gradient(#060a12, #0f1a2b);
    border: 2px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px var(--bronze);
}
.ns-faq details:last-child { margin-bottom: 0; }
.ns-faq summary {
    position: relative; display: block; list-style: none; cursor: pointer; padding: 12px 46px 12px 14px;
    font: 700 1.04rem/1.3 var(--f-title); color: var(--parch);
}
.ns-faq summary::-webkit-details-marker { display: none; }
.ns-faq summary::after {
    content: "\f078"; font-family: "Font Awesome 6 Free"; font-weight: 900; font-size: .8rem;
    position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: var(--gold); transition: transform .2s ease;
}
.ns-faq summary:hover { color: var(--gold-hi); }
.ns-faq summary:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 1px; }
.ns-faq details[open] > summary { color: var(--gold-hi); border-bottom: 1px dashed rgba(79,127,181,.45); }
.ns-faq details[open] > summary::after { transform: translateY(-50%) rotate(180deg); }
.ns-faq__a { padding: 12px 14px 14px; color: var(--parch); font-size: 1.02rem; line-height: 1.55; }
.ns-faq .ns-tips__h { margin: 18px 0 10px; }
.ns-faq .ns-tips__h:first-child { margin-top: 0; }

/* ---------- Suporte ---------- */
.ns-subnav button.ns-chip { cursor: pointer; font-family: var(--f-title); }
.ns-subnav button.ns-chip:hover { color: var(--gold-hi); }
.ns-tabs { margin: 0 auto 26px; max-width: 1040px; }
.ns-tabpanel[hidden] { display: none; }
.ns-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.ns-choices--prio { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.ns-choices--prio .ns-choice__box { padding: 12px 8px 10px; }
.ns-choices--prio .ns-choice__ico { width: 40px; height: 40px; font-size: 1.1rem; }
.ns-choices--prio .ns-choice__txt b { font-size: 1rem; }
.ns-ticketid { display: inline-block; margin: 0 0 18px; padding: 10px 22px; font: 700 1.5rem Consolas, monospace; letter-spacing: .08em; user-select: all; }
.ns-tk__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.ns-tk__id { font: 700 1.3rem Consolas, monospace; letter-spacing: .06em; color: var(--gold-hi); }
.ns-tk h4 { margin: 16px 0 6px; font: 700 .95rem var(--f-title); color: var(--gold); }
.ns-quote { padding: 12px 14px; color: var(--parch); line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; background: #070b13; border: 1px solid var(--bronze); border-radius: 3px; }
.ns-reply {
    margin-top: 16px; padding: 12px 14px; color: #d8f7e3; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere;
    background: #0f2a1c; border: 2px solid #03060b; border-radius: 3px; box-shadow: inset 0 0 0 1px rgba(79,191,95,.5);
}
.ns-reply h4 { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font: 700 1rem var(--f-title); color: #a9f0c3; }
.ns-reply small { display: block; margin-top: 8px; color: #9fd6b2; }
.ns-channels { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.ns-channels .ns-card__foot { border-top: 0; padding-top: 0; }
.ns-channels .ns-btn { width: 100%; margin: 0; padding: 11px 14px; font-size: .98rem; overflow-wrap: anywhere; }

@media (max-width: 900px) {
    .ns-duo { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .ns-rules { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .ns-choices--prio { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ns-rule__head { grid-template-columns: 46px minmax(0, 1fr); }
    .ns-rule__head .ns-tagb { grid-column: 1 / -1; justify-self: start; }
}


/* ==========================================================
   Donations: pacotes, saldo e comprovantes
   ========================================================== */
.ns-balance__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; }
.ns-balance__val { display: flex; align-items: center; gap: 16px; }
.ns-balance__ico {
    width: 64px; height: 64px; display: grid; place-items: center; font-size: 1.8rem; color: var(--gold);
    background: radial-gradient(circle at 50% 35%, #1d3556, #070b13);
    border: 2px solid #03060b; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--bronze), 0 0 22px rgba(230,180,80,.25);
}
.ns-balance__val small { display: block; font: 600 .95rem var(--f-title); color: var(--parch-dim); }
.ns-balance__val b { display: inline-block; font: 900 2.2rem/1.1 var(--f-logo); color: var(--gold-hi); text-shadow: 0 2px 0 #000, 0 0 12px rgba(70,150,255,.35); }
.ns-balance__val span { margin-left: 8px; font: 600 1rem var(--f-title); color: var(--parch); }
.ns-balance .ns-actions { margin: 0; }
.ns-balance .ns-btn { padding: 10px 18px; font-size: .98rem; }

.ns-packs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ns-pack {
    position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 26px 16px 18px;
    background: var(--noise), linear-gradient(#060a12, #0f1a2b);
    border: 2px solid #03060b; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--bronze), inset 0 6px 14px rgba(0,0,0,.5);
    transition: transform .15s ease, box-shadow .15s ease;
}
.ns-pack:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px var(--gold), 0 10px 20px rgba(0,0,0,.5); }
.ns-pack.is-popular { box-shadow: inset 0 0 0 1px var(--gold), 0 0 22px rgba(230,180,80,.22), inset 0 6px 14px rgba(0,0,0,.5); }
.ns-pack__ribbon {
    position: absolute; top: -12px; left: 50%; transform: translateX(-50%); white-space: nowrap;
    padding: 3px 14px; font: 700 .78rem var(--f-title); letter-spacing: .05em; text-transform: uppercase; color: #2a1604;
    background: linear-gradient(#ffe08a, #e6b450 50%, #a87a2c); border: 1px solid #03060b; border-radius: 12px;
}
.ns-pack__name { margin: 0 0 8px; font: 700 1.15rem var(--f-title); color: var(--parch); }
.ns-pack__coins { font: 900 2.4rem/1.1 var(--f-logo); color: var(--gold-hi); text-shadow: 0 2px 0 #000, 0 0 12px rgba(70,150,255,.35); }
.ns-pack__unit { margin-top: 2px; color: var(--parch-dim); font-size: .95rem; }
.ns-pack__bonus { min-height: 2.6em; margin: 8px 0 4px; color: #a9f0c3; font-size: .98rem; line-height: 1.3; }
.ns-pack__price { margin: 6px 0 14px; font: 700 1.45rem var(--f-title); color: var(--gold); }
.ns-pack .ns-form { width: 100%; margin-top: auto; }
.ns-pack .ns-btn { margin: 0; }
@media (max-width: 900px) { .ns-packs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .ns-packs { grid-template-columns: 1fr; } }

/* Comprovante */
.ns-receipt-wrap { max-width: 720px; margin: 0 auto; font-family: var(--f-body); }
.ns-receipt-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px; margin-bottom: 16px; }
.ns-receipt-bar .ns-btn { margin: 0; }
.ns-receipt-bar .ns-hint { margin: 0; }
.ns-receipt {
    padding: 0 0 18px; overflow: hidden; color: var(--parch);
    background: var(--noise), linear-gradient(#12203a, #0b1424);
    border: 2px solid var(--gold); border-radius: 12px; box-shadow: 0 14px 34px rgba(0,0,0,.6);
}
.ns-receipt__head { padding: 22px 20px 18px; text-align: center; background: linear-gradient(#2a4a7a, #16294a); border-bottom: 1px solid rgba(230,180,80,.4); }
.ns-receipt__head h1 { margin: 0; font: 900 1.6rem var(--f-title); letter-spacing: .04em; text-transform: uppercase; color: var(--gold-hi); }
.ns-receipt__head p { margin: 6px 0 0; color: var(--parch); }
.ns-receipt h2 { margin: 20px 22px 6px; padding-bottom: 4px; font: 700 1.1rem var(--f-title); color: var(--gold-hi); border-bottom: 1px solid rgba(230,180,80,.4); }
.ns-receipt .ns-flash { margin: 16px 22px 0; }
.ns-receipt__tbl { width: calc(100% - 44px); margin: 0 22px; border-collapse: collapse; }
.ns-receipt__tbl th, .ns-receipt__tbl td { padding: 8px 4px; text-align: left; font-size: 1.02rem; border-bottom: 1px solid rgba(79,127,181,.35); vertical-align: top; }
.ns-receipt__tbl th { width: 46%; font-weight: 500; color: var(--gold); }
.ns-receipt__tbl td { color: var(--parch); overflow-wrap: anywhere; }
.ns-receipt__tbl code { font-size: .88rem; }
.ns-receipt__total { margin: 18px 22px 0; padding: 14px; text-align: center; background: #0f2a1c; border: 2px solid #3f9d58; border-radius: 8px; }
.ns-receipt__total span { display: block; color: #d8f7e3; font-size: .95rem; text-transform: uppercase; letter-spacing: .05em; }
.ns-receipt__total b { display: block; margin-top: 2px; font: 900 1.9rem var(--f-title); color: #8dff9c; }
.ns-receipt__note { margin: 14px 22px 0; color: var(--parch); font-size: .98rem; line-height: 1.5; }
.ns-receipt__foot { margin: 18px 22px 0; text-align: center; color: var(--parch-dim); font-size: .85rem; line-height: 1.5; }

@media print {
    body { background: #fff !important; color: #000 !important; }
    .ns-header, .ns-nav-bar, .ns-footer, .ns-noprint, .ns-cookie, .ns-top { display: none !important; }
    .ns-receipt-wrap { max-width: none; }
    .ns-receipt { background: #fff; color: #000; border: 2px solid #8a6a1f; box-shadow: none; }
    .ns-receipt__head { background: #f3e7c4; border-bottom: 1px solid #8a6a1f; }
    .ns-receipt__head h1, .ns-receipt h2, .ns-receipt__tbl th { color: #6b4f10; }
    .ns-receipt__head p, .ns-receipt__tbl td, .ns-receipt__note { color: #000; }
    .ns-receipt h2, .ns-receipt__tbl th, .ns-receipt__tbl td { border-color: #cdbb8a; }
    .ns-receipt__total { background: #e6f6ea; border-color: #2e8b47; }
    .ns-receipt__total span { color: #1b4d2a; }
    .ns-receipt__total b { color: #176b30; }
    .ns-receipt__foot { color: #555; }
}


/* ==========================================================
   Loja
   ========================================================== */
.ns-shopbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 22px; }
.ns-shopbar__bal { display: flex; align-items: center; gap: 14px; }
.ns-shopbar__bal .ns-balance__ico { width: 52px; height: 52px; font-size: 1.4rem; }
.ns-shopbar__bal small { display: block; font: 600 .9rem var(--f-title); color: var(--parch-dim); }
.ns-shopbar__bal b { font: 900 1.8rem/1.1 var(--f-logo); color: var(--gold-hi); text-shadow: 0 2px 0 #000; }
.ns-shopbar__bal span { margin-left: 4px; color: var(--parch); font-family: var(--f-title); }
.ns-shopbar__char { display: flex; align-items: center; gap: 10px; margin: 0; flex-wrap: wrap; }
.ns-shopbar__char label { margin: 0; white-space: nowrap; color: var(--gold); font: 700 .95rem var(--f-title); }
.ns-shopbar__char select { min-width: 220px; }
.ns-shopbar .ns-actions { margin: 0; }
.ns-shopbar .ns-btn { margin: 0; }
.ns-shoptabs { justify-content: flex-start; }
.ns-count { display: inline-block; min-width: 1.5em; padding: 0 7px; margin-left: 4px; font: 700 .8rem/1.5 var(--f-body); text-align: center; color: var(--parch); background: rgba(0,0,0,.45); border-radius: 10px; }

.ns-shopgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ns-shopitem {
    position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 28px 16px 16px;
    background: var(--noise), linear-gradient(#060a12, #0f1a2b);
    border: 2px solid #03060b; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--bronze), inset 0 6px 14px rgba(0,0,0,.5);
    transition: transform .15s ease, box-shadow .15s ease;
}
.ns-shopitem:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px var(--gold), 0 10px 20px rgba(0,0,0,.5); }
.ns-shopitem__id { position: absolute; top: 8px; left: 12px; color: var(--parch-dim); font-size: .85rem; }
.ns-shopitem__badge { position: absolute; top: 8px; right: 10px; }
.ns-sprites { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; min-height: 76px; max-width: 150px; margin-bottom: 10px; }
.ns-sprites img { image-rendering: pixelated; padding: 4px; background: rgba(0,0,0,.45); border: 1px solid rgba(79,127,181,.35); border-radius: 4px; }
.ns-sprites.is-multi img { padding: 2px; }
.ns-sprite-ph { display: inline-grid; place-items: center; width: 40px; height: 40px; color: var(--parch-dim); background: rgba(0,0,0,.45); border: 1px dashed rgba(79,127,181,.5); border-radius: 4px; }
.ns-shopitem__name { margin: 0; font: 700 1.1rem/1.25 var(--f-title); color: var(--parch); overflow-wrap: anywhere; }
.ns-shopitem__sub { margin-top: 2px; color: var(--parch-dim); font-size: .92rem; }
.ns-shopitem__list { list-style: none; margin: 10px 0 0; padding: 0; width: 100%; text-align: left; font-size: .95rem; color: var(--parch); }
.ns-shopitem__list li { position: relative; padding: 2px 0 2px 16px; }
.ns-shopitem__list li::before { content: "\25B8"; position: absolute; left: 0; color: var(--gold); }
.ns-shopitem__price { margin: auto 0 10px; padding-top: 14px; font: 900 1.45rem var(--f-title); color: var(--gold); }
.ns-shopitem__price small { font: 600 .8rem var(--f-title); color: var(--parch-dim); }
.ns-shopitem .ns-btn { margin: 0; }
@media (max-width: 900px) { .ns-shopgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ns-shopgrid { grid-template-columns: 1fr; } .ns-shopbar__char select { min-width: 0; width: 100%; } }

.ns-confirm { display: flex; align-items: center; gap: 18px; margin-bottom: 14px; }
.ns-confirm__spr { display: flex; flex-wrap: wrap; gap: 6px; max-width: 220px; }
.ns-confirm__spr img { image-rendering: pixelated; padding: 4px; background: rgba(0,0,0,.45); border: 1px solid rgba(79,127,181,.35); border-radius: 4px; }
.ns-confirm__txt h3 { margin: 0; font: 700 1.3rem var(--f-title); color: var(--gold-hi); }
.ns-confirm__txt p { margin: 2px 0 0; }
.ns-confirm__ask {
    display: flex; align-items: center; gap: 12px; margin: 6px 0 16px; padding: 14px 16px; font: 700 1.15rem var(--f-title); color: var(--parch);
    background: rgba(230,180,80,.12); border: 2px solid var(--gold); border-radius: 6px;
}
.ns-confirm__ask i { color: var(--gold-hi); font-size: 1.4rem; }
.ns-confirm__ask strong { color: var(--gold-hi); }
.ns-confirm__ask small { font: 500 .9rem var(--f-body); color: var(--parch-dim); }
.ns-confirm .ns-info { margin-bottom: 16px; }

.ns-sprcell img { vertical-align: middle; image-rendering: pixelated; margin-right: 3px; }
.ns-rowacts { white-space: nowrap; }
.ns-rowacts .ns-chipbtn { margin: 2px; }
.ns-chipbtn.is-danger { color: #ffb3a8; border-color: rgba(229,80,63,.6); }


/* ==========================================================
   Loja: layout de set (10 slots), seções sem recarregar e editor de slots
   ========================================================== */
.ns-shoppane[hidden], .ns-field[hidden] { display: none !important; }

.ns-setgrid { display: grid; grid-template-columns: repeat(3, 46px); grid-auto-rows: 46px; gap: 6px; justify-content: center; margin: 2px 0 12px; }
.ns-setgrid__c { display: grid; place-items: center; border-radius: 6px; }
.ns-setgrid__c.is-filled { background: rgba(0,0,0,.55); border: 1px solid rgba(79,127,181,.4); }
.ns-setgrid__c img { image-rendering: pixelated; }
.ns-setgrid__c i { color: var(--parch-dim); }
.ns-shopitem.is-set .ns-shopitem__name { margin-top: 2px; }
.ns-confirm__spr .ns-setgrid { margin: 0; }

.ns-slotedit { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; max-width: 600px; }
.ns-slotedit__c { display: grid; grid-template-columns: minmax(0, 1fr) 64px; gap: 6px; padding: 8px; background: rgba(0,0,0,.35); border: 1px solid rgba(79,127,181,.35); border-radius: 6px; }
.ns-slotedit__c.is-empty { visibility: hidden; border: 0; background: none; }
.ns-slotedit__n { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 6px; font: 700 .85rem var(--f-title); color: var(--gold); }
.ns-slotedit__n img { image-rendering: pixelated; }
.ns-slotedit .ns-input { min-width: 0; padding: 8px 10px; }
@media (max-width: 560px) { .ns-slotedit { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ns-slotedit__c.is-empty { display: none; } }
.ns-slotedit__nm { grid-column: 1 / -1; margin-top: -2px; font-size: .8rem; color: var(--parch-dim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ns-offline-ok { align-items: flex-start !important; margin: 4px 0 14px !important; padding: 12px 14px; background: rgba(230,180,80,.1); border: 1px solid rgba(230,180,80,.5); border-radius: 6px; }
.ns-offline-ok input { margin-top: .3em; }
.ns-offline-ok small { display: block; margin-top: 2px; color: var(--parch-dim); font-size: .85rem; }
.ns-pack__img { display: grid; place-items: center; min-height: 72px; margin: 0 0 6px; color: var(--gold); font-size: 2rem; }
.ns-pack__img img { image-rendering: pixelated; filter: drop-shadow(0 2px 4px rgba(0,0,0,.6)); }

/* =====================================================================
   VERSÃO CELULAR (até 600px de largura)
   Camada de ajustes só para telas pequenas: tudo fica dentro deste
   @media, então desktop e tablet continuam exatamente como estão.
   Para desligar o modo celular, basta apagar este bloco.
   ===================================================================== */
@media (max-width: 600px) {

    html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

    /* ---- espaçamentos gerais: menos margem, mais conteúdo ---- */
    .container { margin: 14px auto; padding: 0 12px; }
    .ns-wrap { padding: 0 12px; }
    .ns-listpage { gap: 14px; }
    .ns-home3 { gap: 14px; }
    .ns-col { gap: 14px; }
    .ns-win__title { margin: 5px 5px 0; padding: 7px 14px; font-size: .95rem; }
    .ns-win__body { padding: 12px 12px 14px; }
    .ns-btn:not(.ns-btn--sm) { padding: 11px 16px; font-size: 1rem; }  /* botões grandes: menos espaço interno, o texto não quebra */

    /* ---- cabeçalho compacto ---- */
    .ns-mast .ns-wrap { gap: 8px; padding-top: 10px; padding-bottom: 10px; }
    .ns-brand__name { font-size: clamp(1.4rem, 6.6vw, 2rem); padding-bottom: 2px; }
    .ns-brand__sub { margin-top: 4px; font-size: .7rem; letter-spacing: .1em; }
    .ns-status { min-width: 0; gap: 10px; padding: 6px 14px 6px 10px; }
    .ns-orb { width: 24px; height: 24px; }
    .ns-status__txt { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 7px; }
    .ns-status__txt strong { display: inline; font-size: .92rem; }
    .ns-status__txt small { font-size: .8rem; }

    /* barra do menu: botão Menu e conta na mesma linha (quebra só se faltar espaço) */
    .ns-nav-bar .ns-wrap { min-height: 48px; padding-top: 6px; padding-bottom: 6px; gap: 6px 8px; }
    .ns-burger { padding: 8px 12px; font-size: 1rem; }
    .ns-acct { order: 0; flex: 1 1 auto; width: auto; justify-content: flex-end; gap: 6px; padding: 0; min-width: 0; }
    .ns-acct__name { max-width: 90px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .ns-acct__tag { font-size: 0; }
    .ns-acct__tag i { font-size: .95rem; }
    .ns-nav { padding: 8px 12px 12px; max-height: calc(100vh - 56px); overflow-y: auto; }
    .ns-nav a, .ns-nav button.ns-nav__link { min-height: 42px; padding: 8px 12px; }
    .ns-sub a { min-height: 38px; padding: 6px 12px; }

    /* ---- título das páginas ---- */
    .ns-pagehead { padding: 16px 14px; margin-bottom: 14px; }
    .ns-pagehead__ico { width: 44px; height: 44px; margin-bottom: 8px; font-size: 1.2rem; }
    .ns-pagehead__title { font-size: clamp(1.5rem, 7vw, 1.9rem); }
    .ns-pagehead__lead { margin-top: 6px; font-size: 1rem; line-height: 1.35; }

    /* ---- home: destaque e rates mais baixos ---- */
    .ns-home3 .ns-hero, .ns-hero { min-height: 0; margin-bottom: 0; }
    .ns-home3 .ns-hero__text, .ns-hero__text { padding: 20px 14px 0; }
    .ns-hero__title { font-size: clamp(1.7rem, 8vw, 2.2rem); }
    .ns-hero__lead { margin: 8px auto; font-size: 1rem; line-height: 1.4; }
    .ns-lineup { margin-bottom: 8px; padding: 0 6px; }
    .ns-home3 .ns-mon img, .ns-mon img { width: 64px; height: 64px; }

    .ns-rates { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin-bottom: 0; }
    .ns-rates > * { grid-column: span 2; }
    .ns-rates > :nth-child(4) { grid-column: 2 / span 2; }
    .ns-rates > :nth-child(5) { grid-column: 4 / span 2; }
    .ns-rates .ns-slot { padding: 8px 4px 7px; }
    .ns-rates .ns-slot i { margin-bottom: 2px; font-size: 1rem; }
    .ns-rates .ns-slot b { font-size: 1.35rem; }
    .ns-rates .ns-slot span { font-size: .74rem; letter-spacing: 0; }

    /* números do dashboard: 2 por linha, o último ocupa a linha toda */
    .ns-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .ns-tiles .ns-slot { padding: 10px 6px 9px; }
    .ns-tiles .ns-slot b { font-size: 1.7rem; }
    .ns-tiles > :last-child:nth-child(odd) { grid-column: 1 / -1; }

    /* ---- pódio dos highscores: 3 lado a lado (2º, 1º, 3º) ---- */
    .ns-podium { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; max-width: none; }
    .ns-podium__place--2 { order: 1; } .ns-podium__place--1 { order: 2; } .ns-podium__place--3 { order: 3; }
    .ns-podium__av, .ns-podium__place--1 .ns-podium__av { width: 62px; height: 62px; margin-bottom: -10px; border-width: 2px; }
    .ns-podium__place--1 .ns-podium__av { width: 74px; height: 74px; }
    .ns-podium__base { padding: 16px 4px 10px; }
    .ns-podium__pos { font-size: .7rem; letter-spacing: 0; }
    .ns-podium__pos i { margin-right: 3px; }
    .ns-podium__name {
        margin-top: 3px; font-size: .8rem; line-height: 1.2; white-space: normal; overflow-wrap: anywhere;
        display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    }
    .ns-podium__val { margin-top: 3px; font-size: 1.25rem; }
    .ns-podium__sub { margin-top: 3px; font-size: .68rem; }

    /* ---- fichas de tabela (players, mortes, etc.) mais enxutas ---- */
    .ns-table--stack tr { padding: 8px 0; }
    .ns-table--stack td { padding: 3px 2px; font-size: .96rem; }

    /* ---- pacotes de moedas: 2 por linha ---- */
    .ns-packs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .ns-pack { padding: 14px 8px 10px; }
    .ns-pack__img { min-height: 48px; margin-bottom: 2px; }
    .ns-pack__img img { width: 48px; height: 48px; }
    .ns-pack__name { margin-bottom: 4px; font-size: .95rem; }
    .ns-pack__coins { font-size: 1.6rem; }
    .ns-pack__unit { font-size: .78rem; }
    .ns-pack__bonus { min-height: 0; margin: 4px 0 2px; font-size: .78rem; }
    .ns-pack__price { margin: 4px 0 8px; font-size: 1.1rem; }
    .ns-pack .ns-btn { padding: 8px 6px; font-size: .85rem; }

    /* ---- formulários: 16px evita o zoom automático do iPhone ao tocar no campo ---- */
    .ns-form input[type=text], .ns-form input[type=password], .ns-form input[type=email],
    .ns-form input[type=number], .ns-form input[type=search], .ns-form input[type=tel],
    .ns-form select, .ns-form textarea, .ns-form input.ns-input, .ns-form select.ns-input { font-size: 16px; }
    .ns-home3 .ns-col--l > .ns-win .ns-form input[type=text],
    .ns-home3 .ns-col--l > .ns-win .ns-form input[type=password] { font-size: 16px; padding: 7px 10px; }
    .ns-btn--sm, .ns-chipbtn { min-height: 38px; }

    /* ---- menu da conta (account.php) ---- */
    .ns-accnav .ns-subnav { padding: 6px; gap: 6px; }
    .ns-accnav .ns-subnav .ns-chip { padding: 9px 4px; gap: 6px; font-size: .78rem; }
    .ns-accnav .ns-subnav--shop .ns-chip { padding: 8px 6px; font-size: .78rem; }
    .ns-subnav__label { font-size: .68rem; }

    /* ---- aviso de cookies: menor e acima da barra do iPhone ---- */
    .ns-cookie { bottom: calc(8px + env(safe-area-inset-bottom, 0px)); width: calc(100% - 16px); }
    .ns-cookie__bar { font-size: .82rem; }
    .ns-cookie__body { gap: 8px; padding: 8px 12px 12px; }
    .ns-cookie__body p { font-size: .82rem; line-height: 1.35; }
    .ns-cookie__btns { gap: 8px; }
    .ns-cookie__btns .ns-btn { padding: 8px 6px; font-size: .78rem; }

    /* ---- rodapé compacto ---- */
    .ns-footer { margin-top: 28px; }
    .ns-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 12px; padding: 16px 0 18px; }
    .ns-footer__grid > :first-child { grid-column: 1 / -1; }
    .ns-footer h4 { margin-bottom: 8px; font-size: .95rem; }
    .ns-footer li + li { margin-top: 2px; }
    .ns-footer li a { display: inline-block; padding: 4px 0; }
    .ns-footer p { max-width: none; font-size: .92rem; }
    .ns-footer__stats { gap: 6px 16px; padding: 12px 0; font-size: .9rem; }
    .ns-footer__legal { padding: 4px 0 18px; font-size: .8rem; }

    /* ---- ajustes finos ---- */
    .ns-brand__sub { margin-top: 6px; font-size: .72rem; color: #cfe0f5; }
    .ns-actions { gap: 8px; }
    .ns-actions .ns-btn { flex: 1 1 140px; min-height: 40px; }
    .ns-podium__sub { font-size: .66rem; line-height: 1.25; }
    .ns-podium__sub > * { max-width: 100%; white-space: normal; text-align: center; justify-content: center; }
}

/* ---------- Menus suspensos no celular/tablet (até 860px): sanfona, abre ao tocar ---------- */
@media (max-width: 860px) {
    .ns-nav .ns-has-sub > .ns-sub,
    .ns-nav .ns-has-sub:hover > .ns-sub,
    .ns-nav .ns-has-sub:focus-within > .ns-sub { display: none; }
    .ns-nav .ns-has-sub.is-open > .ns-sub { display: flex; }
    .ns-nav .ns-has-sub > button.ns-nav__link { width: 100%; }
    .ns-nav .ns-has-sub .ns-chev { margin-left: auto; }
    .ns-nav .ns-has-sub:hover .ns-chev { transform: none; }
    .ns-nav .ns-has-sub.is-open .ns-chev { transform: rotate(180deg); }
}

/* ---------- Menus suspensos em aparelhos de toque (sem mouse): só abrem ao tocar ----------
   Em tela de toque o estado ":hover" fica "grudado" depois do toque; por isso aqui a lista depende só do toque. */
@media (hover: none) {
    .ns-nav .ns-has-sub:hover > .ns-sub,
    .ns-nav .ns-has-sub:focus-within > .ns-sub { display: none; }
    .ns-nav .ns-has-sub.is-open > .ns-sub { display: flex; }
    .ns-nav .ns-has-sub:hover .ns-chev { transform: none; }
    .ns-nav .ns-has-sub.is-open .ns-chev { transform: rotate(180deg); }
}

/* Criar personagem: sexo e cidade compactos, lado a lado */
.ns-pair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 20px; align-items: start; }
.ns-pair > .ns-block + .ns-block { margin-top: 0; padding-top: 0; border-top: 0; padding-left: 20px; border-left: 1px dashed rgba(79,127,181,.45); }
.ns-pair .ns-block__h { margin-bottom: 8px; font-size: .98rem; }
.ns-choices--compact { gap: 8px; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); }
.ns-choices--compact .ns-choice__box { padding: 7px 10px; gap: 9px; }
.ns-choices--compact .ns-choice__ico { width: 32px; height: 32px; font-size: 1rem; }
.ns-choices--compact .ns-choice__txt b { font-size: .98rem; }
.ns-choices--compact .ns-choice__txt small { font-size: .82rem; }
.ns-choices--compact .ns-choice > input:checked + .ns-choice__box::after { top: 4px; right: 7px; font-size: .62rem; }
@media (max-width: 640px) {
    .ns-pair { grid-template-columns: minmax(0, 1fr); }
    .ns-pair > .ns-block + .ns-block { margin-top: 14px; padding-top: 12px; padding-left: 0; border-left: 0; border-top: 1px dashed rgba(79,127,181,.45); }
}