/*
 * Shared table appearance configuration for all PBS modes.
 * Change the values in :root only; rooms/openings, fire hazard and
 * fire compartments consume the same tokens below.
 */
:root {
  --pbs-table-row-height: 32px;
  --pbs-table-row-
  --pbs-table-row-

  --pbs-table-input-height: 28px;
  --pbs-table-input-
  --pbs-table-input-

  --pbs-table-unit-
  --pbs-table-unit-

  --pbs-table-cell-padding-block: 2px;
  --pbs-table-cell-padding-inline: 6px;

  /* Calibrated CSS box that produces the approved 32 x 32 px rendered icon footprint in the embedded modules. */
  --pbs-table-icon-size: 28px;
  --pbs-table-icon-glyph-size: 16px;
  --pbs-table-icon-gap: 4px;
  --pbs-muted-color: rgb(180,180,180);
  --pbs-shz-cross-color: #d92d20;
}

/* Common data-row typography and geometry. */
#main-table > tbody > tr,
#fc-table > tbody > tr {
  min-height: var(--pbs-table-row-height) !important;
  
  
}

#main-table > tbody > tr > td,
#fc-table > tbody > tr > td {
  height: var(--pbs-table-row-height) !important;
  padding-top: var(--pbs-table-cell-padding-block) !important;
  padding-bottom: var(--pbs-table-cell-padding-block) !important;
  vertical-align: middle !important;
  
  
}

/* Opening and boundary subtables use the same typography and control sizes. */
.openings-table > tbody > tr,
.openings-table > tbody > tr > td,
.segment-table > tbody > tr,
.segment-table > tbody > tr > td {
  
  
}
.openings-table > tbody > tr > td,
.segment-table > tbody > tr > td {
  min-height: var(--pbs-table-row-height) !important;
  padding-top: var(--pbs-table-cell-padding-block) !important;
  padding-bottom: var(--pbs-table-cell-padding-block) !important;
  vertical-align: middle !important;
}

/* Every textbox/select used in table rows and creation footers. */
#main-table input,
#main-table select,
#fc-table input,
#fc-table select,
.openings-table input,
.openings-table select,
.segment-table input,
.segment-table select,
.creation-footer-tr input,
.creation-footer-tr select {
  min-height: var(--pbs-table-input-height) !important;
  height: var(--pbs-table-input-height) !important;
  
  
  box-sizing: border-box !important;
}

/* Unit suffixes inside numeric textboxes. */
.unit-input-wrapper .unit-label,
.unit-label {
  
  
}

/* One authoritative row-action icon box for all three modes. */
.action-cluster,
.opening-actions-cluster,
.fc-action-cluster {
  gap: var(--pbs-table-icon-gap) !important;
  align-items: center !important;
}

button.icon-btn,
span.icon-btn,
.icon-btn {
  inline-size: var(--pbs-table-icon-size) !important;
  block-size: var(--pbs-table-icon-size) !important;
  width: var(--pbs-table-icon-size) !important;
  height: var(--pbs-table-icon-size) !important;
  min-inline-size: var(--pbs-table-icon-size) !important;
  max-inline-size: var(--pbs-table-icon-size) !important;
  min-block-size: var(--pbs-table-icon-size) !important;
  max-block-size: var(--pbs-table-icon-size) !important;
  min-width: var(--pbs-table-icon-size) !important;
  max-width: var(--pbs-table-icon-size) !important;
  min-height: var(--pbs-table-icon-size) !important;
  max-height: var(--pbs-table-icon-size) !important;
  flex: 0 0 var(--pbs-table-icon-size) !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 !important;
  
}

button.icon-btn svg,
span.icon-btn svg,
.icon-btn svg {
  width: var(--pbs-table-icon-glyph-size) !important;
  height: var(--pbs-table-icon-glyph-size) !important;
  min-width: var(--pbs-table-icon-glyph-size) !important;
  min-height: var(--pbs-table-icon-glyph-size) !important;
  max-width: var(--pbs-table-icon-glyph-size) !important;
  max-height: var(--pbs-table-icon-glyph-size) !important;
  flex: 0 0 var(--pbs-table-icon-glyph-size) !important;
  display: block !important;
}

