/* Aurora Simulator card — shared by the lab page (/tools/physics/aurora-simulator/)
   and the embed (/embed/aurora-simulator/). A self-contained dark card, so it
   reads the same on light and dark pages. Everything is scoped under .au-wrap. */
.au-wrap {
  --au-bg: #070b14;
  --au-panel: #0e1626;
  --au-line: rgba(140, 190, 255, .16);
  --au-text: #e6edf7;
  --au-muted: #9aa8bf;
  --au-green: #46ff9b;
  --au-accent: #34d399;
  box-sizing: border-box;
  max-width: 940px; margin: 0 auto; padding: 14px;
  background: var(--au-bg); border: 1px solid var(--au-line); border-radius: 16px;
  font-family: Outfit, system-ui, sans-serif; color: var(--au-text);
}
.au-wrap * { box-sizing: border-box; }
.au-wrap .au-head h1, .au-wrap .au-head h2 { margin: 2px 2px 4px; font-size: 1.15rem; font-weight: 700; letter-spacing: .01em; color: var(--au-text); }
.au-wrap .au-head p { margin: 0 2px 12px; font-size: .9rem; line-height: 1.45; color: var(--au-muted); }

.au-wrap .au-stage { position: relative; border-radius: 12px; overflow: hidden; border: 1px solid var(--au-line); background: #03050b; }
.au-wrap #au-canvas { display: block; width: 100%; }

.au-wrap .au-controls { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin-top: 12px; }
.au-wrap .au-ctrl { flex: 1 1 240px; }
.au-wrap .au-ctrl label { display: flex; justify-content: space-between; font-size: .85rem; font-weight: 600; color: var(--au-muted); margin-bottom: 6px; }
.au-wrap .au-ctrl label b { color: var(--au-green); font-weight: 700; }
.au-wrap .au-ctrl input[type=range] { width: 100%; accent-color: var(--au-accent); }
.au-wrap .au-btns { display: flex; gap: 8px; }
.au-wrap .au-btn {
  font: 600 .88rem Outfit, system-ui, sans-serif; color: var(--au-text);
  background: var(--au-panel); border: 1px solid var(--au-line); border-radius: 10px;
  padding: 9px 14px; cursor: pointer; min-height: 40px;
}
.au-wrap .au-btn:hover { border-color: rgba(70, 255, 155, .5); }
.au-wrap .au-btn:focus-visible, .au-wrap .au-ctrl input:focus-visible, .au-wrap .au-forecast:focus-visible { outline: 2px solid var(--au-green); outline-offset: 2px; }

.au-wrap .au-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 12px; }
.au-wrap .au-stat { background: var(--au-panel); border: 1px solid var(--au-line); border-radius: 10px; padding: 8px 10px; }
.au-wrap .au-label { display: block; font-size: .74rem; color: var(--au-muted); }
.au-wrap .au-val { display: block; font: 600 1.05rem 'JetBrains Mono', ui-monospace, monospace; color: var(--au-text); margin-top: 2px; }

.au-wrap .au-legend { list-style: none; margin: 12px 2px 0; padding: 0; font-size: .82rem; line-height: 1.5; color: var(--au-muted); }
.au-wrap .au-legend li { margin: 4px 0; }
.au-wrap .au-legend em { color: var(--au-text); font-style: normal; font-weight: 600; }
.au-wrap .au-legend .au-note { font-size: .76rem; opacity: .8; }
.au-wrap .sw { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin: 0 6px 0 2px; vertical-align: -1px; }
.au-wrap .sw-beam { background: #96e1ff; }
.au-wrap .sw-trap { background: #ffa569; }
.au-wrap .sw-green { background: #46ff9b; }
.au-wrap .sw-red { background: #ff4660; margin-left: 10px; }
.au-wrap .sw-purple { background: #aa5fff; margin-left: 10px; }

.au-wrap .au-forecast {
  display: block; margin-top: 12px; padding: 10px 12px; text-align: center;
  font-weight: 700; font-size: .9rem; color: var(--au-green); text-decoration: none;
  background: rgba(70, 255, 155, .07); border: 1px solid rgba(70, 255, 155, .3); border-radius: 10px;
}
.au-wrap .au-forecast:hover { background: rgba(70, 255, 155, .13); }

@media (max-width: 420px) {
  .au-wrap { padding: 10px; border-radius: 12px; }
  .au-wrap .au-stats { grid-template-columns: 1fr; }
}

/* [hidden]-guard (2026-09-29): an author display rule must never beat the hidden attribute (bit 4x: weather, timer, whats-my-ip, image converters). */
[hidden] { display: none !important; }
