* { box-sizing: border-box; }
body { margin: 0; font: 14px/1.5 system-ui, sans-serif; color: #334155; background: white; }
[hidden] { display: none !important; }
button { font: inherit; cursor: pointer; border: 1px solid #cbd5e1; border-radius: 9px; padding: 9px 12px; min-height: 44px; background: white; color: #001a40; }
button:hover { background: #f1f5f9; }
button:focus-visible, canvas:focus-visible { outline: 3px solid #2563eb; outline-offset: -3px; }
button:disabled { opacity: .5; cursor: default; }
button[aria-pressed="true"] { background: #001a40; color: white; border-color: #001a40; }
/* La maqueta llena el iframe: su alto lo fija PropertyFloorPlanModel. */
#model-stage { position: relative; height: 100vh; overflow: hidden; background: #e9eef4; border-radius: 12px; }
#model-poster, #model-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
#model-poster { object-fit: contain; }
#model-canvas canvas { display: block; width: 100%; height: 100%; }
.label { position: absolute; top: 12px; left: 12px; font-size: 11px; background: #fffffff0; padding: 5px 9px; border-radius: 6px; pointer-events: none; }
#model-start { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; padding: 24px 12px; background: linear-gradient(transparent 45%, #e9eef4f0); text-align: center; }
#load-model { background: #001a40; color: white; font-weight: 600; border: 0; padding: 12px 20px; }
#model-status { margin: 8px 0 0; font-size: 12px; }
#model-pins { position: absolute; inset: 0; pointer-events: none; }
.pin { position: absolute; transform: translate(-50%, -100%); background: #001a40; color: white; font-size: 11px; font-weight: 600; padding: 3px 8px; border-radius: 6px; white-space: nowrap; }
#model-tools { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); display: flex; gap: 4px; white-space: nowrap; }
#model-tools button { padding: 7px 10px; font-size: 12px; }
@media (max-width: 420px) { #model-tools button { padding-inline: 7px; } .pin { font-size: 10px; } }