/* Shared row-icon artwork. Geometry and stroke are authoritative for every mode. */
button.icon-btn > svg.pbs-shared-icon,
.icon-btn > svg.pbs-shared-icon {
  width: var(--pbs-table-icon-glyph-size) !important;
  height: var(--pbs-table-icon-glyph-size) !important;
  display: block !important;
  flex: 0 0 var(--pbs-table-icon-glyph-size) !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2.5 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
}


/* Shared name-field selection gap.
 * The gap is 50%–150% of the standard 84 px area/width textbox.
 * It is a non-editing hit target reserved for row-selection workflows.
 */
:root {
  --pbs-table-reference-number-input-width: 84px;
  --pbs-table-name-selection-gap: clamp(
    calc(var(--pbs-table-reference-number-input-width) * 0.5),
    6vw,
    calc(var(--pbs-table-reference-number-input-width) * 1.5)
  );
}

.pbs-name-gap-layout {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  min-width: 0 !important;
}

.pbs-name-gap-layout > input {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
}

.pbs-row-selection-zone {
  display: block;
  flex: 0 0 var(--pbs-table-name-selection-gap);
  width: var(--pbs-table-name-selection-gap);
  height: var(--pbs-table-input-height);
  min-width: calc(var(--pbs-table-reference-number-input-width) * 0.5);
  max-width: calc(var(--pbs-table-reference-number-input-width) * 1.5);
  margin-left: 0;
  cursor: default;
  box-sizing: border-box;
  border: 0 !important;
  border-radius: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  appearance: none;
  -webkit-appearance: none;
}

/* The reserved selection target must remain visually indistinguishable from
 * ordinary empty row space in every interaction state. */
.pbs-row-selection-zone:hover,
.pbs-row-selection-zone:focus,
.pbs-row-selection-zone:focus-visible,
.pbs-row-selection-zone:active,
tr.pbs-future-selected .pbs-row-selection-zone {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* v1.0.16 shared mode palette and table-relative layout tokens. */
:root {
  --pbs-rooms-openings-surface: rgb(192, 225, 255);
  --pbs-rooms-openings-accent: rgb(128, 192, 255);

  /* Fire-hazard palette: edit these tokens to update every matching element. */
  --pbs-fire-hazard-medium-violet: #8b5cf6;
  --pbs-fire-hazard-medium-violet-hover: #7c3aed;
  --pbs-fire-hazard-light-violet: #ede9fe;
  --pbs-fire-hazard-light-violet-hover: #ddd6fe;
  --pbs-fire-hazard-row-green: rgb(225, 255, 192);
  --pbs-fire-hazard-row-green-hover: rgb(172, 225, 128);
  --pbs-fire-hazard-ps-orange: #f97316;
  --pbs-fire-hazard-ps-orange-hover: #ea580c;
  --pbs-fire-hazard-ps-orange-border: #ea580c;
  --pbs-fire-hazard-complete-action-bg: #ffffff;
  --pbs-fire-hazard-complete-action-fg: #000000;

  /* Backward-compatible aliases used by the shell contextual toolbar. */
  --pbs-fire-hazard-accent: var(--pbs-fire-hazard-medium-violet);
  --pbs-fire-hazard-accent-hover: var(--pbs-fire-hazard-medium-violet-hover);
  --pbs-fire-hazard-surface: var(--pbs-fire-hazard-light-violet);
  --pbs-fire-hazard-surface-hover: var(--pbs-fire-hazard-light-violet-hover);

  --pbs-fire-compartments-surface: #ffedd5;
  --pbs-fire-compartments-surface-hover: #fed7aa;

  --pbs-table-name-selection-gap: 42px; /* Runtime-updated from each table's own width. */
}

/* v1.0.19 reusable table grouping toggle.
 * This is intentionally a little smaller than the row-action button box so
 * its filled square has the same perceived footprint as the shared line icons.
 * Future modes should use the pbs-grouping-control class rather than defining
 * their own checkbox geometry.
 */
:root {
  --pbs-table-grouping-control-size: 16px;
  --pbs-table-grouping-control-radius: 3px;
  --pbs-table-grouping-control-border: #cbd5e1;
  --pbs-table-grouping-control-bg: #ffffff;
  --pbs-table-grouping-control-focus: var(--pbs-rooms-openings-accent, #80c0ff);
  --pbs-table-grouping-control-check: #0f2a05;
}

.pbs-grouping-control {
  appearance: none !important;
  -webkit-appearance: none !important;
  inline-size: var(--pbs-table-grouping-control-size) !important;
  block-size: var(--pbs-table-grouping-control-size) !important;
  width: var(--pbs-table-grouping-control-size) !important;
  height: var(--pbs-table-grouping-control-size) !important;
  min-inline-size: var(--pbs-table-grouping-control-size) !important;
  max-inline-size: var(--pbs-table-grouping-control-size) !important;
  min-block-size: var(--pbs-table-grouping-control-size) !important;
  max-block-size: var(--pbs-table-grouping-control-size) !important;
  min-width: var(--pbs-table-grouping-control-size) !important;
  max-width: var(--pbs-table-grouping-control-size) !important;
  min-height: var(--pbs-table-grouping-control-size) !important;
  max-height: var(--pbs-table-grouping-control-size) !important;
  flex: 0 0 var(--pbs-table-grouping-control-size) !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--pbs-table-grouping-control-border) !important;
  border-radius: var(--pbs-table-grouping-control-radius) !important;
  background: var(--pbs-table-grouping-control-bg) !important;
  position: relative !important;
  vertical-align: middle !important;
  cursor: pointer !important;
  box-shadow: none !important;
}

.pbs-grouping-control:focus,
.pbs-grouping-control:focus-visible {
  outline: none !important;
  border-color: var(--pbs-table-grouping-control-focus) !important;
  box-shadow: 0 0 0 1px var(--pbs-table-grouping-control-focus) !important;
}

.pbs-grouping-control:checked::after {
  content: "" !important;
  position: absolute !important;
  left: 4px !important;
  top: 1px !important;
  width: 5px !important;
  height: 9px !important;
  border: solid var(--pbs-table-grouping-control-check) !important;
  border-width: 0 2px 2px 0 !important;
  transform: rotate(45deg) !important;
}


/* v1.0.20: compact fire-compartment room-list text and shared selected opening rows. */
#fc-table .room-table tbody tr.room-item-row > td,
#fc-table .room-table tbody tr.room-item-row .fixed-text {
  
  
}
/* Keep the level editor at its existing control typography. */
#fc-table .room-table tbody tr.room-item-row .level-input {
  
}
.openings-table tbody tr.pbs-opening-selected > td {
  background: var(--pbs-rooms-openings-accent) !important;
}
.openings-table tbody tr.pbs-opening-selected {
  box-shadow: inset 3px 0 0 rgba(15, 23, 42, 0.72);
}

