.placement-editor-shell{--placement-draft-marker: #2563eb;--placement-draft-marker-selected: #1d4ed8;--placement-draft-footprint: rgba(59, 130, 246, .16);--placement-draft-footprint-stroke: rgba(37, 99, 235, .78);--placement-active-marker: #16a34a;--placement-active-dark: #166534;--placement-active-outline: #22c55e;--placement-active-footprint: rgba(34, 197, 94, .18);display:flex;flex-direction:column;height:calc(95vh - 40px);min-height:620px;overflow:hidden;background:#1e1e2e;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.placement-ribbon{display:flex;align-items:stretch;gap:0;padding:6px 12px;background:linear-gradient(180deg,#f8f9fa,#e9ecef);border-bottom:1px solid #ced4da;flex-shrink:0;flex-wrap:wrap}.placement-ribbon-group{display:flex;align-items:center;gap:4px;min-height:40px;padding:4px 8px 8px;position:relative}.placement-ribbon-group-label{position:absolute;bottom:-2px;left:50%;transform:translate(-50%);font-size:9px;line-height:12px;text-transform:uppercase;letter-spacing:.5px;color:#868e96;white-space:nowrap;pointer-events:none}.placement-ribbon-sep{width:1px;background:#ced4da;margin:4px 6px;align-self:stretch}.placement-ribbon-btn,.placement-context-bar button{padding:5px 10px;font-family:inherit;font-size:12px;line-height:18px;font-weight:500;border:1px solid #ced4da;border-radius:4px;background:#fff;color:#495057;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}.placement-ribbon-btn:hover:not(:disabled),.placement-context-bar button:hover:not(:disabled){background:#e9ecef;border-color:#adb5bd}.placement-context-success{color:#087f5b;background:#e6fcf5;border-color:#96f2d7}.placement-ribbon-btn:disabled,.placement-ribbon-input input:disabled,.placement-ribbon-input select:disabled,.placement-ribbon-checkbox input:disabled{opacity:.45;cursor:not-allowed}.placement-ribbon-btn-accent{background:#4c6ef5;color:#fff;border-color:#4c6ef5}.placement-ribbon-btn-accent:hover:not(:disabled){background:#3b5bdb;border-color:#3b5bdb}.placement-ribbon-btn-danger{color:#e03131;border-color:#e03131}.placement-ribbon-btn-danger:hover:not(:disabled){background:#e03131;color:#fff}.placement-ribbon-btn-cancel{color:#e03131;border-color:#ffa8a8;background:#fff5f5;animation:placement-pulse-soft 1.5s infinite}@keyframes placement-pulse-soft{0%,to{opacity:1}50%{opacity:.7}}.placement-ribbon-btn-orient{min-width:28px;padding-inline:7px;font-weight:700;font-size:11px;background:#dee2e6;border-color:#adb5bd}.placement-ribbon-input{display:inline-flex;align-items:center;gap:4px}.placement-ribbon-input>span{font-size:11px;font-weight:500;color:#495057;white-space:nowrap}.placement-ribbon-input input[type=number]{width:54px;padding:4px 5px;font-family:inherit;font-size:12px;line-height:18px;border:1px solid #ced4da;border-radius:3px;color:#212529;background:#fff}.placement-ribbon-input input[type=number]:focus,.placement-ribbon-select:focus{outline:none;border-color:#4c6ef5;box-shadow:0 0 0 2px #4c6ef526}.placement-ribbon-select{height:28px;padding:3px 6px;font-family:inherit;font-size:12px;border:1px solid #ced4da;border-radius:3px;color:#212529;background:#fff}.placement-floor-select{width:160px;max-width:22vw}.placement-ribbon-checkbox{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:#495057;cursor:pointer;white-space:nowrap}.placement-ribbon-checkbox input{margin:0}.placement-status-bar{display:flex;align-items:center;gap:16px;min-height:28px;padding:4px 14px;flex-shrink:0;overflow:hidden;background:#343a40;color:#dee2e6;font-size:12px;white-space:nowrap}.placement-status-spacer{flex:1}.placement-selected-info{color:#ffd43b;font-weight:500;overflow:hidden;text-overflow:ellipsis}.placement-status-scale,.placement-status-coverage{color:#69db7c;font-weight:600}.placement-status-sensors,.placement-status-height{color:#a9d2fb}.placement-sensor-legend{display:inline-flex;align-items:center;gap:10px;color:#dee2e6}.placement-sensor-legend>span{display:inline-flex;align-items:center;gap:5px}.placement-legend-swatch{width:9px;height:9px;border-radius:50%;border:1px solid rgba(255,255,255,.95)}.placement-legend-swatch.is-draft{background:var(--placement-draft-marker)}.placement-legend-swatch.is-active{background:var(--placement-active-marker);border-color:var(--placement-active-dark);box-shadow:0 0 0 2px #16a34a47}.placement-context-bar{display:flex;align-items:center;gap:10px;padding:6px 14px;flex-shrink:0;flex-wrap:wrap;background:#fff3cd;border-bottom:1px solid #ffc107;color:#664d03;font-size:12px}.placement-context-warning{background:#fff3cd;border-color:#ffc107;color:#664d03}.placement-context-error{background:#fff5f5;border-color:#ffa8a8;color:#c92a2a}.placement-context-bar button{margin-left:auto;padding:2px 8px;font-size:11px;line-height:16px}.placement-array-controls label{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.placement-array-controls input[type=number]{width:58px;padding:3px 5px;border:1px solid #d6b656;border-radius:3px;background:#fff}.placement-array-controls button{margin-left:0}.placement-array-warning{color:#b42318;font-weight:600}.placement-canvas-area{flex:1;min-height:0;display:flex;justify-content:center;align-items:center;padding:12px;overflow:auto;position:relative;background:#2b2d42;overscroll-behavior:contain}.placement-stage{position:relative;width:min(1200px,100%);line-height:0;flex:0 0 auto;overflow:hidden;background:#1a1a2e;border:1px solid #495057;box-shadow:0 8px 28px #00000059;transform-origin:0 0;will-change:transform}.placement-stage.is-panning .placement-overlay{cursor:grabbing}.placement-stage>img{display:block;width:100%;height:auto;-webkit-user-select:none;user-select:none}.placement-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;cursor:default;touch-action:none}.placement-overlay.is-drawing{cursor:crosshair}.placement-calibration-line{stroke:#ffd43b;stroke-width:2;stroke-dasharray:7 4;pointer-events:none}.placement-calibration-point{fill:#ffd43b;stroke:#212529;stroke-width:2;pointer-events:none}.placement-region{fill:#00aa0026;stroke:#0a0;stroke-width:2;vector-effect:non-scaling-stroke}.placement-region-line{fill:none;stroke:#0a0;stroke-width:2;stroke-dasharray:7 5;vector-effect:non-scaling-stroke}.placement-region-point,.placement-region-start{fill:#0a0;stroke:#fff;stroke-width:1.5}.placement-region-start{fill:#f03e3e}.placement-array-region{fill:#3b82f617;stroke:#74c0fc;stroke-width:2;stroke-dasharray:8 5;pointer-events:none}.placement-sensor{cursor:grab}.placement-sensor:active{cursor:grabbing}.placement-sensor rect{fill:var(--placement-draft-footprint);stroke:var(--placement-draft-footprint-stroke);stroke-width:1}.placement-sensor-marker{fill:var(--placement-draft-marker);stroke:#fffffff2;stroke-width:2;paint-order:stroke fill;filter:drop-shadow(0 1px 2px rgba(15,23,42,.55))}.placement-sensor.is-selected rect{fill:#3b82f63d;stroke:#1d4ed8;stroke-width:2}.placement-sensor.is-selected .placement-sensor-marker{fill:var(--placement-draft-marker-selected);stroke:#fff;stroke-width:4}.placement-sensor.is-preview{pointer-events:none}.placement-sensor.is-preview rect{fill:#60a5fa1c;stroke:#60a5fad9;stroke-dasharray:5 4}.placement-sensor.is-preview .placement-sensor-marker{fill:#60a5fa;opacity:.82}.placement-active-sensor-overlay,.placement-active-sensor{pointer-events:none}.placement-active-sensor-overlay .placement-active-sensor-footprint{fill:var(--placement-active-footprint);stroke:var(--placement-active-outline);stroke-width:2}.placement-active-sensor-overlay .placement-active-sensor-halo{fill:#22c55e1f;stroke:var(--placement-active-outline);stroke-width:2;stroke-dasharray:3 2}.placement-active-sensor-overlay .placement-active-sensor-marker{fill:var(--placement-active-marker);stroke:var(--placement-active-dark);stroke-width:2.5;paint-order:stroke fill;filter:drop-shadow(0 1px 2px rgba(15,23,42,.65))}.placement-active-sensor-overlay .placement-active-sensor-direction{stroke:var(--placement-active-dark);stroke-width:3;stroke-linecap:round}.placement-missing-cell{fill:#ff0000e0;stroke:#fff;stroke-width:.65;pointer-events:none}.placement-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#1a1a2ec2;line-height:normal}.placement-loading-overlay .ant-spin-text{color:#dee2e6}.placement-empty{width:100%;min-height:320px;display:flex;align-items:center;justify-content:center;color:#adb5bd;background:#1a1a2e;border:1px dashed #495057;font-size:13px}.placement-diagnostics-drawer{flex-shrink:0;background:#1e1e1e;border-top:1px solid #495057;color:#d4d4d4}.placement-diagnostics-drawer summary{display:flex;align-items:center;gap:10px;padding:6px 14px;color:#adb5bd;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:11px;line-height:16px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.placement-diagnostics-drawer summary:before{content:"▶";margin-right:2px;font-size:9px}.placement-diagnostics-drawer[open] summary:before{content:"▼"}.placement-diagnostics-drawer summary:hover{color:#dee2e6}.placement-diagnostics-drawer summary span{margin-left:auto;color:#69db7c;text-transform:none;letter-spacing:0}.placement-debug-panel{padding:10px 14px;max-height:250px;overflow-y:auto;color:#d4d4d4;font-family:Consolas,Monaco,monospace;font-size:11px;line-height:1.5}.placement-debug-title{display:block;margin-bottom:6px;color:#4ec9b0;font-weight:700}.placement-details{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:4px 18px;margin:0}.placement-details>div{display:flex;gap:6px;min-width:0}.placement-details dt{color:#9cdcfe}.placement-details dt:after{content:":"}.placement-details dd{margin:0;overflow-wrap:anywhere}.placement-debug-warn{display:block;margin-top:4px;color:#f48771}.placement-comparison-conclusion{display:block;margin-top:8px}@media(max-width:1200px){.placement-ribbon{padding:4px 8px}.placement-ribbon-sep{display:none}.placement-ribbon-group{padding:3px 4px}.placement-ribbon-group-label{display:none}.placement-details{grid-template-columns:repeat(2,minmax(150px,1fr))}}@media(max-width:700px){.placement-editor-shell{height:auto;min-height:calc(100vh - 40px);overflow:visible}.placement-ribbon{gap:4px}.placement-ribbon-group{flex-wrap:wrap}.placement-project-group{width:100%}.placement-floor-select{width:min(240px,65vw);max-width:none}.placement-status-bar{gap:8px;overflow-x:auto}.placement-status-spacer{display:none}.placement-canvas-area{min-height:420px}.placement-details{grid-template-columns:1fr}}html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}.logo{color:#fff;margin-right:10px}.image-feed{overflow:hidden}.ant-card-body{height:100%!important}.ant-tabs-nav .ant-tabs-content-holder{margin:auto;text-align:center}.item-list-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:center;flex-grow:1;align-content:space-between;gap:10px}.item-list-text{border:solid #0f020f23 1px;border-radius:10px;flex-basis:auto;padding:5px}
