[hidden]{display:none!important}
*{box-sizing:border-box}html,body{margin:0;height:100%;background:#000;color:#fff;font:16px -apple-system,system-ui,sans-serif}
body{display:flex;flex-direction:column}#stage{position:relative;flex:1;overflow:hidden}
video,#ov{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}#ov{touch-action:none}
#badge{position:absolute;top:env(safe-area-inset-top,0);left:0;right:0;margin:10px auto;width:min(92%,560px);border-radius:18px;padding:12px 16px;text-align:center;box-shadow:0 4px 20px #0008}
#bState{font-size:clamp(28px,8vw,56px);font-weight:800;letter-spacing:.5px}#bReason{font-size:clamp(14px,3.5vw,22px);opacity:.9}
@keyframes fl{to{background:#ff1744}}
#info{position:absolute;bottom:6px;left:8px;font-size:12px;opacity:.7}
#zoneHint{position:absolute;bottom:40px;left:8px;right:8px;text-align:center;background:rgba(0,0,0,.55);padding:10px;border-radius:10px;font-size:18px;font-weight:600;z-index:3;pointer-events:none}
video{z-index:0;background:#000}#ov{z-index:1}#badge{z-index:2}.zoning #badge{opacity:.35}
.zoning #ov{outline:3px solid #00e5ff;outline-offset:-3px}
#bar{display:flex;gap:8px;padding:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0));background:#111;flex-wrap:wrap}
button{flex:1;min-width:110px;padding:14px 10px;border:0;border-radius:12px;background:#333;color:#fff;font-size:16px;font-weight:600}
.primary{background:#1565c0}.danger{background:#c62828}
dialog{background:#1b1b1b;color:#fff;border:0;border-radius:16px;width:min(94vw,520px);max-height:90vh;overflow:auto}
dialog label{display:block;margin:10px 0}input,select{font-size:16px;padding:6px;border-radius:8px;border:1px solid #555;background:#222;color:#fff}
#topic{width:100%}input[type=number]{width:70px}.row{display:flex;gap:8px;margin-top:8px}.small{font-size:13px;opacity:.85}
#qr{background:#fff;display:inline-block;padding:8px;border-radius:8px}#qr img{display:block}a{color:#90caf9;word-break:break-all}

#info{background:#0008;padding:2px 6px;border-radius:6px;right:8px;opacity:.9;z-index:2}
#zoneTools{position:absolute;bottom:96px;left:8px;right:8px;display:flex;gap:8px;z-index:3}#zoneTools button{background:#000b;border:1px solid #00e5ff}
button:disabled{opacity:.4}
#readyBadge{position:absolute;top:118px;left:10px;background:#1b5e20;color:#fff;padding:4px 10px;border-radius:12px;font-size:13px;z-index:3}

#audioHint{position:absolute;top:150px;left:50%;transform:translateX(-50%);background:#b71c1c;color:#fff;padding:6px 12px;border-radius:12px;font-size:14px;font-weight:700;z-index:4}
.DogSeen{background:#1565c0}.Watching{background:#ef6c00}.Alert{background:#c62828;animation:fl .6s infinite alternate}@keyframes fl{to{background:#ff1744}}
#zoneList{padding-left:0;list-style:none}#zoneList li{display:flex;justify-content:space-between;align-items:center;background:#262626;margin:4px 0;padding:6px 10px;border-radius:8px}#zoneList li button{flex:0;min-width:70px;padding:6px}
.ev{display:flex;gap:8px;align-items:center;margin:6px 0;background:#262626;border-radius:8px;padding:6px}.ev img{width:96px;border-radius:6px}.ev .lb{display:flex;gap:4px}.ev .lb button{flex:0;min-width:40px;padding:6px}.ev .sel{background:#1565c0}