/* v1.0.21: opening-row selection target and responsive interaction. */
.openings-table .pbs-row-selection-zone {
  cursor: pointer !important;
}
.openings-table tbody tr[data-opening-index] {
  cursor: pointer;
}
.openings-table tbody tr[data-opening-index] input,
.openings-table tbody tr[data-opening-index] button,
.openings-table tbody tr[data-opening-index] .lever-dial {
  cursor: auto;
}

/* v1.0.22: decorative table text must never participate in native browser
 * text selection during Ctrl/Shift row-selection gestures. Inputs remain
 * normally editable and selectable. */
.room-row .unit-label,
.room-row .icon-indicator,
.room-row .badge,
.openings-table .unit-label {
  -webkit-user-select: none !important;
  user-select: none !important;
}


/* v1.0.25: shared REF grouping checkbox and fire-hazard row selection. */
.pbs-grouping-control:checked {
  background: #ffffff !important;
  border-color: rgb(172, 225, 128) !important;
}
#main-table.fire-hazard-table tbody tr.pbs-room-selected > td {
  background: var(--pbs-fire-hazard-row-green-hover) !important;
}
#main-table.fire-hazard-table tbody tr.room-row { cursor: pointer; }
#main-table.fire-hazard-table tbody tr.room-row input,
#main-table.fire-hazard-table tbody tr.room-row button { cursor: auto; }
#main-table.fire-hazard-table .fire-level-input {
  width: 86px !important;
  min-width: 86px !important;
  max-width: 86px !important;
  text-align: right !important;
  background: #ffffff !important;
}

/* REF checkbox has no additional focus halo. */
.pbs-grouping-control:focus, .pbs-grouping-control:focus-visible {
  outline: none !important;
  box-shadow: none !important;
  border-color: var(--pbs-table-grouping-control-border) !important;
}
.pbs-grouping-control:checked:focus, .pbs-grouping-control:checked:focus-visible {
  border-color: rgb(172, 225, 128) !important;
}

