:root {
  --analysis-blue: #0056ad;
  --analysis-blue-soft: #eaf3ff;
  --analysis-green: #18884f;
  --analysis-amber: #c98116;
  --analysis-red: #c5342c;
  --analysis-ink: #0d1b2f;
  --analysis-muted: #5c6b82;
  --analysis-line: #c9d7e8;
  --analysis-soft: #f6f9fc;
}

body[data-module="analisis-generales"] .app-view {
  min-height: 100vh;
}

body[data-module="analisis-generales"] .app-shell {
  min-height: 0;
}

.general-analysis-area {
  height: 100%;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 20px 24px 104px;
  scroll-padding-bottom: 104px;
}

.analysis-project-strip,
.analysis-workspace-toolbar,
.analysis-card {
  border: 1px solid var(--analysis-line);
  border-radius: 8px;
  background: #fff;
}

.analysis-workspace-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto minmax(360px, 1.25fr);
  align-items: center;
  gap: 12px;
  margin: -4px 0 16px;
  padding: 10px 12px;
}

.analysis-workspace-state,
.analysis-workspace-actions,
.analysis-workspace-history {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 8px;
}

.analysis-workspace-state > div {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.analysis-workspace-state strong,
.analysis-workspace-state small {
  overflow-wrap: anywhere;
}

.analysis-workspace-state small,
.analysis-workspace-history label,
.analysis-version-preview {
  color: var(--analysis-muted);
  font-size: 11px;
  font-weight: 700;
}

.analysis-workspace-indicator {
  width: 10px;
  height: 10px;
  flex: 0 0 10px;
  border-radius: 50%;
  background: var(--analysis-green);
}

.analysis-workspace-indicator[data-tone="loading"] { background: var(--analysis-amber); }
.analysis-workspace-indicator[data-tone="warn"] { background: var(--analysis-amber); }
.analysis-workspace-indicator[data-tone="error"] { background: var(--analysis-red); }

.analysis-workspace-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.analysis-workspace-history {
  display: grid;
  grid-template-columns: auto minmax(150px, 1fr) auto auto;
}

.analysis-workspace-history select {
  width: 100%;
  min-width: 0;
  min-height: 34px;
  border: 1px solid var(--analysis-line);
  border-radius: 6px;
  background: #fff;
  color: var(--analysis-ink);
  padding: 6px 8px;
}

.analysis-version-preview {
  grid-column: 1 / -1;
  margin: 0;
  border-top: 1px solid var(--analysis-line);
  padding-top: 8px;
}

.analysis-project-strip {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px) auto;
  align-items: end;
  gap: 16px;
  padding: 18px;
  margin-bottom: 16px;
}

.analysis-project-strip h1,
.analysis-card h2 {
  margin: 0;
  color: var(--analysis-ink);
}

.analysis-project-strip p,
.analysis-card p {
  margin: 4px 0 0;
  color: var(--analysis-muted);
}

.analysis-note {
  color: var(--analysis-muted);
  font-size: 13px;
  font-weight: 650;
}

.analysis-project-strip label,
.analysis-input-grid label,
.analysis-water-grid label,
.summary-toolbar label,
.summary-sample-select {
  display: grid;
  gap: 6px;
  color: #344054;
  font-size: 12px;
  font-weight: 750;
}

.analysis-project-strip select,
.analysis-input-grid input,
.analysis-input-grid select,
.analysis-water-grid input,
.summary-toolbar select,
.summary-sample-select select {
  width: 100%;
  min-height: 38px;
  border: 1px solid var(--analysis-line);
  border-radius: 6px;
  background: #fff;
  color: var(--analysis-ink);
  padding: 8px 10px;
  font: inherit;
}

.analysis-module-shell {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 16px;
  min-height: 0;
  padding-bottom: 48px;
}

.analysis-subnav {
  display: grid;
  align-content: start;
  gap: 8px;
}

.analysis-subnav button {
  display: grid;
  gap: 4px;
  width: 100%;
  border: 1px solid var(--analysis-line);
  border-radius: 8px;
  background: #fff;
  color: var(--analysis-ink);
  padding: 12px;
  text-align: left;
}

