/* Fence Post Tools, scoped components, version 0.1.0
   Every rule is scoped under .fpt-tool, so no style leaks onto the
   rest of the page or onto other plugins. Tokens use a pine and cedar
   direction, approved provisionally in the v2 review, with a plain
   system font stack in this version. Webfonts are not loaded here.
   Focus states are always visible, and no verdict relies on colour
   alone. Print styles keep the result on the page. */

.fpt-tool {
  --fpt-pine: #2e4a34;
  --fpt-pine-dark: #223726;
  --fpt-cedar: #9a6a45;
  --fpt-cream: #f7f3ea;
  --fpt-paper: #fffdf8;
  --fpt-ink: #22271f;
  --fpt-muted: #5c655c;
  --fpt-line: #d8d2c2;
  --fpt-focus: #1d5fa8;
  --fpt-error-bg: #fdf0ec;
  --fpt-error-ink: #7a2e1d;
  --fpt-radius: 8px;
  --fpt-space: 1rem;
  box-sizing: border-box;
  color: var(--fpt-ink);
  font-size: 1rem;
  line-height: 1.55;
  margin: 0 0 2rem 0;
  max-width: 46rem;
}

.fpt-tool *,
.fpt-tool *::before,
.fpt-tool *::after {
  box-sizing: border-box;
}

.fpt-tool h2 {
  color: var(--fpt-pine);
  font-size: 1.5rem;
  line-height: 1.25;
  margin: 0 0 var(--fpt-space) 0;
}

.fpt-tool form {
  background: var(--fpt-paper);
  border: 1px solid var(--fpt-line);
  border-radius: var(--fpt-radius);
  padding: var(--fpt-space);
}

.fpt-tool .fpt-field {
  margin: 0 0 var(--fpt-space) 0;
}

.fpt-tool label {
  display: block;
  font-weight: 600;
  margin: 0 0 0.25rem 0;
}

.fpt-tool .fpt-hint {
  color: var(--fpt-muted);
  font-size: 0.9rem;
  margin: 0.25rem 0 0 0;
}

.fpt-tool input,
.fpt-tool select {
  border: 1px solid var(--fpt-line);
  border-radius: 4px;
  font: inherit;
  max-width: 100%;
  padding: 0.5rem 0.6rem;
  width: 100%;
}

.fpt-tool input:focus,
.fpt-tool select:focus,
.fpt-tool button:focus {
  outline: 3px solid var(--fpt-focus);
  outline-offset: 2px;
}

.fpt-tool input[aria-invalid="true"] {
  border-color: var(--fpt-error-ink);
}

.fpt-tool .fpt-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: var(--fpt-space) 0 0 0;
}

.fpt-tool button {
  background: var(--fpt-pine);
  border: 1px solid var(--fpt-pine-dark);
  border-radius: 4px;
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 600;
  padding: 0.6rem 1.1rem;
}

.fpt-tool button[type="button"] {
  background: transparent;
  color: var(--fpt-pine);
}

.fpt-tool .fpt-result {
  background: var(--fpt-cream);
  border: 1px solid var(--fpt-line);
  border-left: 4px solid var(--fpt-pine);
  border-radius: var(--fpt-radius);
  margin: var(--fpt-space) 0 0 0;
  padding: var(--fpt-space);
}

.fpt-tool .fpt-result p {
  margin: 0 0 0.5rem 0;
}

.fpt-tool .fpt-visualizer {
  margin: var(--fpt-space) 0 0 0;
}

.fpt-tool .fpt-viz-placeholder {
  color: var(--fpt-muted);
  font-size: 0.9rem;
  margin: 0;
}

.fpt-tool .fpt-errors {
  background: var(--fpt-error-bg);
  border: 1px solid var(--fpt-error-ink);
  border-radius: var(--fpt-radius);
  color: var(--fpt-error-ink);
  margin: var(--fpt-space) 0 0 0;
  padding: var(--fpt-space);
}

.fpt-tool .fpt-method,
.fpt-tool .fpt-note {
  color: var(--fpt-muted);
  font-size: 0.9rem;
}

.fpt-tool .fpt-method {
  border-top: 1px solid var(--fpt-line);
  margin-top: var(--fpt-space);
  padding-top: var(--fpt-space);
}

@media (max-width: 40rem) {
  .fpt-tool form,
  .fpt-tool .fpt-result,
  .fpt-tool .fpt-errors {
    padding: 0.75rem;
  }
}

@media print {
  .fpt-tool form {
    display: none;
  }
  .fpt-tool .fpt-result {
    border: 1px solid #000;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fpt-tool * {
    transition: none;
  }
}


/* MODULE 2 — Compact depth workspace, 0.2.3-m2.
   The new UI changes only the depth tool; the calculation engines and
   the other nine calculators retain their existing layout and behavior. */
