/* SETUP FLOOR PLAN — Polite Platform :: Control Center
 * Path: /control-plane/public/assets/floor-plan.css
 * Description: Canvas and scoped controls in the shared setup editor.
 * Author: Polite Platform Team | Date: 2026-10-14T21:01:34Z | Generated by: GPT-6 Codex
 */
.floor-plan-workspace { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); gap: 20px; align-items: start; }
.floor-plan-preview { position: sticky; top: 78px; min-width: 0; }
.floor-plan-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; align-items: center; }
.floor-plan-workspace select, .floor-plan-workspace input { min-height: 44px; width: 100%; min-width: 0; }
.floor-plan-toolbar select { width: auto; max-width: 100%; }
.floor-plan-canvas { border: 1px solid var(--border, #36363c); border-radius: 8px; overflow: hidden; min-height: 240px; background: #252529; touch-action: pan-y; }
.floor-plan-canvas svg { display: block; width: 100%; height: auto; max-height: 75vh; }
.floor-plan-empty { padding: 50px 24px; text-align: center; color: #aaa8b5; }
.floor-plan-section { border: 1px solid var(--border, #36363c); background: var(--panel, #1e1e21); border-radius: 8px; padding: 16px; margin-bottom: 12px; }
.floor-plan-section h3 { margin: 0 0 12px; font-size: 16px; }
.floor-plan-tabs { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 12px; }
.floor-plan-tabs button { flex: 1 1 30%; min-height: 44px; padding: 8px; border: 0; border-bottom: 2px solid transparent; color: #aaa8b5; background: transparent; cursor: pointer; font: inherit; font-size: 13px; }
.floor-plan-tabs button[aria-selected="true"] { color: #c5b0ed; border-bottom-color: #a98aed; }
.floor-plan-tabs button:focus-visible { outline: 2px solid #a98aed; outline-offset: 2px; }
.floor-plan-section summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; color: #aaa8b5; }
.floor-plan-section details { margin-bottom: 8px; }
.floor-plan-section > select { margin-bottom: 12px; }
.floor-plan-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.floor-plan-field { display: grid; gap: 6px; margin: 0 0 12px; font-size: 13px; min-width: 0; }
.floor-plan-field span { color: #aaa8b5; }
.floor-plan-field input, .floor-plan-field select { box-sizing: border-box; }
.floor-plan-picker > summary { color: #c5b0ed; font-weight: 600; }
.floor-plan-picker > summary::before { content: "+"; margin-right: 8px; }
.floor-plan-picker[open] > summary::before { content: "−"; }
.floor-plan-picker > div { padding-bottom: 12px; }
.floor-plan-palette { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; max-height: 320px; overflow-y: auto; margin: 12px 0; }
.floor-plan-palette-choice { display: flex; flex-direction: column; gap: 8px; align-items: stretch; min-width: 0; min-height: 112px; padding: 10px; background: var(--panel, #1e1e21); border: 1px solid var(--border, #36363c); border-radius: 8px; color: inherit; font: inherit; cursor: pointer; text-align: left; }
.floor-plan-palette-choice:hover { border-color: #a98aed; background: #252529; }
.floor-plan-palette-choice:focus-visible { outline: 2px solid #a98aed; outline-offset: -2px; }
.floor-plan-palette-choice:disabled { opacity: .5; cursor: default; }
.floor-plan-palette-choice svg { width: 100%; height: 48px; padding: 4px; box-sizing: border-box; background: #f0f1f2; border-radius: 4px; }
.floor-plan-palette-choice strong, .floor-plan-palette-choice small { display: block; font-size: 12px; }
.floor-plan-palette-choice small { color: #aaa8b5; margin-top: 4px; }
.floor-plan-canvas [data-floor-plan-item] { cursor: grab; outline: none; }
.floor-plan-canvas [data-floor-plan-item]:focus, .floor-plan-canvas .floor-plan-selected { filter: drop-shadow(0 0 3px #7852c2); }
.floor-plan-workspace textarea { width: 100%; min-height: 90px; box-sizing: border-box; resize: vertical; }
.floor-plan-pov { margin-top: 16px; padding: 12px; border: 1px solid var(--border, #36363c); border-radius: 8px; }
.floor-plan-pov svg { display: block; max-height: 46vh; max-width: 100%; margin: auto; }
.floor-plan-preview:has(.floor-plan-pov:not([hidden])) { position: static; }
.floor-plan-packing li { margin: 0 0 8px; overflow-wrap: anywhere; white-space: pre-wrap; font-size: 13px; }
.floor-plan-check { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 13px; overflow-wrap: anywhere; }
.floor-plan-check input { width: 20px; min-width: 20px; min-height: 20px; height: 20px; }
.floor-plan-export-menu { flex: 1; }
.floor-plan-export-menu summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; color: #c5b0ed; }
.floor-plan-export-menu summary::after { content: " ▾"; margin-left: 8px; }
.floor-plan-canvas [data-floor-plan-label], .floor-plan-canvas [data-floor-plan-route-label], .floor-plan-canvas [data-route-point] { cursor: move; }
.floor-plan-canvas [data-floor-plan-route] { cursor: pointer; }
.floor-plan-canvas [data-floor-plan-item], .floor-plan-canvas [data-route-point], .floor-plan-canvas [data-floor-plan-route-label] { touch-action: none; }
@media (max-width: 800px) {
  .floor-plan-workspace { grid-template-columns: minmax(0, 1fr); }
  .floor-plan-preview { position: static; }
  .floor-plan-canvas svg { max-height: 55vh; }
}
