.object-plan-dialog{width:min(98vw,1800px);height:min(96dvh,1100px);max-width:none;max-height:none;padding:0;border:1px solid #284052;border-radius:18px;background:#071522;color:#e7f1f6;box-shadow:0 30px 90px #000b;overflow:hidden}
.object-plan-dialog::backdrop{background:#010812cf}
.object-plan-header{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid #274050;background:#091c2b}
.object-plan-header>div{margin-right:auto}.object-plan-header h2{font-size:18px;margin:2px 0 0}.object-plan-kicker{font-size:10px;letter-spacing:.14em;color:#1cc7f2}
.object-plan-status{font-size:12px;color:#b8cbd4}
.object-plan-body{display:grid;grid-template-columns:260px minmax(0,1fr);height:calc(100% - 67px);min-height:0}
.object-plan-sidebar{padding:14px;overflow:auto;border-right:1px solid #274050;display:flex;flex-direction:column;align-items:stretch;gap:10px}
.object-plan-sidebar h3{font-size:13px;margin:12px 0 0}.object-plan-sidebar .hint{font-size:11px;line-height:1.5;margin:12px 0}
.object-plan-room-status{margin:0;color:#9fd5e2;font-size:11px;line-height:1.4}
.object-plan-sidebar select,.object-plan-sidebar input,.object-plan-inspector input,.object-plan-inspector select{width:100%;min-height:38px;background:#102333;border:1px solid #38566a;color:#e7f1f6;border-radius:8px;padding:6px}
.object-plan-field{display:grid;gap:6px;font-size:12px;color:#afc5d0}
.object-plan-sources{padding:9px;border:1px solid #38566a;border-radius:9px;background:#0c2130;display:grid;gap:7px}
.object-plan-sources summary{cursor:pointer;color:#dceaf0;font-size:12px;font-weight:600}
.object-plan-sources[open]>:not(summary){margin-top:7px}
.object-plan-sources .hint{margin:2px 0;font-size:10px}
.object-plan-vector-dialog{width:min(96vw,1300px);height:min(93dvh,900px);max-width:none;max-height:none;padding:12px;border:1px solid #38566a;border-radius:14px;background:#091b29;color:#e7f1f6;overflow:hidden;flex-direction:column;gap:7px}
.object-plan-vector-dialog[open]{display:flex}
.object-plan-vector-dialog::backdrop{background:#010812dc}
.object-plan-vector-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.object-plan-vector-dialog svg{display:block;width:100%;height:auto;flex:1;min-height:150px;background:#f7faf9}
.object-plan-cad-reference{pointer-events:none}.object-plan-cad-reference line{stroke:#263c45;stroke-width:1.1px;vector-effect:non-scaling-stroke}
.object-plan-vector-visible{stroke:#718995;stroke-width:1.5;pointer-events:none}
.object-plan-vector-candidate.selected .object-plan-vector-visible{stroke:#0782a8;stroke-width:3}
.object-plan-vector-hit{stroke:transparent;stroke-width:15;fill:none;cursor:pointer;pointer-events:stroke}
.object-plan-pdf-room-marker{pointer-events:none}.object-plan-pdf-room-marker circle{fill:#fff2cb;stroke:#8f5d13;stroke-width:1.5}.object-plan-pdf-room-marker text{fill:#593907;font-size:13px;font-weight:800}
.object-plan-room-number-candidate{pointer-events:none}.object-plan-room-number-candidate.linked{pointer-events:all;cursor:pointer}.object-plan-room-number-candidate circle{fill:#fff4d8;stroke:#946011;stroke-width:var(--plan-wall-thin,.035px);stroke-dasharray:.05 .035}.object-plan-room-number-candidate.linked circle{fill:#ddf8f4;stroke:#067f91;stroke-dasharray:none}.object-plan-room-number-candidate text{fill:#6a4107;font-size:var(--plan-font-size,.33px);font-weight:800}.object-plan-room-number-candidate.linked text{fill:#07596a}.object-plan-room-number-candidate.linked:focus-visible circle{stroke:#004d69;stroke-width:var(--plan-wall-width,.08px)}
.object-plan-room-number-candidate .object-plan-room-number-hit{fill:transparent;stroke:none;pointer-events:all}
.object-plan-selection-hint{margin:0;color:#c6dce6;font-size:12px}
.object-plan-import-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:9px 0}
.object-plan-import-row label{display:flex;align-items:center;gap:6px;font-size:12px;color:#c6dce6}
.object-plan-import-row input{width:76px;min-height:36px;background:#102333;border:1px solid #38566a;color:#e7f1f6;border-radius:8px;padding:6px}
.object-plan-calibration{border:1px solid #38566a;border-radius:8px;padding:7px 10px;background:#0c2130;font-size:12px}
.object-plan-calibration summary{cursor:pointer;font-weight:600}
.object-plan-calibration-row{display:flex;align-items:end;flex-wrap:wrap;gap:8px;margin-top:8px}
.object-plan-calibration-row label{display:grid;gap:4px;color:#c6dce6}
.object-plan-calibration-row input{width:130px;min-height:34px;background:#102333;border:1px solid #38566a;color:#e7f1f6;border-radius:8px;padding:6px}
.object-plan-calibration .hint{margin:6px 0 0;color:#b7cbd4}
.object-plan-calibration-marks{pointer-events:none}.object-plan-calibration-marks line{stroke:#e37520;stroke-width:2.5;stroke-dasharray:5 3}.object-plan-calibration-marks circle{fill:#fff;stroke:#e37520;stroke-width:2}
.object-plan-size{display:grid;grid-template-columns:auto 1fr auto 1fr;align-items:center;gap:6px;font-size:11px;color:#afc5d0}
.object-plan-device-list{display:grid;gap:5px;max-height:40vh;min-height:38px;flex:none;overflow:auto}
.object-plan-new-room{display:grid;gap:6px}.object-plan-new-room[hidden]{display:none}
.object-plan-schedule{padding:9px;border:1px solid #38566a;border-radius:9px;background:#0c2130;display:grid;gap:7px}
.object-plan-schedule summary{cursor:pointer;color:#dceaf0;font-size:12px;font-weight:600}
.object-plan-schedule[open]>:not(summary){margin-top:7px}
.object-plan-schedule textarea{width:100%;min-height:108px;resize:vertical;background:#102333;border:1px solid #38566a;color:#e7f1f6;border-radius:8px;padding:8px;font:inherit;font-size:12px}
.object-plan-schedule .hint{margin:2px 0;font-size:10px}
.object-plan-schedule-review{display:grid;gap:7px;padding:8px;border:1px solid #446477;border-radius:8px;background:#0a1b28}
.object-plan-schedule-review[hidden]{display:none}
.object-plan-schedule-changes{display:grid;gap:5px;max-height:180px;overflow:auto}
.object-plan-schedule-change{display:flex;align-items:center;gap:7px;padding:6px 7px;border:1px solid #314e60;border-radius:7px;color:#d7e8ef;font-size:11px;line-height:1.4}
.object-plan-schedule-change input{width:17px;height:17px;min-height:0;margin:0;flex:none;accent-color:#15bfe9}
.object-plan-suggestions{display:grid;gap:6px}.object-plan-suggestions[hidden]{display:none}
.object-plan-suggestions select{width:100%}
.object-plan-gaps{display:grid;gap:6px;padding:8px;border:1px solid #8b6530;border-radius:8px;background:#2a261c}
.object-plan-gaps[hidden]{display:none}.object-plan-gaps .hint{margin:0;color:#edcc97}
.object-plan-device{min-height:38px;padding:7px 10px;text-align:left;background:#102333;border:1px solid #355365;color:#dceaf0;border-radius:8px;cursor:pointer}
.object-plan-device:hover,.object-plan-device.active,.object-plan-sidebar .button.active{border-color:#1ec6ef;background:#123a50}
.object-plan-device:disabled{opacity:.55;cursor:default}
.object-plan-stage{min-width:0;min-height:0;display:flex;flex-direction:column;gap:8px;padding:10px 14px;overflow:auto}
.object-plan-stagebar{display:flex;align-items:center;gap:12px;justify-content:space-between;font-size:12px;color:#a9c2ce}
.object-plan-stagebar .object-plan-selection{margin-left:auto}
.object-plan-fit{min-height:30px;padding:4px 10px;font-size:11px;white-space:nowrap}
.object-plan-draft-notice{font-size:11px;color:#d6b774;margin:0}
.object-plan-canvas{display:block;width:100%;max-height:calc(100% - 132px);min-height:300px;align-self:center;background:#f6f9f8;border:1px solid #577386;box-shadow:0 4px 20px #0006;touch-action:none;user-select:none}
.object-plan-paper{fill:#f7faf9}.object-plan-grid{stroke:#dce7e9;stroke-width:.012;pointer-events:none}
.object-plan-room rect,.object-plan-room polygon{fill:#e3f5f6;fill-opacity:.55;stroke:#366b7b;stroke-width:var(--plan-wall-thin,.035px);pointer-events:none}
.object-plan-room text{fill:#153b4b;font-size:var(--plan-font-size,.33px);font-weight:600;pointer-events:none}
.object-plan-suggestion{cursor:pointer}.object-plan-suggestion polygon{fill:#d7eaf0;fill-opacity:.4;stroke:#2783a0;stroke-width:.055;stroke-dasharray:.14 .08;pointer-events:all}
.object-plan-suggestion.selected polygon{fill:#ebbc56;fill-opacity:.28;stroke:#d68a19;stroke-width:.075}
.object-plan-suggestion text{fill:#123d52;font-size:var(--plan-font-size,.33px);font-weight:800;paint-order:stroke;stroke:#fff;stroke-width:var(--plan-label-outline,.07px);pointer-events:none}
.object-plan-wall{cursor:pointer}.object-plan-wall-visible{stroke:#147da0;stroke-width:var(--plan-wall-thin,.035px);stroke-dasharray:.11 .07;pointer-events:none}
.object-plan-wall.included .object-plan-wall-visible{stroke:#173d4f;stroke-width:var(--plan-wall-width,.09px);stroke-dasharray:none}
.object-plan-wall.excluded .object-plan-wall-visible{stroke:#a9b9bd;stroke-width:.02;stroke-dasharray:.08 .08}
.object-plan-wall.selected .object-plan-wall-visible{stroke:#f19b2d;stroke-width:var(--plan-wall-selected,.11px);stroke-dasharray:none}
.object-plan-wall-hit{stroke:#fff;stroke-opacity:0;stroke-width:var(--plan-wall-hit,.28px);pointer-events:stroke}
.object-plan-opening{stroke:#1b97b5;stroke-width:.045;stroke-dasharray:.08 .07;pointer-events:none}
.object-plan-opening.window{stroke:#4985db;stroke-width:.07;stroke-dasharray:.13 .04}
.object-plan-opening.passage{stroke:#71a0a6;stroke-width:.025;stroke-dasharray:.04 .1}
.object-plan-opening.unspecified{stroke:#1880ad;stroke-width:.045;stroke-dasharray:.08 .08}
.object-plan-opening-jamb{stroke:#173d4f;stroke-width:var(--plan-wall-thin,.035px);pointer-events:none}
.object-plan-draft{fill:#13b6e5;fill-opacity:.2;stroke:#0089ae;stroke-width:.05;stroke-dasharray:.15 .1;pointer-events:none}
.object-plan-wall-draft{stroke:#e79d22;stroke-width:var(--plan-wall-width,.09px);stroke-dasharray:.12 .08;pointer-events:none}
.object-plan-gap-preview{stroke:#db7513;stroke-width:var(--plan-wall-selected,.11px);stroke-dasharray:.1 .06;pointer-events:none}
.object-plan-polygon-draft{fill:none;stroke:#d58912;stroke-width:var(--plan-wall-width,.09px);stroke-dasharray:.12 .08;pointer-events:none}
.object-plan-polygon-vertex{fill:#f5ba54;stroke:#534018;stroke-width:var(--plan-wall-thin,.035px);pointer-events:none}
.object-plan-marker{cursor:grab}.object-plan-marker:active{cursor:grabbing}.object-plan-marker circle{fill:#04bfe9;stroke:#053341;stroke-width:var(--plan-wall-thin,.035px)}
.object-plan-marker.selected circle{fill:#ffbd4b}.object-plan-marker text{fill:#082633;font-size:var(--plan-font-size,.33px);font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:var(--plan-label-outline,.07px);pointer-events:none}
.object-plan-inspector{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding-top:5px;font-size:12px;color:#b7cbd4}
.object-plan-inspector strong{color:#e6f3f6}.object-plan-coordinate{display:flex;align-items:center;gap:5px}.object-plan-coordinate input,.object-plan-coordinate select{width:80px}
.object-plan-opening-row{display:flex;align-items:center;gap:5px;padding:5px 7px;border:1px solid #38566a;border-radius:8px}
.object-plan-opening-row input{width:70px}.object-plan-opening-row select{width:100px}
@media(max-width:850px){.object-plan-dialog{width:100vw;height:100dvh;border-radius:0}.object-plan-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:5px;padding:8px}.object-plan-header>div{grid-column:1;grid-row:1}.object-plan-header h2{font-size:15px}.object-plan-header .object-plan-status{grid-column:1;grid-row:2}.object-plan-header .button{grid-row:1/3}.object-plan-body{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);height:calc(100% - 90px)}.object-plan-sidebar{border-right:0;border-bottom:1px solid #274050;max-height:315px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.object-plan-sidebar h3,.object-plan-sidebar .hint{display:none}.object-plan-new-room,.object-plan-suggestions{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;align-items:center}.object-plan-gaps{grid-column:1/-1}.object-plan-gaps .hint{display:block}.object-plan-device-list{grid-column:1/-1;display:flex;overflow:auto;max-height:45px}.object-plan-device{flex:none;max-width:200px}.object-plan-stage{padding:5px}.object-plan-canvas{min-height:200px;max-height:calc(100% - 106px)}}
@media(max-width:850px){.object-plan-sidebar.has-gaps{max-height:380px}.object-plan-gaps{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.object-plan-gaps select{min-width:0}.object-plan-gaps .hint{grid-column:1/-1}.object-plan-gaps .button{min-width:0;min-height:42px;white-space:normal;font-size:11px}}
@media(max-width:850px){.object-plan-schedule{grid-column:1/-1}.object-plan-schedule .hint{display:block}.object-plan-sidebar:has(.object-plan-schedule[open]){max-height:390px}}
@media(max-width:850px){.object-plan-room-status{grid-column:1/-1;font-size:10px}}