/* v1.0.32: authoritative square grouping control.
 * The generic #main-table input rule has ID-level specificity and otherwise
 * forces a 28px height onto checkboxes. Match that specificity here so the
 * reusable grouping control remains exactly square in every mode. */
#main-table input.pbs-grouping-control,
#fc-table input.pbs-grouping-control,
.openings-table input.pbs-grouping-control,
input.pbs-grouping-control {
  inline-size: var(--pbs-table-grouping-control-size) !important;
  block-size: var(--pbs-table-grouping-control-size) !important;
  width: var(--pbs-table-grouping-control-size) !important;
  height: var(--pbs-table-grouping-control-size) !important;
  min-inline-size: var(--pbs-table-grouping-control-size) !important;
  max-inline-size: var(--pbs-table-grouping-control-size) !important;
  min-block-size: var(--pbs-table-grouping-control-size) !important;
  max-block-size: var(--pbs-table-grouping-control-size) !important;
  min-width: var(--pbs-table-grouping-control-size) !important;
  max-width: var(--pbs-table-grouping-control-size) !important;
  min-height: var(--pbs-table-grouping-control-size) !important;
  max-height: var(--pbs-table-grouping-control-size) !important;
  flex: 0 0 var(--pbs-table-grouping-control-size) !important;
  aspect-ratio: 1 / 1 !important;
}


/* v1.0.35: shared add-new icon and project-wide textbox dialog. */
button.icon-btn.icon-add,
button.icon-btn.btn-add-room-left,
button.icon-btn.pbs-add-new-icon,
button.btn-add-room-left.pbs-add-new-icon {
  inline-size: var(--pbs-table-icon-size) !important;
  block-size: var(--pbs-table-icon-size) !important;
  width: var(--pbs-table-icon-size) !important;
  height: var(--pbs-table-icon-size) !important;
  min-width: var(--pbs-table-icon-size) !important;
  max-width: var(--pbs-table-icon-size) !important;
  min-height: var(--pbs-table-icon-size) !important;
  max-height: var(--pbs-table-icon-size) !important;
  flex: 0 0 var(--pbs-table-icon-size) !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid #15803d !important;
  border-radius: 4px !important;
  background: #16a34a !important;
  color: #ffffff !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  
}
button.icon-btn.icon-add:hover,
button.icon-btn.btn-add-room-left:hover,
button.icon-btn.pbs-add-new-icon:hover,
button.btn-add-room-left.pbs-add-new-icon:hover {
  background: #15803d !important;
  color: #ffffff !important;
}

.pbs-text-dialog-backdrop,
.room-number-popup-backdrop,
#popup-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, .15);
  z-index: 10020;
}
.pbs-text-dialog,
.room-number-popup,
#name-popup.popup,
#assign-popup.popup {
  position: fixed;
  z-index: 10021;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(420px, calc(100vw - 32px));
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  box-shadow: 0 20px 35px rgba(0,0,0,.22);
  padding: 14px;
  box-sizing: border-box;
}
.pbs-text-dialog h3,
.room-number-popup h3,
#name-popup.popup h3 {
  margin: 0 0 10px;
  color: #001f3f;
  
}
.pbs-text-dialog p,
.room-number-popup p {
  margin: 0 0 10px;
  color: #334155;
  
}
.pbs-text-dialog input,
.room-number-popup input,
#name-popup.popup input {
  width: 100%;
  height: 34px !important;
  min-height: 34px !important;
  padding: 7px 8px;
  border: 1px solid #94a3b8;
  border-radius: 4px;
  margin: 0 0 12px;
  box-sizing: border-box;
  
}
.pbs-text-dialog input:focus,
.room-number-popup input:focus,
#name-popup.popup input:focus {
  outline: none;
  border-color: #001f3f;
  box-shadow: 0 0 0 1px #001f3f;
}
.pbs-text-dialog-actions,
.room-number-popup-actions,
#name-popup .popup-actions {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100%;
}
.pbs-text-dialog-actions > button,
.room-number-popup-actions > button,
#name-popup .popup-actions > button {
  width: 104px !important;
  min-width: 104px !important;
  max-width: 104px !important;
  height: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  margin: 0 !important;
  padding: 0 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}
.pbs-text-dialog-actions .pbs-dialog-ok,
.room-number-popup-actions #room-number-popup-ok,
#name-popup .popup-actions #name-popup-ok { order: 1; }
.pbs-text-dialog-actions .pbs-dialog-cancel,
.room-number-popup-actions #room-number-popup-cancel,
#name-popup .popup-actions #name-popup-cancel { order: 2; }


