/* Keep a small corner slot clear of navigation, including the mobile menu. */
.top { padding-right:56px; }
.venue-theme-toggle {
  position:fixed;
  top:max(12px,env(safe-area-inset-top));
  right:max(8px,env(safe-area-inset-right));
  z-index:100;
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  padding:11px;
  border:1px solid #82704e;
  border-radius:50%;
  background:#171715;
  color:#d9bd80;
  box-shadow:0 2px 10px #0002;
  cursor:pointer;
}
.venue-theme-toggle svg {
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0;
}
.venue-theme-toggle .theme-sun { display:none; }
html[data-theme="dark"] .venue-theme-toggle .theme-sun { display:block; }
html[data-theme="dark"] .venue-theme-toggle .theme-moon { display:none; }
.venue-theme-toggle:hover { background:#302b22; }
.venue-theme-toggle:focus-visible { outline:2px solid #e2bf76; outline-offset:3px; }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto!important; }
  .venue-theme-toggle { transition:none!important; }
}
@media print {
  .venue-theme-toggle { display:none!important; }
  .top { padding-right:0; }
}

/* Accès permanent à la messagerie pour le compte connecté. */
.top .tv-header-messages{
 position:relative;display:inline-flex;align-items:center;justify-content:center;
 flex:0 0 44px;width:44px;height:44px;border:1px solid #82704e;border-radius:50%;
 color:#dfbf7c;background:transparent;text-decoration:none;
 transition:background .18s ease,border-color .18s ease;
}
.top .tv-header-messages svg{width:23px;height:23px;flex-shrink:0}
.top .tv-header-messages:hover{background:#30291d;border-color:#dfbf7c}
.top .tv-header-message-count{
 position:absolute;top:-5px;right:-6px;display:grid;place-items:center;
 min-width:20px;height:20px;padding:0 5px;border:2px solid #080807;border-radius:20px;
 background:#d6b66d;color:#17130b;font:750 11px/1 Inter,Arial,sans-serif;
}
.top .tv-header-message-count[hidden]{display:none}
@media(max-width:1060px){
 .top .tv-header-messages{margin-left:auto}
 .top:has(.tv-header-messages) .navright{margin-left:0}
}
@media(max-width:380px){
 .top:has(.tv-header-messages) .wrap{gap:8px}
 .top .tv-header-messages{width:40px;height:40px;flex-basis:40px}
}
@media(prefers-reduced-motion:reduce){.top .tv-header-messages{transition:none}}
