.study-page.lv-duty-page { --study-article-hero-image: url("images/low-voltage-duty-hero.png"); }
.lv-duty-page .duty-intro p + p { margin-top: 12px; }
.lv-duty-page .selector-label { margin: 0 0 6px; color: var(--navy); font-size: .9rem; font-weight: 700; }
.lv-duty-page .equipment-panel .calc-field { margin: 18px 0; }
.lv-duty-page .equipment-panel .calc-field small { margin: 0; }
.lv-duty-page .fault-type-selector input:disabled + span { cursor: default; }
.lv-duty-page .fault-type-selector input:disabled:not(:checked) + span { opacity: .55; }
/* The three duty bases share one row; longer labels wrap within their button. */
.lv-duty-page .fault-type-selector[aria-labelledby="duty-basis-label"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lv-duty-page .fault-type-selector[aria-labelledby="duty-basis-label"] span { padding: 8px 6px; font-size: .85rem; line-height: 1.3; }
#power-form input[type="number"]:read-only:not(:disabled) { background: #fff8e9; border-color: #ad7e25; }
.lv-duty-page .power-input-choice:has(input:disabled) { cursor: default; }
/* Each field spans a shared label/input row and a helper-text row, so side-by-side inputs stay aligned
   whether or not a neighbour has helper text. The 20px field spacing moves into padding. */
.lv-duty-page #power-inputs { row-gap: 0; }
.lv-duty-page #power-inputs > .calc-field { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 0; padding-bottom: 20px; }
.lv-duty-page #power-inputs > .calc-field > .value-unit,
.lv-duty-page #power-inputs > .calc-field > .value-only { height: auto; align-self: end; }
.lv-duty-page #txr-note { margin-top: 4px; }

.lv-duty-page .duty-verdict { border-top: 2px solid var(--gold); border-bottom: 0; margin-top: 8px; }
.lv-duty-page .duty-verdict output { font-weight: 700; }
.lv-duty-page .duty-verdict output.is-pass, .lv-duty-page .duty-checks .is-pass::before { color: #7fdc9a; }
.lv-duty-page .duty-verdict output.is-fail, .lv-duty-page .duty-checks .is-fail::before { color: #ff9b8f; }
.lv-duty-page .duty-checks { list-style: none; margin: 8px 0 0; padding: 0; color: #e6eef5; font-size: .8rem; line-height: 1.5; }
.lv-duty-page .duty-checks li { position: relative; padding-left: 20px; }
.lv-duty-page .duty-checks li::before { position: absolute; left: 0; font-weight: 700; }
.lv-duty-page .duty-checks .is-pass::before { content: "✓"; }
.lv-duty-page .duty-checks .is-fail::before { content: "✗"; }
.lv-duty-page .duty-checks-caption { display: block; color: #8fa3b5; font-size: .72rem; }
.lv-duty-page .duty-checks-detail { margin: 2px 0 0 4px; padding-left: 12px; border-left: 1px solid #4a6178; }
.lv-duty-page .duty-verdict .result-note { color: #8fa3b5; }

.lv-duty-page .technical-note { color: #42576c; }
.lv-duty-page .test-xr-table-wrap { overflow-x: auto; margin: 4px 0 10px; border: 1px solid var(--gray-300); border-radius: 8px; }
.lv-duty-page .test-xr-table-wrap:focus-visible { outline: 3px solid var(--blue-light); outline-offset: 3px; }
.lv-duty-page .test-xr-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: .88rem; font-variant-numeric: tabular-nums; color: var(--navy); }
.lv-duty-page .test-xr-table th, .lv-duty-page .test-xr-table td { padding: 9px 12px; border-bottom: 1px solid var(--gray-300); text-align: center; vertical-align: middle; }
.lv-duty-page .test-xr-table thead th { background: var(--navy); color: white; font-weight: 700; white-space: nowrap; }
.lv-duty-page .test-xr-table thead th:nth-child(-n + 2), .lv-duty-page .test-xr-table tbody th { text-align: left; }
.lv-duty-page .test-xr-table tbody th { font-weight: 700; }
.lv-duty-page .test-xr-table td { white-space: nowrap; }
.lv-duty-page .test-xr-table tbody th + td { text-align: left; }
.lv-duty-page .test-xr-table tbody { background: white; }
.lv-duty-page .test-xr-table [rowspan] { background: var(--gray-50); border-right: 1px solid var(--gray-300); }
.lv-duty-page .test-xr-table td[rowspan]:last-child { border-right: 0; border-left: 1px solid var(--gray-300); }
.lv-duty-page .test-xr-table tbody tr:last-child > * { border-bottom: 0; }
.lv-duty-page .test-xr-footnote { margin-top: 0; }
.lv-duty-page .fn-ref {
  display: inline-block;
  margin-left: 3px;
  padding: 0 2px;
  color: var(--blue);
  font-size: .72em;
  font-weight: 700;
  line-height: 1;
  vertical-align: super;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.lv-duty-page .fn-ref:hover { color: var(--navy); }
.lv-duty-page .fn-ref:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 2px; }
.lv-duty-page .basis-footnotes-heading { margin: 16px 0 6px; color: var(--navy); font-size: .95rem; }
.lv-duty-page .basis-footnotes { margin: 0; padding-left: 20px; color: #526477; font-size: .8rem; line-height: 1.5; }
.lv-duty-page .basis-footnotes li { padding: 2px 4px; border-radius: 4px; scroll-margin-top: calc(var(--site-header-height, 100px) + 24px); }
.lv-duty-page .basis-footnotes li + li { margin-top: 4px; }
.lv-duty-page .basis-footnotes li:target { background: #fff8e9; color: var(--navy); }
.lv-duty-page .basis-footnotes-heading { scroll-margin-top: calc(var(--site-header-height, 100px) + 24px); }
.lv-duty-page #basis-note a { color: var(--blue); text-decoration: underline; text-underline-offset: 2px; }
/* Appended to body, outside .lv-duty-page. */
.fn-tooltip {
  position: fixed;
  z-index: 1000;
  max-width: min(320px, calc(100vw - 16px));
  padding: 10px 12px;
  border-top: 3px solid var(--gold);
  border-radius: 6px;
  background: var(--navy);
  color: white;
  font-size: .8rem;
  line-height: 1.45;
  box-shadow: 0 8px 24px rgba(7, 21, 33, .25);
}
.fn-tooltip[hidden] { display: none; }
.lv-duty-page .key-definitions > div { grid-template-columns: 3.4rem minmax(0, 1fr); }
