:root{--bg: #0a0a12;--bg-soft: #15151f;--fg: #e8e8ee;--fg-dim: #9ea0ab;--accent: #4ade80;--border: #2a2a36;--danger: #ff6b6b;--ok: #4ade80;--warn: #fbbf24;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--fg);background:var(--bg)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}button{font:inherit;color:inherit;background:transparent;border:1px solid var(--border);border-radius:6px;padding:8px 12px;cursor:pointer}button:hover{background:var(--bg-soft)}button.primary{background:var(--accent);color:#0a0a12;border-color:var(--accent);font-weight:600}input,textarea{font:inherit;color:inherit;background:var(--bg-soft);border:1px solid var(--border);border-radius:6px;padding:8px 10px;width:100%}a{color:var(--accent)}.stage{position:fixed;inset:0;background:#000;overflow:hidden}.stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}.stage canvas.overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.tag-anchor{position:absolute;transform:translate(-50%,-50%);pointer-events:none}.tag-anchor .badge{background:#4ade80d9;color:#0a0a12;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap}.tag-anchor .notes{display:flex;flex-direction:column;gap:4px;margin-top:8px;align-items:flex-start;pointer-events:auto}.tag-note{background:#fef3c7;color:#1a1a1a;padding:6px 10px;border-radius:6px;font-size:13px;max-width:240px;box-shadow:0 4px 12px #00000073;white-space:pre-wrap;word-break:break-word;display:flex;gap:6px;align-items:flex-start}.tag-note .swatch{width:4px;align-self:stretch;border-radius:2px}.tag-note .author{font-size:10px;color:#555}.tag-note button{background:transparent;border:none;color:#888;padding:0 4px;cursor:pointer}.hud{position:fixed;top:12px;left:12px;right:12px;z-index:10;display:flex;gap:8px;align-items:center;pointer-events:none}.hud>*{pointer-events:auto}.panel{background:#14141cd9;backdrop-filter:blur(6px);border:1px solid var(--border);border-radius:10px;padding:8px 12px;display:flex;align-items:center;gap:8px;font-size:13px}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--fg-dim)}.status-dot.ok{background:var(--ok)}.status-dot.warn{background:var(--warn)}.status-dot.bad{background:var(--danger)}.toolbar{position:fixed;bottom:16px;left:50%;transform:translate(-50%);z-index:10;display:flex;gap:6px;background:#14141cd9;backdrop-filter:blur(6px);border:1px solid var(--border);padding:6px;border-radius:999px}.modal-backdrop{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal{background:var(--bg);border:1px solid var(--border);border-radius:12px;max-width:480px;width:100%;padding:18px;display:flex;flex-direction:column;gap:12px;max-height:90vh;overflow-y:auto}.modal h2{margin:0;font-size:18px}.modal .row{display:flex;gap:8px;align-items:center}.modal label{font-size:12px;color:var(--fg-dim);display:block;margin-bottom:4px}.modal small{color:var(--fg-dim);display:block;line-height:1.4}.qr-block{background:#fff;padding:12px;border-radius:8px;display:flex;flex-direction:column;align-items:center;gap:8px}.qr-block .url{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;color:#333;word-break:break-all;text-align:center}.app-shell{display:flex;flex-direction:column;padding:16px;max-width:520px;width:100%;margin:0 auto;gap:16px;height:100%;overflow-y:auto}.about-links{position:fixed;bottom:8px;left:8px;z-index:200;display:flex;gap:6px;font-size:11px;pointer-events:auto}.about-links a{color:var(--fg-dim);text-decoration:none;padding:4px 9px;background:#14141cbf;border:1px solid var(--border);border-radius:999px;backdrop-filter:blur(4px)}.about-links a:hover{color:var(--fg);border-color:var(--fg-dim)}.warning-banner{background:#ff6b6b26;color:var(--danger);border:1px solid var(--danger);padding:8px 12px;border-radius:8px;font-size:12px}.print-tag{background:#fff;padding:16px;border-radius:8px;text-align:center}.print-tag canvas{image-rendering:pixelated;border:1px solid #ccc}.print-tag .meta{color:#555;font-size:11px;margin-top:6px}
