:root{
  --pbs-button-font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif;--pbs-button-font-size:15px;--pbs-button-font-weight:700;--pbs-button-line-height:1.2;
  --header-h:88px;--header-square:88px;--black:#050505;--orange:#f97316;--orange-hover:#fb923c;
  --bg:#eef1f4;--ink:#17202a;--muted:#647383;--bad:#b42318;--ok:#087a45;--button-h:36px;
  --world-origin-px:8000px;--axis-line:2px;--annotation-counter-scale:1;
  --pbs-graphical-compartment-id-font-size:16px;--pbs-graphical-compartment-id-font-weight:600;
  --pbs-graphical-meta-font-size:12px;--pbs-graphical-meta-font-weight:400;
}
*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif;color:var(--ink);background:var(--bg)}body{display:flex;flex-direction:column;overflow:hidden}
.pbs-shell{height:var(--header-h);position:relative;z-index:50;background:var(--black);border-bottom:1px solid #222;overflow:visible;flex:0 0 var(--header-h)}
.header-base{height:100%;display:grid;grid-template-columns:var(--header-square) minmax(0,1fr) var(--header-square);gap:6px;background:var(--black)}
.save-control-wrap{position:relative;width:var(--header-square);height:var(--header-square);padding:6px;background:#050505;overflow:visible;z-index:120}
.save-tile{width:100%;height:100%;border:1px solid #fff;border-radius:11px;background:#050505;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:700 12px/1 "Segoe UI",Tahoma,sans-serif;cursor:pointer}
.save-control-wrap:hover .save-tile,.save-control-wrap .save-tile[aria-expanded="true"]{color:#777;border-color:#777}
.save-icon{width:43px;height:43px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.save-menu{position:absolute;left:6px;top:calc(var(--header-square) - 6px);width:calc(var(--header-square) - 12px);display:grid;grid-template-rows:repeat(4,calc(var(--header-square) - 12px));z-index:130;box-shadow:0 10px 22px #0008}.save-menu[hidden]{display:none!important}
.save-menu-btn{width:calc(var(--header-square) - 12px);height:calc(var(--header-square) - 12px);border:1px solid #fff;border-radius:11px;background:#404040;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;cursor:pointer;font:700 11px/1 "Segoe UI",Tahoma,sans-serif}.save-menu-btn:hover{background:#575757}.save-menu-btn .save-icon{width:38px;height:38px}
.control-panel{min-width:0;height:100%;padding:5px 8px;display:grid;grid-template-rows:36px 36px;gap:6px;background:var(--black);color:#fff;overflow:hidden}
.identity-row{min-width:0;position:relative;display:grid;grid-template-columns:minmax(130px,1fr) minmax(100px,1fr);align-items:center;gap:10px}.identity-logo{position:absolute;left:50%;transform:translateX(-50%)}.identity-email{color:#dbeafe;text-decoration:none;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.identity-logo{height:25px;max-width:150px;object-fit:contain}.identity-title{position:absolute;left:calc(50% + 92px);font-size:15px;white-space:nowrap}.project-number{grid-column:2;text-align:right;font-size:14px;font-weight:650;white-space:nowrap}
.mode-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;min-width:0}.mode-btn{height:var(--button-h);min-width:0;border:1px solid #606067;border-radius:4px;padding:0 9px;background:#3f3f46;color:#fff;font:var(--pbs-button-font-weight,700) var(--pbs-button-font-size,15px)/var(--pbs-button-line-height,1.2) var(--pbs-button-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mode-btn:hover{background:#5a5a63}.vertex-mode-btn:hover{background:#c2410c;border-color:#fb923c}.vertex-mode-btn.active{background:#f97316;border-color:#fdba74;color:#111}
.drop-placeholder{width:var(--header-square);height:var(--header-square);background:var(--black)}.drop-control{position:absolute;right:0;top:0;width:var(--header-square);height:var(--header-square);padding:6px;background:var(--black);border:0;cursor:pointer;overflow:hidden;z-index:60;transition:width .18s ease,box-shadow .18s ease}.drop-control.expanded,.drop-control.drag-active{width:72%;box-shadow:-8px 4px 20px rgba(0,0,0,.24)}.drop-inner{width:100%;height:100%;padding:8px;display:flex;align-items:center;justify-content:center;gap:10px;border:2px dashed #f97316;border-radius:11px;background:#f6a623;overflow:hidden;white-space:nowrap;transition:background .18s ease}.drop-control.drag-active .drop-inner{background:#ffbd4a}.drop-icon{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 38px;color:#7c2d12}.drop-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.drop-loaded-icon{display:none}.drop-control.loaded:not(.expanded):not(.drag-active) .drop-inner{border-color:#fff;background:#9ca3af}.drop-control.loaded:not(.expanded):not(.drag-active) .drop-upload-icon{display:none}.drop-control.loaded:not(.expanded):not(.drag-active) .drop-loaded-icon{display:block}.drop-control:not(.expanded):not(.drag-active) .drop-copy{display:none}.drop-control.loaded:not(.expanded):not(.drag-active) .drop-icon{color:#fff}.drop-copy{display:flex;flex-direction:column;min-width:0}.drop-copy strong,.drop-copy small{overflow:hidden;text-overflow:ellipsis}.drop-copy small{margin-top:4px}
.main{flex:1;min-height:0;position:relative;display:grid;grid-template-columns:260px minmax(0,1fr) 34px;transition:grid-template-columns .18s ease}.main.right-pinned{grid-template-columns:260px minmax(0,1fr) 330px}.side{background:#fff;border-right:1px solid #abb7c2;overflow:auto;padding:12px}.right{border-right:0;border-left:1px solid #abb7c2}.side h2{font-size:15px;margin:0 0 8px}.section-gap{margin-top:14px!important}.right input[type="range"]{width:100%}
.floor-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:10px}.floor-tab{padding:5px 9px;border:1px solid #99a8b5;background:#f7f9fa;border-radius:5px;cursor:pointer}.floor-tab.active{background:#263f56;color:#fff}.palette{display:grid;gap:6px}.pal{border:1px solid #99a8b5;border-left:6px solid var(--c,#607d8b);border-radius:5px;padding:7px;background:#fff;cursor:grab}.pal small{display:block;color:#5d6a75}.pal.selected{background:color-mix(in srgb,var(--c) 22%,white);border-color:color-mix(in srgb,var(--c) 70%,black)}
.stage-wrap{position:relative;overflow:scroll;overscroll-behavior:contain;background:#dfe5ea;cursor:default;scrollbar-width:none;-ms-overflow-style:none}.stage-wrap::-webkit-scrollbar{display:none;width:0;height:0}.stage-wrap.panning{cursor:grabbing!important;user-select:none}.stage-space{position:relative;flex:0 0 auto}.stage{position:absolute;left:0;top:0;transform-origin:0 0;background:#fff;overflow:hidden}.stage.vertex-mode{background-color:#fff2df}
.world-axis{position:absolute;pointer-events:none;z-index:1;background:#000}.world-axis-x{left:0;top:var(--world-origin-px);width:100%;height:var(--axis-line);transform:translateY(calc(var(--axis-line) / -2))}.world-axis-y{top:0;left:var(--world-origin-px);height:100%;width:var(--axis-line);transform:translateX(calc(var(--axis-line) / -2))}.world-origin-label{position:absolute;left:var(--world-origin-px);top:var(--world-origin-px);transform:translate(5px,5px);z-index:8;background:#000;color:#fff;border-radius:3px;padding:2px 4px;font-size:10px;pointer-events:none}
.tile-shell{position:absolute;z-index:2;pointer-events:none;overflow:visible;user-select:none}.tile-shell svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.tile-polygon{fill:var(--tile-bg);stroke:#26323d;stroke-width:var(--tile-stroke);stroke-linejoin:round;vector-effect:non-scaling-stroke}.tile-shell.selected .tile-polygon{fill:var(--tile-selected)}.tile-shell.invalid .tile-polygon,.tile-shell.preview-invalid .tile-polygon{stroke:#d92d20;stroke-width:var(--invalid-stroke)}.tile-shell.overlay{z-index:4}.tile-shell.overlay .tile-polygon{fill:transparent;stroke-width:var(--overlay-stroke);opacity:.9}.tile-shell.overlay-below .tile-polygon{stroke:#1769aa}.tile-shell.overlay-above .tile-polygon{stroke:#d97706}.tile-label{position:absolute;width:200px;height:90px;display:flex;align-items:center;justify-content:center;text-align:center;padding:3px;color:var(--tile-text,#111);overflow:hidden;transform:translate(-50%,-50%) scale(var(--annotation-counter-scale,1));transform-origin:center center;font-family:var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}.tile-label .id{font-family:inherit;font-size:var(--pbs-graphical-compartment-id-font-size,16px);font-weight:var(--pbs-graphical-compartment-id-font-weight,600);line-height:1.1}.tile-label .meta{font-family:inherit;font-size:var(--pbs-graphical-meta-font-size,12px);font-weight:var(--pbs-graphical-meta-font-weight,400);line-height:1.2}.tile-shell.compact .tile-label .meta{display:none}.tile-shell.micro .tile-label{display:none}.overlay-tag{position:absolute;left:4px;top:4px;font-size:9px;font-weight:800;background:#17202ae6;color:#fff;border-radius:3px;padding:1px 3px}
.vertex-marker{position:absolute;z-index:15;width:var(--vertex-size);height:var(--vertex-size);margin:calc(var(--vertex-size) / -2);border-radius:50%;border:var(--vertex-border) solid #7c2d12;background:#fb923c;pointer-events:none;box-shadow:0 0 0 var(--vertex-halo) #fff9}.vertex-marker.active{background:#facc15;border-color:#111}
.edge-label{position:absolute;z-index:9;pointer-events:auto;display:grid;min-width:54px;font-family:var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif);font-size:var(--pbs-table-row-font-size,14px);font-weight:var(--pbs-table-row-font-weight,400);line-height:var(--pbs-table-row-line-height,1.2);text-align:center;background:#fff;border:1px solid #536574;border-radius:3px;padding:0;white-space:nowrap;transform:translate(-50%,-50%) scale(var(--annotation-counter-scale,1));transform-origin:center center;cursor:pointer;overflow:hidden;box-shadow:0 1px 2px #0002}.edge-row{display:flex;align-items:center;justify-content:center;padding:3px 6px;font:inherit}.edge-label .opening-line{font:inherit;border-top:1px solid #8f9aa3}.edge-label.exterior{border-style:solid;background:#edf4f7;box-shadow:inset 2px 0 #809cab,0 1px 2px #0002}.edge-label.conflict{background:#ffd9d5;border-color:#b42318}.edge-label.selected{background:#cfe7f8;border-color:#1769aa;box-shadow:0 0 0 2px #1769aa55}.edge-label.selection-locked{cursor:default}.edge-label:hover{background:#c0c0c0;filter:none}
.marquee{position:absolute;z-index:20;pointer-events:none;border:1px dashed #1769aa;background:rgba(23,105,170,.12)}.status{position:absolute;left:10px;bottom:10px;background:#17202add;color:#fff;padding:6px 9px;border-radius:5px;font-size:12px;z-index:30}.mode-banner{position:absolute;left:50%;top:10px;transform:translateX(-50%);background:#f97316;color:#111;border:1px solid #9a3412;border-radius:5px;padding:6px 10px;font-size:12px;font-weight:800;z-index:30;pointer-events:none}
.card{border:1px solid #bdc6ce;border-radius:6px;padding:9px;margin-bottom:8px;background:#fff}.card h3{font-size:14px;margin:0 0 6px}.kv{display:grid;grid-template-columns:1fr 1fr;gap:5px;font-size:12px}.kv b{text-align:right}.legend{font-size:12px;color:#4b5c6a}.issue{border-left:4px solid #b42318;background:#fff1f0;padding:7px;margin:5px 0;font-size:12px}.good{border-left-color:#087a45;background:#effbf5}.badge{display:inline-block;border-radius:11px;padding:2px 7px;background:#e7edf2;font-size:11px}.mode-note{font-size:12px;color:#536575;margin:0 0 8px}.hidden{display:none!important}.btn,select,input{font:inherit}.btn{border:1px solid #778592;background:#fff;border-radius:6px;padding:7px 10px;font-weight:650;cursor:pointer}.btn:hover{background:#edf4fb}.btn.primary{background:#1769aa;color:#fff;border-color:#105384}.overlay-controls{display:grid;gap:6px;margin-bottom:6px}.overlay-option{display:flex;align-items:center;gap:8px;border:1px solid #aeb9c2;border-radius:5px;padding:7px 8px;background:#f8fafb;cursor:pointer;font-size:13px}.overlay-option input{margin:0}.detail-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.card label{display:grid;gap:3px;font-size:12px;margin-bottom:7px}.card label input,.card label select{width:100%;min-height:34px;border:1px solid #98a6b3;border-radius:4px;background:#fff;padding:4px 6px}.selection-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.selection-list span{padding:2px 6px;border-radius:10px;background:#e7edf2;font-size:11px}.zoom-row{display:grid;grid-template-columns:minmax(0,1fr) 54px;align-items:center;gap:8px}.zoom-row output{text-align:right;font-size:12px;font-weight:700}.center-view{width:100%;margin:6px 0 2px}
.modal{position:fixed;inset:0;background:#0008;display:none;align-items:center;justify-content:center;z-index:80}.modal.open{display:flex}.dialog{width:min(720px,92vw);max-height:85vh;overflow:auto;background:#fff;border-radius:10px;padding:18px}.dialog table{border-collapse:collapse;width:100%;font-size:13px}.dialog th,.dialog td{border:1px solid #aab5bf;padding:5px;text-align:left}.boundary-type-label{display:grid;gap:5px;margin:12px 0;font-size:13px;font-weight:700}.boundary-type-label select{min-height:36px}.dialog-actions{display:flex;gap:8px;justify-content:flex-end}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:200;background:#17202a;color:#fff;padding:9px 14px;border-radius:6px;box-shadow:0 6px 22px #0005;transition:.18s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1200px){.mode-btn{padding-inline:5px}.main{grid-template-columns:220px minmax(0,1fr)}.right{position:absolute;right:0;top:88px;bottom:0;width:320px;z-index:10}.identity-email,.identity-logo{display:none}.identity-row{grid-template-columns:1fr auto}.drop-control.expanded,.drop-control.drag-active{width:82%}}
@media(max-width:760px){.identity-title{font-size:13px}.main{grid-template-columns:190px minmax(0,1fr)}}

.hover-edge-line,.boundary-run-highlight{position:absolute;z-index:18;height:var(--hover-stroke);margin-top:calc(var(--hover-stroke)/-2);transform-origin:0 50%;pointer-events:none;border-radius:999px;background:#2563eb;box-shadow:0 0 0 calc(1px / var(--stage-zoom,1)) #fff8}.boundary-run-highlight{z-index:17;background:#1677d2;opacity:.92}
.vertex-ghost,.vertex-delete-indicator{position:absolute;z-index:25;width:var(--assist-size);height:var(--assist-size);margin:calc(var(--assist-size)/-2);border-radius:50%;pointer-events:none}.vertex-ghost{border:calc(2px / var(--stage-zoom,1)) solid #8a4b08;background:rgba(251,146,60,.25)}.vertex-ghost.invalid{border-color:#b42318;background:rgba(217,45,32,.16)}.vertex-ghost::before,.vertex-ghost::after{content:"";position:absolute;left:50%;top:50%;background:#7c2d12;transform:translate(-50%,-50%)}.vertex-ghost::before{width:65%;height:calc(2px / var(--stage-zoom,1))}.vertex-ghost::after{height:65%;width:calc(2px / var(--stage-zoom,1))}.vertex-delete-indicator{background:#fff;border:calc(2px / var(--stage-zoom,1)) solid #b42318}.vertex-delete-indicator::before,.vertex-delete-indicator::after{content:"";position:absolute;left:50%;top:50%;width:72%;height:calc(3px / var(--stage-zoom,1));background:#d92d20;transform-origin:center}.vertex-delete-indicator::before{transform:translate(-50%,-50%) rotate(45deg)}.vertex-delete-indicator::after{transform:translate(-50%,-50%) rotate(-45deg)}
.selected-card .compartment-number,.selected-card .compartment-name{display:block;width:100%;border:0;background:transparent;text-align:left;padding:0;cursor:text;font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif}.selected-card .compartment-number{font-size:18px;font-weight:700;line-height:1.2;color:#17202a;margin:0 0 3px}.selected-card .compartment-name{font-size:14px;font-weight:400;line-height:1.25;color:#465563;margin:0 0 12px}.inline-edit-input{width:100%;border:1px solid #1769aa;border-radius:4px;padding:4px 6px;margin-bottom:6px;font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif}.compartment-number-input{font-size:18px;font-weight:700}.compartment-name-input{font-size:14px;font-weight:400}.criterion-help{font-size:11px;line-height:1.3;color:#536575;margin:-3px 0 9px}
.stage.vertex-mode .edge-label{pointer-events:none;opacity:.62}

.label-toggle-btn{display:flex;align-items:center;justify-content:center;gap:7px}.label-checkbox{width:15px;height:15px;border:1.5px solid currentColor;border-radius:2px;position:relative;flex:0 0 auto}.label-toggle-btn.checked .label-checkbox::after{content:"";position:absolute;left:3px;top:0px;width:5px;height:9px;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg)}
.right-dock{position:relative;min-width:34px;overflow:visible;z-index:45;background:#fff;border-left:1px solid #abb7c2}.right-panel{position:absolute;right:0;top:0;bottom:0;width:330px;height:100%;padding:0;overflow:hidden;transform:translateX(calc(100% - 34px));transition:transform .18s ease,box-shadow .18s ease;box-shadow:none}.right-dock:hover .right-panel,.right-dock:focus-within .right-panel,.right-dock.pinned .right-panel{transform:translateX(0);box-shadow:-8px 0 22px #0003}.main.right-pinned .right-dock{min-width:330px}.main.right-pinned .right-panel{position:relative;width:100%;transform:none;box-shadow:none}.dock-rail{position:absolute;left:0;top:0;bottom:0;width:34px;background:#3f464d;color:#fff;display:flex;align-items:center;justify-content:center;z-index:2;pointer-events:none}.dock-rail span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:12px;font-weight:700;letter-spacing:.04em}.right-content{position:absolute;left:34px;right:0;top:0;bottom:0;overflow:auto;padding:12px;background:#fff}.main.right-pinned .right-content{position:absolute}.dock-pin{position:absolute;right:8px;top:7px;z-index:4;width:28px;height:28px;border:1px solid #9ca8b2;border-radius:4px;background:#f6f8fa;color:#46535e;display:grid;place-items:center;cursor:pointer}.dock-pin:hover,.dock-pin.active{background:#dceaf5;color:#0f5c91;border-color:#5e8eae}.dock-pin svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}.right-content>h2:first-child{padding-right:34px}
.vertex-delete-indicator{background:transparent!important;border:0!important;border-radius:0!important}.vertex-delete-indicator::before,.vertex-delete-indicator::after{height:calc(3px / var(--stage-zoom,1))!important;width:100%!important;background:#d92d20!important;box-shadow:0 0 0 calc(1px / var(--stage-zoom,1)) #fff}.boundary-card h3{padding-right:30px}.boundary-summary{display:grid;grid-template-columns:1fr auto;gap:4px 8px;font-size:12px;margin-bottom:10px}.affected-pu{grid-column:1/-1;padding:6px;background:#f2f5f7;border-radius:4px;line-height:1.45}.boundary-scope-note{font-size:11px;color:#7b4a13;background:#fff7e6;border-left:3px solid #f59e0b;padding:6px;margin:8px 0}.stage.vertex-mode .edge-label{pointer-events:none;opacity:.62}
@media(max-width:1200px){.main{grid-template-columns:220px minmax(0,1fr) 34px}.main.right-pinned{grid-template-columns:220px minmax(0,1fr) 320px}.right-panel{width:320px;position:absolute;right:0;top:0;bottom:0}.identity-email,.identity-logo{display:none}.identity-row{grid-template-columns:1fr auto}.drop-control.expanded,.drop-control.drag-active{width:82%}}
@media(max-width:900px){.mode-btn{font-size:13px}.mode-row{gap:3px}.label-toggle-btn{gap:3px}.label-checkbox{width:13px;height:13px}}

/* v1.4.009 — boundary requirement comparison */
.boundary-card h4{font-family:var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif);font-size:13px;font-weight:600;line-height:1.2;margin:10px 0 6px;color:#243746}
.boundary-comparison{border:1px solid #aeb9c2;border-radius:5px;background:#f8fafb;margin:0 0 9px;overflow:hidden}
.boundary-comparison h5{font-family:var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif);font-size:12px;font-weight:600;line-height:1.25;margin:0;padding:6px 7px;background:#e8edf1;border-bottom:1px solid #c4cdd4;color:#243746}
.comparison-head,.comparison-row,.governing-result{display:grid;grid-template-columns:minmax(74px,1.2fr) minmax(62px,.9fr) minmax(62px,.9fr);align-items:center}
.comparison-head{font-size:10px;color:#5f6d78;background:#f1f4f6;border-bottom:1px solid #d5dce1}
.comparison-head span{padding:4px 6px;text-align:center}.comparison-head span:first-child{text-align:left}
.comparison-row{font-family:var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif);font-size:12px;font-weight:400;line-height:1.25;border-bottom:1px solid #dce2e6;background:#fff}
.comparison-row>div{min-width:0;padding:6px}.comparison-row>div+div{border-left:1px solid #e0e5e9}
.comparison-pu{display:grid;gap:1px}.comparison-pu b{font-size:12px;overflow-wrap:anywhere}.comparison-pu span{font-size:11px;color:#536575}
.comparison-value{display:grid;gap:1px;text-align:right}.comparison-value span{font-size:10px;color:#667681}.comparison-value b{font-weight:400}.comparison-value strong{font-weight:700;color:#17202a}
.governing-result{background:#e8f2fa;color:#17202a}.governing-result span{padding:7px;font-size:11px;font-weight:600}.governing-result strong{padding:7px 6px;text-align:right;font-size:13px;font-weight:700;border-left:1px solid #c3d6e5}


/* v1.4.012 — collapsible fire-compartment panel */
.main{grid-template-columns:32px minmax(0,1fr) 34px}.main.right-pinned{grid-template-columns:32px minmax(0,1fr) 330px}
.left-dock{position:relative;min-width:32px;overflow:visible;z-index:46;background:#fff;border-right:1px solid #abb7c2}
.left-panel{position:absolute;left:0;top:0;bottom:0;width:390px;height:100%;padding:0;overflow:hidden;transform:translateX(calc(-100% + 32px));transition:transform .18s ease,box-shadow .18s ease;box-shadow:none;border-right:1px solid #abb7c2}
.left-dock:hover .left-panel,.left-dock:focus-within .left-panel{transform:translateX(0);box-shadow:8px 0 22px #0003}
.left-rail{position:absolute;right:0;top:0;bottom:0;width:32px;background:#3f464d;color:#fff;z-index:4;display:flex;flex-direction:column;align-items:center;overflow:hidden}
.left-rail-title{height:104px;flex:0 0 104px;writing-mode:vertical-rl;transform:rotate(180deg);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;letter-spacing:.03em}
.floor-rail-icons{width:32px;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;align-items:center;gap:3px;padding:3px 2px 6px;scrollbar-width:none}.floor-rail-icons::-webkit-scrollbar{display:none}
.left-content{position:absolute;left:0;right:32px;top:0;bottom:0;overflow:auto;padding:12px;background:#fff}
.floor-tabs{display:grid;grid-template-columns:repeat(10,28px);gap:4px;align-items:center;justify-content:start;margin-bottom:10px}
.floor-row-break{grid-column:1/-1;height:0}.floor-separator{grid-column:1/-1;height:1px;background:#aab5bf;margin:3px 0}
.floor-tab,.floor-rail-icon{width:28px;height:28px;padding:0;border:1px solid #fff;border-radius:6px;background:transparent;color:#fff;display:grid;place-items:center;font:600 12px/1 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;cursor:pointer}
.floor-tab{border-color:#8795a0;color:#26323d;background:#fff}.floor-tab:hover{background:#e8eef3}.floor-tab.active{background:#263f56;color:#fff;border-color:#263f56}
.floor-rail-icon:hover{background:#ffffff22}.floor-rail-icon.active{background:#fff;color:#263f56}
.left-layout-actions{display:grid;gap:6px;margin:0 0 12px}.left-action-btn{min-height:34px;border:1px solid #747f88;border-radius:4px;background:#f4f5f6;color:#222;font:700 14px/1.2 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;cursor:pointer}.left-action-btn:hover:not(:disabled){background:#e2e5e8}.left-action-btn:disabled{background:transparent;color:#9ba3aa;border-color:#b8bec3;cursor:default}
.palette{display:grid;gap:3px}.pal{height:32px;min-height:32px;border:1px solid color-mix(in srgb,var(--c) 70%,#5d6870);border-left-width:1px;border-radius:4px;padding:0 7px;background:color-mix(in srgb,var(--c) 70%,white);display:flex;align-items:center;gap:7px;overflow:hidden;cursor:grab}.pal.placed{background:color-mix(in srgb,var(--c) 82%,white);cursor:pointer}.pal b{font:600 14px/1.2 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;white-space:nowrap}.pal .pal-name{min-width:0;overflow:hidden;text-overflow:clip;white-space:nowrap;font:400 14px/1.2 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif}.pal.selected{outline:2px solid color-mix(in srgb,var(--c) 65%,black);outline-offset:-2px}
.mode-row{grid-template-columns:repeat(5,minmax(0,1fr))}
.mode-btn.overlay-active{background:#1769aa;border-color:#79b6df}.mode-btn:disabled{opacity:.45;cursor:default}
@media(max-width:1200px){.main{grid-template-columns:32px minmax(0,1fr) 34px}.main.right-pinned{grid-template-columns:32px minmax(0,1fr) 320px}.left-panel{width:370px}}
.floor-tabs{background:#3f464d;border-radius:5px;padding:5px}
.floor-tab{border-color:#fff;color:#fff;background:transparent}
.floor-tab:hover{background:#ffffff22}.floor-tab.active{background:#fff;color:#263f56;border-color:#fff}

/* v1.4.013 — left floor flyout, visual cleanup and consistent panels */
:root{--pbs-panel-label-font:600 14px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif);--pbs-panel-body-font:400 14px/1.25 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}
.left-dock:hover .left-panel,.left-dock:focus-within .left-panel,.left-dock.panel-open .left-panel{transform:translateX(0);box-shadow:8px 0 22px #0003}
.left-rail{justify-content:flex-start}.left-rail-title{height:auto;flex:1;min-height:100px;font:var(--pbs-panel-label-font);letter-spacing:0;justify-content:center}
.floor-tabs{gap:4px;padding:5px;margin-bottom:10px}.floor-separator{display:none}.floor-tab.aboveground{background:transparent;color:#fff}.floor-tab.underground{background:#fff;color:#26323d}.floor-tab.active{box-shadow:0 0 0 2px #60a5fa inset;border-color:#fff}.floor-tab:hover{filter:brightness(1.12)}
.pal{background:color-mix(in srgb,var(--c) 52%,white)}.pal.placed{background:color-mix(in srgb,var(--c) 68%,white)}
.edge-label{z-index:20;border-color:#111}.edge-label.conflict{background:#fff;border-color:#111}.edge-label.exterior{background:#dceef8;border-color:#111;box-shadow:0 1px 2px #0002}.edge-label.selected{background:#cfe7f8;border-color:#1769aa;box-shadow:0 0 0 2px #1769aa55}.boundary-run-highlight,.selected-boundary-highlight{position:absolute;z-index:16;height:var(--hover-stroke);margin-top:calc(var(--hover-stroke)/-2);transform-origin:0 50%;pointer-events:none;border-radius:999px;background:#1677d2;opacity:.35}.selected-boundary-highlight{opacity:.42;box-shadow:0 0 0 calc(2px / var(--stage-zoom,1)) #60a5fa55}.edge-label:hover{background:#c0c0c0}
.stage.vertex-mode{background-color:#fff4e8}.stage.vertex-mode .world-axis{background:#2b1308}
.dock-rail span,.left-rail-title{font:var(--pbs-panel-label-font)}
.right-content{font:var(--pbs-panel-body-font)}.right-content h2,.right-content h3,.right-content h4,.right-content h5{font-family:var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif);font-weight:600;color:#17202a}.right-content h2{font-size:14px}.right-content h3,.right-content h4{font-size:14px}.right-content h5{font-size:13px}.right-content .card,.right-content .kv,.right-content .legend,.right-content .issue,.right-content label,.right-content select,.right-content input,.right-content button,.right-content output{font-family:var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}.right-content .card label{font-size:14px;font-weight:400}.right-content .kv,.right-content .legend,.right-content .issue{font-size:13px}.criterion-help{display:none}


/* v1.4.014 — functional N/P flyout, unplaced palette, drag preview and visible boundary feedback */


.floor-tab.active{background:#8f9aa3!important;color:#fff!important;border-color:#d6dde2!important;box-shadow:none!important;}
.palette .pal{background:color-mix(in srgb,var(--c) 52%,white);}
.drag-placement-preview{position:absolute;z-index:14;pointer-events:none;box-sizing:border-box;background:color-mix(in srgb,var(--preview-bg) 52%,white);border:var(--preview-stroke) solid #26323d;opacity:.72;}
.tile-shell{filter:none!important;box-shadow:none!important;}
.tile-polygon{stroke-width:var(--tile-stroke);}
.hover-edge-line,.boundary-run-highlight,.selected-boundary-highlight{z-index:18!important;background:#1677d2!important;opacity:.48!important;box-shadow:none!important;}
.hover-edge-line{opacity:.58!important;}
.selected-boundary-highlight{opacity:.48!important;}
.edge-label{z-index:24!important;}
.edge-label.conflict{background:#ffd9d5!important;border-color:#111!important;}
.edge-label.exterior{background:#d6e8f4!important;border-color:#111!important;box-shadow:0 1px 2px #0002!important;}
.edge-label.selected{background:#cfe7f8!important;border-color:#1769aa!important;box-shadow:0 0 0 2px #1769aa55!important;}
/* v1.4.015 graphical refinements */
.floor-tabs{
  grid-template-columns:repeat(10,28px)!important;
  gap:4px!important;
  padding:4px!important;
  margin:0 0 10px!important;
  align-content:start;
}
.floor-row-break{grid-column:1/-1;height:0;margin:0;padding:0}


.boundary-run-highlight{opacity:.78!important;z-index:20!important;background:#1677d2!important}
.selected-boundary-highlight{opacity:.28!important;z-index:19!important;background:#1677d2!important;box-shadow:0 0 0 calc(2px / var(--stage-zoom,1)) #60a5fa44!important}
.edge-label{z-index:24!important}
.overlap-diagnostics{position:absolute;inset:0;width:100%;height:100%;z-index:18;pointer-events:none;overflow:visible}
.overlap-hatch-area{pointer-events:none}
.overlap-inside-edge{stroke:#dc2626;stroke-width:4px;stroke-dasharray:8px 5px;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.95}


/* v1.4.017 hover information and boundary layering */
.graph-tooltip{position:fixed;z-index:1200;max-width:360px;min-width:220px;padding:9px 10px;border:1px solid #667684;border-radius:5px;background:#fff;color:#1f2933;box-shadow:0 7px 24px #0004;pointer-events:none;font:400 13px/1.35 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif}
.graph-tooltip[hidden]{display:none}.tooltip-title{display:grid;gap:1px;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid #c7d0d7}.tooltip-title strong{font-size:14px;font-weight:600}.tooltip-title span{color:#53616d}.tooltip-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px}.tooltip-grid b{font-weight:600;text-align:right}.tooltip-boundary-row{display:grid;grid-template-columns:auto auto 1fr 1fr;gap:5px 9px;align-items:center;padding:4px 0;border-bottom:1px solid #e0e5e9}.tooltip-boundary-row>strong{font-weight:600}.tooltip-boundary-row>span{white-space:nowrap}.tooltip-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;margin-top:7px;padding-top:6px;border-top:1px solid #9eabb5}.tooltip-result b{font-weight:600;text-align:right}.tooltip-result.governing b{font-weight:600}
.edge-label.conflict:hover{background:#e5aaa5!important}.edge-label.exterior:hover{background:#b9dce9!important}.edge-label.selected:hover{background:#b8d9ef!important}
.boundary-run-highlight-over,.selected-boundary-highlight-over{position:absolute;z-index:21;height:var(--hover-stroke);margin-top:calc(var(--hover-stroke)/-2);transform-origin:0 50%;pointer-events:none;border-radius:999px;background:#1677d2;opacity:.20}.selected-boundary-highlight-over{opacity:.13}

/* v1.4.017 permissive geometry, top-layer overlap diagnostics, native tooltips */
.tile-shell:not(.overlay){pointer-events:auto}
.tile-shell:not(.overlay) .tile-label{pointer-events:none}
.overlap-diagnostics{z-index:22!important;pointer-events:none!important}
.overlap-hatch-area{opacity:.95}
.overlap-inside-edge{stroke:#dc2626!important;stroke-width:4px!important;stroke-dasharray:9px 6px!important;stroke-linecap:round!important;stroke-linejoin:round!important;vector-effect:non-scaling-stroke!important;opacity:1!important}
.edge-label{z-index:24!important}


/* v1.4.018 — draw-created PÚ, inline properties and mismatch selection */
.edge-label.conflict.selected,
.edge-label.conflict.selected:hover{
  background:#e3a29d!important;
  border-color:#8f1f17!important;
  box-shadow:0 0 0 2px #b4231855!important;
}
.add-compartment-btn[aria-pressed="true"]{background:#d97706!important;border-color:#fdba74!important;color:#fff!important}
.stage.create-compartment-mode{cursor:crosshair!important}
.new-compartment-preview{position:absolute;z-index:23;pointer-events:none;border:3px solid #d97706;background:#fb923c33;box-sizing:border-box}
.dialog-backdrop{position:fixed;inset:0;z-index:400;background:#0007}.dialog-backdrop[hidden]{display:none}
.name-dialog{position:fixed;z-index:410;left:50%;top:50%;transform:translate(-50%,-50%);width:min(410px,calc(100vw - 32px));padding:16px;border:1px solid #596773;border-radius:7px;background:#fff;box-shadow:0 20px 55px #0007;font-family:var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}.name-dialog[hidden]{display:none}.name-dialog h3{margin:0 0 14px;font-size:16px;font-weight:600}.name-dialog label{display:grid;gap:6px;font-size:14px;font-weight:400}.name-dialog input{width:100%;height:34px;padding:4px 7px;border:1px solid #7c8994;border-radius:4px;font:400 14px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}.dialog-error{margin:8px 0 0;color:#b42318;font-size:13px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.dialog-actions button{min-width:82px;height:34px;border:1px solid #667684;border-radius:4px;background:#eef1f4;font:600 14px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif);cursor:pointer}.dialog-actions #new-fc-ok{background:#263f56;color:#fff}
.inline-edit-host{display:block;width:100%;min-height:28px;margin:0;padding:2px 4px;border:1px solid transparent;border-radius:3px;background:transparent;color:inherit;text-align:left;cursor:text}.inline-edit-host:hover{border-color:#aeb8c0;background:#fff8}.inline-edit-host:focus{outline:none;border-color:#4f8fc4;background:#fff}.inline-edit-host[contenteditable="true"]{cursor:text}

/* v1.4.021 — complete overlap diagnostics and visible inline editing */
.overlap-diagnostics{z-index:40!important;pointer-events:none!important}
.overlap-hatch-area{opacity:1!important}
.overlap-inside-edge{stroke:#dc2626!important;stroke-width:4px!important;stroke-dasharray:9px 6px!important;opacity:1!important}
.inline-edit-host.editing,.inline-edit-host[contenteditable="true"]{border-color:#1769aa!important;background:#fff!important;box-shadow:0 0 0 1px rgba(23,105,170,.22)!important}


/* v1.4.021 — simplified collapsed left rail; N/P quick controls and flyout removed */
.left-rail{justify-content:center!important;cursor:pointer}
.left-rail-title{height:auto!important;flex:1 1 auto!important;min-height:0!important;width:32px!important;padding:8px 0!important;font:var(--pbs-panel-label-font)!important}
.left-dock.panel-open .left-rail{cursor:default}


/* v1.4.021 — DBF-editor header parity, overlay menu, drawing placement mode */
.pbs-shell{height:88px!important;position:relative!important;overflow:visible!important;background:#050505!important}
.header-base{height:100%!important;display:grid!important;grid-template-columns:88px minmax(0,1fr) 88px!important;background:#fff!important;gap:0!important}
.control-panel{width:auto!important;height:100%!important;padding:5px 8px!important;display:grid!important;grid-template-rows:36px 36px!important;gap:6px!important;overflow:visible!important;background:#050505!important;color:#fff!important}
.mode-row{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important;min-width:0!important;overflow:visible!important}
.mode-btn{height:36px!important;margin:0!important}
.drop-tile-placeholder{width:88px;height:88px;background:#fff}
.drop-control{position:absolute!important;top:0!important;right:0!important;width:88px!important;height:88px!important;padding:6px!important;border:1px solid #1f2937!important;border-radius:0!important;cursor:pointer!important;transition:width .18s ease,background .18s ease,box-shadow .18s ease!important;overflow:hidden!important;z-index:60!important}
.drop-control.empty{background:#f97316!important}.drop-control.loaded{width:88px!important;height:88px!important;background:#fff!important}.drop-control.expanded,.drop-control.loaded.expanded,.drop-control.empty.expanded,.drop-control.drag-active{width:75%!important;box-shadow:-8px 4px 20px rgba(0,0,0,.22)!important}.drop-control.drag-active{background:#fb923c!important;border:3px dashed #f97316!important}
.drop-control:not(.expanded):not(.drag-active) .drop-copy{display:none!important}.drop-control:not(.expanded):not(.drag-active) .drop-inner{justify-content:center!important}.drop-control.expanded .drop-inner,.drop-control.drag-active .drop-inner{justify-content:flex-start!important}
.calculation-control-wrap{position:relative;min-width:0;height:36px;overflow:visible;z-index:130}.calculation-control-wrap::after{content:"";position:absolute;left:0;right:0;top:100%;height:6px;z-index:121;background:transparent;pointer-events:none}.calculation-control-wrap.menu-open::after{background:#050505;pointer-events:auto}
.calculations-menu{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:120;background:#fff;border:1px solid #596773;border-radius:4px;box-shadow:0 8px 18px rgba(0,0,0,.25);padding:3px;display:grid;gap:3px}.calculations-menu[hidden]{display:none!important}.calculations-menu-btn{min-height:34px;border:1px solid #cbd5dc;border-radius:3px;background:#fff;color:#26323d;font:700 14px/1.2 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;cursor:pointer;padding:5px 8px;text-align:left}.calculations-menu-btn:hover,.calculations-menu-btn:focus-visible{background:#e8edf1;outline:none}
.overlay-menu-btn.overlay-below-active{background:#557a96!important}.overlay-menu-btn.overlay-above-active{background:#6d86a0!important}.overlay-menu-btn.overlay-both-active{background:#496e89!important}.overlay-menu-option.overlay-active{background:#d7e6f0!important;border-color:#7899b1!important}.overlay-menu-option:disabled{opacity:.38;cursor:default}
.placement-mode-btn{display:flex!important;align-items:center!important;justify-content:center!important;gap:0!important}.placement-mode-btn .placement-primary{font-weight:600}.placement-mode-btn .placement-secondary{font-weight:400}.placement-mode-btn.active{background:#d97706!important;border-color:#fb923c!important;color:#fff!important}
.stage.place-by-drawing-mode{cursor:crosshair}.draw-placement-preview{position:absolute;z-index:23;pointer-events:none;box-sizing:border-box;border:3px solid #d97706;background:color-mix(in srgb,var(--preview-bg) 50%,transparent);opacity:.72}

/* v1.4.022 — equal five-column top toolbar, DBF-style underlay menu, placement typography */
.mode-row{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.mode-row>.mode-btn,.mode-row>.calculation-control-wrap{width:100%!important;min-width:0!important}
.calculation-control-wrap>.mode-btn{width:100%!important;text-align:center!important}
.placement-mode-btn .placement-primary{font-family:inherit!important;font-size:inherit!important;font-style:inherit!important;font-weight:inherit!important;line-height:inherit!important}
.placement-mode-btn .placement-secondary{font-family:inherit!important;font-size:inherit!important;font-style:inherit!important;font-weight:400!important;line-height:inherit!important}
.underlay-control-wrap{z-index:131}


/* v1.4.023 — exact DBF-shell geometry/layering and session-only underlay */
.pbs-shell{height:var(--header-h)!important;display:block!important;position:relative!important;overflow:visible!important;background:#050505!important;border-bottom:1px solid #222!important;z-index:50!important}
.header-base{height:100%!important;display:grid!important;grid-template-columns:var(--header-square) minmax(0,1fr) var(--header-square)!important;gap:0!important;background:#050505!important}
.control-panel{width:auto!important;height:100%!important;padding:5px 0!important;display:grid!important;grid-template-rows:36px 36px!important;gap:6px!important;overflow:visible!important;background:#050505!important;color:#fff!important}
.identity-row{padding-left:0!important;padding-right:0!important;margin:0!important}
.mode-row{margin:0!important;padding:0!important;gap:6px!important;overflow:visible!important}
.drop-tile-placeholder{width:var(--header-square)!important;height:var(--header-square)!important;background:#050505!important;border:0!important}
.drop-control,.drop-control.empty,.drop-control.loaded,.drop-control.expanded,.drop-control.loaded.expanded,.drop-control.empty.expanded,.drop-control.drag-active{background:#050505!important;border:0!important;border-radius:0!important;padding:6px!important;overflow:hidden!important;z-index:300!important}
.drop-control .drop-inner{width:100%!important;height:100%!important;padding:8px!important;border:2px dashed #f97316!important;border-radius:11px!important;background:var(--orange)!important;transition:background .18s ease,border-color .18s ease!important;overflow:hidden!important}
.drop-control.loaded:not(.expanded):not(.drag-active) .drop-inner{border-color:#fff!important;background:#9ca3af!important}
.drop-control.empty:not(.expanded):not(.drag-active) .drop-inner{border-color:#f97316!important;background:var(--orange)!important}
.drop-control.expanded .drop-inner,.drop-control.loaded.expanded .drop-inner,.drop-control.empty.expanded .drop-inner{border-color:#f97316!important;background:var(--orange)!important}
.drop-control.drag-active .drop-inner{border-color:#f97316!important;background:var(--orange-hover)!important}
.save-control-wrap{background:#050505!important;z-index:320!important}
.save-menu{z-index:325!important}
.calculation-control-wrap{z-index:auto!important}
.calculations-menu{z-index:40!important}
.calculation-control-wrap.menu-open{z-index:45!important}

.underlay-dialog{position:fixed;z-index:510;left:50%;top:50%;transform:translate(-50%,-50%);width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:16px;border:1px solid #596773;border-radius:7px;background:#fff;box-shadow:0 20px 55px #0008;font-family:var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif);display:flex;flex-direction:column;gap:12px}.underlay-dialog[hidden]{display:none}.underlay-dialog h3{margin:0;font-size:16px;font-weight:600}.underlay-drop-zone{min-height:105px;border:2px dashed #7c2d12;border-radius:8px;background:#f97316;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#fff;cursor:pointer;text-align:center}.underlay-drop-zone:hover,.underlay-drop-zone.drag-active{background:#fb923c;border-color:#fff}.underlay-drop-zone strong{font-size:14px;font-weight:600}.underlay-drop-zone small{font-size:13px;font-weight:400}.underlay-preview-wrap{width:min(600px,100%);max-width:600px;max-height:600px;display:flex;align-items:center;justify-content:center;overflow:hidden;align-self:center;border:1px solid #cbd5dc;background:#e5e7eb;padding:8px}.underlay-preview-wrap[hidden]{display:none}.underlay-preview{display:block;width:auto;height:auto;max-width:100%;max-height:600px;object-fit:contain;box-shadow:0 2px 10px #0004;background:#fff}.underlay-file-info{margin:0;color:#53616d;font-size:13px}.underlay-dialog-actions{display:grid;grid-template-columns:minmax(90px,1fr) minmax(0,1fr) minmax(90px,1fr);align-items:center;gap:10px}.underlay-dialog-actions>button{height:36px;border:1px solid #667684;border-radius:4px;background:#eef1f4;font:600 14px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif);cursor:pointer}.underlay-dialog-actions #underlay-ok{background:#263f56;color:#fff}.underlay-dialog-actions #underlay-ok:disabled{opacity:.38;cursor:default}.underlay-page-wrap{justify-self:center;display:grid;grid-template-columns:auto 58px auto;align-items:center;gap:5px;font:400 14px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}.underlay-page-wrap[hidden]{display:none}.underlay-page-wrap input{height:32px;width:58px;padding:3px 5px;border:1px solid #7c8994;border-radius:4px;text-align:center;font:400 14px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}
.stage-underlay{position:absolute;z-index:0;pointer-events:none;transform-origin:0 0;opacity:.25;user-select:none}.stage-underlay.placing{opacity:.25;outline:calc(2px / var(--stage-zoom,1)) solid #f97316}.tile-shell{z-index:5}.world-axis,.world-origin-label{z-index:2}.underlay-placement-note{position:absolute;z-index:60;left:50%;top:8px;transform:translateX(-50%);padding:5px 9px;border-radius:4px;background:#050505d9;color:#fff;font:600 13px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif);pointer-events:none}

/* v1.4.023 — exact DBF Save flyout geometry */
:root{--saveFadeGray:#404040;--saveGap:6px;--saveBorderWidth:2px;--saveInnerRadius:11px}
.save-control-wrap{position:relative!important;width:var(--header-square)!important;height:var(--header-square)!important;padding:var(--saveGap)!important;box-sizing:border-box!important;background:#050505!important;overflow:visible!important;z-index:120!important}
.save-control-wrap .save-tile,.save-control-wrap .save-tile:hover:not(:disabled),.save-control-wrap .save-tile:active:not(:disabled){width:100%!important;height:100%!important;min-width:0!important;max-width:none!important;min-height:0!important;max-height:none!important;border:var(--saveBorderWidth) dashed #fff!important;border-radius:var(--saveInnerRadius)!important;background:#050505!important;color:#fff!important;padding:var(--saveGap)!important;box-sizing:border-box!important;transition:color .14s ease,border-color .14s ease,background-color .14s ease,opacity .14s ease!important}
.save-control-wrap:hover .save-tile:not(:disabled),.save-control-wrap .save-tile[aria-expanded="true"]{border-color:var(--saveFadeGray)!important;color:var(--saveFadeGray)!important;background:#050505!important}
.save-menu{left:0!important;top:var(--header-square)!important;width:var(--header-square)!important;height:auto!important;min-height:calc(var(--header-square)*4 - var(--saveGap))!important;padding:0 var(--saveGap) var(--saveGap)!important;gap:var(--saveGap)!important;background:#050505!important;display:grid!important;grid-template-rows:auto auto auto auto!important;box-sizing:border-box!important;box-shadow:0 10px 22px rgba(0,0,0,.34)!important;z-index:130!important}
.save-menu[hidden]{display:none!important}.save-menu-btn,.save-menu-btn:active{width:calc(var(--header-square) - (var(--saveGap)*2))!important;height:calc(var(--header-square) - (var(--saveGap)*2))!important;border:var(--saveBorderWidth) solid #fff!important;border-radius:var(--saveInnerRadius)!important;background:#000!important;color:#fff!important;padding:var(--saveGap)!important;box-sizing:border-box!important}.save-menu-btn:hover,.save-menu-btn:focus-visible{background:var(--saveFadeGray)!important}
.drop-control,.drop-control.expanded,.drop-control.loaded.expanded,.drop-control.drag-active{z-index:500!important}

/* v1.4.025 — restored drag placement and full session underlay controls */
.stage-underlay{opacity:1;pointer-events:none;box-sizing:border-box}.stage-underlay.placing{opacity:.25}.stage-underlay.selected{outline:calc(3px / var(--stage-zoom,1)) solid #2563eb;outline-offset:calc(2px / var(--stage-zoom,1))}
.stage.underlay-shown .tile-shell,.stage.underlay-shown .edge-label,.stage.underlay-shown .boundary-highlight-layer,.stage.underlay-shown .overlap-diagnostics{opacity:.75}
.stage.underlay-scale-mode{background-image:none!important;background-color:#e6e6e6!important}.stage.underlay-scale-mode>*:not(.stage-underlay):not(.underlay-scale-note):not(.underlay-scale-point){display:none!important}.stage.underlay-scale-mode .stage-underlay{display:block!important;opacity:1!important}
.underlay-scale-note{position:absolute;z-index:90;left:50%;top:10px;transform:translateX(-50%);background:#111;color:#fff;padding:5px 9px;border-radius:4px;font:600 13px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}
.underlay-scale-point{position:absolute;z-index:95;width:14px;height:14px;margin:0;border:2px solid #f97316;border-radius:50%;background:#fff;color:#111;display:grid;place-items:center;font:600 9px/1 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif);pointer-events:none;transform-origin:center}
.underlay-scale-dialog{position:fixed;z-index:520;left:50%;top:50%;transform:translate(-50%,-50%);width:min(360px,calc(100vw - 32px));padding:16px;border:1px solid #596773;border-radius:7px;background:#fff;box-shadow:0 20px 55px #0008;font-family:var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}.underlay-scale-dialog[hidden]{display:none}.underlay-scale-dialog h3{margin:0 0 12px;font-size:16px;font-weight:600}.underlay-scale-dialog label{display:grid;gap:6px;font:400 14px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}.underlay-scale-dialog input{height:34px;border:1px solid #7c8994;border-radius:4px;padding:4px 7px;font:400 14px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}.underlay-scale-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.underlay-scale-actions button{height:36px;border:1px solid #667684;border-radius:4px;background:#eef1f4;font:600 14px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}.underlay-scale-actions #underlay-scale-ok{background:#263f56;color:#fff}

/* v1.4.025 — restore robust left dock expansion */
.left-dock{pointer-events:auto}
.left-rail{pointer-events:auto;cursor:pointer;z-index:8}
.left-dock:hover .left-panel,.left-dock:focus-within .left-panel,.left-dock.panel-open .left-panel{transform:translateX(0)!important;box-shadow:8px 0 22px #0003!important}


/* v1.4.026 — fitted underlay preview, grid above underlay, interactive scale guide */
.underlay-preview-wrap{width:100%;max-width:none;max-height:none;height:auto;box-sizing:border-box;padding:0;overflow:hidden!important}
.underlay-preview{display:block;width:auto;height:auto;max-width:100%;max-height:none;object-fit:contain;margin:auto;box-shadow:0 2px 10px #0004;background:#fff}
.world-grid{position:absolute;inset:0;z-index:1;pointer-events:none;background-repeat:repeat}
.stage-underlay{z-index:0!important}
.world-axis,.world-origin-label{z-index:2}
.stage.underlay-scale-mode>*:not(.stage-underlay):not(.underlay-scale-note):not(.underlay-scale-point):not(.underlay-scale-line):not(.underlay-scale-distance){display:none!important}
.underlay-scale-line{position:absolute;z-index:94;background:#f97316;transform-origin:0 50%;pointer-events:none;border-radius:999px;box-shadow:0 0 0 1px rgba(255,255,255,.55)}
.underlay-scale-distance{position:absolute;z-index:96;transform-origin:center;background:rgba(17,17,17,.88);color:#fff;border-radius:3px;padding:2px 5px;white-space:nowrap;font:600 12px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif);pointer-events:none}

/* v1.4.030 — underlay hit priority, copy, opacity and state-aware controls */
.underlay-menu-option:disabled{opacity:.34;cursor:default;filter:grayscale(.35)}
.underlay-opacity-control{display:grid;grid-template-columns:1fr auto;grid-template-areas:"label value" "slider slider";gap:4px 8px;align-items:center;padding:7px 9px;border-top:1px solid #59636b;background:#20262b;color:#fff;font:400 13px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}
.underlay-opacity-control>span{grid-area:label}.underlay-opacity-control>output{grid-area:value;font-weight:600}.underlay-opacity-control>input{grid-area:slider;width:100%;margin:0}.underlay-opacity-control.disabled{opacity:.34}
.underlay-copy-dialog{position:fixed;z-index:525;left:50%;top:50%;transform:translate(-50%,-50%);width:min(380px,calc(100vw - 32px));padding:16px;border:1px solid #596773;border-radius:7px;background:#fff;box-shadow:0 20px 55px #0008;font-family:var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}
.underlay-copy-dialog[hidden]{display:none}.underlay-copy-dialog h3{margin:0 0 12px;font-size:16px;font-weight:600}.underlay-copy-dialog label{display:grid;gap:6px;font:400 14px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}.underlay-copy-dialog select{height:34px;border:1px solid #7c8994;border-radius:4px;padding:4px 7px;font:400 14px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}.underlay-copy-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.underlay-copy-actions button{height:36px;border:1px solid #667684;border-radius:4px;background:#eef1f4;font:600 14px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}.underlay-copy-actions #underlay-copy-ok{background:#263f56;color:#fff}

/* v1.4.113 top toolbar */
#add-compartment,#placement-mode{display:none!important}
.toolbar-mode-wrap{position:relative;flex:0 0 auto}
.toolbar-mode-button{height:28px;min-width:152px;border:1px solid currentColor;border-radius:6px;background:var(--mode-color,#ef7d32);color:#fff;padding:0 12px;font:700 13px/1.1 "Segoe UI",Tahoma,sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}
.toolbar-mode-button::after{content:'▾';font-size:11px;opacity:.85}
.toolbar-mode-menu{position:absolute;left:0;top:calc(100% + 4px);min-width:184px;background:#fff;color:#111;border:1px solid #c4c9cf;border-radius:8px;box-shadow:0 10px 24px rgba(0,0,0,.18);padding:6px;display:grid;gap:4px;z-index:80}
.toolbar-mode-item{height:30px;border:1px solid var(--mode-color,#9ca3af);border-radius:6px;background:#fff;color:#111;font:600 13px/1 "Segoe UI",Tahoma,sans-serif;cursor:pointer;text-align:left;padding:0 10px}
.toolbar-mode-item.active{background:var(--mode-color,#ef7d32);color:#fff}
.top-toolbar--large .toolbar-mode-button{height:56px;min-width:180px;font-size:17px;border-radius:10px}
.top-toolbar--large .toolbar-mode-item{height:36px}
.top-toolbar--labeled .toolbar-mode-button{height:56px;min-width:180px;font-size:17px;border-radius:10px}
.top-toolbar--labeled .toolbar-mode-item{height:36px}


/* v1.4.114 — fixed header mode launcher + modal contextual toolbar */
.mode-row{grid-template-columns:repeat(6,minmax(0,1fr))!important}
.graphical-mode-control-wrap{position:relative;min-width:0;height:36px;overflow:visible;z-index:auto}
.graphical-mode-control-wrap.menu-open{z-index:46;background:#050505}
.graphical-mode-control-wrap::after{content:"";position:absolute;left:0;right:0;top:100%;height:6px;background:transparent;pointer-events:none;z-index:41}
.graphical-mode-control-wrap.menu-open::after{background:#050505;pointer-events:auto}
.graphical-mode-btn{width:100%!important;height:36px!important;background:var(--active-mode-color,#6b7280)!important;border-color:var(--active-mode-hover,#4b5563)!important;color:#fff!important}
.graphical-mode-btn:hover,.graphical-mode-control-wrap:focus-within .graphical-mode-btn{background:var(--active-mode-hover,#4b5563)!important}
.graphical-mode-menu{position:absolute;left:-6px;right:-6px;top:100%;z-index:45;padding:6px;gap:6px;background:#050505;border:0;border-radius:0;box-shadow:0 8px 18px rgba(0,0,0,.28);display:grid}
.graphical-mode-menu[hidden]{display:none!important}
.graphical-mode-menu-btn{width:100%;height:36px;margin:0;padding:0 9px;border:1px solid var(--item-hover);border-radius:4px;background:var(--item-color);color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font:700 15px/1.2 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;cursor:pointer}
.graphical-mode-menu-btn:hover,.graphical-mode-menu-btn:focus-visible,.graphical-mode-menu-btn.active{background:var(--item-hover);outline:none}

.top-toolbar-zone-center{padding-left:6px!important;padding-right:6px!important}
.toolbar-tools{width:100%}
.top-toolbar.modal-command-active .top-tool:not(.active-modal){opacity:.35}
.top-toolbar.modal-command-active .top-tool.active-modal{opacity:1}
.top-toolbar.modal-command-active .top-tool.active-modal .top-tool-box{background:color-mix(in srgb,var(--tool-color) 45%, transparent)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--tool-color) 80%, #fff 20%) inset}
.top-tool{transition:opacity .12s ease}
.top-toolbar-zone-left,.top-toolbar-zone-right{opacity:1!important}


.left-modal-pin{width:28px;height:28px;margin-top:5px;border:1px solid #9ca8b2;border-radius:4px;background:#f6f8fa;color:#65727d;display:grid;place-items:center;opacity:.35;pointer-events:none;flex:0 0 28px}
.left-modal-pin svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.left-modal-pin.active{opacity:1;background:#dceaf5;color:#0f5c91;border-color:#5e8eae}
.left-rail:has(.left-modal-pin){justify-content:flex-start!important}
.left-rail .left-rail-title{flex:1 1 auto!important}

.dialog-actions{justify-content:center!important}
.level-picker-dialog{position:fixed;z-index:520;left:50%;top:50%;transform:translate(-50%,-50%);width:min(300px,calc(100vw - 32px));max-height:min(560px,calc(100vh - 32px));padding:12px;border:1px solid #596773;border-radius:7px;background:#fff;box-shadow:0 20px 55px #0008;font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif}
.level-picker-dialog[hidden]{display:none}
.level-picker-dialog h3{margin:0 0 10px;font-size:15px;font-weight:600;text-align:center}
.level-picker-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;max-height:420px;overflow:auto}
.level-picker-list button{height:32px;border:1px solid #94a3b8;border-radius:4px;background:#fff;color:#111827;font:600 13px/1 "Segoe UI",Tahoma,sans-serif;cursor:pointer}
.level-picker-list button:hover:not(:disabled){background:#e5e7eb}
.level-picker-list button:disabled{opacity:.35;cursor:not-allowed}
.level-picker-cancel{display:block;margin:10px auto 0;min-width:90px;height:32px;border:1px solid #64748b;border-radius:4px;background:#eef1f4;font:600 13px/1 "Segoe UI",Tahoma,sans-serif;cursor:pointer}


/* v1.4.115 — keep the save/header layer above the contextual top panel */
.pbs-shell{z-index:120!important;}
.header-base{position:relative!important;z-index:121!important;}
.save-control-wrap{position:relative!important;z-index:700!important;}
.save-menu{z-index:760!important;}
.top-toolbar{z-index:55!important;}

/* v1.4.116 — modal graphical tools, polygon drawing and clearer contextual icons */
.palette .pal.selected{
  background:color-mix(in srgb,var(--c) 58%,white)!important;
  border-color:color-mix(in srgb,var(--c) 84%,black)!important;
  outline:2px solid color-mix(in srgb,var(--c) 72%,black)!important;
  outline-offset:-2px!important;
}
.top-tool-symbol{font-size:18px!important;line-height:1!important;font-weight:800!important;display:grid!important;place-items:center!important;width:100%;height:100%}
.top-tool-symbol.tool-symbol-compact{font-size:13px!important;letter-spacing:-.04em}
.top-tool-symbol svg{display:block;width:26px;height:26px;overflow:visible;stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round}
.top-toolbar--large .top-tool-symbol,.top-toolbar--labeled .top-tool-symbol{font-size:31px!important}
.top-toolbar--large .top-tool-symbol.tool-symbol-compact,.top-toolbar--labeled .top-tool-symbol.tool-symbol-compact{font-size:21px!important}
.top-toolbar--large .top-tool-symbol svg,.top-toolbar--labeled .top-tool-symbol svg{width:52px;height:52px}
.top-tool.active-modal .top-tool-box{background:color-mix(in srgb,var(--tool-color) 45%,transparent)!important}
.dialog-actions .primary-dialog-action{background:#263f56!important;color:#fff!important}

/* Draft polygon is intentionally independent of saved NSCHP geometry until closed. */
.polygon-draft-svg{position:absolute;inset:0;width:100%;height:100%;z-index:78;pointer-events:none;overflow:visible}
.polygon-draft-line{fill:none;stroke:var(--draft-color,#c2410c);stroke-width:calc(3px / var(--stage-zoom,1));stroke-linecap:round;stroke-linejoin:round}
.polygon-draft-preview{fill:none;stroke:var(--draft-color,#c2410c);stroke-width:calc(2px / var(--stage-zoom,1));stroke-dasharray:calc(8px / var(--stage-zoom,1)) calc(5px / var(--stage-zoom,1));opacity:.85}
.polygon-draft-point{fill:#fff;stroke:var(--draft-color,#c2410c);stroke-width:calc(2px / var(--stage-zoom,1))}
.polygon-draft-point.first{fill:var(--draft-color,#c2410c)}

/* The old header commands are intentionally gone; the mode selector retains one DBF-button column. */
.mode-row{grid-template-columns:repeat(6,minmax(0,1fr))!important}
.graphical-mode-control-wrap{grid-column:1}
#validate{grid-column:2}


/* v1.4.116 dialog button alignment */
.name-dialog .dialog-actions{justify-content:center!important}
.name-dialog .dialog-actions .primary-dialog-action,.name-dialog .dialog-actions #new-fc-ok{background:#263f56;color:#fff}

/* v1.4.117 — graphical-editor icon and picker refinement */
:root{--orange:#fed7aa;--orange-hover:#ffedd5}

/* Context-tool text follows the same regular Segoe UI language as DBF status icons. */
.top-tool-box{font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif!important;font-weight:400!important}
.top-tool-symbol{font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif!important;font-size:22px!important;font-weight:400!important;line-height:1!important}
.top-tool-symbol.tool-symbol-compact{font-size:15px!important;font-weight:400!important;letter-spacing:0!important}
.top-tool-label{font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif!important;font-weight:400!important}
.top-tool-symbol svg{width:27px!important;height:27px!important;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.top-tool-symbol svg .filled-vertex{fill:currentColor!important;stroke:currentColor!important;stroke-width:1!important}
.top-toolbar--large .top-tool-symbol,.top-toolbar--labeled .top-tool-symbol{font-size:40px!important;font-weight:400!important}
.top-toolbar--large .top-tool-symbol.tool-symbol-compact,.top-toolbar--labeled .top-tool-symbol.tool-symbol-compact{font-size:27px!important}
.top-toolbar--large .top-tool-symbol svg,.top-toolbar--labeled .top-tool-symbol svg{width:54px!important;height:54px!important}
.top-tool.is-disabled{opacity:.35!important;cursor:default!important}
.top-tool.is-disabled .top-tool-box{cursor:default!important}

/* DBF-style anchored level picker. */
.level-delete-popup{z-index:2147483000!important}
.level-delete-popup[hidden]{display:none!important}
.level-delete-popup>button.protected-level{opacity:.35!important;cursor:not-allowed!important;background:#fff!important;color:#1e293b!important}
.level-delete-popup>button.protected-level:hover,.level-delete-popup>button.protected-level:focus{background:#fff!important;color:#1e293b!important}


/* The left panel now contains only levels and the unplaced-PÚ palette. */
.left-layout-actions{display:none!important}

/* Keep palette selection unmistakable while dragging or placing. */
.palette .pal.selected{background:color-mix(in srgb,var(--c) 64%,white)!important;border-color:color-mix(in srgb,var(--c) 88%,black)!important;outline:2px solid color-mix(in srgb,var(--c) 76%,black)!important}
/* v1.4.117 final icon-weight alignment with Tables editor controls. */
.top-tool-symbol svg[stroke-width="2.5"],
.top-tool-symbol svg .icon-action-mark{stroke-width:2.5!important;stroke-linecap:round!important;stroke-linejoin:round!important}


/* v1.4.119 Drawings editor icon geometry, grouping and editing */
.top-tool-symbol{display:flex!important;align-items:center!important;justify-content:center!important;transform:translateY(-.5px)}
.top-tool-symbol svg{stroke-width:1.15!important}
.top-tool-symbol svg.icon-outline{stroke-width:1!important}
.top-tool-symbol svg.icon-auto{stroke-width:1.1!important}
.top-tool-symbol svg.icon-arrow,.top-tool-symbol svg .icon-overlay-arrow{stroke-width:1.55!important}
.top-tool-symbol svg .icon-action-mark{stroke-width:2.35!important}
.top-tool-symbol svg.icon-trash{width:24px!important;height:24px!important;stroke-width:1.5!important}
.top-tool-symbol svg.icon-level .level-mark{stroke-width:1.15!important}
.top-tool-symbol svg.icon-level .icon-overlay-arrow{stroke-width:1.4!important}
.top-tool-symbol svg.icon-level .icon-action-mark{stroke-width:2!important}
.top-tool-symbol svg .filled-vertex{fill:currentColor!important;stroke:currentColor!important;stroke-width:.8!important}
.top-toolbar--large .top-tool-symbol svg.icon-trash,.top-toolbar--labeled .top-tool-symbol svg.icon-trash{width:48px!important;height:48px!important}
[data-tool="g-labels"] .top-tool-symbol{font-size:12.75px!important}
.top-toolbar--large [data-tool="g-labels"] .top-tool-symbol,.top-toolbar--labeled [data-tool="g-labels"] .top-tool-symbol{font-size:23px!important}
[data-tool="g-dummy-010"] .top-tool-symbol,[data-tool="g-dummy-009"] .top-tool-symbol{transform:translateY(-1px)}
.fc-text-edit-popup{position:fixed;z-index:2147483200;min-width:220px;max-width:min(420px,calc(100vw - 16px));background:transparent;padding:0;margin:0}
.fc-text-edit-popup[hidden]{display:none!important}
.fc-text-edit-popup input{width:100%;height:30px;box-sizing:border-box;border:1px solid #64748b;border-radius:4px;background:#fff;color:#111;padding:4px 7px;font:400 14px/1.2 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;box-shadow:0 5px 16px rgba(0,0,0,.2);outline:none}
.fc-text-edit-popup input:focus{border-color:#f97316;box-shadow:0 0 0 2px rgba(249,115,22,.2),0 5px 16px rgba(0,0,0,.2)}
/* Shared top-toolbar geometry lives in ../shared/top-toolbar.css. */
.graphical-mode-menu-btn{border-radius:4px!important}
/* Match Tables editor drag-and-drop palette exactly. */
:root{--orange:#fed7aa!important;--orange-hover:#ffedd5!important}
.drop-control .drop-inner{border:2px dashed #f97316!important;border-radius:11px!important;background:var(--orange)!important}
.drop-control.drag-active .drop-inner{background:var(--orange-hover)!important}


/* v1.4.125 Drawings editor rooms/display refinements */
:root{--pbs-cad-tool-hover-mix:22.5%;--pbs-cad-tool-active-mix:45%;}
.tool-group-separator{background:#808080!important;opacity:1!important}
.top-tool:not(.is-disabled):hover .top-tool-box{background:color-mix(in srgb,var(--tool-color) var(--pbs-cad-tool-hover-mix),transparent)!important}
.top-tool.active-modal .top-tool-box,.top-toolbar.modal-command-active .top-tool.active-modal .top-tool-box{background:color-mix(in srgb,var(--tool-color) var(--pbs-cad-tool-active-mix),transparent)!important}
.tile-shell.selected .tile-polygon{fill:color-mix(in srgb,var(--tile-bg) 70%,#000 30%)!important}
/* Tables editor trash glyph is 16-17 px inside a 32 px action cell. */
.top-tool-symbol svg.icon-trash{width:17px!important;height:17px!important;stroke-width:2!important}
.top-toolbar--large .top-tool-symbol svg.icon-trash,.top-toolbar--labeled .top-tool-symbol svg.icon-trash{width:34px!important;height:34px!important;stroke-width:2!important}
/* Keep the level mark compact and the operation sign visually centered above it. */
.top-tool-symbol svg.icon-level .level-mark{stroke-width:1.1!important}
.top-tool-symbol svg.icon-level .icon-overlay-arrow{stroke-width:1.3!important}
.top-tool-symbol svg.icon-level .icon-action-mark{stroke-width:1.8!important}
/* Room tiles live inside the PÚ geometry and only exist in Room mode. */
.stage.room-mode .tile-label{display:none!important}
.room-tile{position:absolute;z-index:12;pointer-events:auto;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:5px;padding:2px 6px;border:1px solid #15803d;border-radius:3px;background:#16a34a;color:#fff;font:400 11px/1.1 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;overflow:hidden;white-space:nowrap;cursor:default;box-shadow:0 1px 2px rgba(15,23,42,.10)}
.room-tile:hover{background:#15803d}.room-tile.selected{background:#166534;border-color:#14532d;box-shadow:0 0 0 2px rgba(20,83,45,.45) inset}.room-number{font-weight:600}.room-name{overflow:hidden;text-overflow:ellipsis}.room-area{text-align:right;color:#ecfdf5}.room-tile.compact .room-area{display:none}.room-tile.micro .room-name,.room-tile.micro .room-area{display:none}.room-tile.micro{grid-template-columns:1fr;padding-inline:3px}.room-drop-target .tile-polygon{stroke:#16a34a!important;stroke-width:calc(5px / var(--stage-zoom,1))!important}.room-drag-ghost{position:fixed;z-index:2147483100;pointer-events:none;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:5px;background:rgba(22,163,74,.68);border:1px solid #15803d;border-radius:3px;padding:3px 6px;color:#fff;font:400 11px/1.1 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;box-shadow:0 5px 14px #0003;opacity:.78;overflow:hidden;white-space:nowrap}.room-drag-ghost .room-name{overflow:hidden;text-overflow:ellipsis}.room-drag-ghost .room-area{color:#ecfdf5}
/* Neutral inline edit field: never inherit the active orange PÚ mode. */
.fc-text-edit-popup input:focus{border-color:#475569!important;box-shadow:0 0 0 2px rgba(71,85,105,.18),0 5px 16px rgba(0,0,0,.2)!important}
/* Same warning-dialog geometry as the DBF Fire Compartments editor. */
.cad-warning-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.15);z-index:2147483201}.cad-warning-backdrop[hidden],.cad-warning-popup[hidden]{display:none!important}.cad-warning-popup{position:fixed;z-index:2147483202;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 32px));background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 20px 35px rgba(0,0,0,.22);padding:14px;font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif}.cad-warning-popup h3{margin:0 0 10px;color:#001f3f;font-size:17px}.cad-warning-popup p{margin:0 0 12px;font-size:14px}.cad-warning-actions{display:flex;justify-content:flex-end;gap:8px}.cad-warning-actions button{min-width:72px;height:32px;border-radius:4px;border:1px solid #94a3b8;font:600 14px/1 "Segoe UI",Tahoma,sans-serif;cursor:pointer}.cad-warning-actions .btn-success{background:#198754;color:#fff;border-color:#198754}.cad-warning-actions .btn-gray{background:#f3f4f6;color:#111}

/* Save-menu typography retained for the standalone CAD shell. */
.save-menu-btn .save-label,.save-menu-btn>span{font:700 11px/12px "Segoe UI",Tahoma,Geneva,Verdana,sans-serif}

/* v1.4.127: mode-specific inactive PÚ rendering and façade topology UI */
.tile-shell.inactive-mode:not(.overlay) .tile-polygon{fill:#c0c0c0!important}
.tile-shell.inactive-mode.openings-roomless:not(.overlay) .tile-polygon{fill:#f4cccc!important}
.stage.mode-level .tile-label,
.stage.mode-underlay .tile-label,
.stage.mode-rooms .tile-label,
.stage.mode-facade .tile-label{display:none!important}
.stage.mode-facade .edge-label,
.stage.mode-level .edge-label,
.stage.mode-underlay .edge-label,
.stage.mode-rooms .edge-label{display:none!important}
.facade-label{position:absolute;z-index:27;pointer-events:auto;display:grid;grid-template-rows:repeat(3,auto);min-width:60px;padding:0;border:1px solid #0f766e;border-radius:3px;background:#14b8a6;color:#062f2e;font:400 12px/1.15 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;text-align:center;white-space:nowrap;overflow:hidden;transform:translate(-50%,-50%) scale(var(--annotation-counter-scale,1));transform-origin:center center;box-shadow:0 1px 2px #0003;cursor:pointer}
.facade-label>span{padding:2px 6px}.facade-label>span+span{border-top:1px solid rgba(15,118,110,.65)}
.facade-label:hover{background:#2dd4bf}.facade-label.selected{background:#0f766e;color:#fff;border-color:#064e3b;box-shadow:0 0 0 2px rgba(20,184,166,.45)}
.facade-candidate-highlight,.facade-selection-highlight{position:absolute;z-index:22;height:var(--hover-stroke);margin-top:calc(var(--hover-stroke)/-2);transform-origin:0 50%;pointer-events:none;border-radius:999px;background:#14b8a6;opacity:.42}
.facade-candidate-highlight-over,.facade-selection-highlight-over{position:absolute;z-index:23;height:calc(var(--hover-stroke) * .45);margin-top:calc(var(--hover-stroke) * -.225);transform-origin:0 50%;pointer-events:none;border-radius:999px;background:#0f766e;opacity:.9}
.facade-selection-highlight{opacity:.58}.facade-selection-highlight-over{background:#fff;opacity:.7}
.facade-marquee{border-color:#14b8a6!important;background:rgba(20,184,166,.10)!important}
.facade-assign-popup{z-index:2147483200!important;min-width:220px;max-width:min(360px,calc(100vw - 16px));padding:4px;background:#fff;border:1px solid #7f8c8d;border-radius:4px;box-shadow:0 8px 24px #0003;font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif}
.facade-assign-popup button{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;padding:6px 8px;border:0;border-radius:2px;background:transparent;color:#111;text-align:left;font:400 13px/1.2 inherit;cursor:pointer}.facade-assign-popup button:hover{background:#ccfbf1}.facade-assign-popup button b{font-weight:600}.facade-assign-popup button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.facade-assign-empty{padding:8px;color:#555;font-size:12px}
.boundary-detail-card h3,.facade-detail-card h3{margin:0 0 8px}.boundary-participants{display:grid;gap:5px;margin:10px 0;padding:7px;border:1px solid #d6dde2;border-radius:4px;background:#f7f9fa}.boundary-participants>b{font-size:12px}.boundary-participants>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:baseline}.boundary-participants span{font-weight:600}.boundary-participants small{color:#52616b}.outside-participant{border-top:1px solid #dfe5e9;padding-top:5px}

/* v1.4.131 — precision, click-create PÚ, graphical openings and fire-distance overlay */
.toolbar-precision-toggle{overflow:visible!important}
.toolbar-precision-toggle svg{display:block;width:28px;height:28px;overflow:visible;color:currentColor}
.toolbar-precision-toggle .precision-dots circle{fill:currentColor;stroke:none}
.toolbar-precision-toggle text{fill:currentColor;stroke:none;font:600 9px/1 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif}
.top-toolbar--large .toolbar-precision-toggle svg,.top-toolbar--labeled .toolbar-precision-toggle svg{width:28px!important;height:28px!important}

.click-create-ghost{position:absolute;z-index:76;pointer-events:none;box-sizing:border-box;border:calc(1.5px / var(--stage-zoom,1)) dashed #f97316;background:rgba(249,115,22,.12);box-shadow:inset 0 0 0 calc(1px / var(--stage-zoom,1)) rgba(255,255,255,.65)}.click-create-ghost.existing-placement-ghost{border-color:color-mix(in srgb,var(--preview-bg,#f97316) 88%,#111);background:color-mix(in srgb,var(--preview-bg,#f97316) 30%,transparent);}

/* In Openings mode construction labels are informational only. */
.stage.mode-openings .edge-label{pointer-events:none!important;cursor:default!important}
.stage.mode-openings .edge-label.selection-locked{pointer-events:none!important}

.opening-symbol{position:absolute;z-index:31;height:calc(7px / var(--stage-zoom,1));margin-top:calc(-3.5px / var(--stage-zoom,1));transform-origin:0 50%;background:#3b82f6;border-radius:0;pointer-events:auto;cursor:pointer;box-shadow:0 0 0 calc(.5px / var(--stage-zoom,1)) rgba(21,87,165,.25)}
.opening-symbol:hover{background:#1557a5}
.opening-symbol.selected{background:#0f4688;box-shadow:0 0 0 calc(2px / var(--stage-zoom,1)) rgba(59,130,246,.55)}
.opening-label{position:absolute;z-index:34;pointer-events:auto;display:grid;grid-template-rows:auto auto;min-width:72px;padding:0;border:1px solid #3b82f6;border-radius:3px;background:#eff6ff;color:#1557a5;font:400 11px/1.15 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;text-align:center;white-space:nowrap;overflow:hidden;transform:translate(-50%,-50%) scale(var(--annotation-counter-scale,1));transform-origin:center center;box-shadow:0 1px 2px rgba(15,70,136,.18);cursor:pointer}
.opening-label>span{padding:2px 5px}.opening-label>span+span{border-top:1px solid rgba(59,130,246,.55)}
.opening-label:hover{background:#dbeafe}.opening-label.selected{background:#1557a5;color:#fff;border-color:#0f4688;box-shadow:0 0 0 2px rgba(59,130,246,.35)}
.opening-marquee{border-color:#3b82f6!important;background:rgba(59,130,246,.10)!important}
.opening-hover-target,.opening-drop-target{position:absolute;z-index:29;height:var(--hover-stroke);margin-top:calc(var(--hover-stroke)/-2);transform-origin:0 50%;pointer-events:none;border-radius:0;background:#3b82f6;opacity:.38}
.opening-drop-target{z-index:30;background:#1557a5;opacity:.62;box-shadow:0 0 0 calc(2px / var(--stage-zoom,1)) rgba(59,130,246,.30)}
.opening-drag-ghost{position:fixed;z-index:2147483250;pointer-events:none;min-width:74px;padding:4px 7px;border:1px solid #1557a5;border-radius:3px;background:rgba(59,130,246,.72);color:#fff;font:600 11px/1.2 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;box-shadow:0 5px 14px rgba(15,70,136,.28);white-space:nowrap}
.opening-room-popup{position:fixed;z-index:2147483255;min-width:260px;max-width:min(360px,calc(100vw - 16px));max-height:min(360px,calc(100vh - 16px));overflow:auto;padding:4px;background:#fff;border:1px solid #7f8c8d;border-radius:4px;box-shadow:0 8px 24px rgba(0,0,0,.22);font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif}
.opening-room-popup[hidden]{display:none!important}.opening-room-popup-title{padding:5px 7px 7px;font-size:12px;font-weight:600;color:#334155}
.opening-room-table{width:100%;border-collapse:collapse;table-layout:fixed}.opening-room-table th{padding:4px 8px;border-bottom:1px solid #cbd5e1;background:#f8fafc;color:#475569;text-align:left;font:600 11px/1.2 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif}.opening-room-table th:first-child{width:92px}.opening-room-table td{padding:0;border-bottom:1px solid #eef2f7}.opening-room-table tr:last-child td{border-bottom:0}

.opening-room-popup button{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:baseline;padding:6px 8px;border:0;border-radius:2px;background:transparent;color:#111;text-align:left;font:400 13px/1.2 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;cursor:pointer}
.opening-room-popup button:hover,.opening-room-popup button:focus{background:#dbeafe;outline:none}.opening-room-popup button b{font-weight:600;color:#1557a5}.opening-room-popup button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.fire-distance-overlay{position:absolute;inset:0;z-index:26;width:100%;height:100%;overflow:visible;pointer-events:none}
.fire-distance-line{fill:none;stroke:#dc2626;stroke-width:calc(2px / var(--stage-zoom,1));stroke-linecap:butt;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.fire-distance-line.individual{stroke-width:calc(1.5px / var(--stage-zoom,1));stroke-dasharray:calc(7px / var(--stage-zoom,1)) calc(5px / var(--stage-zoom,1));opacity:.9}
.fire-distance-text{fill:#dc2626;stroke:#fff;stroke-width:calc(2.5px / var(--stage-zoom,1));paint-order:stroke fill;font:600 calc(12px / var(--stage-zoom,1))/1 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;text-anchor:middle;dominant-baseline:central}
.fire-distance-text.individual{font-size:calc(9px / var(--stage-zoom,1));stroke-width:calc(2px / var(--stage-zoom,1));font-weight:600}
.fire-distance-unknown rect{fill:#f59e0b;stroke:#b45309;stroke-width:calc(1px / var(--stage-zoom,1))}
.fire-distance-unknown text{fill:#fff;stroke:none;font:700 calc(30px / var(--stage-zoom,1))/1 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;text-anchor:middle;dominant-baseline:central}

/* v1.4.131 — façade edge state and radiating-wall symbols. */
.facade-geometry-overlay{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:19;
  overflow:visible;
  pointer-events:none;
}
.facade-geometry-overlay .facade-assigned-edge{
  stroke:#0f766e;
  stroke-linecap:butt;
  stroke-linejoin:miter;
  fill:none;
}
.facade-geometry-overlay .facade-radiating-edge{
  stroke:#d92d20;
  stroke-linecap:butt;
  stroke-linejoin:miter;
  fill:none;
}
.facade-radiating-wave{
  position:absolute;
  z-index:24;
  width:24px;
  height:24px;
  margin:0;
  padding:0;
  pointer-events:none;
  transform:translate(-50%,-50%) rotate(var(--radiating-wave-angle,0deg)) scale(var(--radiating-wave-counter-scale,1));
  transform-origin:center center;
}
.facade-radiating-wave svg{display:block;width:24px;height:24px;overflow:visible}
.facade-radiating-wave path{
  fill:none;
  stroke:#d92d20;
  stroke-width:1.75;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* v1.4.131 — radiating façade visibility in Openings mode and label placement. */

.facade-geometry-overlay .facade-radiating-edge.openings-radiating{stroke:#f59e0b;}
.facade-radiating-wave.openings-radiating path{stroke:#f59e0b;}


/* v1.4.132 — horizontal opening labels and screen-stable annotation offsets. */
.opening-label{transform:translate(-50%,-50%) scale(var(--annotation-counter-scale,1));transform-origin:center center;}

/* v1.4.133 — graphical editor embedded in the unified shell. */
body.embedded .pbs-shell{display:none!important}
body.embedded{height:100vh!important;min-height:100vh!important}
body.embedded .top-toolbar{flex:0 0 auto}
body.embedded .main{flex:1;min-height:0}
/* v1.4.133: standalone CAD shell now has the same three shared save outputs as PBS Unified. */
.save-menu{grid-template-rows:repeat(3,auto)!important;min-height:calc(var(--header-square)*3 - var(--saveGap))!important;}

/* v1.4.141 – Opening-description editor. Uses the Tables editor's exact four naming presets. */
.opening-description-picker{
  position:fixed;z-index:2147483260;width:min(360px,calc(100vw - 16px));
  background:#fff;border:1px solid #94a3b8;border-radius:5px;
  box-shadow:0 10px 26px rgba(0,0,0,.24);padding:0;overflow:hidden;
  font:400 14px/1.2 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;color:#111;
}
.opening-description-picker[hidden]{display:none!important}
.opening-description-picker-heading{min-height:30px;padding:6px 8px;background:#dbeafe;color:#0f172a;font-weight:600;border-bottom:1px solid #bfdbfe;display:flex;align-items:center}
.opening-description-picker-table{display:grid;grid-template-columns:1fr;background:#fff}
.opening-description-picker-row{width:100%;min-height:31px;margin:0;padding:5px 8px;border:0;border-bottom:1px solid #e5e7eb;border-radius:0;background:#fff;color:#111;text-align:left;font:400 14px/1.2 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;display:flex;align-items:center;cursor:pointer}
.opening-description-picker-row:last-child{border-bottom:0}
button.opening-description-picker-row:hover,button.opening-description-picker-row:focus{background:#dbeafe;outline:none}
.opening-description-custom-row{padding:3px 5px;cursor:text}
.opening-description-custom-row input{width:100%;height:27px;margin:0;padding:3px 5px;border:1px solid #94a3b8;border-radius:3px;background:#fff;color:#111;font:400 14px/1.2 "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;outline:none}
.opening-description-custom-row input:focus{border-color:#1557a5;box-shadow:0 0 0 2px rgba(21,87,165,.16)}

/* v1.4.157 – Fire Compartments / CAD Export preview and DXF scale control. */
.export-scale-dialog{position:fixed;z-index:525;left:50%;top:50%;transform:translate(-50%,-50%);width:min(410px,calc(100vw - 32px));padding:16px;border:1px solid #596773;border-radius:7px;background:#fff;box-shadow:0 20px 55px #0008;font-family:var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}
.export-scale-dialog[hidden]{display:none}.export-scale-dialog h3{margin:0 0 12px;font-size:16px;font-weight:600}.export-scale-dialog label{display:flex;align-items:center;gap:7px;font:400 14px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}.export-scale-dialog input{height:34px;width:96px;border:1px solid #7c8994;border-radius:4px;padding:4px 7px;font:400 14px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}.export-scale-dialog p{margin:11px 0 0;color:#53616d;font:400 12px/1.35 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif)}.export-scale-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.export-scale-actions button{height:36px;border:1px solid #667684;border-radius:4px;background:#eef1f4;font:600 14px/1.2 var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif);cursor:pointer}.export-scale-actions #export-scale-ok{background:#263f56;color:#fff}
.stage.mode-export{background-color:#fff!important;background-image:none!important}
.export-overlay{position:absolute;inset:0;z-index:35;width:100%;height:100%;overflow:visible;pointer-events:none;opacity:1}
.stage.mode-export .stage-underlay{opacity:.25!important}
.export-boundary{fill:none;stroke:#dc2626;stroke-width:calc(6px / var(--stage-zoom,1));stroke-linecap:butt;stroke-linejoin:miter;vector-effect:non-scaling-stroke}
.export-opening{fill:none;stroke:#3b82f6;stroke-width:calc(7px / var(--stage-zoom,1));stroke-linecap:butt;vector-effect:non-scaling-stroke;opacity:.5}
.export-distance-main{fill:none;stroke:#dc2626;stroke-width:calc(2px / var(--stage-zoom,1));stroke-linecap:butt;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.export-distance-individual{fill:none;stroke:#dc2626;stroke-width:calc(1.5px / var(--stage-zoom,1));stroke-dasharray:calc(7px / var(--stage-zoom,1)) calc(5px / var(--stage-zoom,1));stroke-linecap:butt;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.export-ceiling-symbol{fill:none;stroke:#dc2626;stroke-width:calc(2px / var(--stage-zoom,1));stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.export-fc-number,.export-fc-duration,.export-construction-label,.export-distance-label{fill:#dc2626;font-family:var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif);text-anchor:middle;dominant-baseline:central}
.export-fc-number{font-size:calc(18px / var(--stage-zoom,1));font-weight:700}.export-fc-duration{font-size:calc(13.75px / var(--stage-zoom,1));font-weight:600}.export-construction-label{font-size:calc(12px / var(--stage-zoom,1));font-weight:600}.export-distance-label{font-size:calc(12px / var(--stage-zoom,1));font-weight:600}.export-distance-label.individual{font-size:calc(9px / var(--stage-zoom,1))}

/* v1.5.6 — placement of existing facade segments from the left palette. */
.facade-available-edge{position:absolute;z-index:21;height:var(--hover-stroke);margin-top:calc(var(--hover-stroke)/-2);transform-origin:0 50%;pointer-events:none;border-radius:999px;background:#4ade80;opacity:.88;box-shadow:0 0 0 1px rgba(21,128,61,.22)}
.palette .facade-pal{--c:#22c55e;cursor:pointer;background:color-mix(in srgb,#86efac 55%,white);border-color:#4ade80}
.palette .facade-pal:hover{background:color-mix(in srgb,#4ade80 62%,white)}
.palette .facade-pal.selected{background:color-mix(in srgb,#22c55e 58%,white)!important;border-color:#15803d!important;outline-color:#166534!important}

/* v1.5.18 — mode-aware modal canvas signalling. Every modal command in the
   four persisted graphical editing modes tints the canvas and grid; ending
   the command restores the ordinary white/gray drafting surface. */
.stage.modal-command-active.modal-fire-compartment{background-color:#fff4e8}
.stage.modal-command-active.modal-rooms{background-color:#ecfdf3}
.stage.modal-command-active.modal-openings{background-color:#eff6ff}
.stage.modal-command-active.modal-facade{background-color:#ecfdfb}
.stage.modal-command-active.modal-fire-compartment .world-axis{background:#7c2d12}
.stage.modal-command-active.modal-rooms .world-axis{background:#14532d}
.stage.modal-command-active.modal-openings .world-axis{background:#1e3a8a}
.stage.modal-command-active.modal-facade .world-axis{background:#134e4a}


/* v1.5.18 — mode labels + missing persisted underlay source */
.stage.mode-fire-compartment .tile-label .id{color:#dc2626!important;}
.stage.mode-rooms .tile-shell:not(.overlay) .tile-label{display:flex!important;pointer-events:none!important;}
.stage.mode-rooms .tile-shell:not(.overlay) .tile-label .meta{display:none!important;}
.stage.mode-rooms .tile-shell:not(.overlay) .tile-label .id{color:#111827!important;font-weight:800!important;}
.pal.underlay-source-missing{--c:#64748b;cursor:pointer;border-style:dashed!important;}
.pal.underlay-source-missing.drag-active{outline:3px solid #2563eb;outline-offset:-3px;background:#dbeafe!important;}

/* v1.5.28 — direct underlay file drop targets */
.top-tool.underlay-drop-active{outline:2px dashed #f97316;outline-offset:-2px;background:rgba(249,115,22,.14)}
.stage.underlay-file-drop-active{box-shadow:inset 0 0 0 calc(3px / var(--stage-zoom,1)) rgba(249,115,22,.9)}


/* v1.5.28 — Openings selection summary and compact facade labels. */
.opening-dimension-box{display:grid;grid-template-rows:repeat(3,auto);border:1px solid #9eabb5;border-radius:5px;background:#fff;overflow:hidden;margin:0 0 8px;font:var(--pbs-panel-body-font)}
.opening-dimension-box>div{min-height:32px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:5px 8px}
.opening-dimension-box>div+div{border-top:1px solid #d6dde2}.opening-dimension-box span{color:#425563}.opening-dimension-box b{font-weight:600;color:#17202a;text-align:right;white-space:nowrap}
.opening-facade-list{display:grid;gap:5px;margin:0 0 10px}.opening-facade-button{height:32px;min-height:32px;display:grid;grid-template-columns:auto minmax(0,1fr) 28px;align-items:center;gap:6px;padding:0 2px 0 8px;border:1px solid #0f766e;border-radius:4px;background:#c9ece8;color:#062f2e;overflow:hidden;font-family:var(--pbs-table-row-font-family,"Segoe UI",Tahoma,Geneva,Verdana,sans-serif);font-size:13px;line-height:1.2}
.opening-facade-number{font-weight:600;white-space:nowrap}.opening-facade-name{font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opening-facade-status-icon{width:28px;height:28px;display:grid;place-items:center;justify-self:end;padding:0;border:0;background:transparent;cursor:pointer;border-radius:4px}.opening-facade-status-icon:hover{outline:2px solid rgba(15,118,110,.35);outline-offset:-2px}.opening-facade-status-icon:focus-visible{outline:2px solid #0f766e;outline-offset:-2px}.opening-facade-status-icon svg{display:block;width:28px;height:28px;pointer-events:none}.opening-facade-empty{margin:0}
.facade-label .facade-label-number{font-weight:600}

/* v1.5.43 — per-floor load-bearing ceiling requirement in Fire Compartment mode. */
.stage.mode-fire-compartment .tile-label{height:118px;overflow:visible;transform:translate(-50%,-50%) scale(var(--fc-annotation-counter-scale,1));transform-origin:center center}
.stage.mode-fire-compartment .tile-label>div{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}
.stage.mode-fire-compartment .tile-label .fc-name{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#111827;font-size:var(--pbs-graphical-meta-font-size,12px);font-weight:400;line-height:1.15}
.stage.mode-fire-compartment .tile-label .fc-ceiling-display{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#111827;line-height:1;margin-top:1px}
.stage.mode-fire-compartment .tile-label .fc-ceiling-value{font-size:var(--pbs-graphical-meta-font-size,12px);font-weight:600;line-height:1.05;color:#dc2626}
.stage.mode-fire-compartment .tile-label .fc-ceiling-meta{font-size:var(--pbs-graphical-meta-font-size,12px);font-weight:400;line-height:1.1;color:#111827;white-space:nowrap;margin-top:1px}
.tile-label .fc-ceiling-icon{position:relative!important;inset:auto!important;display:block!important;width:28px!important;height:14px!important;margin:1px auto 0!important;overflow:visible!important;pointer-events:none!important}
.tile-label .fc-ceiling-icon line,.tile-label .fc-ceiling-icon polyline{fill:none;stroke:#dc2626;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.stage.mode-fire-compartment .tile-shell.compact .tile-label .fc-name{display:none}

/* v1.5.43 — destructive vertex/facade confirmation and mismatch emphasis */
.destructive-confirm-dialog{width:min(520px,92vw)}
.destructive-confirm-dialog p{margin:8px 0 16px;line-height:1.45;color:#334155}
.danger-dialog-action{background:#b42318!important;color:#fff!important;border-color:#7f1d1d!important}
.danger-dialog-action:hover{background:#991b1b!important}
.edge-label.conflict,.edge-label.conflict.selected,.edge-label.conflict:hover{background:#c2410c!important;border-color:#111!important;color:#fff!important;box-shadow:none!important}
.edge-label.conflict .opening-line{border-top-color:#fff!important}
.boundary-run-highlight.boundary-mismatch-highlight,.selected-boundary-highlight.boundary-mismatch-highlight{background:#c2410c!important;opacity:.86!important;box-shadow:none!important}
.boundary-run-highlight-over.boundary-mismatch-highlight,.selected-boundary-highlight-over.boundary-mismatch-highlight{background:#9a3412!important;opacity:.62!important}
