html, body { height: 100%; }
    body { overflow: hidden; } /* wheel never scrolls; only sidebar scrolls */
    .nice-scroll::-webkit-scrollbar { width: 10px; height: 10px; }
    .nice-scroll::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); border-radius: 999px; }
    .nice-scroll::-webkit-scrollbar-track { background: rgba(255,255,255,.04); }

    /* Fullscreen */
    body.is-fullscreen #sidebar { display: none; }
    body.is-fullscreen #stageWrap { padding: 0 !important; }
    body.is-fullscreen #wheelShell { width: min(98vmin, 1700px) !important; }
    body.is-fullscreen #stageMiniBar { display:flex !important; }

    /* Pointer: pointy end points toward names */
    .pointer{
      position:absolute; right:-12px; top:50%;
      transform:translateY(-50%);
      width:0; height:0;
      border-top:16px solid transparent;
      border-bottom:16px solid transparent;
      border-right:26px solid rgba(255,255,255,.92);
      filter: drop-shadow(0 8px 18px rgba(0,0,0,.35));
      z-index:40;
      pointer-events:none;
    }
    .pointer::after{
      content:""; position:absolute; right:-26px; top:-16px;
      width:0; height:0;
      border-top:16px solid transparent;
      border-bottom:16px solid transparent;
      border-right:26px solid rgba(0,0,0,.16);
      transform: translateX(4px);
      z-index:-1;
    }

    .modal-backdrop{
      background: rgba(0,0,0,.65);
      backdrop-filter: blur(6px);
    }

    /* Animated rainbow border for modal */
    @property --rb-angle {
      syntax: "<angle>";
      inherits: false;
      initial-value: 0deg;
    }
    @keyframes rb-spin { to { --rb-angle: 360deg; } }

    .rainbow-frame{
      position: relative;
      border-radius: 24px;
    }
    .rainbow-frame::before{
      content:"";
      position:absolute;
      inset: calc(-1 * var(--rb-thickness, 3px));
      border-radius: 28px;
      background: conic-gradient(
        from var(--rb-angle),
        #ff3b3b, #ffb13b, #fff23b, #3bff7a, #3bd3ff, #6b3bff, #ff3be6, #ff3b3b
      );
      filter: blur(var(--rb-blur, 0px)) saturate(1.25);
      opacity: var(--rb-opacity, 1);
      animation: rb-spin var(--rb-speed, 2.2s) linear infinite;
      z-index: 0;
      pointer-events: none;
    }
    .rainbow-frame > .panel{
      position: relative;
      z-index: 2;
      border-radius: 24px;
      outline: var(--panel-outline-w, 0px) solid rgba(255,255,255,var(--panel-outline-a, 0));
    }
    .rainbow-off::before{ display:none; }

    #stageWrap { overflow: hidden; }

    .settings-stack .rounded-2xl{
      border-radius: 10px;
    }
    .settings-heading{
      margin: 18px 0 8px;
      padding-top: 12px;
      border-top: 1px solid rgba(255,255,255,.08);
      color: rgba(255,255,255,.72);
      font-size: 11px;
      font-weight: 800;
      letter-spacing: 0;
      text-transform: uppercase;
    }
    .settings-heading:first-child{
      margin-top: 0;
      padding-top: 0;
      border-top: 0;
    }
    [data-sound-volume].is-muted{
      opacity: .45;
    }
    [data-sound-volume].is-muted input{
      cursor: not-allowed;
    }
    .csv-ok{
      border-color: rgba(80,220,140,.35) !important;
      background: rgba(80,220,140,.10) !important;
      color: rgba(210,255,225,.9) !important;
    }
    .csv-warn{
      border-color: rgba(255,180,80,.35) !important;
      background: rgba(255,180,80,.10) !important;
      color: rgba(255,230,190,.9) !important;
    }
    .csv-error{
      border-color: rgba(255,80,80,.35) !important;
      background: rgba(255,80,80,.10) !important;
      color: rgba(255,210,210,.9) !important;
    }
