.floor-infra { padding: 25px; } .toolbar { display: flex; gap: 10px; margin-bottom: 15px; } .filter-form { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; } .filter-form select { padding: 8px 10px; border-radius: 4px; border: 1px solid #ccc; } .infra-plan { padding: 15px; margin-bottom: 28px; background: #f7f7f7; border: 1px dashed #ccc; border-radius: 6px; } .infra-floor-canvas { position: relative; margin-top: 12px; width: 100%; min-height: 560px; border: 1px solid #d4d4d4; border-radius: 8px; background: #fff; overflow: hidden; } .infra-floor-svg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; opacity: 0.85; } .infra-floor-overlay { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; } .infra-overlay-marker { pointer-events: auto; } .infra-overlay-marker.patchpanel { fill: rgba(13, 110, 253, 0.25); stroke: #0d6efd; stroke-width: 2; } .infra-overlay-marker.outlet { fill: rgba(25, 135, 84, 0.25); stroke: #198754; stroke-width: 2; } .infra-section { margin-bottom: 30px; } .infra-table { width: 100%; border-collapse: collapse; margin-top: 10px; } .infra-table th, .infra-table td { padding: 10px; border-bottom: 1px solid #ddd; } .floor-plan-hint { margin: 8px 0 0; font-size: 0.85em; color: #444; } .empty-state { padding: 20px; background: #fafafa; border: 1px dashed #ccc; border-radius: 6px; } .actions .button-small { margin-right: 6px; }