.analysis-subnav button:not(:disabled) {
  cursor: pointer;
}

.analysis-subnav button.active {
  border-color: var(--analysis-blue);
  background: var(--analysis-blue-soft);
  box-shadow: inset 3px 0 0 var(--analysis-blue);
}

.analysis-subnav button:disabled {
  color: var(--analysis-muted);
  opacity: 0.75;
}

.analysis-subnav span,
.eyebrow {
  color: var(--analysis-blue);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0;
  text-transform: uppercase;
}

.analysis-subnav small {
  color: var(--analysis-muted);
  font-weight: 650;
}

.analysis-panel {
  display: grid;
  gap: 16px;
  min-width: 0;
  min-height: 0;
  padding-bottom: 48px;
}

.analysis-panel[hidden] {
  display: none;
}

.analysis-card {
  padding: 16px;
  min-width: 0;
}

.analysis-card-heading,
.analysis-summary-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.analysis-button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.analysis-card-heading.compact h3 {
  margin: 0;
  color: var(--analysis-ink);
}

.analysis-summary-card {
  flex-wrap: wrap;
}

.analysis-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 8px;
  min-width: min(100%, 620px);
}

.analysis-metric-grid div {
  min-height: 64px;
  border: 1px solid #d9e6f5;
  border-radius: 8px;
  background: var(--analysis-soft);
  padding: 10px;
}

.analysis-metric-grid small {
  display: block;
  color: var(--analysis-muted);
  font-weight: 750;
}

.analysis-metric-grid strong {
  display: block;
  margin-top: 4px;
  color: var(--analysis-blue);
  font-size: 20px;
}

.analysis-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.analysis-grid.single {
  grid-template-columns: minmax(0, 1fr);
}

.analysis-input-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
  min-width: 0;
}

.analysis-input-grid.four {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.analysis-input-grid.spt {
  grid-template-columns: repeat(3, minmax(150px, 1fr));
}

.analysis-input-grid.vane {
  grid-template-columns: repeat(3, minmax(150px, 1fr));
}

.vane-config-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
  gap: 16px;
  align-items: start;
  margin-top: 14px;
  min-width: 0;
}

.vane-config-layout .analysis-input-grid.vane {
  margin-top: 0;
}

.vane-diagram-panel {
  border: 1px solid var(--analysis-border);
  border-radius: 8px;
  background: linear-gradient(180deg, #ffffff, #f7fafd);
  padding: 10px;
  min-width: 0;
}

.vane-diagram {
  width: 100%;
  max-width: 360px;
  margin: 0 auto;
}

.vane-diagram svg {
  display: block;
  width: 100%;
  height: auto;
}

.vane-svg-title {
  fill: #0b223f;
  font-size: 20px;
  font-weight: 900;
}

.vane-svg-subtitle,
.vane-svg-note {
  fill: #17263b;
  font-size: 15px;
  font-weight: 800;
}

.vane-svg-h {
  fill: #0b223f;
  font-size: 28px;
  font-weight: 900;
}

.vane-svg-dim {
  stroke: #0b223f;
  stroke-width: 3;
  fill: none;
}

.vane-svg-rod {
  stroke: #25364a;
  stroke-width: 5;
}

.vane-svg-result rect {
  fill: #eef6ff;
  stroke: var(--analysis-blue);
  stroke-width: 2;
}

.vane-svg-result text {
  fill: var(--analysis-blue);
  font-size: 14px;
  font-weight: 900;
}

.spt-chart-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  min-width: 0;
}

.spt-chart {
  min-width: 0;
  border: 1px solid #c8d6e6;
  border-radius: 8px;
  background: #f8fbff;
  padding: 10px;
  overflow: hidden;
}

.spt-chart strong {
  display: block;
  color: #10233f;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.spt-chart p {
  margin: 8px 0 0;
  color: #53657d;
  font-size: 12px;
  font-weight: 650;
}

.spt-chart svg {
  display: block;
  width: 100%;
  height: auto;
  margin-top: 8px;
}

.spt-equation-box rect {
  fill: rgba(255, 255, 255, 0.92);
  stroke: #aebbd0;
}

