:root {
  --bg: #f4f7fb;
  --panel: #ffffff;
  --panel-2: #f8fafc;
  --panel-3: #eef4ff;
  --border: #dbe3ee;
  --border-bright: #c3cfdd;
  --text: #172033;
  --muted: #64748b;
  --amber: #2563eb;
  --amber-soft: rgba(37, 99, 235, .10);
  --cyan: #0ea5e9;
  --green: #16845b;
  --red: #d14343;
  --blue: #2563eb;
  --shadow: rgba(15, 23, 42, .08);
  --mono: "SFMono-Regular", Consolas, monospace;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
html { color-scheme: light; }
body { color: var(--text); background: var(--bg); }
.terminal-bar { min-height: 72px; background: #fff; border-bottom: 1px solid var(--border); box-shadow: 0 1px 4px var(--shadow); }
.terminal-mark { border: 0; border-radius: 12px; color: #fff; background: #2563eb; box-shadow: 0 5px 16px rgba(37,99,235,.22); }
.eyebrow { color: #2563eb; font-family: var(--sans); letter-spacing: .09em; }
.market-strip { border-left-color: var(--border); }
.market-strip > div { border-right-color: var(--border); }
.market-strip strong { color: #2563eb; }
.function-bar { background: #fff; border-bottom: 1px solid var(--border); padding-inline: .45rem; }
.function-key { min-height: 42px; border-right: 0; border-radius: 8px; margin: 5px 2px; font-family: var(--sans); font-size: .75rem; }
.function-key:hover, .function-key.active { color: #1d4ed8; background: #eff6ff; box-shadow: none; }
kbd { color: #64748b; }
.workstation-grid { gap: 14px; padding: 14px; }
.panel { border: 1px solid var(--border); border-radius: 14px; background: #fff; box-shadow: 0 6px 20px var(--shadow); }
.control-panel, .chart-panel, .data-panel, .activity-panel { padding: 1.15rem; }
h1 { color: #0f172a; }
h2 { color: #172033; font-size: 1.08rem; }
.live-tag { border-radius: 999px; color: #16845b; background: #ecfdf5; border-color: #a7f3d0; }
.segmented-control { gap: 8px; }
.segmented-control span { border-color: var(--border); border-radius: 9px; background: #f8fafc; color: #475569; font-family: var(--sans); }
.segmented-control input:checked + span { color: #1d4ed8; border-color: #93b4f5; background: #eff6ff; }
select, .number-input, .chart-toolbar select, .chart-toolbar input { border: 1px solid var(--border-bright); border-radius: 8px; background: #fff; color: #172033; }
select:focus, .number-input:focus, .chart-toolbar select:focus, .chart-toolbar input:focus { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
.parameter-header { grid-template-columns: 1fr; border-color: var(--border); }
.parameter-header span:last-child { display: none; }
.parameter-row { grid-template-columns: 1fr; gap: .45rem; padding: .75rem 0; border-bottom: 1px solid #edf1f5; }
.parameter-row label { font-family: var(--sans); }
.parameter-row label span:first-child { color: #1d4ed8; font-size: .92rem; }
.parameter-row label span:last-child { color: #64748b; font-size: .72rem; }
.parameter-slider-controls { display: grid; grid-template-columns: minmax(0,1fr) 82px; gap: .7rem; align-items: center; }
.parameter-slider { width: 100%; accent-color: #2563eb; cursor: pointer; }
.number-input { min-height: 34px; font-family: var(--mono); }
.button { border-radius: 9px; border-color: var(--border-bright); background: #fff; color: #334155; font-family: var(--sans); }
.button:hover { border-color: #2563eb; color: #1d4ed8; }
.button.primary { color: #fff; background: #2563eb; border-color: #2563eb; }
.button.secondary { color: #475569; background: #f8fafc; }
.diagnostic-box, .metric-strip { gap: 0; border-color: var(--border); background: #fff; border-radius: 10px; overflow: hidden; }
.diagnostic-box div, .metric-strip div { background: #f8fafc; border-right: 1px solid var(--border); }
.diagnostic-box strong { color: #1d4ed8; }
.icon-button, .toolbar-button { border-radius: 8px; border-color: var(--border); background: #fff; color: #475569; font-family: var(--sans); }
.icon-button:hover, .icon-button.active, .toolbar-button:hover:not(:disabled) { color: #1d4ed8; border-color: #93b4f5; background: #eff6ff; }
.chart-toolbar { border-color: var(--border); border-radius: 10px; background: #f8fafc; }
.chart-toolbar label { color: #64748b; font-family: var(--sans); }
.interaction-hint { color: #64748b; font-family: var(--sans); }
.chart-shell { border-color: var(--border); border-radius: 10px; background: #fff; overflow: hidden; }
.chart-loading { color: #2563eb; background: rgba(255,255,255,.92); font-family: var(--sans); }
.drag-status { border-radius: 8px; border-color: var(--border); color: #1d4ed8; background: #eff6ff; font-family: var(--sans); }
.drag-status.active { border-color: #2563eb; color: #1d4ed8; box-shadow: none; }
.switch-track { border-radius: 999px; background: #dbe3ee; border-color: #c3cfdd; }
.switch-track::after { border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(15,23,42,.24); }
.switch-control input:checked + .switch-track { border-color: #2563eb; background: #2563eb; }
.switch-control input:checked + .switch-track::after { background: #fff; }
.table-wrap { border-color: var(--border); border-radius: 10px; }
table { font-family: var(--mono); }
th { background: #f1f5f9; color: #64748b; border-bottom-color: var(--border); }
td { color: #334155; border-bottom-color: #edf1f5; }
tbody tr:hover { background: #f8fbff; }
td.yield { color: #1d4ed8; }
.activity-log li { border-bottom-color: #edf1f5; color: #64748b; font-family: var(--sans); }
.activity-log li::before { border-radius: 50%; background: #2563eb; }
.activity-log time { color: #2563eb; }
.system-card { border-color: var(--border); border-radius: 10px; background: #f8fafc; }
.system-card strong { color: #1d4ed8; }
footer { border-top-color: var(--border); color: #64748b; background: #fff; font-family: var(--sans); }
.toast { border-color: var(--border); border-radius: 10px; background: #fff; color: #172033; box-shadow: 0 12px 30px rgba(15,23,42,.15); }
.help-dialog { color: #172033; background: #fff; border: 1px solid var(--border); border-radius: 14px; }
.help-dialog::backdrop { background: rgba(15,23,42,.35); }
.shortcut-list dt { border-color: var(--border); border-radius: 7px; background: #f1f5f9; }
:focus-visible { outline-color: #2563eb; }
@media (max-width: 1180px) { .workstation-grid { gap: 10px; padding: 10px; } }


/* Simple tabbed layout */
.tab-bar {
  padding: 8px 14px 0;
  gap: 6px;
  border-bottom: 1px solid var(--border);
}
.tab-button {
  min-width: 104px;
  justify-content: center;
  border: 1px solid transparent;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  margin-bottom: -1px;
  letter-spacing: .04em;
}
.tab-button.active {
  background: #fff;
  border-color: var(--border);
  border-bottom-color: #fff;
  color: #1d4ed8;
}
.workstation-grid {
  grid-template-columns: 320px minmax(0, 1fr);
  grid-template-areas: "controls content";
  align-items: start;
}
.control-panel {
  grid-area: controls;
  position: sticky;
  top: 14px;
  align-self: start;
}
.chart-panel, .data-panel, .activity-panel {
  grid-area: content;
  min-height: 680px;
}
.tab-view[hidden] { display: none !important; }
.tab-view.active { display: block; }
.activity-panel .activity-log { max-height: 420px; overflow: auto; }
@media (max-width: 900px) {
  .workstation-grid {
    grid-template-columns: 1fr;
    grid-template-areas: "controls" "content";
  }
  .control-panel { position: static; }
  .tab-button { min-width: 88px; flex: 1; }
}

/* Compact simple controls and details relocation */
.terminal-bar { min-height: 62px; }
.compact-control-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .7rem;
}
.compact-control-heading .eyebrow { margin: 0; font-size: .74rem; letter-spacing: .08em; }
.compact-model-select { margin-bottom: .65rem; }
.compact-model-select select { width: 100%; min-height: 38px; }
.compact-actions {
  grid-template-columns: 1fr;
  gap: .45rem;
  margin-bottom: .7rem;
}
.compact-actions .button { min-height: 36px; }
.control-panel { padding: .9rem; }
.parameter-row { padding: .52rem 0; }
.parameter-slider-controls { grid-template-columns: minmax(0,1fr) 72px; gap: .5rem; }
.preset-bottom {
  margin-top: .75rem;
  padding-top: .75rem;
  border-top: 1px solid var(--border);
}
.table-title-actions { display: flex; align-items: center; gap: .75rem; }
.table-title-actions .button { min-height: 34px; white-space: nowrap; }
.details-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: .75rem;
  margin-bottom: .85rem;
}
.detail-card {
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #f8fafc;
  padding: .8rem;
  display: grid;
  gap: .3rem;
}
.detail-card span { color: var(--muted); font-size: .7rem; letter-spacing: .06em; }
.detail-card strong { color: #1d4ed8; font-family: var(--mono); }
.details-diagnostics { margin-bottom: .9rem; }
@media (max-width: 700px) {
  .details-summary { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .table-title-actions { align-items: flex-end; flex-direction: column; gap: .4rem; }
}


/* Observed-points selector and below-chart display controls */
.observed-points-bar {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-wrap: wrap;
  margin: .15rem 0 .7rem;
  padding: .65rem .75rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #f8fafc;
}
.observed-points-bar label { color: #334155; font-size: .76rem; letter-spacing: .05em; }
.observed-points-bar select { min-width: 220px; min-height: 36px; }
.observed-source-status { color: var(--muted); font-size: .78rem; margin-left: auto; }
.point-toolbar { margin-bottom: .7rem; }
.chart-options-bottom {
  display: flex;
  align-items: end;
  gap: .65rem;
  flex-wrap: wrap;
  margin-top: .75rem;
  padding: .7rem .75rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #f8fafc;
}
.chart-options-bottom label {
  display: grid;
  gap: .3rem;
  color: #64748b;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .05em;
}
.chart-options-bottom select,
.chart-options-bottom input { min-height: 34px; }
.chart-options-bottom input { width: 92px; }
@media (max-width: 700px) {
  .observed-source-status { width: 100%; margin-left: 0; }
  .observed-points-bar select { min-width: 0; flex: 1; }
  .chart-options-bottom > * { flex: 1 1 140px; }
}


.csv-import-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 .8rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  color: #1d4ed8;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  cursor: pointer;
  white-space: nowrap;
}
.csv-import-button:hover { background: #eff6ff; border-color: #93c5fd; }
.key-tenor-strip { margin: .55rem 0 .65rem; }
.observed-points-bar select { flex: 1 1 300px; max-width: 540px; }
@media (max-width: 760px) {
  .csv-import-button { flex: 1 1 120px; }
  .key-tenor-strip { grid-template-columns: repeat(3, 1fr); }
}


/* Bond pricing tab */
.bond-panel { min-width: 0; }
.bond-pricing-grid { display: grid; grid-template-columns: minmax(320px, 1.1fr) minmax(280px, .9fr); gap: 18px; margin-bottom: 18px; }
.bond-input-card, .bond-result-card { border: 1px solid #dbe4ee; border-radius: 14px; background: #fff; padding: 18px; box-shadow: 0 8px 24px rgba(15, 23, 42, .05); }
.bond-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.bond-form-grid label { display: grid; gap: 6px; color: #475569; font-size: .78rem; font-weight: 700; letter-spacing: .02em; }
.bond-form-grid input, .bond-form-grid select { width: 100%; border: 1px solid #cbd5e1; border-radius: 8px; padding: 9px 10px; background: #fff; color: #0f172a; }
.bond-price-button { width: 100%; margin-top: 16px; }
.optional-label { color: #94a3b8; font-weight: 500; }
.bond-error { min-height: 1.2em; color: #b91c1c; font-weight: 600; }
.bond-result-main { padding: 18px; border-radius: 12px; background: #eff6ff; border: 1px solid #bfdbfe; }
.bond-result-main span, .bond-result-grid span { display: block; color: #64748b; font-size: .72rem; font-weight: 800; letter-spacing: .06em; }
.bond-result-main strong { display: block; margin-top: 6px; color: #1d4ed8; font-size: 2.4rem; }
.bond-result-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 12px; }
.bond-result-grid > div { padding: 12px; border: 1px solid #e2e8f0; border-radius: 10px; }
.bond-result-grid strong { display: block; margin-top: 5px; color: #0f172a; }
.bond-cashflow-wrap { max-height: 430px; }
@media (max-width: 850px) { .bond-pricing-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .bond-form-grid, .bond-result-grid { grid-template-columns: 1fr; } }

/* Version 3a: manual spot-entry term-structure model */
.manual-spot-controls {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
}
.manual-spot-field {
  display: grid;
  grid-template-columns: 2.2rem minmax(0, 1fr);
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.45rem;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #f8fafc;
}
.manual-spot-field span { font-weight: 700; color: #334155; font-size: 0.78rem; }
.manual-spot-field input { width: 100%; min-width: 0; }
@media (max-width: 720px) { .manual-spot-controls { grid-template-columns: 1fr; } }

/* MuniBondPricing additions */
.ratio-intro{margin:0 0 18px;color:#475569;max-width:900px;line-height:1.55}.ratio-input-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px}.ratio-input-grid label{display:flex;flex-direction:column;gap:7px;font-size:.82rem;font-weight:700;color:#334155}.ratio-input-grid input{padding:10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.ratio-actions{display:flex;gap:10px;margin:16px 0}.ratio-table-wrap{max-width:780px}.ratios-panel{min-height:600px}@media(max-width:900px){.ratio-input-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}}

/* Compact bond calculation bar above the tab navigation */
.bond-price-bar {
  display: grid;
  grid-template-columns: auto minmax(650px, 1fr) 94px 94px;
  align-items: stretch;
  gap: 10px;
  width: 100%;
  padding: 9px 14px;
  border-bottom: 1px solid var(--border);
  background: #ffffff;
  box-shadow: 0 2px 8px rgba(15, 23, 42, .06);
}
.bond-price-bar .sidebar-price-button {
  width: auto;
  min-width: 132px;
  min-height: 34px;
  height: 34px;
  align-self: center;
  margin: 0;
  padding: 0 12px;
  font-size: .72rem;
  letter-spacing: .045em;
}
.bond-summary-box {
  display: grid;
  grid-template-columns: minmax(120px, .62fr) minmax(520px, 2.7fr);
  align-items: center;
  min-width: 0;
  border: 1px solid #dbe3ef;
  border-radius: 9px;
  background: #f8fafc;
  overflow: hidden;
}
.bond-price-bar span {
  display: block;
  color: #64748b;
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .075em;
}
.summary-price { padding: 9px 14px; }
.summary-price strong {
  display: block;
  margin-top: 2px;
  color: #0f172a;
  font-size: 1.7rem;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.summary-assumptions {
  display: grid;
  grid-template-columns: .75fr 1.35fr 1.35fr 1fr;
  min-width: 0;
}
.summary-assumptions > div {
  min-width: 0;
  padding: 9px 12px;
  border-left: 1px solid var(--border);
}
.summary-assumptions strong {
  display: block;
  margin-top: 3px;
  color: #0f172a;
  font-size: .92rem;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.bond-price-bar .sidebar-yield-row { display: contents; }
.bond-price-bar .sidebar-yield-row div {
  align-self: stretch;
  padding: 9px 10px;
  border: 1px solid #dbe3ef;
  border-radius: 9px;
  background: #f8fafc;
}
.bond-price-bar .sidebar-yield-row strong {
  display: block;
  margin-top: 3px;
  color: #0f172a;
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 1050px) {
  .bond-price-bar { grid-template-columns: auto 1fr 82px 82px; }
  .bond-summary-box { grid-template-columns: 120px 1fr; }
  .summary-assumptions { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
  .summary-assumptions > div:nth-child(3) { border-top: 1px solid var(--border); }
  .summary-assumptions > div:nth-child(4) { border-top: 1px solid var(--border); }
}
@media (max-width: 760px) {
  .bond-price-bar { grid-template-columns: 1fr 1fr; padding: 9px 10px; }
  .bond-price-bar .sidebar-price-button { grid-column: 1 / -1; justify-self: start; }
  .bond-summary-box { grid-column: 1 / -1; grid-template-columns: 1fr; }
  .summary-assumptions { grid-template-columns: 1fr 1fr; }
  .summary-assumptions > div { border-top: 1px solid var(--border); }
}
@media (max-width: 480px) {
  .summary-assumptions { grid-template-columns: 1fr; }
  .summary-assumptions > div { border-left: 0; }
}

/* Keep the tab navigation and its first panel aligned at the top of the workspace. */
.tab-bar { position: relative; z-index: 2; }
.tab-workspace { align-items: start; }
.tab-workspace > .tab-view { margin-top: 0; align-self: start; }
.tab-workspace > .directions-panel { margin-top: 0; }

@media (max-width: 900px) {
  .bond-price-bar {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .bond-price-bar .sidebar-price-button { grid-column: 1 / -1; }
  .bond-price-bar .sidebar-price-main { justify-content: flex-start; }
  .bond-price-bar .sidebar-assumption-row { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .bond-price-bar { grid-template-columns: 1fr 1fr; padding: 10px; }
  .bond-price-bar .sidebar-price-main { grid-column: 1 / -1; }
  .bond-price-bar .sidebar-assumption-row { grid-template-columns: 1fr; }
  .bond-price-bar .sidebar-assumption-row div { padding: 7px 0; border-left: 0; border-top: 1px solid var(--border); }
  .bond-price-bar .sidebar-yield-row div { padding-left: 10px; }
}

/* v8: align the tab strip with the top of the left control bar */
.workstation-grid.tab-workspace {
  grid-template-columns: 320px minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr);
  grid-template-areas:
    "controls tabs"
    "controls content";
  align-items: start;
}
.tab-workspace > .control-panel {
  grid-area: controls;
  margin-top: 0;
}
.tab-workspace > .tab-bar {
  grid-area: tabs;
  align-self: start;
  margin: 0;
  padding: 0 0 0 14px;
  min-height: 42px;
  background: transparent;
}
.tab-workspace > .tab-view {
  grid-area: content;
  margin-top: 0;
}
@media (max-width: 900px) {
  .workstation-grid.tab-workspace {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    grid-template-areas:
      "controls"
      "tabs"
      "content";
  }
  .tab-workspace > .tab-bar {
    padding-left: 0;
  }
}

/* Layered Treasury / municipal rate setup menu */
.visually-hidden-model-select {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  padding: 0 !important;
  margin: -1px !important;
}
.rate-selector { display: grid; gap: .72rem; margin-bottom: .8rem; }
.rate-family-selector {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .45rem;
  margin: 0;
  padding: .7rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #f8fafc;
}
.rate-family-selector legend {
  padding: 0 .35rem;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .045em;
  color: #0f172a;
}
.rate-family-selector label {
  display: flex;
  align-items: center;
  gap: .42rem;
  padding: .48rem .5rem;
  border-radius: 7px;
  color: #334155;
  font-size: .78rem;
  cursor: pointer;
}
.rate-family-selector label:has(input:checked) {
  color: #1d4ed8;
  font-weight: 800;
  background: #eff6ff;
}
.rate-method-control { display: grid; gap: .32rem; }
.rate-method-control label { font-size: .72rem; font-weight: 800; color: #475569; letter-spacing: .03em; }
.rate-method-control select { width: 100%; min-height: 38px; }
.tax-adjustment-options {
  margin: 0;
  padding: .58rem .65rem;
  border: 1px solid #cbd5e1;
  border-left: 3px solid #60a5fa;
  border-radius: 8px;
  background: #f8fafc;
}
.tax-adjustment-options[hidden] { display: none !important; }
.tax-mode-option {
  display: flex;
  align-items: flex-start;
  gap: .48rem;
  color: #334155;
  font-size: .72rem;
  line-height: 1.28;
  cursor: pointer;
  padding: .22rem 0;
}
.tax-mode-option input { margin-top: .13rem; flex: 0 0 auto; }
.inline-tax-input { display: flex; align-items: center; gap: .3rem; margin: .18rem 0 .25rem 1.4rem; }
.inline-tax-input input { width: 78px; min-height: 32px; }
.inline-tax-input span { color: var(--muted); font-size: .75rem; }


/* Sidebar-only Muni/Treasury ratio controls */
.sidebar-ratio-inputs { margin-top: 0.75rem; padding-top: 0.75rem; border-top: 1px solid var(--border-color, #cbd5e1); }
.ratio-input-grid { display: grid; grid-template-columns: minmax(0, 1fr) 6.5rem; gap: 0.45rem 0.65rem; align-items: center; }
.ratio-input-grid label { font-size: 0.78rem; font-weight: 700; }
.ratio-input-grid input { width: 100%; }
.ratio-actions { margin-top: 0.65rem; }


.directions-curve-start { margin: 1rem 0 1.1rem; padding: 1rem; border: 1px solid #cbd5e1; border-radius: 10px; background: #f8fafc; }
.directions-curve-start h3 { margin: 0 0 .35rem; }
.directions-curve-start .observed-points-bar { margin: .75rem 0 .45rem; }
.verification-card { margin: .9rem 0; padding: 1rem; border: 1px solid #cbd5e1; border-radius: 10px; background: #f8fafc; }
.compact-title-row { margin-bottom: .4rem; }
.verification-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; margin-top: .75rem; }
.verification-grid > div { padding: .65rem; border: 1px solid #dbe3ec; border-radius: 8px; background: white; }
.verification-grid span { display: block; font-size: .7rem; letter-spacing: .05em; color: #64748b; }
.verification-grid strong { display: block; margin-top: .2rem; font-variant-numeric: tabular-nums; }
@media (max-width: 900px) { .verification-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Four-card bond summary bar */
.bond-price-bar {
  grid-template-columns: auto repeat(4, minmax(165px, 1fr));
  gap: 14px;
  align-items: stretch;
}
.bond-price-bar .sidebar-price-button {
  min-width: 118px;
  height: 32px;
  min-height: 32px;
  padding: 0 10px;
  font-size: .69rem;
}
.top-summary-card {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  min-width: 0;
  border: 1px solid #dbe3ef;
  border-radius: 9px;
  background: #f8fafc;
  overflow: hidden;
}
.top-summary-card > div {
  padding: 9px 13px;
}
.top-summary-card > div + div {
  border-top: 1px solid var(--border);
}
.top-summary-card strong {
  display: block;
  margin-top: 3px;
  color: #0f172a;
  font-size: 1rem;
  line-height: 1.15;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.top-summary-card .top-price-value {
  font-size: 1.42rem;
}
@media (max-width: 980px) {
  .bond-price-bar { grid-template-columns: auto repeat(2, minmax(190px, 1fr)); }
  .top-summary-card:last-child { grid-column: 2 / -1; }
}
@media (max-width: 700px) {
  .bond-price-bar { grid-template-columns: 1fr; }
  .bond-price-bar .sidebar-price-button,
  .top-summary-card:last-child { grid-column: auto; }
}

.fixed-chart-tooltip {
  position: absolute;
  right: 14px;
  bottom: 14px;
  z-index: 4;
  width: 215px;
  min-height: 82px;
  padding: 10px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: rgba(255,255,255,.96);
  color: #334155;
  box-shadow: 0 6px 18px rgba(15,23,42,.12);
  pointer-events: none;
  font-size: .76rem;
  line-height: 1.35;
}
.fixed-chart-tooltip strong, .fixed-chart-tooltip span { display: block; }
.fixed-chart-tooltip strong { margin-bottom: 4px; color: #0f172a; }
@media (max-width: 1180px) {
  .bond-price-bar { grid-template-columns: auto repeat(2, minmax(190px, 1fr)); }
}
@media (max-width: 600px) {
  .fixed-chart-tooltip { right: 8px; bottom: 8px; width: 185px; font-size: .7rem; }
}


/* Final workstation refinements */
.bond-price-bar {
  grid-template-columns: auto repeat(4, minmax(175px, 1fr));
  align-items: stretch;
}
.top-summary-card {
  min-height: 116px;
  display: flex;
  flex-direction: column;
}
.price-assumption-note {
  margin: auto 12px 9px;
  padding-top: 7px;
  border-top: 1px solid var(--border);
  color: #64748b;
  font-size: .69rem;
  line-height: 1.3;
}
.price-assumption-note strong {
  display: inline;
  margin: 0;
  color: #475569;
  font-size: inherit;
}
.directions-heading-row { margin-bottom: 10px; }
.directions-heading-row h2 { margin: 0; }
@media (max-width: 1180px) {
  .bond-price-bar { grid-template-columns: auto repeat(2, minmax(190px, 1fr)); }
}
@media (max-width: 700px) {
  .bond-price-bar { grid-template-columns: 1fr; }
  .top-summary-card { min-height: auto; }
}


/* Professional Bond Analytics layout */
.bond-analytics-layout {
  display: grid;
  grid-template-columns: minmax(330px, 1fr) minmax(420px, 1.25fr);
  gap: 18px;
  margin-bottom: 18px;
  align-items: stretch;
}
.bond-section-card {
  border: 1px solid var(--border, #d9e1e8);
  border-radius: 12px;
  background: #fff;
  padding: 18px;
  box-shadow: 0 5px 18px rgba(21, 45, 68, 0.05);
}
.bond-section-heading { margin-bottom: 14px; }
.bond-section-heading h3 { margin: 2px 0 0; font-size: 1.05rem; }
.professional-metrics-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.professional-metrics-grid > div {
  min-height: 72px;
  border: 1px solid #dce5ec;
  border-radius: 9px;
  padding: 12px;
  background: #f8fafc;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.professional-metrics-grid span { font-size: .7rem; letter-spacing: .06em; color: #5c6f7f; }
.professional-metrics-grid strong { font-size: 1.18rem; color: #16324a; }
.metric-definition-note { margin: 14px 0 0; font-size: .78rem; line-height: 1.45; color: #5d6d7b; }
@media (max-width: 980px) {
  .bond-analytics-layout { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .professional-metrics-grid { grid-template-columns: 1fr; }
}

.callable-model-section { grid-column: 1 / -1; }
.callable-action-row { display:flex; align-items:center; gap:1rem; margin:.85rem 0; flex-wrap:wrap; }
.callable-metrics-grid { margin-top:.75rem; }
.callable-model-inputs { grid-template-columns: repeat(4, minmax(130px, 1fr)); }
@media (max-width: 900px) { .callable-model-inputs { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .callable-model-inputs { grid-template-columns: 1fr; } }


/* Live bond recalculation controls */
.top-recalc-controls {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 7px;
  min-width: 132px;
}
.bond-price-bar .top-recalc-controls .sidebar-price-button,
.bond-price-bar .top-recalc-controls .live-recalc-button {
  width: 100%;
  min-width: 132px;
  height: 32px;
  min-height: 32px;
  margin: 0;
  padding: 0 10px;
  font-size: .67rem;
  white-space: nowrap;
}
.live-recalc-button.active {
  border-color: #15803d;
  background: #dcfce7;
  color: #166534;
  box-shadow: inset 0 0 0 1px rgba(21,128,61,.08);
}
.sidebar-price-button:disabled,
.sidebar-price-button.live-disabled {
  cursor: not-allowed;
  border-color: #cbd5e1;
  background: #e2e8f0;
  color: #94a3b8;
  opacity: .78;
  box-shadow: none;
}
.live-recalc-status {
  display: block;
  min-height: 1.1em;
  color: #64748b;
  font-size: .63rem;
  line-height: 1.15;
  text-align: center;
  white-space: nowrap;
}
@media (max-width: 700px) {
  .top-recalc-controls { width: 100%; }
  .bond-price-bar .top-recalc-controls .sidebar-price-button,
  .bond-price-bar .top-recalc-controls .live-recalc-button { width: min(220px, 100%); }
  .live-recalc-status { text-align: left; }
}

/* Directions Step 2 Treasury starter choices */
.treasury-starter-options{border:1px solid var(--border-color,#d8dee8);border-radius:10px;padding:12px 14px;margin:12px 0;display:grid;gap:10px;background:#fff}.treasury-starter-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-height:34px;width:100%}.treasury-starter-row>span:nth-of-type(1){font-weight:650;min-width:185px}.treasury-starter-row input[type="number"]{width:88px}.starter-input-label{font-size:.82rem;color:#596579;margin-left:6px}.historical-starter-row select{min-width:180px;max-width:260px}.treasury-starter-options input:disabled,.treasury-starter-options select:disabled{opacity:.55;background:#f2f4f7}.directions-curve-start .observed-source-status{margin-top:8px;font-weight:650;color:#334155}

/* Directions Step 2: each Treasury choice occupies its own full row. */
.treasury-starter-options {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: stretch;
}
.treasury-starter-options > .treasury-starter-row {
  display: grid !important;
  grid-template-columns: 22px minmax(190px, auto) max-content 92px max-content max-content 92px max-content;
  align-items: center;
  width: 100% !important;
  margin: 0 !important;
  box-sizing: border-box;
}
.treasury-starter-options > .historical-starter-row {
  grid-template-columns: 22px minmax(190px, auto) minmax(180px, 260px) max-content;
}
.treasury-starter-row > span:nth-of-type(1) { min-width: 0 !important; }
@media (max-width: 900px) {
  .treasury-starter-options > .treasury-starter-row,
  .treasury-starter-options > .historical-starter-row {
    grid-template-columns: 22px minmax(0, 1fr);
  }
  .treasury-starter-row > :not(input[type="radio"]):not(:nth-child(2)) { grid-column: 2; }
}
.direct-rate-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--border-color, #d8dee8);
}

.adjustment-grid{display:grid;gap:.35rem}.adjustment-row{display:grid;grid-template-columns:3.2rem minmax(7rem,1fr) minmax(7rem,1fr);gap:.45rem;align-items:center}.adjustment-row span:first-child{font-size:.76rem;font-weight:800}.adjustment-row input{width:100%;min-width:0;padding:.42rem .45rem;border:1px solid #cbd5e1;border-radius:6px;background:#fff}.adjustment-header{padding-bottom:.25rem;border-bottom:1px solid #cbd5e1}.adjustment-header span{font-size:.68rem!important;line-height:1.1;text-align:center}.adjustment-header span:first-child{text-align:left}

.top-summary-card small { font-size: .72rem; font-weight: 700; color: #64748b; }
.top-call-price-value { font-size: 1.2rem !important; }
.quantlib-diagnostics { margin-top: 18px; border-top: 1px solid var(--border); padding-top: 16px; }
.quantlib-diagnostics-grid { margin-bottom: 14px; }
.quantlib-curve-table-shell { max-height: 300px; overflow: auto; }
.quantlib-curve-table-shell table { width: 100%; border-collapse: collapse; }
.quantlib-curve-table-shell th, .quantlib-curve-table-shell td { padding: 8px 10px; border-bottom: 1px solid var(--border); text-align: right; font-variant-numeric: tabular-nums; }
.quantlib-curve-table-shell th:first-child, .quantlib-curve-table-shell td:first-child { text-align: left; }

/* Version 5 price hierarchy and analytics placement */
.top-recalc-controls .price-assumption-note {
  margin: 2px 0 0;
  max-width: 175px;
  text-align: center;
  font-size: .66rem;
  line-height: 1.3;
  color: #64748b;
}
.top-price-case-card { min-width: 205px; }
.top-price-case-card .top-price-heading {
  padding: 9px 13px 2px;
  color: #64748b;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: none;
}
.top-price-case-card .price-case-stack { padding: 2px 13px 7px; }
.top-price-case-card .top-call-price-value,
.top-price-case-card .top-price-value {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
}
.top-price-case-card .top-call-price-value {
  font-size: 1.68rem;
  color: #0f3b63;
  font-weight: 800;
}
.top-price-case-card .comparison-price {
  margin-top: 7px;
  padding-top: 7px;
  border-top: 1px solid #e2e8f0;
  font-size: 1.28rem;
  color: #475569;
}
.top-price-case-card small {
  flex: 0 0 auto;
  font-size: .68rem;
  font-weight: 700;
  color: #64748b;
}
.top-price-case-card .top-settlement-line {
  display: flex;
  align-items: baseline;
  gap: 5px;
  padding: 6px 13px 9px;
  border-top: 1px solid #e2e8f0;
  font-size: .68rem;
  color: #64748b;
}
.top-price-case-card .top-settlement-line strong {
  display: inline;
  margin: 0;
  font-size: .72rem;
  color: #475569;
}
.bond-analytics-layout {
  grid-template-columns: minmax(320px, .9fr) minmax(460px, 1.35fr);
  align-items: start;
}
.price-yield-section { grid-column: 2; grid-row: 1; }
.bond-metrics-section { grid-column: 1; grid-row: 1; }
@media (max-width: 760px) {
  .bond-analytics-layout { grid-template-columns: 1fr; }
  .price-yield-section, .bond-metrics-section { grid-column: 1; grid-row: auto; }
}

/* Version 5.2: make the primary top-bar price twice the coupon value size. */
.top-price-case-card #top-no-call-case .top-price-value,
.top-price-case-card .top-call-price-value {
  font-size: 1.45rem !important;
  line-height: 1.05;
}
.top-price-case-card .comparison-price {
  font-size: 1.35rem !important;
}

/* Version 5.4: top-bar price dominance and Basic Analytics intro. */
.top-price-case-card #top-no-call-case .top-price-value,
.top-price-case-card .top-call-price-value {
  font-size: 3.25rem !important;
  line-height: .98;
  letter-spacing: -.035em;
  font-weight: 850;
}
.top-price-case-card { min-width: 250px; }
.basic-analytics-explainer { margin-bottom: 16px; }

/* Version 5.5: ensure the current top-bar price is the dominant numeric value. */
.top-price-case-card #bond-price-maturity,
.top-price-case-card #bond-price-callable {
  font-size: 4.25rem !important;
  line-height: .9;
  font-weight: 900;
  letter-spacing: -.05em;
}
.top-price-case-card .top-price-value,
.top-price-case-card .top-call-price-value { overflow: visible; }

/* Version 5.6: keep the oversized price clear of its case label. */
.top-price-case-card { min-width: 335px; }
.top-price-case-card .top-call-price-value,
.top-price-case-card .top-price-value {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: end;
  column-gap: 18px;
}
.top-price-case-card #bond-price-maturity,
.top-price-case-card #bond-price-callable {
  display: block;
  min-width: 0;
  font-size: 4.25rem !important;
  line-height: .88;
}
.top-price-case-card small {
  align-self: end;
  padding-bottom: .42rem;
  white-space: nowrap;
  font-size: .72rem;
  line-height: 1;
}
.top-price-case-card .comparison-price #bond-price-noncall-comparison {
  font-size: 1.55rem;
}

/* Version 5.14 dev: summary-bar titles span the full width above all cards. */
#municipal-price-bar {
  grid-template-columns: minmax(210px, 1fr) minmax(230px, 1.08fr) repeat(3, minmax(170px, .85fr));
}
#municipal-price-bar .single-bond-bar-title,
#ladder-summary-bar .ladder-summary-title {
  grid-column: 1 / -1;
  display: block;
  width: 100%;
  padding: .55rem .85rem;
  border-right: 0;
  border-bottom: 1px solid var(--line-color, #d8dee9);
  text-align: left;
  justify-content: initial;
  align-items: initial;
}
#ladder-summary-bar {
  grid-template-columns: repeat(4, minmax(155px, 1fr));
}
#ladder-summary-bar .ladder-summary-card:first-of-type {
  border-left: 0;
}
@media (max-width: 1050px) {
  #municipal-price-bar,
  #ladder-summary-bar {
    grid-template-columns: 1fr;
  }
}

/* 6.1.2 new-set corrections: true vertical price/label pairs. */
.top-price-case-card .price-case-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.top-price-case-card .price-case-pair {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  text-align: center;
}
.top-price-case-card .price-case-pair .top-price-value {
  display: block !important;
  width: 100%;
  margin: 0;
  text-align: center;
  font-size: 4.25rem !important;
  line-height: .88;
  font-weight: 900;
  letter-spacing: -.05em;
}
.top-price-case-card .price-case-pair small {
  display: block !important;
  margin-top: .28rem;
  font-size: .72rem;
  line-height: 1.15;
  text-align: center;
  white-space: nowrap;
}
.top-price-case-card .price-case-pair.comparison-price {
  margin-top: .65rem;
  padding-top: .65rem;
  border-top: 1px solid #e2e8f0;
}
.ratio-actions { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 950px) { .ratio-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* 6.1.2 call-value and resilient rate-chart corrections. */
.top-price-case-card .price-case-comparison-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
  width: 100%;
  margin-top: .65rem;
  padding-top: .65rem;
  border-top: 1px solid #e2e8f0;
}
.top-price-case-card .price-case-comparison-row .comparison-price {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.top-price-case-card .price-case-comparison-row .top-price-value {
  font-size: 2.75rem !important;
}
.top-price-case-card .call-value-price .top-price-value {
  color: #7c3aed;
}


/* 6.1.3 shared calculation controls and summary-card formatting */
.header-choice-row { grid-template-columns: auto minmax(330px, 1fr) minmax(420px, auto); }
.global-calculation-controls { display:flex; align-items:center; gap:.65rem; flex-wrap:wrap; }
.global-calculation-controls .live-recalc-status { white-space:nowrap; }
#municipal-price-bar { grid-template-columns: minmax(190px,.72fr) minmax(280px,1.2fr) repeat(3,minmax(170px,.85fr)); }
.ladder-summary-card { text-align:center; }
.ladder-price-label, .ladder-summary-case { display:block; font-weight:700; }
.ladder-summary-price { display:block; font-variant-numeric:tabular-nums; }
@media (max-width: 1250px) { .header-choice-row { grid-template-columns:1fr; } }

/* 6.1.4 summary-bar, global controls, and call-date presentation */
.header-choice-row {
  grid-template-columns: auto minmax(360px, 1fr) auto;
  align-items: center;
  column-gap: 1.25rem;
}
.global-calculation-controls {
  display: grid;
  grid-template-columns: max-content max-content;
  align-items: center;
  gap: .55rem .7rem;
  flex-wrap: nowrap;
  white-space: nowrap;
}
.global-calculation-controls .sidebar-price-button,
.global-calculation-controls .live-recalc-button {
  width: auto;
  min-width: 170px;
  margin: 0;
}
.global-calculation-controls .live-recalc-status {
  grid-column: 1 / -1;
  text-align: center;
  font-size: .7rem;
}
#municipal-price-bar {
  grid-template-columns: minmax(300px, 1.4fr) repeat(4, minmax(150px, 1fr));
  width: 100%;
  gap: 12px;
}
#municipal-price-bar .single-bond-bar-title { grid-column: 1 / -1; }
.top-summary-card { min-height: 142px; }
.top-price-case-card { padding: 12px 15px 10px; text-align: center; }
.top-price-case-card .top-price-heading { font-size: .78rem; letter-spacing: .09em; text-transform: uppercase; }
.top-price-case-card .price-case-stack { width: 100%; }
.top-price-case-card .price-case-pair { display:flex; flex-direction:column; align-items:center; justify-content:center; }
.top-price-case-card .top-price-value { font-size: 2.15rem !important; line-height: 1; }
.top-price-case-card .price-case-comparison-row .top-price-value { font-size: 1.45rem !important; }
.top-price-case-card .top-settlement-line { margin-top:auto; padding:8px 0 0; }
.top-summary-card:not(.top-price-case-card) { display:grid; grid-template-columns:1fr; grid-template-rows:repeat(2,minmax(0,1fr)); }
.top-summary-card:not(.top-price-case-card) > div { display:flex; flex-direction:column; justify-content:center; min-width:0; }
.top-summary-card:not(.top-price-case-card) > div + div { border-top:1px solid var(--border); border-left:0; }
.top-summary-card:not(.top-price-case-card) strong { white-space:normal; overflow-wrap:anywhere; }
.ladder-call-date-control { display:grid; grid-template-columns:1fr; gap:.35rem; min-width:0; }
.ladder-call-date-control select, .ladder-call-date-control input { width:100%; }
.ladder-call-date-control small { display:block; min-height:1.1rem; color:#64748b; line-height:1.25; }
@media (max-width: 1400px) {
  .header-choice-row { grid-template-columns: 1fr; }
  .global-calculation-controls { justify-content:start; }
  #municipal-price-bar { grid-template-columns: repeat(3,minmax(220px,1fr)); }
}
@media (max-width: 720px) {
  .global-calculation-controls { grid-template-columns:1fr 1fr; width:100%; }
  .global-calculation-controls .sidebar-price-button,
  .global-calculation-controls .live-recalc-button { min-width:0; width:100%; }
  #municipal-price-bar { grid-template-columns:1fr; }
  .top-summary-card:not(.top-price-case-card) { grid-template-columns:1fr; grid-template-rows:repeat(2,minmax(0,1fr)); }
}


/* Version 6.3.0: Call Option decision table uses the standard application sans-serif font. */
#call-option-panel .issuer-decision-table,
#call-option-panel .issuer-decision-table th,
#call-option-panel .issuer-decision-table td,
#call-option-panel .issuer-model-line,
#call-option-panel .issuer-model-line strong {
  font-family: var(--sans);
}


/* Version 6.3.4: vertical paired single-bond summary cards and call/OAS card. */
#municipal-price-bar .top-summary-card:not(.top-price-case-card) > div {
  align-items: center;
  text-align: center;
  padding: 10px 8px;
  gap: 5px;
}
#municipal-price-bar .top-summary-card:not(.top-price-case-card) span {
  font-size: .70rem;
  letter-spacing: .07em;
  line-height: 1.15;
}
#municipal-price-bar .top-summary-card:not(.top-price-case-card) strong {
  font-size: 1.22rem;
  line-height: 1.1;
}
#municipal-price-bar .top-call-oas-card strong { font-size: 1.16rem; }
@media (max-width: 900px) {
  #municipal-price-bar { grid-template-columns: repeat(2,minmax(230px,1fr)); }
}
@media (max-width: 560px) {
  #municipal-price-bar { grid-template-columns: 1fr; }
}

/* Version 6.3.5: enforce vertical label/value pairs in every single-bond summary card. */
#municipal-price-bar .top-summary-card:not(.top-price-case-card) {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(2, minmax(0, 1fr));
}
#municipal-price-bar .top-summary-card:not(.top-price-case-card) > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
#municipal-price-bar .top-summary-card:not(.top-price-case-card) > div + div {
  border-left: 0;
  border-top: 1px solid var(--border);
}


/* Version 6.3.7: keep every paired top card in vertical label/value order. */
#municipal-price-bar .top-summary-card:not(.top-price-case-card)>div{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important}
#municipal-price-bar .top-summary-card:not(.top-price-case-card)>div span{display:block}
#municipal-price-bar .top-summary-card:not(.top-price-case-card)>div strong{display:block}

/* Version 6.3.8: authoritative single-bond summary-card layout. */
#municipal-price-bar .paired-summary-card {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: repeat(2, minmax(64px, 1fr)) !important;
  align-items: stretch !important;
  min-width: 0;
}
#municipal-price-bar .paired-summary-card > .summary-metric {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  min-width: 0;
  width: 100%;
  padding: 10px 8px;
  text-align: center !important;
}
#municipal-price-bar .paired-summary-card > .summary-metric + .summary-metric {
  border-left: 0 !important;
  border-top: 1px solid var(--border) !important;
}
#municipal-price-bar .summary-metric-label,
#municipal-price-bar .summary-metric-value {
  display: block !important;
  position: static !important;
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  text-align: center !important;
  white-space: normal !important;
}
#municipal-price-bar .summary-metric-label {
  font-size: .70rem;
  letter-spacing: .07em;
  line-height: 1.15;
}
#municipal-price-bar .summary-metric-value {
  font-size: 1.22rem;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

/* Version 6.3.8: Market Data prose and headings are left-aligned. */
.market-data-table,
.market-data-table th,
.market-data-table td,
.market-data-table p,
.market-data-table a,
.market-data-table span,
.market-data-table strong {
  text-align: left !important;
}
.market-data-table .market-availability-copy {
  margin: 0;
  font: inherit;
  line-height: inherit;
}

/* Version 6.4.0: consolidated UI polish layer. */
:root {
  --ui-control-radius: 8px;
  --ui-section-gap: 1rem;
}

/* Consistent readable alignment across instructional and data-rich areas. */
.tab-panel p,
.tab-panel li,
.quantlib-explainer,
.microcopy,
.interaction-hint,
.market-data-table th,
.market-data-table td {
  text-wrap: pretty;
}

/* One authoritative paired-card model: each label sits above its value. */
#municipal-price-bar .paired-summary-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: stretch !important;
  gap: 0 !important;
}
#municipal-price-bar .paired-summary-card > .summary-metric {
  display: flex !important;
  flex: 1 1 0 !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .35rem !important;
  min-height: 64px;
}
#municipal-price-bar .paired-summary-card > .summary-metric + .summary-metric {
  border-top: 1px solid var(--border) !important;
  border-left: 0 !important;
}
#municipal-price-bar .summary-metric-label,
#municipal-price-bar .summary-metric-value {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
}

/* Consistent controls, headings, and focus visibility. */
button,
select,
input,
textarea {
  border-radius: var(--ui-control-radius);
}
button:focus-visible,
select:focus-visible,
input:focus-visible,
textarea:focus-visible,
a:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--accent) 42%, transparent);
  outline-offset: 2px;
}
.tab-panel h2,
.tab-panel h3,
.tab-panel h4 {
  text-wrap: balance;
}

/* Market Data is prose-first and always left aligned. */
.market-data-table,
.market-data-table thead,
.market-data-table tbody,
.market-data-table tr,
.market-data-table th,
.market-data-table td,
.market-data-table p,
.market-data-table span,
.market-data-table strong,
.market-data-table a {
  text-align: left !important;
}
.market-data-table th { vertical-align: bottom; }
.market-data-table td { vertical-align: top; }
.market-data-table .access-badge { display: inline-block; }

/* Keep compact layouts legible without forcing horizontal card content. */
@media (max-width: 720px) {
  .tab-button span { display: inline; }
  .market-data-table { font-size: .9rem; }
  #municipal-price-bar .paired-summary-card > .summary-metric { min-height: 58px; }
}

/* Version 6.5.0 additional call-analysis release. */

/* Version 6.6.0: streamlined Basic Analytics and OAS/volatility analysis. */
.streamlined-basic-analytics { align-items: stretch; }
.oas-volatility-chart-shell { min-height: 360px; }
.oas-volatility-chart-shell canvas { min-height: 320px; }

/* Version 6.7.0: tab flow, dual-curve analytics, compact call controls, and lattice polish. */
.dual-valuation-table { border:1px solid var(--line,#d8e1ea); border-radius:12px; overflow:hidden; }
.dual-valuation-row { display:grid; grid-template-columns:minmax(150px,1.35fr) repeat(2,minmax(100px,1fr)); align-items:center; min-height:52px; border-top:1px solid var(--line,#d8e1ea); }
.dual-valuation-row:first-child { border-top:0; }
.dual-valuation-row > * { padding:.72rem .85rem; text-align:right; }
.dual-valuation-row > :first-child { text-align:left; }
.dual-valuation-header { background:#f4f7fa; min-height:44px; }
.dual-valuation-row strong { font-size:1.18rem; font-variant-numeric:tabular-nums; }
.dual-valuation-header strong { font-size:.82rem; letter-spacing:.05em; text-transform:uppercase; }
.compact-callable-inputs { gap:.55rem .75rem; }
.compact-callable-inputs label { font-size:.86rem; font-weight:650; }
.compact-callable-inputs input, .compact-callable-inputs select { margin-top:.28rem; min-height:42px; padding:.48rem .62rem; font-size:1.05rem; font-weight:650; }
.short-rate-tree-section { margin-top:16px; }
.tree-legend { flex-wrap:wrap; row-gap:.45rem; }
@media(max-width:620px){.dual-valuation-row{grid-template-columns:minmax(120px,1.2fr) repeat(2,minmax(78px,1fr));}.dual-valuation-row>*{padding:.62rem .5rem}.dual-valuation-row strong{font-size:1rem}}

/* Version 6.7.3: header links and authoritative vertical summary-card layout. */
.header-page-links {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: .9rem;
  flex: 0 0 auto;
}
.terminal-bar .header-page-link,
.terminal-bar .header-page-link:visited {
  color: #17324d !important;
  background: #ffffff !important;
  border: 1px solid #b8c7d4 !important;
  border-radius: 6px !important;
  box-shadow: 0 1px 3px rgba(0,0,0,.12) !important;
  padding: .42rem .68rem !important;
  font-size: .84rem !important;
  font-weight: 750 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap;
}
.terminal-bar .header-page-link:hover,
.terminal-bar .header-page-link:focus {
  color: #0b2238 !important;
  background: #eef5fb !important;
  border-color: #8ca8bf !important;
}
#municipal-price-bar .paired-summary-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: stretch !important;
}
#municipal-price-bar .paired-summary-card > .summary-metric {
  display: flex !important;
  flex: 1 1 0 !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 62px;
  padding: 10px 8px !important;
  text-align: center !important;
}
#municipal-price-bar .paired-summary-card > .summary-metric + .summary-metric {
  border-left: 0 !important;
  border-top: 1px solid var(--border) !important;
}
#municipal-price-bar .summary-metric-label,
#municipal-price-bar .summary-metric-value {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  text-align: center !important;
}
@media(max-width:900px){.header-page-links{position:absolute;right:.75rem;top:.55rem;gap:.5rem}}
.terminal-bar .header-page-links .header-page-link { position: static !important; inset: auto !important; margin: 0 !important; align-self: center !important; }

/* Version 6.7.4: Directions guidance and curve grouping */
.inline-guidance-link{font-weight:700;white-space:nowrap}
.historical-curve-choice{display:grid;gap:.35rem}
.historical-curve-notes{margin:.1rem 0 .7rem 2rem;padding:.55rem .75rem;border-left:3px solid #8aa9c2;background:#f5f8fb}
.historical-curve-notes .observed-source-status{margin:0 0 .2rem;font-weight:700}
.historical-curve-notes .microcopy{margin:0}
.other-curves-title{margin:1rem 0 .45rem;padding-top:.75rem;border-top:1px solid #d9e1e8;color:#17324d;font-size:1rem}
.curve-selection-note{margin-top:.8rem}


/* Version 6.7.6: make yield measures the most prominent content in the yield/coupon card. */
#municipal-price-bar .yield-coupon-summary-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: stretch !important;
  min-width: 210px;
}
#municipal-price-bar .top-yield-display {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  padding: 10px 8px;
  text-align: center;
}
#municipal-price-bar .top-yield-line {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 7px;
  line-height: 1.15;
}
#municipal-price-bar .top-yield-line span {
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .04em;
}
#municipal-price-bar .top-yield-line strong {
  font-size: 1.55rem;
  font-weight: 900;
  color: var(--navy);
  white-space: nowrap;
}
#municipal-price-bar .top-yield-call-case {
  display: grid;
  gap: 7px;
}
#municipal-price-bar .yield-coupon-summary-card .coupon-metric {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px;
  min-height: 58px;
  padding: 8px;
  border-top: 1px solid var(--border);
}
#municipal-price-bar .yield-coupon-summary-card .coupon-metric .summary-metric-value {
  font-size: 1.12rem;
  font-weight: 800;
}
@media (max-width: 1100px) {
  #municipal-price-bar .top-yield-line strong { font-size: 1.35rem; }
}

/* Version 6.7.7: group callable yields by pricing case and match price typography. */
#municipal-price-bar .top-yield-call-case {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 10px;
  width: 100%;
}
#municipal-price-bar .top-yield-case-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
}
#municipal-price-bar .top-yield-case-group + .top-yield-case-group {
  padding-top: 9px;
  border-top: 1px solid var(--border);
}
#municipal-price-bar .top-yield-case-label {
  display: block;
  margin-bottom: 5px;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .06em;
  color: #64748b;
}
#municipal-price-bar .top-yield-case-values {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  width: 100%;
}
#municipal-price-bar .top-yield-case-values.single-yield-value {
  grid-template-columns: 1fr;
}
#municipal-price-bar .top-yield-value-pair {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 0;
  text-align: center;
}
#municipal-price-bar .top-yield-value-pair strong,
#municipal-price-bar .no-call-yield-line strong {
  display: block;
  width: 100%;
  margin: 0;
  color: var(--navy);
  font-size: 4.25rem !important;
  line-height: .88;
  font-weight: 900;
  letter-spacing: -.05em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  overflow: visible;
}
#municipal-price-bar .top-yield-value-pair span {
  display: block;
  margin-top: .28rem;
  font-size: .72rem;
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: .04em;
  color: #64748b;
}
#municipal-price-bar .no-call-yield-line {
  flex-direction: column-reverse;
  gap: 0;
}
#municipal-price-bar .no-call-yield-line span {
  margin-top: .28rem;
  font-size: .72rem;
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: .04em;
  color: #64748b;
}
@media (max-width: 1400px) {
  #municipal-price-bar .top-yield-value-pair strong,
  #municipal-price-bar .no-call-yield-line strong { font-size: 3.35rem !important; }
}
@media (max-width: 1100px) {
  #municipal-price-bar .top-yield-value-pair strong,
  #municipal-price-bar .no-call-yield-line strong { font-size: 2.8rem !important; }
}
\n\n/* Version 6.8.0: consolidated top-card, historical-analysis, and responsive polish. */
#municipal-price-bar .yield-coupon-summary-card {
  min-width: 250px;
}
#municipal-price-bar .top-yield-display {
  padding: 12px 10px;
}
#municipal-price-bar .call-case-yield-group .top-yield-value-pair strong {
  color: #0f172a;
  font-size: 2.15rem !important;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.05em;
}
#municipal-price-bar .no-call-case-yield-group .top-yield-value-pair strong {
  color: #0f172a;
  font-size: 1.45rem !important;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.05em;
}
#municipal-price-bar .no-call-yield-line strong {
  color: #0f172a;
  font-size: 2.15rem !important;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.05em;
}
#municipal-price-bar .top-yield-case-values {
  gap: 12px;
}
#municipal-price-bar .top-yield-case-label,
#municipal-price-bar .top-yield-value-pair span,
#municipal-price-bar .no-call-yield-line span {
  color: #64748b;
}
#municipal-price-bar .yield-coupon-summary-card .coupon-metric .summary-metric-value {
  font-size: 1rem;
  font-weight: 800;
}
@media (max-width: 1400px) {
  #municipal-price-bar .call-case-yield-group .top-yield-value-pair strong,
  #municipal-price-bar .no-call-yield-line strong { font-size: 1.95rem !important; }
  #municipal-price-bar .no-call-case-yield-group .top-yield-value-pair strong { font-size: 1.35rem !important; }
}
@media (max-width: 1100px) {
  #municipal-price-bar .call-case-yield-group .top-yield-value-pair strong,
  #municipal-price-bar .no-call-yield-line strong { font-size: 1.85rem !important; }
  #municipal-price-bar .no-call-case-yield-group .top-yield-value-pair strong { font-size: 1.3rem !important; }
}
@media (max-width: 700px) {
  #municipal-price-bar .yield-coupon-summary-card { min-width: 0; }
  #municipal-price-bar .call-case-yield-group .top-yield-value-pair strong,
  #municipal-price-bar .no-call-yield-line strong { font-size: 1.75rem !important; }
  #municipal-price-bar .no-call-case-yield-group .top-yield-value-pair strong { font-size: 1.45rem !important; }
}


/* Version 6.8.2: show only Call Case YTC plus No-Call YTM, fully honor hidden states, and reduce yield size one step below Price. */
#municipal-price-bar .yield-coupon-summary-card {
  min-width: 230px;
}
#municipal-price-bar .top-yield-display {
  padding: 10px 12px;
}
#municipal-price-bar .top-yield-call-case {
  gap: 8px;
}
#municipal-price-bar .top-yield-case-group + .top-yield-case-group {
  padding-top: 8px;
}
#municipal-price-bar .top-yield-case-values {
  gap: 10px;
}
#municipal-price-bar .top-yield-value-pair span {
  order: 1;
  margin: 0 0 .22rem;
  font-size: .72rem;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .05em;
  color: #64748b;
}
#municipal-price-bar .top-yield-value-pair strong {
  order: 2;
}
#municipal-price-bar .top-yield-case-label {
  order: 3;
  margin: .3rem 0 0;
  font-size: .7rem;
  line-height: 1;
}
/* Callable yields mirror the main Call Case Price. */
#municipal-price-bar .call-case-yield-group .top-yield-value-pair strong {
  color: #0f172a;
  font-size: 2.15rem !important;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.05em;
  font-variant-numeric: tabular-nums;
}
/* No-call yield mirrors the smaller No Call comparison Price in a callable valuation. */
#municipal-price-bar .no-call-case-yield-group .top-yield-value-pair strong {
  color: #0f172a;
  font-size: 1.45rem !important;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.05em;
  font-variant-numeric: tabular-nums;
}
/* With no call date, show one YTM only; no YTC row is rendered. */
#municipal-price-bar .no-call-yield-line {
  flex-direction: column;
  gap: 0;
}
#municipal-price-bar .no-call-yield-line strong {
  order: 1;
  color: #0f172a;
  font-size: 2.15rem !important;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.05em;
  font-variant-numeric: tabular-nums;
}
#municipal-price-bar .no-call-yield-line span {
  order: 2;
  margin-top: .28rem;
}
#municipal-price-bar .yield-coupon-summary-card .coupon-metric {
  min-height: 52px;
  padding: 7px 8px;
}
@media (max-width: 1400px) {
  #municipal-price-bar .call-case-yield-group .top-yield-value-pair strong,
  #municipal-price-bar .no-call-yield-line strong { font-size: 1.95rem !important; }
  #municipal-price-bar .no-call-case-yield-group .top-yield-value-pair strong { font-size: 1.35rem !important; }
}
@media (max-width: 1100px) {
  #municipal-price-bar .call-case-yield-group .top-yield-value-pair strong,
  #municipal-price-bar .no-call-yield-line strong { font-size: 1.85rem !important; }
  #municipal-price-bar .no-call-case-yield-group .top-yield-value-pair strong { font-size: 1.3rem !important; }
}
@media (max-width: 700px) {
  #municipal-price-bar .call-case-yield-group .top-yield-value-pair strong,
  #municipal-price-bar .no-call-yield-line strong { font-size: 1.75rem !important; }
  #municipal-price-bar .no-call-case-yield-group .top-yield-value-pair strong { font-size: 1.25rem !important; }
}


/* Ensure JavaScript hidden states cannot be overridden by component display rules. */
#municipal-price-bar [hidden] { display: none !important; }
#municipal-price-bar .call-case-yield-group .single-yield-value { max-width: 100%; }
/* Version 6.9 landing/workflow navigation and summary controls */
.sidebar-calculation-controls {
  padding: 14px;
  border-bottom: 1px solid var(--border-subtle, #d7e0e8);
}
.sidebar-calculation-controls .global-calculation-controls {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  width: 100%;
  margin-top: 7px;
}
.sidebar-calculation-controls .global-calculation-controls .button { width: 100%; }
.sidebar-calculation-controls .live-recalc-status { font-size: 0.7rem; }
.historical-mode-choice a { color: inherit; text-decoration: none; }
.historical-mode-choice a:hover { text-decoration: underline; }
.print-summary-link {
  display: block;
  width: 100%;
  margin-top: 7px;
  padding: 5px 7px;
  border: 1px solid #9fb6ca;
  border-radius: 3px;
  color: #0b3f6c;
  background: #eef5fa;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}
.print-summary-link:hover { background: #dcebf6; }

.sidebar-rate-entry-gate {
  display: grid;
  gap: 8px;
  padding: 14px;
  border-bottom: 1px solid var(--border-subtle, #d7e0e8);
  background: #f8fbfe;
}
.sidebar-rate-entry-gate[hidden] { display: none !important; }
.sidebar-rate-entry-gate p { margin: 0; color: #334155; font-size: .82rem; line-height: 1.4; }
.sidebar-rate-entry-gate .button { width: 100%; }
.sidebar-rate-starter-row { border-top: 1px solid var(--border, #d8dee8); padding-top: 11px; }
