:root{
  --bg:#06101c;--panel:rgba(3,13,24,.84);--panel-2:rgba(4,20,35,.74);--ice:#9fdcff;--ice-2:#74caff;--text:#eaf6ff;--muted:#a9c7da;--line:rgba(116,202,255,.32);--gold:#d7b66a;--danger:#ff6b6b;--good:#71f0a2;--shadow:0 0 35px rgba(64,170,255,.24)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;line-height:1.6}a{color:var(--ice-2);text-decoration:none}a:hover{color:#fff;text-shadow:0 0 10px var(--ice-2)}.site-bg{min-height:100vh;background:radial-gradient(circle at top,rgba(52,148,214,.25),transparent 42%),linear-gradient(to bottom,rgba(2,8,16,.35),#06101c 620px),url('../images/frozenthrone-bg.jpeg') center top/cover no-repeat fixed}.navbar{position:sticky;top:0;z-index:50;background:rgba(1,8,15,.9);border-bottom:1px solid var(--line);box-shadow:0 8px 24px rgba(0,0,0,.35);backdrop-filter:blur(8px)}.nav-inner{max-width:1240px;margin:0 auto;padding:13px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px}.logo{font-size:24px;font-weight:900;color:var(--ice);letter-spacing:.5px;text-shadow:0 0 18px #35a8ff;white-space:nowrap}.logo small{display:block;font-size:11px;color:var(--muted);letter-spacing:2px;text-transform:uppercase;margin-top:-4px}.nav-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 18px}.nav-links a{color:var(--text);font-weight:700;font-size:15px}.nav-actions{display:flex;align-items:center;gap:10px;white-space:nowrap}.status-dot{display:inline-flex;align-items:center;gap:7px;color:var(--good);font-weight:700;font-size:13px}.status-dot::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--good);box-shadow:0 0 12px var(--good)}.btn{display:inline-block;padding:12px 20px;border-radius:9px;background:linear-gradient(#2ba8ff,#126ba8);color:white!important;font-weight:800;border:1px solid rgba(180,231,255,.45);box-shadow:0 0 18px rgba(43,168,255,.3);cursor:pointer;text-align:center}.btn.secondary{background:linear-gradient(#173550,#0b1d2e);border-color:var(--line)}.btn.gold{background:linear-gradient(#d7b66a,#8a6422);border-color:rgba(255,230,161,.45)}.btn.disabled{opacity:.55;pointer-events:none}.container{max-width:1240px;margin:0 auto;padding:0 18px}.hero{min-height:640px;display:flex;align-items:flex-end;padding:90px 18px 70px}.hero-card{max-width:820px;margin:0 auto;text-align:center;background:rgba(0,0,0,.6);border:1px solid rgba(116,202,255,.55);border-radius:18px;padding:34px 24px;box-shadow:var(--shadow);backdrop-filter:blur(5px)}.eyebrow{color:var(--gold);font-weight:900;text-transform:uppercase;letter-spacing:2px;font-size:13px}h1,h2,h3{line-height:1.15;margin:0 0 14px}h1{font-size:56px;color:var(--ice);text-shadow:0 0 20px #35a8ff}h2{font-size:34px;color:var(--ice)}h3{font-size:22px;color:#fff}.lead{font-size:20px;color:#d8edff;margin:0 auto 22px;max-width:780px}.muted{color:var(--muted)}.center{text-align:center}section{padding:56px 0}.section-head{text-align:center;margin-bottom:26px}.section-head p{max-width:760px;margin:0 auto;color:var(--muted)}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.account-grid{margin-top:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 14px 28px rgba(0,0,0,.24)}.card.highlight{background:linear-gradient(180deg,rgba(9,42,72,.88),rgba(2,12,24,.84));box-shadow:var(--shadow)}.alert{margin-top:18px;padding:14px 18px;border:1px solid var(--line);border-radius:12px;background:rgba(3,13,24,.9);color:var(--ice)}.badge{display:inline-block;margin-left:8px;padding:4px 8px;border-radius:999px;background:rgba(215,182,106,.18);border:1px solid rgba(215,182,106,.45);color:var(--gold);font-size:12px;vertical-align:middle}.stat{text-align:center}.stat strong{display:block;font-size:34px;color:#fff}.stat span{display:block;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:1px}.news-card img,.article-hero{width:100%;border-radius:14px;border:1px solid var(--line);object-fit:cover}.news-card img{height:170px}.meta{font-size:13px;color:var(--gold);font-weight:800;text-transform:uppercase;letter-spacing:1px}.table-wrap{overflow-x:auto}.rank-table{width:100%;border-collapse:collapse;min-width:520px}.rank-table th,.rank-table td{padding:13px;border-bottom:1px solid rgba(116,202,255,.18);text-align:left}.rank-table th{color:var(--ice);font-size:13px;text-transform:uppercase;letter-spacing:1px}.rank-table tr:hover{background:rgba(116,202,255,.08)}.form{max-width:560px;margin:0 auto}.form label{display:block;margin:14px 0 6px;color:var(--ice);font-weight:800}.form input{width:100%;padding:14px;border-radius:9px;border:1px solid var(--line);background:rgba(0,0,0,.45);color:#fff;font-size:16px}.form button{border:0;margin-top:18px;width:100%}.steps{counter-reset:step}.step{position:relative;padding-left:62px}.step::before{counter-increment:step;content:counter(step);position:absolute;left:18px;top:22px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#126ba8;color:white;font-weight:900;box-shadow:0 0 14px rgba(43,168,255,.4)}code{background:#020912;color:var(--ice);padding:6px 10px;border-radius:7px;border:1px solid rgba(116,202,255,.22);word-break:break-word}.footer{border-top:1px solid var(--line);background:rgba(0,0,0,.55);padding:28px 18px;text-align:center;color:var(--muted);margin-top:40px}.footer-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:8px}
@media(max-width:900px){.nav-inner{flex-direction:column}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr 1fr}h1{font-size:42px}.hero{min-height:560px}}
@media(max-width:620px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.nav-links{gap:10px}.hero-card{padding:25px 16px}h1{font-size:34px}.lead{font-size:17px}.nav-actions{flex-direction:column}.btn{width:100%;text-align:center}.rank-table{min-width:420px}}


.table-wrap{width:100%;overflow-x:auto;border-radius:14px;border:1px solid var(--line);background:rgba(2,9,18,.42)}
.data-table{width:100%;border-collapse:collapse;min-width:760px}
.data-table th,.data-table td{padding:12px 14px;border-bottom:1px solid rgba(116,202,255,.14);text-align:left;vertical-align:middle}
.data-table th{color:var(--ice);font-size:12px;text-transform:uppercase;letter-spacing:.08em;background:rgba(8,28,48,.68)}
.data-table td{color:var(--text)}
.data-table tr:hover td{background:rgba(43,168,255,.06)}
.data-table a{color:var(--ice);font-weight:800}
.account-grid .card{min-height:100%}

.item-icon {
  width: 34px;
  height: 34px;
  border-radius: 6px;
  border: 1px solid rgba(170, 220, 255, 0.35);
  box-shadow: 0 0 10px rgba(80, 170, 255, 0.25);
  vertical-align: middle;
  margin-right: 8px;
  background: rgba(0,0,0,0.45);
}

.admin-card {
  display: block;
  text-decoration: none;
  transition: transform .12s ease, border-color .12s ease;
}
.admin-card:hover {
  transform: translateY(-2px);
  border-color: rgba(120, 210, 255, 0.65);
}

.realm-banner {
  display: flex;
  flex-direction: column;
  gap: 6px;
  border-left: 4px solid rgba(90, 210, 255, 0.85);
}

/* Armory 2.0 */
.armory-profile-page .card {
  border-color: rgba(115, 200, 255, 0.22);
}

.armory-hero {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  background:
    radial-gradient(circle at 20% 10%, rgba(66, 185, 255, .22), transparent 35%),
    linear-gradient(135deg, rgba(7, 16, 32, .95), rgba(4, 8, 18, .95));
  overflow: hidden;
}

.armory-hero h1 {
  font-size: clamp(42px, 6vw, 76px);
  margin: 0;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.armory-subtitle {
  font-size: 18px;
  color: #cfefff;
}

.online { color: #69ff9a; font-weight: 800; }
.offline { color: #9fb4c9; font-weight: 800; }

.armory-hero-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(110px, 1fr));
  gap: 12px;
  min-width: 360px;
}

.armory-hero-stats div {
  background: rgba(0, 0, 0, .28);
  border: 1px solid rgba(115, 200, 255, .2);
  border-radius: 14px;
  padding: 14px;
  text-align: center;
}

.armory-hero-stats span {
  display: block;
  color: #8fb6d8;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.armory-hero-stats strong {
  display: block;
  color: #fff;
  font-size: 24px;
  margin-top: 4px;
}

.armory-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 18px;
  margin-top: 18px;
}

.armory-paperdoll {
  display: grid;
  grid-template-columns: 280px minmax(260px, 1fr) 280px;
  gap: 18px;
  min-height: 650px;
  background:
    radial-gradient(circle at center, rgba(57, 161, 255, .2), transparent 45%),
    linear-gradient(180deg, rgba(5, 12, 24, .92), rgba(2, 5, 12, .96));
}

.paperdoll-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.paperdoll-center {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 18px;
  min-width: 0;
}

.character-glow {
  min-height: 390px;
  border: 1px solid rgba(115, 200, 255, .2);
  border-radius: 22px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background:
    radial-gradient(circle, rgba(105, 210, 255, .25), transparent 45%),
    linear-gradient(180deg, rgba(8, 24, 48, .4), rgba(0, 0, 0, .25));
  box-shadow: inset 0 0 60px rgba(80, 190, 255, .08);
}

.character-sigil {
  font-size: 110px;
  color: rgba(147, 223, 255, .85);
  filter: drop-shadow(0 0 22px rgba(105, 210, 255, .8));
}

.character-glow h2 {
  margin: 0;
  font-size: 36px;
  text-transform: uppercase;
}

.character-glow p {
  margin: 6px 0 0;
  color: #a9cde8;
}

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

.armory-slot {
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 9px;
  border-radius: 14px;
  background: rgba(0, 0, 0, .3);
  border: 1px solid rgba(115, 200, 255, .18);
  color: inherit;
  text-decoration: none;
  min-height: 68px;
}

.armory-slot:hover {
  border-color: rgba(115, 200, 255, .65);
  transform: translateY(-1px);
}

.armory-slot img,
.slot-icon {
  width: 50px;
  height: 50px;
  border-radius: 10px;
  border: 1px solid rgba(180, 225, 255, .25);
  background: rgba(0, 0, 0, .45);
  display: grid;
  place-items: center;
  color: #55748c;
  font-weight: 900;
}

.slot-meta {
  min-width: 0;
}

.slot-meta span {
  display: block;
  color: #83b7d9;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .8px;
}

.slot-meta strong {
  display: block;
  color: #f4fbff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.slot-meta small {
  display: block;
  color: #8fa8bc;
}

.armory-slot.empty {
  opacity: .55;
}

.armory-slot.q2 { border-color: rgba(30, 255, 0, .45); }
.armory-slot.q3 { border-color: rgba(0, 112, 255, .55); }
.armory-slot.q4 { border-color: rgba(163, 53, 238, .65); }
.armory-slot.q5 { border-color: rgba(255, 128, 0, .75); box-shadow: 0 0 18px rgba(255, 128, 0, .13); }
.armory-slot.q6 { border-color: rgba(230, 204, 128, .8); box-shadow: 0 0 18px rgba(230, 204, 128, .13); }

.armory-side {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.summary-list {
  display: grid;
  gap: 10px;
}

.summary-list div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid rgba(115, 200, 255, .12);
  padding-bottom: 8px;
}

.summary-list span {
  color: #8fb6d8;
}

.armory-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.armory-tabs span {
  border: 1px solid rgba(115, 200, 255, .22);
  border-radius: 999px;
  padding: 7px 10px;
  color: #b8d7ee;
  background: rgba(0, 0, 0, .22);
}

.armory-tabs .active {
  background: rgba(76, 190, 255, .18);
  border-color: rgba(115, 200, 255, .65);
  color: #fff;
}

@media (max-width: 1100px) {
  .armory-layout {
    grid-template-columns: 1fr;
  }

  .armory-paperdoll {
    grid-template-columns: 1fr;
  }

  .armory-hero {
    flex-direction: column;
    align-items: flex-start;
  }

  .armory-hero-stats {
    min-width: 0;
    width: 100%;
  }
}

/* Armory 2.0 true paper doll override */
.true-paperdoll {
  display: block !important;
  min-height: 760px;
  padding: 18px;
}

.paperdoll-stage {
  position: relative;
  min-height: 720px;
  max-width: 980px;
  margin: 0 auto;
}

.paperdoll-model {
  position: absolute;
  left: 270px;
  right: 270px;
  top: 34px;
  bottom: 150px;
  min-width: 260px;
}

.true-paperdoll .character-glow {
  height: 100%;
  min-height: 0;
}

.pd-slot {
  position: absolute;
  width: 245px;
}

.pd-slot .armory-slot {
  min-height: 62px;
}

.pd-slot .slot-meta strong {
  font-size: 13px;
}

.pd-head { left: 0; top: 0; }
.pd-neck { left: 0; top: 76px; }
.pd-shoulders { left: 0; top: 152px; }
.pd-back { left: 0; top: 228px; }
.pd-chest { left: 0; top: 304px; }
.pd-shirt { left: 0; top: 380px; }
.pd-tabard { left: 0; top: 456px; }
.pd-wrists { left: 0; top: 532px; }

.pd-hands { right: 0; top: 0; }
.pd-waist { right: 0; top: 76px; }
.pd-legs { right: 0; top: 152px; }
.pd-feet { right: 0; top: 228px; }
.pd-finger1 { right: 0; top: 304px; }
.pd-finger2 { right: 0; top: 380px; }
.pd-trinket1 { right: 0; top: 456px; }
.pd-trinket2 { right: 0; top: 532px; }

.pd-mainhand { left: 110px; bottom: 0; width: 245px; }
.pd-offhand { left: 50%; transform: translateX(-50%); bottom: 0; width: 245px; }
.pd-ranged { right: 110px; bottom: 0; width: 245px; }

