.tools-hero { padding-bottom: 54px; }
.tools-hero-grid { display: grid; gap: 28px; align-items: end; }
.tools-hero h1 { max-width: 850px; margin-bottom: 18px; }
.tools-hero p { max-width: 720px; color: var(--muted); font-size: 1.04rem; }
.tools-hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }

.planner-roadmap {
  display: grid; gap: 0; margin: 0; padding: 10px 24px; list-style: none;
  border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface);
  box-shadow: 0 14px 40px rgba(11, 32, 39, .06);
}
.planner-roadmap li { display: grid; grid-template-columns: 38px 1fr; gap: 12px; align-items: center; padding: 18px 0; }
.planner-roadmap li + li { border-top: 1px solid var(--line); }
.planner-roadmap li > span,
.planner-step-number {
  display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 auto;
  border-radius: 50%; background: var(--aqua-soft); color: var(--aqua);
  font: 600 .78rem/1 "JetBrains Mono", monospace;
}
.planner-roadmap strong { display: block; margin-bottom: 2px; font: 600 .84rem/1.35 "Avenir Next", Avenir, Inter, sans-serif; }
.planner-roadmap small { display: block; color: var(--muted); font-size: .72rem; line-height: 1.45; }

.planner-paths { border-top: 1px solid var(--line); background: var(--surface); }
.planner-paths-grid { display: grid; gap: clamp(26px, 5vw, 68px); }
.planner-paths-grid > [id] { scroll-margin-top: 112px; }
.planner-paths h2 { margin: 0 0 18px; font-size: clamp(1.5rem, 2.8vw, 2.2rem); }
.planner-first-steps { display: grid; gap: 13px; margin: 0 0 18px; padding-left: 24px; color: var(--muted); font-size: .79rem; line-height: 1.55; }
.planner-first-steps li { padding-left: 4px; }
.planner-first-steps li::marker { color: var(--aqua); font-weight: 700; }
.planner-first-steps strong { color: var(--ink); }
.planner-paths a { color: var(--aqua); text-underline-offset: 3px; }
.planner-path-link { display: inline-flex; gap: 7px; align-items: center; font-size: .8rem; font-weight: 700; }
.planner-existing-path { padding-top: 4px; }
.planner-existing-path p { margin: 0 0 14px; color: var(--muted); font-size: .79rem; line-height: 1.55; }
.planner-path-actions { display: grid; gap: 10px; margin-top: 18px; font-size: .79rem; font-weight: 600; }

