/* PvP shares the existing fusion palette and typography; no global layout overrides. */
#pvpApp{min-width:0}
.pvp-hero{position:relative;isolation:isolate;overflow:hidden;min-height:255px;padding:32px 30px 24px;border-bottom:1px solid var(--border);background:#0b2019}
.pvp-hero-art{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 47%;opacity:.22;filter:saturate(.55)}
.pvp-hero:after{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#091916 0%,#091916c7 42%,#0919163b 100%),linear-gradient(0deg,#091916 0%,transparent 80%)}
.pvp-hero-copy{position:relative;max-width:780px}
#pvpApp .pvp-hero h2{font:48px/1.25 var(--serif);letter-spacing:.04em;color:#f2e9cf;margin:12px 0}
.pvp-hero p{font-size:12px;color:var(--muted);margin:0;line-height:1.8}
.pvp-hero-emblems{position:absolute;right:36px;top:40px;display:flex;gap:18px;opacity:.7}
.pvp-hero-emblems img{width:64px;height:64px;object-fit:contain}
.pvp-hero-stats{display:flex;gap:38px;flex-wrap:wrap;margin:25px 0 0;padding-top:18px;border-top:1px solid var(--border)}
.pvp-hero-stats dt{font-size:10px;color:var(--muted)}
.pvp-hero-stats dd{margin:5px 0 0;font:21px/1.3 var(--serif);color:var(--gold)}
.pvp-main-tabs,.pvp-subnav{display:flex;gap:22px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:thin}
.pvp-main-tabs{margin:12px 0 0}
#pvpApp :is(.pvp-main-button,.pvp-sub-button){border:0;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--muted);padding:15px 0;flex:none;font-size:12px;cursor:pointer}
#pvpApp :is(.pvp-main-button,.pvp-sub-button)[aria-pressed=true]{border-bottom-color:var(--gold);color:var(--gold)}
.pvp-content{padding-top:24px;min-width:0}
.pvp-section{padding:0 0 25px;margin:0 0 26px;min-width:0;border-bottom:1px solid var(--border)}
#pvpApp .pvp-section-title{font:22px/1.5 var(--serif);color:var(--gold);margin:0 0 16px}
#pvpApp h4{font:15px/1.6 var(--serif);color:var(--gold);margin:15px 0 10px}
#pvpApp p{font-size:12px;line-height:1.9;color:var(--muted)}
.pvp-intro-copy{max-width:880px}
#pvpApp .pvp-intro-copy p{margin:0 0 12px}
#pvpApp .pvp-intro-copy p:last-child{margin-bottom:0}
.pvp-intro-copy strong{color:var(--gold);font-weight:600}
.pvp-table-scroll{max-width:100%;overflow-x:auto;scrollbar-width:thin}
.pvp-table{width:100%;min-width:540px;border-collapse:collapse;font-size:12px;text-align:left}
.pvp-table th{background:#152c22;color:var(--muted);font-size:10px;font-weight:400;padding:11px 12px;white-space:nowrap}
.pvp-table td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text)}
.pvp-table tbody tr:hover{background:#18322766}
.pvp-table .pvp-rank-number{font:17px var(--serif);color:var(--gold);background:none;border-bottom:1px solid var(--border)}
.pvp-number{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--gold)}
.pvp-slot{font-size:11px;min-width:90px}
.pvp-ranks-table{min-width:620px}
.pvp-rank-rewards{margin:0;padding:0;list-style:none;display:flex;gap:8px 15px;flex-wrap:wrap}
.pvp-rank-rewards li{display:flex;gap:7px;align-items:center;font-size:11px;white-space:nowrap}
.pvp-rank-rewards img{width:24px;height:24px;border-radius:3px}
.pvp-rank-total{text-align:right;color:var(--gold)!important}
#pvp-weekly{container-type:inline-size}
.pvp-weekly{list-style:none;columns:2;column-gap:40px;max-width:880px;padding:0;margin:0}
.pvp-weekly li{break-inside:avoid;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:12px;padding:9px 0;border-bottom:1px solid var(--border);font-size:12px;line-height:1.6}
.pvp-weekly-week{color:var(--muted)}
.pvp-weekly-rank{color:var(--gold);white-space:nowrap}
.pvp-weekly .pvp-weekly-cap{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.pvp-controls{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:20px 0}
.pvp-controls>.btn{margin-bottom:1px;font-size:11px;padding:9px 12px;min-height:36px}
.pvp-field{display:flex;flex-direction:column;gap:7px;font-size:10px;color:var(--muted);min-width:0;max-width:100%;margin-bottom:8px}
.pvp-field>span{font-size:10px}
.pvp-field :is(input,select){min-width:0;max-width:100%;height:37px;padding:8px 11px;font-size:12px}
.pvp-search{flex:1 1 220px}
.pvp-class-picker{display:flex;gap:7px;flex-wrap:wrap;margin:22px 0}
#pvpApp .pvp-class-button{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid var(--border);border-radius:3px;background:#10231b;font-size:11px;cursor:pointer}
.pvp-class-button img{width:24px;height:24px;object-fit:cover;border-radius:3px}
#pvpApp .pvp-class-button[aria-pressed=true]{border-color:var(--gold);background:#27382a;color:var(--gold)}
.pvp-set-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:25px}
.pvp-set-picker{padding-right:18px;border-right:1px solid var(--border);min-width:0}
#pvpApp .pvp-set-picker h4{color:var(--muted);font-size:11px;margin:3px 0 8px}
#pvpApp .pvp-set-button{display:flex;align-items:start;flex-direction:column;gap:8px;width:100%;padding:12px 10px;margin:0 0 7px;text-align:left;border:1px solid transparent;background:none;cursor:pointer}
#pvpApp .pvp-set-button[aria-pressed=true]{background:#172f24;border-color:#6e7353}
.pvp-set-button strong{font:15px/1.5 var(--serif)}
.pvp-set-button small{color:var(--muted);font-size:10px}
.pvp-faction{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--muted);flex:none}
.pvp-faction img{width:20px;height:20px;object-fit:contain}
.pvp-set-detail{min-width:0}
#pvpApp .pvp-set-detail>h3{font:26px/1.5 var(--serif);margin:0 0 8px}
.pvp-detail-meta{margin:0 0 16px}
#pvpApp .pvp-item{display:flex;align-items:center;gap:9px;padding:0;border:0;background:none;font-size:12px;line-height:1.6;text-align:left;cursor:pointer}
.pvp-item img{width:32px;height:32px;flex:none;object-fit:contain;border:1px solid currentColor;border-radius:3px}
.pvp-item:hover span{text-decoration:underline}
#pvpApp .quality-rare{color:#55a6fb}#pvpApp .quality-epic{color:#ba83fa}#pvpApp .quality-uncommon{color:#55d379}
.pvp-set-bonuses{list-style:none;margin:0;padding:12px 15px;border-left:2px solid var(--gold2);background:#11261d;color:#a9cf99;font-size:12px;line-height:1.9}
.pvp-set-bonuses li+li{margin-top:5px}
.pvp-vendor-layout{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(0,1.1fr);gap:24px;align-items:start}
.pvp-npc-list{display:grid;gap:6px;min-width:0;max-height:390px;overflow:auto;scrollbar-width:thin}
#pvpApp .pvp-npc-button{display:flex;align-items:start;gap:12px;width:100%;padding:11px 9px;text-align:left;background:none;border:1px solid transparent;border-left:2px solid transparent;cursor:pointer}
#pvpApp .pvp-npc-button[aria-pressed=true]{background:#163023;border-left-color:var(--gold)}
.pvp-npc-button>span:last-child{min-width:0}
.pvp-npc-button strong{display:block;font-size:12px;font-weight:400;line-height:1.6;color:var(--gold)}
.pvp-npc-button small{display:block;font-size:10px;line-height:1.7;color:var(--muted);margin-top:5px}
.pvp-npc-map{margin:0;background:#0b1e17;border:1px solid var(--border)}
.pvp-npc-map figcaption{padding:12px 15px;font-size:12px}
.pvp-npc-map figcaption strong,.pvp-npc-map figcaption small{display:block;line-height:1.8}
.pvp-npc-map figcaption strong{color:var(--gold)}
.pvp-npc-map figcaption small{font-size:10px;color:var(--muted)}
.pvp-location-canvas{position:relative;min-width:0}
.pvp-map-image{display:block;width:100%;height:auto}
.pvp-location-pin{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;width:28px;height:28px;background:#132016;border:2px solid #dfc879;border-radius:50%;box-shadow:0 0 8px #000}
.pvp-location-pin img{width:20px;height:20px;object-fit:contain}
.pvp-legacy-link{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid var(--border);font:15px var(--serif);color:var(--gold)}
.pvp-legacy-link .btn{font-size:11px}
.pvp-battleground-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0 30px}
.pvp-battleground-card{padding:22px;background:linear-gradient(140deg,#172f25,#0e211a);border:1px solid var(--border)}
.pvp-battleground-card>small{font-size:9px;letter-spacing:.1em;color:var(--muted)}
#pvpApp .pvp-battleground-card h3{font:25px/1.4 var(--serif);margin:10px 0;color:var(--gold)}
.pvp-bg-teams{font-size:12px;font-weight:400;color:var(--gold)}
.pvp-brackets{display:flex;gap:6px;flex-wrap:wrap;list-style:none;padding:0;font-size:10px;color:var(--muted)}
.pvp-brackets li{border:1px solid var(--border);padding:4px 7px}
.pvp-darkspear-map{margin:20px 0 0;max-width:880px}
.pvp-darkspear-map figcaption{font-size:12px;color:var(--gold);line-height:1.7}
#pvpApp .pvp-base-pin{position:absolute;transform:translate(-50%,-50%);border:1px solid #cdb771;border-radius:50%;width:27px;height:27px;background:#112820;color:#f6dea4;font:bold 12px Georgia;box-shadow:0 2px 5px #000;cursor:pointer}
#pvpApp .pvp-base-pin.is-flag{background:#775828}
#pvpApp .pvp-base-pin[aria-pressed=true]{transform:translate(-50%,-50%) scale(1.3);background:#d3c38c;color:#142017;z-index:2}
.pvp-map-legend{display:flex;gap:10px;flex-wrap:wrap;list-style:none;padding:0;margin:15px 0}
#pvpApp .pvp-legend-button{background:none;border:0;border-bottom:1px solid transparent;padding:4px 0;color:var(--muted);font-size:11px;cursor:pointer}
#pvpApp .pvp-legend-button[aria-pressed=true]{color:var(--gold);border-bottom-color:var(--gold)}
.pvp-reputation-quests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}
.pvp-reputation-quests article{padding:15px;background:#10231b;border-left:1px solid var(--gold2)}
.pvp-reputation-quests small{font-size:10px;color:var(--gold)}
.pvp-reputation-group{margin-bottom:25px}
.pvp-empty{display:inline-block;border:1px solid var(--border);padding:6px 12px;font-size:12px;line-height:1.8;margin:10px 0}
@media(max-width:1100px){.pvp-hero-emblems{opacity:.25}.pvp-set-layout{grid-template-columns:180px minmax(0,1fr);gap:18px}.pvp-set-picker{padding-right:12px}.pvp-vendor-layout{grid-template-columns:1fr}.pvp-npc-list{max-height:250px}.pvp-npc-detail{max-width:650px}}
@media(max-width:650px){.pvp-hero{padding:22px 15px;min-height:215px}#pvpApp .pvp-hero h2{font-size:33px}.pvp-hero-emblems{right:15px;top:28px;gap:8px}.pvp-hero-emblems img{width:44px;height:44px}.pvp-hero-stats{gap:25px}.pvp-main-tabs,.pvp-subnav{gap:18px}.pvp-battleground-grid,.pvp-reputation-quests{grid-template-columns:1fr}.pvp-set-layout{grid-template-columns:1fr}.pvp-set-picker{border-right:0;border-bottom:1px solid var(--border);padding:0 0 12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pvp-controls>.pvp-field{flex:1 1 140px}.pvp-search{flex-basis:100%!important}.pvp-legacy-link{flex-wrap:wrap}.pvp-battleground-card{padding:16px}.pvp-npc-button .pvp-faction>span{display:none}}
@media(prefers-reduced-motion:reduce){#pvpApp *{scroll-behavior:auto}}

.home-card[data-home-page=pvp] .home-card-native-icons img{border-radius:50%}

#pvpApp .btn{max-width:100%;white-space:normal;font-size:12px;line-height:1.6}

/* The source client map has a 1002x668 playable window inside a 1024x768 texture. */
.pvp-darkspear-map .pvp-location-canvas{aspect-ratio:1002/668;overflow:hidden}
.pvp-darkspear-map .pvp-map-image{position:absolute;top:0;left:0;width:102.19560878243512%;max-width:none;height:auto}
@media(max-width:650px){#pvpApp .pvp-base-pin{width:16px;height:16px;font-size:9px}}
/* PvP section navigation and paired faction locations. */
#pvpApp .pvp-hero{min-height:190px}
#pvpApp .pvp-main-tabs{display:none}
.pvp-npc-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:18px}
.pvp-npc-column{min-width:0}
.pvp-npc-column>.pvp-faction{padding:0 8px 8px;border-bottom:1px solid var(--border);display:flex}
.pvp-npc-detail{max-width:700px;margin:0 auto}
.pvp-npc-list{max-height:none;overflow:visible}
#pvpApp .pvp-npc-button{padding:8px 9px}
.pvp-npc-button small{margin-top:2px}

.pvp-rank-unlocks{position:relative;font-size:11px;min-width:190px;max-width:380px}
.pvp-rank-unlocks>summary{display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--gold);line-height:1.6;list-style:none;padding-right:18px}
.pvp-rank-unlocks>summary:after{content:'⌄';margin-left:auto}
.pvp-rank-unlocks[open]>summary:after{content:'⌃'}
.pvp-rank-unlocks>summary img{flex:none;border-radius:3px}
.pvp-rank-reward-items{display:grid;gap:10px;padding:12px 0 3px;max-height:270px;overflow:auto;scrollbar-width:thin}
#pvpApp .pvp-rank-reward-items .pvp-item{font-size:11px}
.pvp-rank-reward-items img{width:26px;height:26px}
.pvp-battle-header{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin:25px 0 28px;padding-bottom:18px;border-bottom:1px solid var(--border)}
.pvp-battle-heading{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
#pvpApp .pvp-battle-heading h3{font:30px/1.4 var(--serif);color:var(--gold);margin:0}
.pvp-battle-levels small{font-size:10px;color:var(--muted)}
.pvp-battle-levels .pvp-brackets{margin:8px 0 0}
.pvp-gameplay-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;margin-bottom:20px}
#pvpApp .pvp-gameplay-cards h4{margin-top:0}
.pvp-battle-map{margin:0 auto;max-width:760px;border:1px solid var(--border)}
.pvp-battle-map figcaption{padding:9px 12px;color:var(--gold);font-size:11px}
.pvp-darkspear-map{margin-left:auto;margin-right:auto;max-width:760px}
.pvp-mark-item{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:14px 18px;background:#10251d;border-left:2px solid var(--gold2);margin:16px 0}
.pvp-mark-item>small{font-size:11px;color:var(--muted)}
.pvp-turnin-details{padding-top:16px;color:var(--gold);font-size:12px}
.pvp-turnin-details>summary{cursor:pointer}
.pvp-turnin-details .pvp-section{margin:20px 0 0;padding-bottom:0;border:0}
@media(max-width:820px){#pvpApp .pvp-main-tabs{display:flex}}
@media(max-width:650px){.pvp-npc-columns{gap:10px}#pvpApp .pvp-npc-button{padding:8px 5px}.pvp-npc-button strong{font-size:11px}.pvp-npc-button small{font-size:9px}.pvp-gameplay-cards{grid-template-columns:1fr;gap:6px}.pvp-battle-header{gap:12px}#pvpApp .pvp-battle-heading h3{font-size:25px}.pvp-battle-heading{gap:12px}.pvp-npc-column>.pvp-faction{padding-left:4px}}
#pvpApp .pvp-reputation-group .pvp-table-scroll{overflow:auto;overscroll-behavior:contain}
#pvpApp .pvp-reputation-group thead th{position:sticky;top:0;z-index:1}

#pvpApp .pvp-standing-note{font-size:12px;color:var(--muted);line-height:1.6}
#pvpApp .pvp-reputation-group .pvp-table-scroll:focus-visible{outline:1px solid var(--gold);outline-offset:2px}

#pvpApp .pvp-standing-basis{display:block;font-size:11px;color:var(--muted);margin:-5px 0 12px}

@media(max-width:650px){.pvp-weekly{columns:1}}
@container(max-width:580px){.pvp-weekly{columns:1}}