.spt-equation-box text {
  fill: #17263b;
  font-size: 12px;
  font-weight: 800;
}

.analysis-input-grid.seismic-input-grid {
  grid-template-columns: repeat(3, minmax(170px, 1fr));
}

.seismic-actions {
  justify-content: flex-start;
  margin-top: 14px;
}

.seismic-bogota-only.is-hidden {
  display: none !important;
}

.seismic-profile-source {
  display: block;
  margin-top: 5px;
  color: #4f6581;
  font-size: 11px;
  font-weight: 800;
}

.seismic-profile-source[data-source="data"],
.seismic-profile-source[data-source="decreto"] {
  color: var(--analysis-green);
}

.seismic-profile-source[data-source="manual"],
.seismic-profile-source[data-source="bogota-required"] {
  color: var(--analysis-amber);
}

.seismic-status-box strong[data-tone="ok"],
.seismic-status-box strong[data-tone="ready"],
.soil-profile-status-box strong[data-tone="ok"],
.soil-profile-status-box strong[data-tone="ready"],
.special-status-box strong[data-tone="ok"],
.special-status-box strong[data-tone="ready"] {
  color: var(--analysis-green);
}

.seismic-status-box strong[data-tone="warn"],
.seismic-status-box strong[data-tone="loading"],
.soil-profile-status-box strong[data-tone="warn"],
.soil-profile-status-box strong[data-tone="loading"],
.special-status-box strong[data-tone="warn"],
.special-status-box strong[data-tone="loading"] {
  color: var(--analysis-amber);
}

.seismic-status-box strong[data-tone="error"],
.soil-profile-status-box strong[data-tone="error"],
.special-status-box strong[data-tone="error"] {
  color: var(--analysis-red);
}

.special-input-grid {
  grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.special-actions {
  justify-content: flex-start;
  margin-top: 14px;
}

.special-report-card {
  border-color: #c7d7ec;
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
}

.special-report-header {
  border-bottom: 2px solid var(--analysis-blue);
  padding-bottom: 10px;
  margin-bottom: 12px;
}

.special-report-header p {
  margin: 0;
  color: #4f6581;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.special-report-header h3 {
  margin: 2px 0;
  color: var(--analysis-ink);
  font-size: 20px;
}

.special-report-header span {
  color: var(--analysis-muted);
  font-size: 12px;
  font-weight: 700;
}

.special-result-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}

.special-result-grid article,
.special-chart,
.special-equations article,
.special-bibliography,
.special-warnings {
  border: 1px solid #d4e1f1;
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}

.special-result-grid span,
.special-chart strong,
.special-equations strong,
.special-bibliography strong,
.special-warnings strong {
  display: block;
  color: #17416f;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.special-result-grid strong {
  display: block;
  margin-top: 4px;
  color: var(--analysis-blue);
  font-size: 18px;
}

.special-result-grid p {
  margin: 4px 0 0;
  color: var(--analysis-muted);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.35;
}

.special-chart-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.special-chart {
  min-width: 0;
  overflow: hidden;
}

.special-chart--wide {
  grid-column: 1 / -1;
}

.special-chart svg {
  display: block;
  width: 100%;
  height: auto;
  margin-top: 8px;
}

.special-chart p {
  margin: 8px 0 0;
  color: var(--analysis-muted);
  font-size: 12px;
  font-weight: 700;
}

.chart-label,
.chart-axis,
.chart-band-label,
.chart-zone-label {
  fill: #203a5c;
  font-size: 10px;
  font-weight: 750;
}

.chart-band-label {
  font-size: 9px;
}

.special-section-title {
  margin: 14px 0 0;
  color: var(--analysis-ink);
  font-size: 15px;
}

.special-table {
  min-width: 1780px;
  font-size: 12px;
}

.special-input-note {
  display: block;
  margin-top: 5px;
  color: var(--analysis-muted);
  font-size: 11px;
  font-weight: 800;
}

.special-input-note[data-source="parametros_sismicos_aa"],
.special-input-note[data-source="decreto_523_a0"] {
  color: #047857;
}

