/* 🗺️ 실측 평면 — 실측 벽(빈 도면) + 설비를 방 안에 배치
   종류별 심볼 모양 + 용량 기반 크기. 기존 floor.css 미변경, geo 뷰 전용 */

#panel-floor .fpx-geowrap{background:#FCFDFE;border:1px solid var(--c-cardline);border-radius:8px;overflow:hidden;position:relative;}
/* 빈 벽 SVG = 옅은 구조선 */
#panel-floor .fpx-geowrap .fpx-planimg{opacity:.9;}

/* 설비 = 방 안 상태색 기계객체. 크기=용량(--sz), 모양=종류(data-shp) */
#panel-floor .fpx-geowrap .fpx-pmk{flex-direction:column;gap:2px;}
#panel-floor .fpx-geowrap .fpx-pmk .pmk-dot{
  width:var(--sz,16px);height:var(--sz,16px);
  background:var(--st);border:2px solid #fff;border-radius:4px;
  box-shadow:0 1px 5px rgba(15,23,42,.4), 0 0 0 1px color-mix(in srgb,var(--st) 55%,transparent);
}
/* 상태 맥동 */
#panel-floor .fpx-geowrap .fpx-pmk.run .pmk-dot,
#panel-floor .fpx-geowrap .fpx-pmk.clean .pmk-dot,
#panel-floor .fpx-geowrap .fpx-pmk.check .pmk-dot{animation:fpxBlink 1.8s infinite;}

/* ── 종류별 심볼 모양 (같은 종류 = 같은 모양) ── */
#panel-floor .fpx-geowrap .fpx-pmk[data-shp="reactor"]    .pmk-dot{border-radius:50%;}                                   /* 반응기=원 */
#panel-floor .fpx-geowrap .fpx-pmk[data-shp="centrifuge"] .pmk-dot{border-radius:50%;box-shadow:0 1px 5px rgba(15,23,42,.4),0 0 0 1px color-mix(in srgb,var(--st) 55%,transparent),inset 0 0 0 2.5px rgba(255,255,255,.75);} /* 원심분리기=원+내부링 */
#panel-floor .fpx-geowrap .fpx-pmk[data-shp="dryer"]      .pmk-dot{border-radius:7px;width:calc(var(--sz,16px)*1.35);}   /* 건조기=가로 드럼 */
#panel-floor .fpx-geowrap .fpx-pmk[data-shp="still"]      .pmk-dot{border-radius:6px;width:calc(var(--sz,16px)*.72);height:calc(var(--sz,16px)*1.5);} /* 정제·증류=세로 기둥 */
#panel-floor .fpx-geowrap .fpx-pmk[data-shp="screen"]     .pmk-dot{border-radius:2px;}                                   /* 스크린=사각 */
#panel-floor .fpx-geowrap .fpx-pmk[data-shp="mill"]       .pmk-dot{border-radius:3px;transform:rotate(45deg);}           /* 분쇄기=마름모 */
#panel-floor .fpx-geowrap .fpx-pmk[data-shp="util"]       .pmk-dot{border-radius:4px;opacity:.82;}                       /* 유틸=사각(옅게) */
/* clip-path 도형(테두리 대신 drop-shadow) */
#panel-floor .fpx-geowrap .fpx-pmk[data-shp="filter"]     .pmk-dot{border:none;border-radius:0;clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 1px 2px rgba(15,23,42,.45));} /* 여과기=역삼각(깔때기) */
#panel-floor .fpx-geowrap .fpx-pmk[data-shp="granulator"] .pmk-dot{border:none;border-radius:0;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);filter:drop-shadow(0 1px 2px rgba(15,23,42,.45));} /* 과립기=육각 */

/* 근사배치 = 옅은 채움(위치 근사 표시) */
#panel-floor .fpx-geowrap .fpx-pmk.approx .pmk-dot{background:color-mix(in srgb,var(--st) 26%,#fff);box-shadow:0 0 0 1.5px var(--st);}
/* 충돌/고장 강조 */
#panel-floor .fpx-geowrap .fpx-pmk.cf .pmk-dot{box-shadow:0 0 10px 2px rgba(230,0,18,.6);}

/* 코드 라벨 상시 노출 */
#panel-floor .fpx-geowrap .fpx-pmk .pmk-lbl{opacity:1;font-size:8.5px;font-weight:800;letter-spacing:-.2px;background:rgba(255,255,255,.92);color:#334155;padding:0 3px;border-radius:3px;box-shadow:0 1px 2px rgba(15,23,42,.12);white-space:nowrap;}
#panel-floor .fpx-geowrap .fpx-pmk:hover,#panel-floor .fpx-geowrap .fpx-pmk.sel{z-index:6;}
#panel-floor .fpx-geowrap .fpx-pmk:hover .pmk-dot,#panel-floor .fpx-geowrap .fpx-pmk.sel .pmk-dot{outline:2px solid #2A4365;outline-offset:2px;}
#panel-floor .fpx-geowrap .fpx-pmk:hover .pmk-lbl,#panel-floor .fpx-geowrap .fpx-pmk.sel .pmk-lbl{background:#13243B;color:#fff;}

#panel-floor .fpx-geowrap .fpx-plancap{background:rgba(255,255,255,.96);}

/* ── 범례(종류 심볼 기준) ── */
#panel-floor .fpx-geolegend{position:absolute;left:9px;bottom:9px;z-index:7;display:flex;flex-wrap:wrap;gap:4px 9px;max-width:72%;
  background:rgba(255,255,255,.94);border:1px solid var(--c-cardline);border-radius:8px;padding:6px 10px;box-shadow:0 2px 8px rgba(15,23,42,.1);}
#panel-floor .fpx-geolegend .lg-i{display:inline-flex;align-items:center;gap:4px;font-size:.66rem;color:var(--c-tx2);font-weight:600;}
#panel-floor .fpx-geolegend .lg-s{width:12px;height:12px;background:#94A3B8;flex:none;}
#panel-floor .fpx-geolegend .lg-s.reactor{border-radius:50%;}
#panel-floor .fpx-geolegend .lg-s.centrifuge{border-radius:50%;box-shadow:inset 0 0 0 2px #fff;}
#panel-floor .fpx-geolegend .lg-s.dryer{border-radius:3px;width:16px;}
#panel-floor .fpx-geolegend .lg-s.still{border-radius:2px;width:8px;height:14px;}
#panel-floor .fpx-geolegend .lg-s.screen{border-radius:1px;}
#panel-floor .fpx-geolegend .lg-s.mill{transform:rotate(45deg);border-radius:1px;width:10px;height:10px;}
#panel-floor .fpx-geolegend .lg-s.filter{clip-path:polygon(0 0,100% 0,50% 100%);}
#panel-floor .fpx-geolegend .lg-s.granulator{clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);}
#panel-floor .fpx-geolegend .lg-s.util{border-radius:2px;opacity:.7;}
#panel-floor .fpx-geolegend .lg-sz{color:var(--c-tx3);font-weight:600;border-left:1px solid var(--c-line);padding-left:8px;}
