    :root {
      --panel-bg: rgba(12, 16, 22, 0.3);
      --panel-border: rgba(255, 255, 255, 0.1);
      --text: #f4f7fb;
      --muted: #b9c3d1;
      --accent: #5bc0ff;
      --shadow: rgba(0, 0, 0, 0.35);
    }

    * {
      box-sizing: border-box;
    }

    html, body {
      width: 100%;
      height: 100%;
      margin: 0;
      overflow: hidden;
      background: #000;
      font-family: "Avenir Next", "Segoe UI", "PingFang SC", "Hiragino Sans GB", sans-serif;
      color: var(--text);
    }

    #lightCanvas {
      position: fixed;
      inset: 0;
      width: 100vw;
      height: 100vh;
      display: block;
    }

.panel {
      position: fixed;
      top: 12px;
      left: 12px;
      width: min(340px, calc(100vw - 24px));
      border: 1px solid var(--panel-border);
      background: var(--panel-bg);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      border-radius: 14px;
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.28);
      transition: opacity 0.22s ease;
      overflow: hidden;
    }

    .panel.collapsed {
      opacity: 0.92;
    }

    .panel.collapsed .panel-body {
      display: none;
    }

.panel-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 10px 12px;
      border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
    }

    .title {
      font-size: 13px;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: var(--muted);
      margin: 0;
    }

    .panel-body {
      padding: 10px 12px 12px;
      display: grid;
      gap: 9px;
    }

    .panel-header button {
      border: 1px solid rgba(255, 255, 255, 0.18);
      background: rgba(255, 255, 255, 0.07);
      color: var(--text);
      border-radius: 8px;
      height: 28px;
      padding: 0 10px;
      cursor: pointer;
      font-size: 12px;
    }

    .row {
      display: grid;
      grid-template-columns: 110px 1fr auto;
      align-items: center;
      gap: 8px;
    }

    .row label {
      font-size: 12px;
      color: var(--muted);
      white-space: nowrap;
    }

    .row input[type="range"] {
      width: 100%;
      accent-color: var(--accent);
    }

    .row input[type="color"],
    .row select,
    .row button {
      border: 1px solid rgba(255, 255, 255, 0.18);
      background: rgba(255, 255, 255, 0.07);
      color: var(--text);
      border-radius: 8px;
      height: 30px;
      padding: 0 8px;
      outline: none;
    }

    .row input[type="checkbox"] {
      width: 16px;
      height: 16px;
      accent-color: var(--accent);
      justify-self: start;
    }

    .row input[type="color"] {
      padding: 2px;
      width: 52px;
    }

    .row select {
      width: 100%;
    }

    .row button {
      cursor: pointer;
      font-size: 12px;
      transition: background-color 0.15s ease;
    }

    .row button:hover {
      background: rgba(255, 255, 255, 0.14);
    }

    .value {
      width: 62px;
      text-align: right;
      font-size: 12px;
      color: var(--text);
    }

    .actions {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }

    .small {
      font-size: 11px;
      color: var(--muted);
      white-space: nowrap;
    }