.planner-section { border-top: 1px solid var(--line); }
.planner-section-head h2 { font-size: clamp(2rem, 4vw, 3rem); }
.planner-idea-import[hidden] { display: none; }
.planner-idea-import { margin: -10px 0 22px; scroll-margin-top: 112px; }
.planner-idea-card {
  display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr); gap: 0; overflow: hidden;
  border: 1px solid #b8d8d1; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 14px 40px rgba(11, 32, 39, .06);
}
.planner-idea-card > img { width: 100%; height: 100%; min-height: 245px; object-fit: contain; background: #edf3f1; }
.planner-idea-copy { padding: clamp(22px, 4vw, 32px); }
.planner-import-state { display: inline-flex; padding: 6px 9px; border-radius: 999px; background: var(--aqua-soft); color: var(--aqua); font: 700 .58rem/1 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; }
.planner-idea-copy h3 { margin: 12px 0 7px; font-size: clamp(1.45rem, 3vw, 2.1rem); }
.planner-idea-copy > p { margin: 0; color: var(--muted); font-size: .82rem; }
.planner-idea-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; }
.planner-idea-facts span { min-width: 0; padding: 12px; }
.planner-idea-facts span + span { border-left: 1px solid var(--line); }
.planner-idea-facts small { display: block; color: var(--muted); font: 600 .56rem/1.3 "JetBrains Mono", monospace; letter-spacing: .04em; text-transform: uppercase; }
.planner-idea-facts strong { display: block; margin-top: 4px; font-size: .72rem; line-height: 1.35; }
.planner-idea-details { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.planner-idea-details section { padding: 22px; }
.planner-idea-details section + section { border-left: 1px solid var(--line); }
.planner-idea-details h4 { margin: 0 0 11px; font-size: .86rem; }
.planner-idea-details ul { display: grid; gap: 6px; margin: 0; padding-left: 18px; color: var(--muted); font-size: .74rem; }
.planner-import-match { margin: 14px 0 0; padding: 11px 12px; border-radius: 11px; background: var(--surface-2); color: var(--muted); font-size: .7rem; line-height: 1.48; }
.planner-import-match strong { color: var(--ink); }
.planner-idea-stages { grid-column: 1 / -1; border-top: 1px solid var(--line); }
.planner-idea-stages summary { padding: 16px 22px; cursor: pointer; font-weight: 600; }
.planner-idea-stages[open] { padding: 0 22px 20px; }
.planner-idea-stages[open] summary { margin-inline: -22px; }
.planner-idea-stages ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; color: var(--muted); font-size: .72rem; }
.planner-idea-stages p { margin: 15px 0 0; padding-top: 14px; border-top: 1px solid var(--line); color: var(--muted); font-size: .72rem; }
.planner-idea-stages p strong { display: block; margin-bottom: 4px; color: var(--ink); }
.planner-idea-footer { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 22px; border-top: 1px solid var(--line); background: var(--surface-2); }
.planner-idea-footer span { max-width: 650px; color: var(--muted); font-size: .68rem; line-height: 1.45; text-align: right; }
.planner-workspace { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; max-width: 1000px; margin-inline: auto; }
.planner-setup-card,
.planner-livestock-card { padding: clamp(22px, 4vw, 34px); }
.planner-livestock-card { scroll-margin-top: 112px; }
.planner-card-heading { display: flex; gap: 13px; align-items: flex-start; }
.planner-card-heading .eyebrow { margin-bottom: 8px; }
.planner-card-heading h2,
.planner-card-heading h3 { margin-bottom: 0; }
.planner-card-heading h3 { font-size: 1.45rem; }
.planner-card-intro { margin: 18px 0; color: var(--muted); font-size: .84rem; }
.planner-main-fields { margin-top: 24px; }
.planner-main-fields,
.planner-dimension-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.planner-field-wide { grid-column: 1 / -1; }
.planner-setup-card .field label span { color: var(--muted); font-weight: 400; }