@media (max-width: 1200px) {
  .paperdoll-stage {
    min-height: auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .paperdoll-model,
  .pd-slot,
  .pd-mainhand,
  .pd-offhand,
  .pd-ranged {
    position: static;
    transform: none;
    width: auto;
  }

  .paperdoll-model {
    min-height: 360px;
    order: -1;
  }
}

/* Armory 2.0 true paper doll override */
.true-paperdoll {
  display: block !important;
  min-height: 760px;
  padding: 18px;
}

.paperdoll-stage {
  position: relative;
  min-height: 720px;
  max-width: 980px;
  margin: 0 auto;
}

.paperdoll-model {
  position: absolute;
  left: 270px;
  right: 270px;
  top: 34px;
  bottom: 150px;
  min-width: 260px;
}

.true-paperdoll .character-glow {
  height: 100%;
  min-height: 0;
}

.pd-slot {
  position: absolute;
  width: 245px;
}

.pd-slot .armory-slot {
  min-height: 62px;
}

.pd-slot .slot-meta strong {
  font-size: 13px;
}

.pd-head { left: 0; top: 0; }
.pd-neck { left: 0; top: 76px; }
.pd-shoulders { left: 0; top: 152px; }
.pd-back { left: 0; top: 228px; }
.pd-chest { left: 0; top: 304px; }
.pd-shirt { left: 0; top: 380px; }
.pd-tabard { left: 0; top: 456px; }
.pd-wrists { left: 0; top: 532px; }

.pd-hands { right: 0; top: 0; }
.pd-waist { right: 0; top: 76px; }
.pd-legs { right: 0; top: 152px; }
.pd-feet { right: 0; top: 228px; }
.pd-finger1 { right: 0; top: 304px; }
.pd-finger2 { right: 0; top: 380px; }
.pd-trinket1 { right: 0; top: 456px; }
.pd-trinket2 { right: 0; top: 532px; }

.pd-mainhand { left: 110px; bottom: 0; width: 245px; }
.pd-offhand { left: 50%; transform: translateX(-50%); bottom: 0; width: 245px; }
.pd-ranged { right: 110px; bottom: 0; width: 245px; }

@media (max-width: 1200px) {
  .paperdoll-stage {
    min-height: auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .paperdoll-model,
  .pd-slot,
  .pd-mainhand,
  .pd-offhand,
  .pd-ranged {
    position: static;
    transform: none;
    width: auto;
  }

  .paperdoll-model {
    min-height: 360px;
    order: -1;
  }
}

/* Armory 2.0 Paper Doll */
.armory-hero {
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:center;
  background:radial-gradient(circle at 20% 10%,rgba(80,190,255,.22),transparent 35%),linear-gradient(135deg,rgba(5,13,29,.96),rgba(2,6,14,.96));
}
.armory-hero h1 {
  font-size:clamp(42px,6vw,76px);
  margin:0;
  text-transform:uppercase;
  letter-spacing:2px;
}
.armory-hero-stats {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  min-width:360px;
}
.armory-hero-stats div {
  background:rgba(0,0,0,.3);
  border:1px solid rgba(120,210,255,.22);
  border-radius:14px;
  padding:14px;
  text-align:center;
}
.armory-hero-stats span {
  display:block;
  color:#8fb6d8;
  font-size:12px;
  text-transform:uppercase;
}
.armory-hero-stats strong {
  display:block;
  font-size:24px;
  color:#fff;
}
.online { color:#69ff9a;font-weight:800; }
.offline { color:#9fb4c9;font-weight:800; }

.armory-main {
  display:grid;
  grid-template-columns:minmax(760px,1fr) 330px;
  gap:18px;
  margin-top:18px;
}

.paperdoll {
  position:relative;
  min-height:790px;
  background:radial-gradient(circle at center,rgba(64,180,255,.22),transparent 42%),linear-gradient(180deg,rgba(4,12,25,.95),rgba(2,4,10,.98));
  overflow:hidden;
}

.paper-center {
  position:absolute;
  left:280px;
  right:280px;
  top:38px;
  bottom:145px;
}

.paper-character {
  height:100%;
  border:1px solid rgba(120,210,255,.22);
  border-radius:24px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  background:radial-gradient(circle,rgba(105,210,255,.25),transparent 45%),rgba(0,0,0,.18);
}

.paper-rune {
  font-size:120px;
  color:rgba(160,230,255,.9);
  filter:drop-shadow(0 0 24px rgba(105,210,255,.8));
}

.paper-character h2 {
  margin:0;
  font-size:34px;
  text-transform:uppercase;
}

.paper-character p {
  color:#a9cde8;
}

.paper-left,
.paper-right {
  position:absolute;
  top:18px;
  display:flex;
  flex-direction:column;
  gap:9px;
  width:245px;
}
.paper-left { left:18px; }
.paper-right { right:18px; }

.paper-bottom {
  position:absolute;
  left:95px;
  right:95px;
  bottom:18px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}

.paper-slot {
  min-height:62px;
  display:grid;
  grid-template-columns:50px minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:10px;
  align-items:center;
  padding:8px;
  border-radius:14px;
  background:rgba(0,0,0,.34);
  border:1px solid rgba(120,210,255,.18);
  text-decoration:none;
  color:inherit;
}

.paper-slot img,
.paper-icon {
  grid-row:1 / 3;
  width:50px;
  height:50px;
  border-radius:10px;
  border:1px solid rgba(180,225,255,.25);
  background:rgba(0,0,0,.45);
  display:grid;
  place-items:center;
}

.paper-slot span {
  color:#83b7d9;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.8px;
}

.paper-slot strong {
  color:#fff;
  font-size:13px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.paper-slot.empty {
  opacity:.5;
}

.paper-slot.q2 { border-color:rgba(30,255,0,.45); }
.paper-slot.q3 { border-color:rgba(0,112,255,.55); }
.paper-slot.q4 { border-color:rgba(163,53,238,.65); }
.paper-slot.q5 { border-color:rgba(255,128,0,.8); box-shadow:0 0 18px rgba(255,128,0,.15); }
.paper-slot.q6 { border-color:rgba(230,204,128,.85); box-shadow:0 0 18px rgba(230,204,128,.15); }

.armory-stats {
  display:flex;
  flex-direction:column;
  gap:18px;
}

.summary-list {
  display:grid;
  gap:10px;
}
.summary-list div {
  display:flex;
  justify-content:space-between;
  gap:12px;
  border-bottom:1px solid rgba(120,210,255,.12);
  padding-bottom:8px;
}
.summary-list span { color:#8fb6d8; }

.armory-tabs {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.armory-tabs span {
  border:1px solid rgba(120,210,255,.22);
  border-radius:999px;
  padding:7px 10px;
  color:#b8d7ee;
  background:rgba(0,0,0,.22);
}
.armory-tabs .active {
  background:rgba(76,190,255,.18);
  border-color:rgba(120,210,255,.65);
  color:#fff;
}

@media (max-width:1150px) {
  .armory-main { grid-template-columns:1fr; }
  .paperdoll { min-height:auto; }
  .paper-center,.paper-left,.paper-right,.paper-bottom {
    position:static;
    width:auto;
    display:grid;
    gap:10px;
    margin-bottom:10px;
  }
  .paper-center { min-height:360px; }
  .paper-bottom { grid-template-columns:1fr; }
  .armory-hero { flex-direction:column;align-items:flex-start; }
  .armory-hero-stats { min-width:0;width:100%; }
}

/* Armory 2.0 Profile */
.armory-hero {
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:center;
  background:radial-gradient(circle at 20% 10%,rgba(80,190,255,.22),transparent 35%),linear-gradient(135deg,rgba(5,13,29,.96),rgba(2,6,14,.96));
}
.armory-hero h1 {
  font-size:clamp(42px,6vw,76px);
  margin:0;
  text-transform:uppercase;
  letter-spacing:2px;
}
.armory-hero-stats {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  min-width:360px;
}
.armory-hero-stats div {
  background:rgba(0,0,0,.3);
  border:1px solid rgba(120,210,255,.22);
  border-radius:14px;
  padding:14px;
  text-align:center;
}
.armory-hero-stats span {
  display:block;
  color:#8fb6d8;
  font-size:12px;
  text-transform:uppercase;
}
.armory-hero-stats strong {
  display:block;
  font-size:24px;
  color:#fff;
}
.online { color:#69ff9a;font-weight:800; }
.offline { color:#9fb4c9;font-weight:800; }

.armory-profile-grid {
  display:grid;
  grid-template-columns:minmax(850px,1fr) 330px;
  gap:18px;
  margin-top:18px;
}

.paperdoll {
  position:relative;
  min-height:790px;
  background:radial-gradient(circle at center,rgba(64,180,255,.22),transparent 42%),linear-gradient(180deg,rgba(4,12,25,.95),rgba(2,4,10,.98));
  overflow:hidden;
}

.paper-character {
  position:absolute;
  left:285px;
  right:285px;
  top:35px;
  bottom:145px;
  border:1px solid rgba(120,210,255,.22);
  border-radius:24px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  background:radial-gradient(circle,rgba(105,210,255,.25),transparent 45%),rgba(0,0,0,.18);
}

.paper-rune {
  font-size:120px;
  color:rgba(160,230,255,.9);
  filter:drop-shadow(0 0 24px rgba(105,210,255,.8));
}

.paper-character h2 {
  margin:0;
  font-size:34px;
  text-transform:uppercase;
}

.paper-character p {
  color:#a9cde8;
}

.paper-left,
.paper-right {
  position:absolute;
  top:18px;
  display:flex;
  flex-direction:column;
  gap:9px;
  width:255px;
}
.paper-left { left:18px; }
.paper-right { right:18px; }

.paper-bottom {
  position:absolute;
  left:95px;
  right:95px;
  bottom:18px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}

.paper-slot {
  min-height:62px;
  display:grid;
  grid-template-columns:50px minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:10px;
  align-items:center;
  padding:8px;
  border-radius:14px;
  background:rgba(0,0,0,.34);
  border:1px solid rgba(120,210,255,.18);
  text-decoration:none;
  color:inherit;
}

.paper-slot img,
.paper-icon {
  grid-row:1 / 3;
  width:50px;
  height:50px;
  border-radius:10px;
  border:1px solid rgba(180,225,255,.25);
  background:rgba(0,0,0,.45);
  display:grid;
  place-items:center;
}

.paper-slot span {
  color:#83b7d9;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.8px;
}

.paper-slot strong {
  color:#fff;
  font-size:13px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.paper-slot.empty {
  opacity:.5;
}

.paper-slot.q2 { border-color:rgba(30,255,0,.45); }
.paper-slot.q3 { border-color:rgba(0,112,255,.55); }
.paper-slot.q4 { border-color:rgba(163,53,238,.65); }
.paper-slot.q5 { border-color:rgba(255,128,0,.8); box-shadow:0 0 18px rgba(255,128,0,.15); }
.paper-slot.q6 { border-color:rgba(230,204,128,.85); box-shadow:0 0 18px rgba(230,204,128,.15); }

.profile-side {
  display:flex;
  flex-direction:column;
  gap:18px;
}

.summary-list {
  display:grid;
  gap:10px;
}
.summary-list div {
  display:flex;
  justify-content:space-between;
  gap:12px;
  border-bottom:1px solid rgba(120,210,255,.12);
  padding-bottom:8px;
}
.summary-list span { color:#8fb6d8; }

.armory-tabs {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.armory-tabs span {
  border:1px solid rgba(120,210,255,.22);
  border-radius:999px;
  padding:7px 10px;
  color:#b8d7ee;
  background:rgba(0,0,0,.22);
}
.armory-tabs .active {
  background:rgba(76,190,255,.18);
  border-color:rgba(120,210,255,.65);
  color:#fff;
}

@media (max-width:1200px) {
  .armory-profile-grid { grid-template-columns:1fr; }
  .paperdoll { min-height:auto; }
  .paper-character,.paper-left,.paper-right,.paper-bottom {
    position:static;
    width:auto;
    display:grid;
    gap:10px;
    margin-bottom:10px;
  }
  .paper-character { min-height:360px; }
  .paper-bottom { grid-template-columns:1fr; }
  .armory-hero { flex-direction:column;align-items:flex-start; }
  .armory-hero-stats { min-width:0;width:100%; }
}

/* Armory 2.0 Profile */
.armory-hero {
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:center;
  background:radial-gradient(circle at 20% 10%,rgba(80,190,255,.22),transparent 35%),linear-gradient(135deg,rgba(5,13,29,.96),rgba(2,6,14,.96));
}
.armory-hero h1 {
  font-size:clamp(42px,6vw,76px);
  margin:0;
  text-transform:uppercase;
  letter-spacing:2px;
}
.armory-hero-stats {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  min-width:360px;
}
.armory-hero-stats div {
  background:rgba(0,0,0,.3);
  border:1px solid rgba(120,210,255,.22);
  border-radius:14px;
  padding:14px;
  text-align:center;
}
.armory-hero-stats span {
  display:block;
  color:#8fb6d8;
  font-size:12px;
  text-transform:uppercase;
}
.armory-hero-stats strong {
  display:block;
  font-size:24px;
  color:#fff;
}
.online { color:#69ff9a;font-weight:800; }
.offline { color:#9fb4c9;font-weight:800; }

.armory-profile-grid {
  display:grid;
  grid-template-columns:minmax(850px,1fr) 330px;
  gap:18px;
  margin-top:18px;
}

.paperdoll {
  position:relative;
  min-height:790px;
  background:radial-gradient(circle at center,rgba(64,180,255,.22),transparent 42%),linear-gradient(180deg,rgba(4,12,25,.95),rgba(2,4,10,.98));
  overflow:hidden;
}

.paper-character {
  position:absolute;
  left:285px;
  right:285px;
  top:35px;
  bottom:145px;
  border:1px solid rgba(120,210,255,.22);
  border-radius:24px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  background:radial-gradient(circle,rgba(105,210,255,.25),transparent 45%),rgba(0,0,0,.18);
}

.paper-rune {
  font-size:120px;
  color:rgba(160,230,255,.9);
  filter:drop-shadow(0 0 24px rgba(105,210,255,.8));
}

.paper-character h2 {
  margin:0;
  font-size:34px;
  text-transform:uppercase;
}

.paper-character p {
  color:#a9cde8;
}

.paper-left,
.paper-right {
  position:absolute;
  top:18px;
  display:flex;
  flex-direction:column;
  gap:9px;
  width:255px;
}
.paper-left { left:18px; }
.paper-right { right:18px; }

.paper-bottom {
  position:absolute;
  left:95px;
  right:95px;
  bottom:18px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}

.paper-slot {
  min-height:62px;
  display:grid;
  grid-template-columns:50px minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:10px;
  align-items:center;
  padding:8px;
  border-radius:14px;
  background:rgba(0,0,0,.34);
  border:1px solid rgba(120,210,255,.18);
  text-decoration:none;
  color:inherit;
}

.paper-slot img,
.paper-icon {
  grid-row:1 / 3;
  width:50px;
  height:50px;
  border-radius:10px;
  border:1px solid rgba(180,225,255,.25);
  background:rgba(0,0,0,.45);
  display:grid;
  place-items:center;
}

.paper-slot span {
  color:#83b7d9;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.8px;
}

.paper-slot strong {
  color:#fff;
  font-size:13px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.paper-slot.empty {
  opacity:.5;
}

.paper-slot.q2 { border-color:rgba(30,255,0,.45); }
.paper-slot.q3 { border-color:rgba(0,112,255,.55); }
.paper-slot.q4 { border-color:rgba(163,53,238,.65); }
.paper-slot.q5 { border-color:rgba(255,128,0,.8); box-shadow:0 0 18px rgba(255,128,0,.15); }
.paper-slot.q6 { border-color:rgba(230,204,128,.85); box-shadow:0 0 18px rgba(230,204,128,.15); }

.profile-side {
  display:flex;
  flex-direction:column;
  gap:18px;
}

.summary-list {
  display:grid;
  gap:10px;
}
.summary-list div {
  display:flex;
  justify-content:space-between;
  gap:12px;
  border-bottom:1px solid rgba(120,210,255,.12);
  padding-bottom:8px;
}
.summary-list span { color:#8fb6d8; }

.armory-tabs {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.armory-tabs span {
  border:1px solid rgba(120,210,255,.22);
  border-radius:999px;
  padding:7px 10px;
  color:#b8d7ee;
  background:rgba(0,0,0,.22);
}
.armory-tabs .active {
  background:rgba(76,190,255,.18);
  border-color:rgba(120,210,255,.65);
  color:#fff;
}

@media (max-width:1200px) {
  .armory-profile-grid { grid-template-columns:1fr; }
  .paperdoll { min-height:auto; }
  .paper-character,.paper-left,.paper-right,.paper-bottom {
    position:static;
    width:auto;
    display:grid;
    gap:10px;
    margin-bottom:10px;
  }
  .paper-character { min-height:360px; }
  .paper-bottom { grid-template-columns:1fr; }
  .armory-hero { flex-direction:column;align-items:flex-start; }
  .armory-hero-stats { min-width:0;width:100%; }
}

/* Armory scale tighten */
.armory-profile-page .container,
.armory-profile-page {
  font-size: 14px;
}

.armory-hero {
  padding: 18px 22px;
}

.armory-hero h1 {
  font-size: clamp(34px, 4.5vw, 58px);
}

.armory-hero-stats strong {
  font-size: 20px;
}

.armory-profile-grid {
  grid-template-columns: minmax(760px, 1fr) 300px;
  gap: 14px;
}

.paperdoll {
  min-height: 710px;
}

.paper-left,
.paper-right {
  width: 235px;
  gap: 7px;
}

.paper-left {
  left: 14px;
}

.paper-right {
  right: 14px;
}

.paper-character {
  left: 262px;
  right: 262px;
  top: 28px;
  bottom: 128px;
}

.paper-bottom {
  left: 80px;
  right: 80px;
  bottom: 14px;
  gap: 10px;
}

.paper-slot {
  min-height: 56px;
  padding: 7px;
  grid-template-columns: 46px minmax(0, 1fr);
}

.paper-slot img,
.paper-icon {
  width: 46px;
  height: 46px;
}

.paper-slot span {
  font-size: 10px;
}

.paper-slot strong {
  font-size: 12px;
}

.profile-side .card {
  padding: 16px;
}

/* temporary character model placeholder */
.armory-model-placeholder {
  position: relative;
  width: 190px;
  height: 315px;
  margin-bottom: 10px;
  display: grid;
  place-items: center;
}

.model-glow {
  position: absolute;
  inset: 20px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(88, 200, 255, .34), transparent 62%);
  filter: blur(8px);
}

.model-figure {
  position: relative;
  z-index: 2;
  width: 105px;
  height: 260px;
  background:
    radial-gradient(circle at 50% 12%, #d7f4ff 0 16px, transparent 17px),
    linear-gradient(to bottom, transparent 0 32px, #101923 33px 58px, transparent 59px),
    linear-gradient(110deg, transparent 0 42%, #182a38 43% 56%, transparent 57%),
    linear-gradient(to bottom, transparent 0 70px, #172738 71px 155px, transparent 156px),
    linear-gradient(75deg, transparent 0 38%, #111b27 39% 48%, transparent 49%),
    linear-gradient(-75deg, transparent 0 52%, #111b27 53% 62%, transparent 63%);
  border-radius: 60px 60px 28px 28px;
  filter: drop-shadow(0 0 24px rgba(77, 198, 255, .55));
}

.model-figure::before,
.model-figure::after {
  content: "";
  position: absolute;
  top: 75px;
  width: 26px;
  height: 105px;
  background: linear-gradient(#1d3446, #0d1722);
  border-radius: 18px;
}

.model-figure::before {
  left: -28px;
  transform: rotate(14deg);
}

.model-figure::after {
  right: -28px;
  transform: rotate(-14deg);
}

.class-death-knight .model-figure {
  filter: drop-shadow(0 0 28px rgba(78, 210, 255, .75));
}

.class-mage .model-glow,
.class-priest .model-glow {
  background: radial-gradient(circle, rgba(180, 120, 255, .35), transparent 62%);
}

.class-paladin .model-glow {
  background: radial-gradient(circle, rgba(255, 210, 90, .32), transparent 62%);
}

@media (max-width: 1200px) {
  .paper-character {
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
  }
}

/* Armory 3.0 Classic Game UI */
.armory3-page {
  max-width: 1240px;
}

.armory3-shell {
  border: 1px solid rgba(120, 210, 255, .22);
  border-radius: 18px;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 20%, rgba(54, 160, 255, .18), transparent 35%),
    linear-gradient(180deg, rgba(7, 16, 32, .95), rgba(1, 5, 12, .98));
  box-shadow: 0 0 35px rgba(70, 190, 255, .12);
}

.a3-top {
  display: grid;
  grid-template-columns: 96px 1fr 170px;
  gap: 18px;
  align-items: center;
  padding: 18px 22px;
  border-bottom: 1px solid rgba(120, 210, 255, .22);
  background:
    linear-gradient(90deg, rgba(7, 26, 51, .95), rgba(5, 12, 26, .8)),
    radial-gradient(circle at 40% 0%, rgba(95, 210, 255, .22), transparent 30%);
}

.a3-portrait {
  width: 78px;
  height: 78px;
  border-radius: 14px;
  border: 2px solid rgba(120, 210, 255, .55);
  background: radial-gradient(circle, rgba(110, 220, 255, .35), rgba(6, 12, 24, .95));
  position: relative;
}

.a3-level {
  position: absolute;
  right: -8px;
  bottom: -8px;
  background: #05080d;
  border: 2px solid rgba(220, 245, 255, .75);
  border-radius: 50%;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  font-weight: 900;
}

.a3-title p {
  margin: 0;
  color: #7fbce8;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 12px;
}

.a3-title h1 {
  margin: 0;
  font-size: 44px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 2px;
}

.a3-title span {
  color: #c8e8ff;
}

.a3-score {
  text-align: center;
}

.a3-score span {
  display: block;
  color: #9dbdda;
  text-transform: uppercase;
  font-size: 12px;
}

.a3-score strong {
  font-size: 34px;
  color: #d888ff;
}

.a3-body {
  display: grid;
  grid-template-columns: minmax(760px, 1fr) 360px;
  gap: 0;
}

.a3-doll {
  display: grid;
  grid-template-columns: 190px minmax(330px, 1fr) 190px;
  gap: 14px;
  padding: 22px;
  border-right: 1px solid rgba(120, 210, 255, .18);
  min-height: 650px;
}

.a3-left,
.a3-right {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.a3-character-frame {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.a3-model-card {
  flex: 1;
  min-height: 500px;
  border: 1px solid rgba(120, 210, 255, .22);
  border-radius: 12px;
  background:
    radial-gradient(circle at 50% 40%, rgba(85, 205, 255, .24), transparent 42%),
    linear-gradient(180deg, rgba(4, 16, 32, .65), rgba(0, 0, 0, .25));
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.a3-model-glow {
  position: absolute;
  width: 300px;
  height: 420px;
  background: radial-gradient(circle, rgba(80, 205, 255, .35), transparent 65%);
  filter: blur(10px);
}

.a3-model {
  position: relative;
  z-index: 2;
  width: 150px;
  height: 355px;
  filter: drop-shadow(0 0 30px rgba(80, 205, 255, .65));
}

.a3-model::before {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 0;
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: radial-gradient(circle, #d8f5ff 0 18px, #173142 19px 34px, transparent 35px);
}

.a3-model::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 72px;
  width: 140px;
  height: 260px;
  clip-path: polygon(50% 0, 82% 14%, 100% 45%, 74% 52%, 86% 100%, 55% 100%, 50% 70%, 45% 100%, 14% 100%, 26% 52%, 0 45%, 18% 14%);
  background:
    linear-gradient(90deg, transparent 0 16%, rgba(120, 220, 255, .35) 17% 20%, transparent 21%),
    linear-gradient(270deg, transparent 0 16%, rgba(120, 220, 255, .35) 17% 20%, transparent 21%),
    linear-gradient(180deg, #284b60, #0b1520);
  border: 1px solid rgba(150, 230, 255, .35);
}

.a3-model-name {
  position: absolute;
  z-index: 3;
  bottom: 24px;
  text-align: center;
}

.a3-model-name strong {
  display: block;
  font-size: 28px;
  text-transform: uppercase;
}

.a3-model-name span {
  color: #a8cce8;
}

.a3-weapons {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 9px;
}

.a3-slot {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-height: 54px;
  padding: 7px;
  border-radius: 9px;
  background: rgba(0, 0, 0, .32);
  border: 1px solid rgba(120, 210, 255, .18);
  text-decoration: none;
  color: inherit;
}

.a3-slot:hover {
  border-color: rgba(120, 210, 255, .7);
}

.a3-slot img,
.a3-icon {
  width: 44px;
  height: 44px;
  border-radius: 7px;
  border: 1px solid rgba(220, 240, 255, .24);
  background: rgba(0, 0, 0, .5);
  display: grid;
  place-items: center;
}

.a3-slot-text {
  min-width: 0;
}

.a3-slot span {
  display: block;
  font-size: 9px;
  color: #89c9ef;
  text-transform: uppercase;
  letter-spacing: .8px;
}

.a3-slot strong {
  display: block;
  font-size: 11px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.a3-slot small {
  display: block;
  color: #95aabc;
  font-size: 10px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.a3-slot.empty {
  opacity: .45;
}

.a3-slot.q2 { border-color: rgba(30, 255, 0, .45); }
.a3-slot.q3 { border-color: rgba(0, 112, 255, .55); }
.a3-slot.q4 { border-color: rgba(163, 53, 238, .7); }
.a3-slot.q5 { border-color: rgba(255, 128, 0, .85); box-shadow: 0 0 14px rgba(255, 128, 0, .15); }
.a3-slot.q6 { border-color: rgba(230, 204, 128, .85); box-shadow: 0 0 14px rgba(230, 204, 128, .15); }

.a3-side {
  padding: 22px;
  background: rgba(2, 8, 18, .35);
}

.a3-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 14px;
}

.a3-tabs span {
  border: 1px solid rgba(120, 210, 255, .22);
  padding: 8px 10px;
  border-radius: 6px;
  color: #b8d8ef;
  background: rgba(0, 0, 0, .18);
  font-size: 12px;
}

.a3-tabs .active {
  background: rgba(70, 180, 255, .22);
  border-color: rgba(120, 210, 255, .7);
  color: #fff;
}

.a3-panel {
  border: 1px solid rgba(120, 210, 255, .18);
  border-radius: 10px;
  padding: 14px;
  background: rgba(0, 0, 0, .22);
  margin-bottom: 14px;
}

.a3-panel h3 {
  margin-top: 0;
}

.a3-statline {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(120, 210, 255, .1);
}

.a3-statline span {
  color: #9dbdda;
}

.a3-activity {
  padding: 9px 0;
  border-bottom: 1px solid rgba(120, 210, 255, .1);
}

.a3-bottom {
  border-top: 1px solid rgba(120, 210, 255, .18);
  padding: 18px 22px;
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 18px;
}

.a3-stat-grid {
  display: grid;
  gap: 8px;
}

.a3-stat-grid div {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid rgba(120, 210, 255, .1);
  padding-bottom: 7px;
}

@media (max-width: 1150px) {
  .a3-body,
  .a3-doll,
  .a3-bottom,
  .a3-top {
    grid-template-columns: 1fr;
  }

  .a3-doll {
    min-height: 0;
  }

  .a3-model-card {
    min-height: 430px;
  }

  .a3-weapons {
    grid-template-columns: 1fr;
  }
}

/* FrozenThrone Armory 4 - Classic Armory Inspired */
.ftarmory4-page {
  max-width: 1180px;
}

.ftarmory4 {
  border: 1px solid rgba(117, 202, 255, .28);
  border-radius: 14px;
  overflow: visible;
  background:
    radial-gradient(circle at 50% 22%, rgba(75, 170, 255, .17), transparent 38%),
    linear-gradient(180deg, rgba(8, 16, 31, .96), rgba(2, 5, 12, .98));
  box-shadow: 0 0 40px rgba(71, 184, 255, .12);
  padding: 0;
}

.ftprofile-head {
  min-height: 92px;
  display: grid;
  grid-template-columns: 76px 1fr 160px 100px;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(117, 202, 255, .22);
  background:
    linear-gradient(90deg, rgba(9, 30, 58, .96), rgba(5, 11, 24, .84)),
    radial-gradient(circle at 25% 0%, rgba(118, 215, 255, .22), transparent 34%);
}

.ftportrait {
  width: 66px;
  height: 66px;
  border-radius: 10px;
  border: 2px solid rgba(129, 219, 255, .65);
  background: radial-gradient(circle, rgba(124, 225, 255, .34), rgba(4, 9, 18, .98));
  position: relative;
}

.ftportrait span {
  position: absolute;
  right: -8px;
  bottom: -8px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #02050a;
  border: 2px solid rgba(230, 248, 255, .75);
  display: grid;
  place-items: center;
  font-weight: 900;
}

.ftnameblock p {
  margin: 0;
  color: #7fc8f4;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 11px;
}

.ftnameblock h1 {
  margin: 0;
  font-size: 38px;
  line-height: 1;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.ftnameblock div {
  color: #ccecff;
}

.fthead-stat {
  text-align: center;
}

.fthead-stat span {
  display: block;
  color: #9ebed8;
  font-size: 11px;
  text-transform: uppercase;
}

.fthead-stat strong {
  font-size: 32px;
  color: #c884ff;
}

.fthead-status {
  text-align: center;
  font-weight: 900;
}

.fthead-status.on { color: #71ff9e; }
.fthead-status.off { color: #8fa8bc; }

.ftprofile-core {
  display: grid;
  grid-template-columns: 62px minmax(420px, 1fr) 62px 300px;
  gap: 12px;
  padding: 16px;
  align-items: start;
}

.ftgear-left,
.ftgear-right {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
}

.ftslot {
  position: relative;
  width: 54px;
  height: 54px;
  border-radius: 8px;
  border: 1px solid rgba(135, 215, 255, .22);
  background: rgba(0, 0, 0, .35);
  display: grid;
  place-items: center;
  text-decoration: none;
  color: inherit;
}

.ftslot img,
.ftslot-icon {
  width: 48px;
  height: 48px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  background: rgba(0,0,0,.55);
}

.ftslot > span {
  position: absolute;
  left: 62px;
  top: 50%;
  transform: translateY(-50%);
  white-space: nowrap;
  font-size: 10px;
  color: #8fc9ee;
  text-transform: uppercase;
  letter-spacing: .8px;
  opacity: .75;
}

.ftgear-right .ftslot > span {
  left: auto;
  right: 62px;
}

.ftslot.empty {
  opacity: .42;
}

.ftslot.q2 { border-color: rgba(30,255,0,.55); }
.ftslot.q3 { border-color: rgba(0,112,255,.65); }
.ftslot.q4 { border-color: rgba(163,53,238,.8); box-shadow: 0 0 10px rgba(163,53,238,.15); }
.ftslot.q5 { border-color: rgba(255,128,0,.9); box-shadow: 0 0 12px rgba(255,128,0,.18); }
.ftslot.q6 { border-color: rgba(230,204,128,.95); box-shadow: 0 0 12px rgba(230,204,128,.18); }

.fttip {
  display: none;
  position: absolute;
  z-index: 50;
  left: 66px;
  top: -4px;
  width: 230px;
  padding: 10px;
  border-radius: 8px;
  border: 1px solid rgba(160, 220, 255, .45);
  background: rgba(2, 5, 12, .98);
  box-shadow: 0 10px 30px rgba(0,0,0,.5);
  pointer-events: none;
}

.ftgear-right .fttip {
  left: auto;
  right: 66px;
}

.ftslot:hover .fttip {
  display: block;
}

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

.fttip strong {
  margin-bottom: 4px;
}

.fttip small {
  color: #b8cce0;
  margin-top: 2px;
}

.fttip.q2 strong { color: #1eff00; }
.fttip.q3 strong { color: #0070ff; }
.fttip.q4 strong { color: #a335ee; }
.fttip.q5 strong { color: #ff8000; }
.fttip.q6 strong { color: #e6cc80; }

.ftmodel-zone {
  min-width: 0;
}

.ftmodel-frame {
  min-height: 545px;
  border: 1px solid rgba(117, 202, 255, .2);
  border-radius: 12px;
  position: relative;
  overflow: hidden;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 50% 42%, rgba(92, 205, 255, .26), transparent 44%),
    linear-gradient(180deg, rgba(4, 17, 34, .62), rgba(0, 0, 0, .18));
}

.ftmodel-light {
  position: absolute;
  width: 320px;
  height: 460px;
  background: radial-gradient(circle, rgba(80, 205, 255, .35), transparent 65%);
  filter: blur(10px);
}

.ftmodel-body {
  position: relative;
  z-index: 2;
  width: 165px;
  height: 390px;
  filter: drop-shadow(0 0 34px rgba(80,205,255,.65));
}

.ftmodel-body::before {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 0;
  width: 78px;
  height: 78px;
  border-radius: 50%;
  background: radial-gradient(circle, #d8f5ff 0 18px, #173142 19px 35px, transparent 36px);
}

.ftmodel-body::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 74px;
  width: 150px;
  height: 285px;
  clip-path: polygon(50% 0,82% 14%,100% 45%,75% 52%,88% 100%,56% 100%,50% 70%,44% 100%,12% 100%,25% 52%,0 45%,18% 14%);
  background: linear-gradient(180deg, #2f596f, #08131e);
  border: 1px solid rgba(150, 230, 255, .35);
}

.ftmodel-label {
  position: absolute;
  bottom: 18px;
  z-index: 3;
  text-align: center;
}

.ftmodel-label strong {
  display: block;
  text-transform: uppercase;
  font-size: 24px;
}

.ftmodel-label span {
  color: #a8cce8;
}

.ftweapon-row {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 12px;
}

.ftweapon-row .ftslot > span {
  left: 50%;
  right: auto;
  top: 62px;
  transform: translateX(-50%);
}

.ftweapon-row .fttip {
  left: 50%;
  transform: translateX(-50%);
  top: auto;
  bottom: 64px;
}

.ftside-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ftmini-section {
  border: 1px solid rgba(117,202,255,.18);
  background: rgba(0,0,0,.2);
  border-radius: 10px;
  padding: 12px;
}

.ftmini-section h3 {
  margin: 0 0 8px;
}

.ftmini-section p {
  margin: 0;
  color: #a9c6dc;
}

.ftmini-section div {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid rgba(117,202,255,.1);
  padding: 6px 0;
}

.ftmini-section div:last-child {
  border-bottom: 0;
}

.ftmini-section span {
  color: #9dbdda;
}

.ftprofile-tabs {
  display: flex;
  gap: 6px;
  padding: 0 16px 14px;
  border-bottom: 1px solid rgba(117,202,255,.18);
}

.ftprofile-tabs span {
  padding: 8px 12px;
  border: 1px solid rgba(117,202,255,.2);
  border-radius: 6px;
  background: rgba(0,0,0,.22);
  color: #b8d8ef;
  font-size: 12px;
}

.ftprofile-tabs .active {
  background: rgba(78,185,255,.22);
  border-color: rgba(117,202,255,.72);
  color: #fff;
}

.ftprofile-bottom {
  display: grid;
  grid-template-columns: 330px 1fr;
  gap: 14px;
  padding: 16px;
}

.ftstatgrid {
  display: grid;
  gap: 7px;
}

.ftstatgrid div {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid rgba(117,202,255,.1);
  padding-bottom: 7px;
}

@media (max-width: 1050px) {
  .ftprofile-head,
  .ftprofile-core,
  .ftprofile-bottom {
    grid-template-columns: 1fr;
  }

  .ftgear-left,
  .ftgear-right {
    display: grid;
    grid-template-columns: repeat(4, 54px);
    justify-content: center;
  }

  .ftslot > span,
  .ftgear-right .ftslot > span {
    display: none;
  }

  .ftside-panel {
    grid-row: auto;
  }
}

.ftmini-icon-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.ftmini-icon-card .ftmini-copy {
  display: block;
  border-bottom: 0;
  padding: 0;
}

.ftmini-icon-card img {
  width: 58px;
  height: 58px;
  opacity: .55;
  filter: drop-shadow(0 0 10px rgba(90, 210, 255, .45));
}

.ftmini-icon-card:hover img {
  opacity: .9;
}

/* Armory 4.1 - icon-only gear inside model frame */
.ftarmory4-page {
  max-width: 1120px;
}

.ftarmory4 {
  transform: scale(.92);
  transform-origin: top center;
}

.ftprofile-core {
  grid-template-columns: minmax(720px, 1fr) 300px;
  gap: 14px;
}

.ftgear-left,
.ftgear-right {
  position: absolute;
  z-index: 5;
}

.ftmodel-zone {
  position: relative;
  min-height: 565px;
}

.ftmodel-frame {
  min-height: 565px;
  padding: 18px 96px;
}

.ftgear-left {
  left: 22px;
  top: 22px;
}

.ftgear-right {
  right: 22px;
  top: 22px;
}

.ftgear-left .ftslot > span,
.ftgear-right .ftslot > span,
.ftweapon-row .ftslot > span {
  display: none !important;
}

.ftslot {
  width: 52px;
  height: 52px;
  border-radius: 7px;
}

.ftslot img,
.ftslot-icon {
  width: 46px;
  height: 46px;
}

.ftweapon-row {
  position: absolute;
  z-index: 6;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  margin: 0;
}

.ftside-panel .ftmini-section h3,
.ftside-panel .ftmini-section p {
  display: none;
}

.ftmini-icon-card {
  min-height: 86px;
  justify-content: flex-end;
}

.ftmini-icon-card img {
  width: 64px;
  height: 64px;
  opacity: .7;
}

.ftmodel-label {
  bottom: 74px;
}

.ftprofile-tabs {
  margin-top: -8px;
}

@media (max-width: 1050px) {
  .ftarmory4 {
    transform: none;
  }

  .ftgear-left,
  .ftgear-right,
  .ftweapon-row {
    position: static;
    transform: none;
  }

  .ftgear-left,
  .ftgear-right {
    display: grid;
    grid-template-columns: repeat(4, 52px);
  }

  .ftmodel-frame {
    padding: 18px;
  }
}

/* Armory 4.2 - icons inside ragdoll frame */
.ftarmory4 {
  transform: none !important;
}

.ftarmory4-page {
  max-width: 1180px !important;
}

.ftprofile-core {
  grid-template-columns: minmax(720px, 1fr) 330px !important;
  gap: 16px !important;
}

.ftmodel-zone {
  position: relative !important;
  min-height: 700px !important;
}

.ftmodel-frame {
  position: relative !important;
  min-height: 700px !important;
  padding: 0 !important;
  overflow: visible !important;
}

.ftgear-left,
.ftgear-right {
  position: absolute !important;
  top: 18px !important;
  z-index: 10 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.ftgear-left {
  left: 86px !important;
}

.ftgear-right {
  right: 86px !important;
}

.ftslot {
  width: 54px !important;
  height: 54px !important;
}

.ftslot img,
.ftslot-icon {
  width: 48px !important;
  height: 48px !important;
}

.ftslot > span {
  display: none !important;
}

.ftweapon-row {
  position: absolute !important;
  left: 50% !important;
  bottom: 22px !important;
  transform: translateX(-50%) !important;
  z-index: 12 !important;
  display: flex !important;
  gap: 14px !important;
  margin: 0 !important;
}

.ftmodel-body {
  width: 170px !important;
  height: 390px !important;
}

.ftmodel-light {
  width: 360px !important;
  height: 460px !important;
}

.ftmini-icon-card .ftmini-copy h3,
.ftmini-icon-card .ftmini-copy p {
  display: block !important;
}

@media (max-width: 1050px) {
  .ftgear-left,
  .ftgear-right,
  .ftweapon-row {
    position: static !important;
    transform: none !important;
  }
}

/* Armory mobile fix */
@media (max-width: 700px) {
  .ftarmory4-page {
    max-width: 100% !important;
    padding: 0 10px !important;
    overflow-x: hidden !important;
  }

  .ftarmory4 {
    width: 100% !important;
    transform: none !important;
    overflow: hidden !important;
  }

  .ftprofile-head {
    grid-template-columns: 54px 1fr !important;
    gap: 10px !important;
    padding: 10px !important;
  }

  .ftportrait {
    width: 48px !important;
    height: 48px !important;
  }

  .ftportrait span {
    width: 24px !important;
    height: 24px !important;
    font-size: 12px !important;
  }

  .ftnameblock h1 {
    font-size: 26px !important;
  }

  .ftnameblock p {
    font-size: 9px !important;
  }

  .fthead-stat,
  .fthead-status {
    grid-column: 1 / -1 !important;
    text-align: left !important;
  }

  .fthead-stat strong {
    font-size: 22px !important;
  }

  .ftprofile-core {
    display: block !important;
    padding: 10px !important;
  }

  .ftmodel-frame {
    min-height: 430px !important;
    width: 100% !important;
    overflow: hidden !important;
  }

  .ftmodel-body {
    width: 120px !important;
    height: 285px !important;
  }

  .ftmodel-light {
    width: 250px !important;
    height: 330px !important;
  }

  .ftgear-left,
  .ftgear-right {
    position: absolute !important;
    top: 12px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 5px !important;
  }

  .ftgear-left {
    left: 10px !important;
  }

  .ftgear-right {
    right: 10px !important;
  }

  .ftslot {
    width: 38px !important;
    height: 38px !important;
  }

  .ftslot img,
  .ftslot-icon {
    width: 34px !important;
    height: 34px !important;
  }

  .ftweapon-row {
    position: absolute !important;
    left: 50% !important;
    bottom: 10px !important;
    transform: translateX(-50%) !important;
    gap: 7px !important;
  }

  .ftside-panel {
    margin-top: 12px !important;
  }

  .ftmini-icon-card {
    min-height: 64px !important;
  }

  .ftmini-icon-card img {
    width: 42px !important;
    height: 42px !important;
  }

  .ftprofile-tabs {
    overflow-x: auto !important;
    padding: 10px !important;
    gap: 6px !important;
  }

  .ftprofile-tabs span {
    white-space: nowrap !important;
    font-size: 12px !important;
  }

  .ftprofile-bottom {
    display: block !important;
    padding: 10px !important;
  }

  .fttip {
    display: none !important;
  }
}

/* Armory 4.1 - icon-only gear inside model frame */
.ftarmory4-page {
  max-width: 1120px;
}

.ftarmory4 {
  transform: scale(.92);
  transform-origin: top center;
}

.ftprofile-core {
  grid-template-columns: minmax(720px, 1fr) 300px;
  gap: 14px;
}

.ftgear-left,
.ftgear-right {
  position: absolute;
  z-index: 5;
}

.ftmodel-zone {
  position: relative;
  min-height: 565px;
}

.ftmodel-frame {
  min-height: 565px;
  padding: 18px 96px;
}

.ftgear-left {
  left: 22px;
  top: 22px;
}

.ftgear-right {
  right: 22px;
  top: 22px;
}

.ftgear-left .ftslot > span,
.ftgear-right .ftslot > span,
.ftweapon-row .ftslot > span {
  display: none !important;
}

.ftslot {
  width: 52px;
  height: 52px;
  border-radius: 7px;
}

.ftslot img,
.ftslot-icon {
  width: 46px;
  height: 46px;
}

.ftweapon-row {
  position: absolute;
  z-index: 6;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  margin: 0;
}

.ftside-panel .ftmini-section h3,
.ftside-panel .ftmini-section p {
  display: none;
}

.ftmini-icon-card {
  min-height: 86px;
  justify-content: flex-end;
}

.ftmini-icon-card img {
  width: 64px;
  height: 64px;
  opacity: .7;
}

.ftmodel-label {
  bottom: 74px;
}

.ftprofile-tabs {
  margin-top: -8px;
}

@media (max-width: 1050px) {
  .ftarmory4 {
    transform: none;
  }

  .ftgear-left,
  .ftgear-right,
  .ftweapon-row {
    position: static;
    transform: none;
  }

  .ftgear-left,
  .ftgear-right {
    display: grid;
    grid-template-columns: repeat(4, 52px);
  }

  .ftmodel-frame {
    padding: 18px;
  }
}

.ftmodel-img {
  position: relative;
  z-index: 3;
  max-height: 430px;
  max-width: 72%;
  object-fit: contain;
  filter: drop-shadow(0 0 28px rgba(80,205,255,.7));
}

/* Armory model background */
.ftmodel-frame{
    position:relative;
    overflow:hidden;
    background:
        linear-gradient(rgba(4,10,22,.30),rgba(4,10,22,.45)),
        url("/images/background.jpg") center center / cover no-repeat !important;
    border:1px solid rgba(120,210,255,.28);
}

.ftmodel-frame::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at center,
            rgba(70,180,255,.20) 0%,
            rgba(0,0,0,0) 55%);
    pointer-events:none;
}

.ftmodel-light{
    display:none;
}

.ftmodel-img{
    position:relative;
    z-index:2;
    max-height:430px;
    max-width:70%;
    object-fit:contain;
    filter:drop-shadow(0 0 18px rgba(0,180,255,.65));
}

.ftmodel-body{
    z-index:2;
}

.ftweapon-row{
    z-index:5;
}

.ftgear-left,
.ftgear-right{
    z-index:6;
}


/* Correct armory model background path */
.ftmodel-frame{
  background:
    linear-gradient(rgba(4,10,22,.30),rgba(4,10,22,.45)),
    url("/images/frozenthrone-bg.jpeg") center center / cover no-repeat !important;
}

.ftportrait img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:8px;
  display:block;
}

/* Armory polish: tighter paperdoll */
.ftprofile-core{
  grid-template-columns:minmax(720px,1fr) 300px !important;
  gap:12px !important;
}

.ftmodel-frame{
  min-height:520px !important;
}

.ftgear-left{
  left:72px !important;
  top:16px !important;
}

.ftgear-right{
  right:72px !important;
  top:16px !important;
}

.ftgear-left,
.ftgear-right{
  gap:7px !important;
}

.ftslot{
  width:49px !important;
  height:49px !important;
}

.ftslot img,
.ftslot-icon{
  width:43px !important;
  height:43px !important;
}

.ftweapon-row{
  bottom:18px !important;
  gap:10px !important;
}

.ftmodel-img{
  max-height:450px !important;
  max-width:76% !important;
}

.ftmodel-body{
  width:150px !important;
  height:350px !important;
}

.ftmodel-body::after{
  width:135px !important;
  height:260px !important;
}

.ftprofile-tabs{
  padding-top:8px !important;
}

@media (max-width:700px){
  .ftslot{
    width:36px !important;
    height:36px !important;
  }

  .ftslot img,
  .ftslot-icon{
    width:32px !important;
    height:32px !important;
  }

  .ftmodel-frame{
    min-height:390px !important;
  }

  .ftgear-left{
    left:8px !important;
  }

  .ftgear-right{
    right:8px !important;
  }
}

/********************************************************
  Armory Paperdoll Layout v1
********************************************************/

.ftmodel-frame{
    position:relative;
    min-height:560px !important;
}

/* Character in center */
.ftmodel-img,
.ftmodel-body{
    position:absolute !important;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    z-index:3;
}

.ftmodel-img{
    max-height:470px !important;
    max-width:58% !important;
}

/******** LEFT SIDE ********/

.ftgear-left{
    position:absolute !important;
    left:95px !important;
    top:22px !important;
    gap:12px !important;
    z-index:8;
}

/******** RIGHT SIDE ********/

.ftgear-right{
    position:absolute !important;
    right:95px !important;
    top:22px !important;
    gap:12px !important;
    z-index:8;
}

/******** WEAPONS ********/

.ftweapon-row{
    position:absolute !important;
    left:50%;
    transform:translateX(-50%);
    bottom:18px !important;
    gap:16px !important;
    z-index:9;
}

/******** ICONS ********/

.ftslot{
    width:52px !important;
    height:52px !important;
    border-radius:7px !important;
}

.ftslot img,
.ftslot-icon{
    width:46px !important;
    height:46px !important;
}

.ftslot span{
    display:none !important;
}

/******** HOVER ********/

.fttip{
    z-index:1000 !important;
}

/******** MOBILE ********/

@media (max-width:700px){

    .ftmodel-frame{
        min-height:420px !important;
    }

    .ftmodel-img{
        max-height:330px !important;
    }

    .ftgear-left{
        left:10px !important;
        gap:6px !important;
    }

    .ftgear-right{
        right:10px !important;
        gap:6px !important;
    }

    .ftslot{
        width:38px !important;
        height:38px !important;
    }

    .ftslot img,
    .ftslot-icon{
        width:34px !important;
        height:34px !important;
    }

    .ftweapon-row{
        gap:8px !important;
    }

}


/* Armory Paperdoll Frame Polish */
.ftmodel-frame{
  border-radius:14px !important;
  box-shadow:
    inset 0 0 40px rgba(0,0,0,.55),
    inset 0 0 80px rgba(90,190,255,.12),
    0 0 22px rgba(70,180,255,.10) !important;
}

.ftmodel-frame::after{
  content:"";
  position:absolute;
  inset:10px;
  border:1px solid rgba(160,225,255,.14);
  border-radius:10px;
  pointer-events:none;
  z-index:2;
}

.ftslot{
  background:rgba(0,0,0,.58) !important;
  box-shadow:
    inset 0 0 12px rgba(255,255,255,.04),
    0 0 10px rgba(0,0,0,.55) !important;
}

.ftslot:hover{
  transform:scale(1.08);
  border-color:rgba(170,235,255,.95) !important;
  z-index:20;
}

.ftmodel-img{
  z-index:4 !important;
}

.ftmodel-body{
  z-index:4 !important;
}

/* Final ragdoll display */
.ftmodel-frame {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.ftmodel-img {
  position: relative !important;
  z-index: 4 !important;
  max-height: 500px !important;
  max-width: 62% !important;
  object-fit: contain !important;
  display: block;
  margin: 0 auto;
  filter: drop-shadow(0 0 26px rgba(80,205,255,.75));
}

.ftmodel-body {
  display: none !important;
}

/* Anchor ragdoll inside frame */
.ftmodel-frame {
  align-items: flex-end !important;
}

.ftmodel-img {
  max-height: 430px !important;
  max-width: 50% !important;
  margin-bottom: 68px !important;
  object-position: center bottom !important;
}

@media (max-width: 700px) {
  .ftmodel-img {
    max-height: 290px !important;
    max-width: 52% !important;
    margin-bottom: 54px !important;
  }
}

/* Lock ragdoll inside model frame */
.ftmodel-frame {
  position: relative !important;
  display: block !important;
  overflow: hidden !important;
}

.ftmodel-img {
  position: absolute !important;
  left: 50% !important;
  top: 52% !important;
  transform: translate(-50%, -50%) !important;
  max-height: 360px !important;
  max-width: 38% !important;
  margin: 0 !important;
  object-fit: contain !important;
  z-index: 4 !important;
}

@media (max-width: 700px) {
  .ftmodel-img {
    top: 52% !important;
    max-height: 250px !important;
    max-width: 42% !important;
  }
}

/* Ragdoll frame contrast */
.ftmodel-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(circle at center,
      rgba(0, 20, 40, .08) 0%,
      rgba(0, 5, 15, .36) 68%,
      rgba(0, 0, 0, .55) 100%);
  pointer-events: none;
}

.ftmodel-img,
.ftmodel-body,
.ftgear-left,
.ftgear-right,
.ftweapon-row {
  z-index: 5 !important;
}

/* Gear icons */
.ftgear-slot{
    width:52px !important;
    height:52px !important;
    padding:3px !important;
}

.ftgear-slot img{
    width:44px !important;
    height:44px !important;
}


.ftgear-slot{
    box-shadow:
        inset 0 0 10px rgba(255,255,255,.08),
        0 0 14px rgba(0,140,255,.22);
    transition:.15s;
}

.ftgear-slot:hover{
    transform:scale(1.08);
    box-shadow:
        0 0 18px rgba(0,180,255,.75);
}


@keyframes ftGlow{
    0%{filter:brightness(1);}
    50%{filter:brightness(1.08);}
    100%{filter:brightness(1);}
}

.ftmodel-frame{
    animation:ftGlow 5s ease-in-out infinite;
}


/* Armory gear polish */
.ftslot {
  width: 50px !important;
  height: 50px !important;
  box-shadow:
    inset 0 0 8px rgba(255,255,255,.08),
    0 0 12px rgba(0,140,255,.22);
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}

.ftslot img,
.ftslot-icon {
  width: 44px !important;
  height: 44px !important;
}

.ftslot:hover {
  transform: scale(1.08);
  border-color: rgba(120,220,255,.9) !important;
  box-shadow:
    inset 0 0 10px rgba(255,255,255,.12),
    0 0 18px rgba(0,180,255,.75);
}

.fttip {
  font-size: 13px;
  line-height: 1.35;
}

.fttip strong {
  font-size: 15px;
}


/* Tooltip GM command */
.fttip .gm-command {
  margin-top: 8px;
  padding-top: 6px;
  border-top: 1px solid rgba(120,210,255,.22);
  color: #7ee6ff;
  font-family: monospace;
}


/* Ragdoll gear tighten */
.ftgear-left {
  left: 58px !important;
  top: 28px !important;
}

.ftgear-right {
  right: 58px !important;
  top: 28px !important;
}

.ftgear-left,
.ftgear-right {
  gap: 7px !important;
}

.ftweapon-row {
  bottom: 34px !important;
  gap: 12px !important;
}

.ftmodel-img {
  max-height: 380px !important;
  max-width: 42% !important;
}

.ftmodel-frame {
  min-height: 540px !important;
}

@media (max-width: 700px) {
  .ftgear-left {
    left: 8px !important;
    top: 12px !important;
  }

  .ftgear-right {
    right: 8px !important;
    top: 12px !important;
  }

  .ftweapon-row {
    bottom: 10px !important;
  }

  .ftmodel-img {
    max-height: 250px !important;
    max-width: 44% !important;
  }
}

/* Clean ragdoll focus */
.ftmodel-label {
  display: none !important;
}

.ftmodel-frame {
  border-color: rgba(120, 210, 255, .38) !important;
  box-shadow:
    inset 0 0 40px rgba(0, 180, 255, .08),
    0 0 20px rgba(0, 150, 255, .12);
}

.ftmodel-frame::after {
  background:
    radial-gradient(circle at center,
      rgba(0, 20, 40, .02) 0%,
      rgba(0, 5, 15, .28) 65%,
      rgba(0, 0, 0, .52) 100%) !important;
}


/* Armory portrait polish */
.ftportrait {
  overflow: hidden !important;
  box-shadow:
    inset 0 0 18px rgba(255,255,255,.08),
    0 0 18px rgba(80,200,255,.24);
}

.ftportrait img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  background:
    radial-gradient(circle, rgba(120,220,255,.35), rgba(4,9,18,.98)) !important;
}

.ftportrait::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 8px;
  background: radial-gradient(circle at 50% 35%, transparent 35%, rgba(0,0,0,.34) 100%);
  pointer-events: none;
  z-index: 2;
}

.ftportrait span {
  z-index: 3 !important;
}

/* Admin Project Bible */
.bible-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.bible-panel {
  display: none;
}

.bible-panel.active {
  display: block;
}

.bible-text {
  white-space: pre-wrap;
  max-height: 620px;
  overflow: auto;
  padding: 14px;
  border-radius: 10px;
  background: rgba(0,0,0,.32);
  border: 1px solid rgba(120,210,255,.18);
  color: #cfefff;
}

.bible-progress {
  height: 12px;
  background: rgba(0,0,0,.35);
  border: 1px solid rgba(120,210,255,.2);
  border-radius: 999px;
  overflow: hidden;
  margin: 10px 0 4px;
}

.bible-progress span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, rgba(60,170,255,.65), rgba(170,90,255,.85));
  box-shadow: 0 0 18px rgba(100,200,255,.45);
}

.bible-checklist li {
  padding: 7px 0;
  border-bottom: 1px solid rgba(120,210,255,.1);
}

/* Live Armory 3D Ragdoll */
.ftmodel-viewer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 4;
}

.ftmodel-viewer canvas {
  width: 100% !important;
  height: 100% !important;
}

.ftmodel-status {
  position: absolute;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%);
  z-index: 5;
  color: #9eeaff;
  font-weight: 700;
  text-shadow: 0 0 10px #00bfff;
  pointer-events: none;
}

.ftmodel-img {
  display: none !important;
}

.ftmodel-viewer {
  opacity: 0;
  transition: opacity .55s ease;
}

.ftmodel-viewer.loaded {
  opacity: 1;
}

.ftmodel-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at center, rgba(0,190,255,.12), transparent 55%);
  z-index: 3;
}

.ftmodel-status {
  background: rgba(0, 12, 24, .72);
  border: 1px solid rgba(110,220,255,.35);
  padding: 8px 14px;
  border-radius: 999px;
}

/* FrozenThrone live ragdoll polish */
.ftmodel-frame {
  position: relative;
  overflow: hidden;
  box-shadow:
    inset 0 0 35px rgba(0, 200, 255, .22),
    0 0 22px rgba(0, 180, 255, .16);
}

.ftmodel-viewer {
  cursor: grab;
}

.ftmodel-viewer:active {
  cursor: grabbing;
}

.ftmodel-ice-vignette {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background:
    radial-gradient(circle at center, rgba(0,180,255,0) 35%, rgba(0,20,45,.28) 80%),
    linear-gradient(180deg, rgba(70,210,255,.10), rgba(0,0,0,0) 28%, rgba(0,0,0,.25));
}

.ftmodel-reset {
  position: absolute;
  right: 14px;
  bottom: 14px;
  z-index: 8;
  padding: 7px 11px;
  border-radius: 9px;
  border: 1px solid rgba(120,220,255,.35);
  background: rgba(2,18,36,.72);
  color: #bff3ff;
  font-weight: 800;
  font-size: 12px;
  box-shadow: 0 0 14px rgba(0,180,255,.22);
}

.ftmodel-reset:hover {
  background: rgba(0,130,210,.65);
}

.ftmodel-status {
  background: rgba(2,18,36,.72);
  padding: 7px 12px;
  border-radius: 999px;
}

/* Armory portrait fallback badge */
.ftportrait-badge {
  display: grid;
  place-items: center;
  text-align: center;
  background:
    radial-gradient(circle at 50% 35%, rgba(80, 220, 255, .25), transparent 55%),
    linear-gradient(145deg, rgba(4, 18, 38, .95), rgba(0, 65, 110, .52));
  border: 1px solid rgba(120, 220, 255, .38);
  box-shadow:
    inset 0 0 22px rgba(80, 220, 255, .16),
    0 0 18px rgba(0, 180, 255, .18);
}

.ftportrait-race {
  font-size: 28px;
  font-weight: 900;
  letter-spacing: 1px;
  color: #d9f8ff;
  text-shadow: 0 0 12px rgba(0, 210, 255, .75);
  line-height: 1;
}

.ftportrait-class {
  font-size: 10px;
  font-weight: 800;
  color: #9edfff;
  text-transform: uppercase;
  margin-top: -8px;
}

/* Armory portrait image polish */
.ftportrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  background:
    radial-gradient(circle at 50% 35%, rgba(80, 220, 255, .22), transparent 55%),
    linear-gradient(145deg, rgba(4, 18, 38, .95), rgba(0, 65, 110, .52));
}

.ftportrait {
  overflow: hidden;
  box-shadow:
    inset 0 0 18px rgba(80, 220, 255, .18),
    0 0 16px rgba(0, 180, 255, .18);
}

/* Clean Armory portrait orb */
.ftportrait-classic {
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 45% 35%, rgba(190, 245, 255, .30), transparent 25%),
    radial-gradient(circle at center, rgba(0, 160, 255, .28), rgba(0, 10, 30, .96) 72%);
}

.ftportrait-orb {
  font-size: 42px;
  color: #d9f8ff;
  text-shadow:
    0 0 10px rgba(0,220,255,.9),
    0 0 22px rgba(0,120,255,.65);
  line-height: 1;
}

/* Live mini character portrait */
.ftportrait-live {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 35%, rgba(90, 220, 255, .22), transparent 55%),
    linear-gradient(145deg, rgba(2, 14, 34, .98), rgba(0, 60, 105, .48));
}

.ftportrait-viewer {
  position: absolute;
  inset: -26px -22px -8px -22px;
  z-index: 1;
}

.ftportrait-viewer canvas {
  width: 100% !important;
  height: 100% !important;
}

.ftportrait-live span {
  z-index: 5;
}

.ftportrait-iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  z-index: 1;
  pointer-events: none;
}

.ftportrait-live {
  position: relative;
  overflow: hidden;
}

/* Final class portrait */
.ftportrait {
  position: relative;
  overflow: hidden;
  background: radial-gradient(circle at 50% 35%, rgba(90,220,255,.22), transparent 55%), #061426;
}

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

/* Frontend v1 player sheet ragdoll sizing override */
.ftarmory4 {
  max-width: 1180px;
  margin: 0 auto;
}

.ftmodel-frame {
  min-height: 520px !important;
  height: 520px !important;
  max-height: 520px !important;
}

.ftmodel-viewer {
  inset: 0 !important;
}

@media (max-width: 900px) {
  .ftmodel-frame {
    min-height: 430px !important;
    height: 430px !important;
    max-height: 430px !important;
  }
}

/* Player Profile V2 layout start */
.ftprofile-core {
  display: grid !important;
  grid-template-columns: 38% 1fr !important;
  gap: 18px !important;
  align-items: stretch !important;
}

.ftmodel-zone {
  min-width: 0 !important;
}

.ftmodel-frame {
  height: 560px !important;
  min-height: 560px !important;
  max-height: 700px !important;
}

.ftside-panel {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 14px !important;
  align-content: start !important;
}

.ftmini-section {
  min-height: 118px !important;
}

.ftmini-section:last-child {
  grid-column: 1 / -1 !important;
}

.ftprofile-tabs {
  margin-top: 18px !important;
}

@media (max-width: 1000px) {
  .ftprofile-core {
    grid-template-columns: 1fr !important;
  }

  .ftmodel-frame {
    height: 520px !important;
    min-height: 520px !important;
    max-height: 520px !important;
  }

  .ftside-panel {
    grid-template-columns: 1fr !important;
  }
}

/* Fix ragdoll lower clipping inside player profile box */
.ftmodel-frame {
  overflow: visible !important;
}

.ftmodel-viewer {
  position: absolute !important;
  inset: -40px 0 -120px 0 !important;
  height: auto !important;
}

.ftmodel-viewer canvas {
  width: 100% !important;
  height: 100% !important;
}

/* Clean character sheet bottom until full tabs are rebuilt */
.ftprofile-bottom-clean {
  display: block !important;
  margin-top: 18px !important;
}

.ftprofile-bottom-clean .inventory-panel {
  width: 100% !important;
}

.ftprofile-bottom-clean .data-table th,
.ftprofile-bottom-clean .data-table td {
  padding: 10px 12px !important;
}

/* Character Profile V2 - compact square database style */
.ftcharv2-page {
  max-width: 1320px;
}

.ftcharv2 {
  border: 1px solid rgba(110,180,220,.35);
  background: rgba(3,10,22,.94);
  color: #d8edf7;
  border-radius: 0;
  padding: 10px;
}

.ftcharv2-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid rgba(110,180,220,.25);
  background: rgba(8,24,44,.92);
  padding: 8px 10px;
  margin-bottom: 10px;
}

.ftcharv2-title h1 {
  margin: 0;
  font-size: 24px;
  line-height: 1.1;
}

.ftcharv2-title p {
  margin: 4px 0 0;
  font-size: 12px;
  color: #9ebed0;
}

.ftcharv2-status {
  border: 1px solid rgba(110,180,220,.35);
  padding: 5px 10px;
  font-size: 12px;
  text-transform: uppercase;
}

.ftcharv2-status.on { color: #71ffb0; }
.ftcharv2-status.off { color: #ff8a8a; }

.ftcharv2-main {
  display: grid;
  grid-template-columns: 230px minmax(360px, 1fr) 300px;
  gap: 10px;
}

.ftcharv2-gear,
.ftcharv2-model,
.ftcharv2-info,
.ftcharv2-panel {
  border: 1px solid rgba(110,180,220,.25);
  background: rgba(5,15,30,.92);
  border-radius: 0;
}

.ftcharv2-gear {
  padding: 8px;
  display: grid;
  gap: 5px;
  align-content: start;
}

.ftcharv2-gear h3,
.ftcharv2-info h3,
.ftcharv2-panel h3 {
  margin: 0 0 8px;
  font-size: 13px;
  color: #bcecff;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.ftcharv2-gear .ftslot {
  width: 100%;
  height: 34px;
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: 8px;
  border-radius: 0;
  padding: 4px;
}

.ftcharv2-gear .ftslot img,
.ftcharv2-gear .ftslot-icon {
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
}

.ftcharv2-gear .ftslot span {
  font-size: 11px;
}

.ftcharv2-model {
  position: relative;
  min-height: 590px;
  overflow: hidden;
}

.ftcharv2-model .ftmodel-viewer {
  position: absolute !important;
  inset: -30px 0 -95px 0 !important;
  width: 100%;
  height: auto !important;
}

.ftcharv2-info {
  padding: 8px;
}

.ftcharv2-info div,
.ftcharv2-statgrid div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid rgba(110,180,220,.12);
  padding: 7px 2px;
  font-size: 12px;
}

.ftcharv2-info span,
.ftcharv2-statgrid span {
  color: #8fb0c4;
}

.ftcharv2-info strong,
.ftcharv2-statgrid strong {
  color: #e8f7ff;
}

.ftcharv2-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin-top: 10px;
  border: 1px solid rgba(110,180,220,.25);
  background: rgba(8,24,44,.92);
}

.ftcharv2-tabs button {
  border: 0;
  border-right: 1px solid rgba(110,180,220,.2);
  background: transparent;
  color: #9ebed0;
  padding: 8px 12px;
  font-size: 12px;
  cursor: pointer;
}

.ftcharv2-tabs button.active,
.ftcharv2-tabs button:hover {
  background: rgba(50,130,190,.28);
  color: #fff;
}

.ftcharv2-panel {
  display: none;
  padding: 10px;
  margin-top: 10px;
}

.ftcharv2-panel.active {
  display: block;
}

.ftcharv2-statgrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0 14px;
}

@media (max-width: 1000px) {
  .ftcharv2-main {
    grid-template-columns: 1fr;
  }
}

/* Character V2 quick fixes */
.ftcharv2-model .ftmodel-viewer {
  opacity: 1 !important;
  z-index: 2 !important;
}

.ftcharv2-model .ftmodel-status {
  z-index: 3 !important;
}

.ftcharv2-gear {
  width: auto !important;
}

.ftcharv2-gear .ftslot {
  position: relative !important;
  width: 100% !important;
  height: 36px !important;
  min-height: 36px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
}

.ftcharv2-gear .ftslot span {
  display: block !important;
  position: static !important;
  opacity: 1 !important;
  visibility: visible !important;
  color: #bcd8e8 !important;
  font-size: 11px !important;
  line-height: 1.1 !important;
  text-align: left !important;
}

.ftcharv2-gear .ftslot-icon,
.ftcharv2-gear .ftslot img {
  width: 28px !important;
  height: 28px !important;
}

/* Viewer Engine V2 - reduce stretch/blur */
.ftcharv2-model {
  min-height: 620px !important;
  background: radial-gradient(circle at center, rgba(40,120,180,.18), rgba(2,10,22,.96) 65%) !important;
  overflow: hidden !important;
}

.ftcharv2-model .ftmodel-viewer {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  transform: none !important;
}

.ftcharv2-model .ftmodel-viewer canvas {
  width: 100% !important;
  height: 100% !important;
  image-rendering: auto !important;
  transform: none !important;
}

.ftcharv2-model canvas {
  max-width: 100% !important;
  max-height: 100% !important;
}

/* Viewer Engine V2 - force non-stretched square viewport */
.ftcharv2-model {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 620px !important;
}

.ftcharv2-model .ftmodel-viewer {
  position: relative !important;
  width: min(100%, 620px) !important;
  height: 620px !important;
  inset: auto !important;
  margin: 0 auto !important;
}

.ftcharv2-model .ftmodel-viewer canvas {
  width: 620px !important;
  height: 620px !important;
  max-width: 100% !important;
  max-height: 100% !important;
}

/* FrozenThrone Environment Engine */
.ftcharv2-model {
  background-image:
    linear-gradient(rgba(0, 0, 0, .25), rgba(0, 0, 0, .35)),
    var(--ft-char-bg) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

/* Armory V3 Preview */
.v3-item {
  position: relative;
  margin: 7px 0;
  padding: 8px 10px;
  border: 1px solid rgba(140, 210, 255, .18);
  border-radius: 8px;
  background: linear-gradient(90deg, rgba(5,20,35,.95), rgba(3,10,18,.65));
  box-shadow: inset 0 0 14px rgba(0,170,255,.06);
}

.v3-item strong {
  display: block;
  font-size: 15px;
  text-shadow: 0 0 8px currentColor;
}

.v3-item small {
  display: block;
  opacity: .86;
  margin-top: 3px;
}

.v3-item.q0 strong { color: #9d9d9d; }
.v3-item.q1 strong { color: #ffffff; }
.v3-item.q2 strong { color: #1eff00; }
.v3-item.q3 strong { color: #0070dd; }
.v3-item.q4 strong { color: #a335ee; }
.v3-item.q5 strong { color: #ff8000; }
.v3-item.q6 strong,
.v3-item.q7 strong { color: #e6cc80; }

.v3-item.q2 { border-color: rgba(30,255,0,.35); }
.v3-item.q3 { border-color: rgba(0,112,221,.45); }
.v3-item.q4 { border-color: rgba(163,53,238,.55); }
.v3-item.q5 { border-color: rgba(255,128,0,.65); }

.v3-item-stats {
  list-style: none;
  padding: 0;
  margin: 7px 0 0;
  font-size: 13px;
  color: #c9f2ff;
}

.v3-item-stats li {
  margin: 2px 0;
}

.v3-socket {
  padding-left: 18px;
  position: relative;
}

.v3-socket::before {
  content: "";
  position: absolute;
  left: 0;
  top: 3px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  box-shadow: 0 0 8px currentColor;
}

.socket-red { color: #ff4040; }
.socket-yellow { color: #ffd84a; }
.socket-blue { color: #4aa3ff; }
.socket-meta { color: #d56bff; }
.socket-prismatic { color: #ffffff; }

.v3-socket-bonus {
  color: #9dff9d;
}

.v3-socket em {
  opacity: .75;
  font-style: normal;
}

.v3-socket::before {
  border: 1px solid rgba(255,255,255,.35);
}

.socket-red::before {
  background: radial-gradient(circle, #ff8a8a, #b00000 70%);
}

.socket-blue::before {
  background: radial-gradient(circle, #8ad6ff, #005eb8 70%);
}

.socket-yellow::before {
  background: radial-gradient(circle, #fff08a, #c99500 70%);
}

.socket-meta::before {
  background: radial-gradient(circle, #e8a2ff, #4b0066 70%);
}

.socket-prismatic::before {
  background: radial-gradient(circle, #ffffff, #b7f7ff 70%);
}

.v3-item {
  min-height: 62px;
  padding-left: 64px;
}

.v3-item-icon {
  position: absolute;
  left: 10px;
  top: 10px;
  width: 42px;
  height: 42px;
  border-radius: 6px;
  border: 1px solid rgba(180,220,255,.35);
  box-shadow: 0 0 12px rgba(0,180,255,.25);
  background: #000;
}

.v3-total-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
}

.v3-total-grid div {
  border: 1px solid rgba(130, 210, 255, .18);
  border-radius: 8px;
  padding: 10px 12px;
  background: rgba(0, 20, 35, .55);
}

.v3-total-grid span {
  display: block;
  color: #9fc7dd;
  font-size: 13px;
}

.v3-total-grid strong {
  display: block;
  font-size: 22px;
  color: #e8f8ff;
}

.v3-paper-card {
  overflow: hidden;
}

.v3-paper-layout {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(240px, 1.35fr) minmax(180px, 1fr);
  gap: 18px;
  align-items: center;
}

.v3-paper-left,
.v3-paper-right {
  display: grid;
  gap: 8px;
}

.v3-paper-slot {
  position: relative;
  min-height: 58px;
  padding: 8px 10px 8px 58px;
  border: 1px solid rgba(120, 200, 255, .2);
  border-radius: 9px;
  background: rgba(0, 14, 24, .72);
}

.v3-paper-slot img,
.v3-paper-empty {
  position: absolute;
  left: 9px;
  top: 9px;
  width: 40px;
  height: 40px;
  border-radius: 7px;
  background: #02070c;
  display: grid;
  place-items: center;
  color: #86a9bf;
}

.v3-paper-slot span {
  display: block;
  font-weight: 800;
  color: #eaf8ff;
  font-size: 13px;
}

.v3-paper-slot small {
  display: block;
  color: #83abc2;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.v3-paper-slot.q2 { border-color: rgba(30,255,0,.45); }
.v3-paper-slot.q3 { border-color: rgba(0,112,221,.55); }
.v3-paper-slot.q4 { border-color: rgba(163,53,238,.7); }
.v3-paper-slot.q5 { border-color: rgba(255,128,0,.8); }

.v3-paper-model {
  min-height: 520px;
  border: 1px solid rgba(120, 210, 255, .22);
  border-radius: 16px;
  background:
    radial-gradient(circle at center, rgba(0, 165, 255, .2), transparent 45%),
    linear-gradient(180deg, rgba(2,20,36,.9), rgba(0,8,16,.92));
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
}

.v3-model-placeholder {
  z-index: 2;
  text-align: center;
  color: #9bdcff;
  font-size: 30px;
  font-weight: 900;
  letter-spacing: .15em;
  text-shadow: 0 0 20px rgba(0,180,255,.75);
}

.v3-model-glow {
  position: absolute;
  inset: 15%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(78,190,255,.22), transparent 65%);
  filter: blur(12px);
}

@media (max-width: 900px) {
  .v3-paper-layout {
    grid-template-columns: 1fr;
  }

  .v3-paper-model {
    min-height: 260px;
  }
}

.v3-detail-list {
  margin-top: 18px;
}

.v3-detail-list summary {
  cursor: pointer;
  padding: 12px 16px;
  border: 1px solid rgba(120, 210, 255, .25);
  border-radius: 10px;
  color: #9ee6ff;
  font-weight: 900;
  background: rgba(0, 25, 45, .7);
}

/* V3 paper doll polish */
.v3-paper-card {
  padding: 20px;
}

.v3-paper-card h2 {
  margin-bottom: 18px;
}

.v3-paper-layout {
  grid-template-columns: 220px minmax(260px, 1fr) 220px;
}

.v3-paper-left,
.v3-paper-right {
  align-self: stretch;
}

.v3-paper-slot {
  min-height: 52px;
  padding: 7px 9px 7px 56px;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.v3-paper-slot:hover {
  transform: translateY(-1px);
  box-shadow: 0 0 18px rgba(70, 180, 255, .18);
}

.v3-paper-slot img,
.v3-paper-empty {
  width: 38px;
  height: 38px;
}

.v3-paper-slot.empty {
  opacity: .48;
}

.v3-paper-slot.empty span {
  color: #7293a8;
}

.v3-paper-model {
  min-height: 610px;
}

.v3-model-placeholder {
  font-size: 34px;
  line-height: 1.45;
}

@media (max-width: 900px) {
  .v3-paper-card {
    padding: 14px;
  }

  .v3-paper-layout {
    grid-template-columns: 1fr;
  }

  .v3-paper-left,
  .v3-paper-right {
    grid-template-columns: 1fr 1fr;
  }

  .v3-paper-model {
    min-height: 320px;
    order: -1;
  }
}

/* ---- V3 Paper Doll Layout Upgrade ---- */

.v3-paper-layout{
    display:grid;
    grid-template-columns:190px 1fr 190px;
    gap:18px;
    align-items:start;
}

.v3-paper-model{
    min-height:700px;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:32px;
}

.v3-paper-left,
.v3-paper-right{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.v3-paper-slot{
    min-height:58px;
}

@media(max-width:1000px){

.v3-paper-layout{
    grid-template-columns:1fr;
}

.v3-paper-model{
    order:-1;
    min-height:340px;
}

}

/* Icon-only paper doll */
.v3-paper-slot-icon {
  width: 52px;
  height: 52px;
  border: 2px solid rgba(120, 200, 255, .22);
  border-radius: 10px;
  background: rgba(0, 10, 20, .85);
  position: relative;
  display: grid;
  place-items: center;
  box-shadow: inset 0 0 12px rgba(0,0,0,.65);
}

.v3-paper-slot-icon img,
.v3-paper-slot-icon .v3-paper-empty {
  width: 46px;
  height: 46px;
  border-radius: 8px;
}

.v3-paper-slot-icon small {
  position: absolute;
  left: 50%;
  top: 56px;
  transform: translateX(-50%);
  font-size: 9px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #8fb8ce;
  white-space: nowrap;
}

.v3-paper-slot-icon.q2 { border-color: rgba(30,255,0,.65); }
.v3-paper-slot-icon.q3 { border-color: rgba(0,112,221,.75); }
.v3-paper-slot-icon.q4 { border-color: rgba(163,53,238,.9); box-shadow: 0 0 14px rgba(163,53,238,.35); }
.v3-paper-slot-icon.q5 { border-color: rgba(255,128,0,.95); box-shadow: 0 0 14px rgba(255,128,0,.35); }

.v3-paper-slot-icon.empty {
  opacity: .35;
}

.v3-paper-left,
.v3-paper-right {
  align-items: center;
  gap: 24px;
}

.v3-paper-layout {
  grid-template-columns: 90px minmax(260px, 1fr) 90px;
  align-items: center;
}

@media(max-width: 900px) {
  .v3-paper-left,
  .v3-paper-right {
    display: grid;
    grid-template-columns: repeat(4, 52px);
    justify-content: center;
  }

  .v3-paper-layout {
    grid-template-columns: 1fr;
  }
}

/* Compact paper doll override */
.v3-paper-layout {
  grid-template-columns: 46px minmax(170px, 1fr) 46px !important;
  gap: 8px !important;
}

.v3-paper-model {
  min-height: 360px !important;
  max-height: 420px;
}

.v3-paper-left,
.v3-paper-right {
  gap: 7px !important;
}

.v3-paper-slot-icon {
  width: 38px !important;
  height: 38px !important;
  border-radius: 7px !important;
}

.v3-paper-slot-icon img,
.v3-paper-slot-icon .v3-paper-empty {
  width: 32px !important;
  height: 32px !important;
  border-radius: 6px !important;
}

.v3-paper-slot-icon small {
  display: none !important;
}

.v3-model-placeholder {
  font-size: 22px !important;
}

@media(max-width: 900px) {
  .v3-paper-left,
  .v3-paper-right {
    grid-template-columns: repeat(6, 38px) !important;
    gap: 8px !important;
  }

  .v3-paper-model {
    min-height: 260px !important;
  }
}

/* Paper doll portrait frame: icons inside model box */
.v3-paper-layout {
  display: block !important;
}

.v3-paper-model {
  position: relative !important;
  width: min(100%, 520px) !important;
  min-height: 680px !important;
  margin: 0 auto !important;
  border-radius: 18px !important;
  background:
    radial-gradient(circle at center 48%, rgba(0,170,255,.30), transparent 38%),
    linear-gradient(180deg, rgba(2,24,42,.92), rgba(0,8,18,.96)) !important;
}

.v3-paper-left,
.v3-paper-right {
  position: absolute !important;
  top: 38px !important;
  z-index: 4 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}

.v3-paper-left {
  left: 18px !important;
}

.v3-paper-right {
  right: 18px !important;
}

.v3-paper-slot-icon {
  width: 44px !important;
  height: 44px !important;
}

.v3-paper-slot-icon img,
.v3-paper-slot-icon .v3-paper-empty {
  width: 38px !important;
  height: 38px !important;
}

.v3-model-placeholder {
  position: absolute !important;
  inset: 90px 85px 80px 85px !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid rgba(130, 210, 255, .20);
  border-radius: 16px;
  font-size: 26px !important;
}

.v3-detail-list {
  margin-top: 14px !important;
}

@media(max-width: 900px) {
  .v3-paper-model {
    min-height: 560px !important;
  }

  .v3-paper-left {
    left: 10px !important;
  }

  .v3-paper-right {
    right: 10px !important;
  }

  .v3-model-placeholder {
    inset: 80px 65px 70px 65px !important;
    font-size: 20px !important;
  }
}

/* Paper doll inside-frame correction */
.v3-paper-layout {
  display: block !important;
}

.v3-paper-model {
  position: relative !important;
  width: min(100%, 430px) !important;
  min-height: 620px !important;
  margin: 0 auto !important;
  overflow: hidden !important;
}

.v3-paper-left,
.v3-paper-right {
  position: absolute !important;
  top: 22px !important;
  bottom: 22px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  gap: 0 !important;
  z-index: 5 !important;
}

.v3-paper-left { left: 12px !important; }
.v3-paper-right { right: 12px !important; }

.v3-model-placeholder {
  position: absolute !important;
  inset: 26px 74px 26px 74px !important;
  z-index: 2 !important;
}

.v3-model-glow {
  z-index: 1 !important;
}

.v3-paper-slot-icon {
  width: 42px !important;
  height: 42px !important;
}

.v3-paper-slot-icon img,
.v3-paper-slot-icon .v3-paper-empty {
  width: 36px !important;
  height: 36px !important;
}

.v3-paper-slot-icon small {
  display: none !important;
}

/* Paper doll icon hover tooltip */
.v3-paper-slot-icon::after {
  content: attr(title);
  position: absolute;
  left: 52px;
  top: 50%;
  transform: translateY(-50%);
  min-width: 210px;
  max-width: 280px;
  padding: 8px 10px;
  border: 1px solid rgba(130,210,255,.35);
  border-radius: 8px;
  background: rgba(0, 8, 18, .96);
  color: #eaf8ff;
  font-size: 12px;
  line-height: 1.35;
  box-shadow: 0 0 22px rgba(0,180,255,.25);
  opacity: 0;
  pointer-events: none;
  z-index: 50;
  white-space: normal;
}

.v3-paper-right .v3-paper-slot-icon::after {
  left: auto;
  right: 52px;
}

.v3-paper-slot-icon:hover::after,
.v3-paper-slot-icon:focus::after {
  opacity: 1;
}

.v3-paper-slot-icon:hover {
  transform: scale(1.08);
  z-index: 60;
}

/* Full item tooltip from paper doll icons */
.v3-paper-card,
.v3-paper-model {
  overflow: visible !important;
}

.v3-paper-slot-icon::after {
  display: none !important;
}

.v3-paper-tooltip {
  display: none;
  position: absolute;
  top: -8px;
  left: 54px;
  width: 330px;
  z-index: 999;
}

.v3-paper-right .v3-paper-tooltip {
  left: auto;
  right: 54px;
}

.v3-paper-slot-icon:hover .v3-paper-tooltip,
.v3-paper-slot-icon:focus .v3-paper-tooltip {
  display: block;
}

.v3-paper-tooltip .v3-item {
  width: 100%;
  min-height: unset;
  padding-left: 64px;
  box-shadow: 0 0 28px rgba(0, 180, 255, .35);
}

.v3-character-model {
  position: absolute;
  z-index: 3;
  left: 72px;
  right: 72px;
  top: 34px;
  bottom: 34px;
  width: calc(100% - 144px);
  height: calc(100% - 68px);
  object-fit: contain;
  filter: drop-shadow(0 0 22px rgba(70, 190, 255, .55));
  pointer-events: none;
}

.v3-stat-groups {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 14px;
}

.v3-stat-group {
  border: 1px solid rgba(120, 210, 255, .18);
  border-radius: 12px;
  padding: 14px;
  background: rgba(0, 15, 28, .68);
}

.v3-stat-group h3 {
  color: #9ee6ff;
  margin: 0 0 10px;
}

.v3-stat-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 6px 0;
  border-bottom: 1px solid rgba(120, 210, 255, .08);
}

.v3-stat-row span {
  color: #adc8d8;
}

.v3-stat-row strong {
  color: #fff;
}

.v3-set-card {
  border: 1px solid rgba(120, 210, 255, .18);
  border-radius: 12px;
  padding: 14px;
  background: rgba(0, 15, 28, .68);
}

.v3-set-card h3 {
  color: #9ee6ff;
  margin: 0 0 6px;
}

.v3-set-list {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
}

.v3-set-list li {
  padding: 7px 0;
  border-bottom: 1px solid rgba(120, 210, 255, .08);
}

.v3-set-list li.active {
  color: #7dff9e;
}

.v3-set-list small {
  color: #8faec0;
  margin-left: 6px;
}

.v3-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
}

.v3-summary-grid div {
  border: 1px solid rgba(120, 210, 255, .18);
  border-radius: 12px;
  background: rgba(0, 15, 28, .68);
  padding: 12px;
}

.v3-summary-grid span {
  display: block;
  color: #8fb3c8;
  font-size: .85rem;
}

.v3-summary-grid strong {
  display: block;
  color: #fff;
  font-size: 1.35rem;
  margin-top: 4px;
}

/* Armory V3 Compact Wowhead-style skin */
.card,
.v3-paper-card,
.v3-summary-card,
.v3-stats-panel,
.v3-set-engine {
  border-radius: 4px !important;
  padding: 14px !important;
}

.v3-summary-grid,
.v3-stat-groups {
  gap: 6px !important;
}

.v3-summary-grid div,
.v3-stat-group,
.v3-set-card {
  border-radius: 3px !important;
  padding: 8px 10px !important;
}

.v3-summary-grid strong {
  font-size: 1rem !important;
}

.v3-summary-grid span,
.v3-stat-row span,
.v3-set-card .muted {
  font-size: .78rem !important;
}

.v3-stat-row {
  padding: 4px 0 !important;
}

.v3-paper-layout {
  border-radius: 3px !important;
  padding: 10px !important;
}

.v3-paper-model {
  border-radius: 3px !important;
}

.v3-paper-slot-icon {
  width: 34px !important;
  height: 34px !important;
  border-radius: 3px !important;
}

.v3-paper-slot-icon img {
  width: 30px !important;
  height: 30px !important;
  border-radius: 2px !important;
}

.v3-item,
.item-card {
  border-radius: 3px !important;
  padding: 8px 10px !important;
}

.v3-item strong,
.item-card strong {
  font-size: .92rem !important;
}

.v3-item small,
.item-card small {
  font-size: .74rem !important;
}

.v3-item-icon,
.item-icon {
  width: 34px !important;
  height: 34px !important;
  border-radius: 3px !important;
}

h1 {
  font-size: 2rem !important;
}

h2 {
  font-size: 1.45rem !important;
}

h3 {
  font-size: 1rem !important;
}


.v3-tabs {
  display: flex;
  gap: 2px;
  overflow-x: auto;
  margin: 10px 0;
  border-bottom: 1px solid rgba(120,210,255,.25);
}

.v3-tabs button {
  background: rgba(0, 15, 28, .9);
  border: 1px solid rgba(120,210,255,.22);
  border-bottom: 0;
  color: #b7d8e8;
  padding: 8px 12px;
  border-radius: 3px 3px 0 0;
  cursor: pointer;
  white-space: nowrap;
  font-weight: 700;
}

.v3-tabs button.active {
  background: rgba(0, 75, 120, .75);
  color: #fff;
}

.v3-tab-panel {
  display: none;
}

.v3-tab-panel.active {
  display: block;
}

.compact-stat-card p {
  margin: 6px 0;
}

.v3-basic-stats-grid {
  margin-top: 8px;
}

/* Armory V3 Image Engine */
.v3-character-hero {
  position: relative;
  overflow: hidden;
  min-height: 210px;
  background-image:
    linear-gradient(90deg, rgba(0,8,18,.92), rgba(0,20,38,.55), rgba(0,8,18,.92)),
    var(--v3-hero-bg) !important;
  background-size: cover !important;
  background-position: center !important;
  border-radius: 3px !important;
}

.v3-character-hero h1 {
  text-shadow: 0 0 18px rgba(0,0,0,.95), 0 0 24px rgba(80,190,255,.6);
}

.v3-paper-model {
  background-image:
    radial-gradient(circle at center, rgba(0,170,255,.22), transparent 42%),
    linear-gradient(180deg, rgba(0,8,18,.35), rgba(0,8,18,.88)),
    var(--v3-paper-bg) !important;
  background-size: cover !important;
  background-position: center !important;
}

/* Armory V3 Image Engine - paper doll artwork */
.v3-paper-model {
  position: relative;
  overflow: hidden;
  background-image:
    radial-gradient(circle at center, rgba(0, 180, 255, .28), transparent 42%),
    linear-gradient(180deg, rgba(0, 8, 18, .35), rgba(0, 8, 18, .92)),
    url("/images/armory/backgrounds/classes/paladin.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}

.v3-paper-model > * {
  position: relative;
  z-index: 2;
}

.v3-model-glow {
  z-index: 1;
}

/* Armory V3 Image Engine - keep model centered over artwork */
.v3-paper-layout {
  position: relative;
}

.v3-character-model {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -45%) !important;
  z-index: 2 !important;
  max-height: 58% !important;
  pointer-events: none;
}

.v3-paper-left,
.v3-paper-right {
  z-index: 4 !important;
}

.v3-paper-model {
  isolation: isolate;
}

/* Armory V3 Image Engine - hero header artwork */
.card.highlight {
  position: relative;
  overflow: hidden;
  min-height: 130px;
  background-image:
    linear-gradient(90deg, rgba(0, 8, 18, .96), rgba(0, 30, 55, .55), rgba(0, 8, 18, .94)),
    url("/images/armory/backgrounds/classes/paladin.jpg") !important;
  background-size: cover !important;
  background-position: center 38% !important;
}

.card.highlight h1,
.card.highlight p {
  position: relative;
  z-index: 2;
  text-shadow: 0 0 14px rgba(0,0,0,.95), 0 0 18px rgba(80,190,255,.45);
}

/* Armory V3 - attach content tight to tabs */
.v3-tabs {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
  border-bottom: 1px solid rgba(95, 190, 255, .28);
}

.v3-tabs + *,
.v3-tabs ~ .card,
.v3-tabs ~ section,
.v3-tabs ~ .tab-content,
.v3-tabs ~ .v3-tab-content,
.v3-tabs ~ .v3-panel,
.v3-tabs ~ .v3-overview {
  margin-top: 10px !important;
  padding-top: 0 !important;
}

main.container > .card:first-of-type,
main.container > section:first-of-type {
  margin-top: 10px !important;
}

.card.highlight + .v3-tabs {
  margin-top: 0 !important;
}

/* Armory V3 - final tab/content tightener */
.v3-tabs{
  margin-bottom:0!important;
  padding-bottom:0!important;
}

.v3-tabs + *{
  margin-top:0!important;
}

.v3-content,
.v3-overview,
.v3-main{
  margin-top:0!important;
  padding-top:8px!important;
}

/* Armory V3 - remove gap below tabs */
.v3-tabs{
    margin-bottom:0!important;
    padding-bottom:0!important;
}

.v3-tabs + *{
    margin-top:0!important;
    padding-top:0!important;
}

.v3-tabs + section,
.v3-tabs + div{
    margin-top:0!important;
    padding-top:0!important;
    transform:translateY(-14px);
}


/* Armory V3 - live model test layer */
.v3-live-character{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-48%);
  width:72%;
  height:82%;
  z-index:3;
  border:1px dashed rgba(125,215,255,.35);
  background:rgba(0,20,40,.18);
}

.v3-live-loading{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  color:#9fe8ff;
  font-weight:800;
  text-shadow:0 0 12px #35a8ff;
  white-space:nowrap;
}

.v3-character-fallback{
  opacity:.18!important;
  z-index:2!important;
}

/* Armory V3 live model tuning */
#v3-live-character {
  overflow: hidden !important;
}

#v3-live-character #model_3d {
  width: 100% !important;
  height: 100% !important;
  transform: none !important;
  transform-origin: center center;
}

#v3-live-character canvas {
  width: 100% !important;
  height: 100% !important;
}

/* Hide old paper-doll guide once live model loads */
#v3-live-character.loaded::before,
#v3-live-character.loaded::after {
  opacity: 0 !important;
  display: none !important;
}

#v3-live-character.loaded .v3-live-loading {
  display: none !important;
}

#v3-live-character #model_3d {
  transform: none !important;
}

/* Hide old paper-doll guide once live model loads */
#v3-live-character.loaded::before,
#v3-live-character.loaded::after {
  opacity: 0 !important;
  display: none !important;
}

#v3-live-character.loaded .v3-live-loading {
  display: none !important;
}

#v3-live-character #model_3d {
  transform: none !important;
}

/* Character Database V3 public route polish */
.v3-live-character {
  border: 0 !important;
  background: transparent !important;
}

.v3-live-character.loaded ~ .v3-character-fallback {
  display: none !important;
}

.v3-paper-model {
  border: 1px solid rgba(105, 200, 255, .22) !important;
}

/* FrozenThrone global navbar tabs */
.navbar {
  border-bottom: 1px solid rgba(112, 202, 255, .35);
}

.nav-inner {
  gap: 18px;
}

.nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
}

.nav-links a {
  padding: 10px 13px;
  border: 1px solid rgba(112, 202, 255, .28);
  background: linear-gradient(to bottom, rgba(18, 62, 95, .85), rgba(4, 18, 31, .92));
  color: #e9f7ff;
  text-decoration: none;
  font-weight: 800;
  border-radius: 2px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

.nav-links a:hover {
  background: linear-gradient(to bottom, rgba(35, 132, 194, .95), rgba(5, 54, 88, .95));
  color: #fff;
}

@media (max-width: 900px) {
  .nav-inner {
    justify-content: center;
  }

  .nav-links {
    justify-content: center;
  }

  .nav-links a {
    padding: 8px 10px;
    font-size: 13px;
  }
}

/* FIX global nav into small game tabs */
.navbar {
  padding: 10px 18px !important;
}

.nav-inner {
  max-width: 1320px !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
}

.logo {
  min-width: 210px !important;
}

.nav-links {
  flex: 1 !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: center !important;
  gap: 0 !important;
}

.nav-links a {
  font-size: 14px !important;
  padding: 9px 14px !important;
  border-radius: 0 !important;
  border: 1px solid rgba(75, 151, 205, .55) !important;
  border-left: 0 !important;
  background: linear-gradient(to bottom, #0f3957, #061a2d) !important;
  color: #eaf8ff !important;
  text-shadow: 0 1px 2px #000 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08) !important;
  white-space: nowrap !important;
}

.nav-links a:first-child {
  border-left: 1px solid rgba(75,151,205,.55) !important;
}

.nav-links a:hover,
.nav-links a.active {
  background: linear-gradient(to bottom, #0f76ad, #07446c) !important;
}

.nav-actions {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  min-width: 260px !important;
  justify-content: flex-end !important;
}

.nav-actions .btn {
  padding: 9px 14px !important;
  font-size: 14px !important;
}

.status-dot {
  font-size: 13px !important;
  white-space: nowrap !important;
}

@media (max-width: 1100px) {
  .nav-inner {
    flex-wrap: wrap !important;
    justify-content: center !important;
  }

  .logo,
  .nav-actions {
    min-width: auto !important;
  }

  .nav-links {
    order: 3 !important;
    width: 100% !important;
    flex-wrap: wrap !important;
  }

  .nav-links a {
    font-size: 13px !important;
    padding: 8px 10px !important;
  }
}

/* FrozenThrone V2 shell: square database tab style */
.navbar {
  padding: 10px 14px !important;
  border-bottom: 1px solid rgba(93, 188, 255, .35) !important;
  background: rgba(2, 8, 16, .92) !important;
}

.nav-inner {
  max-width: 1340px !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
}

.logo {
  min-width: 220px !important;
}

.nav-links {
  flex: 1 !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: center !important;
  gap: 0 !important;
}

.nav-links a {
  padding: 8px 12px !important;
  border: 1px solid rgba(87, 172, 226, .45) !important;
  border-left: 0 !important;
  border-radius: 0 !important;
  background: linear-gradient(to bottom, rgba(14,57,88,.95), rgba(4,20,34,.96)) !important;
  color: #e9f8ff !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}

.nav-links a:first-child {
  border-left: 1px solid rgba(87, 172, 226, .45) !important;
}

.nav-links a:hover {
  background: linear-gradient(to bottom, rgba(15,119,176,.95), rgba(5,58,91,.96)) !important;
}

.nav-actions {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  min-width: 250px !important;
  justify-content: flex-end !important;
}

.nav-actions .btn {
  padding: 8px 12px !important;
  border-radius: 4px !important;
  font-size: 13px !important;
}

.ft-shell {
  max-width: 1280px;
  margin: 18px auto 40px;
  padding: 0 18px;
}

.ft-frame {
  border: 1px solid rgba(93, 188, 255, .35);
  background: rgba(1, 12, 22, .74);
  box-shadow: 0 0 35px rgba(0, 120, 190, .13);
}

.ft-section-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  border-bottom: 1px solid rgba(93, 188, 255, .35);
  background: rgba(2, 14, 26, .9);
}

.ft-section-tabs a {
  padding: 10px 14px;
  border-right: 1px solid rgba(93, 188, 255, .28);
  background: linear-gradient(to bottom, rgba(13, 55, 86, .9), rgba(3, 20, 34, .92));
  color: #dff5ff;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}

.ft-section-tabs a.active,
.ft-section-tabs a:hover {
  background: linear-gradient(to bottom, rgba(10, 114, 172, .98), rgba(4, 54, 86, .98));
  color: #fff;
}

.ft-panel {
  padding: 22px;
}

@media (max-width: 1100px) {
  .nav-inner {
    flex-wrap: wrap !important;
    justify-content: center !important;
  }

  .logo,
  .nav-actions {
    min-width: auto !important;
  }

  .nav-links {
    order: 3 !important;
    width: 100% !important;
    flex-wrap: wrap !important;
  }
}

.ft-db-head {
  padding: 24px 26px 18px;
  border-bottom: 1px solid rgba(93,188,255,.32);
  background: rgba(2,12,22,.76);
}

.ft-db-head h1 {
  margin: 0;
  color: #aee3ff;
  font-size: 34px;
}

.ft-db-head p {
  margin: 8px 0 0;
  color: #d8f3ff;
}

.db-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.db-tile {
  display: block;
  padding: 18px;
  border: 1px solid rgba(93,188,255,.3);
  background: rgba(0, 13, 24, .78);
  color: #eaf8ff;
  text-decoration: none;
}

.db-tile h3 {
  margin: 0 0 8px;
  color: #aee3ff;
}

.db-tile p {
  margin: 0;
  color: #c8e7f5;
}

.db-tile:hover {
  background: rgba(6, 48, 76, .88);
}

/* Database page match Character V3 frame */
.ft-shell {
  max-width: 1120px !important;
  margin: 24px auto 50px !important;
  padding: 0 18px !important;
}

.ft-frame {
  border: 1px solid rgba(93,188,255,.38) !important;
  background: rgba(0, 10, 18, .82) !important;
  box-shadow: 0 0 26px rgba(0, 132, 210, .16) !important;
}

.ft-db-head {
  padding: 26px 30px !important;
  min-height: 155px !important;
  background:
    linear-gradient(to right, rgba(0,10,18,.95), rgba(0,20,35,.65)),
    url("/images/frozenthrone-bg.jpeg") center center / cover no-repeat !important;
  border-bottom: 1px solid rgba(93,188,255,.38) !important;
}

.ft-db-head .eyebrow {
  color: #c7ecff !important;
  letter-spacing: 5px !important;
  text-transform: uppercase !important;
  font-weight: 900 !important;
  font-size: 14px !important;
}

.ft-db-head h1 {
  font-size: 42px !important;
  line-height: 1 !important;
  margin: 8px 0 12px !important;
  color: #aee3ff !important;
  text-shadow: 0 0 18px rgba(80,190,255,.6) !important;
}

.ft-db-head p {
  font-size: 18px !important;
  max-width: 780px !important;
}

.ft-section-tabs {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0 !important;
  background: rgba(2,15,28,.92) !important;
  border-bottom: 1px solid rgba(93,188,255,.38) !important;
}

.ft-section-tabs a {
  padding: 13px 18px !important;
  border-right: 1px solid rgba(93,188,255,.34) !important;
  border-bottom: 1px solid rgba(93,188,255,.18) !important;
  background: linear-gradient(to bottom, rgba(13,50,77,.95), rgba(3,19,32,.95)) !important;
  color: #dff5ff !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}

.ft-section-tabs a.active,
.ft-section-tabs a:hover {
  background: linear-gradient(to bottom, #0b74ad, #063b61) !important;
  color: #fff !important;
}

.ft-panel {
  padding: 26px !important;
}

.db-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
}

.db-tile {
  border: 1px solid rgba(93,188,255,.38) !important;
  background: rgba(0, 10, 18, .82) !important;
  padding: 24px !important;
  min-height: 130px !important;
  color: #eaf8ff !important;
  text-decoration: none !important;
}

.db-tile h3 {
  color: #aee3ff !important;
  font-size: 28px !important;
  margin: 0 0 10px !important;
}

.db-tile p {
  font-size: 17px !important;
  color: #cfeeff !important;
}

@media (max-width: 760px) {
  .ft-shell {
    padding: 0 14px !important;
  }

  .ft-db-head h1 {
    font-size: 34px !important;
  }

  .ft-section-tabs a {
    font-size: 15px !important;
    padding: 12px 14px !important;
  }

  .db-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ===============================
   FrozenThrone Unified UI System
   =============================== */

:root {
  --ft-bg: rgba(0, 10, 18, .88);
  --ft-bg-2: rgba(2, 18, 32, .92);
  --ft-line: rgba(93,188,255,.34);
  --ft-line-bright: rgba(125,215,255,.55);
  --ft-blue: #9edcff;
  --ft-text: #e9f8ff;
  --ft-muted: #a9c4d6;
  --ft-row: rgba(255,255,255,.035);
  --ft-row-hover: rgba(45,145,210,.16);
}

/* Main app shell */
.container,
.ft-shell,
.charv3-wrap {
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Square thin tab language everywhere */
.nav-links a,
.ft-section-tabs a,
.charv3-tabs a {
  border-radius: 0 !important;
  border-color: var(--ft-line) !important;
  background: linear-gradient(to bottom, rgba(13,50,77,.96), rgba(3,18,31,.96)) !important;
  color: var(--ft-text) !important;
  text-shadow: 0 1px 2px #000 !important;
}

.nav-links a:hover,
.ft-section-tabs a:hover,
.ft-section-tabs a.active,
.charv3-tabs a:hover,
.charv3-tabs a.active {
  background: linear-gradient(to bottom, #0b72aa, #063955) !important;
  color: #fff !important;
}

/* Database page only */
.database-page {
  max-width: 1180px !important;
  padding: 0 14px 40px !important;
}

.database-page .ft-frame {
  border: 1px solid var(--ft-line) !important;
  background: var(--ft-bg) !important;
  box-shadow: 0 0 24px rgba(0,120,190,.12) !important;
}

.database-page .ft-db-head {
  padding: 18px 22px !important;
  min-height: 110px !important;
  background:
    linear-gradient(to right, rgba(0,10,18,.96), rgba(0,20,35,.72)),
    url("/images/frozenthrone-bg.jpeg") center / cover no-repeat !important;
  border-bottom: 1px solid var(--ft-line) !important;
}

.database-page .ft-db-head h1 {
  font-size: 32px !important;
  margin: 5px 0 8px !important;
  color: var(--ft-blue) !important;
}

.database-page .ft-db-head p {
  font-size: 15px !important;
  color: var(--ft-muted) !important;
}

.database-page .ft-section-tabs a {
  padding: 9px 12px !important;
  font-size: 14px !important;
  font-weight: 800 !important;
}

.database-page .ft-panel {
  padding: 14px !important;
}

/* Database compact tiles */
.database-page .db-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

.database-page .db-tile {
  min-height: unset !important;
  padding: 12px 14px !important;
  border: 1px solid var(--ft-line) !important;
  background: rgba(0, 11, 20, .82) !important;
}

.database-page .db-tile h3 {
  font-size: 19px !important;
  margin: 0 0 5px !important;
  color: var(--ft-blue) !important;
}

.database-page .db-tile p {
  font-size: 13px !important;
  line-height: 1.35 !important;
  margin: 0 !important;
  color: var(--ft-muted) !important;
}

/* FrozenThrone database tables */
.ft-data-table,
.data-table,
.rank-table {
  width: 100% !important;
  border-collapse: collapse !important;
  background: rgba(0, 8, 15, .85) !important;
  font-size: 13px !important;
}

.ft-data-table th,
.ft-data-table td,
.data-table th,
.data-table td,
.rank-table th,
.rank-table td {
  padding: 7px 9px !important;
  border-bottom: 1px solid rgba(93,188,255,.16) !important;
  text-align: left !important;
  vertical-align: middle !important;
}

.ft-data-table th,
.data-table th,
.rank-table th {
  background: rgba(255,255,255,.09) !important;
  color: #fff !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
}

.ft-data-table tr:nth-child(even),
.data-table tr:nth-child(even),
.rank-table tr:nth-child(even) {
  background: var(--ft-row) !important;
}

.ft-data-table tr:hover,
.data-table tr:hover,
.rank-table tr:hover {
  background: var(--ft-row-hover) !important;
}

.item-icon {
  width: 28px !important;
  height: 28px !important;
  border: 1px solid rgba(255,255,255,.25) !important;
  vertical-align: middle !important;
  margin-right: 7px !important;
}

@media (max-width: 760px) {
  .database-page .db-grid {
    grid-template-columns: 1fr !important;
  }

  .database-page .ft-db-head h1 {
    font-size: 28px !important;
  }

  .database-page .ft-section-tabs a {
    flex: 1 1 auto !important;
    text-align: center !important;
    font-size: 13px !important;
  }
}

/* Admin Control Center cleanup */
.admin-control .section-head {
  text-align: center !important;
  padding: 36px 18px 30px !important;
}

.admin-control .card {
  background: rgba(2, 12, 22, .94) !important;
  backdrop-filter: blur(3px);
}

.admin-control .highlight {
  padding: 22px !important;
}

.admin-control .admin-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
}

.admin-control .highlight .grid.grid-4 {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
}

.admin-control form {
  background: rgba(0, 8, 16, .7) !important;
  border: 1px solid rgba(93,188,255,.22) !important;
  padding: 14px !important;
  border-radius: 8px !important;
}

.admin-control form label {
  display: block !important;
  margin-bottom: 7px !important;
  font-weight: 900 !important;
  color: #dff7ff !important;
}

.admin-control form input {
  width: 100% !important;
  min-height: 42px !important;
  margin-bottom: 10px !important;
}

.admin-control form .btn,
.admin-control form button {
  width: 100% !important;
}

.admin-control .admin-card {
  min-height: 140px !important;
  padding: 20px !important;
}

.admin-control .admin-card h3 {
  margin-bottom: 10px !important;
}

@media (max-width: 850px) {
  .admin-control .highlight .grid.grid-4 {
    grid-template-columns: 1fr !important;
  }
}

/* Thin CMS admin layout */
.admin-control .cms-compact {
  padding: 14px !important;
}

.admin-control .cms-compact .section-head {
  padding: 18px 16px !important;
  text-align: left !important;
}

.admin-control .cms-toolbar {
  padding: 10px 12px !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  align-items: center !important;
}

.admin-control .cms-editor {
  padding: 14px !important;
}

.admin-control .cms-editor form {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}

.admin-control .cms-editor label {
  margin: 8px 0 4px !important;
  font-size: 13px !important;
}

.admin-control .cms-editor input,
.admin-control .cms-editor select,
.admin-control .cms-editor textarea {
  min-height: 36px !important;
  margin-bottom: 6px !important;
}

.admin-control .cms-checks {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 8px !important;
  margin: 8px 0 12px !important;
}

.admin-control .cms-checks label {
  background: rgba(0,8,16,.65) !important;
  border: 1px solid rgba(93,188,255,.18) !important;
  padding: 8px !important;
  border-radius: 6px !important;
  margin: 0 !important;
}

@media (max-width: 850px) {
  .admin-control .cms-checks {
    grid-template-columns: 1fr !important;
  }
}

/* CMS table action buttons */
.admin-control .data-table td:last-child {
  white-space: nowrap !important;
  width: 150px !important;
}

.admin-control .data-table td:last-child .btn,
.admin-control .data-table td:last-child button.btn {
  display: inline-block !important;
  width: auto !important;
  min-width: 58px !important;
  padding: 6px 10px !important;
  margin: 0 4px 0 0 !important;
  font-size: 12px !important;
  line-height: 1 !important;
}

.admin-control .data-table td:last-child form {
  display: inline-block !important;
  margin: 0 !important;
}

/* Documentation Manager editor */
.admin-control .cms-editor textarea[name="content"] {
  width: 100% !important;
  max-width: none !important;
  min-height: 620px !important;
  background: rgba(2, 10, 18, .92) !important;
  color: #dff6ff !important;
  border: 1px solid rgba(93,188,255,.35) !important;
  border-radius: 8px !important;
  padding: 14px !important;
  font-family: Consolas, "Courier New", monospace !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
  resize: vertical !important;
  box-sizing: border-box !important;
}

.admin-control .cms-editor {
  max-width: none !important;
}

/* Forum polish */
.forum-post {
  padding: 18px !important;
}

.forum-post-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  border-bottom: 1px solid rgba(93,188,255,.25);
  padding-bottom: 10px;
  margin-bottom: 12px;
}

.forum-post-body {
  font-size: 16px;
  line-height: 1.6;
}

.forum-reply-box textarea,
.card.cms-editor textarea[name="body"] {
  width: 100% !important;
  min-height: 180px !important;
  box-sizing: border-box !important;
  background: rgba(2,10,18,.92) !important;
  color: #e8f7ff !important;
  border: 1px solid rgba(93,188,255,.45) !important;
  border-radius: 10px !important;
  padding: 14px !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
}

.card.cms-editor label {
  display: block !important;
  margin: 0 0 8px !important;
  font-weight: 800 !important;
}

.card.cms-editor input {
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Classic PC forum index */
.classic-forum-row {
  display: grid;
  grid-template-columns: 46px minmax(220px, 1fr) 120px minmax(180px, .8fr);
  gap: 12px;
  align-items: center;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(93,188,255,.25);
  background: linear-gradient(180deg, rgba(18,50,74,.75), rgba(4,18,31,.9));
  color: #dff6ff;
  text-decoration: none;
}

.classic-forum-row:hover {
  background: linear-gradient(180deg, rgba(24,83,119,.9), rgba(5,29,48,.95));
}

.classic-forum-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(145,215,255,.45);
  border-radius: 7px;
  background: rgba(160,215,255,.12);
}

.classic-forum-main strong {
  color: #8fd7ff;
  font-size: 15px;
}

.classic-forum-main p,
.classic-forum-counts,
.classic-forum-last small {
  margin: 3px 0 0;
  color: #b9d9ea;
  font-size: 12px;
}

.classic-forum-counts span {
  display: block;
}

.classic-forum-last strong {
  color: #e8f7ff;
  font-size: 12px;
}

@media (max-width: 760px) {
  .classic-forum-row {
    grid-template-columns: 38px 1fr;
  }

  .classic-forum-counts,
  .classic-forum-last {
    grid-column: 2;
  }
}

.classic-forum-counts {
  display: flex;
  gap: 10px;
  justify-content: center;
}

.classic-forum-counts span {
  min-width: 54px;
  text-align: center;
}

.classic-forum-counts strong {
  display: block;
  color: #e8f7ff;
  font-size: 18px;
  line-height: 1;
}

.classic-forum-counts small {
  display: block;
  color: #9fc7dd;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.thread-sticky {
  border-left: 4px solid #ffd36a !important;
}

.thread-important {
  border-left: 4px solid #7ec8ff !important;
  background: linear-gradient(180deg, rgba(16,74,111,.85), rgba(4,22,38,.95)) !important;
}

.thread-urgent {
  border-left: 4px solid #ff5757 !important;
  background: linear-gradient(180deg, rgba(120,28,36,.88), rgba(38,6,12,.96)) !important;
}

.thread-urgent strong {
  color: #ffd0d0 !important;
}

.thread-important strong {
  color: #d8f1ff !important;
}

.classic-forum-last .latest-urgent {
  color: #ffb2b2 !important;
  text-shadow: 0 0 8px rgba(255,70,70,.6);
}

.classic-forum-last .latest-important {
  color: #ffe08a !important;
  text-shadow: 0 0 8px rgba(255,210,80,.45);
}

.classic-forum-last .latest-sticky {
  color: #b9ecff !important;
}

.classic-forum-last .latest-announcement {
  color: #9ee8ff !important;
  text-shadow: 0 0 8px rgba(80,190,255,.55);
}

.thread-announcement {
  border-left: 4px solid #72d9ff !important;
  background: linear-gradient(180deg, rgba(18,91,130,.88), rgba(5,31,52,.96)) !important;
}

/* Forum user cards */
.forum-post-grid {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 18px;
}

.forum-user-card {
  border-right: 1px solid rgba(93,188,255,.22);
  padding-right: 16px;
  text-align: center;
}

.forum-avatar {
  width: 74px;
  height: 74px;
  margin: 0 auto 10px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 34px;
  font-weight: 900;
  color: #e8f7ff;
  background: radial-gradient(circle at 30% 25%, rgba(140,225,255,.7), rgba(9,55,88,.95));
  border: 2px solid rgba(130,210,255,.65);
  box-shadow: 0 0 18px rgba(66,180,255,.28);
}

.forum-user-card strong {
  display: block;
  color: #8fd7ff;
  font-size: 18px;
}

.forum-title {
  color: #b7d8e8;
  font-size: 13px;
  margin: 4px 0 8px;
}

.forum-badges {
  display: flex;
  gap: 6px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.forum-badge {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.forum-badge.staff {
  background: #0969b3;
  color: #eaf8ff;
  border: 1px solid #67c8ff;
}

.forum-badge.founder {
  background: #6f4d00;
  color: #fff1b8;
  border: 1px solid #ffd66b;
}

.forum-user-stats {
  margin-top: 10px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 2px;
  color: #9fc7dd;
  font-size: 12px;
}

.forum-user-stats strong {
  color: #fff;
  font-size: 18px;
}

.forum-post-content {
  min-width: 0;
}

@media (max-width: 760px) {
  .forum-post-grid {
    grid-template-columns: 1fr;
  }

  .forum-user-card {
    border-right: 0;
    border-bottom: 1px solid rgba(93,188,255,.22);
    padding-right: 0;
    padding-bottom: 14px;
  }
}

.forum-character-card {
  margin: 12px auto;
  padding: 10px;
  border: 1px solid rgba(93,188,255,.28);
  border-radius: 10px;
  background: rgba(5,25,42,.72);
  text-align: center;
}

.forum-character-card strong {
  color: #fff;
  font-size: 15px;
}

.forum-character-card span,
.forum-character-card small {
  display: block;
  color: #a9cfe4;
  font-size: 12px;
  margin-top: 3px;
}

.forum-character-name {
  display: block;
  color: #ffffff;
  font-weight: 900;
  font-size: 15px;
  text-decoration: none;
}

.forum-character-name:hover {
  color: #8fd7ff;
  text-shadow: 0 0 10px rgba(120,210,255,.55);
}

.forum-character-link {
  color: #fff;
  text-decoration: none;
}

.forum-character-link:hover {
  color: #8fd7ff;
  text-decoration: underline;
}

.forum-post-grid.class-1 .forum-avatar { border-color:#c79c6e; }
.forum-post-grid.class-2 .forum-avatar { border-color:#f58cba; box-shadow:0 0 18px rgba(245,140,186,.45); }
.forum-post-grid.class-3 .forum-avatar { border-color:#abd473; }
.forum-post-grid.class-4 .forum-avatar { border-color:#fff569; }
.forum-post-grid.class-5 .forum-avatar { border-color:#ffffff; }
.forum-post-grid.class-6 .forum-avatar { border-color:#c41f3b; box-shadow:0 0 18px rgba(196,31,59,.55); }
.forum-post-grid.class-7 .forum-avatar { border-color:#0070de; }
.forum-post-grid.class-8 .forum-avatar { border-color:#69ccf0; }
.forum-post-grid.class-9 .forum-avatar { border-color:#9482c9; }
.forum-post-grid.class-11 .forum-avatar { border-color:#ff7d0a; }

.forum-character-card.class-1 { border-color:#c79c6e; }
.forum-character-card.class-2 { border-color:#f58cba; }
.forum-character-card.class-3 { border-color:#abd473; }
.forum-character-card.class-4 { border-color:#fff569; }
.forum-character-card.class-5 { border-color:#ffffff; }
.forum-character-card.class-6 { border-color:#c41f3b; }
.forum-character-card.class-7 { border-color:#0070de; }
.forum-character-card.class-8 { border-color:#69ccf0; }
.forum-character-card.class-9 { border-color:#9482c9; }
.forum-character-card.class-11 { border-color:#ff7d0a; }

.v3-paper-slot-icon {
  text-decoration: none;
  color: inherit;
}

.v3-paper-slot-icon:hover {
  transform: scale(1.06);
  z-index: 20;
}
