:root{color-scheme:dark;--bg: #07080a;--panel: #12151b;--line: #2a3140;--text: #f4f6fb;--muted: #9aa3b5;--ok: #22c55e;--bad: #ef4444;--warn: #f59e0b;--idle: #6b7280;--accent: #f5c518;font-family:Segoe UI,ui-sans-serif,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;height:100dvh;overflow:hidden;overscroll-behavior:none;background:var(--bg);color:var(--text);touch-action:manipulation}button,input{font:inherit}.enable-screen[hidden],.app[hidden]{display:none!important}.enable-screen{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;background:#07080a;text-align:center;cursor:pointer}.enable-screen strong{font-size:1.45rem;font-weight:700}.enable-screen span{color:var(--muted);font-size:.95rem}.gate-error{color:var(--bad);margin:8px 0 0;max-width:20rem}.app{height:100dvh;max-height:100dvh;overflow:hidden;display:flex;flex-direction:column;background:#000}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;padding:calc(6px + env(safe-area-inset-top)) 8px 6px;background:#000}.plate-read{font-family:Courier New,ui-monospace,monospace;font-size:1.1rem;font-weight:700;letter-spacing:.12em;background:#f5c518;color:#111;border-radius:8px;padding:8px 12px;min-height:40px;display:grid;place-items:center;flex:1;text-transform:uppercase}.top-actions{display:flex;gap:6px}.top-actions button{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;padding:8px 10px}.stage{position:relative;flex:1 1 auto;min-height:0;background:#000;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}.stage video,.stage img,.stage canvas{position:absolute;inset:0;width:100%;height:100%}.stage video,.stage img{object-fit:cover;transform-origin:center center;will-change:transform}.stage canvas{pointer-events:none}.tap-layer{position:absolute;inset:0;z-index:3;touch-action:none}.zoom-badge{position:absolute;top:10px;right:10px;z-index:4;pointer-events:none;background:#0000008c;color:#fff;padding:5px 9px;border-radius:999px;font-size:.78rem;font-variant-numeric:tabular-nums;letter-spacing:.04em}.hint{position:absolute;left:50%;bottom:12px;transform:translate(-50%);background:#0000008c;color:#fff;padding:6px 10px;border-radius:999px;font-size:.78rem;white-space:nowrap;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;pointer-events:none;z-index:4}.hint.is-held{background:#f5c518;color:#111;font-weight:700}.plate-read[data-held=true]{box-shadow:inset 0 0 0 2px #111}.plate-read[data-tone=ok]{background:#22c55e;color:#052e16}.plate-read[data-tone=bad]{background:#ef4444;color:#fff}.status-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex-shrink:0;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:#050506}.status-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px 12px}.status-kicker{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.status-card strong{display:block;margin:4px 0 2px;font-size:1.25rem}.status-detail{color:var(--muted);font-size:.8rem}.status-card[data-state=ok]{border-color:color-mix(in srgb,var(--ok) 55%,var(--line))}.status-card[data-state=ok] strong{color:var(--ok)}.status-card[data-state=bad]{border-color:color-mix(in srgb,var(--bad) 55%,var(--line))}.status-card[data-state=bad] strong{color:var(--bad)}.status-card[data-state=warn]{border-color:color-mix(in srgb,var(--warn) 55%,var(--line))}.status-card[data-state=warn] strong{color:var(--warn)}dialog{border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--text);width:min(92vw,380px);padding:18px}dialog::backdrop{background:#000000a6}dialog h2{margin:0 0 12px;font-size:1.1rem}dialog input{width:100%;border:1px solid var(--line);background:#0b0d10;color:var(--text);border-radius:10px;padding:12px;text-transform:uppercase;letter-spacing:.08em}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.dialog-actions button{border:1px solid var(--line);background:transparent;color:var(--text);border-radius:999px;padding:10px}.dialog-actions .primary{border:0;background:var(--accent);color:#111;font-weight:700}
