/*
 * The Quest — V7.20 visual refactor
 * Player-only overrides. The manager UI remains on src/styles.css.
 * Visual source of truth: manager-approved mobile mockup (24/09/2026).
 */

.player-body{
  --v720-night:#081328;
  --v720-panel:rgba(10,22,42,.93);
  --v720-panel-soft:rgba(13,29,52,.86);
  --v720-line:rgba(141,161,196,.56);
  --v720-line-soft:rgba(123,146,184,.32);
  --v720-violet:#8b56ff;
  --v720-violet-2:#b379ff;
  --v720-gold:#efbd6b;
  --v720-ink:#f8f5fb;
  --v720-muted:#b5bad0;
  background:#071020;
}

.player-body .mobile-app{
  width:min(100%,480px);
  border-inline:0;
  background:
    radial-gradient(circle at 82% 9%,rgba(255,225,180,.13),transparent 24%),
    linear-gradient(180deg,#13243a 0,#0a1528 36%,#081326 100%);
  box-shadow:0 0 70px rgba(0,0,0,.4);
}
.player-body .mobile-app:before{display:none}
.player-body .ambient-particles{opacity:.11;mix-blend-mode:screen}
.player-body .mobile-main{
  padding:calc(10px + env(safe-area-inset-top)) 12px calc(92px + env(safe-area-inset-bottom));
}

/* Header */
.player-body .mobile-header{
  min-height:68px;
  grid-template-columns:44px minmax(0,1fr) auto;
  gap:8px;
  margin-bottom:2px;
}
.player-body .header-menu,.player-body .header-bell{
  width:44px;height:44px;color:#f3eef8
}
.player-body .header-menu .icon,.player-body .header-bell .icon{width:27px;height:27px;stroke-width:1.7}
.player-body .header-brand{height:64px}
.player-body .header-brand img{
  width:118px;height:68px;max-width:none;border-radius:0;object-fit:contain;
  filter:drop-shadow(0 4px 12px rgba(0,0,0,.28));
}
.player-body .header-actions{gap:7px}
.player-body .mobile-header:not(.page-header) .player-sync{display:none}
.player-body .home-header-wallet,.player-body .header-wallet{
  min-width:76px;height:39px;padding:0 10px;
  display:flex;align-items:center;justify-content:center;gap:7px;
  border:1px solid rgba(179,196,222,.25);
  border-radius:999px;
  background:rgba(8,17,33,.72);
  backdrop-filter:blur(12px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 7px 18px rgba(0,0,0,.2);
  font-size:14px;
}
.player-body .header-crystal{
  width:27px;height:27px;display:grid;place-items:center;
  color:#b377ff;filter:drop-shadow(0 0 7px rgba(148,74,255,.6));
}
.player-body .header-crystal .icon{width:25px;height:25px}
.player-body .header-wallet img{width:24px;height:24px}
.player-body .notification-dot{
  right:1px;top:1px;width:10px;min-width:10px;height:10px;padding:0;
  background:#9950e8;box-shadow:0 0 0 2px #132039;font-size:0;
}
.player-body .page-header .page-title{font-size:21px}
.player-body .page-header{margin-bottom:8px}

/* QG world: image is the world, cards float above it. */
.player-body .mobile-app.qg-theme{
  background:#0b1729;
}
.player-body .mobile-app.qg-theme:after{
  content:"";position:absolute;z-index:0;inset:0 0 auto;min-height:930px;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(95,133,176,.13) 0,rgba(29,50,76,.03) 28%,rgba(7,17,31,.3) 61%,#091528 94%),
    url('../assets/citadel/citadel-qg.webp') 57% 8px/auto 610px no-repeat;
  filter:brightness(1.38) saturate(.74) contrast(.9);
}
.player-body .mobile-app.qg-theme .mobile-main{z-index:2}
.player-body .citadel-home{
  position:relative;z-index:2;gap:14px;padding-top:0;
}

/* Hero area */
.player-body .citadel-home .home-progression{
  height:405px;
  overflow:visible;
  border:0!important;border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.player-body .citadel-home .home-progression:before,
.player-body .citadel-home .home-progression:after,
.player-body .citadel-atmosphere{display:none!important}

.player-body .citadel-status{
  top:12px;left:4px;max-width:57%;min-height:58px;padding:9px 14px;
  border:1px solid rgba(146,162,191,.62);
  border-left:3px solid #8c58ff;
  border-radius:0;
  clip-path:polygon(0 0,92% 0,100% 28%,100% 100%,0 100%);
  background:linear-gradient(100deg,rgba(11,25,46,.95),rgba(18,31,54,.9));
  backdrop-filter:blur(12px);
  box-shadow:0 10px 24px rgba(0,0,0,.24);
}
.player-body .citadel-status-gem{
  width:27px;height:27px;display:grid;place-items:center;flex:0 0 auto;
  color:#a26cff;filter:drop-shadow(0 0 9px rgba(130,80,255,.72))
}
.player-body .citadel-status-gem .icon{width:25px;height:25px}
.player-body .citadel-status-chevron{
  width:18px;height:24px;display:grid;place-items:center;margin-left:auto;color:#b9c5da
}
.player-body .citadel-status-chevron .icon{width:16px;height:16px}
.player-body .citadel-status small{
  color:#ba8cff;font-size:9px;letter-spacing:.12em
}
.player-body .citadel-status strong{margin-top:3px;font-size:12px;color:#fff}

.player-body .citadel-home .home-level-side{
  left:7px;right:auto;bottom:129px;width:71%;
  align-items:center;gap:16px;
}
.player-body .citadel-home .home-level-side .home-level-orb{
  flex:0 0 110px;width:110px;height:110px;
  background:radial-gradient(circle at 50% 48%,rgba(19,24,47,.98) 0 53%,rgba(7,13,29,.98) 55%);
  box-shadow:0 0 0 4px rgba(130,70,242,.16),0 0 28px rgba(112,63,255,.35),0 10px 24px rgba(0,0,0,.34)
}
.player-body .home-level-orb:before{
  inset:-5px;border-width:3px;border-top-color:#f0c27b;border-right-color:#9a64ff;border-bottom-color:#7d4cf6;
  animation:none
}
.player-body .home-level-orb:after{
  inset:3px;border-width:2px;border-left-color:#a169ff;border-bottom-color:#f2c37a;border-right-color:transparent;
  animation:none
}
.player-body .home-level-orb small{color:#d4c8e6;font-size:10px;letter-spacing:.06em}
.player-body .home-level-orb strong{
  font-family:var(--serif);font-size:48px;font-weight:500;color:white;text-shadow:none
}
.player-body .citadel-home .home-rank-copy{padding:0;text-shadow:0 2px 10px rgba(0,0,0,.8)}
.player-body .citadel-home .home-rank-copy h1{
  margin-bottom:9px;font-family:var(--serif);font-size:32px!important;font-weight:500;letter-spacing:.01em
}
.player-body .home-xp-line{position:relative;gap:9px;padding-top:8px}
.player-body .home-xp-line:before{
  content:"";position:absolute;top:0;left:0;width:130px;height:1px;
  background:linear-gradient(90deg,#a16aff,#e6c58e 35%,transparent)
}
.player-body .home-xp-line .icon{width:22px;height:22px;color:#9a63ff;filter:drop-shadow(0 0 6px rgba(144,80,255,.65))}
.player-body .citadel-home .home-xp-line strong{font-family:var(--serif);font-size:18px;font-weight:600}
.player-body .citadel-home .home-xp-track{display:none}

.player-body .citadel-home .home-passport-side{
  left:5px;right:5px;bottom:5px;width:auto;min-height:101px;
  grid-template-columns:72px minmax(0,1fr) 24px;gap:14px;padding:12px 16px;
  border:1px solid rgba(131,153,190,.7);
  border-left:4px solid #9759ff;
  border-radius:0;
  clip-path:polygon(0 7px,7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%);
  background:linear-gradient(100deg,rgba(13,29,53,.96),rgba(13,27,49,.92));
  backdrop-filter:blur(15px);
  box-shadow:0 14px 35px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.035)
}
.player-body .citadel-home .home-passport-avatar{
  width:70px;height:70px;border:1px solid #a768ff;
  box-shadow:0 0 0 3px rgba(120,75,230,.14),0 0 20px rgba(96,57,215,.26)
}
.player-body .citadel-home .home-passport-side small{color:#bca0f0;font-size:9px;letter-spacing:.12em}
.player-body .citadel-home .home-passport-side strong{margin-top:4px;font-size:21px}
.player-body .citadel-home .home-passport-side em{font-size:11px;color:#d0d1df}
.player-body .citadel-home .home-passport-side b{margin-top:5px;font-size:10px;color:#fff}
.player-body .citadel-home .home-passport-side>.icon{width:22px;color:#c4c9dc}

/* Cards */
.player-body .fantasy-panel,.player-body .tq-home-panel,.player-body .ornate-panel{
  border:1px solid var(--v720-line);
  border-radius:0;
  clip-path:polygon(0 8px,8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%);
  background:linear-gradient(115deg,var(--v720-panel),rgba(9,20,38,.91));
  box-shadow:0 13px 30px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.025)
}
.player-body .fantasy-panel:before,.player-body .tq-home-panel:before,.player-body .ornate-panel:before{
  inset:5px;border-color:rgba(115,140,180,.15);border-radius:0
}
.player-body .fantasy-panel:after,.player-body .tq-home-panel:after,.player-body .ornate-panel:after{
  background:linear-gradient(135deg,rgba(145,81,255,.08),transparent 23%,transparent 78%,rgba(231,187,112,.05))
}

.player-body .citadel-home .home-wallet{
  height:95px;grid-template-columns:1fr 1fr;
  background:linear-gradient(100deg,rgba(12,27,50,.95),rgba(10,23,43,.94));
}
.player-body .citadel-home .home-wallet article{height:62px;padding-left:20px;justify-content:flex-start}
.player-body .citadel-home .home-wallet article+article{border-left:1px solid rgba(136,153,181,.28)}
.player-body .wallet-xp-rune{
  width:54px;height:54px;border:1px solid #9d64ff;
  background:radial-gradient(circle,#6d38b5,#1c123b 66%);
  box-shadow:0 0 17px rgba(126,69,237,.36);font-size:18px
}
.player-body .citadel-home .home-wallet img{width:51px;height:51px}
.player-body .citadel-home .home-wallet small{font-size:10px;letter-spacing:.09em;color:#bfc1d4}
.player-body .citadel-home .home-wallet strong{font-family:var(--serif);font-size:25px}

/* QG quests block */
.player-body .citadel-home .home-quests{
  min-height:360px;padding-bottom:0;
  background:
    linear-gradient(110deg,rgba(11,26,48,.965),rgba(8,20,38,.94)),
    url('../assets/citadel-v2/quest-council.webp') right bottom/75% auto no-repeat;
}
.player-body .citadel-home .home-quests:before{border-left-color:rgba(147,85,255,.5)}
.player-body .citadel-home .home-panel-heading{
  min-height:104px;padding:18px 16px 12px;align-items:flex-start
}
.player-body .citadel-home .home-panel-heading h2{
  position:relative;display:flex;align-items:center;gap:11px;padding-left:0;
  font-family:var(--serif);font-size:27px;text-transform:uppercase;letter-spacing:.01em
}
.player-body .home-heading-icon{
  width:32px;height:32px;display:grid;place-items:center;flex:0 0 auto;
  color:#edc17a;filter:drop-shadow(0 0 7px rgba(232,188,116,.25))
}
.player-body .home-heading-icon .icon{width:30px;height:30px}
.player-body .citadel-home .home-panel-heading p{max-width:290px;margin:10px 0 0;font-size:11px;color:#bdc2d0}
.player-body .mission-day-score strong{font-family:var(--serif);font-size:27px}
.player-body .mission-day-score small{font-size:9px;color:#c5c9d6}
.player-body .citadel-home .home-quest-list{min-height:145px;padding:0 16px}
.player-body .citadel-home .home-empty{
  display:grid;place-items:center;min-height:138px;padding:22px;
  color:#b7b8c9;font-size:12px;border-bottom:1px solid rgba(126,147,181,.2)
}
.player-body .home-quest-cta{
  position:relative;height:86px;display:grid;place-items:center;padding:12px 44px 17px
}
.player-body .home-register-link{
  width:100%;height:48px;display:flex!important;align-items:center;justify-content:space-between!important;
  padding:0 24px!important;border:1px solid rgba(135,87,242,.88)!important;
  color:#be91ff!important;background:rgba(26,19,57,.78)!important;
  clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,14px 100%,0 50%);
  font-size:11px!important;letter-spacing:.05em
}
.player-body .home-quest-action{
  position:absolute!important;z-index:5;left:50%;top:7px;bottom:auto!important;
  width:62px;height:62px;transform:translateX(-50%)!important;
  display:grid;place-items:center;border:2px solid #c3a6ff;border-radius:50%;
  color:#c998ff;background:radial-gradient(circle,#34205d 0 45%,#11172d 70%);
  box-shadow:0 0 0 5px rgba(17,27,52,.92),0 0 17px rgba(126,64,246,.5)
}
.player-body .home-quest-action .icon{width:31px;height:31px}
.player-body .home-quest-action i{position:absolute;inset:-8px;border:1px solid rgba(137,81,255,.58);border-radius:50%}

/* Keep secondary QG content functional but visually coherent below the reference fold. */
.player-body .citadel-home .active-event-banner,
.player-body .citadel-home .home-secret,
.player-body .citadel-home .battle-card,
.player-body .citadel-home .home-ranking{background-color:rgba(8,20,38,.94)}
.player-body .citadel-home .home-secret{border-color:rgba(146,83,244,.62)}
.player-body .citadel-home .home-ranking{margin-bottom:8px}

/* Bottom navigation */
.player-body .bottom-nav{
  width:min(100%,480px);height:82px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));
  border-top:1px solid rgba(126,148,184,.4);border-radius:0;
  background:linear-gradient(180deg,rgba(7,17,33,.97),rgba(4,11,24,.995));
  box-shadow:0 -10px 26px rgba(0,0,0,.24);
}
.player-body .bottom-nav:before{
  left:0;right:auto;width:20%;background:linear-gradient(90deg,#9a60ff,transparent)
}
.player-body .nav-btn{height:68px;gap:4px;color:#b9c2da;font-size:8px}
.player-body .nav-btn .icon{width:25px;height:25px}
.player-body .nav-btn.active{color:#ecc98c;text-shadow:0 0 9px rgba(237,189,110,.24)}
.player-body .nav-btn.active .icon{filter:drop-shadow(0 0 6px rgba(233,190,113,.4))}
.player-body .nav-btn.active:after{
  content:"";width:56%;height:2px;margin-top:3px;background:linear-gradient(90deg,transparent,#9b61ff,#efc274,transparent)
}

/* Secondary pages: same visual language, existing dedicated imagery retained. */
.player-body .page-stack{gap:13px}
.player-body .quest-command,.player-body .passport-hero,.player-body .legendary-chest,
.player-body .profile-summary,.player-body .podium-stage,.player-body .battle-arena-hero{
  border-color:rgba(127,149,184,.5);
  box-shadow:0 17px 34px rgba(0,0,0,.22);
}
.player-body .quest-command{
  min-height:190px;background-image:linear-gradient(90deg,rgba(8,19,37,.94) 30%,rgba(8,19,37,.38)),var(--quest-art)
}
.player-body .passport-hero{min-height:260px}
.player-body .legendary-chest{min-height:220px}
.player-body .section-heading h2,.player-body .quest-command h2,.player-body .passport-identity h2,
.player-body .profile-summary h2{font-weight:500}
.player-body .quest-tabs{
  border-color:rgba(126,149,187,.3);border-radius:0;background:rgba(8,19,36,.92)
}
.player-body .quest-tab.active,.player-body .ranking-tab.active{
  background:linear-gradient(180deg,#7040d8,#39206f);box-shadow:inset 0 0 0 1px rgba(188,152,255,.3)
}
.player-body .mission-card,.player-body .ranking-row,.player-body .profile-action-row,
.player-body .notification-card{border-color:rgba(129,150,183,.16)}

/* Responsive fidelity */
@media(max-width:430px){
  .player-body .mobile-main{padding-inline:10px}
  .player-body .mobile-header{min-height:64px}
  .player-body .header-brand img{width:108px;height:62px}
  .player-body .home-header-wallet{min-width:70px;height:37px;padding-inline:8px}
  .player-body .mobile-app.qg-theme:after{
    min-height:900px;background-position:57% 6px;background-size:auto 575px
  }
  .player-body .citadel-home .home-progression{height:390px}
  .player-body .citadel-status{top:10px;left:2px;max-width:61%;min-height:54px;padding:8px 12px}
  .player-body .citadel-home .home-level-side{left:5px;bottom:126px;width:74%;gap:11px}
  .player-body .citadel-home .home-level-side .home-level-orb{flex-basis:96px;width:96px;height:96px}
  .player-body .home-level-orb strong{font-size:43px}
  .player-body .citadel-home .home-rank-copy h1{font-size:27px!important}
  .player-body .citadel-home .home-xp-line strong{font-size:16px}
  .player-body .citadel-home .home-passport-side{
    left:2px;right:2px;min-height:94px;grid-template-columns:64px minmax(0,1fr) 22px;padding:11px 13px
  }
  .player-body .citadel-home .home-passport-avatar{width:61px;height:61px}
  .player-body .citadel-home .home-passport-side strong{font-size:19px}
  .player-body .citadel-home .home-wallet{height:88px}
  .player-body .citadel-home .home-wallet article{padding-left:15px}
  .player-body .wallet-xp-rune{width:47px;height:47px}
  .player-body .citadel-home .home-wallet img{width:45px;height:45px}
  .player-body .citadel-home .home-wallet strong{font-size:23px}
  .player-body .citadel-home .home-quests{min-height:340px}
  .player-body .citadel-home .home-panel-heading{min-height:96px;padding:16px 13px 10px}
  .player-body .citadel-home .home-panel-heading h2{font-size:24px;gap:9px}
  .player-body .home-heading-icon{width:29px;height:29px}
  .player-body .home-heading-icon .icon{width:27px;height:27px}
}
@media(max-width:360px){
  .player-body .mobile-main{padding-inline:8px}
  .player-body .mobile-header{grid-template-columns:40px minmax(0,1fr) auto}
  .player-body .header-brand img{width:96px}
  .player-body .home-header-wallet{min-width:62px;padding-inline:6px}
  .player-body .citadel-home .home-progression{height:370px}
  .player-body .citadel-home .home-level-side .home-level-orb{flex-basis:84px;width:84px;height:84px}
  .player-body .home-level-orb strong{font-size:38px}
  .player-body .citadel-home .home-rank-copy h1{font-size:23px!important}
  .player-body .citadel-home .home-xp-line strong{font-size:14px}
  .player-body .citadel-home .home-passport-side{grid-template-columns:55px minmax(0,1fr) 18px}
  .player-body .citadel-home .home-passport-avatar{width:53px;height:53px}
  .player-body .citadel-home .home-passport-side strong{font-size:17px}
  .player-body .citadel-home .home-wallet article{padding-left:11px;gap:6px}
  .player-body .wallet-xp-rune{width:42px;height:42px}
  .player-body .citadel-home .home-wallet img{width:40px;height:40px}
  .player-body .citadel-home .home-wallet small{font-size:8px}
  .player-body .citadel-home .home-wallet strong{font-size:20px}
  .player-body .citadel-home .home-panel-heading h2{font-size:21px}
}
@media(prefers-reduced-motion:reduce){
  .player-body .mobile-app.qg-theme:after{filter:brightness(1.38) saturate(.74) contrast(.9)}
}


/* V7.20 — route-scoped world backgrounds */
.player-body .mobile-app.route-quests:not(.qg-theme),
.player-body .mobile-app.route-passport:not(.qg-theme),
.player-body .mobile-app.route-shop:not(.qg-theme),
.player-body .mobile-app.route-profile:not(.qg-theme),
.player-body .mobile-app.route-ranking:not(.qg-theme),
.player-body .mobile-app.route-notifications:not(.qg-theme),
.player-body .mobile-app.route-battle:not(.qg-theme){
  background:#091427;
}
.player-body .mobile-app.route-quests:not(.qg-theme):after,
.player-body .mobile-app.route-passport:not(.qg-theme):after,
.player-body .mobile-app.route-shop:not(.qg-theme):after,
.player-body .mobile-app.route-profile:not(.qg-theme):after,
.player-body .mobile-app.route-ranking:not(.qg-theme):after,
.player-body .mobile-app.route-notifications:not(.qg-theme):after,
.player-body .mobile-app.route-battle:not(.qg-theme):after{
  content:"";position:absolute;z-index:0;inset:0 0 auto;height:440px;pointer-events:none;
  background-size:cover;background-position:center top;background-repeat:no-repeat;
  opacity:.72;filter:brightness(1.35) saturate(.72) contrast(.9);
  -webkit-mask-image:linear-gradient(#000 0,#000 52%,transparent 100%);
  mask-image:linear-gradient(#000 0,#000 52%,transparent 100%);
}
.player-body .mobile-app.route-quests:after{background-image:linear-gradient(180deg,rgba(8,22,42,.08),rgba(8,22,42,.38)),url('../assets/citadel-v2/quest-council.webp')}
.player-body .mobile-app.route-passport:after{background-image:linear-gradient(180deg,rgba(8,22,42,.08),rgba(8,22,42,.38)),url('../assets/citadel-v2/hall-of-heroes.webp')}
.player-body .mobile-app.route-shop:after{background-image:linear-gradient(180deg,rgba(8,22,42,.08),rgba(8,22,42,.42)),url('../assets/citadel-v2/chest-legendary.webp')}
.player-body .mobile-app.route-profile:after,
.player-body .mobile-app.route-notifications:after{background-image:linear-gradient(180deg,rgba(8,22,42,.06),rgba(8,22,42,.44)),url('../assets/citadel/citadel-qg.webp')}
.player-body .mobile-app.route-ranking:after{background-image:linear-gradient(180deg,rgba(8,22,42,.06),rgba(8,22,42,.4)),url('../assets/citadel-v2/hall-of-honor.webp')}
.player-body .mobile-app.route-battle:after{background-image:linear-gradient(180deg,rgba(8,22,42,.08),rgba(8,22,42,.42)),url('../assets/citadel/citadel-arena.webp')}
.player-body .mobile-app.route-quests .mobile-main,
.player-body .mobile-app.route-passport .mobile-main,
.player-body .mobile-app.route-shop .mobile-main,
.player-body .mobile-app.route-profile .mobile-main,
.player-body .mobile-app.route-ranking .mobile-main,
.player-body .mobile-app.route-notifications .mobile-main,
.player-body .mobile-app.route-battle .mobile-main{position:relative;z-index:2}

/* Secondary-page hierarchy aligned with the approved QG language */
.player-body .route-quests .quest-page,
.player-body .route-passport .passport-page,
.player-body .route-shop .chest-page,
.player-body .route-profile .profile-page,
.player-body .route-ranking .ranking-page,
.player-body .route-notifications .notifications-page{padding-top:4px}

.player-body .route-quests .quest-command{
  min-height:205px;padding:105px 16px 17px;
  grid-template-columns:minmax(0,1fr) 90px;
  border-left:3px solid #925cff;
  background-image:linear-gradient(180deg,rgba(7,19,38,.03),rgba(8,19,37,.7) 54%,rgba(8,19,37,.97) 100%),var(--quest-art);
  background-size:cover;background-position:center 48%;
}
.player-body .route-quests .quest-command h2{font-size:25px}
.player-body .route-quests .quest-command p{max-width:270px;color:#d1d4df;font-size:10px}
.player-body .route-quests .quest-command-stats article{
  border-color:rgba(139,159,194,.42);border-radius:0;background:rgba(9,20,39,.86)
}
.player-body .route-quests .ranking-tabs{
  min-height:48px;padding:4px;border-radius:0;border-color:rgba(135,157,191,.35);
  background:rgba(8,19,37,.92);backdrop-filter:blur(10px)
}
.player-body .route-quests .ranking-tab{min-height:38px;border-radius:0;color:#c0c7d8}
.player-body .route-quests .ranking-tab.active{
  color:#fff;background:linear-gradient(180deg,#7d4de2,#492a8b);
  box-shadow:inset 0 0 0 1px rgba(188,153,255,.38),0 0 16px rgba(113,62,225,.18)
}
.player-body .route-quests .mission-card{padding:14px 6px;border-top-color:rgba(132,151,181,.2)}
.player-body .route-quests .mission-title h3{font-size:16px}
.player-body .route-quests .mission-title small{color:#b790ee}
.player-body .route-quests .mission-action,
.player-body .route-shop .open-chest-btn{
  border-color:#8155ee;color:white;background:linear-gradient(180deg,#7247db,#3d2477);border-radius:6px
}

.player-body .route-passport .passport-hero{
  min-height:305px;padding:138px 16px 18px;
  border-left:3px solid #935cff;
  background-image:linear-gradient(180deg,rgba(7,18,35,.02),rgba(8,18,36,.48) 42%,rgba(8,19,37,.97) 76%),var(--passport-hall);
  background-size:cover;background-position:center top;
}
.player-body .route-passport .passport-aura{opacity:.35}
.player-body .route-passport .passport-identity h2{font-size:26px}
.player-body .route-passport .passport-identity p{color:#c7a0ff}
.player-body .route-passport .passport-status{border-color:rgba(134,153,183,.3)}
.player-body .route-passport .passport-status article+article{border-left-color:rgba(134,153,183,.3)}
.player-body .route-passport .passport-next-reward,
.player-body .route-passport .rank-journey,
.player-body .route-passport .collection-panel,
.player-body .route-passport .passport-chronicle,
.player-body .route-passport .customization-panel{background:linear-gradient(115deg,rgba(11,25,47,.95),rgba(8,19,36,.94))}
.player-body .route-passport .passport-stat{background:linear-gradient(145deg,rgba(14,29,53,.96),rgba(8,19,36,.96))}

.player-body .route-shop .legendary-chest{
  min-height:285px;padding:165px 18px 20px;
  border-left:3px solid #935cff;
  background-image:linear-gradient(180deg,rgba(5,15,29,.02),rgba(7,18,35,.43) 45%,rgba(8,19,37,.98) 78%),var(--chest-art);
  background-size:cover;background-position:center 46%;
}
.player-body .route-shop .legendary-copy h2{font-size:28px}
.player-body .route-shop .legendary-copy p{max-width:320px;color:#d1d4de}
.player-body .route-shop .legendary-glow{right:20%;top:38px;width:190px;height:190px;opacity:.58}
.player-body .route-shop .chest-card{
  border-color:rgba(134,156,191,.42);border-radius:0;background:linear-gradient(145deg,#0c1a31,#081427)
}
.player-body .route-shop .chest-art{background:radial-gradient(circle at 50% 45%,rgba(129,77,238,.24),transparent 52%)}
.player-body .route-shop .chest-event{background:linear-gradient(115deg,rgba(14,28,51,.96),rgba(9,20,38,.96))}

.player-body .route-profile .profile-summary{
  min-height:205px;padding:92px 15px 17px;
  border-left:3px solid #935cff;
}
.player-body .route-profile .profile-realm{opacity:.95;filter:brightness(1.45) saturate(.72)}
.player-body .route-profile .profile-realm:after{background:linear-gradient(180deg,rgba(7,18,35,.04),rgba(8,19,37,.95) 78%)}
.player-body .route-profile .profile-summary-copy h2{font-size:24px}
.player-body .route-profile .settings-panel,
.player-body .route-profile .account-panel,
.player-body .route-profile .rules-panel{background:linear-gradient(115deg,rgba(11,25,47,.95),rgba(8,19,36,.94))}
.player-body .route-profile .setting-row>span,
.player-body .route-profile .profile-action-row>span{
  border:1px solid rgba(126,97,236,.25);border-radius:7px;color:#ad8aff;background:rgba(70,49,132,.24)
}
.player-body .route-profile .profile-logout{border-radius:0}

.player-body .route-ranking .ranking-personal{
  border-color:rgba(139,158,190,.48);border-left:3px solid #e9be77;
  background:linear-gradient(100deg,rgba(22,35,60,.96),rgba(8,19,37,.95))
}
.player-body .route-ranking .podium-stage{
  border-left:3px solid #935cff;
  filter:none
}
.player-body .route-ranking .ranking-row.current{
  border-radius:0;background:linear-gradient(90deg,rgba(96,60,187,.32),rgba(10,21,39,.2));
  box-shadow:inset 3px 0 0 #9b65ff
}
.player-body .route-notifications .notification-center{background:linear-gradient(115deg,rgba(11,25,47,.96),rgba(8,19,36,.95))}

/* Side drawer — opened by the burger icon */
.player-body .player-menu-overlay{
  align-items:stretch;justify-content:flex-start;padding:0;background:rgba(1,7,16,.62);backdrop-filter:blur(8px)
}
.player-body .player-menu-overlay .dialog{
  align-self:stretch;width:min(340px,84vw);max-width:none;max-height:none;height:100dvh;margin:0;padding:0;
  border:0;border-right:1px solid rgba(131,153,190,.48);border-radius:0;
  background:
    linear-gradient(180deg,rgba(9,22,41,.9),rgba(7,17,33,.98)),
    url('../assets/citadel/citadel-qg.webp') center top/auto 320px no-repeat;
  box-shadow:22px 0 58px rgba(0,0,0,.46);
  transform:translateX(-24px);overflow:hidden
}
.player-body .player-menu-overlay.open .dialog{transform:none}
.player-body .player-drawer{min-height:100%;display:flex;flex-direction:column;padding:calc(22px + env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(8,20,38,.22),rgba(8,20,38,.94) 29%,rgba(6,15,30,.99))}
.player-body .player-drawer-head{display:grid;grid-template-columns:48px minmax(0,1fr) 38px;align-items:center;gap:11px;padding:10px 0 18px;border-bottom:1px solid rgba(132,152,183,.26)}
.player-body .player-drawer-head .ranking-avatar{width:46px;height:46px}
.player-body .player-drawer-head strong,.player-body .player-drawer-head small,.player-body .player-drawer-head span{display:block}
.player-body .player-drawer-head strong{font-family:var(--serif);font-size:18px}
.player-body .player-drawer-head small{margin-top:2px;color:#c1a1f4;font-size:9px}
.player-body .player-drawer-head span{margin-top:4px;color:#adb7ca;font-size:8px}
.player-body .player-drawer-head button{width:38px;height:38px;display:grid;place-items:center;border:0;color:#d8deeb;background:transparent}
.player-body .player-drawer-head button .icon{width:20px;height:20px}
.player-body .player-drawer-nav{display:grid;padding-top:13px}
.player-body .player-drawer-nav button{
  min-height:54px;display:grid;grid-template-columns:32px 1fr 18px;align-items:center;gap:10px;
  padding:0 10px;border:0;border-bottom:1px solid rgba(130,149,179,.17);color:#d7ddea;background:transparent;text-align:left
}
.player-body .player-drawer-nav button>.icon:first-child{width:21px;height:21px;color:#b2a0ed}
.player-body .player-drawer-nav button>.icon:last-child{width:14px;height:14px;color:#8998b1}
.player-body .player-drawer-nav button span{font-size:11px}
.player-body .player-drawer-nav button.active{color:#f1ce8f;background:linear-gradient(90deg,rgba(128,78,230,.18),transparent);box-shadow:inset 3px 0 #9b60ff}
.player-body .player-drawer-nav button.active>.icon:first-child{color:#efc77e}
.player-body .player-drawer-foot{margin-top:auto;padding-top:15px;border-top:1px solid rgba(130,149,179,.2)}
.player-body .player-drawer-foot span,.player-body .player-drawer-foot small{display:block}
.player-body .player-drawer-foot span{font-family:var(--serif);font-size:14px;color:#e9c789}
.player-body .player-drawer-foot small{margin-top:4px;color:#8190a8;font-size:8px}

@media(max-width:390px){
  .player-body .route-quests .quest-command{padding-top:116px}
  .player-body .route-passport .passport-hero{padding-top:145px}
  .player-body .route-shop .legendary-chest{padding-top:170px}
}


/* V7.20 — calibration mobile pixel-fit sur la maquette 941×1671 */
@media(max-width:430px){
  .player-body .mobile-main{padding-inline:18px;padding-bottom:calc(86px + env(safe-area-inset-bottom))}
  .player-body .mobile-header{min-height:64px;margin-bottom:0}
  .player-body .header-brand{height:56px}
  .player-body .header-brand img{width:92px;height:56px}
  .player-body .header-menu,.player-body .header-bell{width:40px;height:40px}
  .player-body .header-menu .icon,.player-body .header-bell .icon{width:25px;height:25px}
  .player-body .home-header-wallet{min-width:64px;height:36px;padding-inline:8px;font-size:13px}
  .player-body .header-crystal{width:23px;height:23px}
  .player-body .header-crystal .icon{width:22px;height:22px}

  .player-body .mobile-app.qg-theme:after{
    min-height:710px;background-position:57% 0;background-size:auto 505px
  }

  .player-body .citadel-home{gap:10px}
  .player-body .citadel-home .home-progression{height:322px}
  .player-body .citadel-status{
    top:8px;left:0;max-width:66%;min-height:48px;padding:6px 11px;
    clip-path:polygon(0 0,91% 0,100% 29%,100% 100%,0 100%)
  }
  .player-body .citadel-status-gem{width:23px;height:23px}
  .player-body .citadel-status-gem .icon{width:22px;height:22px}
  .player-body .citadel-status small{font-size:8px}
  .player-body .citadel-status strong{font-size:10px}
  .player-body .citadel-status-chevron{width:14px}

  .player-body .citadel-home .home-level-side{
    left:2px;bottom:94px;width:72%;gap:10px
  }
  .player-body .citadel-home .home-level-side .home-level-orb{
    flex-basis:88px;width:88px;height:88px
  }
  .player-body .home-level-orb small{font-size:9px}
  .player-body .home-level-orb strong{font-size:40px}
  .player-body .citadel-home .home-rank-copy h1{font-size:24px!important;margin-bottom:6px}
  .player-body .home-xp-line{gap:7px;padding-top:6px}
  .player-body .home-xp-line:before{width:112px}
  .player-body .citadel-home .home-xp-line strong{font-size:14px}

  .player-body .citadel-home .home-passport-side{
    left:0;right:0;bottom:0;min-height:82px;
    grid-template-columns:55px minmax(0,1fr) 18px;gap:10px;padding:9px 12px
  }
  .player-body .citadel-home .home-passport-avatar{width:53px;height:53px}
  .player-body .citadel-home .home-passport-side small{font-size:8px}
  .player-body .citadel-home .home-passport-side strong{font-size:17px}
  .player-body .citadel-home .home-passport-side em{font-size:9px}
  .player-body .citadel-home .home-passport-side b{font-size:8px}

  .player-body .citadel-home .home-wallet{height:66px}
  .player-body .citadel-home .home-wallet article{height:50px;padding-left:13px;gap:7px}
  .player-body .wallet-xp-rune{width:40px;height:40px;font-size:14px}
  .player-body .citadel-home .home-wallet img{width:39px;height:39px}
  .player-body .citadel-home .home-wallet small{font-size:8px}
  .player-body .citadel-home .home-wallet strong{font-size:19px}

  .player-body .citadel-home .home-quests{min-height:184px}
  .player-body .citadel-home .home-panel-heading{min-height:70px;padding:11px 12px 8px}
  .player-body .citadel-home .home-panel-heading h2{font-size:21px;gap:8px}
  .player-body .home-heading-icon{width:27px;height:27px}
  .player-body .home-heading-icon .icon{width:25px;height:25px}
  .player-body .citadel-home .home-panel-heading p{max-width:255px;margin-top:5px;font-size:9px}
  .player-body .mission-day-score{min-width:62px}
  .player-body .mission-day-score strong{font-size:21px}
  .player-body .mission-day-score small{font-size:7px}
  .player-body .citadel-home .home-quest-list{min-height:58px;padding:0 12px}
  .player-body .citadel-home .home-empty{min-height:58px;padding:12px;font-size:10px}
  .player-body .home-quest-cta{height:54px;padding:4px 28px 8px}
  .player-body .home-register-link{height:38px;padding:0 18px!important;font-size:9px!important}
  .player-body .home-quest-action{top:0;width:50px;height:50px}
  .player-body .home-quest-action .icon{width:25px;height:25px}

  .player-body .bottom-nav{height:80px}
  .player-body .nav-btn{height:64px}
}

@media(max-width:370px){
  .player-body .mobile-main{padding-inline:12px}
  .player-body .citadel-home .home-progression{height:314px}
  .player-body .citadel-home .home-level-side{bottom:91px}
  .player-body .citadel-home .home-level-side .home-level-orb{flex-basis:80px;width:80px;height:80px}
  .player-body .home-level-orb strong{font-size:37px}
  .player-body .citadel-home .home-rank-copy h1{font-size:22px!important}
  .player-body .citadel-home .home-passport-side{min-height:78px;grid-template-columns:50px minmax(0,1fr) 17px}
  .player-body .citadel-home .home-passport-avatar{width:48px;height:48px}
  .player-body .citadel-home .home-passport-side strong{font-size:15px}
}

/* V7.20 header simplification: sync remains functional via automatic background sync. */
.player-body .player-sync{display:none!important}


/* V7.20 — final fidelity pass */
.player-body .tq-brand-v720{
  position:relative;height:62px;display:grid;place-items:center;align-content:center;
  grid-template-rows:10px 31px 5px;min-width:112px;line-height:1;
}
.player-body .tq-brand-v720 .tq-brand-gem{
  position:absolute;top:-2px;left:50%;transform:translateX(-50%);
  width:18px;height:18px;display:grid;place-items:center;color:#a66cff;
  filter:drop-shadow(0 0 7px rgba(151,79,255,.62));
}
.player-body .tq-brand-v720 .tq-brand-gem .icon{width:18px;height:18px}
.player-body .tq-brand-v720 .tq-brand-the{
  align-self:end;margin-top:8px;color:#e8c98f;font-family:var(--serif);
  font-size:9px;font-weight:700;letter-spacing:.18em;text-shadow:0 1px 5px rgba(0,0,0,.5)
}
.player-body .tq-brand-v720 strong{
  margin-top:-1px;color:#efd099;font-family:var(--serif);font-size:27px;font-weight:600;
  letter-spacing:.015em;text-shadow:0 1px 0 #6b4d29,0 2px 9px rgba(0,0,0,.42)
}
.player-body .tq-brand-v720 i{
  width:52px;height:1px;margin-top:1px;background:linear-gradient(90deg,transparent,#d9ad70 20%,#9a63ff 50%,#d9ad70 80%,transparent)
}

/* Push the old twilight art toward the brighter approved world while keeping contrast under UI. */
.player-body .mobile-app.qg-theme:after{
  background:
    linear-gradient(180deg,rgba(153,190,225,.24) 0,rgba(255,225,183,.16) 27%,rgba(34,55,78,.02) 47%,rgba(7,17,31,.36) 75%,#091528 97%),
    url('../assets/citadel/citadel-qg.webp') 57% 0/auto 610px no-repeat;
  background-blend-mode:screen,normal;
  filter:brightness(1.48) saturate(.64) contrast(.86);
}
.player-body .mobile-app.qg-theme:before{
  filter:drop-shadow(-12px 18px 18px rgba(0,0,0,.18)) brightness(1.04) saturate(.9);
}

/* The quest card in the approved design carries a faint continuation of the citadel, not a new scene. */
.player-body .citadel-home .home-quests{
  background:
    linear-gradient(110deg,rgba(11,26,48,.97),rgba(8,20,38,.92)),
    url('../assets/citadel/citadel-qg.webp') 67% 69%/auto 270px no-repeat;
  background-blend-mode:normal,luminosity;
}
.player-body .citadel-home .home-quests:after{
  background:
    linear-gradient(135deg,rgba(142,80,255,.07),transparent 24%,transparent 78%,rgba(231,187,112,.05)),
    linear-gradient(90deg,transparent 56%,rgba(8,18,35,.22));
}

/* Real quest rows remain compact so a populated day still feels like the reference. */
.player-body .citadel-home .home-quest-row{
  min-height:55px;grid-template-columns:38px minmax(0,1fr) 78px;gap:8px;padding:6px 0;
}
.player-body .citadel-home .home-quest-art,
.player-body .citadel-home .home-quest-art img{width:36px;height:36px}
.player-body .citadel-home .home-quest-name{margin-bottom:4px;font-size:10px}
.player-body .citadel-home .home-quest-progress-line{grid-template-columns:25px 1fr;gap:5px}
.player-body .citadel-home .home-quest-progress-line b{font-size:8px}
.player-body .citadel-home .home-quest-side{gap:3px}
.player-body .citadel-home .home-quest-reward{gap:4px}
.player-body .citadel-home .home-quest-reward strong{font-size:8px}
.player-body .citadel-home .home-quest-reward span{font-size:7px}
.player-body .citadel-home .quest-quick-add{min-width:72px;min-height:25px;font-size:7px;border-radius:4px}

/* Authentication inherits the new lighter citadel language. */
.player-body .citadel-login{
  background-color:#091529;
  background-image:
    linear-gradient(180deg,rgba(121,165,208,.1) 0,rgba(8,18,34,.18) 40%,rgba(6,15,29,.75) 68%,#06101f 100%),
    var(--login-gate);
  background-position:center 35%;
  filter:none;
}
.player-body .citadel-login:before{
  background:radial-gradient(circle at 50% 34%,rgba(244,205,143,.08),transparent 24%,rgba(4,11,23,.16) 55%,rgba(3,9,20,.62) 100%)
}
.player-body .citadel-login .auth-card{
  border:1px solid rgba(139,158,189,.62);border-radius:0;
  clip-path:polygon(0 10px,10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%);
  background:linear-gradient(145deg,rgba(12,28,51,.94),rgba(7,18,35,.96));
  box-shadow:0 24px 60px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.04)
}
.player-body .citadel-login .auth-logo{filter:brightness(1.15) saturate(.8)}
.player-body .citadel-login .auth-oath{color:#ecd09b;font-size:21px}
.player-body .citadel-login .input-wrap{
  min-height:49px;border-color:rgba(132,153,188,.42);border-radius:5px;background:rgba(7,17,33,.76)
}
.player-body .citadel-login .input-wrap:focus-within{
  border-color:#9164f3;box-shadow:0 0 0 3px rgba(139,86,255,.12)
}
.player-body .citadel-login .auth-enter{
  border-color:#9e71ff;background:linear-gradient(180deg,#7650d7,#422977);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 8px 20px rgba(59,29,111,.24)
}
.player-body .citadel-login .auth-live{
  border-color:rgba(126,224,178,.3);background:rgba(19,93,66,.16)
}

/* Touch/focus quality before device QA. */
.player-body button:focus-visible,
.player-body a:focus-visible,
.player-body input:focus-visible,
.player-body select:focus-visible{
  outline:2px solid #b28aff;outline-offset:2px
}
.player-body .nav-btn,.player-body .header-menu,.player-body .header-bell,
.player-body .home-passport-side,.player-body .home-quest-action{touch-action:manipulation}
@media(hover:hover) and (pointer:fine){
  .player-body .home-passport-side:hover,
  .player-body .home-register-link:hover,
  .player-body .player-drawer-nav button:hover{filter:brightness(1.08)}
}

/* Extra-small and tall screens: preserve the reference hierarchy rather than squeezing type. */
@media(max-width:340px){
  .player-body .mobile-main{padding-inline:8px}
  .player-body .citadel-status{max-width:70%}
  .player-body .citadel-home .home-level-side{width:76%}
  .player-body .citadel-home .home-wallet article{padding-left:8px}
  .player-body .tq-brand-v720 strong{font-size:24px}
}
@media(min-height:820px) and (max-width:430px){
  .player-body .mobile-app.qg-theme:after{background-size:auto 535px}
}


/* V7.20 — interaction surfaces use the same approved violet/gold language */
.player-body .primary-btn{
  border-color:#9569f5;color:#fff;background:linear-gradient(180deg,#7550d5,#422a78);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 8px 22px rgba(56,29,105,.22)
}
.player-body .ghost-btn{
  border-color:rgba(135,157,190,.4);color:#d9dfeb;background:rgba(10,24,44,.72)
}
.player-body .text-btn{color:#b991ff}
.player-body .declaration-overlay{
  background:rgba(3,10,21,.76);backdrop-filter:blur(12px)
}
.player-body .declaration-overlay .fantasy-sheet{
  border-color:rgba(133,155,190,.6);border-radius:14px 14px 8px 8px;
  background:
    radial-gradient(circle at 88% 0,rgba(144,84,246,.16),transparent 27%),
    linear-gradient(180deg,#0c1c34 0,#08162a 62%,#06111f 100%);
  box-shadow:0 -18px 64px rgba(0,0,0,.56),inset 0 1px rgba(255,255,255,.04)
}
.player-body .declaration-overlay .fantasy-sheet:before{
  border-color:rgba(126,149,184,.14)
}
.player-body .declaration-premium-header{
  border-bottom-color:rgba(127,149,183,.2);
  background:linear-gradient(180deg,rgba(12,28,51,.98),rgba(12,28,51,.89))
}
.player-body .declaration-premium-header h2{font-weight:500}
.player-body .declaration-section-title{color:#e7c383}
.player-body .declaration-section-title:before{color:#9663f0}
.player-body .declaration-section-title i{background:linear-gradient(90deg,rgba(151,101,245,.42),transparent)}
.player-body .declaration-action-card{
  border-color:rgba(129,151,186,.28);border-radius:7px;
  background:linear-gradient(145deg,rgba(15,31,55,.96),rgba(8,19,37,.97))
}
.player-body .declaration-action-card.is-selected{
  border-color:#9f73f6;
  background:linear-gradient(145deg,rgba(64,42,117,.82),rgba(20,27,53,.94));
  box-shadow:0 0 0 1px rgba(178,138,255,.1),0 0 22px rgba(117,73,217,.14)
}
.player-body .declaration-action-icon{
  border-color:rgba(144,103,237,.35);border-radius:7px;color:#b894ff;
  background:linear-gradient(145deg,rgba(79,53,142,.48),rgba(27,29,61,.62))
}
.player-body .declaration-action-card.is-selected .declaration-action-icon{
  color:#f0cb89;border-color:rgba(233,190,120,.48);
  background:linear-gradient(145deg,rgba(115,80,29,.34),rgba(60,40,18,.42))
}
.player-body .declaration-check{
  border-color:#d9b777;color:#1b1425;background:#e8c47f;
  box-shadow:0 0 12px rgba(229,188,116,.32)
}
.player-body .declaration-action-copy small b{color:#b997ff}
.player-body .declaration-action-copy small em{color:#e9c484}
.player-body .declaration-other{
  border-color:rgba(128,151,187,.24);border-radius:7px;background:rgba(8,20,39,.52)
}
.player-body .declaration-submit{
  border-color:#9d72f6;border-radius:7px;
  background:linear-gradient(180deg,#7650d5,#432978);
  box-shadow:inset 0 1px rgba(255,255,255,.16),0 8px 25px rgba(64,35,120,.3)
}
.player-body .declaration-submit>span .icon{color:#e9c484}
.player-body .declaration-submit>small{color:#c7b7df}

/* Rewards and chest reveals must feel like the same application, not the previous orange theme. */
.player-body .reward-celebration,
.player-body .chest-opening{background:rgba(3,10,21,.88);backdrop-filter:blur(10px)}
.player-body .celebration-card,
.player-body .chest-reveal{
  border-color:rgba(139,160,194,.58);border-radius:8px;
  background:
    radial-gradient(circle at 50% 12%,rgba(131,80,231,.24),transparent 36%),
    linear-gradient(180deg,#0d1d35,#071428);
  box-shadow:0 0 60px rgba(65,38,120,.28)
}
.player-body .celebration-card small{color:#bc9af4}
.player-body .celebration-card strong{text-shadow:0 0 13px rgba(143,88,239,.55)}
.player-body .celebration-card button,
.player-body .chest-reveal button{
  border-color:#9c70f3;border-radius:6px;background:linear-gradient(180deg,#7752d5,#442a79)
}
.player-body .chest-runes{
  border-color:rgba(154,99,247,.42);box-shadow:0 0 70px rgba(107,66,204,.3)
}
.player-body .chest-runes:before{border-color:rgba(233,190,120,.34)}
.player-body .chest-runes:after{border-color:rgba(166,113,255,.42)}


/* V7.20 — remove remaining legacy orange accents from player chrome */
.player-body .challenge-status{
  border-color:rgba(130,153,189,.45);
  background:linear-gradient(110deg,rgba(12,27,49,.95),rgba(8,19,36,.95))
}
.player-body .challenge-status.open{
  border-color:rgba(93,210,166,.34);
  background:radial-gradient(circle at 90% 20%,rgba(42,133,101,.17),transparent 38%),linear-gradient(110deg,rgba(12,27,49,.96),rgba(8,19,36,.96))
}
.player-body .challenge-status.locked{
  border-color:rgba(145,101,242,.38);
  background:radial-gradient(circle at 90% 20%,rgba(112,69,213,.16),transparent 38%),linear-gradient(110deg,rgba(12,27,49,.96),rgba(8,19,36,.96))
}
.player-body .challenge-status.locked>.icon{color:#ae89ff}
.player-body .app-update-banner{
  border-color:rgba(148,111,239,.58);border-radius:8px;
  background:linear-gradient(135deg,#111d34,#081426);
  box-shadow:0 16px 44px #0009,0 0 24px rgba(111,67,213,.14)
}
.player-body .app-update-banner button{
  border-color:#9c70f3;border-radius:6px;background:linear-gradient(#7752d5,#442a79)
}
.player-body .mission-linked-action{
  border-color:rgba(134,101,224,.28);background:rgba(60,42,116,.18);color:#cfc7de
}
.player-body .mission-linked-action .icon{color:#b693ff}
.player-body .quest-direct-add,.player-body .quest-quick-add{
  border-color:rgba(145,105,237,.48);color:#f3ecff;background:linear-gradient(180deg,rgba(103,67,190,.72),rgba(53,35,100,.82))
}


/* V7.20 — optical type/height calibration from the approved 941×1671 reference */
.player-body .citadel-home .home-rank-copy h1{text-transform:uppercase}
.player-body .citadel-home .home-passport-side small,
.player-body .citadel-home .home-wallet small{text-transform:uppercase}
@media(max-width:430px){
  .player-body .citadel-home .home-rank-copy h1{font-size:29px!important;line-height:1}
  .player-body .citadel-home .home-xp-line strong{font-size:16px}
  .player-body .citadel-home .home-quests{min-height:164px}
  .player-body .citadel-home .home-panel-heading{min-height:62px;padding-top:9px;padding-bottom:7px}
  .player-body .citadel-home .home-quest-list{min-height:52px}
  .player-body .citadel-home .home-empty{min-height:52px;padding:10px}
  .player-body .home-quest-cta{height:50px;padding-top:3px;padding-bottom:6px}
  .player-body .home-register-link{height:36px}
  .player-body .home-quest-action{width:48px;height:48px}
}
@media(max-width:370px){
  .player-body .citadel-home .home-rank-copy h1{font-size:26px!important}
  .player-body .citadel-home .home-xp-line strong{font-size:15px}
}


/* V7.20 — approved bright QG world asset (final source instead of color-corrected V7.19 artwork). */
.player-body .mobile-app.qg-theme:after{
  min-height:720px;
  background:
    linear-gradient(180deg,rgba(8,20,38,.02) 0,rgba(8,20,38,.01) 40%,rgba(8,20,38,.18) 70%,#091528 98%),
    url('../assets/citadel-v3/qg-world-v720.webp') center 0/auto 520px no-repeat;
  background-blend-mode:normal,normal;
  filter:none;
}
.player-body .citadel-home .home-quests{
  background:
    linear-gradient(110deg,rgba(11,26,48,.965),rgba(8,20,38,.91)),
    url('../assets/citadel-v3/qg-world-v720.webp') 54% 83%/auto 280px no-repeat;
  background-blend-mode:normal,luminosity;
}
@media(max-width:430px){
  .player-body .mobile-app.qg-theme:after{min-height:680px;background-size:auto 475px;background-position:center 0}
}
@media(max-width:370px){
  .player-body .mobile-app.qg-theme:after{background-size:auto 455px}
}
@media(min-height:820px) and (max-width:430px){
  .player-body .mobile-app.qg-theme:after{background-size:auto 495px}
}


/* V7.20 final visual pass — make the approved bright citadel the shared world. */
.player-body .mobile-app.route-quests:not(.qg-theme):after,
.player-body .mobile-app.route-passport:not(.qg-theme):after,
.player-body .mobile-app.route-shop:not(.qg-theme):after,
.player-body .mobile-app.route-profile:not(.qg-theme):after,
.player-body .mobile-app.route-ranking:not(.qg-theme):after,
.player-body .mobile-app.route-notifications:not(.qg-theme):after,
.player-body .mobile-app.route-battle:not(.qg-theme):after{
  height:520px;
  background-image:
    linear-gradient(180deg,rgba(8,20,38,.02),rgba(8,20,38,.16) 62%,#091528 100%),
    url('../assets/citadel-v3/qg-world-v720.webp');
  background-size:auto 520px;
  background-position:center top;
  opacity:1;
  filter:none;
  -webkit-mask-image:linear-gradient(#000 0,#000 66%,transparent 100%);
  mask-image:linear-gradient(#000 0,#000 66%,transparent 100%);
}

/* Secondary heroes now inherit the same luminous world instead of the old gothic/night palette. */
.player-body .route-quests .quest-command{
  background-image:
    linear-gradient(180deg,rgba(7,18,35,.02),rgba(8,19,37,.45) 56%,rgba(8,19,37,.96) 100%),
    url('../assets/citadel-v3/qg-world-v720.webp')!important;
  background-size:cover!important;
  background-position:center 36%!important;
}
.player-body .route-passport .passport-hero{
  background-image:
    linear-gradient(180deg,rgba(7,18,35,.01),rgba(8,19,37,.42) 54%,rgba(8,19,37,.97) 100%),
    url('../assets/citadel-v3/qg-world-v720.webp')!important;
  background-size:cover!important;
  background-position:center 31%!important;
}
.player-body .route-profile .profile-realm{
  background-image:url('../assets/citadel-v3/qg-world-v720.webp')!important;
  background-size:cover!important;
  background-position:center 38%!important;
  opacity:1!important;
  filter:none!important;
}
.player-body .route-profile .profile-realm:after{
  background:linear-gradient(180deg,rgba(7,18,35,.04),rgba(8,19,37,.24) 44%,rgba(8,19,37,.95) 100%)!important;
}
.player-body .route-ranking .podium-stage{
  background-image:
    linear-gradient(180deg,rgba(7,18,35,.04),rgba(8,19,37,.28) 54%,rgba(8,19,37,.94) 100%),
    url('../assets/citadel-v3/qg-world-v720.webp')!important;
  background-position:center 38%!important;
}

/* Reduce purple-room dominance on Coffres while keeping the chest artwork as the focal object. */
.player-body .route-shop .legendary-chest{
  background-color:#0a172c;
  background-blend-mode:normal;
  box-shadow:0 14px 34px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.03);
}
.player-body .route-shop .legendary-chest:after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(130,170,206,.08),transparent 42%,rgba(8,19,37,.14));
}

/* Home final proportions: closer to the approved 941×1671 reference, without over-compressing rank/level. */
@media(max-width:430px){
  .player-body .header-brand img{width:112px;height:62px}
  .player-body .citadel-home .home-progression{height:340px}
  .player-body .citadel-home .home-level-side{bottom:98px;width:74%;gap:12px}
  .player-body .citadel-home .home-level-side .home-level-orb{flex-basis:100px;width:100px;height:100px}
  .player-body .home-level-orb strong{font-size:44px}
  .player-body .citadel-home .home-rank-copy h1{font-size:28px!important}
  .player-body .citadel-home .home-xp-line strong{font-size:15px}
  .player-body .citadel-home .home-passport-side{min-height:86px;grid-template-columns:58px minmax(0,1fr) 19px}
  .player-body .citadel-home .home-passport-avatar{width:56px;height:56px}
  .player-body .citadel-home .home-passport-side strong{font-size:18px}
  .player-body .citadel-home .home-wallet{height:72px}
  .player-body .wallet-xp-rune{width:43px;height:43px}
  .player-body .citadel-home .home-wallet img{width:42px;height:42px}
  .player-body .citadel-home .home-wallet strong{font-size:20px}
}
@media(max-width:390px){
  .player-body .header-brand img{width:106px;height:59px}
  .player-body .citadel-home .home-progression{height:330px}
  .player-body .citadel-home .home-level-side{bottom:96px}
  .player-body .citadel-home .home-level-side .home-level-orb{flex-basis:94px;width:94px;height:94px}
  .player-body .home-level-orb strong{font-size:42px}
  .player-body .citadel-home .home-rank-copy h1{font-size:26px!important}
}


/* V7.20 — declaration sheet brought into the approved navy / violet / gold system. */
.player-body .declaration-overlay{background:rgba(2,8,18,.68);backdrop-filter:blur(9px)}
.player-body .declaration-overlay .bottom-sheet{
  width:min(430px,calc(100% - 12px));max-height:min(88dvh,760px);
  border:1px solid rgba(138,157,190,.58);border-radius:0;
  clip-path:polygon(0 10px,10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%);
  background:linear-gradient(180deg,rgba(12,28,51,.985),rgba(6,16,31,.995));
  box-shadow:0 24px 80px rgba(0,0,0,.52),inset 0 1px rgba(255,255,255,.04)
}
.player-body .declaration-overlay .fantasy-sheet{padding:10px 14px calc(16px + env(safe-area-inset-bottom))}
.player-body .declaration-overlay .sheet-handle{
  width:46px;height:3px;margin-bottom:12px;background:linear-gradient(90deg,#9c63ff,#edbe72);opacity:.8
}
.player-body .declaration-premium-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid rgba(129,149,181,.22)}
.player-body .declaration-premium-header h2{margin:0;font-family:var(--serif);font-size:23px;font-weight:500}
.player-body .declaration-premium-header small{display:block;margin-top:4px;color:#aeb8cb;font-size:8px}
.player-body .declaration-close{width:36px;height:36px;display:grid;place-items:center;border:1px solid rgba(136,156,190,.32);border-radius:50%;color:#d8deea;background:rgba(8,18,35,.72)}
.player-body .declaration-close .icon{width:18px;height:18px}
.player-body .declaration-section-title{color:#c49bff}
.player-body .declaration-section-title i{background:linear-gradient(90deg,#9a61ff,#eac17a,transparent)}
.player-body .declaration-event{
  border-color:rgba(141,100,235,.42);border-radius:0;color:#d8c3ff;
  background:linear-gradient(90deg,rgba(81,52,157,.26),rgba(12,28,51,.74))
}
.player-body .declaration-action-grid{gap:8px}
.player-body .declaration-action-card,
.player-body .declaration-other-list .declaration-action-card{
  border-color:rgba(131,151,184,.3)!important;border-radius:6px!important;
  background:linear-gradient(145deg,rgba(16,34,59,.96),rgba(8,19,37,.96))!important
}
.player-body .declaration-action-card.is-selected,
.player-body .declaration-action-card.active{
  border-color:#9563ed!important;
  background:linear-gradient(145deg,rgba(67,45,127,.72),rgba(13,28,51,.98))!important;
  box-shadow:inset 0 0 0 1px rgba(190,155,255,.16),0 0 18px rgba(117,68,225,.12)!important
}
.player-body .declaration-action-card .action-rune,
.player-body .declaration-action-card [class*="rune"]{
  border-color:rgba(225,185,112,.4);color:#e9bf77;background:rgba(87,58,18,.25)
}
.player-body .declaration-other-toggle{
  border-color:rgba(131,151,184,.26)!important;border-radius:0!important;
  color:#c8d0df!important;background:rgba(10,23,43,.74)!important
}
.player-body .declaration-basket-panel{
  border-color:rgba(131,151,184,.28)!important;border-radius:0!important;
  background:rgba(8,19,37,.76)!important
}
.player-body .declaration-basket-total{
  border-color:rgba(225,185,112,.25)!important;border-radius:0!important;
  background:linear-gradient(90deg,rgba(79,55,18,.2),rgba(78,49,145,.16))!important
}
.player-body .declaration-submit-wrap{
  margin:8px -14px -16px;padding:11px 14px calc(10px + env(safe-area-inset-bottom));
  border-top:1px solid rgba(130,150,181,.24);background:rgba(5,14,28,.96);backdrop-filter:blur(10px)
}
.player-body .declaration-submit{
  min-height:48px;border:1px solid rgba(177,143,244,.68)!important;border-radius:6px!important;
  color:white!important;background:linear-gradient(180deg,#7548d9,#3e2578)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.08),0 7px 18px rgba(52,28,105,.28)!important
}
.player-body .declaration-submit:disabled{opacity:.42;filter:saturate(.55)}
.player-body .declaration-submit small{color:#c9c2d8!important}


/* V7.20 — declaration sheet should size to its content, not reserve an empty 94dvh panel. */
.player-body .declaration-overlay .fantasy-sheet{
  height:auto!important;
  min-height:0!important;
  max-height:min(92dvh,760px)!important;
}
@media(max-width:430px){
  .player-body .declaration-overlay .fantasy-sheet{
    width:calc(100% - 12px)!important;
    height:auto!important;
    min-height:0!important;
    max-height:94dvh!important;
    margin:0 6px 6px;
    border-radius:0!important;
  }
}


/* V7.20 — compact phones: prevent logo/wallet collisions and make quick actions deliberate. */
@media(max-width:370px){
  .player-body .mobile-header{grid-template-columns:36px minmax(0,1fr) auto;gap:4px}
  .player-body .header-menu,.player-body .header-bell{width:36px;height:40px}
  .player-body .header-menu .icon,.player-body .header-bell .icon{width:23px;height:23px}
  .player-body .header-brand img{width:82px;height:54px}
  .player-body .header-actions{gap:3px}
  .player-body .home-header-wallet,.player-body .header-wallet{
    min-width:54px;height:34px;padding:0 6px;gap:4px;font-size:12px
  }
  .player-body .header-crystal{width:18px;height:18px}
  .player-body .header-crystal .icon{width:18px;height:18px}
  .player-body .notification-dot{width:9px;min-width:9px;height:9px}
  .player-body .citadel-home .home-quest-row{grid-template-columns:34px minmax(0,1fr) 58px}
  .player-body .citadel-home .quest-quick-add{min-width:52px;width:52px;padding:0;justify-content:center}
  .player-body .citadel-home .quest-quick-add span{display:none}
  .player-body .citadel-home .quest-quick-add .icon{width:14px;height:14px}
}


/* V7.20 — login belongs to the same approved bright citadel universe. */
.player-body .citadel-login{
  align-items:flex-end;
  padding:clamp(18px,4vh,38px) 18px max(22px,env(safe-area-inset-bottom));
  background-color:#091629;
  background-image:
    linear-gradient(180deg,rgba(8,20,38,.02) 0,rgba(8,20,38,.08) 40%,rgba(8,20,38,.62) 70%,#071426 100%),
    url('../assets/citadel-v3/qg-world-v720.webp');
  background-size:cover;
  background-position:center top;
}
.player-body .citadel-login:before{
  background:linear-gradient(180deg,transparent 0 42%,rgba(5,14,28,.22) 62%,rgba(4,12,24,.72) 100%)
}
.player-body .citadel-login .auth-card{
  width:min(420px,100%);padding:20px;
  border:1px solid rgba(136,156,190,.6);border-left:3px solid #935cff;border-radius:0;
  clip-path:polygon(0 10px,10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%);
  background:linear-gradient(150deg,rgba(12,28,51,.94),rgba(7,17,33,.97));
  box-shadow:0 22px 60px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.035);
  backdrop-filter:blur(14px)
}
.player-body .citadel-login .auth-card:before{border-color:rgba(123,145,180,.16);border-radius:0}
.player-body .citadel-login .auth-card:after{background:linear-gradient(135deg,rgba(144,82,255,.09),transparent 36%,rgba(232,190,115,.04))}
.player-body .citadel-login .auth-live{
  min-height:25px;border-color:rgba(95,222,164,.26);color:#a9e8ca;background:rgba(25,96,72,.18);font-size:8px
}
.player-body .citadel-login .auth-logo{width:min(160px,52vw);max-height:78px;margin:8px auto 0}
.player-body .citadel-login .auth-oath{margin-top:0;color:#f4f0f6;font-size:21px}
.player-body .citadel-login .form-field label{color:#c4c9d6;font-size:9px;letter-spacing:.04em}
.player-body .citadel-login .input-wrap{
  min-height:48px;border:1px solid rgba(126,147,181,.34);border-radius:5px;background:rgba(6,16,31,.78)
}
.player-body .citadel-login .input-wrap:focus-within{
  border-color:#8d5ee8;box-shadow:0 0 0 2px rgba(132,86,230,.12)
}
.player-body .citadel-login .auth-enter{
  min-height:49px;border:1px solid rgba(181,145,246,.68);border-radius:6px;
  color:#fff;background:linear-gradient(180deg,#7549d9,#3f2679);
  box-shadow:inset 0 1px rgba(255,255,255,.08),0 8px 22px rgba(60,33,119,.28)
}
.player-body .citadel-login .demo-box{border-top-color:rgba(126,147,181,.22)}


/* V7.20 — visually key out the legacy black logo plate over the bright world. */
.player-body .header-brand img,
.player-body .citadel-login .auth-logo{
  mix-blend-mode:screen;
  opacity:.97;
  filter:drop-shadow(0 3px 10px rgba(0,0,0,.22)) brightness(1.08) saturate(.88)
}


/* V7.20 — clean login wordmark: no square legacy image plate. */
.player-body .auth-wordmark{
  position:relative;display:grid;justify-items:center;width:max-content;margin:9px auto 5px;
  line-height:.86;text-align:center;filter:drop-shadow(0 3px 9px rgba(0,0,0,.24))
}
.player-body .auth-wordmark span{
  color:#dfbd83;font-family:var(--serif);font-size:10px;font-weight:600;letter-spacing:.18em;
  transform:translateX(.09em)
}
.player-body .auth-wordmark strong{
  margin-top:2px;color:#edca8d;font-family:var(--serif);font-size:42px;font-weight:500;letter-spacing:-.055em;
  text-shadow:0 1px 0 rgba(255,255,255,.22),0 2px 8px rgba(78,45,19,.2)
}
.player-body .auth-wordmark i{
  position:absolute;left:50%;bottom:-8px;transform:translateX(-50%) rotate(45deg);
  color:#9b62f5;font-size:9px;font-style:normal;text-shadow:0 0 8px rgba(145,82,245,.68)
}
.player-body .citadel-login .auth-oath{margin-top:9px}
@media(max-width:370px){
  .player-body .auth-wordmark strong{font-size:37px}
}


/* V7.20 — geometry calibration from the exact approved 941×1671 reference.
   Horizontal reference margins ≈ 20px @430 CSS px; passport begins ≈ 289px after OS chrome. */
@media(max-width:430px){
  .player-body .citadel-home .home-progression{
    height:clamp(252px,70vw,301px);
  }
  .player-body .citadel-status{
    width:clamp(170px,47.5vw,204px);max-width:none;min-height:44px;padding:5px 10px;
  }
  .player-body .citadel-home .home-passport-side{
    min-height:clamp(67px,18.6vw,80px);
    grid-template-columns:clamp(48px,13.7vw,59px) minmax(0,1fr) 18px;
    padding:8px 12px;
  }
  .player-body .citadel-home .home-passport-avatar{
    width:clamp(48px,13.7vw,59px);height:clamp(48px,13.7vw,59px)
  }
  .player-body .citadel-home .home-level-side{
    bottom:clamp(77px,20.9vw,90px);
    width:75%;
  }
  .player-body .citadel-home .home-level-side .home-level-orb{
    flex-basis:clamp(80px,22.4vw,96px);width:clamp(80px,22.4vw,96px);height:clamp(80px,22.4vw,96px)
  }
  .player-body .home-level-orb strong{font-size:clamp(37px,10vw,43px)}
  .player-body .citadel-home .home-rank-copy h1{font-size:clamp(25px,7vw,30px)!important}
  .player-body .citadel-home .home-wallet{height:clamp(58px,15vw,65px)}
  .player-body .citadel-home .home-wallet article{height:clamp(47px,12vw,52px)}
  .player-body .citadel-home{gap:9px}
}


/* V7.20 — exact 430px reference anchors from the approved screenshot.
   Hero bottom ≈369, wallet y≈383, quests y≈461 once OS chrome is removed. */
@media(max-width:430px){
  .player-body .citadel-home{gap:clamp(11px,3.25vw,14px)}
  .player-body .citadel-home .home-progression{height:clamp(247px,68.6vw,295px)}
  .player-body .citadel-home .home-level-side{bottom:clamp(79px,21.9vw,94px)}
  .player-body .citadel-home .home-quests{min-height:166px}
  .player-body .citadel-home .home-panel-heading{min-height:64px;padding:9px 12px 7px}
  .player-body .citadel-home .home-quest-list{min-height:52px}
  .player-body .citadel-home .home-empty{min-height:52px;padding:10px}
  .player-body .home-quest-cta{height:50px;padding:3px 27px 7px}
  .player-body .home-register-link{height:36px}
  .player-body .home-quest-action{width:48px;height:48px;top:-1px}
}


/* V7.20 — navigation is visually solid in the approved reference; never let scrolled cards ghost through it. */
.player-body .bottom-nav{
  background:linear-gradient(180deg,#071121 0%,#040b18 100%)!important;
  backdrop-filter:none!important;
}


/* V7.20 — typography calibration from the approved reference. */
@media(max-width:430px){
  .player-body .citadel-status small{font-size:9px}
  .player-body .citadel-status strong{font-size:12px}
  .player-body .home-level-orb small{font-size:10px}
  .player-body .citadel-home .home-passport-side small{font-size:9px}
  .player-body .citadel-home .home-passport-side strong{font-size:19px}
  .player-body .citadel-home .home-passport-side em{font-size:11px}
  .player-body .citadel-home .home-passport-side b{font-size:10px}
  .player-body .citadel-home .home-wallet small{font-size:9px}
  .player-body .citadel-home .home-wallet strong{font-size:20px}
  .player-body .citadel-home .home-panel-heading p{font-size:10px}
  .player-body .citadel-home .home-empty{font-size:12px}
  .player-body .home-register-link{font-size:10px!important}
  .player-body .nav-btn{font-size:9px}
}
@media(max-width:370px){
  .player-body .citadel-status strong{font-size:11px}
  .player-body .citadel-home .home-passport-side strong{font-size:17px}
  .player-body .citadel-home .home-passport-side em{font-size:10px}
  .player-body .citadel-home .home-passport-side b{font-size:9px}
  .player-body .citadel-home .home-empty{font-size:11px}
}

@media(max-width:430px){
  .player-body .citadel-status strong{font-size:11px;letter-spacing:-.01em;white-space:nowrap}
}


/* V7.20 — keep optional/event content below the approved first-screen composition. */
.player-body .citadel-home .home-quests + .active-event-banner{margin-top:48px}


/* V7.20 — keep the Passeport card at the approved physical height while preserving larger text. */
@media(max-width:430px){
  .player-body .citadel-home .home-passport-side{
    height:clamp(70px,18.6vw,80px);
    min-height:clamp(70px,18.6vw,80px);
    max-height:clamp(70px,18.6vw,80px);
    padding:6px 12px;
  }
  .player-body .citadel-home .home-passport-side small{line-height:1}
  .player-body .citadel-home .home-passport-side strong{line-height:1.05;margin-top:3px}
  .player-body .citadel-home .home-passport-side em{line-height:1.05}
  .player-body .citadel-home .home-passport-side b{line-height:1.05;margin-top:3px}
}


/* V7.20 — Android reference bottom bar: ≈71 CSS px once system navigation is excluded. */
@media(max-width:430px){
  .player-body .bottom-nav{
    height:72px;
    padding:5px 8px calc(5px + env(safe-area-inset-bottom));
  }
  .player-body .nav-btn{height:60px;gap:3px}
  .player-body .nav-btn .icon{width:22px;height:22px}
  .player-body .mobile-main{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
}


/* V7.20 — compact-phone QG: keep the quest CTA fully above the fixed navigation. */
@media(max-width:370px) and (max-height:820px){
  .player-body .citadel-home .home-quests{min-height:0!important}
  .player-body .citadel-home .home-quest-list .home-quest-row:nth-child(n+4){display:none}
}


/* V7.20 — side drawer and Battle use the same approved navy / violet / gold construction. */
.player-body .player-menu-overlay .dialog{
  background:
    linear-gradient(180deg,rgba(8,20,38,.62),rgba(7,17,33,.96) 34%,rgba(5,14,28,.995) 100%),
    url('../assets/citadel-v3/qg-world-v720.webp') 60% top/auto 390px no-repeat;
}
.player-body .player-drawer{
  background:linear-gradient(180deg,rgba(8,20,38,.12),rgba(8,20,38,.82) 30%,rgba(5,14,28,.98) 68%)
}
.player-body .route-battle .battle-arena-hero{
  border-left:3px solid #935cff;border-radius:0;
  box-shadow:0 16px 34px rgba(0,0,0,.22)
}
.player-body .route-battle .arena-live time{
  border-color:rgba(142,95,235,.48);border-radius:5px;background:rgba(22,31,55,.82);color:#d9c3ff
}
.player-body .route-battle .arena-versus span{
  border-color:rgba(226,180,100,.55);background:rgba(30,24,18,.76);color:#efbe72
}
.player-body .route-battle .arena-team-panel,
.player-body .route-battle .arena-contribution,
.player-body .route-battle .arena-rule,
.player-body .route-battle .arena-activity,
.player-body .route-battle .arena-reward{
  border-color:rgba(130,151,185,.38);border-radius:0;
  background:linear-gradient(145deg,rgba(12,28,51,.96),rgba(7,18,35,.97))
}
.player-body .route-battle .arena-player,
.player-body .route-battle .arena-contribution-main>div{
  border-radius:5px;border-color:rgba(130,151,185,.23);background:rgba(10,23,43,.72)
}
.player-body .route-battle .arena-team-panel.is-mine{
  border-color:rgba(149,98,239,.6);box-shadow:inset 3px 0 0 #925cff
}


/* V7.20 — XP medallion follows the faceted purple rune from the approved wallet card. */
.player-body .wallet-xp-rune{
  position:relative;border:0!important;border-radius:0!important;
  clip-path:polygon(50% 0,64% 10%,82% 12%,88% 30%,100% 50%,88% 70%,82% 88%,64% 90%,50% 100%,36% 90%,18% 88%,12% 70%,0 50%,12% 30%,18% 12%,36% 10%);
  background:radial-gradient(circle at 45% 38%,#8d55dc 0,#5b2f9b 39%,#1b153c 72%,#10172c 100%)!important;
  box-shadow:0 0 18px rgba(126,69,237,.38);color:#f0ddff
}
.player-body .wallet-xp-rune:before{
  content:"";position:absolute;inset:3px;pointer-events:none;
  clip-path:inherit;box-shadow:inset 0 0 0 1px rgba(191,143,255,.72);
  background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 42%,rgba(108,50,191,.12))
}


/* V7.20 correction — quest register CTA and action declaration are distinct controls. */
.player-body .home-quest-cta{
  position:relative;height:58px;display:grid;place-items:center;padding:8px 34px 12px
}
.player-body .home-register-link{
  width:100%;height:38px!important;display:flex!important;align-items:center;justify-content:center!important;
  padding:0 18px!important;border:1px solid rgba(135,87,242,.82)!important;
  color:#bf95ff!important;background:rgba(24,18,53,.8)!important;
  clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,14px 100%,0 50%);
  font-size:10px!important;font-weight:650;letter-spacing:.045em;text-transform:uppercase
}
.player-body .home-quest-action{display:none!important}

/* The declaration + belongs to the fixed bottom navigation, as in the live game. */
.player-body .action-orb-v720{
  position:fixed;z-index:112;left:50%;bottom:55px;
  width:58px;height:58px;display:grid;place-items:center;
  transform:translateX(-50%);
  border:2px solid #d6a95d;border-radius:50%;
  color:#d6a4ff;
  background:
    radial-gradient(circle at 50% 45%,#4b2a79 0 42%,#1a1633 64%,#0d1428 100%);
  box-shadow:
    0 0 0 5px #071121,
    0 0 0 6px rgba(148,92,245,.55),
    0 0 20px rgba(122,69,238,.45),
    inset 0 1px 0 rgba(255,255,255,.09);
}
.player-body .action-orb-v720 span{display:grid;place-items:center}
.player-body .action-orb-v720 .icon{width:29px;height:29px;stroke-width:1.8}
.player-body .action-orb-v720 i{
  position:absolute;inset:-8px;border:1px solid rgba(151,91,243,.4);border-radius:50%;
  animation:orbPulse 2.25s ease-out infinite
}
.player-body .action-orb-v720:active{transform:translateX(-50%) scale(.96)}
.player-body .action-orb-v720:focus-visible{outline:2px solid #efc47d;outline-offset:5px}

@media(max-width:430px){
  .player-body .action-orb-v720{bottom:51px;width:56px;height:56px}
  .player-body .action-orb-v720 .icon{width:28px;height:28px}
  .player-body .home-quest-cta{height:54px;padding:6px 32px 10px}
  .player-body .home-register-link{height:36px!important}
}
@media(max-width:370px){
  .player-body .action-orb-v720{bottom:49px;width:52px;height:52px}
  .player-body .action-orb-v720 .icon{width:26px;height:26px}
  .player-body .home-quest-cta{padding-inline:24px}
}


/* V7.20.1 — Passport readability pass.
   The hero remains scenic, but all identity information is regrouped into one coherent glass passport card. */
.player-body .route-passport .passport-hero{
  min-height:370px;
  padding:168px 12px 12px!important;
  border-left:3px solid #965cff;
  background-image:
    linear-gradient(180deg,rgba(7,18,35,.01) 0,rgba(8,19,37,.16) 36%,rgba(8,19,37,.64) 60%,rgba(8,19,37,.97) 100%),
    url('../assets/citadel-v3/qg-world-v720.webp')!important;
  background-size:cover!important;
  background-position:center 28%!important;
}
.player-body .route-passport .passport-aura{display:none!important}
.player-body .route-passport .passport-identity{
  grid-template-columns:74px minmax(0,1fr) 70px;
  gap:12px;
  padding:12px 13px 9px;
  border:1px solid rgba(138,159,193,.55);
  border-bottom:0;
  background:linear-gradient(105deg,rgba(10,25,47,.92),rgba(8,20,39,.83));
  backdrop-filter:blur(13px);
}
.player-body .route-passport .passport-xl{
  width:68px;height:68px;
  border:1px solid rgba(158,97,244,.68);
  box-shadow:0 0 0 3px rgba(104,59,206,.12),0 0 18px rgba(103,55,206,.22)
}
.player-body .route-passport .passport-identity h2{
  margin:1px 0 2px;
  font-family:var(--serif);
  font-size:23px;
  line-height:1.05;
  color:#fff;
}
.player-body .route-passport .passport-identity p{
  margin:0;color:#c69eff;font-size:11px;font-weight:650
}
.player-body .route-passport .member-since{
  margin-top:5px;color:#b8c0d1;font-size:8px
}
.player-body .route-passport .rank-sigil{
  width:66px;height:66px;
  background:radial-gradient(circle at 50% 44%,#22163f 0 46%,#080f20 48% 62%,#7040ce 64% 67%,#091325 69%);
  box-shadow:0 0 0 2px rgba(150,92,245,.19),0 0 18px rgba(128,72,230,.28)
}
.player-body .route-passport .rank-sigil:before{
  inset:-4px;border:2px solid transparent;border-top-color:#edbf72;border-right-color:#a067ff;border-bottom-color:#8250ed;
  animation:none
}
.player-body .route-passport .rank-sigil small{font-size:7px;color:#d2c6e1}
.player-body .route-passport .rank-sigil span{font-size:26px}

.player-body .route-passport .passport-progress{
  margin-top:0;
  padding:8px 13px 10px;
  border-left:1px solid rgba(138,159,193,.55);
  border-right:1px solid rgba(138,159,193,.55);
  background:linear-gradient(105deg,rgba(10,25,47,.92),rgba(8,20,39,.84))
}
.player-body .route-passport .passport-progress>div:first-child{
  align-items:center;font-size:9px
}
.player-body .route-passport .passport-progress>div:first-child strong{
  font-family:var(--serif);font-size:12px;font-weight:500;color:#f2d59d
}
.player-body .route-passport .passport-progress>div:first-child span{
  color:#d3d8e3;font-variant-numeric:tabular-nums
}
.player-body .route-passport .passport-track{
  height:6px;margin-top:6px;border:1px solid rgba(126,148,184,.2);background:rgba(2,7,15,.72)
}
.player-body .route-passport .passport-progress>small{
  margin-top:5px;color:#adb7c9;font-size:8px
}
.player-body .route-passport .passport-status{
  margin-top:0;
  border:1px solid rgba(138,159,193,.55);
  border-top:1px solid rgba(126,148,184,.22);
  background:linear-gradient(105deg,rgba(10,25,47,.92),rgba(8,20,39,.86))
}
.player-body .route-passport .passport-status article{min-height:48px;padding:8px 10px}
.player-body .route-passport .passport-status article+article{border-left-color:rgba(138,159,193,.25)}
.player-body .route-passport .passport-status span{color:#c294ff}
.player-body .route-passport .passport-status small{font-size:7px;color:#aeb8ca}
.player-body .route-passport .passport-status strong{font-size:10px;color:#fff}

.player-body .route-passport .passport-next-reward{
  min-height:76px;
  border-left:3px solid #edbd70;
  background:linear-gradient(100deg,rgba(34,28,56,.96),rgba(9,21,40,.96))
}
.player-body .route-passport .passport-next-reward>span{
  border:1px solid rgba(154,95,240,.4);color:#f0c77d;background:rgba(85,48,143,.3)
}
.player-body .route-passport .passport-next-reward small{color:#c79aff}
.player-body .route-passport .passport-next-reward>b{color:#efc276}

.player-body .route-passport .rank-journey{padding-bottom:4px}
.player-body .route-passport .rank-road{
  gap:7px;padding:0 12px 13px;
  scroll-snap-type:x proximity
}
.player-body .route-passport .rank-node{
  min-width:76px;scroll-snap-align:start;color:#788398
}
.player-body .route-passport .rank-node>div{
  width:50px;height:50px;
  border:1px solid rgba(128,149,183,.26);
  background:rgba(8,19,37,.78)
}
.player-body .route-passport .rank-node.unlocked{color:#c5cddd}
.player-body .route-passport .rank-node.unlocked>div{
  color:#e9bf76;border-color:rgba(229,185,108,.5);background:rgba(79,55,19,.32)
}
.player-body .route-passport .rank-node.current{color:#d8b5ff}
.player-body .route-passport .rank-node.current>div{
  color:#d4a0ff;border-color:#9e66ef;background:rgba(77,46,135,.62);box-shadow:0 0 16px rgba(125,72,223,.22)
}

.player-body .route-passport .passport-stat-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));gap:9px
}
.player-body .route-passport .passport-stat{
  min-height:88px;padding:10px 12px;align-items:flex-start;text-align:left
}
.player-body .route-passport .passport-stat>span{
  width:30px;height:30px;display:grid;place-items:center;
  border:1px solid rgba(150,96,236,.3);border-radius:50%;
  color:#c495ff;background:rgba(70,42,124,.22)
}
.player-body .route-passport .passport-stat .icon{width:17px;height:17px}
.player-body .route-passport .passport-stat strong{
  margin-top:8px;font-size:17px;color:#fff
}
.player-body .route-passport .passport-stat small{
  margin-top:2px;font-size:8px;color:#aeb8ca
}

.player-body .route-passport .collection-panel,
.player-body .route-passport .passport-chronicle,
.player-body .route-passport .customization-panel{
  border-color:rgba(132,153,187,.42);
  background:linear-gradient(115deg,rgba(11,25,47,.965),rgba(7,18,35,.97))
}
.player-body .route-passport .passport-badge{
  min-height:112px;border-radius:5px;
  border-color:rgba(132,153,187,.22);
  background:linear-gradient(145deg,rgba(10,23,43,.95),rgba(6,15,29,.97))
}
.player-body .route-passport .passport-badge>span{
  width:38px;height:38px;color:#c995ff;border-color:rgba(158,97,240,.38);background:rgba(64,38,114,.42)
}
.player-body .route-passport .passport-badge.locked{opacity:.36}
.player-body .route-passport .title-choice,
.player-body .route-passport .frame-choice{
  border-radius:5px;border-color:rgba(132,153,187,.26);background:rgba(9,21,40,.75)
}
.player-body .route-passport .title-choice.active,
.player-body .route-passport .frame-choice.active{
  border-color:#9861eb;background:rgba(70,43,124,.32);box-shadow:inset 0 0 0 1px rgba(181,141,244,.12)
}
.player-body .route-passport .photo-upload-btn{
  border-color:rgba(156,98,239,.45);border-radius:5px;color:#d7c3ef;background:rgba(62,39,109,.32)
}

@media(max-width:390px){
  .player-body .route-passport .passport-hero{min-height:350px;padding-top:155px!important}
  .player-body .route-passport .passport-identity{grid-template-columns:62px minmax(0,1fr) 58px;gap:9px;padding-inline:10px}
  .player-body .route-passport .passport-xl{width:58px;height:58px}
  .player-body .route-passport .rank-sigil{width:56px;height:56px}
  .player-body .route-passport .rank-sigil span{font-size:23px}
  .player-body .route-passport .passport-identity h2{font-size:20px}
  .player-body .route-passport .passport-identity p{font-size:10px}
  .player-body .route-passport .passport-progress,
  .player-body .route-passport .passport-status{padding-inline:10px}
}


/* V7.20.1 — dedicated common rarity language: restrained steel/bronze, below rare/epic/legendary. */
.player-body .route-shop .chest-card.common{
  border-color:rgba(156,145,124,.38);
  background:linear-gradient(145deg,rgba(16,29,47,.96),rgba(8,18,34,.97))
}
.player-body .route-shop .chest-card.common .chest-art{
  background:radial-gradient(circle at 50% 43%,rgba(116,92,147,.14),transparent 54%),rgba(8,17,31,.82)
}
.player-body .route-shop .chest-card.common .rarity-label{
  border-color:rgba(190,164,117,.38);color:#d8c7a6;background:rgba(77,63,43,.72)
}
.player-body .route-shop .chest-card.common .chest-art img{
  filter:saturate(.86) brightness(.96)
}


/* V7.20.1 — compact header safety and full challenge copy. */
.player-body .page-heading{min-width:0;overflow:hidden}
.player-body .page-title{
  max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
@media(max-width:370px){
  .player-body .page-title{font-size:17px}
  .player-body .page-kicker{font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .player-body .page-header .header-actions{min-width:88px}
}
@media(max-width:430px){
  .player-body .citadel-status{
    width:clamp(190px,50vw,215px);
    gap:7px;
    padding-left:9px;
    padding-right:8px
  }
  .player-body .citadel-status-gem{width:21px;height:21px}
  .player-body .citadel-status-gem .icon{width:20px;height:20px}
  .player-body .citadel-status-chevron{width:12px;margin-left:2px}
  .player-body .citadel-status strong{font-size:10px;letter-spacing:-.018em}
}


/* V7.20.1 — reward reveal follows rarity instead of one generic purple treatment. */
.player-body .chest-opening.rarity-common .chest-runes{
  border-color:rgba(184,160,116,.34);box-shadow:0 0 55px rgba(116,86,48,.18)
}
.player-body .chest-opening.rarity-common .chest-runes:before{
  border-color:rgba(200,174,124,.32)
}
.player-body .chest-opening.rarity-common .chest-runes:after{
  border-color:rgba(132,91,180,.3)
}
.player-body .chest-opening.rarity-common .chest-flash{
  box-shadow:0 0 70px 30px #9270b0
}
.player-body .chest-opening.rarity-common .chest-reveal{
  border-color:rgba(184,160,116,.46)
}
.player-body .chest-opening.rarity-rare .chest-reveal{
  border-color:rgba(138,101,223,.56)
}
.player-body .chest-opening.rarity-epic .chest-reveal,
.player-body .chest-opening.rarity-épique .chest-reveal{
  border-color:rgba(168,92,255,.7);box-shadow:0 0 55px rgba(125,57,224,.24)
}
.player-body .chest-opening.rarity-legendary .chest-reveal,
.player-body .chest-opening.rarity-légendaire .chest-reveal{
  border-color:rgba(235,190,105,.72);
  background:radial-gradient(circle at 50% 10%,rgba(119,75,19,.24),transparent 38%),linear-gradient(180deg,#101d32,#071427)
}


/* V7.20.1 — remove the last legacy-orange player accents from Battle and Notifications. */
.player-body .notification-card>i{
  background:#9b61ff;box-shadow:0 0 8px rgba(155,97,255,.82)
}
.player-body .notification-card.reward>span{
  color:#edc27b;background:rgba(100,72,27,.28)
}
.player-body .route-battle .arena-title>span{color:#e8bf78}
.player-body .route-battle .arena-score-track i,
.player-body .battle-card .battle-score-track i{
  background:linear-gradient(90deg,#edbd70 0,#b66bf1 45%,#8e55ed 100%);
  box-shadow:0 0 10px rgba(139,82,234,.42)
}
.player-body .route-battle .arena-rule>span,
.player-body .route-battle .arena-reward>span{
  border-color:rgba(224,184,109,.38);color:#edc27a;background:rgba(92,68,27,.24)
}
.player-body .battle-vs,
.player-body .route-battle .arena-versus span{
  border-color:rgba(226,186,112,.5);color:#edc27a;background:rgba(40,31,20,.78);
  box-shadow:0 0 12px rgba(128,81,221,.12)
}
.player-body .battle-card{
  border-color:rgba(137,155,187,.4);
  background:radial-gradient(circle at 50% 0,rgba(109,64,194,.2),transparent 42%),linear-gradient(180deg,#0b1a31,#071426)
}


/* V7.20.1 — drawer readability: the menu must read as a surface, not as text floating over the QG. */
.player-body .player-menu-overlay .dialog{
  border-right-color:rgba(148,166,196,.55);
  box-shadow:24px 0 62px rgba(0,0,0,.55)
}
.player-body .player-drawer{
  background:linear-gradient(180deg,rgba(8,20,38,.78) 0,rgba(7,18,35,.94) 26%,rgba(5,14,28,.99) 68%)
}
.player-body .player-drawer-nav button{
  color:#e1e6ef;border-bottom-color:rgba(139,158,190,.2)
}
.player-body .player-drawer-nav button.active{
  background:linear-gradient(90deg,rgba(129,80,226,.25),rgba(7,18,35,.2))
}


/* V7.20.1 — 390px header wallet breathing room: preserve the approved wordmark without visual contact. */
@media(min-width:371px) and (max-width:400px){
  .player-body .home-header-wallet{
    min-width:60px;
    padding-inline:6px;
    gap:5px;
  }
}


/* V7.20.1 — final bottom-nav graft: the + is separate from Quests and only kisses the nav edge. */
.player-body .action-orb-v720{bottom:calc(var(--q-nav-height,82px) - 8px + var(--q-safe-bottom,env(safe-area-inset-bottom,0px)))}
.player-body .bottom-nav:before{
  left:6%;right:6%;width:auto;top:-1px;
  background:linear-gradient(90deg,
    transparent 0,
    #9b61ff 8%,
    rgba(141,159,193,.46) 38%,
    transparent 43%,
    transparent 57%,
    rgba(141,159,193,.46) 62%,
    #efc274 92%,
    transparent 100%);
}
@media(max-width:430px){
  .player-body{--q-nav-height:72px}
}
@media(max-width:370px){
  .player-body{--q-nav-height:72px}
}

/* Keep the touch row above the system home indicator, without shrinking it. */
.player-body .bottom-nav{
  height:calc(var(--q-nav-height,82px) + var(--q-safe-bottom,env(safe-area-inset-bottom,0px)));
  padding-bottom:calc(5px + var(--q-safe-bottom,env(safe-area-inset-bottom,0px)));
}
.player-body .mobile-main{
  padding-bottom:calc(var(--q-nav-height,82px) + 76px + var(--q-safe-bottom,env(safe-area-inset-bottom,0px)));
}
.player-body .mobile-main button,
.player-body .mobile-main a{
  scroll-margin-bottom:calc(var(--q-nav-height,82px) + 76px + var(--q-safe-bottom,env(safe-area-inset-bottom,0px)));
}

/* On standard-height phones the fourth preview row otherwise sits behind +.
   The complete list and its quick actions remain in the quest register. */
@media(max-width:430px) and (min-height:780px) and (max-height:900px){
  .player-body .citadel-home .home-quest-list .home-quest-row:nth-child(n+4){display:none}
}

/* A public passport must accommodate real names and earned titles. */
.player-body .route-passport .passport-identity>div{min-width:0}
.player-body .route-passport .passport-identity h2,
.player-body .route-passport .passport-identity p,
.player-body .route-passport .passport-status strong{
  overflow-wrap:anywhere;
}
.player-body .route-passport .passport-progress>div:first-child{
  flex-wrap:wrap;gap:4px 12px;
}
.player-body .citadel-home .home-passport-side strong,
.player-body .citadel-home .home-passport-side em{
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

/* Original sculpted identity, rebuilt as transparent artwork for daylight. */
.player-body .tq-brand-v720{
  display:flex;align-items:center;justify-content:center;min-width:0;height:62px;
}
.player-body .mobile-header:not(.page-header) .header-brand{
  position:static;left:auto;top:auto;transform:none;width:auto;max-width:100%;
}
.player-body .header-brand .tq-logo-art{
  display:block;width:min(100%,158px);height:auto;max-height:62px;
  object-fit:contain;mix-blend-mode:normal;opacity:1;
  filter:drop-shadow(0 2px 3px rgba(3,8,20,.65));
}
.player-body .auth-wordmark{width:min(260px,100%);margin:8px auto 12px}
.player-body .auth-wordmark img{display:block;width:100%;height:auto}
.player-body .home-header-wallet{border-color:rgba(229,187,111,.38)}
.player-body .home-header-wallet .header-coin{width:24px;height:24px;object-fit:contain}

/* The rank is an identity block, not an oversized label outside its column. */
.player-body .citadel-home .home-level-side{
  left:4px;right:4px;width:auto;gap:16px;align-items:center;
}
.player-body .citadel-home .home-level-side .home-rank-copy{
  flex:1;min-width:0;max-width:240px;padding:0;
}
.player-body .home-rank-label{
  display:block;margin-bottom:5px;color:#e3c894;font-size:8px;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;
}
.player-body .citadel-home .home-rank-copy h1{
  margin:0 0 7px;font-size:clamp(21px,5.6vw,26px)!important;
  line-height:1.08;letter-spacing:.015em;overflow-wrap:anywhere;
}
.player-body .citadel-home .home-xp-line{gap:5px;padding-top:7px}
.player-body .citadel-home .home-xp-line:before{width:min(100%,164px)}
.player-body .citadel-home .home-xp-line .icon{width:16px;height:16px;flex:none}
.player-body .citadel-home .home-xp-line strong{
  font-size:clamp(11px,3.1vw,14px);font-variant-numeric:tabular-nums;line-height:1.3;
}

/* Restore the two original counter-rotating level rings; never rotate text. */
@media(prefers-reduced-motion:no-preference){
  html:not(.motion-off) .player-body .mobile-app:not(.reduced-motion) .home-level-orb:before{
    animation:levelSpin 8s linear infinite;
  }
  html:not(.motion-off) .player-body .mobile-app:not(.reduced-motion) .home-level-orb:after{
    animation:levelSpin 6s linear infinite reverse;
  }
}
.motion-off .player-body .home-level-orb:before,
.motion-off .player-body .home-level-orb:after,
.player-body .reduced-motion .home-level-orb:before,
.player-body .reduced-motion .home-level-orb:after{animation:none!important}

/* Coins are spendable rewards: a gold treasury entry point, not another XP stat. */
.player-body .citadel-home .home-wallet{grid-template-columns:44% 56%;overflow:hidden}
.player-body .citadel-home .home-wallet article{min-width:0;padding-left:10px;gap:7px}
.player-body .citadel-home .home-wallet article>div{min-width:0}
.player-body .citadel-home .home-wallet article small{font-size:8px;letter-spacing:.03em}
.player-body .citadel-home .home-wallet .wallet-xp-rune{width:34px;height:34px;flex:none;font-size:13px}
.player-body .citadel-home .wallet-coins{
  position:relative;z-index:2;align-self:stretch;min-width:0;
  display:grid;grid-template-columns:34px minmax(0,1fr) 12px;align-items:center;gap:6px;
  margin:0;padding:4px 9px;border:0;border-left:1px solid rgba(233,191,114,.5);
  color:#ffe1a6;text-align:left;cursor:pointer;touch-action:manipulation;
  background:radial-gradient(ellipse at 15% 45%,rgba(219,155,41,.2),transparent 65%),linear-gradient(110deg,rgba(90,59,23,.5),rgba(30,29,39,.92));
  box-shadow:inset 0 1px rgba(255,220,156,.24),inset 0 -1px rgba(222,175,86,.18);
  transition:filter 180ms ease-out;
}
.player-body .citadel-home .wallet-coins>img{width:34px;height:34px;object-fit:contain;filter:drop-shadow(0 0 7px rgba(239,180,64,.35))}
.player-body .wallet-coins-copy{display:grid;min-width:0;gap:1px}
.player-body .citadel-home .wallet-coins small{font-size:8px;letter-spacing:.12em;color:#efd39a}
.player-body .citadel-home .wallet-coins strong{font-size:23px;line-height:1;color:#ffe4ad;font-variant-numeric:tabular-nums}
.player-body .wallet-coins-hint{font-size:8px;line-height:1.3;color:#e3cfaa;white-space:normal}
.player-body .wallet-coins>.icon{width:12px;height:12px;color:#e9c482}
.player-body .wallet-coins:focus-visible{outline:2px solid #ffdc94;outline-offset:-4px}
.player-body .wallet-coins:active{filter:brightness(1.2)}
@media(hover:hover){.player-body .wallet-coins:hover{filter:brightness(1.15)}}
@media(max-width:370px){
  .player-body .citadel-home .home-level-side{gap:12px}
  .player-body .citadel-home .wallet-coins{grid-template-columns:28px minmax(0,1fr) 10px;padding-inline:7px;gap:4px}
  .player-body .citadel-home .wallet-coins>img{width:28px;height:28px}
  .player-body .citadel-home .home-wallet article{padding-left:7px;gap:5px}
  .player-body .citadel-home .home-wallet article small{font-size:7px}
}
.player-body .route-shop .chest-card.common .chest-art img{filter:none}

/* Quest summary: keep both counters in flow at every mobile width.
   Legacy <=390px rules put a 133px flex row in a 90px grid column. */
.player-body .route-quests .quest-command{
  grid-template-columns:minmax(0,1fr);
  gap:14px;
}
.player-body .route-quests .quest-command-stats{
  position:static;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  width:100%;min-width:0;margin:0;
}
.player-body .route-quests .quest-command-stats article{min-width:0;padding:10px 8px}
.player-body .route-quests .quest-command-stats strong{font-size:16px}
.player-body .route-quests .quest-command-stats span{font-size:10px}
.player-body .route-quests .quest-command .command-track{max-width:none}
.player-body .route-quests .quest-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
.player-body .route-quests .quest-tabs .ranking-tab{grid-column:auto;min-width:0}
.player-body .route-quests .quest-tabs .ranking-tab:only-child{grid-column:1/-1}
.player-body .route-quests .victory-empty{padding:24px 12px}