/* v1.0.36: shared duplicate-number warning and discouraged confirmation states. */
#name-popup-message {
  margin: 0 0 10px;
  color: #334155;
  
}
.room-number-popup input[hidden],
#name-popup input[hidden] { display: none !important; }
.room-number-popup[data-dialog-mode="warning"] .room-number-popup-actions,
.room-number-popup[data-dialog-mode="confirm-duplicate"] .room-number-popup-actions { margin-top: 14px; }
.pbs-dialog-danger-outline {
  background: #ffffff !important;
  color: #991b1b !important;
  border: 1px solid #991b1b !important;
  box-shadow: none !important;
}
.pbs-dialog-danger-outline:hover,
.pbs-dialog-danger-outline:focus-visible {
  background: #dc2626 !important;
  border-color: #dc2626 !important;
  color: #ffffff !important;
}
.room-number-popup[data-dialog-mode="confirm-duplicate"] #room-number-popup-cancel:focus,
.room-number-popup[data-dialog-mode="confirm-duplicate"] #room-number-popup-cancel:focus-visible {
  outline: 2px solid #166534 !important;
  outline-offset: 2px !important;
}


/* v1.0.39: fire-hazard room selection target.
   Keep the reserved gap visually empty, but communicate that it is clickable. */
#main-table.fire-hazard-table .pbs-row-selection-zone {
  cursor: pointer !important;
  user-select: none !important;
  -webkit-user-select: none !important;
}


/* v1.0.75: disabled controls still expose their explanatory tooltip. */
.icon-btn:disabled, button:disabled, [aria-disabled="true"] { pointer-events:auto !important; }


/* v1.3.54 common zoned-table sizing and left-zone growth.
 * Use these tokens/classes for tables split into LEFT / MIDDLE / RIGHT zones.
 * The first left subcolumn grows 50/50 with the name column until it reaches
 * wideColumn; after that, the name column absorbs all additional width.
 */
:root {
  --wideColumn: 140px;
  --dotEditorColumn: 110px;
  --regularColumn: 84px;
  --halfColumn: 42px;
  --iconSize: var(--pbs-table-icon-size);
  --iconGap: 3px;
  --inputHeight: var(--pbs-table-input-height);
  --zoneLeftNumberMin: var(--halfColumn);
  --zoneLeftNumberMax: var(--wideColumn);
  --zoneLeftNameMin: 153px;
  --zoneLeftGap: var(--iconGap);
  --zoneLeftBaseWidth: calc(var(--zoneLeftNumberMin) + var(--zoneLeftNameMin) + var(--zoneLeftGap));
  --hiddenEditHeight: 32px;
}

.pbs-zone-left-grid {
  display: grid !important;
  /* Default shared two-column left-zone growth. At minimum width, the
     number column starts at halfColumn and the name column starts at its
     minimum. Any additional width is split 50/50 until the number column
     reaches wideColumn; after that, the name column absorbs all growth. */
  --zoneLeftNumberWidth: clamp(
    var(--zoneLeftNumberMin),
    calc((100% - var(--zoneLeftNameMin) - var(--zoneLeftGap) + var(--zoneLeftNumberMin)) / 2),
    var(--zoneLeftNumberMax)
  );
  grid-template-columns:
    var(--zoneLeftNumberWidth)
    minmax(var(--zoneLeftNameMin), 1fr) !important;
  column-gap: var(--zoneLeftGap) !important;
  align-items: center !important;
  width: 100% !important;
  min-width: calc(var(--zoneLeftNumberMin) + var(--zoneLeftGap) + var(--zoneLeftNameMin)) !important;
}

.pbs-inline-edit-display {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  min-height: var(--hiddenEditHeight) !important;
  height: var(--hiddenEditHeight) !important;
  
  padding-top: 1px !important;
  padding-bottom: 1px !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}

.pbs-inline-edit-display input {
  min-height: var(--hiddenEditHeight) !important;
  height: var(--hiddenEditHeight) !important;
  
  padding-top: 1px !important;
  padding-bottom: 1px !important;
  box-sizing: border-box !important;
}

