.boomer-3d{position:relative;width:100%;height:clamp(450px,48vw,660px);min-height:420px;overflow:hidden;background:#eee7d4;border:1px solid #b6b79e;border-radius:9px;isolation:isolate}.boomer-3d-canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none;outline-offset:-5px!important}.boomer-3d.is-dragging .boomer-3d-canvas{cursor:grabbing}.boomer-3d-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.boomer-3d-person-label{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;min-width:54px;padding:4px 6px 3px!important;background:#fffaf0ed!important;border:1px solid #776c50!important;border-top:3px solid var(--person-color)!important;border-radius:5px!important;box-shadow:0 2px 0 #584e3022;white-space:nowrap;text-align:center;line-height:1.2!important;color:#394133!important;cursor:pointer}.boomer-3d-person-label:after{content:'';position:absolute;left:calc(50% - 3px);bottom:-4px;width:6px;height:6px;background:#fffaf0;border-right:1px solid #776c50;border-bottom:1px solid #776c50;transform:rotate(45deg)}.boomer-3d-person-label b{display:block;font-size:10px;font-weight:700}.boomer-3d-person-label small{display:block;font-size:8px;color:#72735b;margin-top:3px}.boomer-3d-person-label:hover,.boomer-3d-person-label:focus-visible{background:#fff6ce!important;z-index:500!important}.boomer-3d-person-label.is-selected{outline:2px solid #bc5639;outline-offset:2px;background:#fff4d1!important}.boomer-3d-room-label{position:absolute;transform:translate(-50%,-50%);font-weight:700;font-size:10px;letter-spacing:.4px;color:#494b3e;background:#fff9e6e6;border:1px solid #96977d;border-left:4px solid var(--room-color);border-radius:3px;padding:3px 6px;white-space:nowrap;box-shadow:0 2px 0 #5a523318;pointer-events:none}.boomer-3d-help,.boomer-3d-badge{position:absolute;z-index:600;pointer-events:none;font-size:9px;color:#71765e;background:#fffbeecc;border:1px solid #cfccb5;padding:7px 9px;border-radius:5px}.boomer-3d-help{bottom:12px;left:12px}.boomer-3d-badge{top:12px;left:12px;font-size:9px;letter-spacing:.4px;color:#7d6938}.boomer-3d-unavailable{display:grid;place-items:center;min-height:180px;height:220px;padding:30px}.boomer-3d-error{max-width:420px;font-size:13px;line-height:1.9;color:#725d37}.boomer-3d [hidden]{display:none!important}@media(min-width:1600px){.boomer-3d-person-label b{font-size:11px}.boomer-3d-person-label small{font-size:9px}.boomer-3d-room-label{font-size:11px}}@media(max-width:760px){.boomer-3d{height:460px;min-height:380px}.boomer-3d-person-label{min-width:38px;padding:3px 3px!important}.boomer-3d-person-label b{font-size:9px}.boomer-3d-person-label small{font-size:7px}.boomer-3d-room-label{font-size:8px;padding:3px}.boomer-3d-help{font-size:8px}.boomer-3d-badge{font-size:8px}}
.boomer-3d-camera-controls{position:absolute;right:12px;bottom:12px;z-index:650;display:flex;gap:5px}.boomer-3d-camera-controls button{width:34px;height:32px;display:grid;place-items:center;background:#fff8e7;border:1px solid #9d9f84;border-radius:5px;box-shadow:0 2px 0 #746e4520;font-size:20px;line-height:1;color:#3c5547}.boomer-3d-camera-controls button:hover{background:#f7dc8b}.boomer-3d-camera-controls button:focus-visible{outline:3px solid #326453;outline-offset:2px}
/* Gesture surfaces share one capture boundary; labels remain clickable. */
.boomer-3d{user-select:none;-webkit-user-select:none;touch-action:none;overscroll-behavior:contain}
.boomer-3d-person-label{touch-action:none}
.boomer-3d.is-dragging .boomer-3d-person-label{cursor:grabbing}
.boomer-3d-help{max-width:calc(100% - 155px);line-height:1.55}
