/* Central required numeric value warning contract.
   Apply .pbs-required-value-warning to the editor shell only while its value/state is invalid. */
:root{
  --pbs-required-warning-text:#dc2626;
  --pbs-required-warning-border:#dc2626;
  --pbs-required-warning-bg:#fee2e2;
}
.pbs-required-value-warning{
  background:var(--pbs-required-warning-bg)!important;
  border-color:var(--pbs-required-warning-border)!important;
}
.pbs-required-value-warning input,
.pbs-required-value-warning .unit,
.pbs-required-value-warning .unit-label,
.pbs-required-value-warning .risk-manual-unit{
  color:var(--pbs-required-warning-text)!important;
  -webkit-text-fill-color:var(--pbs-required-warning-text)!important;
  caret-color:var(--pbs-required-warning-text)!important;
}
/* Shells whose normal border lives on the child input. */
.pbs-required-value-warning > input,
.pbs-required-value-warning input.risk-manual-input{
  border-color:var(--pbs-required-warning-border)!important;
}
/* Fire Risk P shell must not be reset to white by its late local contract. */
.risk-manual-input-shell.pbs-required-value-warning{
  background:var(--pbs-required-warning-bg)!important;
  border-color:var(--pbs-required-warning-border)!important;
}
.risk-manual-input-shell.pbs-required-value-warning .risk-manual-input,
.risk-manual-input-shell.pbs-required-value-warning .risk-manual-unit{
  color:var(--pbs-required-warning-text)!important;
  -webkit-text-fill-color:var(--pbs-required-warning-text)!important;
}
.pbs-required-value-warning input{
  background:var(--pbs-required-warning-bg)!important;
}
.risk-manual-input-shell.pbs-required-value-warning input{
  background:transparent!important;
}

/* Direct-input form of the same contract (for editors without a wrapper shell). */
input.pbs-required-value-warning,
#fc-table input.pbs-required-value-warning,
#risk-table input.pbs-required-value-warning{
  background:var(--pbs-required-warning-bg)!important;
  border:1px solid var(--pbs-required-warning-border)!important;
  color:var(--pbs-required-warning-text)!important;
  -webkit-text-fill-color:var(--pbs-required-warning-text)!important;
  caret-color:var(--pbs-required-warning-text)!important;
}
/* Fire Compartments K.1 shells must use the shared warning contract instead of local dark-red variants. */
#fc-table .fc-manual-input-wrapper.pbs-required-value-warning,
#fc-table .fc-manual-input-wrapper.pbs-required-value-warning .fc-manual-input{
  background:var(--pbs-required-warning-bg)!important;
  border-color:var(--pbs-required-warning-border)!important;
}
#fc-table .fc-manual-input-wrapper.pbs-required-value-warning .fc-manual-input,
#fc-table .fc-manual-input-wrapper.pbs-required-value-warning .unit-label{
  color:var(--pbs-required-warning-text)!important;
  -webkit-text-fill-color:var(--pbs-required-warning-text)!important;
  caret-color:var(--pbs-required-warning-text)!important;
}

/* Authoritative module bridges: older local rules may define normal input and unit colours
   with greater selector specificity. The warning class remains the sole state switch. */
html body #facade-table .facade-row .metric-input-shell.pbs-required-value-warning,
html body #facade-table .facade-segment-subrow .metric-input-shell.pbs-required-value-warning{
  background:var(--pbs-required-warning-bg)!important;
  border-color:var(--pbs-required-warning-border)!important;
}
html body #facade-table .facade-row .metric-input-shell.pbs-required-value-warning > input.num-input,
html body #facade-table .facade-segment-subrow .metric-input-shell.pbs-required-value-warning > input.num-input{
  background:var(--pbs-required-warning-bg)!important;
  border:1px solid var(--pbs-required-warning-border)!important;
  color:var(--pbs-required-warning-text)!important;
  -webkit-text-fill-color:var(--pbs-required-warning-text)!important;
  caret-color:var(--pbs-required-warning-text)!important;
}
html body #facade-table .facade-row .metric-input-shell.pbs-required-value-warning > .unit,
html body #facade-table .facade-segment-subrow .metric-input-shell.pbs-required-value-warning > .unit{
  color:var(--pbs-required-warning-text)!important;
  -webkit-text-fill-color:var(--pbs-required-warning-text)!important;
}
html body #main-table.fire-hazard-zoned-table input.fire-level-input.pbs-required-value-warning{
  background:var(--pbs-required-warning-bg)!important;
  border:1px solid var(--pbs-required-warning-border)!important;
  color:var(--pbs-required-warning-text)!important;
  -webkit-text-fill-color:var(--pbs-required-warning-text)!important;
  caret-color:var(--pbs-required-warning-text)!important;
}

/* v1.4.089 — Fire Hazard concentrated-load editors use the same central warning
   contract as every other required numeric field. These high-specificity bridges
   intentionally outrank old local white-input rules in the legacy module CSS. */
html body #main-table.fire-hazard-zoned-table .concentrated-unit-shell.pbs-required-value-warning,
html body #main-table.fire-hazard-zoned-table .concentrated-unit-shell.pbs-required-value-warning > input.concentrated-input,
html body #main-table.fire-hazard-zoned-table input.concentrated-input.pbs-required-value-warning{
  background:var(--pbs-required-warning-bg)!important;
  border-color:var(--pbs-required-warning-border)!important;
  color:var(--pbs-required-warning-text)!important;
  -webkit-text-fill-color:var(--pbs-required-warning-text)!important;
  caret-color:var(--pbs-required-warning-text)!important;
}
html body #main-table.fire-hazard-zoned-table .concentrated-unit-shell.pbs-required-value-warning .unit-label{
  color:var(--pbs-required-warning-text)!important;
  -webkit-text-fill-color:var(--pbs-required-warning-text)!important;
}