/* Shared dark table filter/header controls, initially matching Fire Hazard. */
.room-table-filter-input {
  width: 100%;
  box-sizing: border-box;
  background: #ffffff !important;
  color: #0f172a !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 4px;
  padding: 3px 6px;
  
  
}
.room-table-filter-input:focus {
  background: #ffffff !important;
  border-color: rgb(128,192,255) !important;
  outline: none;
}
.room-table-filter-checkbox {
  appearance: none;
  -webkit-appearance: none;
  width: 16px;
  height: 16px;
  min-width: 16px;
  margin: 0;
  vertical-align: middle;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 3px;
  position: relative;
  cursor: pointer;
}
.room-table-filter-checkbox:focus {
  outline: none;
  border-color: rgb(128,192,255);
  box-shadow: 0 0 0 1px rgb(128,192,255);
}
.room-table-filter-checkbox:checked {
  background: #ffffff;
  border-color: rgb(172,225,128);
}
.room-table-filter-checkbox:checked::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 1px;
  width: 5px;
  height: 9px;
  border: solid #0f2a05;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.room-table-filter-checkbox-label {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  color: #ffffff;
  user-select: none;
  width: 100%;
  min-width: 0;
  white-space: nowrap;
}

/* Persistent header filters: active filters are intentionally visible so users
 * do not forget that rows are being hidden. This is only applied to table-header
 * filter inputs, not temporary inline lookup/filter inputs. */
.room-table-filter-input:not(:placeholder-shown),
.room-table-filter-input:not(:placeholder-shown):focus,
.filter-row .filter-input:not(:placeholder-shown),
.filter-row .filter-input:not(:placeholder-shown):focus {
  background: #fee2e2 !important;
  border-color: #f87171 !important;
  color: #7f1d1d !important;
  box-shadow: inset 0 0 0 1px rgba(248, 113, 113, 0.35) !important;
}

.room-table-filter-input:not(:placeholder-shown)::placeholder,
.filter-row .filter-input:not(:placeholder-shown)::placeholder {
  color: #991b1b !important;
}

/* v1.3.130 unified table selection semantics and visual state. */
:root { --pbs-row-selected: rgb(128,192,255); --pbs-row-selected-hover: rgb(128,192,255); }
tr.pbs-room-selected > td,
tr.pbs-opening-selected > td,
tr.segment-selected > td,
tr.room-selected > td,
tr.fc-selected > td,
tr.facade-row.selected > td,
tr.facade-fc-group.selected > td,
tr.opening-item-row.selected > td { background:var(--pbs-row-selected) !important; }
tr.pbs-room-selected:hover > td,
tr.pbs-opening-selected:hover > td,
tr.segment-selected:hover > td,
tr.room-selected:hover > td,
tr.fc-selected:hover > td,
tr.facade-row.selected:hover > td,
tr.facade-fc-group.selected:hover > td,
tr.opening-item-row.selected:hover > td { background:var(--pbs-row-selected-hover) !important; }


/* v1.3.140 shared anchored popup-list defaults. */
.anchored-table-selector {
  width: 260px;
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  box-shadow: 0 10px 25px -5px rgba(0,0,0,.18);
  overflow: hidden;
}
.anchored-table-selector .anchored-selector-filter {
  display: block;
  width: 100%;
  height: 30px;
  box-sizing: border-box;
  padding: 3px 7px;
  border: 0;
  border-bottom: 1px solid #cbd5e1;
  border-radius: 0;
  background: #fff;
  color: #1e293b;
  
  
  
  
  outline: none;
}
.anchored-table-selector .anchored-selector-list {
  display: block;
  max-height: 224px;
  overflow-y: auto;
  background: #fff;
}
.anchored-table-selector .anchored-selector-item,
.anchored-table-selector [role="option"] {
  display: block;
  width: 100%;
  min-height: 27px;
  box-sizing: border-box;
  padding: 4px 8px;
  border: 0;
  border-bottom: 1px solid #f1f5f9;
  background: #fff;
  color: #1e293b;
  text-align: left;
  
  
  
  
  cursor: pointer;
}
.anchored-table-selector .anchored-selector-item.is-active,
.anchored-table-selector [role="option"].is-active {
  
}


/* v1.3.447 — centrally shared disabled/grayed textbox colors. */
:root{
  --pbs-muted-color:rgb(180,180,180);
  --pbs-disabled-textbox-border-color:var(--pbs-muted-color,rgb(180,180,180));
  --pbs-disabled-textbox-text-color:var(--pbs-muted-color,rgb(180,180,180));
  --pbs-disabled-textbox-background:rgb(235,235,235);
}
