/* Boiler Feed Pump Calculation — tool styles.
   Every value from a design token (§4.2). Scoped to .ftb-tool-bfp.
   Tone colours reuse the success / warning / error pairs core.css already
   contrast-checks in both themes. */

/* ---------------------------------------------------------------- notice */

/* Above the inputs on purpose: the "preliminary" framing has to be read
   before a number is typed, not found under the results. */
.ftb-tool-bfp .ftb-bfp-notice{margin:0 0 var(--ftb-space-5);
  padding:var(--ftb-space-4) var(--ftb-space-5);background:var(--ftb-surface-2);
  border:1px solid var(--ftb-border);border-left:4px solid var(--ftb-warning);
  border-radius:var(--ftb-radius);font-size:var(--ftb-text-sm);
  line-height:var(--ftb-lh-snug);color:var(--ftb-text)}
.ftb-tool-bfp .ftb-bfp-notice strong{display:block;margin-bottom:var(--ftb-space-1)}

/* ------------------------------------------------------- tabs and units */

.ftb-tool-bfp .ftb-bfp-bar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:var(--ftb-space-3) var(--ftb-space-5);margin-bottom:var(--ftb-space-5);
  border-bottom:1px solid var(--ftb-border)}
.ftb-tool-bfp .ftb-bfp-tabs{display:flex;gap:var(--ftb-space-2)}
.ftb-tool-bfp .ftb-bfp-tab{padding:var(--ftb-space-3) var(--ftb-space-5);min-height:var(--ftb-tap);
  font:inherit;font-size:var(--ftb-text-sm);font-weight:var(--ftb-fw-semi);color:var(--ftb-text-muted);
  background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-1px;cursor:pointer}
.ftb-tool-bfp .ftb-bfp-tab:hover{color:var(--ftb-text)}
.ftb-tool-bfp .ftb-bfp-tab[aria-selected=true]{color:var(--ftb-primary);border-bottom-color:var(--ftb-primary)}
.ftb-tool-bfp .ftb-bfp-tab:focus-visible{outline:2px solid var(--ftb-primary);outline-offset:-2px;
  border-radius:var(--ftb-radius-sm)}
.ftb-tool-bfp .ftb-bfp-units{display:flex;align-items:center;gap:var(--ftb-space-2);
  padding-bottom:var(--ftb-space-2)}
.ftb-tool-bfp .ftb-bfp-units label{margin:0;white-space:nowrap}
.ftb-tool-bfp .ftb-bfp-units select{width:auto;min-width:12rem}

/* ---------------------------------------------------------------- inputs */

.ftb-tool-bfp .ftb-bfp-lead{margin:0 0 var(--ftb-space-4)}
.ftb-tool-bfp .ftb-bfp-set{margin:0 0 var(--ftb-space-5);padding:var(--ftb-space-4) var(--ftb-space-5) 0;
  border:1px solid var(--ftb-border);border-radius:var(--ftb-radius);background:var(--ftb-surface)}
.ftb-tool-bfp .ftb-bfp-set legend{padding:0 var(--ftb-space-2);font-size:var(--ftb-text-sm);
  font-weight:var(--ftb-fw-bold);color:var(--ftb-text)}
.ftb-tool-bfp .ftb-bfp-grid{display:grid;gap:0 var(--ftb-space-4);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}
.ftb-tool-bfp .ftb-bfp-grid > *{min-width:0}
.ftb-tool-bfp .ftb-bfp-grid .ftb-field{margin-bottom:var(--ftb-space-4)}
.ftb-tool-bfp .ftb-bfp-sub{padding-top:var(--ftb-space-4);border-top:1px dashed var(--ftb-border)}
.ftb-tool-bfp .ftb-bfp-u{font-weight:var(--ftb-fw-normal);color:var(--ftb-text-muted);white-space:nowrap}
.ftb-tool-bfp .ftb-bfp-pair{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--ftb-space-2)}
.ftb-tool-bfp .ftb-bfp-pair select{width:auto;min-width:6.5rem}
.ftb-tool-bfp input[aria-invalid=true],
.ftb-tool-bfp select[aria-invalid=true]{border-color:var(--ftb-error)}
.ftb-tool-bfp input:disabled{opacity:.6;cursor:not-allowed}
.ftb-tool-bfp .ftb-bfp-check{justify-content:flex-end}
.ftb-tool-bfp .ftb-bfp-check label{display:flex;align-items:center;gap:var(--ftb-space-2);
  min-height:var(--ftb-control-h)}