.planner-fieldset { margin: 26px 0 0; padding: 24px; border: 1px solid var(--line); border-radius: 16px; }
.planner-fieldset legend { padding: 0 8px; font: 600 .78rem/1.2 "JetBrains Mono", monospace; letter-spacing: .04em; text-transform: uppercase; }
.planner-fieldset > p,
.planner-optional > p { margin: 0 0 18px; color: var(--muted); font-size: .76rem; }
.planner-capacity { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--line); }
.planner-capacity > div { min-width: 0; padding: 14px; background: var(--aqua-soft); }
.planner-capacity small,
.planner-plan-metric small { display: block; margin-bottom: 4px; color: var(--muted); font: 600 .61rem/1.3 "JetBrains Mono", monospace; letter-spacing: .05em; text-transform: uppercase; }
.planner-capacity strong { display: block; font-size: .78rem; line-height: 1.4; }
.planner-optional { margin-top: 18px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface-2); }
.planner-optional summary { padding: 16px 18px; cursor: pointer; font-weight: 600; }
.planner-optional[open] { padding: 0 18px 18px; }
.planner-optional[open] summary { margin-inline: -18px; }
.marine-only-field[hidden],
.marine-readiness[hidden] { display: none; }
.marine-readiness {
  margin-top: 22px; padding: clamp(20px, 4vw, 30px); overflow: hidden;
  border: 1px solid #9fcfc6; border-radius: 20px;
  background: linear-gradient(145deg, #f2fbf8 0%, #e5f4f1 100%);
}
.marine-readiness-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; font-size: .85rem; font-weight: 700; }
.marine-readiness-summary small { display: block; margin-top: 4px; color: var(--muted); font-size: .7rem; font-weight: 400; }
.marine-readiness-summary strong { flex: 0 1 auto; padding: 7px 10px; border-radius: 999px; background: #fff; color: var(--aqua); font-size: .68rem; line-height: 1.35; text-align: right; }
.marine-readiness-summary:focus-visible { outline: 3px solid rgba(23, 107, 114, .22); outline-offset: 4px; }
.marine-readiness[open] .marine-readiness-summary { padding-bottom: 18px; border-bottom: 1px solid #c5ded9; }
.marine-readiness[open] .marine-readiness-header { margin-top: 20px; }
.marine-readiness-header { max-width: 720px; }
.marine-readiness-kicker {
  display: inline-flex; margin-bottom: 10px; color: var(--aqua);
  font: 700 .6rem/1.3 "JetBrains Mono", monospace; letter-spacing: .09em; text-transform: uppercase;
}
.marine-readiness-header h3 { margin: 0 0 8px; font-size: clamp(1.45rem, 3.6vw, 2rem); }
.marine-readiness-header p { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.marine-readiness-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 22px; }
.marine-readiness-group,
.marine-testing-group { min-width: 0; margin: 0; padding: 17px; border: 1px solid #c5ded9; border-radius: 15px; background: rgba(255,255,255,.75); }
.marine-readiness-group legend,
.marine-testing-group legend {
  padding: 0 6px; color: var(--ink);
  font: 700 .64rem/1.3 "JetBrains Mono", monospace; letter-spacing: .04em; text-transform: uppercase;
}
.marine-readiness-group .field + .field { margin-top: 13px; }
.marine-testing-group { margin-top: 12px; }
.marine-testing-group > p { margin: 0 0 13px; color: var(--muted); font-size: .7rem; line-height: 1.45; }
.marine-testing-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.marine-testing-grid label {
  display: flex; min-width: 0; min-height: 42px; align-items: center; gap: 9px; padding: 9px 10px;
  border: 1px solid var(--line); border-radius: 11px; background: #fff; cursor: pointer;
  color: var(--ink); font-size: .68rem; font-weight: 600;
}
.marine-testing-grid input { width: 18px; height: 18px; flex: 0 0 auto; margin: 0; accent-color: var(--aqua); }
.marine-testing-grid label:has(input:checked) { border-color: #72baae; background: var(--aqua-soft); }
.marine-testing-grid label:has(input:focus-visible) { outline: 3px solid rgba(23,107,114,.2); outline-offset: 2px; }
.marine-readiness-result { margin-top: 16px; overflow: hidden; border: 1px solid #b7d7d1; border-radius: 17px; background: #fff; }
.marine-readiness-result > header { padding: 19px; border-bottom: 1px solid var(--line); }
.marine-readiness-result > header p { margin: 10px 0 0; color: var(--muted); font-size: .74rem; line-height: 1.55; }
.marine-readiness-status {
  display: inline-flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 999px;
  font: 700 .61rem/1.2 "JetBrains Mono", monospace; letter-spacing: .03em; text-transform: uppercase;
}
.marine-readiness-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.marine-readiness-status.is-stop { background: #fbe1dd; color: #7d2f27; }
.marine-readiness-status.is-attention { background: #fff0ca; color: #6b4a08; }
.marine-readiness-status.is-good { background: #e2f5e9; color: #236344; }
.marine-readiness-findings { display: grid; gap: 8px; padding: 14px 14px 0; }
.marine-readiness-finding {
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: start;
  padding: 12px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-2);
}
.marine-readiness-finding > span {
  padding: 5px 7px; border-radius: 999px; background: #fff0ca; color: #6b4a08;
  font: 700 .52rem/1 "JetBrains Mono", monospace; letter-spacing: .04em; text-transform: uppercase;
}
.marine-readiness-finding.is-stop { border-color: #e5aaa2; background: #fff7f5; }
.marine-readiness-finding.is-stop > span { background: #f7d0ca; color: #792d25; }
.marine-readiness-finding strong { display: block; margin: 1px 0 3px; font-size: .73rem; line-height: 1.4; }
.marine-readiness-finding p { margin: 0; color: var(--muted); font-size: .68rem; line-height: 1.5; }
.marine-readiness-clear { margin: 14px; padding: 13px; border-radius: 12px; background: #eaf7ef; color: #286347; font-size: .7rem; }
.marine-readiness-missing,
.marine-readiness-next { padding: 16px 19px; border-top: 1px solid var(--line); }
.marine-readiness-missing h4,
.marine-readiness-next h4 { margin: 0 0 10px; font-size: .79rem; }
.marine-readiness-missing ul {
  display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none;
}
.marine-readiness-missing li { padding: 6px 8px; border-radius: 999px; background: #fff1cf; color: #684b10; font-size: .61rem; line-height: 1.35; }
.marine-readiness-missing p { margin: 0; color: var(--muted); font-size: .68rem; }
.marine-readiness-missing.is-complete { background: #f3faf6; }
.marine-readiness-next ol { display: grid; gap: 8px; margin: 0; padding-left: 20px; color: var(--muted); font-size: .69rem; line-height: 1.5; }
.marine-readiness-boundary { margin: 0; padding: 14px 19px; border-top: 1px solid var(--line); background: var(--surface-2); color: var(--muted); font-size: .63rem; line-height: 1.5; }
.planner-form-footer { display: flex; gap: 14px; align-items: center; justify-content: space-between; margin-top: 18px; }
.planner-form-footer small { color: var(--muted); font-size: .7rem; }

.planner-tank-list { display: grid; gap: 10px; margin: 0 0 18px; }
.planner-livestock-items { display: grid; gap: 10px; }
.planner-shortlist-overview { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 5px 12px; color: var(--muted); font-size: .72rem; }
.planner-shortlist-overview strong { color: var(--ink); }
.planner-list-toggle { width: 100%; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-2); color: var(--aqua); cursor: pointer; font: 700 .74rem/1.3 "Avenir Next", Avenir, Inter, sans-serif; }
.planner-list-toggle:hover { background: var(--aqua-soft); }
.planner-list-toggle:focus-visible { outline: 3px solid rgba(23, 107, 114, .22); outline-offset: 3px; }
.planner-return-status {
  display: grid; gap: 3px; margin: 0 0 14px; padding: 13px 15px;
  border: 1px solid #a9d9cf; border-radius: 14px; background: var(--aqua-soft); color: var(--ink);
}
.planner-return-status strong { font-size: .77rem; }
.planner-return-status span { color: var(--muted); font-size: .7rem; line-height: 1.45; }
.planner-return-status:focus-visible { outline: 3px solid rgba(23, 107, 114, .22); outline-offset: 3px; }
.planner-candidate[hidden] { display: none; }
.planner-candidate { margin: 0 0 16px; overflow: hidden; border: 1px solid #a9d3cc; border-radius: 17px; background: #f6fbfa; }
.planner-candidate > header { display: grid; gap: 8px; padding: 17px; border-bottom: 1px solid #c9e0dc; background: #e9f6f3; }
.planner-candidate > header h3 { margin: 4px 0 2px; font-size: 1.02rem; }
.planner-candidate > header em { display: block; color: var(--muted); font-size: .65rem; }
.planner-candidate > header > p { margin: 2px 0 0; color: var(--muted); font-size: .7rem; line-height: 1.5; }
.planner-candidate-kicker { color: var(--aqua); font: 700 .55rem/1.3 "JetBrains Mono", monospace; letter-spacing: .06em; text-transform: uppercase; }
.planner-candidate-status { display: inline-flex; width: fit-content; align-items: center; gap: 7px; padding: 6px 8px; border-radius: 999px; font: 700 .55rem/1.35 "JetBrains Mono", monospace; text-transform: uppercase; }
.planner-candidate-status::before { content: ""; width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: currentColor; }
.planner-candidate-status.is-stop { background: #f7d2cd; color: #752d25; }
.planner-candidate-status.is-attention { background: #f8e4b5; color: #684b10; }
.planner-candidate-status.is-good { background: #dff2e7; color: #276346; }
.planner-candidate-findings { display: grid; gap: 7px; padding: 12px; }
.planner-candidate-findings article { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; padding: 10px; border: 1px solid #dec78f; border-radius: 12px; background: #fff9ec; }
.planner-candidate-findings article.is-stop { border-color: #e4a098; background: #fff3f0; }
.planner-candidate-findings article > span { height: fit-content; padding: 4px 6px; border-radius: 999px; background: #f3dfad; color: #684b10; font: 700 .48rem/1 "JetBrains Mono", monospace; text-transform: uppercase; }
.planner-candidate-findings article.is-stop > span { background: #f5c9c2; color: #732d25; }
.planner-candidate-findings strong,
.planner-candidate-more strong { display: block; font-size: .69rem; line-height: 1.4; }
.planner-candidate-findings p,
.planner-candidate-more p { margin: 3px 0 0; color: var(--muted); font-size: .63rem; line-height: 1.48; }
.planner-candidate-clear { margin: 12px; padding: 11px; border-radius: 11px; background: #e5f5eb; color: #286347; font-size: .66rem; }
.planner-candidate-more { border-top: 1px solid var(--line); }
.planner-candidate-more summary { padding: 12px 15px; cursor: pointer; font-size: .66rem; font-weight: 700; }
.planner-candidate-more > div { display: grid; gap: 7px; padding: 0 12px 12px; }
.planner-candidate-more article { padding: 10px; border-radius: 11px; background: #fff; }
.planner-candidate-gaps { display: grid; gap: 3px; padding: 12px 15px; border-top: 1px solid var(--line); background: #fff8e8; }
.planner-candidate-gaps strong,
.planner-candidate-next > strong { font-size: .67rem; }
.planner-candidate-gaps span { color: #72561c; font-size: .62rem; line-height: 1.45; }
.planner-candidate-next { padding: 13px 15px; border-top: 1px solid var(--line); }
.planner-candidate-next ol { display: grid; gap: 6px; margin: 8px 0 0; padding-left: 18px; color: var(--muted); font-size: .64rem; line-height: 1.48; }
.planner-candidate > footer { display: grid; gap: 10px; padding: 13px 15px; border-top: 1px solid var(--line); background: #fff; }
.planner-candidate > footer > div { display: flex; flex-wrap: wrap; gap: 7px; }
.planner-candidate > footer > p { margin: 0; color: var(--muted); font-size: .59rem; line-height: 1.45; }
.planner-candidate-action-note { display: block; width: 100%; padding: 9px 10px; border-radius: 10px; background: #fff0ed; color: #792d25; font-size: .62rem; font-weight: 700; }
.planner-candidate-action-note.is-added { background: #e6f5ec; color: #286347; }
.planner-candidate-unavailable { margin: 0; padding: 16px; color: var(--muted); font-size: .7rem; }
.planner-shortlist-alerts { display: grid; gap: 8px; margin: 0 0 14px; }
.planner-shortlist-alerts:empty { display: none; }
.planner-shortlist-alert {
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: start;
  padding: 12px 13px; border: 1px solid #e1c78e; border-radius: 14px; background: #fff8e9;
}
.planner-shortlist-alert > span {
  margin-top: 1px; padding: 5px 7px; border-radius: 999px; background: #f4dfac; color: #684b10;
  font: 700 .52rem/1 "JetBrains Mono", monospace; letter-spacing: .04em; text-transform: uppercase;
}
.planner-shortlist-alert strong { display: block; margin: 1px 0 3px; font-size: .75rem; line-height: 1.35; }
.planner-shortlist-alert p { margin: 0; color: var(--muted); font-size: .67rem; line-height: 1.48; }
.planner-shortlist-alert.is-stop { border-color: #e4a098; background: #fff1ee; }
.planner-shortlist-alert.is-stop > span { background: #f6c4bd; color: #712c24; }
.planner-tank-empty { padding: 28px 18px; border: 1px dashed #bad1cc; border-radius: 16px; background: var(--surface-2); text-align: center; }
.planner-tank-empty strong { display: block; margin-bottom: 6px; }
.planner-tank-empty p { max-width: 390px; margin: 0 auto; color: var(--muted); font-size: .78rem; }
.planner-livestock-item {
  display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 12px; align-items: center;
  padding: 10px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface-2);
}
.planner-livestock-item.has-stop { border-color: #e4a098; background: #fff7f5; }
.planner-livestock-item.is-newly-selected { border-color: #78beb2; box-shadow: 0 0 0 3px rgba(23, 107, 114, .08); }
.planner-livestock-item > img { width: 64px; height: 54px; border-radius: 12px; object-fit: contain; background: #e5f1ef; }
.planner-livestock-copy { min-width: 0; }
.planner-livestock-copy strong,
.planner-livestock-copy em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.planner-livestock-copy strong { font-size: .82rem; }
.planner-livestock-copy em { margin-top: 2px; color: var(--muted); font-size: .66rem; }
.planner-livestock-meta { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.planner-livestock-meta span { padding: 4px 7px; border-radius: 999px; background: #fff; color: var(--muted); font-size: .58rem; }
.planner-livestock-meta span.is-good { background: #e7f6ed; color: #246444; }
.planner-livestock-meta span.is-attention { background: #fff0ca; color: #6b4a08; }
.planner-livestock-meta span.is-stop { background: #f8d0ca; color: #792d25; }
.planner-livestock-actions { display: grid; gap: 7px; justify-items: end; }
.planner-quantity { display: grid; grid-template-columns: 32px 34px 32px; align-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 999px; background: #fff; }
.planner-quantity button { width: 32px; height: 32px; padding: 0; border: 0; background: transparent; cursor: pointer; font-size: 1rem; }
.planner-quantity output { text-align: center; font: 600 .7rem/1 "JetBrains Mono", monospace; }
.planner-remove { padding: 3px 6px; border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: .64rem; text-decoration: underline; text-underline-offset: 2px; }
.planner-add-livestock { display: flex; justify-content: center; width: 100%; max-width: 430px; margin-inline: auto; }

.planner-results-section { border-top: 1px solid var(--line); background: linear-gradient(180deg, #eff7f5, var(--bg)); }
.planner-results-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 24px; }
.planner-results-heading h2 { font-size: clamp(2rem, 4vw, 3rem); }
.planner-results-heading > p { max-width: 520px; margin: 0; color: var(--muted); }
.planner-plan { overflow: hidden; border: 1px solid #bdd8d2; border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow); }
.planner-plan-hero { display: grid; gap: 10px; padding: clamp(24px, 5vw, 42px); background: var(--ink); color: #fff; }
.planner-plan-status { display: inline-flex; width: fit-content; align-items: center; gap: 8px; padding: 7px 10px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; font: 600 .65rem/1 "JetBrains Mono", monospace; letter-spacing: .04em; text-transform: uppercase; }
.planner-plan-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #9eb4ae; }
.planner-plan-status.is-good::before { background: #63d49a; }
.planner-plan-status.is-attention::before { background: #f2bf64; }
.planner-plan-status.is-stop::before { background: #f47b70; }
.planner-plan-hero h2 { margin: 2px 0 0; font-size: clamp(1.65rem, 4vw, 2.65rem); }
.planner-plan-hero p { max-width: 780px; margin: 0; color: #c7d1ce; }
.planner-plan-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--line); }
.planner-plan-metric { min-width: 0; padding: 20px; }
.planner-plan-metric + .planner-plan-metric { border-left: 1px solid var(--line); }
.planner-plan-metric strong { display: block; overflow-wrap: anywhere; font-size: .82rem; }
.planner-guidance-grid { display: grid; gap: 0; }
.planner-guidance-panel { padding: clamp(22px, 4vw, 32px); }
.planner-guidance-panel + .planner-guidance-panel { border-top: 1px solid var(--line); }
.planner-guidance-panel h3 { margin-bottom: 17px; }
.planner-findings { display: grid; gap: 9px; }
.planner-finding { display: grid; grid-template-columns: 10px 1fr; gap: 12px; padding: 14px; border-radius: 14px; background: var(--surface-2); }
.planner-finding::before { content: ""; width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: #829994; }
.planner-finding.is-good::before { background: var(--ok); }
.planner-finding.is-attention::before { background: var(--warn); }
.planner-finding.is-stop::before { background: var(--danger); }
.planner-finding strong { display: block; margin-bottom: 3px; font-size: .77rem; }
.planner-finding p { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.planner-no-priorities { margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.55; }
.planner-confirmations { margin-top: 16px; border-top: 1px solid var(--line); }
.planner-confirmations summary { padding: 15px 0; color: var(--aqua); cursor: pointer; font-size: .76rem; font-weight: 600; }
.planner-confirmations summary:focus-visible { outline: 3px solid rgba(23, 107, 114, .22); outline-offset: 3px; }
.planner-confirmations > .planner-findings { padding-bottom: 4px; }
.planner-checklist,
.planner-next-steps { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; }
.planner-checklist li,
.planner-next-steps li { display: grid; grid-template-columns: 28px 1fr; gap: 10px; align-items: start; color: var(--muted); font-size: .74rem; }
.planner-checklist li::before { content: "✓"; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--aqua-soft); color: var(--aqua); font-weight: 700; }
.planner-next-steps { counter-reset: planner-next; }
.planner-next-steps li { counter-increment: planner-next; }
.planner-next-steps li::before { content: counter(planner-next); display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--ink); font: 600 .62rem/1 "JetBrains Mono", monospace; }
.planner-evidence-note { padding: 16px clamp(22px, 4vw, 32px); border-top: 1px solid var(--line); background: var(--surface-2); color: var(--muted); font-size: .67rem; }
.planner-boundary { max-width: 900px; margin: 18px auto 0; color: var(--muted); font-size: .7rem; text-align: center; }

@media (min-width: 860px) {
  .tools-hero-grid { grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr); }
  .planner-paths-grid { grid-template-columns: minmax(0, 1.3fr) minmax(280px, .7fr); }
  .planner-existing-path { padding-left: clamp(26px, 4vw, 52px); border-left: 1px solid var(--line); }
  .planner-livestock-items.is-many { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .planner-livestock-items.is-many .planner-livestock-item { grid-template-columns: 54px minmax(0, 1fr); }
  .planner-livestock-items.is-many .planner-livestock-item > img { width: 54px; height: 48px; }
  .planner-livestock-items.is-many .planner-livestock-actions { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; width: 100%; }
  .planner-guidance-grid { grid-template-columns: 1.2fr .8fr; }
  .planner-guidance-panel + .planner-guidance-panel { border-top: 0; border-left: 1px solid var(--line); }
}

@media (max-width: 679px) {
  .tools-hero { padding-bottom: 34px; }
  .tools-hero h1 { font-size: clamp(2.5rem, 14vw, 4rem); }
  .tools-hero-actions .btn { flex: 1; }
  .planner-roadmap { padding-inline: 18px; }
  .planner-idea-card { grid-template-columns: 1fr; }
  .planner-idea-card > img { min-height: 0; aspect-ratio: 3 / 2; }
  .planner-idea-details { grid-template-columns: 1fr; }
  .planner-idea-details section + section { border-top: 1px solid var(--line); border-left: 0; }
  .planner-idea-stages ol { grid-template-columns: 1fr; }
  .planner-idea-footer { align-items: stretch; flex-direction: column; }
  .planner-idea-footer .btn { width: 100%; }
  .planner-idea-footer span { text-align: left; }
  .planner-section-head,
  .planner-results-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
  .planner-main-fields,
  .planner-dimension-fields { grid-template-columns: 1fr 1fr; }
  .planner-field-wide,
  .planner-main-fields .field { grid-column: 1 / -1; }
  .planner-fieldset { padding: 18px 14px; }
  .marine-readiness-grid { grid-template-columns: 1fr; }
  .marine-readiness-summary { align-items: flex-start; flex-direction: column; }
  .marine-testing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .planner-capacity { grid-template-columns: 1fr; }
  .planner-capacity > div + div { border-top: 1px solid var(--line); }
  .planner-form-footer { align-items: stretch; flex-direction: column; }
  .planner-form-footer .btn { width: 100%; }
  .planner-livestock-item { grid-template-columns: 54px minmax(0, 1fr); }
  .planner-livestock-item > img { width: 54px; height: 48px; }
  .planner-livestock-actions { grid-column: 1 / -1; grid-template-columns: auto 1fr; justify-items: start; align-items: center; width: 100%; }
  .planner-remove { justify-self: end; min-height: 36px; }
  .planner-plan-metrics { grid-template-columns: 1fr 1fr; }
  .planner-plan-metric:nth-child(3) { border-left: 0; }
  .planner-plan-metric:nth-child(n+3) { border-top: 1px solid var(--line); }
}

@media (max-width: 390px) {
  .planner-idea-facts { grid-template-columns: 1fr; }
  .planner-idea-facts span + span { border-top: 1px solid var(--line); border-left: 0; }
  .planner-dimension-fields { grid-template-columns: 1fr; }
  .marine-testing-grid { grid-template-columns: 1fr; }
  .planner-plan-metrics { grid-template-columns: 1fr; }
  .planner-plan-metric + .planner-plan-metric { border-left: 0; border-top: 1px solid var(--line); }
}
