/* PumpkinOps Soil consolidated stylesheet — Phase 4.
   Source order is preserved so the validated cascade matches the prior individual files. */

/* ===== soil_phase6.css ===== */
#tab-soil .soil-field-missing {
  border-color: #d97706;
  box-shadow: 0 0 0 2px rgb(217 119 6 / 16%);
}

#tab-soil .soil-field-invalid {
  border-color: #dc2626;
  box-shadow: 0 0 0 2px rgb(220 38 38 / 16%);
}

#soil_validation_summary {
  margin-top: 10px;
}

#soil_validation_summary ul {
  margin: 7px 0 0;
  padding-left: 20px;
}

.soil-test-meta-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.soil-test-meta-summary span {
  display: inline-flex;
  gap: 4px;
}

.soil-import-conversion {
  min-height: 1.25em;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.soil-import-conversion.converted {
  color: #166534;
}

.soil-import-conversion.blocked {
  color: #b45309;
  font-weight: 600;
}

.soil-import-apply-mode {
  display: grid;
  gap: 8px;
  margin: 14px 0 10px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
}

.soil-import-apply-mode legend {
  padding: 0 5px;
  font-weight: 700;
}

.soil-import-apply-mode > label {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 9px;
  border: 1px solid var(--border);
  border-radius: 10px;
  cursor: pointer;
}

.soil-import-apply-mode > label:has(input:checked) {
  border-color: #f97316;
  background: rgb(249 115 22 / 7%);
}

.soil-import-apply-mode > label input {
  margin-top: 3px;
}

.soil-import-apply-mode > label span {
  display: grid;
  gap: 2px;
}

.soil-import-apply-mode small {
  color: var(--muted);
  line-height: 1.35;
}

.soil-import-change-preview {
  display: grid;
  gap: 4px;
  padding: 9px 10px;
  border-radius: 9px;
  background: rgb(15 23 42 / 5%);
  font-size: 13px;
  line-height: 1.4;
}

.soil-import-change-preview span {
  color: var(--muted);
}

@media (max-width: 720px) {
  .soil-import-apply-mode {
    padding: 10px;
  }

  .soil-test-meta-summary {
    display: grid;
  }
}

.soil-import-document-summary {
  display: grid;
  gap: 10px;
  margin-top: 10px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgb(15 23 42 / 4%);
}

.soil-import-document-summary[hidden] {
  display: none;
}

.soil-import-document-summary-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.soil-import-document-summary-title {
  font-weight: 800;
}

.soil-import-document-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.soil-import-document-summary-grid > div {
  padding: 8px 9px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--card, #fff);
}

.soil-import-document-summary-grid b,
.soil-import-document-section-list b {
  display: block;
  margin-bottom: 2px;
  font-size: 12px;
  color: var(--muted);
}

.soil-import-document-section-list {
  display: grid;
  gap: 5px;
  padding-top: 2px;
}

.soil-import-document-section-list ul {
  margin: 0;
  padding-left: 19px;
}

.soil-import-document-phase-note {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

@media (max-width: 720px) {
  .soil-import-document-summary-grid {
    grid-template-columns: 1fr;
  }
}

/* Soil DOCX Import Phase 3 deterministic sample preview */
.soil-import-sample-list {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}
.soil-import-sample-card {
  border: 1px solid var(--line, #d9dfd7);
  border-radius: 14px;
  padding: 14px;
  background: var(--panel, #fff);
}
.soil-import-sample-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.soil-import-sample-card-head > div {
  display: grid;
  gap: 2px;
}
.soil-import-sample-card-head span:not(.badge) {
  font-size: .84rem;
  opacity: .75;
}
.soil-import-sample-values {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}
.soil-import-sample-values span,
.soil-import-sample-checks span {
  border: 1px solid var(--line, #d9dfd7);
  border-radius: 10px;
  padding: 7px 8px;
  min-width: 0;
}
.soil-import-sample-values b {
  display: block;
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  opacity: .7;
  margin-bottom: 2px;
}
.soil-import-sample-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 9px;
  font-size: .78rem;
}
.soil-import-sample-repair {
  margin-top: 9px;
  padding: 8px 10px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--warn, #b47800) 12%, transparent);
  font-size: .82rem;
}
.soil-import-sample-card details {
  margin-top: 9px;
}
.soil-import-sample-card summary {
  cursor: pointer;
  font-weight: 700;
  font-size: .82rem;
}
.soil-import-sample-card pre {
  max-width: 100%;
  overflow: auto;
  white-space: pre-wrap;
  word-break: break-word;
  font-size: .72rem;
  line-height: 1.35;
  margin: 8px 0 0;
  padding: 9px;
  border-radius: 9px;
  background: rgba(0,0,0,.04);
}
@media (max-width: 760px) {
  .soil-import-sample-values { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .soil-import-sample-card { padding: 11px; }
}

/* Soil DOCX Import Phase 4 review and confirmation */
.soil-docx-review {
  display: grid;
  gap: 14px;
}
.soil-docx-review[hidden] { display: none; }
.soil-docx-review-intro {
  display: grid;
  gap: 3px;
  padding: 11px 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgb(15 23 42 / 4%);
}
.soil-docx-review-intro span {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}
.soil-docx-warning-list,
.soil-docx-sample-list {
  display: grid;
  gap: 10px;
}
.soil-docx-warning-list > h4 {
  margin: 0;
}
.soil-docx-warning {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 11px;
  border: 1px solid var(--border);
  border-radius: 12px;
  cursor: pointer;
  background: var(--card, #fff);
}
.soil-docx-warning:has(input:checked) {
  background: rgb(34 197 94 / 6%);
}
.soil-docx-warning input {
  margin-top: 3px;
  flex: 0 0 auto;
}
.soil-docx-warning > span {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.soil-docx-warning small {
  color: var(--muted);
  line-height: 1.4;
}
.soil-docx-warning code {
  display: block;
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
  padding: 7px 8px;
  border-radius: 8px;
  background: rgb(15 23 42 / 5%);
  font-size: 11px;
}
.soil-docx-sample {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--card, #fff);
}
.soil-docx-sample.excluded {
  opacity: .68;
}
.soil-docx-sample-head,
.soil-docx-action-row,
.soil-docx-review-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.soil-docx-keep,
.soil-docx-sample-confirm {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  cursor: pointer;
}
.soil-docx-keep input,
.soil-docx-sample-confirm input {
  margin-top: 3px;
}
.soil-docx-keep > span {
  display: grid;
  gap: 2px;
}
.soil-docx-keep small {
  color: var(--muted);
}
.soil-docx-action-row > label {
  display: grid;
  gap: 4px;
  min-width: min(100%, 260px);
}
.soil-docx-action-row > label > span,
.soil-docx-action-row > span {
  color: var(--muted);
  font-size: 12px;
}
.soil-docx-fields {
  display: grid;
  gap: 10px;
}
.soil-docx-field-group {
  min-width: 0;
  margin: 0;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 12px;
}
.soil-docx-field-group legend {
  padding: 0 6px;
  font-weight: 800;
  font-size: 13px;
}
.soil-docx-field-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}
.soil-docx-field {
  min-width: 0;
  display: grid;
  gap: 4px;
  padding: 8px;
  border: 1px solid transparent;
  border-radius: 10px;
}
.soil-docx-field.edited {
  border-color: var(--border);
  background: rgb(249 115 22 / 7%);
}
.soil-docx-field > span {
  font-size: 12px;
  font-weight: 700;
}
.soil-docx-field > span small {
  color: var(--muted);
  font-weight: 500;
}
.soil-docx-field > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px;
}
.soil-docx-field .input {
  min-width: 0;
  width: 100%;
}
.soil-docx-reset {
  padding-inline: 8px;
}
.soil-docx-field em {
  color: var(--muted);
  font-size: 11px;
  font-style: normal;
}
.soil-docx-lab-details,
.soil-docx-source {
  border-top: 1px solid var(--border);
  padding-top: 9px;
}
.soil-docx-lab-details summary,
.soil-docx-source summary {
  cursor: pointer;
  font-weight: 750;
}
.soil-docx-lab-details h4 {
  margin: 10px 0 6px;
}
.soil-docx-token-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
}
.soil-docx-token-grid span {
  min-width: 0;
  padding: 6px 7px;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 12px;
  overflow-wrap: anywhere;
}
.soil-docx-token-grid b {
  display: block;
  color: var(--muted);
  font-size: 10px;
}
.soil-docx-source pre {
  max-width: 100%;
  overflow: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  padding: 9px;
  border-radius: 9px;
  background: rgb(15 23 42 / 5%);
  font-size: 11px;
  line-height: 1.4;
}
.soil-docx-sample-confirm {
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
}
.soil-docx-sample-confirm:has(input:checked) {
  background: rgb(34 197 94 / 6%);
}
.soil-docx-review-footer {
  position: sticky;
  bottom: 0;
  z-index: 2;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--card, #fff);
  box-shadow: 0 -4px 14px rgb(15 23 42 / 8%);
}
.soil-docx-review-readiness {
  flex: 1 1 260px;
  font-size: 13px;
  line-height: 1.4;
}
.soil-docx-review-readiness.blocked { color: var(--muted); }
.soil-docx-review-readiness.ready { font-weight: 750; }

@media (max-width: 980px) {
  .soil-docx-field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .soil-docx-token-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .soil-docx-sample { padding: 10px; }
  .soil-docx-field-grid,
  .soil-docx-token-grid { grid-template-columns: 1fr; }
  .soil-docx-action-row { align-items: stretch; }
  .soil-docx-action-row > label { width: 100%; }
  .soil-docx-review-footer { align-items: stretch; }
  .soil-docx-review-footer .btn { width: 100%; }
}

/* Soil DOCX Phase 5 atomic-apply controls */
.soil-docx-review-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.soil-docx-applied {
  margin: 0;
}
@media (max-width: 560px) {
  .soil-docx-review-actions { width: 100%; }
  .soil-docx-review-actions .btn { flex: 1 1 100%; }
}

/* Soil DOCX Phase 6 — separate Sure Crop source program */
.soil-import-source-program-summary,
.soil-docx-program-head,
.soil-source-program-summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.soil-import-source-program-summary {
  margin-top:12px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--panel);
}
.soil-import-source-program-summary > div,
.soil-docx-program-head > div { display:grid; gap:3px; }
.soil-import-source-program-summary span,
.soil-docx-program-head span { color:var(--muted); font-size:.9rem; }
.soil-docx-program-review {
  margin-top:14px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:16px;
  background:color-mix(in srgb, var(--panel) 92%, transparent);
}
.soil-docx-program-head h4 { margin:0; }
.soil-docx-program-stages { display:grid; gap:8px; margin:12px 0; }
.soil-docx-program-stages details,
.soil-source-program-stage,
.soil-source-program-notes {
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--card);
  overflow:hidden;
}
.soil-docx-program-stages summary,
.soil-source-program-stage > summary,
.soil-source-program-notes > summary {
  cursor:pointer;
  padding:10px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.soil-docx-program-stages summary span,
.soil-source-program-stage > summary span { display:grid; gap:2px; }
.soil-docx-program-stages summary small,
.soil-source-program-stage > summary small { color:var(--muted); }
.soil-docx-program-stages details > div { padding:0 12px 12px; }
.soil-docx-program-stages ul,
.soil-source-program-stage-body ul,
.soil-source-program-notes ul { margin:0; padding-left:20px; }
.soil-docx-program-stages li {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:5px 0;
  border-bottom:1px solid color-mix(in srgb, var(--border) 65%, transparent);
}
.soil-docx-program-stages li:last-child { border-bottom:0; }
.soil-docx-program-stages li span { color:var(--muted); white-space:nowrap; }
.soil-source-program-card[hidden] { display:none; }
.soil-source-program-summary {
  margin-bottom:10px;
  padding:10px 12px;
  border-radius:12px;
  background:var(--panel);
}
.soil-source-program-summary span { display:grid; gap:2px; }
.soil-source-program-stage { margin-bottom:8px; }
.soil-source-program-stage-body { padding:0 12px 12px; }
.soil-source-program-table-wrap { overflow-x:auto; }
.soil-source-program-table { min-width:620px; }
.soil-source-program-table td small { display:block; color:var(--muted); margin-top:2px; }
.soil-source-program-stage-body > ul { margin-top:10px; color:var(--muted); }
.soil-source-program-notes { margin-bottom:10px; }
.soil-source-program-notes ul { padding:0 30px 12px; }

@media (max-width: 720px) {
  .soil-docx-program-stages li { align-items:flex-start; flex-direction:column; gap:2px; }
  .soil-docx-program-stages li span { white-space:normal; }
  .soil-source-program-table { min-width:0; width:100%; }
  .soil-source-program-table thead { display:none; }
  .soil-source-program-table tr { display:block; padding:8px 0; border-bottom:1px solid var(--border); }
  .soil-source-program-table td { display:grid; grid-template-columns:105px minmax(0,1fr); gap:8px; padding:4px 0; border:0; }
  .soil-source-program-table td::before { content:attr(data-label); color:var(--muted); font-size:.82rem; font-weight:700; }
}

/* Soil DOCX Phase 7 — source narrative and provenance */
.soil-source-narrative-card[hidden] { display:none; }
.soil-source-narrative-summary,
.soil-provenance-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:8px;
  margin-bottom:10px;
}
.soil-source-narrative-summary span,
.soil-provenance-grid span {
  display:grid;
  gap:2px;
  padding:9px 10px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--panel,rgba(255,255,255,.03));
}
.soil-source-narrative-section,
.soil-import-provenance {
  margin-bottom:8px;
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  background:var(--panel,rgba(255,255,255,.02));
}
.soil-source-narrative-section > summary,
.soil-import-provenance > summary {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  padding:10px 12px;
  cursor:pointer;
}
.soil-source-narrative-section > summary span:first-child,
.soil-import-provenance > summary span:first-child { display:grid; gap:2px; }
.soil-source-narrative-section > summary small,
.soil-import-provenance > summary small { color:var(--muted); }
.soil-source-narrative-text,
.soil-docx-narrative-preview {
  margin:0;
  padding:12px;
  border-top:1px solid var(--border);
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  line-height:1.5;
  color:var(--text);
}
.soil-provenance-grid { padding:0 12px; }
.soil-provenance-hash { display:grid; gap:4px; padding:0 12px 12px; }
.soil-provenance-hash code { overflow-wrap:anywhere; font-size:.78rem; }
.soil-provenance-changes { margin:0; padding:0 30px 12px; }
.soil-docx-narrative-review .soil-docx-program-stages details > div { padding:0; }

@media (max-width:640px) {
  .soil-source-narrative-section > summary,
  .soil-import-provenance > summary { align-items:flex-start; }
  .soil-source-narrative-text,
  .soil-docx-narrative-preview { font-size:.9rem; }
}

/* Soil DOCX review confirmation — the footer action is the confirmation. */
.soil-docx-sample-confirm {
  cursor: default;
  color: var(--muted);
  background: rgb(15 23 42 / 3%);
}

/* ===== soil_phase7.css ===== */
/* Soil Phase 7 — phone-first layout and accessible calculator presentation. */

#tab-soil .soil-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

#tab-soil .soil-calculator-layout {
  grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr);
  gap: 14px;
  align-items: start;
}

