.photo-stage{touch-action:none;user-select:none;cursor:crosshair}
.photo-placement-banner{position:absolute;left:10px;right:10px;top:10px;z-index:4;display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:9px;row-gap:1px;padding:9px 11px;border:1px solid rgba(120,47,58,.28);border-left:4px solid var(--accent);border-radius:5px;background:rgba(255,255,255,.96);box-shadow:0 4px 14px rgba(29,42,44,.14);pointer-events:none}
.photo-placement-banner[hidden]{display:none}
.photo-placement-banner strong{font-size:12px;color:var(--accent);white-space:nowrap}
.photo-placement-banner span{font-size:12px;color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.photo-placement-banner small{grid-column:1 / -1;font-size:10px;color:#68777a;line-height:1.4}
.photo-placement-banner.placed{border-left-color:#2e6a7d;background:rgba(247,252,252,.96)}
.photo-placement-banner.placed strong{color:#2e6a7d}
.photo-placement-target{pointer-events:none;opacity:.94}
.photo-placement-target .target-ring{fill:rgba(255,255,255,.22);stroke:#2e6a7d;stroke-width:3;stroke-dasharray:8 5;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 2px rgba(25,42,45,.35));animation:photo-carry-pulse 1.5s ease-in-out infinite}
.photo-placement-target .target-cross{fill:none;stroke:#2e6a7d;stroke-width:2;stroke-linecap:round;vector-effect:non-scaling-stroke}
.photo-placement-target .target-dot{fill:#782f3a;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
.photo-placement-target .target-label rect{fill:#2e6a7d;stroke:#fff;stroke-width:1;vector-effect:non-scaling-stroke}
.photo-placement-target .target-label text{fill:#fff;font:600 11px Arial;pointer-events:none}
.photo-pin .pin-halo{fill:rgba(120,47,58,.12);stroke:#782f3a;stroke-width:2;vector-effect:non-scaling-stroke}
.photo-pin .pin-core{fill:#782f3a;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
.photo-pin.active .pin-halo,.photo-pin:focus .pin-halo{fill:rgba(46,106,125,.16);stroke:#2e6a7d;stroke-width:3}
.photo-pin.active .pin-core,.photo-pin:focus .pin-core{fill:#2e6a7d;stroke-width:3}
.photo-pin .pin-number{fill:#fff;text-anchor:middle;font-family:Arial;font-weight:700;pointer-events:none}
.photo-pin .pin-label rect{fill:rgba(24,39,42,.94);stroke:#fff;stroke-width:1;vector-effect:non-scaling-stroke}
.photo-pin .pin-label text{fill:#fff;font-family:Arial;font-weight:600;text-anchor:start;pointer-events:none}
.point-button.active{box-shadow:inset 3px 0 0 var(--accent),0 0 0 1px rgba(120,47,58,.08)}
.point-button small.placed{color:#2e6a7d;font-weight:700}
.reference-comparison{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 10px}
.reference-comparison>div{padding:9px 10px;border:1px solid var(--line);border-radius:4px;background:#f7f8f8}
.reference-comparison>div:last-child{border-color:#e0c7cc;background:var(--soft)}
.reference-comparison span{display:block;font-size:10px;line-height:1.4;color:var(--muted);text-transform:uppercase;letter-spacing:.7px}
.reference-comparison strong{display:block;margin-top:4px;font:22px Georgia;color:var(--accent)}
@keyframes photo-carry-pulse{0%,100%{opacity:.65}50%{opacity:1}}
