/* Duelist Kingdom visual layer — additive over existing DTN styles */
:root{--dk-sky:#00b3ff;--dk-violet:#7c4dff;--dk-gold:#ffd76a;--dk-amber:#ffb84d;--dk-rose:#ff5a7a;--dk-deep:#050816;--dk-panel:rgba(7,12,32,.78);--dk-border:rgba(255,215,106,.28);--dk-glow:0 0 24px rgba(0,179,255,.22),0 0 42px rgba(124,77,255,.18)}
body:has(.dk-kingdom-shell),body:has(.pk-shell){background:radial-gradient(circle at 14% 8%,rgba(255,215,106,.14),transparent 28rem),radial-gradient(circle at 86% 12%,rgba(124,77,255,.24),transparent 30rem),radial-gradient(circle at 50% 88%,rgba(0,179,255,.18),transparent 34rem),linear-gradient(135deg,#050816 0%,#091229 42%,#120b2d 100%)!important;color:#eef6ff}.dk-kingdom-shell,.pk-shell{position:relative;isolation:isolate}.dk-kingdom-shell:before,.pk-shell:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(255,215,106,.05) 1px,transparent 1px),linear-gradient(rgba(0,179,255,.045) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.85),transparent 82%)}.pk-hero,.dk-kingdom-hero{border:1px solid var(--dk-border)!important;background:linear-gradient(135deg,rgba(10,16,42,.88),rgba(15,9,44,.82))!important;box-shadow:var(--dk-glow),inset 0 1px 0 rgba(255,255,255,.08)!important;border-radius:28px!important;overflow:hidden;position:relative}.pk-hero:after,.dk-kingdom-hero:after{content:"♛";position:absolute;right:24px;bottom:-26px;font-size:138px;color:rgba(255,215,106,.08);font-family:serif;line-height:1}.pk-eyebrow{color:var(--dk-gold)!important;letter-spacing:.16em;text-transform:uppercase;text-shadow:0 0 14px rgba(255,215,106,.38)}.pk-hero h1,.pk-card h2,.pk-card h3,.dk-modal h2,.dk-modal h3{font-family:Orbitron,Atkinson Hyperlegible,sans-serif;text-shadow:0 0 18px rgba(0,179,255,.35),1px 1px 0 #000}.pk-card,.dk-page-card,.pk-hub-card{border:1px solid rgba(255,215,106,.22)!important;background:linear-gradient(180deg,rgba(9,15,38,.86),rgba(6,10,25,.78))!important;box-shadow:0 18px 48px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.06)!important;border-radius:24px!important}.pk-hub-card{transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.pk-hub-card:hover{transform:translateY(-3px);border-color:rgba(255,215,106,.52)!important;box-shadow:var(--dk-glow)!important}.pk-page-nav,.dk-page-nav{display:flex;flex-wrap:wrap;gap:.55rem;padding:.85rem;border:1px solid rgba(0,179,255,.28);border-radius:22px;background:rgba(2,6,18,.62);backdrop-filter:blur(14px);box-shadow:0 10px 32px rgba(0,0,0,.22)}.pk-page-nav a,.dk-page-nav a{border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:.62rem .92rem;color:#eaf7ff!important;text-decoration:none!important;background:linear-gradient(135deg,rgba(0,179,255,.12),rgba(124,77,255,.12));transition:transform .16s ease,background .16s ease,border-color .16s ease}.pk-page-nav a:hover,.dk-page-nav a:hover,.pk-page-nav a[aria-current="page"],.dk-page-nav a[aria-current="page"]{transform:translateY(-1px);border-color:rgba(255,215,106,.55);background:linear-gradient(135deg,rgba(0,179,255,.28),rgba(255,215,106,.18));box-shadow:0 0 18px rgba(0,179,255,.22)}.pk-btn,.dk-primary-glow{border-radius:999px!important;border:1px solid rgba(255,215,106,.34)!important;background:linear-gradient(135deg,var(--dk-sky),var(--dk-violet))!important;color:white!important;font-weight:800!important;box-shadow:0 0 18px rgba(0,179,255,.22)!important}.pk-btn-ghost{background:rgba(255,255,255,.07)!important}.dk-modal::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(8px)}.dk-modal-card{border:1px solid rgba(255,215,106,.35)!important;background:linear-gradient(145deg,rgba(7,12,32,.98),rgba(18,10,48,.96))!important;box-shadow:0 24px 90px rgba(0,0,0,.55),0 0 48px rgba(124,77,255,.2)!important;border-radius:28px!important}.dk-stepper span{border-color:rgba(255,215,106,.34)!important;background:rgba(255,215,106,.09)!important}.dk-stepper span.is-active,.dk-stepper span[aria-current="step"]{background:linear-gradient(135deg,var(--dk-gold),var(--dk-amber))!important;color:#1b1200!important}.dk-summary-box,.dk-reveal-panel{border:1px solid rgba(0,179,255,.24);border-radius:18px;background:rgba(0,179,255,.07)}.pk-muted{color:rgba(231,244,255,.76)!important}.pk-small-note{color:rgba(255,215,106,.9)!important}@media(max-width:820px){.pk-page-nav,.dk-page-nav{overflow-x:auto;flex-wrap:nowrap;padding:.7rem}.pk-page-nav a,.dk-page-nav a{white-space:nowrap}.pk-hero{border-radius:20px}.pk-hero:after{font-size:84px}}

/* Final QA staff visibility guard: public users should not see admin/staff controls. */
html:not(.dk-staff-authorized) a[href^="/duelist-kingdom/admin"],
html:not(.dk-staff-authorized) a[href="/duelist-kingdom/live.html"],
html:not(.dk-staff-authorized) a[href^="/ranked/admin"],
html:not(.dk-staff-authorized) [data-pk-staff-only="true"],
html:not(.dk-staff-authorized) [data-kingdom-staff-only],
html:not(.dk-staff-authorized) .pk-staff-only,
html:not(.dk-staff-authorized) .dk-staff-only {
  display: none !important;
}

body[data-pk-admin-page]:not(.dk-staff-page-ready) main.pk-shell > *:not(.pk-hero):not(.dk-staff-denied-hero),
body[data-pk-awards-page]:not(.dk-staff-page-ready) main.pk-shell > *:not(.pk-hero):not(.dk-staff-denied-hero),
body.dk-admin-page:not(.dk-staff-page-ready) main.pk-shell > *:not(.pk-hero):not(.dk-staff-denied-hero) {
  display: none !important;
}

body.dk-admin-access-denied main.pk-shell {
  max-width: 980px;
}

.dk-staff-denied-hero {
  margin-top: 2rem;
}

/* Phase 13 — live-season repair + staff-only Live page + paginated admin lists */
.dk-player-hub-results-scroll,
.dk-discord-links-scroll {
  max-height: 720px;
  overflow: auto;
  padding-right: 4px;
}
.dk-hub-pagerbar {
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
html:not(.dk-staff-authorized) .pk-hub-card[href="/duelist-kingdom/live.html"],
html:not(.dk-staff-authorized) a[href="/duelist-kingdom/live.html"] {
  display: none !important;
}

/* Phase 31 — Kingdom Meta season filters */
.pk-meta-season-controls .pk-actions-wrap { align-items: end; }
.pk-meta-season-controls .pk-field-inline { min-width: min(100%, 360px); }
.pk-scroll-y { max-height: 520px; overflow: auto; }

/* Phase 45S — tournament-style Kingdom match deck review */
.dk-match-review-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-top:14px;}
.dk-tournament-review-style{border:1px solid rgba(255,215,106,.35);background:linear-gradient(180deg,rgba(10,18,35,.92),rgba(8,12,24,.95));}
.dk-deck-review-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px;}
.dk-deck-review-head h4{margin:0 0 4px;font-size:1.1rem;}
.dk-deck-review-badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;}
.dk-match-deck-details{margin-top:10px;padding:10px;border-radius:14px;background:rgba(0,0,0,.18);}
.dk-deck-card-list{max-height:380px;overflow:auto;columns:1;margin-top:8px;}
.dk-deck-review-actions{margin-top:12px;align-items:center;}
.dk-final-match-review-note{margin-top:14px;display:block;}
.dk-legality-popup .pk-btn[disabled]{opacity:.45;cursor:not-allowed;filter:grayscale(.35);}
@media (max-width:760px){.dk-deck-review-head{display:block}.dk-deck-review-badges{justify-content:flex-start;margin-top:8px}.dk-match-review-layout{grid-template-columns:1fr}.dk-deck-card-list{max-height:300px}}