.ftb-tool-bfp .ftb-bfp-check input[type=checkbox]{width:24px;height:24px;flex:0 0 auto;
  accent-color:var(--ftb-primary)}
.ftb-tool-bfp .ftb-bfp-check .ftb-tool-stat{margin-top:0}

/* --------------------------------------------------------------- results */

/* Height reserved so the first calculation never shifts the page (§10). */
.ftb-tool-bfp .ftb-bfp-results{min-height:calc(var(--ftb-space-24) * 4);margin-top:var(--ftb-space-2)}
.ftb-tool-bfp .ftb-bfp-h{margin:0 0 var(--ftb-space-4);font-size:var(--ftb-text-lg);
  font-weight:var(--ftb-fw-semi);letter-spacing:var(--ftb-ls-tight)}

.ftb-tool-bfp .ftb-bfp-cards{display:grid;gap:var(--ftb-space-3);margin-bottom:var(--ftb-space-5);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr))}
.ftb-tool-bfp .ftb-bfp-card{display:flex;flex-direction:column;gap:var(--ftb-space-1);min-width:0;
  padding:var(--ftb-space-4);background:var(--ftb-surface);border:1px solid var(--ftb-border);
  border-radius:var(--ftb-radius)}
.ftb-tool-bfp .ftb-bfp-card[data-tone=good]{background:var(--ftb-success-soft);border-color:var(--ftb-success)}
.ftb-tool-bfp .ftb-bfp-card[data-tone=warn]{background:var(--ftb-warning-soft);border-color:var(--ftb-warning)}
.ftb-tool-bfp .ftb-bfp-card[data-tone=bad]{background:var(--ftb-error-soft);border-color:var(--ftb-error)}
.ftb-tool-bfp .ftb-bfp-cl{font-size:var(--ftb-text-sm);color:var(--ftb-text-muted);line-height:var(--ftb-lh-snug)}
.ftb-tool-bfp .ftb-bfp-cv{font-size:var(--ftb-text-xl);font-weight:var(--ftb-fw-semi);
  letter-spacing:var(--ftb-ls-tight);font-variant-numeric:tabular-nums;color:var(--ftb-text);overflow-wrap:anywhere}
.ftb-tool-bfp .ftb-bfp-cs{font-size:var(--ftb-text-sm);color:var(--ftb-text-muted);
  font-variant-numeric:tabular-nums;line-height:var(--ftb-lh-snug)}

.ftb-tool-bfp .ftb-bfp-alerts,
.ftb-tool-bfp .ftb-bfp-notes{margin:0 0 var(--ftb-space-5);
  padding:var(--ftb-space-4) var(--ftb-space-5) var(--ftb-space-4) var(--ftb-space-8);
  border-radius:var(--ftb-radius);font-size:var(--ftb-text-sm);line-height:var(--ftb-lh-snug);color:var(--ftb-text)}
.ftb-tool-bfp .ftb-bfp-alerts{background:var(--ftb-warning-soft);border-left:4px solid var(--ftb-warning)}
.ftb-tool-bfp .ftb-bfp-notes{background:var(--ftb-surface-2)}
.ftb-tool-bfp .ftb-bfp-alerts li + li,
.ftb-tool-bfp .ftb-bfp-notes li + li{margin-top:var(--ftb-space-2)}

.ftb-tool-bfp .ftb-bfp-tables > .ftb-table-scroll{margin-bottom:var(--ftb-space-5)}
.ftb-tool-bfp .ftb-bfp-table{width:100%;border-collapse:collapse;font-size:var(--ftb-text-sm);
  line-height:var(--ftb-lh-snug);font-variant-numeric:tabular-nums}
.ftb-tool-bfp .ftb-bfp-cap{caption-side:top;text-align:left;padding:0 0 var(--ftb-space-2);
  font-size:var(--ftb-text-base);font-weight:var(--ftb-fw-semi);color:var(--ftb-text)}