.special-input-note[data-source="manual"] {
  color: #b45309;
}

.special-table th,
.special-table td {
  text-align: left;
}

.special-table-input {
  width: 86px;
  min-width: 0;
  border: 1px solid #b9cbe0;
  border-radius: 6px;
  background: #fff;
  color: var(--analysis-ink);
  font: inherit;
  font-weight: 750;
  padding: 5px 6px;
}

.special-table-input:focus {
  border-color: var(--analysis-blue);
  box-shadow: 0 0 0 2px rgba(0, 86, 173, 0.13);
  outline: none;
}

.special-table-input--code {
  width: 70px;
  text-transform: uppercase;
}

.special-equations,
.special-bibliography,
.special-warnings {
  margin-top: 12px;
}

.special-equations dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 8px 0 0;
}

.special-equations div {
  border: 1px solid #d7e2f0;
  border-radius: 8px;
  background: #f8fbff;
  padding: 8px;
}

.special-equations dt {
  color: var(--analysis-blue);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.special-equations dd {
  margin: 4px 0 0;
  color: var(--analysis-ink);
  font-size: 12px;
  line-height: 1.35;
}

.special-equations dd span,
.special-equations dd b {
  display: block;
}

.special-equations dd b {
  margin-top: 3px;
  color: var(--analysis-blue);
}

.special-warnings:empty {
  display: none;
}

.special-warnings ul,
.special-bibliography ol {
  margin: 8px 0 0;
  padding-left: 18px;
  color: var(--analysis-ink);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.45;
}

.special-bibliography span {
  display: block;
  color: var(--analysis-muted);
  overflow-wrap: anywhere;
}

.seismic-quick-summary {
  margin-top: 12px;
  border: 1px solid #c7d7ec;
  border-radius: 8px;
  background: #f8fbff;
  padding: 12px;
}

.seismic-quick-title {
  color: #10233f;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.seismic-quick-summary > p {
  margin: 6px 0 0;
  color: #56677f;
  font-weight: 650;
}

.seismic-quick-grid {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.35fr);
  gap: 10px;
  margin-top: 10px;
}

.seismic-quick-group {
  min-width: 0;
  border: 1px solid #d4e1f1;
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}

.seismic-quick-group > strong {
  display: block;
  color: #17416f;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.seismic-quick-group dl {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(74px, 1fr));
  gap: 7px;
  margin: 8px 0 0;
}

.seismic-quick-group div {
  min-width: 0;
}

.seismic-quick-group dt {
  color: #65758c;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.seismic-quick-group dd {
  margin: 2px 0 0;
  color: #004f9f;
  font-size: 14px;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.seismic-report-card {
  overflow: hidden;
  display: grid;
  gap: 12px;
}

.seismic-report-header {
  display: grid;
  gap: 4px;
  border-bottom: 2px solid var(--analysis-blue);
  padding-bottom: 10px;
}

.seismic-report-header p {
  margin: 0;
  color: #60728d;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.seismic-report-header h3 {
  margin: 0;
  color: #10233f;
  font-size: 22px;
  font-weight: 900;
}

.seismic-report-header span {
  color: #56677f;
  font-size: 13px;
  font-weight: 650;
}

.seismic-report-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 8px;
}

.seismic-report-summary article {
  min-width: 0;
  border: 1px solid #d4e1f1;
  border-radius: 8px;
  background: #f8fbff;
  padding: 8px 10px;
}

