:root { color-scheme: dark; --bg: #111317; --fg: #e8e8ea; --dim: #9a9ca3; --accent: #ffd400; --err: #ff6b6b; }
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; background: var(--bg); color: var(--fg);
  font: 14px/1.35 -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif; }
main { display: flex; flex-direction: column; height: 100%; padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); }
.stage { position: relative; flex: 1; min-height: 0; background: #000; }
.stage video, .stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.stage canvas { touch-action: none; }
.bar { padding: 8px 12px 10px; }
.status { font-variant-numeric: tabular-nums; font-weight: 600; }
.sub { color: var(--dim); font-size: 12px; }
.error { color: var(--err); font-size: 12px; min-height: 1em; }
.buttons { display: flex; gap: 8px; margin-top: 6px; flex-wrap: wrap; }
button { flex: 1; min-width: 72px; padding: 10px 8px; border: 1px solid #333844; border-radius: 10px;
  background: #1d2027; color: var(--fg); font: inherit; font-weight: 600; }
button:active { background: #2a2f39; }
#start { background: var(--accent); color: #111; border-color: var(--accent); }
details { margin-top: 8px; color: var(--dim); }
form { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; margin-top: 6px; }
label { display: flex; flex-direction: column; font-size: 12px; gap: 2px; }
input, select { font: inherit; font-size: 16px; padding: 6px 8px; border-radius: 8px; border: 1px solid #333844; background: #1d2027; color: var(--fg); }
.buttons .mode { flex: 1 1 100%; flex-direction: row; align-items: center; justify-content: space-between; color: var(--dim); }
.buttons .mode select { flex: 1; margin-left: 10px; }