.ftb-tool-bfp .ftb-bfp-table th,
.ftb-tool-bfp .ftb-bfp-table td{padding:var(--ftb-space-2) var(--ftb-space-3);text-align:left;
  border-bottom:1px solid var(--ftb-border);vertical-align:top}
.ftb-tool-bfp .ftb-bfp-table thead th{font-weight:var(--ftb-fw-semi);color:var(--ftb-text-muted);white-space:nowrap}
.ftb-tool-bfp .ftb-bfp-table tbody th{font-weight:var(--ftb-fw-normal)}
.ftb-tool-bfp .ftb-bfp-table td{white-space:nowrap}
.ftb-tool-bfp .ftb-bfp-table tr.is-total th,
.ftb-tool-bfp .ftb-bfp-table tr.is-total td{font-weight:var(--ftb-fw-semi);background:var(--ftb-surface-2)}

.ftb-tool-bfp .ftb-bfp-more{margin-bottom:var(--ftb-space-4);border:1px solid var(--ftb-border);
  border-radius:var(--ftb-radius);background:var(--ftb-surface)}
.ftb-tool-bfp .ftb-bfp-more summary{display:flex;align-items:center;min-height:var(--ftb-tap);
  padding:var(--ftb-space-3) var(--ftb-space-4);cursor:pointer;font-size:var(--ftb-text-sm);
  font-weight:var(--ftb-fw-semi)}
.ftb-tool-bfp .ftb-bfp-more summary:focus-visible{outline:2px solid var(--ftb-primary);outline-offset:-2px}
.ftb-tool-bfp .ftb-bfp-steps,
.ftb-tool-bfp .ftb-bfp-assume{margin:0;padding:0 var(--ftb-space-5) var(--ftb-space-4) var(--ftb-space-8);
  font-size:var(--ftb-text-sm);line-height:var(--ftb-lh-snug)}
.ftb-tool-bfp .ftb-bfp-steps li + li,
.ftb-tool-bfp .ftb-bfp-assume li + li{margin-top:var(--ftb-space-3)}
.ftb-tool-bfp .ftb-bfp-st,
.ftb-tool-bfp .ftb-bfp-sf,
.ftb-tool-bfp .ftb-bfp-sw,
.ftb-tool-bfp .ftb-bfp-sr{display:block}
.ftb-tool-bfp .ftb-bfp-sf{margin:var(--ftb-space-1) 0;font-family:var(--ftb-mono);
  font-size:var(--ftb-text-sm);color:var(--ftb-text);overflow-wrap:anywhere;background:none;padding:0}
.ftb-tool-bfp .ftb-bfp-sw{color:var(--ftb-text-muted);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.ftb-tool-bfp .ftb-bfp-sr{font-weight:var(--ftb-fw-semi);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}

.ftb-tool-bfp .ftb-tool-disclaimer{margin:var(--ftb-space-6) 0 0;padding:var(--ftb-space-5);
  background:var(--ftb-surface-2);border-radius:var(--ftb-radius);font-size:var(--ftb-text-sm);
  line-height:var(--ftb-lh-snug);color:var(--ftb-text-muted)}

/* ------------------------------------------------------------- narrow UI */

@media (max-width:479px){
  .ftb-tool-bfp .ftb-bfp-bar{align-items:stretch}
  .ftb-tool-bfp .ftb-bfp-tabs{width:100%}
  .ftb-tool-bfp .ftb-bfp-tab{flex:1 1 auto;padding:var(--ftb-space-3) var(--ftb-space-2);text-align:center}
  .ftb-tool-bfp .ftb-bfp-units{width:100%}
  .ftb-tool-bfp .ftb-bfp-units select{flex:1 1 auto;min-width:0}
  .ftb-tool-bfp .ftb-bfp-set{padding:var(--ftb-space-3) var(--ftb-space-3) 0}
  .ftb-tool-bfp .ftb-bfp-cards{grid-template-columns:1fr 1fr}
  .ftb-tool-bfp .ftb-bfp-card{padding:var(--ftb-space-3)}
  .ftb-tool-bfp .ftb-bfp-cv{font-size:var(--ftb-text-lg)}
  .ftb-tool-bfp .ftb-tool-actions .ftb-btn{flex:1 1 auto}
  .ftb-tool-bfp .ftb-bfp-table td{white-space:normal}
}