.seismic-report-summary span {
  display: block;
  color: #65758c;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.seismic-report-summary strong {
  display: block;
  margin-top: 3px;
  color: #004f9f;
  font-size: 16px;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.seismic-bogota-report {
  border: 1px solid #b8d5f6;
  border-radius: 8px;
  background: #f3f8ff;
  padding: 10px 12px;
}

.seismic-bogota-report[hidden] {
  display: none;
}

.seismic-bogota-report strong {
  display: block;
  color: #10233f;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.seismic-bogota-report dl {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 8px;
  margin: 8px 0 0;
}

.seismic-bogota-report dt {
  color: #60728d;
  font-size: 10px;
  font-weight: 850;
  text-transform: uppercase;
}

.seismic-bogota-report dd {
  margin: 2px 0 0;
  color: #004f9f;
  font-size: 13px;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.seismic-section-title {
  margin: 4px 0 -2px;
  color: #10233f;
  font-size: 14px;
  font-weight: 900;
}

.seismic-table-wrap {
  margin-top: 0;
}

.seismic-table caption {
  caption-side: top;
  background: transparent;
  border: 0;
  color: #17416f;
  font-size: 12px;
  font-weight: 900;
  padding: 0 0 6px;
  text-align: left;
}

.seismic-table th,
.seismic-table td {
  border-color: #d9e6f5;
  color: #10233f;
  text-align: center;
  vertical-align: middle;
}

.seismic-table th {
  background: #edf4fb;
  color: #17416f;
  font-weight: 900;
}

.seismic-parameter-table th {
  background: #e8f1fb;
  color: #17416f;
}

.seismic-parameter-table {
  min-width: 1460px;
}

.seismic-acceleration-table {
  min-width: 980px;
}

.seismic-equation-cell {
  font-family: "Segoe UI", Arial, sans-serif;
  color: #17416f !important;
  font-weight: 750;
}

.seismic-equations {
  border: 1px solid #c8d6e6;
  border-radius: 8px;
  background: #fff;
  padding: 10px 12px;
}

.seismic-equations article {
  display: grid;
  gap: 8px;
}

.seismic-equations strong {
  color: #10233f;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.seismic-equations p {
  margin: 0;
  color: #56677f;
  font-size: 12px;
  font-weight: 650;
}

.seismic-equations dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.seismic-equations div {
  min-width: 0;
  border: 1px solid #d7e2f0;
  border-radius: 8px;
  background: #f8fbff;
  padding: 8px;
}

.seismic-equations dt {
  color: var(--analysis-blue);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.seismic-equations dd {
  display: grid;
  gap: 4px;
  margin: 4px 0 0;
  color: #24364f;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.35;
}

.seismic-equations b {
  color: #0b5cad;
  font-size: 12px;
}

.seismic-warnings {
  border: 1px solid #f3c071;
  border-radius: 8px;
  background: #fff8e8;
  color: #7a4a00;
  padding: 10px 12px;
  font-size: 13px;
  font-weight: 650;
}

.seismic-warnings:empty {
  display: none;
}

.seismic-warnings ul {
  margin: 6px 0 0;
  padding-left: 18px;
}

.soil-profile-actions {
  justify-content: flex-start;
  margin-top: 14px;
}

.soil-profile-input-grid {
  grid-template-columns: minmax(180px, 260px) minmax(240px, 420px) minmax(230px, 1fr) minmax(150px, 190px);
}

.soil-profile-manual-toggle {
  align-content: center;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px;
}

.soil-profile-manual-toggle input {
  width: auto;
}

.soil-profile-adjustment-box strong {
  font-size: 18px;
}

.soil-profile-report-card {
  display: grid;
  gap: 12px;
}

.soil-profile-report-header {
  display: grid;
  gap: 4px;
  border-bottom: 2px solid var(--analysis-blue);
  padding-bottom: 10px;
}

.soil-profile-report-header p {
  margin: 0;
  color: #60728d;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.soil-profile-report-header h3 {
  margin: 0;
  color: #10233f;
  font-size: 22px;
  font-weight: 900;
}

.soil-profile-report-header span {
  color: #56677f;
  font-size: 13px;
  font-weight: 650;
}

.soil-profile-result-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 8px;
}

.soil-profile-result-grid article {
  min-width: 0;
  border: 1px solid #d4e1f1;
  border-radius: 8px;
  background: #f8fbff;
  padding: 10px;
}

.soil-profile-result-grid span {
  display: block;
  color: #65758c;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.soil-profile-result-grid strong {
  display: block;
  margin-top: 3px;
  color: #004f9f;
  font-size: 17px;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.soil-profile-result-grid p {
  margin: 4px 0 0;
  color: #56677f;
  font-size: 12px;
  font-weight: 650;
}

.soil-profile-charts {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  min-width: 0;
}

.soil-profile-charts svg {
  display: block;
  min-width: 360px;
  width: 100%;
}

.soil-profile-section-title {
  margin: 4px 0 -2px;
  color: #10233f;
  font-size: 14px;
  font-weight: 900;
}

.soil-profile-table {
  min-width: 940px;
}

.soil-profile-table th,
.soil-profile-table td {
  border-color: #d9e6f5;
  color: #10233f;
  text-align: center;
  vertical-align: middle;
}

.soil-profile-table th {
  background: #edf4fb;
  color: #17416f;
  font-weight: 900;
}

.soil-profile-equations,
.soil-profile-bibliography,
.soil-profile-warnings {
  border: 1px solid #c8d6e6;
  border-radius: 8px;
  background: #f8fbff;
  padding: 10px 12px;
}

.soil-profile-equations article {
  display: grid;
  gap: 8px;
}

.soil-profile-equations strong,
.soil-profile-bibliography strong,
.soil-profile-warnings strong {
  color: #10233f;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.soil-profile-equations p {
  margin: 0;
  color: #56677f;
  font-size: 12px;
  font-weight: 650;
}

.soil-profile-equations dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.soil-profile-equations div {
  min-width: 0;
  border: 1px solid #d7e2f0;
  border-radius: 8px;
  background: #fff;
  padding: 8px;
}

.soil-profile-equations dt {
  color: var(--analysis-blue);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.soil-profile-equations dd {
  display: grid;
  gap: 4px;
  margin: 4px 0 0;
  color: #24364f;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.35;
}

.soil-profile-equations b {
  color: #0b5cad;
  font-size: 12px;
}

.soil-profile-warnings {
  border-color: #f3c071;
  background: #fff8e8;
  color: #7a4a00;
  font-size: 13px;
  font-weight: 650;
}

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

.soil-profile-warnings ul {
  margin: 6px 0 0;
  padding-left: 18px;
}

.soil-profile-bibliography ol {
  display: grid;
  gap: 6px;
  margin: 8px 0 0;
  padding-left: 20px;
  color: #24364f;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.4;
}

.soil-profile-bibliography span {
  display: block;
  color: #60728d;
  overflow-wrap: anywhere;
}

.seismic-method-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 8px;
}

.seismic-method-summary article {
  min-width: 0;
  border: 1px solid #c8d6e6;
  border-radius: 8px;
  background: #fff;
  padding: 8px 10px;
}

.seismic-method-summary strong {
  display: block;
  color: #10233f;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.seismic-method-summary p {
  margin: 5px 0 0;
  color: #24364f;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.45;
  text-align: justify;
}

.seismic-bibliography {
  border: 1px solid #c8d6e6;
  border-radius: 8px;
  background: #f8fbff;
  padding: 10px 12px;
}

.seismic-bibliography strong {
  display: block;
  color: #10233f;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.seismic-bibliography ol {
  display: grid;
  gap: 6px;
  margin: 8px 0 0;
  padding-left: 20px;
  color: #24364f;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.4;
}

.seismic-bibliography span {
  display: block;
  color: #60728d;
  overflow-wrap: anywhere;
}

.analysis-pill {
  border: 1px solid #b8d5f6;
  border-radius: 999px;
  background: var(--analysis-blue-soft);
  color: var(--analysis-blue);
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 850;
  white-space: nowrap;
}

.summary-toolbar {
  display: grid;
  grid-template-columns: minmax(240px, 420px);
  margin-top: 14px;
}

.summary-v2-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.summary-v2-card {
  display: grid;
  gap: 6px;
  min-height: 86px;
  border: 1px solid #d9e6f5;
  border-radius: 8px;
  background: #f8fbff;
  padding: 12px;
}

.summary-v2-card-wide {
  grid-column: span 2;
}

.summary-v2-card span,
.summary-v2-card small {
  color: var(--analysis-muted);
  font-size: 12px;
  font-weight: 750;
}

.summary-v2-card strong {
  color: var(--analysis-blue);
  font-size: 18px;
  overflow-wrap: anywhere;
}

.summary-progress-bar,
.summary-granulometry-bars i {
  display: block;
  overflow: hidden;
  height: 8px;
  border-radius: 999px;
  background: #dfe8f4;
}

.summary-progress-bar span,
.summary-granulometry-bars em {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--analysis-blue);
}

.summary-granulometry-bars {
  display: grid;
  gap: 6px;
}

.summary-granulometry-bars div {
  display: grid;
  grid-template-columns: 50px minmax(80px, 1fr) 46px;
  align-items: center;
  gap: 8px;
}

.summary-granulometry-bars b {
  color: var(--analysis-ink);
  font-size: 12px;
}

.summary-granulometry-bars small {
  text-align: right;
}

.formula-box {
  display: grid;
  gap: 4px;
  margin-top: 12px;
  border: 1px solid #d9e6f5;
  border-radius: 8px;
  background: #f8fbff;
  padding: 12px;
  min-width: 0;
}

.formula-box strong {
  color: var(--analysis-blue);
  font-size: 22px;
}

.formula-box span {
  color: var(--analysis-muted);
  font-weight: 650;
  overflow-wrap: anywhere;
}

.analysis-water-table {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.analysis-water-grid {
  display: grid;
  gap: 8px;
}

.analysis-water-row {
  display: grid;
  grid-template-columns: minmax(160px, 1.2fr) minmax(130px, 1fr) minmax(140px, 1fr);
  gap: 10px;
  align-items: center;
  border: 1px solid #d9e6f5;
  border-radius: 8px;
  background: #f8fbff;
  padding: 10px;
}

.analysis-water-row strong,
.analysis-water-row span {
  display: block;
}

.analysis-water-row span,
.analysis-water-empty {
  color: var(--analysis-muted);
  font-size: 12px;
  font-weight: 650;
}

.analysis-water-empty {
  border: 1px dashed var(--analysis-line);
  border-radius: 8px;
  padding: 12px;
}

.analysis-table-wrap {
  overflow: auto;
  margin-top: 12px;
  border: 1px solid #d9e6f5;
  border-radius: 8px;
}

.analysis-table {
  width: 100%;
  min-width: 980px;
  border-collapse: collapse;
  font-size: 13px;
}

.summary-table {
  min-width: 1680px;
  font-size: 12px;
}

.summary-table th,
.summary-table td {
  text-align: center;
}

.summary-table .summary-description {
  min-width: 240px;
  max-width: 360px;
  text-align: left;
  white-space: normal;
}

.summary-sample-select {
  min-width: 260px;
}

.summary-sample-detail {
  display: grid;
  gap: 14px;
  margin-top: 12px;
  border: 1px solid #d9e6f5;
  border-radius: 8px;
  background: #f8fbff;
  padding: 14px;
  color: var(--analysis-ink);
}

.summary-sample-detail h3,
.summary-sample-detail p {
  margin: 0;
}

.summary-sample-detail p {
  color: var(--analysis-muted);
  font-weight: 650;
}

.summary-sample-detail dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.summary-sample-detail div {
  border: 1px solid #d9e6f5;
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}

.summary-sample-detail dt {
  color: var(--analysis-muted);
  font-size: 11px;
  font-weight: 850;
  text-transform: uppercase;
}

.summary-sample-detail dd {
  margin: 4px 0 0;
  font-weight: 800;
}

.data-analysis-controls {
  display: grid;
  grid-template-columns: minmax(140px, 180px) minmax(160px, 220px) 1fr;
  gap: 10px;
  align-items: end;
  margin-top: 12px;
}

.data-analysis-controls span {
  border: 1px solid #d9e6f5;
  border-radius: 8px;
  background: #f8fbff;
  color: var(--analysis-muted);
  font-size: 12px;
  font-weight: 750;
  padding: 11px 12px;
  min-height: 42px;
}

.data-analysis-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.data-analysis-tabs button {
  border: 1px solid #cfe0f4;
  border-radius: 8px;
  background: #f7fbff;
  color: #344054;
  cursor: pointer;
  font-weight: 850;
  padding: 8px 11px;
}

.data-analysis-tabs button.active {
  border-color: var(--analysis-blue);
  background: #e8f2ff;
  color: var(--analysis-blue);
  box-shadow: inset 3px 0 0 var(--analysis-blue);
}

.data-analysis-table {
  min-width: 1280px;
  font-size: 12px;
}

.data-analysis-table th,
.data-analysis-table td {
  text-align: center;
}

.data-analysis-table td.numeric {
  font-variant-numeric: tabular-nums;
  font-weight: 750;
}

.analysis-table th,
.analysis-table td {
  border-bottom: 1px solid #dfe8f4;
  padding: 9px 10px;
  text-align: left;
  vertical-align: top;
}

.analysis-table th {
  background: #f2f7fd;
  color: #344054;
  font-size: 11px;
  text-transform: uppercase;
}

.analysis-table tbody tr:nth-child(even) {
  background: #fafcff;
}

.analysis-table .muted {
  color: var(--analysis-muted);
}

.analysis-table .ok {
  color: var(--analysis-green);
  font-weight: 850;
}

.analysis-table .warn {
  color: var(--analysis-amber);
  font-weight: 850;
}

.analysis-table .danger {
  color: var(--analysis-red);
  font-weight: 850;
}

.data-analysis-chart {
  margin-top: 12px;
  overflow-x: auto;
}

.data-analysis-chart svg {
  display: block;
  min-width: 720px;
  width: 100%;
}

.data-analysis-chart-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
}

.data-analysis-chart-panel {
  min-width: 0;
}

.data-analysis-chart-grid svg {
  min-width: 360px;
}

.data-analysis-chart-empty {
  border: 1px dashed var(--analysis-border);
  border-radius: 8px;
  color: var(--analysis-muted);
  display: grid;
  gap: 4px;
  padding: 14px;
}

@media (max-width: 1180px) {
  .analysis-project-strip,
  .analysis-workspace-toolbar,
  .analysis-module-shell,
  .analysis-grid {
    grid-template-columns: 1fr;
  }

  .analysis-subnav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .analysis-metric-grid,
  .data-analysis-chart-grid,
  .spt-chart-grid,
  .seismic-quick-grid,
  .seismic-equations dl,
  .special-input-grid,
  .special-chart-grid,
  .special-result-grid,
  .special-equations dl,
  .analysis-input-grid.four,
  .analysis-input-grid.spt,
  .analysis-input-grid.vane,
  .analysis-input-grid.soil-profile-input-grid,
  .analysis-input-grid.seismic-input-grid,
  .seismic-method-summary,
  .analysis-water-row,
  .data-analysis-controls,
  .summary-v2-overview,
  .summary-sample-detail dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .analysis-workspace-history {
    grid-template-columns: auto minmax(180px, 1fr) auto auto;
  }

  .vane-config-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 760px) {
  .general-analysis-area {
    padding: 12px;
  }

  .analysis-card-heading,
  .analysis-summary-card {
    align-items: flex-start;
    flex-direction: column;
  }

  .analysis-workspace-actions {
    justify-content: flex-start;
  }

  .analysis-workspace-history {
    grid-template-columns: 1fr 1fr;
  }

  .analysis-workspace-history label,
  .analysis-workspace-history select {
    grid-column: 1 / -1;
  }

  .analysis-metric-grid,
  .spt-chart-grid,
  .seismic-quick-grid,
  .seismic-equations dl,
  .special-input-grid,
  .special-chart-grid,
  .special-result-grid,
  .special-equations dl,
  .analysis-input-grid,
  .analysis-input-grid.four,
  .analysis-input-grid.spt,
  .analysis-input-grid.vane,
  .analysis-input-grid.seismic-input-grid,
  .seismic-method-summary,
  .analysis-water-row,
  .data-analysis-controls,
  .summary-toolbar,
  .summary-v2-overview,
  .summary-sample-detail dl,
  .analysis-subnav {
    grid-template-columns: 1fr;
  }

  .summary-v2-card-wide {
    grid-column: span 1;
  }

  .special-chart--wide {
    grid-column: span 1;
  }

  .vane-diagram {
    max-width: 300px;
  }
}