.fpt-depth-tool {
  --fpt-pine: #244536;
  --fpt-pine-dark: #163226;
  --fpt-cedar: #ad7141;
  --fpt-paper: #ffffff;
  --fpt-cream: #f2f5f1;
  --fpt-line: #cad4cf;
  --fpt-muted: #52655d;
  font-family: Inter, system-ui, sans-serif;
  max-width: 100%;
  margin-top: 10px;
  color: #20322d;
}
.fpt-depth-tool [hidden] { display: none !important; }
.fpt-depth-heading {
  display:flex; gap: 17px; align-items:flex-start;
  position:relative; padding: 9px 0 16px; margin: 0 0 13px;
  border-bottom: 1px solid #cdd8d2;
}
.fpt-depth-heading::after {
  position:absolute; content:''; bottom:-2px; left:0;
  width: 86px; height: 3px; background:linear-gradient(90deg,#a36132,#dfa778);
  border-radius: 3px;
}
.fpt-depth-heading__marker {
  flex:0 0 51px; width:51px; height:57px; display:flex;
  align-items:center; justify-content:center; flex-direction:column;
  background:#18392b; border-radius:9px; color:#fce6c7;
  font-family:'IBM Plex Mono', monospace; font-size:22px; font-weight:700;
  box-shadow:4px 4px 0 #bd8958;
}
.fpt-depth-heading__line { width:27px; height:2px; background:#c9905b; margin-top:3px; }
.fpt-depth-heading__body { flex:1; min-width:0; }
.fpt-depth-heading__eyebrow { display:block; font-size:10px; letter-spacing:.16em; font-weight:800; color:#8b5d36; margin-bottom:5px; }
.fpt-depth-tool .fpt-depth-heading h2 {
  font-family:Sora,Inter,sans-serif; color:#18392d;
  font-size:clamp(22px,3vw,32px); letter-spacing:-.055em;
  font-weight:750; line-height:1.13; margin:0 0 7px;
}
.fpt-depth-heading h2 span { color:#a76739; position:relative; white-space:nowrap; }
.fpt-depth-heading h2 span::after {
  content:'';position:absolute;left:0;right:0;bottom:-5px;height:3px;
  border-radius:3px;background:linear-gradient(90deg,#d49b65,transparent);
}
.fpt-depth-heading p {margin:0;font-size:13px;line-height:1.5;color:#586960;}
.fpt-depth-heading__count {flex:0 0 auto; font-size:10px; padding:7px 9px; border:1px solid #c5d1cb; border-radius:5px; font-weight:700; letter-spacing:.035em; color:#4a6157; background:#f2f6f2;}
.fpt-depth-safety {margin:0 0 17px!important; padding:10px 14px; background:#f1f6f2; border:1px solid #cee0d5; border-left:3px solid #567d66; border-radius:7px;color:#40574a;font-size:12px;line-height:1.52;}
.fpt-depth-workspace {display:grid; grid-template-columns:minmax(0,1.23fr) minmax(285px,.77fr);gap:16px;align-items:start;}
.fpt-depth-form-card,.fpt-depth-output-card {border:1px solid #cfd9d3; border-radius:12px; min-width:0; overflow:hidden; background:#fff; box-shadow:0 6px 24px rgba(29,55,43,.06);}
.fpt-depth-card-title {display:flex;align-items:center;gap:11px;padding:15px 17px 12px; background:linear-gradient(120deg,#f6f8f5 0%,#f0f3ef 100%);border-bottom:1px solid #d9e1dc;}
.fpt-depth-card-title__icon {font-size:24px;display:grid;place-items:center;line-height:1;background:#dce9df;color:#315944;width:40px;height:40px;flex:0 0 40px;border-radius:9px;}
.fpt-depth-tool .fpt-depth-card-title h3 {font-family:Sora,Inter,sans-serif;font-size:15px;line-height:1.25;letter-spacing:-.035em;margin:0 0 3px;color:#18362a;font-weight:700;}
.fpt-depth-card-title p {font-size:11px;line-height:1.35;margin:0;color:#61726a;}
.fpt-depth-tool #fpt-depth-form {padding:16px; border:0; background:#fff; border-radius:0;}
.fpt-depth-input-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:13px; row-gap:11px;}
.fpt-depth-tool .fpt-field {margin:0;min-width:0;}
.fpt-depth-tool .fpt-field label {font-size:12px;line-height:1.35; min-height:16px;margin:0 0 6px;color:#213c30;font-weight:720;}
.fpt-depth-tool .fpt-field input:not([type=checkbox]),.fpt-depth-tool .fpt-field select {
  width:100%; min-width:0; height:41px;
  border:1px solid #bfcfc4;border-radius:7px;
  padding:8px 11px; font-size:13px;line-height:1.4;color:#19362b;background:#fcfefc;
  box-shadow:inset 0 1px 2px rgba(40,60,50,.03);
}
.fpt-depth-tool .fpt-field input:hover,.fpt-depth-tool .fpt-field select:hover {border-color:#819b8b;}
.fpt-depth-tool .fpt-field input:focus-visible,.fpt-depth-tool .fpt-field select:focus-visible,.fpt-depth-tool summary:focus-visible,.fpt-depth-tool button:focus-visible {outline:3px solid #2563a6;outline-offset:2px;}
.fpt-depth-tool .fpt-hint {font-size:10.5px;line-height:1.42;color:#6b786f;margin:4px 0 0;}
.fpt-depth-comparison-field {margin-top:11px;}
.fpt-depth-advanced {margin-top:15px;border:1px solid #d8e1d9;border-radius:9px; background:#fafbf9;overflow:hidden;}
.fpt-depth-advanced summary {display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;padding:10px 13px;min-height:54px;color:#315140;}
.fpt-depth-advanced summary::-webkit-details-marker {display:none;}
.fpt-depth-advanced__icon {display:grid;place-items:center;font-size:18px;background:#e5ece5;border-radius:7px;width:31px;height:31px;flex:0 0 31px;}
.fpt-depth-advanced__label {display:flex;flex-direction:column;gap:2px;flex:1;}
.fpt-depth-advanced__label strong {font-size:12px;}
.fpt-depth-advanced__label small {font-size:10px;color:#6c7c73;}
.fpt-depth-chevron {font-size:17px;line-height:1;transition:transform .15s;}
.fpt-depth-advanced[open] .fpt-depth-chevron {transform:rotate(180deg);}
.fpt-depth-advanced__fields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;border-top:1px solid #dae3dc;padding:14px;}
.fpt-depth-tool .fpt-advanced .fpt-field {margin:0;}
.fpt-depth-tool #fpt-depth-gate {width:18px;height:18px;accent-color:#345c42;vertical-align:middle;}
.fpt-depth-actions {margin:15px 0 0!important;display:grid!important;grid-template-columns:minmax(0,1fr) 93px;gap:9px;}
.fpt-depth-actions .fpt-depth-submit {background:#204735;color:#fff;border:1px solid #173528;border-radius:8px;font-size:13px;font-weight:760;min-height:45px;padding:11px 14px;display:flex;align-items:center;justify-content:center;gap:12px;box-shadow:0 3px 0 rgba(19,48,32,.22);}
.fpt-depth-actions .fpt-depth-submit:hover {background:#315e43;}
.fpt-depth-actions .fpt-depth-submit span {font-size:19px;line-height:1;color:#e8bb80;}
.fpt-depth-actions .fpt-depth-reset {border:1px solid #c4cfc7;background:#f4f7f4;color:#315240;border-radius:8px;font-size:12px;padding:10px;min-height:45px;}
.fpt-depth-tool #fpt-depth-errors {margin:0 16px 16px; font-size:12px;}
.fpt-depth-output-card {position:sticky;top:14px;}
.fpt-depth-card-title--output {background:linear-gradient(130deg,#1b382b,#315340);border-bottom:3px solid #b47d49;}
.fpt-depth-card-title--output .fpt-depth-card-title__icon {background:rgba(255,255,255,.12);color:#e8bd80;}
.fpt-depth-card-title--output h3 {color:#fff!important;}
.fpt-depth-card-title--output p {color:#d4e0d7;}
.fpt-depth-tool .fpt-visualizer {margin:12px;min-height:180px;overflow:hidden;border:1px solid #dce3de;border-radius:9px;background:repeating-linear-gradient(0deg,rgba(118,141,143,.07),rgba(118,141,143,.07) 1px,transparent 1px,transparent 19px),repeating-linear-gradient(90deg,rgba(118,141,143,.07),rgba(118,141,143,.07) 1px,transparent 1px,transparent 19px),linear-gradient(#f7faf7,#f3f6f4);}
.fpt-depth-tool .fpt-viz-placeholder {min-height:174px;display:flex;align-items:center;justify-content:center;padding:26px;max-width:230px;text-align:center;margin:0 auto;color:#667b71;font-size:12px;line-height:1.6;}
.fpt-depth-tool .fpt-visualizer canvas,.fpt-depth-tool .fpt-visualizer svg {display:block;max-width:100%;height:auto;}
.fpt-depth-tool .fpt-result {margin:12px 12px 0;padding:13px;border:1px solid #cadbcf;border-left:4px solid #a87645;background:#f8fbf7;border-radius:8px;font-size:12px;line-height:1.5;}
.fpt-depth-tool .fpt-result p {margin:0 0 8px;}
.fpt-depth-tool .fpt-result strong {color:#274535;}
.fpt-depth-tool .fpt-result-lead {font-weight:650;color:#31503e;}
.fpt-depth-tool .fpt-top-metrics {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:11px 0;}
.fpt-depth-tool .fpt-top-metrics p {background:#fff;border:1px solid #d5e0d8;border-radius:8px;padding:10px 11px;font-family:'IBM Plex Mono',monospace;font-size:12px;margin:0;min-width:0;overflow-wrap:anywhere;}
.fpt-depth-tool .fpt-top-metrics strong {display:block;font:700 10px/1.4 Inter,sans-serif;color:#537060;margin-bottom:4px;}
.fpt-depth-tool .fpt-result .fpt-version {background:#fff;border:1px solid #d4e0d6;border-radius:7px;padding:10px;margin:8px 0;}
.fpt-depth-tool .fpt-result .fpt-version h3 {font-family:Sora,sans-serif;font-size:13px;line-height:1.35;color:#284b37;margin:0 0 8px;}
.fpt-depth-tool .fpt-depth-output-note {display:flex;align-items:flex-start;gap:7px;padding:0 13px 14px;color:#66766e;font-size:10px;line-height:1.5;}
.fpt-depth-tool .fpt-depth-output-note span {color:#a56b3c;font-size:14px;line-height:1.1;}
.fpt-depth-reference {border:1px solid #d9e3d9;border-radius:9px;margin-top:16px;background:#fff;}
.fpt-depth-reference > summary {cursor:pointer;padding:12px 15px;list-style:auto;font-size:12px;font-weight:700;color:#3d5a48;}
.fpt-depth-reference > .fpt-method,.fpt-depth-reference > .fpt-about {margin:0 16px 14px;font-size:12px;line-height:1.65;}
.fpt-depth-reference .fpt-about h3 {font-size:15px;}
@media (max-width:900px) {
  .fpt-depth-workspace {grid-template-columns:minmax(0,1fr) minmax(280px,.87fr);gap:12px;}
  .fpt-depth-tool #fpt-depth-form {padding:13px;}
  .fpt-depth-input-grid {column-gap:9px;row-gap:10px;}
  .fpt-depth-heading__count {display:none;}
}
@media (max-width:730px) {
  .fpt-depth-workspace {grid-template-columns:minmax(0,1fr);}
  .fpt-depth-output-card {position:static;}
  .fpt-depth-tool .fpt-visualizer {min-height:155px;}
  .fpt-depth-tool .fpt-viz-placeholder {min-height:150px;}
}
@media (max-width:390px) {
  .fpt-depth-heading {gap:12px;}
  .fpt-depth-heading__marker {flex-basis:39px;width:39px;height:48px;font-size:18px;}
  .fpt-depth-tool .fpt-depth-heading h2 {font-size:22px;}
  .fpt-depth-input-grid,.fpt-depth-advanced__fields {grid-template-columns:minmax(0,1fr);}
  .fpt-depth-actions {grid-template-columns:minmax(0,1fr) 80px;}
}
@media print {
  .fpt-depth-tool .fpt-depth-heading {break-after:avoid;}
  .fpt-depth-output-card {position:static;}
  .fpt-depth-workspace {display:block;}
  .fpt-depth-form-card {display:none;}
  .fpt-depth-tool .fpt-result {break-inside:avoid;}
}

/* Module 2 results: keep summary concise while retaining detailed arithmetic on demand. */
.fpt-depth-tool .fpt-result {font-family:Inter,system-ui,sans-serif;}
.fpt-depth-tool .fpt-result .fpt-top-metrics {font-family:Inter,system-ui,sans-serif;}
.fpt-depth-tool .fpt-depth-quantity-details,
.fpt-depth-tool .fpt-depth-result-notes {background:#fff;border:1px solid #d6e0d8;border-radius:7px;margin:9px 0;overflow:hidden;}
.fpt-depth-tool .fpt-depth-quantity-details summary,
.fpt-depth-tool .fpt-depth-result-notes summary {padding:10px 11px;cursor:pointer;color:#315c43;font-size:12px;font-weight:720;list-style:none;}
.fpt-depth-tool .fpt-depth-quantity-details summary::-webkit-details-marker,
.fpt-depth-tool .fpt-depth-result-notes summary::-webkit-details-marker,
.fpt-depth-tool .fpt-depth-reference summary::-webkit-details-marker {display:none;}
.fpt-depth-tool .fpt-depth-reference > summary {list-style:none;}
.fpt-depth-tool .fpt-depth-quantity-details summary::before,
.fpt-depth-tool .fpt-depth-result-notes summary::before,
.fpt-depth-tool .fpt-depth-reference summary::before {content:'＋';display:inline-block;margin-right:8px;color:#af6c38;}
.fpt-depth-tool .fpt-depth-quantity-details[open] summary::before,
.fpt-depth-tool .fpt-depth-result-notes[open] summary::before,
.fpt-depth-tool .fpt-depth-reference[open] summary::before {content:'−';}
.fpt-depth-tool .fpt-depth-quantity-body,
.fpt-depth-tool .fpt-depth-result-notes > p {padding:11px;margin:0;border-top:1px solid #e1e8e2;font-size:11.5px;line-height:1.6;}
.fpt-depth-tool .fpt-depth-result-caveat {border-left:3px solid #b47747;background:#fff6ed;padding:8px 10px;color:#6d4e32;font-size:11px;margin:11px 0 0;line-height:1.5;}

/* Concrete volume and bag tables share the same compact layout. */
.fpt-bag-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 16px;
  font: inherit;
  font-variant-numeric: tabular-nums;
}
.fpt-bag-table caption { padding: 8px 0; font-weight: 700; text-align: start; }
.fpt-bag-table :is(th, td) {
  border-bottom: 1px solid #dce3e5;
  padding: 7px 6px;
  line-height: 1.35;
  text-align: end;
}
.fpt-bag-table th:first-child { text-align: start; }
.fpt-bag-table thead { background: #eef1e8; }
.fpt-concrete-details { border-top: 1px solid #dce3e5; padding-top: 8px; }
.fpt-concrete-details summary { cursor: pointer; font-weight: 650; }
.fpt-concrete-details p { font: inherit; margin: 6px 0; }
/* Shared quantity planner: compact progressive controls and tabular results. */
[data-plan-mode] [hidden] { display:none!important; }
[data-plan-mode] .fpt-plan-setup {font-size:.82rem;line-height:1.5;color:#526159;padding:.7rem;background:#f4f6ed;border-left:3px solid #a2b257;margin:.8rem 0;}
[data-plan-mode] .fpt-summary-table {font-size:.86rem;table-layout:auto;}
[data-plan-mode] .fpt-summary-table th,[data-plan-mode] .fpt-summary-table td {padding:.65rem .45rem;overflow-wrap:anywhere;}
[data-plan-mode] .fpt-summary-table td:not(:first-child) {font-variant-numeric:tabular-nums;}
[data-plan-mode] .fpt-summary-table thead th {font-size:.76rem;color:#526159;}
[data-plan-mode] .fpt-m4-fields {row-gap:.85rem;}
[data-plan-mode] .fpt-price-overrides {margin-top:.8rem;}
[data-plan-mode] .fpt-price-overrides > summary {padding:1rem;font-weight:700;cursor:pointer;}
[data-plan-mode] .fpt-price-overrides > .fpt-m4-fields {padding:1rem;}
@media(max-width:480px){[data-plan-mode] .fpt-summary-table {font-size:.78rem;}[data-plan-mode] .fpt-summary-table th,[data-plan-mode] .fpt-summary-table td {padding:.5rem .3rem;}}

[data-plan-mode] .fpt-result {font-family:inherit;}

/* Depth v5.5: scoped result and compact conditions. */
#fpt-depth-tool .fp-budget-scroll{overflow-x:auto;max-width:100%}#fpt-depth-tool .fp-budget-scroll table{font-size:.8rem;width:100%;border-collapse:collapse}#fpt-depth-tool .fp-budget-scroll th,#fpt-depth-tool .fp-budget-scroll td{padding:.5rem;vertical-align:top;white-space:normal}#fpt-depth-tool .fp-budget-scroll small{display:block}#fpt-depth-tool .fp-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}#fpt-depth-tool .fp-preferred-bag{background:#eef2df}#fpt-depth-tool fieldset{min-width:0}#fpt-depth-tool .fp-check{display:flex;align-items:center;gap:.5rem}#fpt-depth-tool [hidden]{display:none!important}@media(max-width:420px){#fpt-depth-tool .fp-metrics{grid-template-columns:1fr}}

/* Depth 0.4.5: comfortable typography and clear result hierarchy. */
#fpt-depth-tool{font-size:16px}
#fpt-depth-tool .fp-field>label{font-size:15px!important;line-height:1.5;min-height:0}
#fpt-depth-tool .fp-hint,#fpt-depth-tool .fp-global-note,#fpt-depth-tool .fp-section-caption{font-size:14px!important;line-height:1.6}
#fpt-depth-tool .fp-essential-grid,#fpt-depth-tool .fp-advanced-grid{gap:18px 20px}
#fpt-depth-tool .fp-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#fpt-depth-tool .fp-metric{padding:17px 16px;min-width:0;border:1px solid #d2d9ce;border-radius:9px;background:#fff}
#fpt-depth-tool .fp-metric>span{display:block;font:600 14px/1.5 Inter,Arial,sans-serif}
#fpt-depth-tool .fp-metric>strong{font:700 30px/1.25 Inter,Arial,sans-serif!important;color:#263d30;margin:9px 0 0;overflow-wrap:normal}
#fpt-depth-tool .fp-metric>small{font-size:14px;line-height:1.5;margin-top:5px}
#fpt-depth-tool .fp-metric--accent{grid-column:1/-1;background:#203c30;border:0;border-top:4px solid #a4b361;padding:23px 25px;color:#fff}
#fpt-depth-tool .fp-metric--accent>span{font-size:15px;letter-spacing:.04em;text-transform:uppercase;color:#f4f7e9}
#fpt-depth-tool .fp-metric--accent>strong{display:block;font-size:58px!important;line-height:1.15!important;color:#e0e9a7;margin:10px 0!important}
#fpt-depth-tool .fp-metric--accent>small{display:block;color:#e4e9de;font-size:16px}
#fpt-depth-tool .fp-result-unit{font-size:.47em;font-weight:500}
#fpt-depth-tool .fp-metric:last-child{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}
#fpt-depth-tool .fp-metric:last-child>strong{font-size:26px!important;margin:0}
#fpt-depth-tool .fp-metric:last-child>small{width:100%}
#fpt-depth-tool .fp-result-intro p{font-size:15px;margin:8px 0 15px}
#fpt-depth-tool .fp-caution{padding:13px 15px;background:#f3efe2;border-left:3px solid #9a794d;margin:16px 0 0;font-size:15px!important;line-height:1.6}
#fpt-depth-tool .fp-plan-viz{margin-top:18px;margin-bottom:20px;padding:0;background:transparent;border:0}
#fpt-depth-tool .fp-cross-section{margin:0;padding:0;background:transparent}
#fpt-depth-tool .fp-cross-section figcaption{font-size:18px;font-weight:650;margin:0 0 8px;color:#2b4030}
#fpt-depth-tool .fp-cross-section svg{display:block;width:100%;height:auto;max-height:none}
#fpt-depth-tool .fp-dim-line{fill:none;stroke:#4b5b4b;stroke-width:1.4}
#fpt-depth-tool .fp-section-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 17px;font-size:14px}
#fpt-depth-tool .fp-section-legend span{display:flex;align-items:center;gap:6px}
#fpt-depth-tool .fp-section-legend i{display:inline-block;width:13px;height:13px;border:1px solid #8b9781;border-radius:2px}
#fpt-depth-tool .fp-key-post{background:#b7844f}#fpt-depth-tool .fp-key-concrete{background:#c5c9c4}#fpt-depth-tool .fp-key-gravel{background:#b4be9b}#fpt-depth-tool .fp-key-soil{background:#ece5d8}
#fpt-depth-tool .fp-section-caption{margin:12px 0 0}
#fpt-depth-tool .fp-finding-details{border:1px solid #d3dacb;border-radius:8px;margin:0 0 16px;overflow:hidden}
#fpt-depth-tool .fp-finding-details>summary{padding:14px 16px;min-height:50px;background:#e8eddc;color:#263d2c!important;font-size:17px!important;line-height:1.4}
#fpt-depth-tool .fp-finding-details__body{padding:12px 15px}
#fpt-depth-tool .fp-budget-scroll{overflow:auto}
#fpt-depth-tool .fp-budget-scroll table{font:15px/1.5 Inter,Arial,sans-serif;width:100%;table-layout:auto;border-collapse:collapse;min-width:430px}
#fpt-depth-tool .fp-budget-scroll th,#fpt-depth-tool .fp-budget-scroll td{padding:12px 8px;line-height:1.5;border-bottom:1px solid #dce2d4;vertical-align:middle;text-align:right}
#fpt-depth-tool .fp-budget-scroll th:first-child{text-align:left;white-space:nowrap}
#fpt-depth-tool .fp-budget-scroll thead th{font-size:14px;background:#f0f3e8;color:#3c4d36}
#fpt-depth-tool .fp-budget-scroll td:last-child{font-weight:700;color:#284329}
#fpt-depth-tool .fp-budget-scroll caption{text-align:left;font-size:14px;padding:8px 0}
#fpt-depth-tool .fp-budget-scroll small{font-size:13px}
#fpt-depth-tool .fp-bag-icon{display:inline-block;vertical-align:middle;margin-right:7px;width:27px;max-width:none}
#fpt-depth-tool .fp-detail-row{font-size:15px;padding:10px 0}
#fpt-depth-tool .fp-detail-row>b{font:600 15px/1.5 Inter,Arial,sans-serif}
#fpt-depth-tool .fp-dimension-table{font-size:15px;width:100%;table-layout:auto}
#fpt-depth-tool .fp-dimension-table th,#fpt-depth-tool .fp-dimension-table td{padding:10px 8px}
#fpt-depth-tool .fp-dimension-table caption{font-size:16px;background:#edf0e5;text-align:left;padding:10px 8px}
#fpt-depth-tool .fp-global-note{margin:18px 20px}
#fpt-depth-tool .fp-diagram-actions{margin:18px 20px 24px;justify-content:flex-end}
#fpt-depth-tool #fp-expand-diagram{display:inline-flex;align-items:center;gap:8px;font-size:16px;padding:13px 20px;background:#263d30;color:#fff;border:1px solid #263d30;border-radius:6px}
#fpt-depth-tool #fp-expand-diagram svg{flex-shrink:0}
#fpt-depth-tool .fp-metric>span>svg{margin-right:6px}
#fp-viz-dialog{width:min(1100px,96vw);max-width:96vw;max-height:94dvh;padding:20px;box-sizing:border-box;overflow:auto}
#fp-viz-dialog .fp-viz-dialog__header h3{font-size:20px!important;line-height:1.35!important;margin:0}
#fp-viz-dialog #fp-close-diagram{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-size:16px;padding:10px 12px;flex-shrink:0}
#fp-viz-dialog .fpt-viz{max-width:none;margin:0;padding:0;border:0;background:transparent;font-size:16px}
#fp-viz-dialog .fpt-viz-title,#fp-viz-dialog .fpt-viz-note,#fp-viz-dialog .fpt-viz-summary-title{display:none}
#fp-viz-dialog .fpt-viz-viewport{height:460px!important;min-height:300px}
#fp-viz-dialog .fpt-viz-viewport svg{display:block;width:100%;height:100%}
#fp-viz-dialog .fpt-viz-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;list-style:none;margin:15px 0 0;padding:0}
#fp-viz-dialog .fpt-viz-summary li{background:#eef1e6;padding:10px 13px;border-radius:6px;font-size:15px}
#fp-viz-dialog .fpt-viz-summary li strong{display:block;font-size:14px}
#fp-viz-dialog .fp-3d-presentation{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:16px;align-items:start}
#fp-viz-dialog .fp-3d-presentation .fpt-viz-summary{grid-template-columns:1fr;margin:0;gap:6px}
#fp-viz-dialog .fp-3d-presentation .fpt-viz-summary li{font-size:14px;padding:7px 10px;line-height:1.45}
#fp-viz-dialog .fpt-viz-legend{font-size:14px;gap:10px}
#fp-viz-dialog .fpt-viz-visibility{display:flex;flex-wrap:wrap;gap:10px 20px;margin:15px 0;font-size:15px}
#fp-viz-dialog .fpt-viz-visibility label{display:flex;align-items:center;gap:7px}
#fp-viz-dialog .fpt-viz-status{font-size:14px}
#fp-viz-dialog .fpt-viz-controls{margin:12px 0;gap:10px}
#fp-viz-dialog .fpt-viz-btn{font-size:15px;padding:10px 15px}
#fp-viz-dialog .fp-3d-extra{font-size:15px;line-height:1.6}
@media(max-width:600px){
 #fpt-depth-tool .fp-metric{padding:15px 12px}
 #fpt-depth-tool .fp-metric>span{font-size:14px!important}
 #fpt-depth-tool .fp-metric:not(.fp-metric--accent)>span svg{display:none}
 #fpt-depth-tool .fp-metric--accent{padding:21px 19px}
 #fpt-depth-tool .fp-metric.fp-metric--accent>strong{font-size:52px!important}
 #fpt-depth-tool .fp-metric>strong{font-size:28px!important}
 #fpt-depth-tool .fp-metric:last-child>strong{font-size:22px!important}
 #fpt-depth-tool .fp-essential-grid,#fpt-depth-tool .fp-advanced-grid{grid-template-columns:1fr}
 #fpt-depth-tool .fp-finding-details__body{padding:10px}
 #fp-viz-dialog{padding:12px;width:98vw;max-width:98vw}
 #fp-viz-dialog .fp-3d-presentation{grid-template-columns:1fr}
 #fp-viz-dialog .fp-3d-presentation .fpt-viz-summary{grid-template-columns:1fr 1fr}
 #fp-viz-dialog .fp-viz-dialog__header h3{font-size:16px!important}
 #fp-viz-dialog .fpt-viz-viewport{height:390px!important}
 #fp-viz-dialog .fpt-viz-summary{grid-template-columns:1fr 1fr;gap:6px}
 #fp-viz-dialog .fpt-viz-summary li{padding:9px;font-size:14px}
 #fp-viz-dialog .fpt-viz-summary li strong{font-size:14px}
}

/* Depth diagrams only: physical geometry and screen-space callouts. */
#fpt-depth-tool .fp-diagram-actions{margin:0;justify-content:flex-end}
#fpt-depth-tool .fp-cross-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:20px 20px 10px}
#fpt-depth-tool .fp-cross-section-heading h4{font-size:18px;line-height:1.4;margin:0}
#fpt-depth-tool #fp-expand-diagram{font-size:14px;padding:10px 13px;min-height:44px;background:#52632f;color:#fff;border-color:#52632f}
#fpt-depth-tool #fp-expand-diagram:hover{background:#252e2a}
#fpt-depth-tool .fp-section-canvas{position:relative;width:100%}
#fpt-depth-tool .fp-section-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
#fpt-depth-tool .fp-diagram-callout{position:absolute;box-sizing:border-box;border-left:3px solid;padding:5px 6px;background:#f8faf8;font:14px/1.4 Inter,Arial,sans-serif;z-index:1;overflow-wrap:anywhere}
#fpt-depth-tool .fp-diagram-callout span,#fpt-depth-tool .fp-diagram-callout strong{display:block;font-size:14px;line-height:1.4}
#fpt-depth-tool .fp-diagram-callout strong{font-size:15px;color:#293c32}
#fpt-depth-tool .fp-section-leader{fill:none;stroke-width:1.15;opacity:.85}
#fpt-depth-tool .fp-key-frost{background:#b8d0df}
#fp-viz-dialog .fp-scene-frame{position:relative;min-width:0;display:flow-root}
#fp-viz-dialog .fp-scene-frame .fpt-viz-viewport{box-sizing:border-box;margin-bottom:0}
#fp-viz-dialog .fp-scene-leaders{position:absolute;inset:0;width:100%;pointer-events:none;overflow:visible;z-index:2}
#fp-viz-dialog .fp-scene-leaders path{fill:none;stroke-width:1.2;opacity:.9}
#fp-viz-dialog .fp-scene-callout{position:absolute;z-index:3;box-sizing:border-box;padding:5px 6px;border-left:3px solid;background:#f7f8f0;font:14px/1.35 Inter,Arial,sans-serif;overflow-wrap:anywhere;pointer-events:none}
#fp-viz-dialog .fp-scene-callout span,#fp-viz-dialog .fp-scene-callout strong{display:block;font-size:14px;line-height:1.35}
#fp-viz-dialog .fp-scene-callout strong{font-size:15px;color:#283c2e}
#fp-viz-dialog .fp-scene-callout small{display:block;font-size:11px;line-height:1.3;color:#637167}
#fp-viz-dialog .fp-scene-callout small:empty{display:none}
@media(max-width:950px){#fp-viz-dialog .fp-3d-presentation{grid-template-columns:minmax(0,1fr)}#fp-viz-dialog .fp-3d-presentation .fpt-viz-summary{grid-template-columns:1fr 1fr}}
@media(max-width:600px){#fpt-depth-tool .fp-cross-section-heading{display:block}#fpt-depth-tool .fp-cross-section-heading .fp-diagram-actions{margin-top:10px;justify-content:flex-start}}

/* Extreme winter estimate: one scoped warning, other output styles unchanged. */
#fpt-depth-tool .fp-caution.fp-caution--extreme{background:#fff0ef;border-left:4px solid #bd2529;color:#8c181c;font-weight:700}

/* Match the existing source-list inset for newly added research headings and notes. */
.fp-depth-v2.fp-reference-footer details.fp-sources>h3{margin:18px 18px 10px}.fp-depth-v2.fp-reference-footer details.fp-sources>h4{font-size:17px;line-height:1.5;margin:22px 18px 8px}.fp-reference-footer .fp-sources>p:not(.fp-source-math){margin:12px 18px 18px}

/* Diameter result uses existing metric cards; preserve readable rows on mobile. */
#fpt-depth-tool .fp-metrics--diameter .fp-metric:last-child{grid-column:auto;display:block}
#fpt-depth-tool .fp-metrics--diameter .fp-metric:last-child strong{display:block}
@media(max-width:560px){
 #fpt-depth-tool .fp-metrics--diameter .fp-metric:nth-child(4){grid-column:1/-1}
 #fpt-depth-tool .fp-metrics--diameter .fp-metric:last-child{grid-column:1/-1;display:flex}
}

/* Depth 3D only: legible external labels and constant screen-space reference strokes. */
#fp-viz-dialog .fp-scene-leaders path{stroke-width:2.25;opacity:1;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
#fp-viz-dialog .fp-scene-leaders .fp-leader-halo{stroke:#fff;stroke-width:5;opacity:.95}
#fp-viz-dialog .fp-scene-leaders .fp-scene-reference{stroke-width:2.25;opacity:.9}
#fp-viz-dialog .fp-scene-callout{padding:6px 8px;font-size:15px;overflow-wrap:normal;border-left-width:4px;border-radius:3px}
#fp-viz-dialog .fp-scene-callout span{font-size:14px;line-height:1.35}
#fp-viz-dialog .fp-scene-callout strong{font-size:16px;line-height:1.35}
#fp-viz-dialog .fp-scene-measurements{min-width:0}
#fp-viz-dialog .fp-scene-measurements h4{font-size:15px!important;margin:0 0 8px!important;color:#344c3b}
#fp-viz-dialog .fp-scene-measurements .fpt-viz-summary{max-height:432px;overflow:auto;overscroll-behavior:contain;padding-right:4px}
#fp-viz-dialog .fp-scene-measurements .fpt-viz-summary li{padding:5px 8px;line-height:1.35}
#fp-viz-dialog .fpt-viz-controls{display:flex;flex-wrap:wrap;margin:10px 0 16px}
#fp-viz-dialog .fpt-viz-btn[aria-pressed="true"]{background:#526833;color:#fff;border-color:#526833}
#fp-viz-dialog .fpt-viz-viewport{overscroll-behavior:contain;user-select:none;-webkit-user-select:none}
@media(max-width:600px){#fp-viz-dialog .fp-scene-measurements .fpt-viz-summary{max-height:276px}#fp-viz-dialog .fpt-viz-btn{padding:9px 11px;min-height:42px}}