#tab-soil .soil-input-panel,
#tab-soil .soil-output-panel {
  min-width: 0;
}

#tab-soil .soil-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
  align-items: start;
}

#tab-soil .soil-field {
  display: grid;
  min-width: 0;
  gap: 6px;
}

#tab-soil .soil-field > .lbl {
  margin: 0;
}

#tab-soil .soil-field-full {
  grid-column: 1 / -1;
}

#tab-soil .soil-check-field {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  min-height: 42px;
  padding: 9px 10px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(17, 24, 39, .025);
  color: var(--muted2);
  font-size: 13px;
  line-height: 1.35;
  cursor: pointer;
}

#tab-soil .soil-check-field input {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 0;
}

#tab-soil .soil-amendment-table-wrap {
  max-width: 100%;
  overflow-x: auto;
}

#tab-soil .soil-amendment-table {
  min-width: 680px;
}

#tab-soil .soil-amendment-table th[scope="col"],
#tab-soil .soil-results-table th[scope="col"] {
  text-align: left;
}

#tab-soil .soil-output-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

#tab-soil .soil-ratio-list {
  display: grid;
  gap: 8px;
}

#tab-soil .soil-ratio-list .soil-pill {
  width: 100%;
  margin: 0 !important;
  border-radius: 13px;
  flex-wrap: wrap;
  justify-content: space-between;
}

#tab-soil :is(button, input, select, summary):focus-visible {
  outline: 3px solid rgba(249, 115, 22, .42);
  outline-offset: 2px;
}

@media (max-width: 1120px) {
  #tab-soil .soil-calculator-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  #tab-soil > .card {
    padding: 13px;
  }

  #tab-soil .soil-header {
    display: block;
  }

  #tab-soil .soil-toolbar {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    margin-top: 12px;
  }

  #tab-soil .soil-toolbar .btn,
  #tab-soil .soil-toolbar .input {
    width: 100% !important;
    min-width: 0 !important;
  }

  #tab-soil .soil-toolbar #soil_btn_save,
  #tab-soil .soil-toolbar #soil_preset {
    grid-column: 1 / -1;
  }

  #tab-soil .soil-input-panel,
  #tab-soil .soil-output-panel,
  #tab-soil .soil-output-panel > .card {
    padding: 12px;
  }

  #tab-soil .soil-field-grid {
    grid-template-columns: 1fr;
  }

  #tab-soil .soil-field-full {
    grid-column: auto;
  }

  #tab-soil .soil-amendment-table-wrap {
    overflow: visible;
  }

  #tab-soil .soil-amendment-table {
    display: block;
    min-width: 0;
    border-collapse: separate;
  }

  #tab-soil .soil-amendment-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  #tab-soil .soil-amendment-table tbody,
  #tab-soil .soil-amendment-table tr,
  #tab-soil .soil-amendment-table td {
    display: block;
    width: 100%;
  }

  #tab-soil .soil-amendment-table tr {
    margin-bottom: 12px;
    padding: 4px 11px;
    border: 1px solid var(--border);
    border-radius: 15px;
    background: var(--card);
    box-shadow: 0 7px 20px rgba(17, 24, 39, .045);
  }

  #tab-soil .soil-amendment-table td {
    display: grid;
    grid-template-columns: minmax(76px, .32fr) minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid rgba(17, 24, 39, .08);
    background: transparent !important;
  }

  #tab-soil .soil-amendment-table td:last-child {
    border-bottom: 0;
  }

  #tab-soil .soil-amendment-table td::before {
    content: attr(data-label);
    color: var(--muted2);
    font-size: 12px;
    font-weight: 950;
  }

  #tab-soil .soil-amendment-table td[data-label="Product"] {
    align-items: start;
  }

  #tab-soil .soil-amendment-table td[data-label="Remove"] .btn {
    width: 100%;
  }

  #tab-soil .soil-results-table {
    display: block;
  }

  #tab-soil .soil-results-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  #tab-soil .soil-results-table tbody {
    display: grid;
    gap: 9px;
  }

  #tab-soil .soil-results-table tr {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: rgba(17, 24, 39, .018);
  }

  #tab-soil .soil-results-table td {
    display: grid;
    gap: 3px;
    padding: 5px 7px;
    border: 0;
    background: transparent !important;
    text-align: left;
  }

  #tab-soil .soil-results-table td:first-child {
    grid-column: 1 / -1;
    padding-bottom: 7px;
    border-bottom: 1px solid rgba(17, 24, 39, .08);
    font-size: 15px;
  }

  #tab-soil .soil-results-table td::before {
    content: attr(data-label);
    color: var(--muted2);
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .035em;
  }

  #tab-soil .soil-output-grid {
    grid-template-columns: 1fr !important;
  }

  #tab-soil .soil-target-grid {
    grid-template-columns: 1fr;
  }

  #tab-soil .soil-target-field,
  #tab-soil .soil-target-check {
    width: 100%;
  }
}

@media (max-width: 480px) {
  #tab-soil .soil-ppm-grid {
    grid-template-columns: 1fr;
  }

  #tab-soil .soil-toolbar {
    grid-template-columns: 1fr;
  }

  #tab-soil .soil-toolbar > * {
    grid-column: auto !important;
  }

  #tab-soil .soil-results-table tr {
    grid-template-columns: 1fr;
  }

  #tab-soil .soil-results-table td:first-child {
    grid-column: auto;
  }
}

/* ===== soil_phase8.css ===== */
/* Soil Phase 8 — durable records, sync status, history, and exports. */

#tab-soil .soil-records-panel {
  display: grid;
  gap: 12px;
  margin: 0;
}

#tab-soil .soil-records-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

#tab-soil #soil_sync_status {
  flex: 0 0 auto;
  white-space: nowrap;
}

#tab-soil #soil_sync_status.good {
  color: #166534;
  border-color: rgba(22, 101, 52, .22);
  background: rgba(34, 197, 94, .10);
}

#tab-soil #soil_sync_status.warn {
  color: #9a3412;
  border-color: rgba(154, 52, 18, .22);
  background: rgba(249, 115, 22, .10);
}

#tab-soil #soil_sync_status.bad {
  color: #991b1b;
  border-color: rgba(153, 27, 27, .22);
  background: rgba(239, 68, 68, .10);
}

#tab-soil .soil-record-controls {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) repeat(4, auto);
  gap: 10px;
  align-items: end;
}

#tab-soil .soil-history-field {
  min-width: 0;
}

#tab-soil .soil-history-summary {
  margin: 0;
}

#tab-soil .soil-sync-conflict {
  display: grid;
  gap: 10px;
}

#tab-soil .soil-sync-conflict[hidden] {
  display: none;
}

#tab-soil .soil-conflict-actions {
  gap: 8px;
  justify-content: flex-end;
}

@media (max-width: 1040px) {
  #tab-soil .soil-record-controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #tab-soil .soil-history-field {
    grid-column: 1 / -1;
  }

  #tab-soil .soil-record-controls .btn {
    width: 100%;
  }
}

@media (max-width: 720px) {
  #tab-soil .soil-records-head {
    display: grid;
  }

  #tab-soil #soil_sync_status {
    justify-self: start;
  }

  #tab-soil .soil-record-controls {
    grid-template-columns: 1fr;
  }

  #tab-soil .soil-history-field {
    grid-column: auto;
  }

  #tab-soil .soil-conflict-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
}

#tab-soil .soil-preset-recovery {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
}

#tab-soil .soil-preset-recovery[hidden] {
  display: none;
}

#tab-soil .soil-preset-recovery-actions {
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

@media (max-width: 720px) {
  #tab-soil .soil-preset-recovery {
    display: grid;
  }

  #tab-soil .soil-preset-recovery-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  #tab-soil .soil-preset-recovery-actions .btn {
    width: 100%;
  }
}

/* ===== soil_phase9.css ===== */
.soil-profile-summary {
  margin-top: 9px;
  padding: 9px 11px;
  border: 1px solid rgba(148, 163, 184, .25);
  border-radius: 10px;
  background: rgba(15, 23, 42, .22);
}

.soil-method-controls {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto;
  gap: 10px;
  align-items: end;
}

.soil-method-field {
  display: grid;
  gap: 5px;
  margin: 0;
}

.soil-method-field .input {
  width: 100%;
  min-width: 0;
}

.soil-method-status {
  grid-column: 1 / -1;
  margin: 0;
}

.soil-phase9-warnings:empty {
  display: none;
}

.soil-phase9-warnings .notice {
  margin-bottom: 10px;
}

.soil-application-plan {
  margin-top: 10px;
  padding: 9px 11px;
  border-left: 3px solid rgba(249, 115, 22, .85);
  border-radius: 8px;
  background: rgba(249, 115, 22, .08);
}

.soil-ph-combined-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.soil-ph-combined {
  padding: 10px;
  border: 1px solid rgba(148, 163, 184, .24);
  border-radius: 10px;
  text-align: center;
}

.soil-ph-combined.selected {
  border-color: rgba(249, 115, 22, .9);
  background: rgba(249, 115, 22, .10);
  box-shadow: 0 0 0 1px rgba(249, 115, 22, .22);
}

.soil-ph-combined span,
.soil-ph-combined small {
  display: block;
}

.soil-ph-combined b {
  display: block;
  margin: 3px 0;
  font-size: 1.12rem;
}

@media (max-width: 720px) {
  .soil-method-controls {
    grid-template-columns: 1fr;
  }

  .soil-method-controls .btn {
    width: 100%;
  }

  .soil-ph-combined-grid {
    grid-template-columns: 1fr;
  }

  .soil-ph-combined {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 6px 12px;
    text-align: left;
  }

  .soil-ph-combined small {
    grid-column: 1 / -1;
  }
}

.soil-validation-basis {
  margin-top: 8px;
  border: 1px solid rgba(148, 163, 184, .24);
  border-radius: 10px;
  background: rgba(15, 23, 42, .18);
}

.soil-validation-basis summary {
  padding: 10px 12px;
  cursor: pointer;
  font-weight: 700;
}

.soil-validation-basis-content {
  padding: 0 12px 12px;
}

.soil-validation-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 9px;
}

.soil-validation-item {
  padding: 9px 10px;
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 8px;
  background: rgba(15, 23, 42, .18);
}

.soil-validation-item b,
.soil-validation-item span {
  display: block;
}

.soil-validation-sources {
  margin: 8px 0 0 18px;
  padding: 0;
}

.soil-validation-sources a {
  overflow-wrap: anywhere;
}

@media (max-width: 720px) {
  .soil-validation-grid {
    grid-template-columns: 1fr;
  }
}

.soil-phosphorus-override {
  grid-column: 1 / -1;
  border: 1px solid rgba(148, 163, 184, .24);
  border-radius: 10px;
  background: rgba(15, 23, 42, .12);
}

.soil-phosphorus-override summary {
  padding: 10px 12px;
  cursor: pointer;
  font-weight: 750;
}

.soil-phosphorus-override[open] summary {
  border-bottom: 1px solid rgba(148, 163, 184, .18);
}

.soil-phosphorus-override .soil-method-controls {
  padding: 12px 12px 8px;
}

.soil-phosphorus-override-help {
  padding: 0 12px 12px;
}

