/* Loaded after the legacy design system. This isolates the public Location
   stage from older experimental selectors and prevents a late repaint. */
.venue-view { min-height:100%; background:radial-gradient(ellipse 95% 34% at 48% -8%,color-mix(in srgb,var(--venue-accent) 18%,transparent),transparent 74%),radial-gradient(circle at 5% 74%,color-mix(in srgb,var(--venue-accent) 8%,transparent),transparent 29%),linear-gradient(160deg,#121a2a 0%,#0c1120 72%); }
.venue-view { border-top:1px solid rgba(184,219,255,.07); }
.venue-view::after { content:''; position:absolute; z-index:-1; inset:0; opacity:.28; pointer-events:none; background-image:radial-gradient(rgba(180,220,255,.32) .55px,transparent .75px); background-size:22px 22px; mask-image:linear-gradient(#000,transparent 66%); }
.venue-atmosphere { top:-12px; right:-46px; width:230px; height:230px; opacity:.15; }.venue-atmosphere .material-icons { top:27px; right:26px; font-size:180px; }
.venue-signal-route { position:absolute; z-index:-1; top:102px; left:-23px; width:74%; height:170px; pointer-events:none; opacity:.64; }.venue-signal-route::before { content:''; position:absolute; top:54px; right:0; left:0; height:1px; background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--venue-accent) 72%,#bfeaff),transparent); transform:rotate(-13deg); transform-origin:left; box-shadow:0 0 14px var(--venue-glow); }.venue-signal-route i { position:absolute; display:block; width:5px; height:5px; border-radius:50%; background:#d7f4ff; box-shadow:0 0 0 4px color-mix(in srgb,var(--venue-accent) 14%,transparent),0 0 13px var(--venue-accent); }.venue-signal-route i:nth-child(1) { top:49px; left:18%; }.venue-signal-route i:nth-child(2) { top:31px; left:54%; }.venue-signal-route i:nth-child(3) { top:14px; left:84%; }
.venue-identity { min-height:142px; grid-template-columns:61px minmax(0,1fr) 82px; gap:14px; padding:23px 17px 19px; border-bottom:1px solid color-mix(in srgb,var(--venue-accent) 27%,rgba(255,255,255,.08)); background:linear-gradient(111deg,color-mix(in srgb,var(--venue-accent) 20%,#1d2944),rgba(14,18,32,.90) 68%,rgba(12,16,28,.62)); }.venue-identity::after { right:17px; left:17px; height:1px; background:linear-gradient(90deg,var(--venue-accent),rgba(194,231,255,.17) 38%,transparent 78%); }.venue-category-mark { width:57px; height:57px; border-radius:20px 20px 20px 7px; background:linear-gradient(145deg,color-mix(in srgb,var(--venue-accent) 55%,#7e8fa9),#273147); box-shadow:inset 0 1px 0 rgba(255,255,255,.36),0 14px 28px rgba(0,0,0,.27),0 0 28px var(--venue-glow); }.venue-category-mark .material-icons { font-size:31px; }.venue-title > span { color:color-mix(in srgb,var(--venue-accent) 84%,#fff); font-size:9px; letter-spacing:.15em; }.venue-title h1 { margin:5px 0; font-size:clamp(22px,5.8vw,31px); font-weight:690; letter-spacing:-.05em; line-height:1.02; }.venue-title p { color:#b8c6d9; font-size:11px; }.venue-local-state { display:flex; align-items:center; gap:4px; margin-top:7px; color:#91e1b6; font-size:9px; font-weight:800; letter-spacing:.03em; }.venue-local-state .material-icons { font-size:12px; }.venue-local-state-view { color:#a8cbe9; }.venue-utility-actions { display:flex; align-items:start; gap:6px; }.venue-hours { width:38px; height:38px; border-color:rgba(194,224,255,.16); border-radius:13px 13px 13px 5px; background:rgba(8,15,29,.34); box-shadow:inset 0 1px 0 rgba(255,255,255,.08); }.venue-room-qr .material-icons { color:var(--venue-accent); }
.venue-title > span { display:flex; align-items:center; gap:5px; }.venue-title > span .material-icons { font-size:12px; text-shadow:0 0 13px var(--venue-glow); }
.venue-rating { width:calc(100% - 32px); min-height:78px; margin:16px 16px 12px; padding:12px 14px; border-color:color-mix(in srgb,var(--venue-accent) 42%,rgba(255,255,255,.12)); border-radius:18px; background:linear-gradient(115deg,color-mix(in srgb,var(--venue-accent) 17%,rgba(255,255,255,.06)),rgba(13,19,33,.72)); box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 14px 29px rgba(0,0,0,.15); }.venue-rating::before { content:''; position:absolute; top:0; left:17px; width:40%; height:1px; background:linear-gradient(90deg,var(--venue-accent),transparent); }.venue-rating::after { right:14px; bottom:9px; font-size:7px; }.venue-rating-number strong { color:#fff1b6; font-size:28px; text-shadow:0 0 18px rgba(255,216,112,.16); }.venue-rating-number span { color:#aabbd0; font-size:8px; }.venue-stars { gap:1px; }.venue-stars .material-icons { font-size:21px; }.venue-rating-meta { min-width:48px; }.venue-rating-meta b { color:#e9f3ff; font-size:15px; }.venue-rating-meta span { color:#aabbd0; }
.venue-actions { gap:0; margin:0 16px 17px; overflow:hidden; border:1px solid rgba(192,218,255,.14); border-radius:18px; background:rgba(8,14,27,.36); box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 11px 23px rgba(0,0,0,.11); }.venue-action { position:relative; min-height:86px; border:0; border-radius:0; background:transparent; box-shadow:none; }.venue-action + .venue-action { border-left:1px solid rgba(193,218,255,.11); }.venue-action::before { content:''; position:absolute; top:0; width:32%; height:1px; background:linear-gradient(90deg,transparent,var(--venue-accent),transparent); opacity:.7; }.venue-action:hover { transform:none; background:color-mix(in srgb,var(--venue-accent) 10%,rgba(255,255,255,.025)); }.venue-action .material-icons { font-size:25px; }.venue-action span { font-size:11px; }.venue-action small { max-width:92%; color:#9baec4; font-size:8px; }
.venue-voices { position:relative; margin:0 16px 21px; padding:18px 15px 13px; border-color:rgba(194,220,255,.15); border-radius:21px; background:linear-gradient(145deg,rgba(31,43,70,.78),rgba(13,19,33,.84)); box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 17px 34px rgba(0,0,0,.15); }.venue-voices::before { content:''; position:absolute; top:0; left:16px; width:54px; height:2px; border-radius:0 0 3px 3px; background:linear-gradient(90deg,var(--venue-accent),#b8e6ff); box-shadow:0 0 14px var(--venue-glow); }.venue-voices-head { margin-bottom:12px; }.venue-voices-head h2 { font-size:17px; letter-spacing:-.025em; }.venue-voices-head button { color:#c8eaff; }.venue-voice { grid-template-columns:36px minmax(0,1fr); gap:10px; padding:12px 0; }.venue-voice lup-avatar,.venue-voice lup-avatar .avatar,.venue-voice lup-avatar img { width:36px; height:36px; }.venue-voice-main p { color:#d8e2f0; font-size:11px; line-height:1.45; }.venue-note { margin:0 16px 28px; padding:13px; border-left-width:3px; color:#bfcddd; }
@media (max-width:360px) { .venue-identity { grid-template-columns:49px minmax(0,1fr) 34px; gap:10px; padding:18px 11px 16px; }.venue-category-mark { width:47px; height:47px; }.venue-title h1 { font-size:20px; }.venue-rating,.venue-actions,.venue-voices,.venue-note { width:calc(100% - 22px); margin-right:11px; margin-left:11px; }.venue-action small { display:none; } }
@media (prefers-reduced-motion:reduce) { .venue-signal-route { display:none; } }

/* Location detail: a layered place-card.  The category colour remains the
 * only changing visual signal, while motion stays far behind the content. */
.venue-view {
  isolation:isolate;
  background:
    radial-gradient(ellipse 105% 42% at 54% -12%,color-mix(in srgb,var(--venue-accent) 25%,transparent),transparent 72%),
    radial-gradient(circle at 6% 76%,color-mix(in srgb,var(--venue-accent) 11%,transparent),transparent 31%),
    linear-gradient(158deg,#141d31 0%,#0d1322 60%,#0a101c 100%);
}
.venue-view::before {
  content:'';
  position:absolute;
  z-index:-2;
  inset:0;
  pointer-events:none;
  opacity:.76;
  background:
    radial-gradient(circle at 12% 18%,color-mix(in srgb,var(--venue-accent) 58%,#e8f7ff) 0 1px,transparent 1.7px),
    radial-gradient(circle at 70% 25%,rgba(203,238,255,.34) 0 1px,transparent 1.7px),
    radial-gradient(circle at 38% 68%,color-mix(in srgb,var(--venue-accent) 44%,#d9f6ff) 0 .8px,transparent 1.5px),
    linear-gradient(122deg,transparent 0 37%,color-mix(in srgb,var(--venue-accent) 19%,transparent) 37.1% 37.3%,transparent 37.4% 100%);
  background-size:173px 151px,211px 183px,137px 119px,100% 100%;
  mask-image:linear-gradient(165deg,#000,rgba(0,0,0,.8) 54%,transparent 96%);
  animation:venue-atmosphere-drift 24s ease-in-out infinite alternate;
}
.venue-view::after { opacity:.17; background-size:25px 25px; }
.venue-atmosphere { opacity:.11; transform:translate3d(0,0,0); animation:venue-orbit 17s ease-in-out infinite alternate; }
.venue-signal-route { opacity:.42; filter:drop-shadow(0 0 8px var(--venue-glow)); animation:venue-route-float 14s ease-in-out infinite alternate; }
.venue-signal-route i:nth-child(2) { animation:venue-signal-pulse 3.8s ease-in-out infinite; }
.venue-identity { box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 15px 31px rgba(0,0,0,.13); }

.venue-cuddle {
  position:relative;
  display:grid;
  grid-template-columns:57px minmax(0,1fr) 24px;
  align-items:center;
  gap:12px;
  width:calc(100% - 32px);
  min-height:86px;
  margin:16px 16px 12px;
  padding:12px 13px;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--venue-accent) 40%,rgba(209,233,255,.16));
  border-radius:19px 19px 19px 7px;
  background:linear-gradient(120deg,color-mix(in srgb,var(--venue-accent) 22%,rgba(36,49,78,.88)),rgba(13,19,33,.91) 66%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 16px 32px rgba(0,0,0,.17),0 0 29px color-mix(in srgb,var(--venue-accent) 9%,transparent);
  color:#f3f8ff;
  cursor:pointer;
  text-align:left;
  transition:transform .20s ease,border-color .20s ease,filter .20s ease,box-shadow .20s ease;
}
.venue-cuddle::before { content:''; position:absolute; top:0; right:0; width:47%; height:1px; background:linear-gradient(90deg,transparent,var(--venue-accent),transparent); opacity:.78; }
.venue-cuddle::after { content:''; position:absolute; right:-36px; bottom:-58px; width:143px; height:143px; border:1px solid color-mix(in srgb,var(--venue-accent) 23%,transparent); border-radius:50%; box-shadow:0 0 0 18px color-mix(in srgb,var(--venue-accent) 4%,transparent); pointer-events:none; }
.venue-cuddle:hover,.venue-cuddle:focus-visible { transform:translateY(-2px); border-color:color-mix(in srgb,var(--venue-accent) 67%,#edf8ff); filter:brightness(1.08); box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 19px 36px rgba(0,0,0,.22),0 0 32px var(--venue-glow); outline:0; }
.venue-cuddle-seal { position:relative; z-index:1; display:grid; place-items:center; width:54px; height:54px; border:1px solid color-mix(in srgb,var(--venue-accent) 64%,rgba(230,248,255,.28)); border-radius:17px 17px 17px 6px; background:linear-gradient(145deg,color-mix(in srgb,var(--venue-accent) 48%,#8fa0ba),#29364f); box-shadow:inset 0 1px 0 rgba(255,255,255,.36),0 10px 20px rgba(0,0,0,.22),0 0 23px var(--venue-glow); color:#fff; }
.venue-cuddle-seal .material-icons { font-size:28px; }.venue-cuddle-seal b,.venue-cuddle-seal em { position:absolute; width:5px; height:5px; border-radius:50%; background:#e9f9ff; box-shadow:0 0 10px #d7f5ff; }.venue-cuddle-seal b { top:7px; right:7px; }.venue-cuddle-seal em { bottom:7px; left:7px; }
.venue-cuddle-copy { position:relative; z-index:1; display:grid; min-width:0; gap:2px; }.venue-cuddle-copy small { color:color-mix(in srgb,var(--venue-accent) 76%,#eaf8ff); font-size:8px; font-weight:880; letter-spacing:.14em; }.venue-cuddle-copy strong { overflow:hidden; color:#f5f8ff; font-size:16px; font-weight:760; letter-spacing:-.025em; text-overflow:ellipsis; white-space:nowrap; }.venue-cuddle-copy > span { overflow:hidden; color:#b8c7d9; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.venue-cuddle-arrow { position:relative; z-index:1; color:var(--venue-accent); font-size:20px; text-shadow:0 0 13px var(--venue-glow); }
.venue-actions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }.venue-action { min-height:80px; border-radius:16px; }.venue-action + .venue-action { border-left:0; }
.venue-voices { overflow:hidden; }.venue-voices::after { content:''; position:absolute; z-index:0; right:-57px; bottom:-72px; width:172px; height:172px; border:1px solid color-mix(in srgb,var(--venue-accent) 16%,transparent); border-radius:50%; box-shadow:0 0 0 22px color-mix(in srgb,var(--venue-accent) 3%,transparent); pointer-events:none; }.venue-voices > * { position:relative; z-index:1; }
@keyframes venue-atmosphere-drift { from { transform:translate3d(-1.4%,-.8%,0); } to { transform:translate3d(1.8%,1.2%,0); } }
@keyframes venue-orbit { from { transform:translate3d(0,0,0) rotate(-3deg); } to { transform:translate3d(-10px,9px,0) rotate(4deg); } }
@keyframes venue-route-float { from { transform:translate3d(-2px,0,0); } to { transform:translate3d(7px,6px,0); } }
@keyframes venue-signal-pulse { 0%,100% { opacity:.56; transform:scale(.82); } 50% { opacity:1; transform:scale(1.3); } }
@media (max-width:360px) { .venue-cuddle { width:calc(100% - 22px); margin-right:11px; margin-left:11px; grid-template-columns:48px minmax(0,1fr) 18px; gap:9px; padding:11px; }.venue-cuddle-seal { width:46px; height:46px; }.venue-cuddle-seal .material-icons { font-size:24px; }.venue-cuddle-copy strong { font-size:14px; }.venue-cuddle-copy > span { font-size:9px; }.venue-actions { margin-right:11px; margin-left:11px; } }
@media (prefers-reduced-motion:reduce) { .venue-view::before,.venue-atmosphere,.venue-signal-route,.venue-signal-route i:nth-child(2) { animation:none; } }

/* One decisive destination interaction replaces a row of competing cards. */
.venue-map-portal { position:relative; display:grid; grid-template-columns:95px minmax(0,1fr) 25px; align-items:center; gap:14px; min-height:145px; margin:13px 16px 10px; padding:14px 14px 14px 11px; overflow:hidden; border:1px solid color-mix(in srgb,var(--venue-accent) 42%,rgba(210,235,255,.15)); border-radius:24px 24px 24px 8px; background:linear-gradient(125deg,color-mix(in srgb,var(--venue-accent) 24%,rgba(38,53,86,.92)),rgba(10,16,29,.94) 66%); box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 20px 39px rgba(0,0,0,.20),0 0 39px color-mix(in srgb,var(--venue-accent) 10%,transparent); color:#f5f9ff; text-decoration:none; transition:transform .22s ease,border-color .22s ease,filter .22s ease,box-shadow .22s ease; }
.venue-map-portal::before { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(118deg,transparent 0 52%,rgba(255,255,255,.07) 52.2% 52.5%,transparent 52.8% 100%); opacity:.44; }.venue-map-portal::after { content:''; position:absolute; top:-76px; right:-55px; width:215px; height:215px; border:1px solid color-mix(in srgb,var(--venue-accent) 20%,transparent); border-radius:50%; box-shadow:0 0 0 24px color-mix(in srgb,var(--venue-accent) 3%,transparent),0 0 0 49px color-mix(in srgb,var(--venue-accent) 2%,transparent); pointer-events:none; }.venue-map-portal:hover,.venue-map-portal:focus-visible { transform:translateY(-3px); border-color:color-mix(in srgb,var(--venue-accent) 73%,#eaf8ff); filter:brightness(1.08); box-shadow:inset 0 1px 0 rgba(255,255,255,.19),0 25px 45px rgba(0,0,0,.24),0 0 44px var(--venue-glow); outline:0; }
.venue-map-orbit { position:relative; z-index:1; display:grid; place-items:center; width:91px; height:91px; border:1px solid color-mix(in srgb,var(--venue-accent) 48%,rgba(220,246,255,.22)); border-radius:50% 50% 50% 16px; background:radial-gradient(circle at 35% 24%,rgba(255,255,255,.32),transparent 31%),linear-gradient(145deg,color-mix(in srgb,var(--venue-accent) 57%,#8496b6),#293850 68%); box-shadow:inset 0 1px 0 rgba(255,255,255,.36),0 15px 28px rgba(0,0,0,.24),0 0 34px var(--venue-glow); animation:venue-pin-hover 4.8s ease-in-out infinite; }.venue-map-orbit::before,.venue-map-orbit::after { content:''; position:absolute; border:1px solid color-mix(in srgb,var(--venue-accent) 38%,transparent); border-radius:50%; pointer-events:none; }.venue-map-orbit::before { inset:-13px; opacity:.55; }.venue-map-orbit::after { inset:-28px; opacity:.22; }.venue-map-orbit i { position:relative; z-index:2; font-size:54px; color:#fff; text-shadow:0 3px 7px rgba(8,17,38,.48),0 0 21px rgba(230,249,255,.48); }.venue-map-orbit b,.venue-map-orbit em { position:absolute; z-index:3; width:7px; height:7px; border-radius:50%; background:#e8f8ff; box-shadow:0 0 13px #d8f7ff; }.venue-map-orbit b { top:4px; right:14px; }.venue-map-orbit em { bottom:13px; left:7px; }
.venue-map-copy { position:relative; z-index:1; display:grid; min-width:0; gap:4px; }.venue-map-copy small { color:color-mix(in srgb,var(--venue-accent) 78%,#eaf8ff); font-size:8px; font-weight:880; letter-spacing:.16em; }.venue-map-copy strong { overflow:hidden; color:#f4f8ff; font-size:20px; font-weight:760; letter-spacing:-.035em; line-height:1.04; text-overflow:ellipsis; white-space:nowrap; }.venue-map-copy > span { display:-webkit-box; overflow:hidden; color:#b7c8dc; font-size:10px; line-height:1.35; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.venue-map-arrow { position:relative; z-index:1; color:var(--venue-accent); font-size:22px; text-shadow:0 0 15px var(--venue-glow); }
.venue-cuddle-hub { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:8px; margin:0 16px 13px; }.venue-cuddle-count,.venue-cuddle-claim { min-height:86px; padding:12px; border:1px solid rgba(203,226,255,.13); border-radius:17px; background:linear-gradient(145deg,rgba(29,42,68,.85),rgba(11,17,30,.88)); box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 11px 22px rgba(0,0,0,.13); }.venue-cuddle-count { display:grid; align-content:center; gap:1px; }.venue-cuddle-count span { color:var(--venue-accent); font-size:8px; font-weight:850; letter-spacing:.13em; }.venue-cuddle-count strong { color:#f5fbff; font-size:32px; font-weight:760; line-height:.92; text-shadow:0 0 20px var(--venue-glow); }.venue-cuddle-count small { color:#aebed0; font-size:8px; line-height:1.2; }.venue-cuddle-claim { display:grid; grid-template-columns:30px minmax(0,1fr); grid-template-rows:auto auto; align-items:center; column-gap:9px; color:#edf8ff; cursor:pointer; font:inherit; text-align:left; transition:transform .18s ease,border-color .18s ease,background .18s ease; }.venue-cuddle-claim .material-icons { grid-row:1 / -1; color:var(--venue-accent); font-size:29px; text-shadow:0 0 16px var(--venue-glow); }.venue-cuddle-claim span { overflow:hidden; font-size:12px; font-weight:760; text-overflow:ellipsis; white-space:nowrap; }.venue-cuddle-claim small { overflow:hidden; color:#a9bbcf; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }.venue-cuddle-claim:hover,.venue-cuddle-claim:focus-visible { transform:translateY(-2px); border-color:color-mix(in srgb,var(--venue-accent) 53%,rgba(222,244,255,.20)); background:color-mix(in srgb,var(--venue-accent) 11%,rgba(29,42,68,.85)); outline:0; }
.venue-actions { grid-template-columns:1fr; margin-top:0; }.venue-action { min-height:65px; flex-direction:row; justify-content:flex-start; gap:9px; padding:10px 14px; text-align:left; }.venue-action .material-icons { flex:0 0 auto; }.venue-action span { font-size:12px; }.venue-action small { margin-left:auto; max-width:48%; text-align:right; }
@keyframes venue-pin-hover { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-7px); } }
@media (max-width:360px) { .venue-map-portal { grid-template-columns:70px minmax(0,1fr) 17px; min-height:122px; gap:10px; margin-right:11px; margin-left:11px; padding:11px 10px; }.venue-map-orbit { width:66px; height:66px; }.venue-map-orbit i { font-size:42px; }.venue-map-copy strong { font-size:16px; }.venue-cuddle-hub { margin-right:11px; margin-left:11px; }.venue-cuddle-count,.venue-cuddle-claim { min-height:79px; padding:9px; }.venue-cuddle-count strong { font-size:28px; }.venue-cuddle-claim { grid-template-columns:25px minmax(0,1fr); column-gap:6px; }.venue-cuddle-claim .material-icons { font-size:24px; } }

/* Table lounge: the visual foundation for six secure, local mini rooms. */
.location-chat-surface { background:radial-gradient(ellipse 88% 23% at 50% 0%,color-mix(in srgb,var(--venue-accent) 16%,transparent),transparent 76%),linear-gradient(160deg,#11192a,#0b1120); }
.chat-table-trigger { position:absolute; z-index:4; top:10px; right:11px; display:grid; place-items:center; width:38px; height:38px; padding:0; border:1px solid color-mix(in srgb,var(--venue-accent) 48%,rgba(219,239,255,.22)); border-radius:13px 13px 7px 13px; background:linear-gradient(145deg,color-mix(in srgb,var(--venue-accent) 30%,#2a4161),rgba(13,22,39,.94)); box-shadow:inset 0 1px rgba(255,255,255,.22),0 8px 17px rgba(0,0,0,.23),0 0 17px var(--venue-glow); color:#ecf8ff; cursor:pointer; transition:transform .18s ease,filter .18s ease; }.chat-table-trigger:hover,.chat-table-trigger:focus-visible { transform:translateY(-2px) scale(1.04); filter:brightness(1.12); outline:0; }.chat-table-trigger > .material-icons { font-size:20px; }.chat-table-guests { position:absolute; right:-5px; bottom:-5px; display:grid; place-items:center; width:16px; height:16px; border:1px solid rgba(222,246,255,.48); border-radius:50%; background:#1d3153; box-shadow:0 2px 8px rgba(0,0,0,.28); }.chat-table-guests .material-icons { font-size:10px; }
.venue-table-lounge { position:relative; z-index:2; margin:12px 14px 7px; padding:13px; overflow:hidden; border:1px solid color-mix(in srgb,var(--venue-accent) 26%,rgba(199,223,255,.13)); border-radius:18px; background:linear-gradient(125deg,color-mix(in srgb,var(--venue-accent) 12%,rgba(35,45,71,.72)),rgba(10,16,30,.86)); box-shadow:inset 0 1px rgba(255,255,255,.10),0 12px 26px rgba(0,0,0,.16); }
.venue-table-lounge::after { content:''; position:absolute; top:-45px; right:-26px; width:126px; height:126px; border:1px solid color-mix(in srgb,var(--venue-accent) 22%,transparent); border-radius:50%; box-shadow:0 0 0 19px color-mix(in srgb,var(--venue-accent) 4%,transparent),0 0 28px var(--venue-glow); pointer-events:none; }
.venue-table-lounge-head { position:relative; z-index:1; display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:10px; }.venue-table-lounge-head span { display:flex; align-items:center; gap:4px; color:var(--venue-accent); font-size:8px; font-weight:850; letter-spacing:.14em; }.venue-table-lounge-head span .material-icons { font-size:12px; }.venue-table-lounge-head h2 { margin:3px 0 0; color:#f3f7ff; font-size:15px; line-height:1.1; letter-spacing:-.02em; }.venue-table-lounge-head small { padding:5px 7px; border:1px solid rgba(200,224,255,.13); border-radius:9px; background:rgba(5,11,23,.25); color:#aabbd0; font-size:8px; white-space:nowrap; }
.venue-table-grid { position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }.venue-table-seat { display:grid; justify-items:center; gap:2px; min-height:67px; padding:7px 3px; border:1px solid rgba(199,222,255,.12); border-radius:12px; background:rgba(255,255,255,.025); color:#dce8f8; font:inherit; cursor:pointer; transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease; }.venue-table-seat .material-icons { color:var(--venue-accent); font-size:21px; text-shadow:0 0 12px var(--venue-glow); }.venue-table-seat strong { font-size:10px; font-weight:760; }.venue-table-seat span { color:#94a8c0; font-size:8px; }.venue-table-seat:hover,.venue-table-seat:focus-visible { transform:translateY(-2px); border-color:color-mix(in srgb,var(--venue-accent) 52%,rgba(255,255,255,.16)); background:color-mix(in srgb,var(--venue-accent) 12%,rgba(255,255,255,.035)); outline:0; }.venue-table-seat.is-selected { border-color:color-mix(in srgb,var(--venue-accent) 72%,#dff6ff); background:linear-gradient(145deg,color-mix(in srgb,var(--venue-accent) 28%,rgba(255,255,255,.06)),rgba(255,255,255,.035)); box-shadow:inset 0 1px rgba(255,255,255,.18),0 0 22px var(--venue-glow); }.venue-table-seat.is-selected span { color:#e8f6ff; }
.venue-table-hint { position:relative; z-index:1; display:flex; align-items:flex-start; gap:6px; margin:10px 1px 0; color:#a6b8cf; font-size:9px; line-height:1.35; }.venue-table-hint .material-icons { flex:0 0 auto; color:var(--venue-accent); font-size:14px; }.venue-table-hint.is-selected { color:#d4e6f9; }
@media (max-width:360px) { .venue-table-lounge { margin-right:10px; margin-left:10px; padding:11px; }.venue-table-seat { min-height:62px; }.venue-table-lounge-head h2 { font-size:14px; } }
@media (max-width:360px) { .lup-top-bar .location-top-icon { display:none; }.lup-top-bar .location-top-identity { flex:1 1 auto; margin-left:0; }.lup-top-bar .location-top-copy .room-name { font-size:12px; }.lup-top-bar .location-top-copy > span { font-size:8px; letter-spacing:.025em; }.lup-top-bar .md-toolbar-tools > .md-icon-button { min-width:34px; width:34px; margin:0; }.lup-top-bar div.lup-avatar { width:30px; height:30px; margin-left:4px; } }

.lup-table-dialog { width:min(420px,calc(100vw - 28px)); overflow:hidden; border:1px solid rgba(194,220,255,.17); border-radius:22px; background:linear-gradient(155deg,#17243b,#0b1120); box-shadow:0 28px 76px rgba(0,0,0,.52); color:#edf5ff; }.lup-table-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:20px 19px 15px; border-bottom:1px solid rgba(190,219,255,.12); background:radial-gradient(circle at 91% 0%,rgba(113,168,239,.25),transparent 35%),linear-gradient(120deg,rgba(88,126,194,.25),rgba(13,20,35,.16)); }.lup-table-dialog-head span { display:flex; align-items:center; gap:5px; color:#a8dcff; font-size:9px; font-weight:850; letter-spacing:.14em; }.lup-table-dialog-head span .material-icons { font-size:13px; }.lup-table-dialog-head h2 { margin:4px 0; color:#f7fbff; font-size:21px; letter-spacing:-.03em; }.lup-table-dialog-head p { max-width:240px; margin:0; color:#acbdd3; font-size:11px; line-height:1.4; }.lup-table-dialog-head > button { display:grid; place-items:center; width:33px; height:33px; padding:0; border:1px solid rgba(208,231,255,.15); border-radius:11px; background:rgba(7,13,24,.36); color:#c9dbef; cursor:pointer; }.lup-table-dialog-head > button .material-icons { font-size:18px; }.lup-table-dialog-body { padding:15px 16px 18px; }.lup-table-dialog .venue-table-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.lup-table-dialog-explainer { display:flex; align-items:flex-start; gap:8px; margin:14px 1px 0; padding:10px 11px; border-left:2px solid #94d9ff; background:rgba(123,179,233,.07); color:#b7c9df; font-size:10px; line-height:1.4; }.lup-table-dialog-explainer .material-icons { flex:0 0 auto; color:#9edcff; font-size:17px; }.lup-table-dialog-explainer p { margin:0; }.lup-table-dialog-explainer.is-selected { border-left-color:#a5e4bd; background:rgba(89,188,140,.08); color:#d8ebdf; }.lup-table-dialog-explainer.is-selected .material-icons { color:#a5e4bd; }

/* One shared midnight map surface for every location detail. Categories keep
   their colour only on their own mark and actions – never as a different page. */
.venue-view { background:radial-gradient(ellipse 92% 34% at 50% -8%,rgba(89,155,220,.16),transparent 72%),radial-gradient(circle at 7% 78%,rgba(99,127,190,.07),transparent 32%),linear-gradient(160deg,#121a2a 0%,#0d1322 62%,#0a101c 100%); }
.venue-view::before { background:radial-gradient(circle at 12% 18%,rgba(202,235,255,.38) 0 1px,transparent 1.7px),radial-gradient(circle at 70% 25%,rgba(203,238,255,.30) 0 1px,transparent 1.7px),radial-gradient(circle at 38% 68%,rgba(166,211,255,.26) 0 .8px,transparent 1.5px),linear-gradient(122deg,transparent 0 37%,rgba(139,196,255,.12) 37.1% 37.3%,transparent 37.4% 100%); }
.venue-view.location-category-country { --venue-accent:#8ec9ff; --venue-glow:rgba(94,175,243,.26); }
.venue-title h1 { overflow-wrap:anywhere; word-break:break-word; }
.venue-map-portal--regional { width:calc(100% - 32px); padding:14px 14px 14px 11px; font:inherit; text-align:left; cursor:pointer; }
.venue-qr-trigger { display:flex; align-items:center; justify-content:center; gap:7px; width:calc(100% - 32px); min-height:42px; margin:0 16px 12px; border:1px solid color-mix(in srgb,var(--venue-accent) 34%,rgba(210,235,255,.16)); border-radius:13px; background:rgba(15,22,42,.74); color:#f5f9ff; cursor:pointer; font:inherit; font-size:12px; font-weight:800; letter-spacing:.04em; }
.venue-qr-trigger .material-icons { color:var(--venue-accent); font-size:21px; }

/* The voices entry is a single, calm doorway into the local conversation. */
.venue-actions { overflow:visible; border:0; border-radius:0; background:transparent; box-shadow:none; }
.venue-action { position:relative; display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:10px; min-height:66px; padding:10px 13px; overflow:hidden; border:1px solid rgba(198,222,255,.14); border-radius:17px; background:linear-gradient(112deg,color-mix(in srgb,var(--venue-accent) 11%,rgba(30,42,68,.72)),rgba(10,16,29,.72)); box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 11px 23px rgba(0,0,0,.12); }
.venue-action::before { content:''; position:absolute; top:0; left:17px; width:53px; height:1px; background:linear-gradient(90deg,var(--venue-accent),transparent); opacity:.70; }.venue-action .material-icons { display:grid; place-items:center; width:34px; height:34px; margin:0; border:1px solid color-mix(in srgb,var(--venue-accent) 34%,rgba(208,230,255,.19)); border-radius:11px 11px 11px 4px; background:color-mix(in srgb,var(--venue-accent) 14%,rgba(255,255,255,.035)); color:var(--venue-accent); font-size:19px; text-shadow:0 0 13px var(--venue-glow); }.venue-action span { overflow:hidden; color:#f2f7ff; font-size:12px; font-weight:780; text-overflow:ellipsis; white-space:nowrap; }.venue-action small { position:relative; max-width:115px; margin:0; padding-right:17px; color:#aebed2; font-size:8px; line-height:1.25; text-align:right; white-space:normal; }.venue-action small::after { content:'›'; position:absolute; top:50%; right:0; color:var(--venue-accent); font-size:21px; line-height:1; transform:translateY(-52%); }.venue-action:hover,.venue-action:focus-visible { transform:translateY(-2px); border-color:color-mix(in srgb,var(--venue-accent) 48%,rgba(219,240,255,.20)); background:linear-gradient(112deg,color-mix(in srgb,var(--venue-accent) 17%,rgba(30,42,68,.72)),rgba(10,16,29,.72)); outline:0; }
@media (max-width:360px) { .venue-action { grid-template-columns:32px minmax(0,1fr) auto; gap:8px; min-height:60px; padding:9px 11px; }.venue-action .material-icons { width:30px; height:30px; font-size:17px; }.venue-action small { display:none; } }
