:root{--fg:#f2f2f2;--mut:#a8adb3;--acc:#4ea1ff;--panel:#14161af0;--line:#2f343c;--mini:140px}button,input,select{font-family:inherit}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html,body{height:100%;color:var(--fg);overscroll-behavior:none;background:#000;margin:0;font:15px -apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;overflow:hidden}#video,#ov{width:100%;height:100%;position:fixed;top:0;bottom:0;left:0;right:0}#video{object-fit:cover;background:#000}#ov{pointer-events:none}#ov.tap{pointer-events:auto}#hud{padding:calc(env(safe-area-inset-top) + 8px) calc(var(--mini) + 22px) 8px 12px;font-variant-numeric:tabular-nums;pointer-events:none;background:linear-gradient(#000000a6,#0000);position:fixed;top:0;left:0;right:0}#hud .big{font-size:22px;font-weight:600}#hud .small{color:var(--mut);font-size:13px}#mini{top:calc(env(safe-area-inset-top) + 8px);width:var(--mini);height:var(--mini);pointer-events:none;position:fixed;right:10px}#bar{padding:10px 12px calc(env(safe-area-inset-bottom) + 12px);background:linear-gradient(#0000,#000000b3);justify-content:space-between;gap:8px;display:flex;position:fixed;bottom:0;left:0;right:0}#bar button{min-height:58px;color:var(--fg);touch-action:none;background:#1e2026cc;border:1px solid #ffffff40;border-radius:14px;flex:1;font-size:14px;font-weight:600}#bar button.on{background:#c62828;border-color:#ff6b6b}.sheet{background:var(--panel);border-top:1px solid var(--line);max-height:85%;padding:14px 16px calc(env(safe-area-inset-bottom) + 16px);-webkit-user-select:text;user-select:text;border-radius:16px 16px 0 0;position:fixed;bottom:0;left:0;right:0;overflow:auto}.sheet h2{margin:4px 0 10px;font-size:17px}.sheet h3{color:var(--mut);margin:16px 0 6px;font-size:15px}.sheet button,#scan button,#panoView .top button{border:1px solid var(--line);min-height:46px;color:var(--fg);background:#2a2e35;border-radius:10px;margin:4px 6px 4px 0;padding:0 14px;font-size:15px;font-weight:600}.sheet button.primary{border-color:var(--acc);background:#1565c0}.sheet label{color:var(--mut);justify-content:space-between;align-items:center;gap:10px;margin:8px 0;display:flex}.sheet select{border:1px solid var(--line);color:var(--fg);background:#111;border-radius:8px;padding:6px;font-size:16px}.sheet input:-webkit-any([type=number],[type=text]){border:1px solid var(--line);color:var(--fg);background:#111;border-radius:8px;padding:6px;font-size:16px}.sheet input:is([type=number],[type=text]){border:1px solid var(--line);color:var(--fg);background:#111;border-radius:8px;padding:6px;font-size:16px}.sheet input[type=number]{width:90px}.sheet input[type=text]{flex:1;min-width:0;max-width:240px;padding:8px}.sheet input[type=range]{flex:1}.sheet p,.help{color:var(--mut);margin:6px 0;font-size:14px;line-height:1.45}#start{background:#0b0d10;flex-direction:column;justify-content:center;padding:24px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow:auto}#start h1{margin:0 0 8px;font-size:26px}#start ol{color:var(--mut);padding-left:20px;line-height:1.5}#start button,#camStop button{color:#fff;background:#1565c0;border:0;border-radius:14px;min-height:54px;font-size:18px;font-weight:600}#start button{margin-top:12px}#startErr{color:#ff8a80;margin-top:12px}#camStop{z-index:15;background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:14px;padding:16px;position:fixed;top:50%;left:16px;right:16px;transform:translateY(-50%)}#camStop p{margin:0 0 10px;line-height:1.4}#camStop button{width:100%}#camErr{color:#ff8a80;margin-top:10px}#toast{z-index:10;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 96px);border:1px solid var(--line);opacity:0;pointer-events:none;background:#000000d9;border-radius:12px;padding:10px 12px;font-size:14px;line-height:1.4;transition:opacity .25s;position:fixed}#toast.show{opacity:1}#bUpdate{z-index:11;left:50%;top:calc(env(safe-area-inset-top) + var(--mini) + 20px);border:1px solid var(--acc);color:var(--fg);background:#0d2a4a;border-radius:14px;padding:8px 16px;font-size:14px;font-weight:600;position:fixed;transform:translate(-50%)}#bUpdate small{color:var(--mut);font-size:12px;font-weight:400;display:block}#panoView{background:#000;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}#panoView .top{padding:calc(env(safe-area-inset-top) + 8px) 12px 8px;align-items:center;gap:8px;display:flex}#panoView .top button{margin:0}#panoScroll{-webkit-overflow-scrolling:touch;flex:1;overflow:auto}#panoCanvas{height:100%;max-height:700px;display:block}#aerial{max-width:100%;margin-top:6px;display:block}[hidden]{display:none!important}#scan{z-index:30;background:#000;position:fixed;top:0;bottom:0;left:0;right:0}#scan video{object-fit:cover;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}#scan .aim{pointer-events:none;border:3px solid #ffffffd9;border-radius:14px;width:60vmin;height:60vmin;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #00000059}#scan .scanPanel{padding:14px 16px calc(env(safe-area-inset-bottom) + 16px);background:var(--panel);position:absolute;bottom:0;left:0;right:0}#scan p{margin:4px 0 8px;line-height:1.4}#scan .err{color:#ff8a80}.sheet button:disabled{opacity:.45}.sheet input.bad{border-color:#ff8a80}.sheet p.err{color:#ff8a80;min-height:0;margin:-4px 0 6px;font-size:13px}.sheet p.err:empty,.sheet p.msg:empty{display:none}.sheet p.msg{color:var(--fg);border:1px solid var(--acc);background:#1d2a3a;border-radius:10px;padding:8px 10px}.checks{margin:0 0 8px;padding:0;font-size:14px;line-height:1.4;list-style:none}.checks li{border-radius:8px;margin:4px 0;padding:6px 10px}.checks .err{color:#ffb4ab;background:#3a1d1d}.checks .warn{color:#ffe08a;background:#3a321d}.checks .ok{color:#9be29f;background:#1d3a22}#bar button.erase.on{background:#7b1fa2;border-color:#e040fb}#start>button{text-align:left;width:100%;padding:10px 16px;display:block}#start>button small{opacity:.85;margin-top:2px;font-size:13px;font-weight:400;display:block}#start>button.quiet{border:1px solid var(--line);min-height:48px;color:var(--fg);background:#22262d;font-size:16px}#start>button:not(.primary):not(.quiet){background:#2a2e35}#start>button.primary{background:#1565c0}#start details{color:var(--mut);margin-top:18px}#start summary{cursor:pointer;padding:6px 0}#startMsg:empty{display:none}#bKey{top:calc(env(safe-area-inset-top) + 156px);min-height:36px;color:var(--fg);background:#1e2026cc;border:1px solid #ffffff4d;border-radius:99px;padding:0 14px;font:600 14px -apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;position:fixed;right:10px}#legend{top:calc(env(safe-area-inset-top) + 198px);background:var(--panel);border:1px solid var(--line);z-index:5;border-radius:12px;max-width:270px;padding:8px 12px;font-size:13px;line-height:1.35;position:fixed;right:10px}#legend ul{margin:0;padding:0;list-style:none}#legend li{align-items:center;gap:8px;margin:5px 0;display:flex}#legend p{color:var(--mut);margin:6px 0 2px}#legend .sw{background:#7d8894;border-radius:3px;flex:none;width:26px;height:16px;position:relative;overflow:hidden}#legend .sw b{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.grab{touch-action:none;justify-content:center;align-items:center;width:100%;height:26px;margin:-10px 0 0;display:flex}.grab:after{content:"";background:#555b64;border-radius:3px;width:44px;height:5px}.sheet{transition:transform .18s ease-in;animation:.22s ease-out up}.sheet.page{max-height:none;padding-top:calc(env(safe-area-inset-top) + 8px);background:#0f1114;border:0;border-radius:0;animation:.22s ease-out in;top:0}#panoView{transition:transform .18s ease-in;animation:.22s ease-out in}.pageTop{align-items:center;gap:10px;margin-bottom:6px;display:flex}.pageTop h2{margin:0}#edge{z-index:20;touch-action:none;width:22px;position:fixed;top:0;bottom:0;left:0}@keyframes up{0%{transform:translateY(100%)}to{transform:none}}@keyframes in{0%{transform:translate(100%)}to{transform:none}}
