/* Site-wide legal, consent and readability layer.  It intentionally does not
   style the audio player, Mini Chat or donate widgets. */
:root { --dj-cookie-cyan:#74f1ff; --dj-cookie-pink:#ff68bd; --dj-cookie-panel:rgba(8,15,32,.96); }

.dj-cookie-banner {
  position:fixed;
  z-index:2147483000;
  right:max(14px, env(safe-area-inset-right));
  bottom:max(14px, env(safe-area-inset-bottom));
  left:max(14px, env(safe-area-inset-left));
  width:min(760px, calc(100vw - 28px));
  margin-inline:auto;
  padding:16px;
  border:1px solid rgba(116,241,255,.42);
  border-radius:18px;
  color:#edfaff;
  background:linear-gradient(135deg, rgba(15,35,57,.98), var(--dj-cookie-panel));
  box-shadow:0 18px 52px rgba(0,0,0,.48), 0 0 24px rgba(78,226,255,.12);
}
.dj-cookie-banner[hidden] { display:none !important; }
.dj-cookie-content { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; align-items:center; }
.dj-cookie-title { margin:0 0 4px; font-size:16px; font-weight:900; letter-spacing:.01em; }
.dj-cookie-copy { margin:0; color:#b8cfdf; font-size:14px; line-height:1.5; }
.dj-cookie-copy a { color:var(--dj-cookie-cyan); font-weight:800; }
.dj-cookie-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.dj-cookie-button {
  min-height:42px;
  padding:9px 12px;
  border:1px solid rgba(116,241,255,.37);
  border-radius:11px;
  color:#edfaff;
  background:rgba(255,255,255,.055);
  font:800 14px/1.1 inherit;
  cursor:pointer;
}
.dj-cookie-button--primary { color:#05131c; background:linear-gradient(100deg,#59e7c9,#47c3f4); }
.dj-cookie-button:hover,.dj-cookie-button:focus-visible { outline:none; border-color:var(--dj-cookie-cyan); box-shadow:0 0 0 3px rgba(116,241,255,.14),0 0 16px rgba(255,104,189,.12); }

.dj-cookie-dialog {
  width:min(560px, calc(100vw - 28px));
  margin:auto;
  padding:0;
  border:1px solid rgba(116,241,255,.42);
  border-radius:20px;
  color:#effbff;
  background:#091223;
  box-shadow:0 30px 90px rgba(0,0,0,.64),0 0 26px rgba(96,220,255,.12);
}
.dj-cookie-dialog::backdrop { background:rgba(1,5,14,.76); backdrop-filter:blur(3px); }
.dj-cookie-dialog__body { padding:22px; }
.dj-cookie-dialog h2 { margin:0 0 7px; font-size:22px; }
.dj-cookie-dialog p { color:#b7cada; line-height:1.55; }
.dj-cookie-choice { display:flex; align-items:flex-start; gap:10px; margin:13px 0; padding:12px; border:1px solid rgba(116,241,255,.18); border-radius:13px; background:rgba(255,255,255,.035); }
.dj-cookie-choice input { width:18px; height:18px; margin:2px 0 0; accent-color:#57e4cf; }
.dj-cookie-choice label { display:grid; gap:2px; cursor:pointer; }
.dj-cookie-choice strong { color:#edfaff; }
.dj-cookie-choice span { color:#aebfd0; font-size:14px; }
.dj-cookie-dialog__actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:9px; margin-top:18px; }

/* Reduce the strongest inherited glow without changing brand hues. */
html body .rgb-neon-title {
  text-shadow:0 0 2px rgba(137,250,255,.70),0 0 7px rgba(49,207,255,.40),0 0 13px rgba(235,82,220,.22) !important;
  animation:rgbNeonFlow 9s linear infinite !important;
}
html body #list.lobby .collection-card h2 { text-shadow:0 0 8px rgba(91,237,255,.20),0 1px 0 rgba(0,0,0,.34) !important; }
html body .room-owner-label { text-shadow:0 1px 0 rgba(0,0,0,.42),0 0 7px rgba(52,202,255,.11) !important; }
html body .room-access-open,html body .room-access-private { text-shadow:0 0 6px currentColor !important; }
html body .lobby-section-title { text-shadow:0 1px 0 rgba(0,0,0,.45),0 0 10px rgba(68,205,255,.15) !important; }

.banner3d-frame { display:block; height:160px; margin-bottom:20px; overflow:hidden; border-radius:22px; background:linear-gradient(105deg,#071525 10%,#102d49 35%,#16153b 54%,#071525 80%); background-size:200% 100%; animation:dj-banner-skeleton 1.4s linear infinite; }
.banner3d-frame .banner3d { height:100%; margin:0; }
.banner3d-frame:has(.banner3d[src]) { animation:none; }
.room-skeletons { display:contents; }
.room-skeleton { min-height:206px; overflow:hidden; background:linear-gradient(110deg,rgba(16,34,54,.96) 16%,rgba(36,77,106,.68) 33%,rgba(16,34,54,.96) 50%); background-size:210% 100%; animation:dj-room-skeleton 1.35s ease-in-out infinite; }
.room-skeleton::before,.room-skeleton::after { content:""; display:block; width:64%; height:18px; margin:18px auto; border-radius:999px; background:rgba(204,246,255,.14); }
.room-skeleton::after { width:42%; height:42px; margin-top:42px; }
@keyframes dj-banner-skeleton { to { background-position:-200% 0; } }
@keyframes dj-room-skeleton { to { background-position:-210% 0; } }

.site-footer .footer-policy-links { display:flex; flex-wrap:wrap; gap:8px 13px; margin:0; }
.site-footer .footer-grid { grid-template-columns:1.25fr 1fr 1fr; align-items:start; }
.site-footer .footer-policy-links a,.site-footer .footer-cookie-settings { color:#a8f6ff; font:800 13px/1.35 inherit; }
.site-footer .footer-cookie-settings { padding:0; border:0; background:none; text-align:left; cursor:pointer; }
.site-footer .footer-cookie-settings:hover,.site-footer .footer-cookie-settings:focus-visible { color:#fff; text-decoration:underline; outline:none; }
.site-footer .dmca-badge { display:inline-flex; align-items:center; justify-content:center; line-height:0; }
.site-footer .dmca-badge img { display:block; width:120px; height:auto; }
.site-footer .footer-dmca { display:flex; justify-content:center; margin-top:18px; }
.site-footer:not(footer) { display:flex; align-items:center; justify-content:center; gap:10px; min-height:42px; }
body:has(> .site-footer[style*="position: fixed"]),body:has(> .site-footer:not(footer)) { padding-bottom:54px; }

@media (max-width:680px) {
  .dj-cookie-banner { width:calc(100vw - 20px); right:10px; bottom:max(10px, env(safe-area-inset-bottom)); left:10px; padding:14px; }
  .dj-cookie-content { grid-template-columns:1fr; gap:12px; }
  .dj-cookie-actions { justify-content:stretch; }
  .dj-cookie-button { flex:1 1 45%; min-height:46px; }
  .banner3d-frame { height:105px; }
  .room-skeleton { min-height:178px; }
  .dj-cookie-dialog__actions .dj-cookie-button { flex:1; }
  .site-footer .footer-grid { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .rgb-neon-title,.banner3d-frame,.room-skeleton { animation:none !important; }
}

/* Compact essential-cookie notice: the document reserves its height so player
   controls and the footer never sit underneath the notice. */
.dj-cookie-banner {
  right:auto;
  bottom:max(6px, env(safe-area-inset-bottom));
  left:50%;
  width:min(500px, calc(100vw - 16px));
  margin:0;
  padding:6px 8px;
  border-radius:14px;
  transform:translateX(-50%);
  box-shadow:0 10px 28px rgba(0,0,0,.36),0 0 14px rgba(78,226,255,.08);
}
.dj-cookie-content { gap:10px; }
.dj-cookie-title { margin:0; font-size:12px; white-space:nowrap; }
.dj-cookie-copy { display:none; }
.dj-cookie-actions { flex-wrap:nowrap; gap:7px; }
.dj-cookie-button,.dj-cookie-link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:7px 10px;
  border:1px solid rgba(116,241,255,.37);
  border-radius:10px;
  color:#edfaff;
  background:rgba(255,255,255,.055);
  font:800 12px/1.1 inherit;
  text-decoration:none;
  white-space:nowrap;
}
.dj-cookie-link:hover,.dj-cookie-link:focus-visible {
  outline:none;
  border-color:var(--dj-cookie-cyan);
  box-shadow:0 0 0 3px rgba(116,241,255,.12);
}
html.dj-cookie-visible {
  height:100%;
  overflow:hidden;
}
html.dj-cookie-visible body.dj-cookie-visible {
  height:calc(100dvh - var(--dj-cookie-banner-space, 0px));
  min-height:0;
  overflow-y:auto;
  padding-bottom:0 !important;
  scroll-padding-bottom:0;
  scrollbar-gutter:stable;
}
html.dj-cookie-visible body.dj-cookie-visible .site-footer {
  bottom:var(--dj-cookie-banner-space, 0px);
}

/* Keep the neon identity while making titles and room names sharper. */
html body .rgb-neon-title {
  text-shadow:0 0 1px rgba(137,250,255,.62),0 0 4px rgba(49,207,255,.28),0 0 9px rgba(235,82,220,.16) !important;
}
html body #list.lobby .collection-card h2 { text-shadow:0 0 5px rgba(91,237,255,.14),0 1px 0 rgba(0,0,0,.34) !important; }
html body .room-owner-label { text-shadow:0 1px 0 rgba(0,0,0,.42),0 0 4px rgba(52,202,255,.08) !important; }
html body .room-access-open,html body .room-access-private { text-shadow:0 0 4px currentColor !important; }
html body .lobby-section-title { text-shadow:0 1px 0 rgba(0,0,0,.45),0 0 7px rgba(68,205,255,.11) !important; }

/* Room status is derived from the existing Live and rental state. */
#list.lobby .room-card .lamp {
  display:block;
  top:16px;
  right:16px;
  width:12px;
  height:12px;
  margin:0;
}
#list.lobby .room-card .lamp-live { background:#59e8b7; box-shadow:0 0 9px rgba(89,232,183,.78); animation:dj-live-pulse 1.15s ease-in-out infinite; }
#list.lobby .room-card .lamp-offline { background:#84909d; box-shadow:none; }
#list.lobby .room-card .lamp-pending { background:#ffd35e; box-shadow:0 0 8px rgba(255,211,94,.56); }
#list.lobby .collection-card .lamp { display:none !important; }
#list.lobby .room-status {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:27px;
  margin:3px auto 6px;
  padding:4px 10px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  font-size:13px;
  font-weight:900;
  line-height:1;
}
#list.lobby .room-status-live { color:#bff8df; border-color:rgba(89,232,183,.48); background:rgba(89,232,183,.11); }
#list.lobby .room-status-offline { color:#ced8e1; border-color:rgba(164,176,188,.30); background:rgba(145,157,170,.10); }
#list.lobby .room-status-pending { color:#ffe49a; border-color:rgba(255,211,94,.46); background:rgba(255,211,94,.11); }
@keyframes dj-live-pulse { 0%,100%{opacity:.62;transform:scale(.9)}50%{opacity:1;transform:scale(1.13)} }

#rent .rent-field { display:grid; gap:5px; min-width:0; text-align:left; }
#rent .rent-field > span { color:#c7f5ff; font-size:13px; font-weight:850; }
#rent .rent-field textarea { min-height:92px; resize:vertical; }

@media (max-width:680px) {
  .dj-cookie-banner {
    right:auto;
    bottom:max(4px, env(safe-area-inset-bottom));
    left:50%;
    width:calc(100vw - 12px);
    padding:6px 7px;
  }
  .dj-cookie-content { grid-template-columns:minmax(0,1fr) auto; gap:8px; }
  .dj-cookie-title { display:block; font-size:11px; }
  .dj-cookie-actions { display:flex; }
  .dj-cookie-button,.dj-cookie-link { min-height:32px; padding:7px 8px; font-size:11px; }
  html.dj-cookie-visible body.dj-cookie-visible { height:calc(100dvh - var(--dj-cookie-banner-space, 0px)); }
}
@media (prefers-reduced-motion:reduce) {
  #list.lobby .room-card .lamp-live { animation:none; opacity:1; transform:none; }
}
