/* Interface partagée : fond nuit, verre fumé, accents citron de Plenitude. */
:root{--bg:#11161e;--ink:#f3f1e9;--dim:#bbc1cc;--line:#ffffff25;--hot:#dfff47;--venue-panel:#171b22e8;--venue-input:#202632;--venue-outline:#657080}
html,body{font-family:"Helvetica Neue",Inter,system-ui,sans-serif;background:var(--bg);color:var(--ink)}
button,select{font-family:inherit}
button:focus-visible,select:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--hot);outline-offset:3px}
#concert-controls{background:var(--venue-panel);border-color:var(--line);color:var(--ink)}
#concert-controls select{background:var(--venue-input);border-color:var(--venue-outline);color:var(--ink)}
.accor-viewer #vig{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 52%,#00000057 100%)}
/* Même ATH sur les deux salles ; seules les destinations des vues changent. */
#views button,.accor-viewer nav button,.accor-viewer header button{flex:0 0 auto;background:#ffffff0d;color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:9px 14px;font:500 12px/1 "Helvetica Neue",system-ui,sans-serif;cursor:pointer;backdrop-filter:blur(8px);transition:background .15s ease,border-color .15s ease}
#views button:hover,.accor-viewer nav button:hover{background:#ffffff1a}
#views button.sel,.accor-viewer nav button[aria-pressed=true]{background:var(--hot);border-color:var(--hot);color:#171713}
#views,.accor-viewer nav{top:0;bottom:auto;left:0;right:0;gap:6px;padding:14px 16px;justify-content:center;background:linear-gradient(180deg,#05070af5,transparent)}
#concert-controls,.accor-viewer header{left:16px;right:16px;bottom:14px;padding:10px 12px;border:1px solid var(--line);border-radius:16px;background:var(--venue-panel);backdrop-filter:blur(10px);gap:8px;color:var(--ink);font-size:12px}
.accor-viewer #leave-view{padding:10px 13px;border:0;background:var(--hot);color:#171713}
.accor-viewer #plan{background:#f3f3f3;padding:12px 12px 90px}
.accor-viewer.plan-mode #vig{display:none}
.accor-viewer.plan-mode nav{display:none}
.accor-viewer.plan-mode header{bottom:48px}
.accor-viewer #c{cursor:grab}.accor-viewer #c:active{cursor:grabbing}
@media(max-width:560px){#views,.accor-viewer nav{justify-content:flex-start}#views button,.accor-viewer nav button{font-size:11px;padding:8px 11px;white-space:nowrap}#concert-controls,.accor-viewer header{left:8px;right:8px;gap:6px;padding:9px}.accor-viewer #status{width:100%;margin:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}

/* Survol 2D identique, avec une épaisseur adaptée aux coordonnées de chaque plan. */
#plan g[data-zone]:hover .section-fill,#plan g[data-zone]:focus-visible .section-fill,
#plan g[data-key]:hover .section-fill,#plan g[data-key]:focus-visible .section-fill{stroke:#171713;stroke-width:var(--plan-hover-stroke,4);stroke-linejoin:miter}

/* Commandes tactiles lisibles, sans empiéter sur les bords du téléphone. */
@media(max-width:760px),(pointer:coarse){
  #views,.accor-viewer nav{padding:10px 8px;gap:6px;scroll-padding-inline:8px;overscroll-behavior-x:contain}
  #views button,.accor-viewer nav button,.accor-viewer header button{min-height:44px;padding:10px 13px;font-size:12px}
  #plan .concert-plan-tools button{min-width:44px;min-height:44px;font-size:14px}
  .accor-viewer #plan,body.concert-plan #plan{padding:70px 8px 74px}
  .accor-viewer .plan-caption{top:16px;left:12px}
  .accor-viewer .plan-caption span{display:none}
  #plan .concert-plan-tools{top:10px;right:8px;gap:4px}
  #plan .concert-plan-status{font-size:12px;line-height:1.4;padding:10px 12px;bottom:10px}
  #concert-controls select{min-height:44px;font-size:16px}
  #concert-controls button{min-height:44px}
  .accor-viewer.seat-view:not(.plan-mode) header{display:flex;bottom:10px}
  .accor-viewer #status{font-size:11px;line-height:1.4}
  #views,.accor-viewer nav{touch-action:pan-x}
}
@media(max-width:360px){
  .accor-viewer .plan-caption{display:none}
  #views button,.accor-viewer nav button{padding-inline:10px;font-size:11px}
}
@media(max-height:400px) and (orientation:landscape){
  #views,.accor-viewer nav{left:0;right:auto;max-width:72%;padding:8px}
  .accor-viewer.seat-view:not(.plan-mode) header{left:auto;right:8px;bottom:8px;width:auto}
  .accor-viewer.seat-view #status{display:none}
  #hint{display:none}
}
