.floor-infra-edit { padding: 25px; max-width: 1200px; } .infra-edit-form { display: flex; flex-direction: column; gap: 15px; } .form-group { display: flex; flex-direction: column; gap: 6px; } .form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; } .form-actions { display: flex; gap: 10px; } .info { font-size: 0.9em; color: #555; } .floor-plan-block { display: flex; flex-direction: column; gap: 6px; } .floor-plan-canvas { position: relative; width: 100%; min-height: 560px; border: 1px solid #d4d4d4; border-radius: 8px; background-color: #fff; background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.05) 1px, transparent 1px), linear-gradient(rgba(0, 0, 0, 0.05) 1px, transparent 1px); background-size: 40px 40px; cursor: crosshair; overflow: hidden; } .floor-plan-overlay { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; touch-action: none; } .floor-plan-overlay .floor-plan-background { opacity: 0.75; pointer-events: none; } .floor-plan-overlay .active-marker { cursor: move; } .floor-plan-overlay .panel-marker { fill: rgba(13, 110, 253, 0.25); stroke: #0d6efd; stroke-width: 2; } .floor-plan-overlay .outlet-marker { fill: rgba(25, 135, 84, 0.25); stroke: #198754; stroke-width: 2; } .floor-plan-overlay .reference-marker { pointer-events: none; opacity: 0.35; } .floor-plan-overlay .room-highlight { pointer-events: none; fill: rgba(255, 193, 7, 0.22); stroke: #ff9800; stroke-width: 2; } .floor-plan-overlay .reference-marker.panel-marker { fill: rgba(13, 110, 253, 0.22); stroke: rgba(13, 110, 253, 0.7); stroke-width: 2; } .floor-plan-overlay .reference-marker.outlet-marker { fill: rgba(25, 135, 84, 0.22); stroke: rgba(25, 135, 84, 0.7); stroke-width: 2; } .floor-plan-hint { font-size: 0.85em; color: #444; margin: 0; } .floor-plan-position { margin: 0; font-size: 0.85em; color: #666; }