:root{--bg:#0f1b2d;--fg:#f3f6fa;--muted:#9fb0c6;--ok:#1fa363;--warn:#d98c00;--bad:#c8382c;--brand:#2d6cdf}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;color:var(--fg);background:#000;margin:0;font:16px/1.4 system-ui,-apple-system,Roboto,sans-serif;overflow:hidden}#video{object-fit:cover;width:100%;height:100%;position:fixed;inset:0;transform:scaleX(-1)}#guide{pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}#guide .oval{border:3px dashed #ffffff73;border-radius:50%;width:62vmin;height:80vmin;transition:border-color .2s}#guide.good .oval{border:3px solid var(--ok)}header,footer{z-index:2;background:linear-gradient(#0a121ed9,#0a121e8c);justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;display:flex;position:fixed;left:0;right:0}header{top:0}footer{background:linear-gradient(#0a121e8c,#0a121ee6);bottom:0}header .right{font-variant-numeric:tabular-nums;align-items:center;gap:10px;display:flex}.muted{color:var(--muted)}.small{font-size:12px}.hidden{display:none!important}.dot{background:#777;border-radius:50%;width:10px;height:10px;display:inline-block}.dot.on{background:var(--ok)}.dot.off{background:var(--bad)}.pill{background:#ffffff26;border-radius:999px;padding:2px 8px;font-size:12px}.pill.okp{background:#1fa3634d}#qcount{background:var(--warn);color:#000}.hint{text-align:center;text-shadow:0 1px 4px #000;z-index:2;padding:0 16px;font-size:20px;font-weight:600;position:fixed;bottom:74px;left:0;right:0}.result{z-index:3;text-align:center;border-radius:20px;min-width:78vw;padding:24px 20px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 40px #00000080}.result.ok{background:#1fa363f2}.result.warn{color:#111;background:#d98c00f5}.result .big{font-size:64px;line-height:1}.result .name{margin-top:6px;font-size:26px;font-weight:700}.result .sub{margin-top:4px;font-size:20px}button{font:inherit;color:var(--fg);background:#ffffff29;border:0;border-radius:12px;padding:12px 18px}button.primary{background:var(--brand)}button.ghost{color:var(--muted);background:0 0}.panel{z-index:5;background:#060c16d1;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);border-radius:20px 20px 0 0;width:100%;max-width:560px;max-height:92vh;padding:20px;overflow:auto}.sheet h2{margin:0 0 8px}.sheet p{margin:6px 0 12px}.sheet input,.sheet select{width:100%;font:inherit;color:var(--fg);background:#16263d;border:1px solid #2c3d57;border-radius:10px;margin:6px 0;padding:12px}.sheet label{color:var(--muted);margin:8px 0;display:block}.sheet label.check{color:var(--fg);align-items:center;gap:10px;display:flex}.sheet label.check input{width:22px;height:22px;margin:0}.row{justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.row button{flex:1}.err{color:#ff8a80;min-height:1.2em}.list{gap:6px;max-height:45vh;margin:8px 0;display:grid;overflow:auto}.item{text-align:left;justify-content:space-between;align-items:center;width:100%;display:flex}.item small{color:var(--muted);font-size:12px;display:block}
