/* V43 HOTSPOTS — independent, reversible calibration. Ordinary view unchanged until saved. */
#v43-hotspots-halos{position:absolute;inset:0;width:100%;height:100%;z-index:45;pointer-events:none;overflow:visible}
#v43-hotspots-halos .v43-aura{position:absolute;left:0;top:0;width:50px;height:50px;pointer-events:none;opacity:0;transform:translate(-50%,-50%);transition:opacity .18s ease;isolation:isolate;mix-blend-mode:screen;--v43-rgb:130,255,79;--v43-power:.85}
#v43-hotspots-halos .v43-aura::before{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(ellipse,rgba(var(--v43-rgb),.50),rgba(var(--v43-rgb),.18) 32%,rgba(var(--v43-rgb),.045) 58%,transparent 78%);filter:blur(2px);animation:v43-breathe 2.6s ease-in-out infinite}
#v43-hotspots-halos .v43-aura::after{content:"";position:absolute;inset:12%;border-radius:50%;border:1.4px solid rgba(var(--v43-rgb),.5);box-shadow:0 0 13px rgba(var(--v43-rgb),.27);animation:v43-wave 2.4s ease-out infinite}
#v43-hotspots-halos .v43-aura[data-on="true"]{opacity:var(--v43-power)}
@keyframes v43-breathe{0%,100%{transform:scale(.84)}50%{transform:scale(1.04)}}
@keyframes v43-wave{0%{transform:scale(.24);opacity:1}100%{transform:scale(1.05);opacity:0}}
/* Hide original halos only when an actual V43 calibration has been saved. */
.scene.v43-glow-watch .v20-watch,.scene.v43-glow-passport .v20-passport,.scene.v43-glow-pen .v20-pen,.scene.v43-glow-screen .v20-screen,.scene.v43-glow-lamp .v20-lamp,.scene.v43-glow-phone .v20-phone{opacity:0!important;visibility:hidden!important}
.scene.v43-glow-book #v40-book-hit::after{opacity:0!important}
body.v43-calibrating .scene .v20-pulse,body.v43-calibrating #v43-hotspots-halos{visibility:hidden!important}
/* Calibration overlay: full-scene SVG-coordinates, real target boundaries, not simulated buttons. */
#v43-target-layer{position:absolute;inset:0;z-index:2200;pointer-events:none;user-select:none;-webkit-user-select:none}
#v43-target-layer .v43-target{position:absolute;left:0;top:0;display:grid;place-items:center;transform:translate(-50%,-50%);border:2px dashed rgba(109,235,255,.84);background:rgba(35,199,240,.16);border-radius:50%;color:#fff;cursor:grab;touch-action:none;pointer-events:auto;box-shadow:0 0 0 2px #00131acc,inset 0 0 20px #062a3a55;outline:none}
#v43-target-layer .v43-target[data-shape="rect"]{border-radius:8px}
#v43-target-layer .v43-target[data-selected="true"]{border:2px solid #fdf79c;background:rgba(255,214,72,.22);box-shadow:0 0 0 2px #000a,0 0 26px #ffe96288;z-index:10}
#v43-target-layer .v43-target::before{content:"+";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:700 19px system-ui;line-height:1;color:#fff;text-shadow:0 1px 4px #000}
#v43-target-layer .v43-target span{position:absolute;top:-29px;left:50%;transform:translateX(-50%);background:#071c24df;border:1px solid #a0c7d4;padding:3px 8px;border-radius:5px;white-space:nowrap;font:700 11px/1.3 system-ui;color:#fff;pointer-events:none}
#v43-target-layer .v43-target:active{cursor:grabbing}
#v43-target-layer .v43-target:focus-visible{outline:3px solid white;outline-offset:3px}
#v43-target-layer .v43-testhalo{position:absolute;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);border:1px dotted rgba(223,241,168,.72);background:radial-gradient(ellipse,rgba(150,255,83,.25),rgba(80,255,30,.055) 45%,transparent 75%);mix-blend-mode:screen;z-index:0}
#v43-calibrator{position:fixed;z-index:2147483000;right:12px;top:12px;width:min(372px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;color:#f3f6f4;background:#08151cf5;border:1px solid #8ce5d4a0;border-radius:15px;box-shadow:0 22px 70px #000c;padding:16px;font:12px/1.45 system-ui,-apple-system,sans-serif;backdrop-filter:blur(16px);user-select:none}
#v43-calibrator *,#v43-calibrator *::before{box-sizing:border-box}
#v43-calibrator h2{margin:0;font-size:17px;letter-spacing:.02em}
#v43-calibrator .v43-lead{font-size:11px;color:#b3d2d6;margin:4px 0 10px}
#v43-calibrator .v43-top{display:flex;gap:8px;align-items:start;justify-content:space-between}
#v43-calibrator button{font:inherit;cursor:pointer;border:1px solid #7794a0;background:#14333a;color:#e8f5ef;border-radius:8px;padding:7px 9px;line-height:1.2}
#v43-calibrator button:hover{border-color:#e5e48c;background:#255059}
#v43-calibrator button:focus-visible,#v43-calibrator input:focus-visible,#v43-calibrator select:focus-visible{outline:2px solid #d7f278;outline-offset:2px}
#v43-calibrator .v43-mode{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0}
#v43-calibrator .v43-mode button[data-current="true"],#v43-calibrator .v43-points button[data-current="true"]{color:#07120e;background:#ddfba9;border-color:#f2fcd5;font-weight:750}
#v43-calibrator .v43-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:6px 0 12px}
#v43-calibrator .v43-points button{font-size:11px;text-align:left;padding:8px}
#v43-calibrator .v43-label{color:#d9e7de;font-weight:700;font-size:12px;display:block;margin-top:8px}
#v43-calibrator select,#v43-calibrator input[type="number"]{border-radius:7px;padding:7px;background:#0c242c;color:white;border:1px solid #67818a;min-width:0;width:100%;font:inherit}
#v43-calibrator .v43-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:8px 0}
#v43-calibrator .v43-values label{display:grid;gap:3px;color:#d2e7e0;font-size:11px}
#v43-calibrator .v43-divider{height:1px;background:#68828b55;margin:12px 0}
#v43-calibrator .v43-slider-row{display:grid;grid-template-columns:1fr 57px;align-items:center;gap:7px;margin:4px 0}
#v43-calibrator input[type="range"]{width:100%;accent-color:#c7ed8d}
#v43-calibrator .v43-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:12px}
#v43-calibrator .v43-actions button{min-height:34px}
#v43-calibrator button.v43-primary{background:#d7f59e;border-color:#d7f59e;color:#13220d;font-weight:800}
#v43-calibrator .v43-status{margin-top:10px;color:#d7e6bb;min-height:30px;font-size:11px;white-space:pre-wrap}
#v43-calibrator .v43-tip{margin:8px 0 0;font-size:11px;color:#afc5c8}
#v43-calibrator input[type="file"]{display:none}
@media(prefers-reduced-motion:reduce){#v43-hotspots-halos .v43-aura::before,#v43-hotspots-halos .v43-aura::after{animation:none}}

#v43-target-layer .v43-target[data-active="true"] span{border-color:#b9f49b;color:#eaffd0}
