/* PBS v1.3.270 — true final geometry for Openings and Fire Compartments.
   This file must be loaded after every legacy/local stylesheet. */

/* OPENINGS: eliminate inline-baseline/descent expansion.
   A 28px inline input can create a ~3–4px line-box descent; use block/flex
   children inside the exact 28px content box instead. */
body:has(#main-table) #main-table > tbody > tr.room-row,
body:has(#main-table) #main-table > tbody > tr.room-row > td,
body:has(.openings-table) .openings-table > tbody > tr:not(.opening-add-row),
body:has(.openings-table) .openings-table > tbody > tr:not(.opening-add-row) > td {
  height: var(--pbs-table-row-height) !important;
  min-height: var(--pbs-table-row-height) !important;
  max-height: var(--pbs-table-row-height) !important;
  box-sizing: border-box !important;
}

body:has(.openings-table) :is(#main-table > tbody > tr.room-row > td,
                              .openings-table > tbody > tr:not(.opening-add-row) > td) {
  padding-top: var(--pbs-table-cell-padding-block) !important;
  padding-bottom: var(--pbs-table-cell-padding-block) !important;
  vertical-align: middle !important;
  line-height: 0 !important;
}

body:has(.openings-table) :is(#main-table > tbody > tr.room-row,
                              .openings-table > tbody > tr:not(.opening-add-row))
:is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  display: block !important;
  height: var(--pbs-table-control-height) !important;
  min-height: var(--pbs-table-control-height) !important;
  max-height: var(--pbs-table-control-height) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  box-sizing: border-box !important;
  vertical-align: middle !important;
}

body:has(.openings-table) :is(#main-table > tbody > tr.room-row,
                              .openings-table > tbody > tr:not(.opening-add-row))
:is(.control-wrapper,.unit-input-wrapper,.opening-count-wrapper,
    .action-cluster,.opening-actions-cluster) {
  display: flex !important;
  align-items: center !important;
  height: var(--pbs-table-control-height) !important;
  min-height: var(--pbs-table-control-height) !important;
  max-height: var(--pbs-table-control-height) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: normal !important;
  box-sizing: border-box !important;
  vertical-align: middle !important;
}

body:has(.openings-table) :is(#main-table > tbody > tr.room-row,
                              .openings-table > tbody > tr:not(.opening-add-row))
:is(.unit-label,.badge,span:not(.unit-input-wrapper):not(.control-wrapper):not(.opening-count-wrapper)) {
  line-height: normal !important;
}

/* FIRE COMPARTMENTS: each physical header row is exactly the central row
   height. Remove the extra line-box and legacy 3px vertical padding. */
body:has(#fc-table) #fc-table > thead > tr,
body:has(#fc-table) #fc-table > thead > tr > th {
  height: var(--pbs-table-row-height) !important;
  min-height: var(--pbs-table-row-height) !important;
  max-height: var(--pbs-table-row-height) !important;
  box-sizing: border-box !important;
}

body:has(#fc-table) #fc-table > thead > tr > th {
  padding-top: var(--pbs-table-cell-padding-block) !important;
  padding-bottom: var(--pbs-table-cell-padding-block) !important;
  vertical-align: middle !important;
  line-height: 0 !important;
}

body:has(#fc-table) #fc-table > thead :is(
  .fc-main-center-grid,.fc-left-grid,.pbs-zone-left-grid,.fc-right-actions,
  .unit-input-wrapper,.fc-length-editor,.fc-filter-control,
  .room-table-filter-checkbox-label
) {
  height: var(--pbs-table-control-height) !important;
  min-height: var(--pbs-table-control-height) !important;
  max-height: var(--pbs-table-control-height) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  align-items: center !important;
  line-height: normal !important;
  box-sizing: border-box !important;
}

body:has(#fc-table) #fc-table > thead :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
  display: block !important;
  height: var(--pbs-table-control-height) !important;
  min-height: var(--pbs-table-control-height) !important;
  max-height: var(--pbs-table-control-height) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  box-sizing: border-box !important;
}

body:has(#fc-table) #fc-table > thead :is(span,label,em,sub) {
  line-height: normal !important;
}

/* Fire Compartments row separators: lighter, matching the softer separators
   used in Fire Hazard / Boundary Segments. Scope only table-cell separators,
   never icon-button borders. */
body:has(#fc-table) #fc-table > :is(thead,tbody,tfoot) > tr > :is(th,td),
body:has(#fc-table) .room-table.room-table-zoned > :is(thead,tbody,tfoot) > tr > :is(th,td) {
  border-color: #e2e8f0 !important;
}