/* ===== soil_phase10.css ===== */
/* Soil Autopilot Phase 1 */
.soil-optimizer-modebar{
  display:grid;
  grid-template-columns:minmax(250px,360px) minmax(260px,1fr);
  gap:12px;
  align-items:center;
  padding:12px;
  border:1px solid var(--line,rgba(15,23,42,.12));
  border-radius:16px;
  background:linear-gradient(135deg,rgba(249,115,22,.08),rgba(255,255,255,.5));
}
.soil-optimizer-mode{display:grid;gap:5px;font-weight:800}
.soil-optimizer-mode>span{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#64748b)}
.soil-optimizer-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:8px;
  margin-top:10px;
}
.soil-opt-stat{
  min-width:0;
  display:grid;
  gap:3px;
  padding:10px 12px;
  border:1px solid var(--line,rgba(15,23,42,.12));
  border-radius:14px;
  background:rgba(255,255,255,.7);
}
.soil-opt-stat span{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#64748b);font-weight:800}
.soil-opt-stat b{font-size:.9rem;overflow-wrap:anywhere}
.soil-opt-table-wrap{overflow:auto;margin:12px 0;border:1px solid var(--line,rgba(15,23,42,.12));border-radius:14px}
.soil-opt-ratio-table{margin:0;min-width:560px}
.soil-opt-ratio-table td:first-child{display:grid;gap:2px}
.soil-opt-ratio-table td:first-child small{color:var(--muted,#64748b)}
.soil-opt-ratio-table tr.soil-opt-ratio-good td{background:rgba(34,197,94,.06)}
.soil-opt-ratio-table tr.soil-opt-ratio-improved td{background:rgba(245,158,11,.07)}
.soil-opt-ratio-table tr.soil-opt-ratio-bad td{background:rgba(239,68,68,.08)}
.soil-opt-products{display:grid;gap:10px}
.soil-opt-product-card{border-left:4px solid rgba(249,115,22,.72)}
.soil-opt-details{
  margin-top:10px;
  padding:10px 12px;
  border:1px solid var(--line,rgba(15,23,42,.12));
  border-radius:14px;
  background:rgba(255,255,255,.58);
}
.soil-opt-details summary{cursor:pointer;font-weight:850}
.soil-opt-details ul{margin:10px 0 0 18px;padding:0;display:grid;gap:6px}
.soil-opt-unresolved{display:grid;gap:7px;margin-top:10px}
@media (max-width:900px){
  .soil-optimizer-modebar{grid-template-columns:1fr}
  .soil-optimizer-summary{grid-template-columns:repeat(2,minmax(120px,1fr))}
}
@media (max-width:540px){
  .soil-optimizer-summary{grid-template-columns:1fr 1fr}
  .soil-opt-stat{padding:8px 9px}
}

/* ===== soil_phase11.css ===== */
/* Soil Autopilot Phase 2 — verified product intelligence and inventory */
.soil-product-summary{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;margin-top:12px}
.soil-product-summary-card{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.72)}
.soil-product-summary-card span{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:850}
.soil-product-summary-card b{font-size:.95rem}
.soil-product-attention{margin-top:10px;padding:10px 12px;border-radius:13px;background:rgba(17,24,39,.025);border:1px solid var(--border)}
.soil-product-overlay{padding:12px}
.soil-product-modal{width:min(1320px,98vw);max-height:96vh;overflow:hidden;padding:0;display:flex;flex-direction:column}
.soil-product-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border)}
.soil-product-modal-grid{display:grid;grid-template-columns:minmax(270px,340px) minmax(0,1fr);min-height:0;flex:1}
.soil-product-browser{padding:14px;border-right:1px solid var(--border);background:rgba(17,24,39,.018);display:flex;flex-direction:column;gap:10px;min-height:0}
.soil-product-filter-row{display:grid;grid-template-columns:1fr;gap:8px}
.soil-product-list{display:grid;gap:7px;overflow:auto;min-height:0;padding-right:3px}
.soil-product-list-item{width:100%;text-align:left;border:1px solid var(--border);background:#fff;border-radius:13px;padding:10px;cursor:pointer;display:grid;gap:5px}
.soil-product-list-item:hover{border-color:rgba(249,115,22,.5)}
.soil-product-list-item.active{border-color:rgba(249,115,22,.9);box-shadow:0 0 0 3px rgba(249,115,22,.12)}
.soil-product-list-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;font-weight:900}
.soil-product-list-meta{display:flex;gap:5px;flex-wrap:wrap;font-size:.72rem;color:var(--muted)}
.soil-product-mini-badge{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;padding:2px 7px;background:rgba(17,24,39,.025);white-space:nowrap}
.soil-product-mini-badge.good{border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.08)}
.soil-product-mini-badge.warn{border-color:rgba(245,158,11,.4);background:rgba(245,158,11,.08)}
.soil-product-editor{padding:16px;overflow:auto;min-height:0}
.soil-product-editor-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.soil-product-active{display:flex;align-items:center;gap:7px;font-weight:850;white-space:nowrap}
.soil-product-section{border:1px solid var(--border);border-radius:16px;padding:13px;margin-top:12px;background:rgba(255,255,255,.7)}
.soil-product-section h4{margin:0 0 8px}
.soil-product-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.soil-product-fields{display:grid;gap:10px;margin-top:10px}
.soil-product-fields.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.soil-product-fields.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.soil-product-fields label,.soil-product-inline-form label{display:grid;gap:5px;font-size:.78rem;font-weight:800;color:var(--muted)}
.soil-product-fields .span-2{grid-column:span 2}
.soil-product-analysis-grid,.soil-product-forms-grid{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:9px;margin-top:10px}
.soil-product-analysis-field,.soil-product-form-field{display:grid;gap:4px;font-size:.75rem;color:var(--muted);font-weight:850}
.soil-product-analysis-field .input{text-align:right}
.soil-product-record-list{display:grid;gap:8px;margin-top:10px}
.soil-product-record{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:10px;border:1px solid var(--border);border-radius:13px;background:rgba(17,24,39,.018)}
.soil-product-record-main{display:grid;gap:4px;min-width:0}
.soil-product-record-main b{overflow-wrap:anywhere}
.soil-product-record-actions{display:flex;gap:6px;flex-wrap:wrap}
.soil-product-inline-form{display:grid;grid-template-columns:1.4fr .8fr 1fr 1fr auto auto;gap:8px;align-items:end;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.soil-product-inline-form.inventory{grid-template-columns:repeat(3,minmax(0,1fr))}
.soil-product-inline-form.inventory button{align-self:end}
.soil-product-check{display:flex!important;grid-auto-flow:column;justify-content:start;align-items:center;gap:7px;padding-bottom:9px;color:var(--text)!important}
.soil-inventory-pill{display:inline-flex;gap:5px;align-items:center;border-radius:999px;padding:3px 8px;background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.28);font-size:.72rem;font-weight:850}
.soil-opt-inventory-line{margin-top:7px;padding:8px 10px;border-radius:11px;border:1px solid var(--border);background:rgba(17,24,39,.025)}
.soil-opt-inventory-line.good{border-color:rgba(34,197,94,.32);background:rgba(34,197,94,.07)}
.soil-opt-inventory-line.warn{border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.07)}
@media(max-width:1000px){
  .soil-product-summary{grid-template-columns:repeat(2,minmax(120px,1fr))}
  .soil-product-modal-grid{grid-template-columns:280px minmax(0,1fr)}
  .soil-product-fields.three{grid-template-columns:repeat(2,minmax(0,1fr))}
  .soil-product-analysis-grid,.soil-product-forms-grid{grid-template-columns:repeat(3,minmax(100px,1fr))}
  .soil-product-inline-form{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .soil-product-overlay{padding:0}
  .soil-product-modal{width:100vw;height:100dvh;max-height:100dvh;border-radius:0}
  .soil-product-modal-grid{grid-template-columns:1fr;overflow:auto}
  .soil-product-browser{border-right:0;border-bottom:1px solid var(--border);min-height:300px;max-height:42vh}
  .soil-product-editor{overflow:visible}
  .soil-product-fields.two,.soil-product-fields.three,.soil-product-inline-form.inventory{grid-template-columns:1fr}
  .soil-product-fields .span-2{grid-column:auto}
  .soil-product-analysis-grid,.soil-product-forms-grid{grid-template-columns:repeat(2,minmax(100px,1fr))}
}

/* ===== soil_phase12.css ===== */
/* Soil Autopilot Phase 3 — live deal scanning and delivered-cost purchase plans */
.soil-deal-summary{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px;margin-top:12px}
.soil-deal-summary-card{display:grid;gap:3px;padding:11px 12px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.74)}
.soil-deal-summary-card span{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:900}.soil-deal-summary-card b{font-size:.94rem}.soil-deal-summary-card small{color:var(--muted)}
.soil-deal-attention{margin-top:10px;padding:10px 12px;border:1px solid var(--border);border-radius:13px;background:rgba(17,24,39,.025)}.soil-deal-attention.warn{border-color:rgba(245,158,11,.4);background:rgba(245,158,11,.08)}
.soil-deal-good{color:#15803d;font-weight:900}.soil-deal-warn{color:#a16207;font-weight:800}
.soil-deal-overlay{padding:12px}.soil-deal-modal{width:min(1280px,98vw);max-height:96vh;overflow:hidden;padding:0;display:flex;flex-direction:column}.soil-deal-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border)}
.soil-deal-modal-grid{display:grid;grid-template-columns:minmax(290px,370px) minmax(0,1fr);min-height:0;flex:1}.soil-deal-controls{padding:14px;border-right:1px solid var(--border);overflow:auto;background:rgba(17,24,39,.018)}.soil-deal-results{padding:14px;overflow:auto}
.soil-deal-section{border:1px solid var(--border);border-radius:15px;padding:12px;margin-bottom:10px;background:rgba(255,255,255,.72)}.soil-deal-section h4{margin:0 0 7px}.soil-deal-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.soil-deal-fields label{display:grid;gap:4px;font-size:.76rem;font-weight:850;color:var(--muted)}.soil-deal-fields .span-2{grid-column:span 2}.soil-deal-check{display:flex!important;align-items:center;gap:7px;color:var(--text)!important}.soil-deal-provider{padding:8px 10px;border-radius:11px;background:rgba(17,24,39,.03);border:1px solid var(--border);margin-bottom:8px}
.soil-deal-offers{display:grid;gap:9px}.soil-deal-offer{border:1px solid var(--border);border-radius:15px;padding:11px;background:#fff}.soil-deal-offer.verified{border-color:rgba(34,197,94,.4)}.soil-deal-offer.probable,.soil-deal-offer.review_required{border-color:rgba(245,158,11,.4)}.soil-deal-offer.rejected{opacity:.65}.soil-deal-offer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.soil-deal-offer-head>div{display:grid;gap:3px;min-width:0}.soil-deal-offer-head a{overflow-wrap:anywhere}.soil-deal-status{border-radius:999px;padding:3px 8px;border:1px solid var(--border);font-size:.7rem;font-weight:900;white-space:nowrap}.soil-deal-status.verified{background:rgba(34,197,94,.09);border-color:rgba(34,197,94,.35)}.soil-deal-status.probable,.soil-deal-status.review_required{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.35)}.soil-deal-price-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}.soil-deal-price-row strong{font-size:1.05rem}.soil-deal-price-row span{border-radius:999px;padding:3px 8px;background:rgba(17,24,39,.035);border:1px solid var(--border);font-size:.73rem}.soil-deal-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.soil-deal-plan-out{margin-top:12px}.soil-deal-plan{display:grid;gap:10px;border:1px solid var(--border);border-radius:17px;padding:13px;background:linear-gradient(180deg,rgba(249,115,22,.04),rgba(255,255,255,.78))}.soil-deal-plan-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.soil-deal-plan-head h3{margin:1px 0 2px}.soil-deal-plan-total{display:grid;text-align:right}.soil-deal-plan-total span{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:900}.soil-deal-plan-total b{font-size:1.2rem}.soil-deal-buy-card{border:1px solid var(--border);border-radius:15px;padding:11px;background:#fff;display:grid;gap:8px}.soil-deal-buy-card.missing{border-color:rgba(245,158,11,.4)}.soil-deal-buy-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.soil-deal-buy-head>div{display:grid}.soil-deal-buy-head span{color:var(--muted);font-size:.75rem}.soil-deal-best{display:inline-flex;border-radius:999px;padding:3px 8px;background:rgba(34,197,94,.09);border:1px solid rgba(34,197,94,.35);font-size:.7rem!important;font-weight:900;color:#166534!important}.soil-deal-buy-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.soil-deal-buy-grid>div{display:grid;padding:7px 8px;border-radius:11px;background:rgba(17,24,39,.025);border:1px solid var(--border)}.soil-deal-buy-grid span{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:850}.soil-deal-buy-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
@media(max-width:900px){.soil-deal-summary{grid-template-columns:repeat(2,minmax(120px,1fr))}.soil-deal-modal-grid{grid-template-columns:310px minmax(0,1fr)}.soil-deal-buy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.soil-deal-overlay{padding:0}.soil-deal-modal{width:100vw;height:100dvh;max-height:100dvh;border-radius:0}.soil-deal-modal-grid{grid-template-columns:1fr;overflow:auto}.soil-deal-controls{border-right:0;border-bottom:1px solid var(--border);overflow:visible}.soil-deal-results{overflow:visible}.soil-deal-fields{grid-template-columns:1fr}.soil-deal-fields .span-2{grid-column:auto}.soil-deal-offer-head,.soil-deal-plan-head,.soil-deal-buy-head{flex-direction:column}.soil-deal-plan-total{text-align:left}.soil-deal-buy-grid{grid-template-columns:1fr 1fr}}

/* ===== soil_phase13.css ===== */
/* Soil Autopilot Phase 4 — responsive plan comparison, approval workflow, and exports.
 * Build 2026.07.28.42 adds component/container responsive behavior so this card
 * lays out correctly inside the narrower Results column even on a wide monitor.
 */

.soil-buy-plan-card {
  container-name: soil-buy-plan;
  container-type: inline-size;
  min-width: 0;
  overflow: clip;
}

.soil-buy-plan-heading {
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.soil-buy-plan-heading > div:first-child {
  flex: 1 1 360px;
  min-width: 0;
}

.soil-buy-plan-heading > .btn {
  flex: 0 0 auto;
  white-space: nowrap;
}

.soil-buy-plan-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.soil-buy-plan-summary > div {
  display: grid;
  align-content: start;
  gap: 2px;
  min-width: 0;
  padding: 9px 11px;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: rgba(255, 255, 255, .74);
}

.soil-buy-plan-summary span,
.soil-buy-variant-stats span,
.soil-buy-saved-total span {
  font-size: .68rem;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: .045em;
  color: var(--muted);
  font-weight: 900;
}

.soil-buy-plan-summary b {
  min-width: 0;
  font-size: .92rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.soil-buy-plan-status {
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: rgba(17, 24, 39, .025);
  line-height: 1.4;
}

.soil-buy-plan-status.good {
  border-color: rgba(34, 197, 94, .4);
  background: rgba(34, 197, 94, .075);
}

.soil-buy-plan-status.warn {
  border-color: rgba(245, 158, 11, .45);
  background: rgba(245, 158, 11, .08);
}

.soil-buy-plan-variants {
  display: grid;
  grid-template-columns: repeat(3, minmax(250px, 1fr));
  gap: 12px;
  align-items: start;
  margin-top: 12px;
}

.soil-buy-variant {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  max-width: 100%;
  padding: 13px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 17px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(249, 250, 251, .82));
  box-shadow: 0 4px 16px rgba(15, 23, 42, .025);
}

.soil-buy-variant.selected {
  border-color: rgba(249, 115, 22, .72);
  box-shadow: 0 0 0 2px rgba(249, 115, 22, .11), 0 9px 24px rgba(15, 23, 42, .055);
}

.soil-buy-variant-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 10px;
  min-width: 0;
}

.soil-buy-variant-head > div {
  min-width: 0;
}

.soil-buy-variant-head .eyebrow {
  overflow-wrap: anywhere;
}

.soil-buy-variant-head h4 {
  margin: 2px 0 4px;
  font-size: 1rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.soil-buy-variant-head p {
  margin: 0;
  color: var(--muted);
  font-size: .76rem;
  line-height: 1.42;
  overflow-wrap: anywhere;
}

.soil-buy-variant-head .btn {
  align-self: start;
  min-width: 92px;
  max-width: 120px;
  white-space: normal;
  line-height: 1.15;
  text-align: center;
}

.soil-buy-markers {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  min-height: 22px;
}

.soil-buy-marker {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 3px 7px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #fff;
  font-size: .66rem;
  line-height: 1.25;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.soil-buy-marker.agronomic {
  border-color: rgba(34, 197, 94, .35);
  background: rgba(34, 197, 94, .08);
}

.soil-buy-marker.cost {
  border-color: rgba(14, 165, 233, .35);
  background: rgba(14, 165, 233, .08);
}

.soil-buy-marker.simple {
  border-color: rgba(168, 85, 247, .35);
  background: rgba(168, 85, 247, .08);
}

.soil-buy-marker.duplicate {
  color: var(--muted);
}

.soil-buy-variant-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.soil-buy-variant-stats > div {
  display: grid;
  align-content: start;
  gap: 3px;
  min-width: 0;
  min-height: 62px;
  padding: 8px 9px;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: rgba(17, 24, 39, .025);
}

.soil-buy-variant-stats b {
  min-width: 0;
  font-size: .88rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.soil-buy-variant details {
  min-width: 0;
  margin-top: auto;
  border-top: 1px solid rgba(15, 23, 42, .07);
  padding-top: 2px;
}

.soil-buy-variant summary {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  padding: 7px 1px 4px;
  font-size: .78rem;
  line-height: 1.35;
  font-weight: 900;
  cursor: pointer;
  overflow-wrap: anywhere;
}

.soil-buy-variant summary::marker {
  color: var(--muted);
}

.soil-buy-lines {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
  gap: 8px;
  min-width: 0;
  margin-top: 7px;
}

.soil-buy-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: rgba(255, 255, 255, .82);
}

.soil-buy-product,
.soil-buy-source {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.soil-buy-product b,
.soil-buy-source b {
  min-width: 0;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.soil-buy-product span,
.soil-buy-product small,
.soil-buy-source span,
.soil-buy-source small {
  min-width: 0;
  font-size: .72rem;
  line-height: 1.38;
  color: var(--muted);
  overflow-wrap: anywhere;
}

.soil-buy-source {
  align-content: start;
  padding: 8px 9px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
}

.soil-buy-source > span {
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: 900;
}

.soil-buy-source a {
  width: fit-content;
  max-width: 100%;
  font-size: .72rem;
  font-weight: 850;
  overflow-wrap: anywhere;
}

.soil-buy-source.owned {
  border-color: rgba(34, 197, 94, .32);
  background: rgba(34, 197, 94, .055);
}

.soil-buy-source.missing {
  border-color: rgba(245, 158, 11, .4);
  background: rgba(245, 158, 11, .065);
}

.soil-buy-plan-actions {
  min-width: 0;
  margin-top: 12px;
  padding: 11px;
  border: 1px solid var(--border);
  border-radius: 15px;
  background: rgba(255, 255, 255, .72);
}

.soil-buy-plan-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.soil-buy-plan-fields label {
  display: grid;
  gap: 4px;
  min-width: 0;
  font-size: .72rem;
  color: var(--muted);
  font-weight: 850;
}

.soil-buy-plan-fields .input {
  min-width: 0;
  width: 100%;
}

.soil-buy-plan-action-buttons {
  justify-content: flex-end;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 9px;
}

.soil-buy-plan-saved {
  min-width: 0;
  margin-top: 12px;
}

.soil-buy-plan-saved > summary {
  cursor: pointer;
  font-weight: 900;
}

.soil-buy-plan-saved-list {
  display: grid;
  gap: 7px;
  min-width: 0;
  margin-top: 8px;
}

.soil-buy-saved-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 10px;
  align-items: center;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: rgba(255, 255, 255, .76);
}

.soil-buy-saved-row > div:first-child {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 7px;
  align-items: center;
  min-width: 0;
}

.soil-buy-saved-row b,
.soil-buy-saved-row small {
  min-width: 0;
  overflow-wrap: anywhere;
}

.soil-buy-saved-row small {
  grid-column: 2;
  color: var(--muted);
}

.soil-buy-status {
  display: inline-flex;
  align-items: center;
  padding: 3px 7px;
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: .66rem;
  font-weight: 900;
}

.soil-buy-status.good {
  border-color: rgba(34, 197, 94, .35);
  background: rgba(34, 197, 94, .08);
}

.soil-buy-status.ordered {
  border-color: rgba(14, 165, 233, .35);
  background: rgba(14, 165, 233, .08);
}

.soil-buy-status.draft {
  background: rgba(107, 114, 128, .07);
}

.soil-buy-saved-total {
  display: grid;
  min-width: 0;
  text-align: right;
}

.soil-buy-saved-total b {
  overflow-wrap: anywhere;
}

.soil-buy-saved-actions {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

/* Component responsive rules. These react to the actual Phase 4 card width,
 * not the browser viewport, which fixes the narrow Results-column layout. */
@container soil-buy-plan (max-width: 1040px) {
  .soil-buy-plan-variants {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .soil-buy-plan-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .soil-buy-saved-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .soil-buy-saved-actions {
    grid-column: 1 / -1;
  }
}

@container soil-buy-plan (max-width: 700px) {
  .soil-buy-plan-variants {
    grid-template-columns: minmax(0, 1fr);
  }

  .soil-buy-variant {
    min-height: 0;
  }

  .soil-buy-plan-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .soil-buy-line {
    grid-template-columns: minmax(0, 1fr);
  }

  .soil-buy-plan-fields,
  .soil-buy-saved-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .soil-buy-saved-total {
    text-align: left;
  }

  .soil-buy-saved-actions {
    grid-column: auto;
    justify-content: flex-start;
  }
}

@container soil-buy-plan (max-width: 500px) {
  .soil-buy-plan-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .soil-buy-plan-heading > .btn {
    width: 100%;
  }

  .soil-buy-plan-summary {
    grid-template-columns: minmax(0, 1fr);
  }

  .soil-buy-variant-head {
    grid-template-columns: minmax(0, 1fr);
  }

  .soil-buy-variant-head .btn {
    width: 100%;
    max-width: none;
  }

  .soil-buy-variant-stats {
    grid-template-columns: minmax(0, 1fr);
  }

  .soil-buy-plan-action-buttons {
    justify-content: stretch;
  }

  .soil-buy-plan-action-buttons .btn {
    flex: 1 1 100%;
    width: 100%;
  }

  .soil-buy-saved-row > div:first-child {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 5px;
  }

  .soil-buy-saved-row small {
    grid-column: auto;
  }
}

/* Viewport fallbacks for older browsers without container-query support. */
@media (max-width: 1100px) {
  @supports not (container-type: inline-size) {
    .soil-buy-plan-variants {
      grid-template-columns: minmax(0, 1fr);
    }

    .soil-buy-plan-summary {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .soil-buy-saved-row {
      grid-template-columns: minmax(0, 1fr) auto;
    }

    .soil-buy-saved-actions {
      grid-column: 1 / -1;
    }
  }
}

@media (max-width: 720px) {
  @supports not (container-type: inline-size) {
    .soil-buy-plan-summary {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .soil-buy-plan-fields,
    .soil-buy-line,
    .soil-buy-saved-row {
      grid-template-columns: minmax(0, 1fr);
    }

    .soil-buy-variant-head {
      grid-template-columns: minmax(0, 1fr);
    }

    .soil-buy-variant-head .btn {
      width: 100%;
      max-width: none;
    }

    .soil-buy-plan-action-buttons {
      justify-content: stretch;
    }

    .soil-buy-plan-action-buttons .btn {
      flex: 1 1 46%;
    }

    .soil-buy-saved-total {
      text-align: left;
    }

    .soil-buy-saved-actions {
      grid-column: auto;
      justify-content: flex-start;
    }
  }
}

/* ===== soil_phase14.css ===== */
.soil-application-card{border:1px solid rgba(249,115,22,.28);background:linear-gradient(145deg,rgba(255,247,237,.88),rgba(255,255,255,.96))}
.soil-application-heading{align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.soil-application-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:14px 0}
.soil-application-summary>div,.soil-response-stat{padding:10px 11px;border-radius:14px;background:rgba(255,255,255,.92);border:1px solid rgba(15,23,42,.09);box-shadow:0 6px 16px rgba(15,23,42,.04)}
.soil-application-summary span,.soil-response-stat span{display:block;color:#667085;font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em}
.soil-application-summary b,.soil-response-stat b{display:block;margin-top:3px;font-size:1.08rem}
.soil-application-create{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(130px,1fr)) auto;gap:10px;align-items:end;padding:13px;border-radius:16px;background:rgba(255,255,255,.74);border:1px solid rgba(15,23,42,.08)}
.soil-application-create label{display:grid;gap:5px;font-size:.78rem;font-weight:850;color:#475467}
.soil-application-status{margin:10px 0;min-height:20px}
.soil-application-list{display:grid;gap:12px;margin-top:12px}
.soil-campaign{border:1px solid rgba(15,23,42,.1);border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 8px 22px rgba(15,23,42,.045)}
.soil-campaign-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:14px 15px;border-bottom:1px solid rgba(15,23,42,.08);background:linear-gradient(130deg,rgba(255,247,237,.7),rgba(255,255,255,.95))}
.soil-campaign-head h4{margin:3px 0 2px;font-size:1rem}.soil-campaign-head small{display:block;color:#667085}.soil-campaign-actions{display:flex;gap:7px;align-items:flex-start;flex-wrap:wrap;justify-content:flex-end}
.soil-campaign-progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:12px 15px}.soil-campaign-progress>div{border-radius:12px;background:#f8fafc;padding:9px}.soil-campaign-progress span{display:block;font-size:.7rem;text-transform:uppercase;color:#667085;font-weight:850}.soil-campaign-progress b{display:block;margin-top:3px}
.soil-task-list{display:grid;gap:7px;padding:0 15px 14px}.soil-task{display:grid;grid-template-columns:112px minmax(170px,1.4fr) minmax(130px,.8fr) minmax(120px,.7fr) auto;gap:9px;align-items:center;padding:10px;border:1px solid rgba(15,23,42,.08);border-radius:13px;background:#fff}.soil-task.overdue{border-color:rgba(220,38,38,.32);background:rgba(254,242,242,.55)}.soil-task.due{border-color:rgba(249,115,22,.4);background:rgba(255,247,237,.65)}.soil-task.applied{background:rgba(240,253,244,.7)}.soil-task.skipped,.soil-task.cancelled{opacity:.72}.soil-task-date b,.soil-task-product b{display:block}.soil-task-date small,.soil-task-product small,.soil-task-amount small{display:block;color:#667085}.soil-task-status{font-size:.74rem;font-weight:900;padding:5px 8px;border-radius:999px;background:#f2f4f7;text-align:center;text-transform:uppercase}.soil-task-status.applied{background:#dcfce7;color:#166534}.soil-task-status.scheduled{background:#ffedd5;color:#9a3412}.soil-task-actions{display:flex;gap:5px;justify-content:flex-end;flex-wrap:wrap}
.soil-retest-panel{margin:0 15px 15px;border:1px solid rgba(37,99,235,.15);border-radius:15px;background:rgba(239,246,255,.55);padding:12px}.soil-retest-controls{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:8px;align-items:end}.soil-retest-controls label{display:grid;gap:5px;font-size:.78rem;font-weight:850;color:#475467}.soil-retest-accept{display:flex!important;grid-auto-flow:column;align-items:center;gap:6px!important;white-space:nowrap;padding-bottom:9px}
.soil-retest-comparison{margin-top:12px;overflow:auto}.soil-retest-comparison table{width:100%;border-collapse:collapse;min-width:650px}.soil-retest-comparison th,.soil-retest-comparison td{padding:7px 8px;border-bottom:1px solid rgba(15,23,42,.08);text-align:right;font-size:.78rem}.soil-retest-comparison th:first-child,.soil-retest-comparison td:first-child{text-align:left}.soil-retest-comparison .good{color:#166534;font-weight:850}.soil-retest-comparison .warn{color:#b45309;font-weight:850}
.soil-response-models{margin-top:12px}.soil-response-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;margin-top:10px}.soil-response-stat.active{border-color:rgba(22,163,74,.26);background:rgba(240,253,244,.75)}.soil-response-stat small{display:block;color:#667085;margin-top:4px}.soil-response-note{padding:10px 12px;border-radius:12px;background:#f8fafc;color:#475467;font-size:.8rem;margin-top:9px}
.soil-app-overlay{position:fixed;inset:0;z-index:9998;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.52);backdrop-filter:blur(5px)}.soil-app-overlay.open{display:flex}.soil-app-modal{width:min(680px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:20px;box-shadow:0 28px 80px rgba(15,23,42,.28);border:1px solid rgba(255,255,255,.5)}.soil-app-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid rgba(15,23,42,.08)}.soil-app-modal-head h3{margin:0}.soil-app-modal-body{padding:17px 18px;display:grid;gap:11px}.soil-app-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.soil-app-modal-body label{display:grid;gap:5px;font-size:.8rem;font-weight:850;color:#475467}.soil-app-checkbox{display:flex!important;grid-auto-flow:column;justify-content:flex-start;align-items:center;gap:8px!important}.soil-app-modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:0 18px 18px}
@media(max-width:980px){.soil-application-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.soil-application-create{grid-template-columns:repeat(2,minmax(0,1fr))}.soil-application-create label:first-child{grid-column:1/-1}.soil-task{grid-template-columns:100px minmax(160px,1fr) minmax(110px,.7fr);}.soil-task-status{justify-self:start}.soil-task-actions{grid-column:2/-1;justify-content:flex-start}.soil-campaign-progress{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.soil-application-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.soil-application-create{grid-template-columns:1fr}.soil-application-create label:first-child{grid-column:auto}.soil-campaign-head{grid-template-columns:1fr}.soil-campaign-actions{justify-content:flex-start}.soil-campaign-progress{grid-template-columns:repeat(2,minmax(0,1fr))}.soil-task{grid-template-columns:1fr 1fr}.soil-task-product{grid-column:1/-1}.soil-task-actions{grid-column:1/-1}.soil-retest-controls{grid-template-columns:1fr}.soil-retest-accept{padding-bottom:0}.soil-app-modal-grid{grid-template-columns:1fr}}
.soil-retest-controls{grid-template-columns:minmax(220px,1fr) auto auto auto}
.soil-tissue-list{display:grid;gap:7px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(37,99,235,.13)}
.soil-tissue-record{display:grid;gap:5px;padding:10px 11px;border-radius:12px;background:rgba(255,255,255,.86);border:1px solid rgba(15,23,42,.08)}
.soil-tissue-record small{display:block;color:#667085}.soil-tissue-results{display:flex;gap:6px;flex-wrap:wrap}.soil-tissue-results span{font-size:.75rem;padding:4px 7px;border-radius:999px;background:#eef2ff;color:#3730a3}
.soil-tissue-modal{width:min(920px,100%)}.soil-tissue-values{display:grid;grid-template-columns:1.1fr 1fr;gap:12px}.soil-tissue-group{padding:12px;border:1px solid rgba(15,23,42,.08);border-radius:14px;background:#f8fafc}.soil-tissue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}
@media(max-width:980px){.soil-retest-controls{grid-template-columns:minmax(220px,1fr) auto}.soil-tissue-values{grid-template-columns:1fr}}
@media(max-width:640px){.soil-retest-controls{grid-template-columns:1fr}.soil-tissue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===== soil_phase15.css ===== */
/* Soil Grower Profiles — Phases 1 and 2 */
#tab-soil .soil-profile-switcher {
  container-type:inline-size;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:15px 16px;
  border:1px solid color-mix(in srgb, var(--line, #dfe3e8) 78%, #f97316 22%);
  border-radius:20px;
  background:
    radial-gradient(circle at 0 0, rgba(249,115,22,.11), transparent 36%),
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(255,248,241,.92));
  box-shadow:0 12px 30px rgba(30,41,59,.07);
}
#tab-soil .soil-profile-identity { display:flex;align-items:center;gap:12px;min-width:0; }
#tab-soil .soil-profile-avatar {
  width:48px;height:48px;border-radius:15px;display:grid;place-items:center;flex:0 0 auto;
  background:linear-gradient(145deg,#ff8a32,#ea580c);color:white;font-weight:900;letter-spacing:.02em;
  box-shadow:0 8px 18px rgba(234,88,12,.24);
}
#tab-soil .soil-profile-copy { min-width:0; }
#tab-soil .soil-profile-current { font-size:1.02rem;font-weight:900;color:var(--text,#172033);white-space:normal; }
#tab-soil .soil-profile-controls { display:flex;align-items:center;gap:9px;min-width:min(100%,420px);justify-content:flex-end; }
#tab-soil #soil_profile_select { min-width:250px;max-width:360px;font-weight:750; }
#tab-soil .soil-profile-banner { margin-top:10px;border-color:#ffbb82;background:#fff6ec;color:#8f3d08;font-weight:750; }
#tab-soil .soil-profile-banner.owner { border-color:#b7dfc4;background:#f0fbf4;color:#176333; }

.soil-profile-overlay { z-index:10030;align-items:center;justify-content:center;padding:18px; }
.soil-profile-modal { width:min(1120px,96vw);max-height:min(900px,94vh);overflow:hidden;display:flex;flex-direction:column; }
.soil-profile-modal-body { overflow:auto; }
.soil-profile-manager-toolbar { display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px; }
.soil-profile-manager-layout { display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:16px;align-items:start; }
.soil-profile-manager-list { display:grid;gap:12px;min-width:0; }
.soil-profile-grower-card { border:1px solid var(--line,#dce1e7);border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 8px 22px rgba(15,23,42,.05); }
.soil-profile-grower-card.archived { opacity:.72;background:#f7f7f8; }
.soil-profile-grower-head { display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:13px 14px;background:linear-gradient(180deg,#fff,#fbfbfc);border-bottom:1px solid var(--line,#e4e7eb); }
.soil-profile-grower-title { display:flex;align-items:center;gap:9px;min-width:0; }
.soil-profile-mini-avatar { width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#fff0e5;color:#9a3f08;font-weight:900;flex:0 0 auto; }
.soil-profile-grower-actions,.soil-profile-location-actions { display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end; }
.soil-profile-location-list { display:grid;gap:8px;padding:10px; }
.soil-profile-location-row { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 12px;border:1px solid #e6e8ec;border-radius:14px;background:#fff; }
.soil-profile-location-row.active-choice { border-color:#fb923c;background:#fff9f4;box-shadow:inset 3px 0 0 #f97316; }
.soil-profile-location-row.archived { opacity:.66;background:#f4f5f6; }
.soil-profile-location-name { font-weight:850;color:#182033; }
.soil-profile-location-meta { display:flex;gap:7px;flex-wrap:wrap;margin-top:5px;color:#687386;font-size:.78rem; }
.soil-profile-stat { border:1px solid #e5e7eb;border-radius:999px;padding:2px 7px;background:#f8fafc; }
.soil-profile-default-badge { border-color:#a7e0b7;background:#ecfbf1;color:#176333; }
.soil-profile-owner-badge { border-color:#fed7aa;background:#fff7ed;color:#9a3412; }
.soil-profile-editor { position:sticky;top:0;border:1px solid #dfe3e8;border-radius:18px;background:#fff;padding:15px;box-shadow:0 14px 34px rgba(15,23,42,.08); }
.soil-profile-editor-head { display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px; }
.soil-profile-editor-head h3 { margin:2px 0 0; }
.soil-profile-editor-fields { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px; }
.soil-profile-editor-full { grid-column:1/-1; }
.soil-profile-editor textarea.input { resize:vertical;min-height:74px; }
.soil-profile-editor-actions { display:flex;justify-content:flex-end;margin-top:14px; }
.soil-profile-editor[data-editor-type="grower"] .soil-profile-location-only { display:none; }
.soil-profile-editor[data-editor-type="location"] .soil-profile-grower-only { display:none; }
.soil-profile-empty { padding:18px;text-align:center;border:1px dashed #cfd5dc;border-radius:16px;color:#647184; }

@container (max-width:760px) {
  #tab-soil .soil-profile-switcher { align-items:stretch;flex-direction:column; }
  #tab-soil .soil-profile-controls { min-width:0;width:100%;justify-content:stretch; }
  #tab-soil #soil_profile_select { min-width:0;max-width:none;flex:1 1 auto; }
}
@media (max-width:850px) {
  .soil-profile-manager-layout { grid-template-columns:1fr; }
  .soil-profile-editor { position:static; }
}
@media (max-width:620px) {
  #tab-soil .soil-profile-controls { display:grid;grid-template-columns:1fr; }
  #tab-soil #soil_profile_manage { width:100%; }
  .soil-profile-overlay { padding:0;align-items:stretch; }
  .soil-profile-modal { width:100vw;max-height:100dvh;height:100dvh;border-radius:0; }
  .soil-profile-manager-toolbar > .btn { flex:1 1 140px; }
  .soil-profile-grower-head,.soil-profile-location-row { grid-template-columns:1fr;display:grid; }
  .soil-profile-grower-actions,.soil-profile-location-actions { justify-content:flex-start; }
  .soil-profile-editor-fields { grid-template-columns:1fr; }
  .soil-profile-editor-full { grid-column:auto; }
}

#tab-soil .soil-profile-future-locked {
  position:relative;
  border-style:dashed;
  border-color:#f3b36e;
  background:linear-gradient(180deg,#fffaf5,#fff);
}
#tab-soil .soil-profile-future-locked > :not(.soil-profile-phase-boundary) {
  opacity:.58;
}
#tab-soil .soil-profile-phase-boundary {
  margin:0 0 12px;
  border-color:#f6c27f;
  background:#fff7e9;
  color:#7d3f08;
}
.soil-import-profile-destination {
  display:inline-flex;
  align-items:center;
  margin-top:7px;
  padding:5px 9px;
  border:1px solid #fed7aa;
  border-radius:999px;
  background:#fff7ed;
  color:#9a3412;
  font-size:.78rem;
  font-weight:850;
}

/* ===== soil_phase16.css ===== */
/* Soil Grower Profiles — Phase 3: record/import/preset isolation */
.soil-profile-scope-notice{margin-top:10px}
.soil-import-scope-card{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;
  padding:12px 14px;margin-top:10px;border:1px solid rgba(249,115,22,.28);border-radius:14px;
  background:linear-gradient(135deg,rgba(249,115,22,.10),rgba(251,191,36,.04));
}
.soil-import-scope-icon{
  width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-weight:900;letter-spacing:.03em;
  background:rgba(249,115,22,.16);border:1px solid rgba(249,115,22,.30)
}
.soil-import-scope-card>div:nth-child(2){min-width:0;display:grid;gap:2px}
.soil-import-scope-card span:not(.badge){font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;opacity:.72;font-weight:800}
.soil-import-scope-card b{font-size:.98rem;overflow-wrap:anywhere}
.soil-import-scope-card small{opacity:.72;line-height:1.35}
.soil-import-scope-card.is-verified{border-color:rgba(34,197,94,.35);background:linear-gradient(135deg,rgba(34,197,94,.10),rgba(249,115,22,.04))}
.soil-import-scope-card.is-mismatch{border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.09)}
.soil-import-review-scope{
  margin:0 0 12px;padding:11px 13px;border-radius:12px;border:1px solid rgba(34,197,94,.28);
  background:rgba(34,197,94,.08);display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap
}
.soil-import-review-scope b{display:block;margin-bottom:2px}
.soil-import-review-scope small{opacity:.75;line-height:1.35}
.soil-import-review-scope .badge{white-space:nowrap}
@media(max-width:640px){
  .soil-import-scope-card{grid-template-columns:auto minmax(0,1fr)}
  .soil-import-scope-card>.badge{grid-column:1/-1;justify-self:stretch;text-align:center}
  .soil-import-review-scope{display:block}
  .soil-import-review-scope .badge{display:inline-block;margin-top:8px}
}

/* ===== soil_phase17.css ===== */
/* Soil visual report Phase 1 — current soil-test low / good / high graph. */
#soil_current_balance_card{margin-top:16px;padding:16px;overflow:hidden}
.soil-balance-card[hidden]{display:none!important}
.soil-balance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.soil-balance-head h3{margin:2px 0 3px;font-size:1.16rem}
.soil-balance-summary{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.soil-balance-count,.soil-balance-status{display:inline-flex;align-items:center;gap:4px;border:1px solid transparent;border-radius:999px;font-weight:800;white-space:nowrap}
.soil-balance-count{padding:6px 9px;font-size:.78rem}
.soil-balance-count.is-good,.soil-balance-status.is-good{background:#eaf8ef;border-color:#8fd3a4;color:#166534}
.soil-balance-count.is-low,.soil-balance-status.is-low{background:#fff0f0;border-color:#f0a0a0;color:#b42318}
.soil-balance-count.is-high,.soil-balance-status.is-high{background:#fff7df;border-color:#e9c66b;color:#8a5800}
.soil-balance-count.is-unrated,.soil-balance-count.is-missing,.soil-balance-status.is-unrated,.soil-balance-status.is-missing{background:#f3f4f6;border-color:#d1d5db;color:#4b5563}
.soil-balance-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:14px 0 12px;padding:9px 11px;border:1px solid rgba(148,163,184,.28);border-radius:12px;background:rgba(248,250,252,.76);font-size:.78rem;font-weight:750;color:#475569}
.soil-balance-legend span{display:inline-flex;align-items:center;gap:6px}
.soil-balance-legend i{width:11px;height:11px;border-radius:3px;display:inline-block}
.soil-balance-legend .is-low i{background:#ef4444}.soil-balance-legend .is-good i{background:#22a45a}.soil-balance-legend .is-high i{background:#e9a914}
.soil-balance-groups{display:grid;gap:15px}
.soil-balance-group{min-width:0}
.soil-balance-group h4{margin:0 0 8px;font-size:.84rem;letter-spacing:.02em;color:#334155}
.soil-balance-rows{display:grid;gap:9px}
.soil-balance-row{padding:11px;border:1px solid rgba(148,163,184,.28);border-radius:13px;background:#fff;box-shadow:0 5px 14px rgba(15,23,42,.035);min-width:0}
.soil-balance-row-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:9px}
.soil-balance-row-head>div:first-child{min-width:0;display:grid;gap:2px}
.soil-balance-row-head b{font-size:.87rem;color:#1f2937}
.soil-balance-row-head small{font-size:.68rem;color:#64748b;overflow-wrap:anywhere}
.soil-balance-reading{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;text-align:right}
.soil-balance-reading strong{font-size:.84rem;color:#0f172a}
.soil-balance-status{padding:4px 7px;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em}
.soil-balance-scale{height:35px;display:grid;grid-template-columns:1fr 1fr 1fr;position:relative;border-radius:9px;overflow:visible;isolation:isolate;box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)}
.soil-balance-zone{display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em;color:rgba(255,255,255,.96)}
.soil-balance-zone:first-child{border-radius:9px 0 0 9px}.soil-balance-zone:last-of-type{border-radius:0 9px 9px 0}
.soil-balance-zone.is-low{background:#ef4444}.soil-balance-zone.is-good{background:#22a45a}.soil-balance-zone.is-high{background:#e9a914;color:#513600}
.soil-balance-marker{position:absolute;left:var(--soil-marker);top:-5px;bottom:-5px;width:3px;transform:translateX(-50%);background:#111827;border-radius:99px;z-index:3;box-shadow:0 0 0 2px rgba(255,255,255,.88)}
.soil-balance-marker:after{content:"";position:absolute;left:50%;bottom:-2px;transform:translate(-50%,100%);border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #111827}
.soil-balance-marker span{position:absolute;left:50%;top:-3px;transform:translate(-50%,-100%);padding:3px 6px;border-radius:6px;background:#111827;color:#fff;font-size:.62rem;font-weight:800;white-space:nowrap;box-shadow:0 3px 8px rgba(15,23,42,.22)}
.soil-balance-row.is-missing .soil-balance-scale,.soil-balance-row.is-unrated .soil-balance-scale{filter:grayscale(1);opacity:.42}
.soil-balance-target{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:8px;color:#64748b;font-size:.7rem}
.soil-balance-target b{color:#334155}
.soil-balance-footnote{margin-top:13px;padding-top:11px;border-top:1px solid rgba(148,163,184,.25);font-size:.7rem;line-height:1.45;color:#64748b}
.soil-balance-empty{display:flex;align-items:center;gap:12px;min-height:116px;padding:12px}
.soil-balance-empty-icon{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:14px;background:#fff3e8;color:#c2410c;font-size:1.45rem;font-weight:900}
.soil-balance-empty h3{margin:0 0 5px;font-size:1.05rem}.soil-balance-empty p{margin:0;color:#64748b;line-height:1.45;font-size:.82rem}

@media (max-width:720px){
  #soil_current_balance_card{padding:12px;margin-top:12px}
  .soil-balance-summary{justify-content:flex-start}
  .soil-balance-row{padding:10px 9px}
  .soil-balance-row-head{display:grid;gap:6px}
  .soil-balance-reading{justify-content:space-between;text-align:left}
  .soil-balance-scale{height:32px;margin-top:3px}
  .soil-balance-marker span{font-size:.58rem;padding:2px 4px}
  .soil-balance-legend{gap:9px;font-size:.7rem}
}
@media (prefers-reduced-motion:reduce){.soil-balance-marker{transition:none}}

/* Phase 4 robustness: keep extreme marker labels and long laboratory text inside the card. */
.soil-balance-row,.soil-balance-row *{min-width:0}
.soil-balance-row-head b,.soil-balance-target,.soil-balance-marker span{overflow-wrap:anywhere}
.soil-balance-marker span{max-width:min(180px,46vw);white-space:normal;text-align:center;line-height:1.2}
.soil-balance-marker.is-left span{left:-2px;transform:translate(0,-100%)}
.soil-balance-marker.is-right span{left:auto;right:-2px;transform:translate(0,-100%)}
@media (max-width:420px){.soil-balance-marker span{max-width:112px;font-size:.54rem}}

/* ===== soil_phase18.css ===== */
/* Soil Visual Report Phase 2: expected-after graph and simplified exact plan. */
#soil_projected_balance_card,#soil_simple_plan_card{margin-top:14px;min-width:0}
#soil_projected_balance_card.is-stale,#soil_simple_plan_card.is-stale{border-color:rgba(234,88,12,.36);background:linear-gradient(180deg,#fffaf5,#fff)}
.soil-phase18-head,.soil-phase18-plan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:11px}
.soil-phase18-head h3,.soil-phase18-plan-head h3{margin:0;font-size:1.06rem;color:#172033}
.soil-phase18-summary{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.soil-phase18-count{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:999px;font-size:.69rem;font-weight:800;border:1px solid transparent;background:#f8fafc;color:#475569}
.soil-phase18-count.is-good{background:#ecfdf3;border-color:#86efac;color:#166534}.soil-phase18-count.is-low{background:#fff1f2;border-color:#fda4af;color:#b91c1c}.soil-phase18-count.is-high{background:#fff8df;border-color:#f5c85b;color:#7c4a03}.soil-phase18-count.is-unrated,.soil-phase18-count.is-missing{background:#f1f5f9;border-color:#cbd5e1;color:#475569}
.soil-phase18-legend{display:flex;gap:11px;align-items:center;flex-wrap:wrap;margin:0 0 14px;font-size:.69rem;font-weight:750;color:#64748b}
.soil-phase18-legend span{display:inline-flex;gap:5px;align-items:center}.soil-phase18-legend i{width:10px;height:10px;border-radius:50%;display:inline-block;border:1px solid rgba(15,23,42,.2)}
.soil-phase18-legend .is-before i{background:#fff;border:2px solid #334155}.soil-phase18-legend .is-after i{background:#111827}.soil-phase18-legend .is-low i{background:#ef4444}.soil-phase18-legend .is-good i{background:#22a45a}.soil-phase18-legend .is-high i{background:#e9a914}
.soil-phase18-groups{display:grid;gap:15px}.soil-phase18-group{min-width:0}.soil-phase18-group h4{margin:0 0 8px;font-size:.84rem;color:#334155;letter-spacing:.02em}.soil-phase18-rows{display:grid;gap:9px}
.soil-phase18-row{padding:11px;border:1px solid rgba(148,163,184,.28);border-radius:13px;background:#fff;box-shadow:0 5px 14px rgba(15,23,42,.035);min-width:0}
.soil-phase18-row-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:15px}.soil-phase18-row-head>div:first-child{min-width:0;display:grid;gap:2px}.soil-phase18-row-head b{font-size:.87rem;color:#1f2937}.soil-phase18-row-head small{font-size:.67rem;color:#64748b;overflow-wrap:anywhere}
.soil-phase18-reading{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;text-align:right;font-size:.76rem;color:#64748b}.soil-phase18-reading>b{color:#0f172a}.soil-phase18-reading>strong{font-size:.84rem;color:#94a3b8}.soil-phase18-status{padding:4px 7px;border-radius:999px;font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;font-weight:850}.soil-phase18-status.is-good{background:#ecfdf3;color:#166534}.soil-phase18-status.is-low{background:#fff1f2;color:#b91c1c}.soil-phase18-status.is-high{background:#fff8df;color:#7c4a03}.soil-phase18-status.is-unrated,.soil-phase18-status.is-missing{background:#f1f5f9;color:#475569}
.soil-phase18-scale{height:39px;display:grid;grid-template-columns:1fr 1fr 1fr;position:relative;border-radius:9px;overflow:visible;isolation:isolate;box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)}
.soil-phase18-zone{display:flex;align-items:center;justify-content:center;font-size:.64rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em;color:#fff}.soil-phase18-zone:first-child{border-radius:9px 0 0 9px}.soil-phase18-zone:nth-child(3){border-radius:0 9px 9px 0}.soil-phase18-zone.is-low{background:#ef4444}.soil-phase18-zone.is-good{background:#22a45a}.soil-phase18-zone.is-high{background:#e9a914;color:#513600}
.soil-phase18-marker{position:absolute;left:var(--soil-phase18-marker);top:-5px;bottom:-5px;width:3px;transform:translateX(-50%);border-radius:99px;z-index:4}.soil-phase18-marker>span{position:absolute;left:50%;white-space:nowrap;padding:3px 5px;border-radius:6px;font-size:.58rem;font-weight:850;box-shadow:0 3px 8px rgba(15,23,42,.2)}
.soil-phase18-marker.is-before{background:#fff;box-shadow:0 0 0 2px #334155}.soil-phase18-marker.is-before:after{content:"";position:absolute;left:50%;bottom:-3px;width:8px;height:8px;transform:translate(-50%,100%);border-radius:50%;background:#fff;border:2px solid #334155}.soil-phase18-marker.is-before>span{bottom:-8px;transform:translate(-50%,100%);background:#fff;color:#334155;border:1px solid #cbd5e1}
.soil-phase18-marker.is-after{background:#111827;box-shadow:0 0 0 2px rgba(255,255,255,.88)}.soil-phase18-marker.is-after:after{content:"";position:absolute;left:50%;top:-3px;transform:translate(-50%,-100%);border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:6px solid #111827}.soil-phase18-marker.is-after>span{top:-4px;transform:translate(-50%,-100%);background:#111827;color:#fff}
.soil-phase18-marker.is-before.is-overlap{transform:translateX(calc(-50% - 3px))}.soil-phase18-marker.is-after.is-overlap{transform:translateX(calc(-50% + 3px))}
.soil-phase18-target{display:flex;align-items:center;justify-content:space-between;gap:7px;flex-wrap:wrap;margin-top:17px;color:#64748b;font-size:.68rem}.soil-phase18-target b{color:#334155}.soil-phase18-delta{padding:3px 6px;border-radius:999px;background:#f1f5f9;color:#334155;font-weight:750}
.soil-phase18-footnote{margin-top:13px;padding-top:11px;border-top:1px solid rgba(148,163,184,.25);font-size:.7rem;line-height:1.45;color:#64748b}
.soil-phase18-empty{display:flex;align-items:center;gap:12px;min-height:116px;padding:12px}.soil-phase18-empty-icon{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:14px;background:#fff3e8;color:#c2410c;font-size:1.45rem;font-weight:900}.soil-phase18-empty h3{margin:0 0 5px;font-size:1.05rem}.soil-phase18-empty p{margin:0;color:#64748b;line-height:1.45;font-size:.82rem}.soil-phase18-empty.is-plan .soil-phase18-empty-icon{background:#eefbf2;color:#15803d}
.soil-phase18-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.soil-phase18-plan-status{margin-top:8px;display:grid;gap:2px;padding:9px 11px;border-radius:12px;border:1px solid}.soil-phase18-plan-status b{font-size:.83rem}.soil-phase18-plan-status span{font-size:.72rem;line-height:1.4}.soil-phase18-plan-status.is-balanced{background:#ecfdf3;border-color:#86efac;color:#166534}.soil-phase18-plan-status.is-closest{background:#fff8df;border-color:#f5c85b;color:#7c4a03}.soil-phase18-plan-status.is-attention{background:#fff1f2;border-color:#fda4af;color:#b91c1c}
.soil-phase18-plan-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:11px 0}.soil-phase18-plan-stats>div{display:grid;gap:3px;padding:10px;border:1px solid rgba(148,163,184,.3);border-radius:12px;background:#fff}.soil-phase18-plan-stats span{font-size:.66rem;color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-weight:750}.soil-phase18-plan-stats b{font-size:.94rem;color:#0f172a}
.soil-phase18-policy{padding:9px 11px;margin-bottom:10px;border-radius:11px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:.72rem;line-height:1.42}
.soil-phase18-products{display:grid;gap:9px}.soil-phase18-product{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:11px;border:1px solid rgba(148,163,184,.3);border-radius:13px;background:#fff;box-shadow:0 5px 14px rgba(15,23,42,.035)}.soil-phase18-product-number{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#fff3e8;color:#c2410c;font-size:.8rem;font-weight:900}.soil-phase18-product-main{min-width:0}.soil-phase18-product-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;flex-wrap:wrap}.soil-phase18-product-title h4{margin:0;font-size:.9rem;color:#172033}.soil-phase18-product-title strong{font-size:.82rem;color:#c2410c}.soil-phase18-product-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.soil-phase18-product-grid>div{display:grid;gap:3px;padding:8px;border-radius:10px;background:#f8fafc}.soil-phase18-product-grid span{font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;font-weight:800;color:#64748b}.soil-phase18-product-grid b{font-size:.72rem;line-height:1.4;color:#334155}.soil-phase18-product p{margin:8px 0 0;font-size:.7rem;line-height:1.45;color:#64748b}
.soil-phase18-limitations{margin-top:10px;border:1px solid #fed7aa;border-radius:12px;background:#fffaf5;padding:9px 11px}.soil-phase18-limitations summary{cursor:pointer;font-size:.75rem;font-weight:850;color:#9a3412}.soil-phase18-limitations ul{margin:8px 0 0;padding-left:19px;color:#7c2d12;font-size:.7rem;line-height:1.45}
.soil-advanced-results{margin-top:11px;border:1px solid rgba(148,163,184,.35);border-radius:12px;background:#f8fafc;padding:0 10px 10px}.soil-advanced-results>summary{cursor:pointer;padding:11px 2px;font-size:.78rem;font-weight:850;color:#334155}.soil-advanced-results[open]>summary{border-bottom:1px solid rgba(148,163,184,.25);margin-bottom:10px}
@media (max-width:900px){.soil-phase18-plan-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.soil-phase18-product-grid{grid-template-columns:1fr}}
@media (max-width:720px){#soil_projected_balance_card,#soil_simple_plan_card{padding:12px;margin-top:12px}.soil-phase18-summary{justify-content:flex-start}.soil-phase18-row{padding:10px 9px}.soil-phase18-row-head{display:grid;gap:6px}.soil-phase18-reading{justify-content:flex-start;text-align:left}.soil-phase18-scale{height:34px;margin-top:5px}.soil-phase18-marker>span{font-size:.54rem;padding:2px 4px}.soil-phase18-target{margin-top:16px}.soil-phase18-plan-head{display:grid}.soil-phase18-actions{justify-content:flex-start}.soil-phase18-plan-stats{grid-template-columns:1fr 1fr}.soil-phase18-product{grid-template-columns:30px minmax(0,1fr)}}
@media (max-width:420px){.soil-phase18-plan-stats{grid-template-columns:1fr}.soil-phase18-reading{font-size:.7rem}.soil-phase18-marker>span{max-width:104px;overflow:hidden;text-overflow:ellipsis}}
@media (prefers-reduced-motion:reduce){.soil-phase18-marker{transition:none}}

/* Phase 4 robustness: profile lock, exact-package validation, and overflow-safe phone layout. */
.soil-phase18-plan-validation{display:flex;align-items:center;justify-content:space-between;gap:7px;flex-wrap:wrap;margin:10px 0;padding:9px 11px;border:1px solid #bbf7d0;border-radius:11px;background:#f0fdf4;color:#166534;font-size:.7rem;line-height:1.4}
.soil-phase18-plan-validation span{overflow-wrap:anywhere}
.soil-phase18-product,.soil-phase18-product *,.soil-phase18-plan-head>*,.soil-phase18-row *{min-width:0}
.soil-phase18-product-title h4,.soil-phase18-product-grid b,.soil-phase18-product p,.soil-phase18-limitations li{overflow-wrap:anywhere}
.soil-phase18-marker>span{max-width:min(190px,46vw);white-space:normal;text-align:center;line-height:1.2}
.soil-phase18-marker.is-before.is-left>span{left:-2px;transform:translate(0,100%)}
.soil-phase18-marker.is-before.is-right>span{left:auto;right:-2px;transform:translate(0,100%)}
.soil-phase18-marker.is-after.is-left>span{left:-2px;transform:translate(0,-100%)}
.soil-phase18-marker.is-after.is-right>span{left:auto;right:-2px;transform:translate(0,-100%)}
.soil-phase18-limitations p{margin:8px 0 0;font-size:.68rem;line-height:1.4;color:#7c2d12}
@media (max-width:720px){.soil-phase18-plan-validation{display:grid}.soil-phase18-marker>span{max-width:120px}}

/* ===== soil_phase19.css ===== */
/* Soil Visual Report Phase 3 - complete local PDF export */
#soil_phase20_simple_pdf,#soil_phase19_pdf{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:800}
#soil_phase20_simple_pdf{border-color:rgba(21,128,61,.34);background:#ecfdf5;color:#166534}
#soil_phase20_simple_pdf:hover{background:#d1fae5;border-color:rgba(21,128,61,.55)}
#soil_phase19_pdf{border-color:rgba(234,88,12,.34);background:#fff7ed;color:#9a3412}
#soil_phase19_pdf:hover{background:#ffedd5;border-color:rgba(234,88,12,.55)}
#soil_phase20_simple_pdf:disabled,#soil_phase19_pdf:disabled{opacity:.68;cursor:wait}
.soil-phase19-pdf-status{display:block;min-height:18px;margin-top:8px;font-size:.76rem;color:#64748b;text-align:right}
.soil-phase19-pdf-status.is-working{color:#9a3412}.soil-phase19-pdf-status.is-good{color:#15803d}.soil-phase19-pdf-status.is-error{color:#b91c1c;font-weight:700}
@media(max-width:720px){#soil_phase20_simple_pdf,#soil_phase19_pdf{width:100%}.soil-phase19-pdf-status{text-align:left}.soil-phase18-actions{width:100%}.soil-phase18-actions .btn{flex:1 1 100%}}

/* Phase 4 robustness: long filenames/status messages wrap instead of widening the Soil column. */
.soil-phase19-pdf-status{max-width:100%;overflow-wrap:anywhere}

/* ===== soil_workspace_phase1.css ===== */
/* Soil workspace Phase 1 — current test and Autopilot project separation. */
#tab-soil .soil-workspace-shell{padding:18px;overflow:visible}
#tab-soil .soil-header{padding:2px 2px 0}
#tab-soil .soil-header h3{font-size:1.35rem;color:#172033}
#tab-soil .soil-toolbar{align-items:center}
#tab-soil .soil-toolbar .btn,#tab-soil .soil-toolbar .input{min-height:42px}

.soil-workspace-context{display:grid;grid-template-columns:minmax(190px,1fr) minmax(230px,1.35fr) minmax(170px,.62fr);gap:10px;align-items:stretch;margin:12px 0 10px;padding:11px;border:1px solid rgba(249,115,22,.24);border-radius:16px;background:linear-gradient(135deg,#fffaf5 0%,#fff 62%);box-shadow:0 8px 24px rgba(15,23,42,.045)}
.soil-workspace-context-item{display:grid;align-content:center;gap:4px;min-width:0;padding:9px 11px;border:1px solid rgba(148,163,184,.2);border-radius:12px;background:rgba(255,255,255,.86)}
.soil-workspace-context-item>span{font-size:.66rem;line-height:1.2;text-transform:uppercase;letter-spacing:.055em;font-weight:850;color:#64748b}
.soil-workspace-context-item>strong{font-size:.84rem;line-height:1.35;color:#172033;overflow-wrap:anywhere}
.soil-workspace-context-item.is-patch{grid-template-columns:minmax(0,1fr);align-content:start}
.soil-workspace-patch-field{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:5px!important;margin:0!important}
.soil-workspace-patch-field .lbl{font-size:.7rem!important;color:#475569!important}
.soil-workspace-patch-field .input{min-height:38px;font-size:.9rem;font-weight:800;background:#fff}
.soil-workspace-context-detail{grid-column:1/-1;padding:0 4px 1px;font-size:.72rem;line-height:1.35;color:#64748b;font-weight:650}

.soil-workspace{display:grid;gap:14px;margin-top:10px}
.soil-workspace-tabs{position:sticky;top:8px;z-index:18;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:7px;border:1px solid rgba(148,163,184,.28);border-radius:16px;background:rgba(248,250,252,.94);box-shadow:0 8px 24px rgba(15,23,42,.08);backdrop-filter:blur(12px)}
.soil-workspace-tab{appearance:none;display:flex;align-items:center;justify-content:flex-start;gap:10px;min-width:0;min-height:58px;padding:9px 12px;border:1px solid transparent;border-radius:12px;background:transparent;color:#475569;text-align:left;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}
.soil-workspace-tab:hover{background:#fff;border-color:rgba(148,163,184,.3)}
.soil-workspace-tab:focus-visible{outline:3px solid rgba(249,115,22,.24);outline-offset:2px}
.soil-workspace-tab.is-active{background:#fff7ed;border-color:#fb923c;color:#9a3412;box-shadow:0 6px 18px rgba(234,88,12,.11)}
.soil-workspace-tab-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:11px;background:#e2e8f0;color:#475569;font-size:.9rem;font-weight:900}
.soil-workspace-tab.is-active .soil-workspace-tab-icon{background:#f97316;color:#fff}
.soil-workspace-tab>span:last-child{display:grid;gap:2px;min-width:0}
.soil-workspace-tab b{font-size:.84rem;line-height:1.2}
.soil-workspace-tab small{font-size:.67rem;line-height:1.25;color:#64748b;overflow-wrap:anywhere}
.soil-workspace-tab.is-active small{color:#9a3412}
.soil-workspace-panel{display:grid;gap:14px;min-width:0;scroll-margin-top:86px}
.soil-workspace-panel[hidden]{display:none!important}

.soil-workspace-records{margin:0!important}
.soil-current-layout{display:grid;grid-template-columns:minmax(330px,.78fr) minmax(500px,1.22fr);gap:14px;align-items:start;min-width:0}
.soil-workspace-values-card,#soil_current_balance_card,#soil_projected_balance_card,.soil-workspace-amendment-card{margin:0!important;padding:15px!important;min-width:0}
.soil-workspace-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.soil-workspace-section-head h3{margin:2px 0 4px;font-size:1.04rem;color:#172033}
.soil-workspace-section-head p{margin:0;max-width:720px;line-height:1.45}
.soil-workspace-micros-toggle{display:inline-flex!important;align-items:center!important;gap:8px!important;flex:0 0 auto;padding:8px 10px;border:1px solid rgba(148,163,184,.3);border-radius:999px;background:#fff;min-height:40px}
.soil-workspace-micros-toggle .sub{margin:0!important;white-space:nowrap;font-weight:750}
.soil-workspace-inline-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:14px 0 8px}
.soil-workspace-inline-heading h4{margin:0;font-size:.86rem;color:#334155}
.soil-workspace-inline-heading span{font-size:.67rem;color:#64748b}
.soil-workspace-values-card .soil-core-fields{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:7px}
.soil-workspace-values-card .soil-profile-summary{margin:8px 0 0}
.soil-workspace-values-card .soil-ppm-grid{margin-top:0}
.soil-workspace-source-cards{display:grid;gap:12px}
.soil-workspace-source-cards>.card{margin:0!important}

.soil-workspace-autopilot-lead{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;border:1px solid rgba(249,115,22,.28);border-radius:18px;background:linear-gradient(135deg,#fff7ed,#fff 58%,#f8fafc);box-shadow:0 10px 28px rgba(15,23,42,.055)}
.soil-workspace-autopilot-lead h2{margin:2px 0 6px;font-size:1.25rem;color:#172033}
.soil-workspace-autopilot-lead p{margin:0;max-width:760px;color:#64748b;font-size:.82rem;line-height:1.5}
.soil-workspace-project-scope{display:inline-flex;margin-top:10px;padding:5px 9px;border-radius:999px;background:#fff;border:1px solid #fed7aa;color:#9a3412;font-size:.7rem;font-weight:850}
.soil-workspace-lead-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;flex:0 0 auto}
.soil-workspace-run{min-height:46px;padding-inline:18px;font-size:.86rem}

.soil-autopilot-project-layout{display:grid;grid-template-columns:minmax(390px,.82fr) minmax(520px,1.18fr);gap:14px;align-items:start;min-width:0}
.soil-workspace-amendment-card{display:grid;gap:13px}
.soil-workspace-special-input,.soil-workspace-product-group{display:grid;gap:8px;padding-top:12px;border-top:1px solid rgba(148,163,184,.23)}
.soil-workspace-special-input h4,.soil-workspace-product-group>h4{margin:0;font-size:.84rem;color:#334155}
.soil-workspace-special-input .soil-field{max-width:260px}
.soil-workspace-product-group .notice{margin-top:2px}
.soil-workspace-add-product{min-height:42px;white-space:nowrap}
.soil-workspace-amendment-card .soil-amendment-table-wrap{margin:0;max-width:100%;overflow-x:auto}
.soil-workspace-amendment-card .soil-amendment-table{min-width:600px}

#soil_workspace_panel_autopilot>.card.inset{margin:0!important}
#soil_workspace_panel_autopilot #soil_projected_balance_card{align-self:start}
#soil_workspace_panel_autopilot #soil_projected_balance_card .soil-phase18-row-head{margin-bottom:18px}
.soil-workspace-calculation-details{border:1px solid rgba(148,163,184,.32);border-radius:15px;background:#f8fafc;padding:0 12px 12px;overflow:hidden}
.soil-workspace-calculation-details>summary{cursor:pointer;list-style:none;padding:13px 3px}
.soil-workspace-calculation-details>summary::-webkit-details-marker{display:none}
.soil-workspace-calculation-details>summary>span{display:grid;gap:2px;position:relative;padding-right:26px}
.soil-workspace-calculation-details>summary>span:after{content:'›';position:absolute;right:5px;top:50%;transform:translateY(-50%) rotate(90deg);font-size:1.3rem;font-weight:900;color:#64748b}
.soil-workspace-calculation-details[open]>summary>span:after{transform:translateY(-50%) rotate(-90deg)}
.soil-workspace-calculation-details>summary b{font-size:.82rem;color:#334155}
.soil-workspace-calculation-details>summary small{font-size:.68rem;color:#64748b}
.soil-workspace-calculation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:2px}
.soil-workspace-calculation-grid>.card{margin:0!important;min-width:0}
.soil-workspace-focus-ring{outline:3px solid rgba(249,115,22,.26);outline-offset:3px}
.soil-workspace-modal-host{display:contents}

/* Keep graph values horizontal and readable instead of stacking one character per line. */
.soil-balance-marker span,.soil-phase18-marker>span{
  width:max-content!important;max-width:none!important;white-space:nowrap!important;
  overflow-wrap:normal!important;word-break:keep-all!important;writing-mode:horizontal-tb!important;
  text-orientation:mixed!important;line-height:1.15!important
}
.soil-balance-marker.is-left span{left:-2px!important;right:auto!important;transform:translate(0,-100%)!important}
.soil-balance-marker.is-right span{left:auto!important;right:-2px!important;transform:translate(0,-100%)!important}
.soil-phase18-marker.is-before.is-left>span{left:-2px!important;right:auto!important;transform:translate(0,100%)!important}
.soil-phase18-marker.is-before.is-right>span{left:auto!important;right:-2px!important;transform:translate(0,100%)!important}
.soil-phase18-marker.is-after.is-left>span{left:-2px!important;right:auto!important;transform:translate(0,-100%)!important}
.soil-phase18-marker.is-after.is-right>span{left:auto!important;right:-2px!important;transform:translate(0,-100%)!important}

/* Plain-language section titles no longer need phase-number emphasis. */
#soil_product_intelligence_card .eyebrow,#soil_deal_card .eyebrow,#soil_buy_plan_card .eyebrow,#soil_application_card .eyebrow{color:#64748b}

@media (max-width:1180px){
  .soil-current-layout,.soil-autopilot-project-layout{grid-template-columns:1fr}
  #soil_current_balance_card,#soil_projected_balance_card{width:100%}
}
@media (max-width:860px){
  #tab-soil .soil-workspace-shell{padding:13px}
  .soil-workspace-context{grid-template-columns:1fr 1fr}
  .soil-workspace-context-item.is-patch{grid-column:1/-1}
  .soil-workspace-calculation-grid{grid-template-columns:1fr}
  .soil-workspace-autopilot-lead{align-items:flex-start;display:grid}
  .soil-workspace-lead-actions{justify-content:flex-start}
}
@media (max-width:720px){
  #tab-soil .soil-header{display:grid!important;align-items:start!important}
  #tab-soil .soil-toolbar{display:grid!important;grid-template-columns:1fr 1fr;width:100%;gap:7px!important}
  #tab-soil .soil-toolbar .btn,#tab-soil .soil-toolbar .input{width:100%!important;min-width:0!important}
  #tab-soil .soil-toolbar #soil_preset{grid-column:1/-1}
  .soil-workspace-context{grid-template-columns:1fr;padding:8px;gap:7px}
  .soil-workspace-context-item.is-patch,.soil-workspace-context-detail{grid-column:auto}
  .soil-workspace-tabs{top:4px;padding:5px;gap:5px}
  .soil-workspace-tab{min-height:53px;padding:7px 8px;gap:7px}
  .soil-workspace-tab-icon{width:29px;height:29px;flex-basis:29px;border-radius:9px}
  .soil-workspace-tab b{font-size:.76rem}
  .soil-workspace-tab small{display:none}
  .soil-workspace-values-card,#soil_current_balance_card,#soil_projected_balance_card,.soil-workspace-amendment-card{padding:12px!important}
  .soil-workspace-section-head{display:grid}
  .soil-workspace-micros-toggle{justify-self:start}
  .soil-workspace-values-card .soil-core-fields{grid-template-columns:1fr 1fr}
  .soil-workspace-autopilot-lead{padding:14px}
  .soil-workspace-autopilot-lead h2{font-size:1.08rem}
  .soil-workspace-lead-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .soil-workspace-lead-actions .btn{width:100%;min-height:44px}
  .soil-workspace-amendment-card .soil-amendment-table{min-width:540px}
  .soil-balance-marker span,.soil-phase18-marker>span{font-size:.55rem!important;padding:2px 4px!important}
}
@media (max-width:460px){
  #tab-soil .soil-toolbar{grid-template-columns:1fr}
  #tab-soil .soil-toolbar #soil_preset{grid-column:auto}
  .soil-workspace-tab-icon{display:none}
  .soil-workspace-tab{justify-content:center;text-align:center}
  .soil-workspace-values-card .soil-core-fields{grid-template-columns:1fr}
  .soil-workspace-lead-actions{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.soil-workspace-tab{transition:none}}

/* Phone refinement: stack profile identity above its controls and keep actions compact. */
@media (max-width:720px){
  #tab-soil .soil-profile-switcher{display:grid!important;grid-template-columns:1fr!important;align-items:stretch!important;gap:12px!important;padding:13px!important}
  #tab-soil .soil-profile-identity{align-items:center!important}
  #tab-soil .soil-profile-controls{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;width:100%!important;min-width:0!important;gap:8px!important}
  #tab-soil #soil_profile_select{width:100%!important;min-width:0!important;max-width:none!important}
  #tab-soil #soil_profile_manage{width:auto!important;min-width:104px!important}
  #tab-soil .soil-toolbar #soil_btn_load{grid-column:1/-1}
}
@media (max-width:460px){
  #tab-soil .soil-toolbar{grid-template-columns:1fr 1fr!important}
  #tab-soil .soil-toolbar #soil_btn_load,#tab-soil .soil-toolbar #soil_preset{grid-column:1/-1}
  #tab-soil .soil-profile-controls{grid-template-columns:minmax(0,1fr) auto!important}
}

/* ===== soil_workspace_phase2.css ===== */
/* Soil workspace Phase 2: live patch-size-aware projection and preserved Autopilot snapshot. */
#soil_projected_balance_card.is-live-preview{border-color:rgba(34,164,90,.28);background:linear-gradient(180deg,#fbfffc,#fff 18%)}
.soil-live-head .eyebrow{display:flex;align-items:center;gap:7px;color:#15803d}
.soil-live-indicator{width:8px;height:8px;border-radius:50%;background:#22a45a;box-shadow:0 0 0 4px rgba(34,164,90,.13);flex:0 0 auto}
.soil-live-scope{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 13px;padding:9px 11px;border:1px solid rgba(34,164,90,.22);border-radius:11px;background:#f0fdf4;color:#166534;font-size:.69rem;line-height:1.4}
.soil-live-scope span{min-width:0}
.soil-live-row .soil-phase18-delta.is-positive{background:#ecfdf3;color:#166534}
.soil-live-row .soil-phase18-delta.is-negative{background:#fff1f2;color:#b91c1c}
.soil-live-row .soil-phase18-delta.is-neutral{background:#f1f5f9;color:#475569}
.soil-live-blocked .soil-phase18-empty-icon{background:#fff1f2;color:#b91c1c}

.soil-last-autopilot-card{margin:0!important;padding:14px!important;border-color:rgba(148,163,184,.28);background:#fff;min-width:0}
.soil-last-autopilot-card.is-stale{border-color:#fed7aa;background:linear-gradient(180deg,#fffaf5,#fff)}
.soil-last-autopilot-card.is-current{border-color:#86efac;background:linear-gradient(180deg,#f7fff9,#fff)}
.soil-last-autopilot-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.soil-last-autopilot-head h3{margin:2px 0 4px;font-size:1rem;color:#172033}
.soil-last-autopilot-head p{margin:0;max-width:760px;color:#64748b;font-size:.74rem;line-height:1.45}
.soil-last-autopilot-state{display:inline-flex;align-items:center;min-height:30px;padding:5px 9px;border-radius:999px;border:1px solid #fdba74;background:#fff7ed;color:#9a3412;font-size:.68rem;font-weight:850;white-space:nowrap}
.soil-last-autopilot-card.is-current .soil-last-autopilot-state{border-color:#86efac;background:#ecfdf3;color:#166534}
.soil-last-autopilot-meta{display:flex;align-items:center;gap:7px 14px;flex-wrap:wrap;margin-top:10px;padding:8px 10px;border-radius:10px;background:rgba(248,250,252,.9);color:#64748b;font-size:.67rem}
.soil-last-autopilot-meta span{min-width:0;overflow-wrap:anywhere}
.soil-last-autopilot-meta b{color:#334155}
.soil-last-autopilot-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.soil-last-autopilot-stats>div{display:grid;gap:3px;padding:9px 10px;border:1px solid rgba(148,163,184,.25);border-radius:11px;background:#fff}
.soil-last-autopilot-stats span{font-size:.61rem;text-transform:uppercase;letter-spacing:.04em;font-weight:800;color:#64748b}
.soil-last-autopilot-stats b{font-size:.87rem;color:#172033}
.soil-last-autopilot-details{margin-top:9px;border:1px solid rgba(148,163,184,.27);border-radius:11px;background:#f8fafc;padding:0 9px 9px}
.soil-last-autopilot-details>summary{cursor:pointer;padding:10px 2px;font-size:.72rem;font-weight:850;color:#334155}
.soil-last-autopilot-products{display:grid;gap:7px}
.soil-last-autopilot-product{display:grid;grid-template-columns:26px minmax(0,1fr);gap:8px;align-items:start;padding:8px;border-radius:9px;background:#fff;border:1px solid rgba(148,163,184,.22)}
.soil-last-autopilot-product>span{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#fff3e8;color:#c2410c;font-size:.68rem;font-weight:900}
.soil-last-autopilot-product div{display:grid;gap:2px;min-width:0}
.soil-last-autopilot-product b{font-size:.74rem;color:#1f2937}
.soil-last-autopilot-product small{font-size:.64rem;line-height:1.4;color:#64748b;overflow-wrap:anywhere}
.soil-last-autopilot-note{margin-top:9px;padding:8px 10px;border-radius:10px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:.67rem;line-height:1.42}

@media (max-width:860px){
  .soil-live-scope{grid-template-columns:1fr}
}
@media (max-width:720px){
  .soil-last-autopilot-card{padding:12px!important}
  .soil-last-autopilot-head{display:grid}
  .soil-last-autopilot-state{justify-self:start}
  .soil-last-autopilot-stats{grid-template-columns:1fr 1fr 1fr}
}
@media (max-width:460px){
  .soil-last-autopilot-stats{grid-template-columns:1fr}
  .soil-last-autopilot-meta{display:grid;gap:5px}
}
@media (prefers-reduced-motion:no-preference){
  .soil-live-indicator{animation:soil-live-pulse 2.2s ease-in-out infinite}
  @keyframes soil-live-pulse{0%,100%{box-shadow:0 0 0 4px rgba(34,164,90,.13)}50%{box-shadow:0 0 0 7px rgba(34,164,90,.04)}}
}

/* ===== soil_workspace_phase3.css ===== */
/* Soil workspace Phase 3: immutable test + separate amendment project */
.soil-project-manager{
  margin:0 0 18px;
  border:1px solid color-mix(in srgb,var(--accent,#f97316) 28%,var(--border,#d9dee8));
  background:linear-gradient(145deg,color-mix(in srgb,var(--accent,#f97316) 5%,var(--card,#fff)),var(--card,#fff) 55%);
  box-shadow:0 14px 34px rgba(28,39,54,.07);
}
.soil-project-manager-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
}
.soil-project-manager-head h3{margin:2px 0 4px;font-size:1.2rem}
.soil-project-manager-head p{margin:0;max-width:760px;color:var(--muted,#667085);line-height:1.5}
.soil-project-manager-grid{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(260px,1.15fr) minmax(260px,1.25fr) minmax(220px,1fr);
  gap:12px;
}
.soil-project-field,.soil-project-fact{
  min-width:0;
  padding:12px;
  border:1px solid var(--border,#d9dee8);
  border-radius:14px;
  background:color-mix(in srgb,var(--card,#fff) 92%,transparent);
}
.soil-project-field{display:flex;flex-direction:column;gap:7px}
.soil-project-field>span,.soil-project-fact>span{
  display:block;
  color:var(--muted,#667085);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.soil-project-fact strong{
  display:block;
  margin-top:7px;
  overflow-wrap:anywhere;
  font-size:.93rem;
  line-height:1.35;
}
.soil-project-fact small{
  display:block;
  margin-top:5px;
  color:var(--muted,#667085);
  font-size:.76rem;
  line-height:1.4;
}
.soil-project-warning{margin-top:12px;line-height:1.5}
.soil-project-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:9px;
  margin-top:14px;
}
.soil-project-actions .btn{min-height:42px}
.soil-project-actions #soil_project_archive{margin-left:auto}
.soil-project-actions .btn.danger{
  border-color:color-mix(in srgb,#dc2626 40%,var(--border,#d9dee8));
  color:#b42318;
}
.soil-project-manager #soil_project_status.good{background:#eaf8ef;color:#168244;border-color:#a9dfba}
.soil-project-manager #soil_project_status.warn{background:#fff7e8;color:#9a5b00;border-color:#f4cf8e}

/* The current-test record card is laboratory history only in Phase 3. */
#soil_records_panel .soil-records-head .sub::after{
  content:" Dated tests never store amendment products or quantities.";
  font-weight:700;
}

@media (max-width:1180px){
  .soil-project-manager-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .soil-project-manager{padding:14px}
  .soil-project-manager-head{display:block}
  .soil-project-manager-head #soil_project_status{display:inline-flex;margin-top:10px}
  .soil-project-manager-grid{grid-template-columns:1fr;gap:9px}
  .soil-project-field,.soil-project-fact{padding:11px;border-radius:12px}
  .soil-project-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .soil-project-actions .btn{width:100%;margin:0!important;white-space:normal}
  .soil-project-actions #soil_project_default_area{grid-column:1/-1}
}
@media (max-width:430px){
  .soil-project-actions{grid-template-columns:1fr}
  .soil-project-actions #soil_project_default_area{grid-column:auto}
}

/* ===== soil_workspace_phase4.css ===== */
/* PumpkinOps Soil workspace Phase 4
   Consolidated presentation utilities, custom-product editor, and live per-product effects. */

/* Template utilities replace inline Soil presentation styles. */
.soil-m-0{margin:0}
.soil-title-gap{margin:0 0 8px}
.soil-mt-3{margin-top:3px}
.soil-mt-14{margin-top:14px}
.soil-mb-14{margin-bottom:14px}
.soil-spacer-8{height:8px}
.soil-spacer-10{height:10px}
.soil-spacer-12{height:12px}
.soil-wrap-8{gap:8px;flex-wrap:wrap}
.soil-wrap-10{gap:10px;flex-wrap:wrap}
.soil-section-head{align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
.soil-balanced-head{align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.soil-header-layout{align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.soil-inline-check{display:flex;gap:10px;align-items:center}
.soil-col-110{width:110px}
.soil-col-120{width:120px}
.soil-preset-select{width:auto;min-width:220px}
.soil-file-input{display:none}

/* Amendment rows now explain the exact patch-size-adjusted effect. */
.soil-product-contribution{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px dashed color-mix(in srgb,var(--border) 78%,transparent);font-size:.78rem;line-height:1.35;color:var(--muted)}
.soil-product-contribution.has-value{color:var(--text)}
.soil-product-rate{font-weight:800;color:var(--text);white-space:nowrap}
.soil-product-effects{display:flex;gap:5px;flex-wrap:wrap;flex:1 1 100%}
.soil-product-effect-chip{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border:1px solid color-mix(in srgb,#16a34a 34%,var(--border));border-radius:999px;background:color-mix(in srgb,#16a34a 9%,var(--card));font-weight:800;white-space:nowrap}
.soil-product-effect-chip.decrease{border-color:color-mix(in srgb,#2563eb 36%,var(--border));background:color-mix(in srgb,#2563eb 9%,var(--card))}
.soil-product-effect-empty{font-weight:600;color:var(--muted)}
.soil-product-manual-badge{display:inline-flex;align-items:center;min-height:22px;padding:1px 7px;border:1px solid color-mix(in srgb,#d97706 40%,var(--border));border-radius:999px;background:color-mix(in srgb,#f59e0b 10%,var(--card));font-weight:800;font-size:.7rem;white-space:nowrap}
.soil-amendment-table td:nth-child(3){min-width:320px}

/* Product library: clearer creation state, identity, chemistry, and packages. */
.soil-product-overlay{display:none}
.soil-product-list-title{gap:8px}
.soil-product-mini-badge.info{border-color:color-mix(in srgb,#2563eb 40%,var(--border));background:color-mix(in srgb,#2563eb 10%,var(--card))}
.soil-product-source-badge{display:inline-flex;align-items:center;width:max-content;max-width:100%;min-height:25px;padding:3px 9px;border:1px solid var(--border);border-radius:999px;background:var(--card);font-size:.74rem;font-weight:800}
.soil-product-source-badge.custom{border-color:color-mix(in srgb,#d97706 42%,var(--border));background:color-mix(in srgb,#f59e0b 10%,var(--card))}
.soil-product-identity-grid,.soil-product-quantity-grid,.soil-package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.soil-product-identity-grid .soil-product-span-2,.soil-product-quantity-grid .soil-product-span-2,.soil-package-grid .soil-product-span-2{grid-column:span 2}
.soil-product-editor-section{padding:14px;border:1px solid var(--border);border-radius:16px;background:color-mix(in srgb,var(--card) 92%,var(--bg))}
.soil-product-editor-section+.soil-product-editor-section{margin-top:12px}
.soil-product-editor-section>h4{margin:0 0 4px}
.soil-product-editor-section>.sub{margin-bottom:10px}
.soil-product-analysis-field,.soil-product-form-field{min-width:0}
.soil-product-editor input:disabled,.soil-product-editor select:disabled{opacity:.72;cursor:not-allowed;background:color-mix(in srgb,var(--card) 76%,var(--bg))}
.soil-product-create-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.soil-product-modal-head h2{margin:0}
.soil-product-filter-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.55fr);gap:8px}

/* One responsive Soil surface, after the legacy rules, to make the cascade predictable. */
@media (max-width:900px){
  .soil-product-identity-grid,.soil-product-quantity-grid,.soil-package-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .soil-amendment-table td:nth-child(3){min-width:270px}
}
@media (max-width:700px){
  .soil-preset-select{width:100%;min-width:0}
  .soil-header-layout,.soil-section-head,.soil-balanced-head{align-items:stretch}
  .soil-header-layout>*,.soil-section-head>*,.soil-balanced-head>*{max-width:100%}
  .soil-product-filter-row,.soil-product-identity-grid,.soil-product-quantity-grid,.soil-package-grid{grid-template-columns:1fr}
  .soil-product-identity-grid .soil-product-span-2,.soil-product-quantity-grid .soil-product-span-2,.soil-package-grid .soil-product-span-2{grid-column:auto}
  .soil-product-editor-section{padding:12px}
  .soil-amendment-table td:nth-child(3){min-width:230px}
  .soil-product-contribution{align-items:flex-start}
  .soil-product-rate{white-space:normal}
}
@media (max-width:520px){
  .soil-amendment-table-wrap{overflow:visible}
  .soil-amendment-table,.soil-amendment-table tbody,.soil-amendment-table tr,.soil-amendment-table td{display:block;width:100%}
  .soil-amendment-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .soil-amendment-table tr{padding:12px;margin-bottom:10px;border:1px solid var(--border);border-radius:16px;background:var(--card)}
  .soil-amendment-table td{padding:4px 0;border:0;min-width:0!important}
  .soil-amendment-table td:nth-child(1)::before{content:'Quantity';display:block;margin-bottom:3px;font-size:.72rem;font-weight:800;color:var(--muted)}
  .soil-amendment-table td:nth-child(2)::before{content:'Unit';display:block;margin-bottom:3px;font-size:.72rem;font-weight:800;color:var(--muted)}
  .soil-amendment-table td:nth-child(3)::before{content:'Product and projected effect';display:block;margin-bottom:3px;font-size:.72rem;font-weight:800;color:var(--muted)}
  .soil-amendment-table td:last-child{padding-top:9px}
  .soil-amendment-table td:last-child .btn{width:100%}
  .soil-product-effect-chip{white-space:normal}
}
.soil-product-title-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.soil-actions-end{justify-content:flex-end;gap:8px;flex-wrap:wrap}
