:root {
  --bg: #07090d;
  --panel: #0e1218;
  --panel-2: #121822;
  --panel-3: #171f2b;
  --border: #273140;
  --border-bright: #3a4759;
  --text: #eef2f7;
  --muted: #8f9bad;
  --amber: #f6a821;
  --amber-soft: rgba(246, 168, 33, 0.12);
  --cyan: #35d3ff;
  --green: #43d17a;
  --red: #ff667d;
  --blue: #5599ff;
  --shadow: rgba(0, 0, 0, 0.42);
  --mono: "IBM Plex Mono", "Cascadia Code", "SFMono-Regular", Consolas, monospace;
  --sans: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { color-scheme: dark; }
body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  color: var(--text);
  background:
    radial-gradient(circle at 82% 0%, rgba(53, 211, 255, 0.07), transparent 30%),
    radial-gradient(circle at 15% 20%, rgba(246, 168, 33, 0.045), transparent 28%),
    var(--bg);
  font-family: var(--sans);
}
button, select, input { font: inherit; }
button, select { color: inherit; }
button { cursor: pointer; }

.terminal-bar {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 1rem;
  min-height: 76px;
  border-bottom: 1px solid var(--border-bright);
  background: rgba(7, 9, 13, 0.95);
}
.brand-block { display: flex; align-items: center; gap: 0.85rem; padding: 0.8rem 1.1rem; }
.terminal-mark {
  display: grid; place-items: center; width: 44px; height: 44px;
  border: 1px solid var(--amber); color: var(--amber); background: var(--amber-soft);
  font: 700 0.95rem var(--mono); letter-spacing: 0.08em;
}
.eyebrow { margin: 0 0 0.22rem; color: var(--amber); font: 700 0.67rem var(--mono); letter-spacing: 0.15em; }
h1, h2, p { margin-top: 0; }
h1 { margin-bottom: 0; font-size: clamp(1.15rem, 2vw, 1.72rem); letter-spacing: -0.02em; }
h2 { margin: 0; font-size: 1rem; font-weight: 650; }
.market-strip { display: grid; grid-template-columns: repeat(4, minmax(82px, 1fr)); border-left: 1px solid var(--border); }
.market-strip > div { display: flex; flex-direction: column; justify-content: center; min-width: 95px; padding: 0.7rem 1rem; border-right: 1px solid var(--border); }
.market-strip span, .metric-strip span, .diagnostic-box span, .system-card span { color: var(--muted); font: 0.64rem var(--mono); letter-spacing: 0.1em; }
.market-strip strong { margin-top: 0.3rem; color: var(--cyan); font: 700 0.82rem var(--mono); }
.status-pending { color: var(--amber) !important; }
.status-ok { color: var(--green) !important; }
.status-error { color: var(--red) !important; }

.function-bar { display: flex; overflow-x: auto; border-bottom: 1px solid var(--border); background: #0b0e13; }
.function-key { display: inline-flex; align-items: center; gap: 0.45rem; min-height: 36px; padding: 0 0.85rem; border: 0; border-right: 1px solid var(--border); background: transparent; color: var(--muted); font: 700 0.7rem var(--mono); text-decoration: none; white-space: nowrap; }
.function-key:hover, .function-key.active { color: var(--text); background: var(--panel-3); box-shadow: inset 0 -2px var(--amber); }
kbd { color: var(--amber); font: inherit; }
.docs-link { margin-left: auto; }

.workstation-grid {
  display: grid;
  grid-template-columns: 310px minmax(0, 1fr) 255px;
  grid-template-areas:
    "controls chart activity"
    "controls data activity";
  gap: 8px;
  padding: 8px;
  min-height: calc(100vh - 158px);
}
.panel { border: 1px solid var(--border); background: linear-gradient(180deg, rgba(18,24,34,.98), rgba(11,15,21,.98)); box-shadow: 0 14px 36px var(--shadow); min-width: 0; }
.control-panel { grid-area: controls; padding: 1rem; }
.chart-panel { grid-area: chart; padding: 1rem; }
.data-panel { grid-area: data; padding: 1rem; }
.activity-panel { grid-area: activity; padding: 1rem; }
.panel-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.95rem; }
.live-tag { border: 1px solid rgba(67,209,122,.45); padding: .28rem .42rem; color: var(--green); background: rgba(67,209,122,.08); font: 700 .62rem var(--mono); }

.control-group { margin: 0 0 1rem; padding: 0; border: 0; }
.control-group > label, legend { display: block; margin-bottom: .48rem; color: var(--muted); font: 700 .67rem var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.segmented-control { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; }
.segmented-control legend { grid-column: 1 / -1; }
.segmented-control label { margin: 0; }
.segmented-control input { position: absolute; opacity: 0; pointer-events: none; }
.segmented-control span { display: grid; place-items: center; min-height: 38px; border: 1px solid var(--border); background: #0b0f15; color: var(--muted); font: 700 .69rem var(--mono); }
.segmented-control input:checked + span { color: var(--amber); border-color: var(--amber); background: var(--amber-soft); }
.inline-control { display: grid; grid-template-columns: 1fr auto; gap: 6px; }
select, .number-input { width: 100%; min-height: 36px; border: 1px solid var(--border-bright); border-radius: 0; background: #090d13; padding: 0 .65rem; outline: none; }
select:focus, .number-input:focus { border-color: var(--cyan); }
.microcopy { margin: .45rem 0 0; color: var(--muted); font-size: .72rem; line-height: 1.45; }
.parameter-header { display: grid; grid-template-columns: 1fr 78px; gap: .5rem; padding: .4rem 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); color: var(--muted); font: .63rem var(--mono); text-transform: uppercase; }
.parameter-row { display: grid; grid-template-columns: 1fr 78px; gap: .5rem; align-items: center; padding: .52rem 0; border-bottom: 1px solid rgba(255,255,255,.055); }
.parameter-row label { display: flex; justify-content: space-between; gap: .5rem; font: .72rem var(--mono); }
.parameter-row label span:first-child { color: var(--amber); font-weight: 700; }
.parameter-row label span:last-child { color: var(--muted); font-size: .64rem; }
.number-input { min-height: 30px; text-align: right; font: .72rem var(--mono); }
.button-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 1rem; }
.button { min-height: 36px; border: 1px solid var(--border-bright); background: var(--panel-3); color: var(--text); font: 700 .67rem var(--mono); letter-spacing: .03em; }
.button:hover { border-color: var(--cyan); }
.button.primary { color: #111; background: var(--amber); border-color: var(--amber); }
.button.secondary { color: var(--muted); background: #0a0e14; }
.button:disabled { opacity: .45; cursor: not-allowed; }
.diagnostic-box { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 1rem; border: 1px solid var(--border); background: var(--border); }
.diagnostic-box div { padding: .62rem .48rem; background: #0a0e14; }
.diagnostic-box strong { display: block; margin-top: .35rem; font: 700 .72rem var(--mono); color: var(--cyan); }

.chart-title-row { margin-bottom: .55rem; }
.chart-actions { display: flex; gap: 5px; }
.icon-button { min-width: 38px; height: 30px; border: 1px solid var(--border); background: #090d13; color: var(--muted); font: 700 .65rem var(--mono); }
.icon-button:hover, .icon-button.active { color: var(--cyan); border-color: var(--cyan); }
.chart-shell { position: relative; height: clamp(340px, 49vh, 535px); border: 1px solid var(--border); background: #080c12; }
.chart-shell canvas { width: 100% !important; height: 100% !important; }
.chart-loading { position: absolute; inset: 0; z-index: 2; display: grid; place-items: center; color: var(--amber); background: rgba(8,12,18,.85); font: .72rem var(--mono); letter-spacing: .1em; }
.chart-loading.hidden { display: none; }
.metric-strip { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px; margin-top: 6px; border: 1px solid var(--border); background: var(--border); }
.metric-strip div { padding: .58rem .68rem; background: #0a0e14; }
.metric-strip strong { display: block; margin-top: .3rem; font: 700 .76rem var(--mono); }
.metric-strip strong.positive { color: var(--green); }
.metric-strip strong.negative { color: var(--red); }

.table-wrap { overflow: auto; max-height: 310px; border: 1px solid var(--border); }
table { width: 100%; border-collapse: collapse; font: .7rem var(--mono); white-space: nowrap; }
th { position: sticky; top: 0; z-index: 1; padding: .62rem .7rem; background: #151c26; color: var(--muted); text-align: right; border-bottom: 1px solid var(--border-bright); text-transform: uppercase; font-size: .61rem; letter-spacing: .06em; }
th:first-child, td:first-child { text-align: left; }
td { padding: .55rem .7rem; text-align: right; border-bottom: 1px solid rgba(255,255,255,.05); }
tbody tr:hover { background: rgba(53,211,255,.05); }
td.yield { color: var(--cyan); }
td.residual-positive { color: var(--green); }
td.residual-negative { color: var(--red); }
.timestamp { color: var(--muted); font: .64rem var(--mono); }

.activity-log { list-style: none; padding: 0; margin: 0; max-height: 480px; overflow: auto; counter-reset: events; }
.activity-log li { position: relative; padding: .6rem 0 .6rem 1rem; border-bottom: 1px solid rgba(255,255,255,.055); color: var(--muted); font: .67rem/1.45 var(--mono); }
.activity-log li::before { content: ""; position: absolute; left: 0; top: .83rem; width: 5px; height: 5px; background: var(--cyan); }
.activity-log time { display: block; margin-bottom: .2rem; color: var(--amber); font-size: .58rem; }
.activity-log li.error::before { background: var(--red); }
.system-card { display: grid; grid-template-columns: 1fr auto; gap: .55rem .75rem; margin-top: 1rem; padding: .8rem; border: 1px solid var(--border); background: #090d13; }
.system-card strong { color: var(--cyan); font: .65rem var(--mono); }

footer { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 1rem; border-top: 1px solid var(--border); color: var(--muted); background: #080b10; font: .64rem var(--mono); }

@media (max-width: 1180px) {
  .workstation-grid { grid-template-columns: 285px minmax(0, 1fr); grid-template-areas: "controls chart" "controls data" "activity activity"; }
  .activity-log { max-height: 150px; }
  .market-strip > div { min-width: 78px; padding-inline: .65rem; }
}
@media (max-width: 820px) {
  .terminal-bar { flex-direction: column; }
  .market-strip { width: 100%; border-left: 0; border-top: 1px solid var(--border); }
  .workstation-grid { grid-template-columns: 1fr; grid-template-areas: "controls" "chart" "data" "activity"; }
  .metric-strip { grid-template-columns: repeat(3, 1fr); }
  .chart-shell { height: 390px; }
  footer { flex-direction: column; }
}
@media (max-width: 520px) {
  .market-strip { grid-template-columns: repeat(2, 1fr); }
  .metric-strip { grid-template-columns: repeat(2, 1fr); }
  .button-grid { grid-template-columns: 1fr; }
  .segmented-control { grid-template-columns: 1fr; }
}

/* Sprint 5 interactive chart controls */
.chart-toolbar {
  display: grid;
  grid-template-columns: minmax(145px, 1.2fr) repeat(4, minmax(92px, .72fr)) minmax(210px, 1.5fr);
  gap: 6px;
  align-items: end;
  margin-bottom: 6px;
  padding: .55rem;
  border: 1px solid var(--border);
  background: #090d13;
}
.chart-toolbar label {
  display: grid;
  gap: .3rem;
  color: var(--muted);
  font: 700 .58rem var(--mono);
  letter-spacing: .06em;
}
.chart-toolbar select,
.chart-toolbar input {
  width: 100%;
  min-height: 30px;
  padding: 0 .48rem;
  border: 1px solid var(--border-bright);
  background: #070b10;
  color: var(--text);
  font: .66rem var(--mono);
  outline: none;
}
.chart-toolbar select:focus,
.chart-toolbar input:focus { border-color: var(--cyan); }
.chart-toolbar input:disabled { opacity: .4; cursor: not-allowed; }
.interaction-hint {
  align-self: center;
  color: var(--cyan);
  font: .61rem/1.4 var(--mono);
  text-align: right;
}
.chart-shell canvas { cursor: grab; }
.chart-shell canvas:active { cursor: grabbing; }
.chart-actions { flex-wrap: wrap; justify-content: flex-end; }
.icon-button { padding-inline: .5rem; white-space: nowrap; }

@media (max-width: 1320px) {
  .chart-toolbar { grid-template-columns: repeat(3, 1fr); }
  .interaction-hint { grid-column: 1 / -1; text-align: left; }
}
@media (max-width: 680px) {
  .chart-toolbar { grid-template-columns: 1fr 1fr; }
  .interaction-hint { grid-column: 1 / -1; }
  .chart-actions { width: 100%; justify-content: flex-start; }
  .chart-title-row { flex-wrap: wrap; }
}

/* Sprint 6 draggable-point editing and live refitting */
.chart-toolbar { grid-template-columns: minmax(140px, 1.1fr) repeat(4, minmax(90px, .65fr)) minmax(115px, .75fr) auto auto minmax(125px, .85fr) minmax(220px, 1.45fr); }
.switch-control { position: relative; grid-template-columns: auto 34px; align-items: center; column-gap: .45rem; white-space: nowrap; }
.switch-control input { position: absolute; opacity: 0; pointer-events: none; }
.switch-track { width: 32px; height: 16px; border: 1px solid var(--border-bright); background: #111722; position: relative; }
.switch-track::after { content: ""; position: absolute; top: 2px; left: 2px; width: 10px; height: 10px; background: var(--muted); transition: transform .15s ease, background .15s ease; }
.switch-control input:checked + .switch-track { border-color: var(--cyan); }
.switch-control input:checked + .switch-track::after { transform: translateX(16px); background: var(--cyan); }
.toolbar-button { min-height: 30px; padding: 0 .55rem; border: 1px solid var(--border-bright); background: #0b1119; color: var(--text); font: 700 .58rem var(--mono); letter-spacing: .04em; cursor: pointer; }
.toolbar-button:hover:not(:disabled) { border-color: var(--amber); color: var(--amber); }
.toolbar-button:disabled { opacity: .35; cursor: not-allowed; }
.drag-status { align-self: center; min-height: 30px; display: inline-flex; align-items: center; justify-content: center; padding: 0 .55rem; border: 1px solid var(--border); color: var(--cyan); background: #071018; font: 700 .58rem var(--mono); white-space: nowrap; }
.drag-status.active { border-color: var(--amber); color: var(--amber); box-shadow: inset 0 0 0 1px rgba(246,168,33,.16); }
.chart-shell canvas.dragging-point, .chart-shell canvas.dragging-point:active { cursor: ns-resize; }
@media (max-width: 1500px) { .chart-toolbar { grid-template-columns: repeat(5, minmax(100px, 1fr)); } .interaction-hint { grid-column: 1 / -1; text-align: left; } }
@media (max-width: 760px) { .chart-toolbar { grid-template-columns: 1fr 1fr; } .drag-status { min-width: 0; } }

/* Sprint 7: compact behavior when embedded in Google Sites. */
body[data-embed-mode="embedded"] .terminal-bar {
  position: static;
}
body[data-embed-mode="embedded"] .workstation-grid {
  min-height: 760px;
}
@media (max-width: 900px) {
  body[data-embed-mode="embedded"] .market-strip {
    display: none;
  }
}

/* Sprint 8 production polish */
.toast-region { position: fixed; right: 18px; bottom: 52px; z-index: 1000; display: grid; gap: 8px; max-width: min(380px, calc(100vw - 36px)); }
.toast { border: 1px solid #3b4658; background: #111722; color: #edf2f7; padding: 10px 12px; box-shadow: 0 10px 30px rgba(0,0,0,.4); font-size: .82rem; animation: toast-in .18s ease-out; }
.toast.error { border-color: #a84646; }
.toast.success { border-color: #2b8a66; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } }
.help-dialog { width: min(520px, calc(100vw - 32px)); color: #e8edf4; background: #0d121b; border: 1px solid #3b4658; padding: 18px; }
.help-dialog::backdrop { background: rgba(0,0,0,.72); }
.shortcut-list { display: grid; gap: 8px; margin: 18px 0; }
.shortcut-list div { display: grid; grid-template-columns: 48px 1fr; gap: 12px; align-items: center; }
.shortcut-list dt { border: 1px solid #566174; background: #171e2a; padding: 5px 8px; text-align: center; font-family: Consolas, monospace; }
.shortcut-list dd { margin: 0; }
:focus-visible { outline: 2px solid #70d6ff; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; transition-duration: .001ms !important; } }

/* MuniBondPricing directions and expanded analytics */
.directions-panel { grid-area: chart; padding: 1rem; }
.directions-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.direction-card { padding: 1rem; border: 1px solid var(--border); background: #090d13; }
.direction-card h3 { margin: 0 0 .55rem; color: var(--cyan); font: 700 .78rem var(--mono); text-transform: uppercase; }
.direction-card p { margin: 0; color: var(--muted); line-height: 1.6; font-size: .78rem; }
.direction-card code { color: var(--amber); }
td.muni-rate { color: var(--cyan); font-weight: 700; }
td.treasury-rate { color: #b8c2d1; }
td.implied-tax { color: var(--green); font-weight: 700; }
.analytics-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1px; margin-bottom: 1rem; border: 1px solid var(--border); background: var(--border); }
.analytics-grid div { padding: .72rem; background: #0a0e14; }
.analytics-grid span { display: block; color: var(--muted); font: .58rem var(--mono); }
.analytics-grid strong { display: block; margin-top: .32rem; color: var(--cyan); font: 700 .72rem var(--mono); }
@media (max-width: 820px) { .directions-grid { grid-template-columns: 1fr; } }

/* Directions setup controls and revised bond-price action */
.directions-intro-box {
  margin: 0 0 12px;
  padding: 1rem 1.1rem;
  border: 1px solid var(--border-bright);
  background: #0a0e14;
  font-size: .92rem;
  line-height: 1.55;
  white-space: pre-line;
}
.getting-started-options {
  margin: 0 0 14px;
  padding: 1rem 1.1rem;
  border: 1px solid var(--border);
  background: #0d131b;
}
.getting-started-options legend {
  padding: 0 .45rem;
  color: var(--cyan);
}
.start-option {
  display: flex;
  align-items: center;
  gap: .58rem;
  min-height: 34px;
  margin: .2rem 0;
  color: var(--text);
  font-size: .82rem;
  line-height: 1.35;
  cursor: pointer;
}
.start-option input[type="radio"] {
  flex: 0 0 auto;
  accent-color: var(--cyan);
}
.start-option.is-disabled {
  color: var(--muted);
  opacity: .48;
  cursor: not-allowed;
}
.inline-rate-input {
  width: 118px;
  margin-left: .25rem;
}
.option-help { margin: .75rem 0 0; }
.result-calculate-button {
  width: 100%;
  margin: 0 0 .85rem;
}
@media (max-width: 640px) {
  .fixed-adjustment-option { flex-wrap: wrap; }
  .inline-rate-input { margin-left: 1.55rem; }
}


/* Directions page: full-width beneath the tab bar with document-style colors */
.directions-top-wrap { padding: 14px 14px 0; }
.directions-top-wrap .directions-panel {
  width: 100%; max-width: none; margin: 0; padding: 1.4rem 1.55rem;
  background: #ffffff; color: #000000; border: 1px solid #cbd5e1;
  box-shadow: 0 6px 20px rgba(15, 23, 42, .10);
}
.directions-panel .panel-title-row h2,
.directions-panel .timestamp,
.directions-panel .directions-intro-box,
.directions-panel .getting-started-options,
.directions-panel .start-option,
.directions-panel .option-help,
.directions-panel .direction-card,
.directions-panel .direction-card p { color: #000000; }
.directions-panel .panel-title-row .eyebrow,
.directions-panel .getting-started-options legend,
.directions-panel .direction-card h3 { color: #0f172a; }
.directions-panel .directions-intro-box {
  background: #ffffff; border: 1px solid #94a3b8; border-radius: 8px;
}
.directions-panel .getting-started-options {
  background: #ffffff; border: 1px solid #cbd5e1; border-radius: 8px;
}
.directions-panel .direction-card {
  background: #ffffff; border: 1px solid #cbd5e1; border-radius: 8px;
}
.directions-panel .direction-card code {
  color: #000000; background: #f1f5f9; padding: .1rem .25rem; border-radius: 4px;
}
.directions-panel .start-option input[type="radio"] { accent-color: #1d4ed8; }
.directions-panel .inline-rate-input {
  background: #ffffff; color: #000000; border: 1px solid #64748b; border-radius: 6px;
}
.directions-panel .start-option.is-disabled { color: #64748b; opacity: .55; }
@media (max-width: 700px) {
  .directions-top-wrap { padding: 8px 8px 0; }
  .directions-top-wrap .directions-panel { padding: 1rem; }
}

/* Sidebar bond-price action and compact live result */
.sidebar-price-card {
  margin: -0.15rem -0.15rem 1rem;
  padding: 0.85rem;
  border: 1px solid rgba(91, 192, 255, 0.48);
  border-radius: 10px;
  background: rgba(5, 20, 36, 0.94);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.025);
}
.sidebar-price-button { width: 100%; margin-bottom: 0.8rem; }
.sidebar-price-main { text-align: center; padding: 0.2rem 0 0.65rem; }
.sidebar-price-main span,
.sidebar-yield-row span { display: block; color: var(--muted, #9fb0c2); font-size: 0.68rem; letter-spacing: 0.08em; }
.sidebar-price-main strong { display: block; margin-top: 0.18rem; font-size: 2rem; line-height: 1; color: #fff; font-variant-numeric: tabular-nums; }
.sidebar-yield-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; padding-top: 0.65rem; border-top: 1px solid rgba(255,255,255,0.11); }
.sidebar-yield-row div { text-align: center; }
.sidebar-yield-row strong { display: block; margin-top: 0.15rem; font-size: 0.88rem; color: #fff; font-variant-numeric: tabular-nums; }
.directions-intro-box p { margin: 0 0 0.8rem; line-height: 1.55; }
.directions-intro-box h3 { margin: 0.8rem 0 0.35rem; color: #0f172a; }
.directions-steps { margin: 0.25rem 0 0.85rem 1.35rem; padding: 0; }
.directions-steps li { margin: 0.38rem 0; line-height: 1.45; }
.directions-start-note { margin-bottom: 0 !important; padding-top: 0.7rem; border-top: 1px solid #d1d5db; }

.manual-rate-heading {
  grid-column: 1 / -1;
  margin: 0 0 6px;
  padding: 8px 10px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #f8fafc;
  color: #0f172a;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.sidebar-curve-start {
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #ffffff;
  padding: 12px;
  margin-bottom: 12px;
}
.sidebar-curve-start .compact-control-heading { margin-top: 0; }

/* v6 sidebar and two-column directions layout */
.sidebar-tax-control {
  margin: 10px 0 12px;
  padding: 10px;
  border: 1px solid #d7dee8;
  border-radius: 7px;
  background: #f8fafc;
}
.sidebar-tax-control input { width: 100%; }
.workstation-grid > .directions-panel { align-self: start; }

.directions-live-recalc-note { margin: 18px 0; padding: 16px 18px; border: 1px solid var(--border-color, #d7dde7); border-radius: 10px; background: #f8fafc; }
.directions-live-recalc-note h3 { margin: 0 0 8px; }
.directions-live-recalc-note p { margin: 7px 0; line-height: 1.5; }

/* Bond analytics and call-option modeling tabs */
.analytics-chart-shell { position: relative; min-height: 330px; height: 38vh; max-height: 430px; margin-top: 12px; }
.price-yield-section { grid-column: 1 / -1; }
.call-option-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: start; }
.call-option-panel { padding: 18px; }
.quantlib-explainer { margin: 0 0 18px; padding: 14px 16px; border: 1px solid #bfdbfe; border-radius: 10px; background: #eff6ff; color: #1e3a5f; line-height: 1.5; }
.call-option-panel .callable-model-section, .call-option-panel .rate-scenario-section { min-width: 0; }
.scenario-chart-shell { width: 100%; min-height: 430px; height: 52vh; max-height: 620px; }
@media (max-width: 1000px) { .call-option-layout { grid-template-columns: 1fr; } }

/* Directions workflow: assumptions first, Treasury curve second. */
.directions-bond-assumptions { margin-bottom: 18px; }
.directions-bond-assumptions .bond-form-grid { grid-template-columns: repeat(3, minmax(170px, 1fr)); }
.directions-curve-start .bond-section-heading { margin-bottom: 8px; }
@media (max-width: 980px) {
  .directions-bond-assumptions .bond-form-grid { grid-template-columns: repeat(2, minmax(160px, 1fr)); }
}
@media (max-width: 620px) {
  .directions-bond-assumptions .bond-form-grid { grid-template-columns: 1fr; }
}


/* Date choices and revised price presentation */
.date-selection-section { display:grid; grid-template-columns:repeat(2,minmax(280px,1fr)); gap:14px; margin-bottom:14px; }
.date-choice-group { border:1px solid var(--line, #cbd5e1); border-radius:8px; padding:12px; display:grid; gap:8px; }
.date-choice-group legend { font-weight:700; padding:0 5px; }
.date-choice-group label { display:flex; align-items:center; gap:7px; }
.date-choice-group input[type="date"] { width:100%; }
.bond-feature-fields { margin-top:10px; }
.top-price-heading { display:block; font-size:.72rem; letter-spacing:.08em; margin-top:3px; }
.top-price-case-card .top-price-value, .top-price-case-card .top-call-price-value { display:block; }
.top-price-case-card small { font-size:.68em; font-weight:600; margin-left:5px; }
.comparison-price { margin-top:3px; }
.callable-live-row { display:flex; align-items:center; gap:12px; margin:12px 0; padding:10px 12px; border:1px solid var(--line, #cbd5e1); border-radius:8px; }
.switch-control { display:flex; align-items:center; gap:8px; font-weight:700; }
.parameter-range-scale { display:grid; grid-template-columns:1fr 1fr 1fr; font-size:.68rem; color:#64748b; margin-top:-4px; }
.parameter-range-scale span:nth-child(2) { text-align:center; }
.parameter-range-scale span:last-child { text-align:right; }
@media (max-width: 760px) { .date-selection-section { grid-template-columns:1fr; } }
.scenario-action-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:12px 0; }
.scenario-table-shell { width:100%; margin-top:14px; max-height:360px; overflow:auto; }
.scenario-table-shell table { width:100%; border-collapse:collapse; }
.scenario-table-shell th, .scenario-table-shell td { padding:8px 10px; border-bottom:1px solid var(--line,#cbd5e1); text-align:right; }
.scenario-table-shell th:first-child, .scenario-table-shell td:first-child { text-align:left; }

/* Version 5 compact dates and callable controls */
.directions-guidance-box {
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid #bfdbfe;
  border-radius: 10px;
  background: #eff6ff;
  color: #29445d;
  font-size: .86rem;
  line-height: 1.5;
}
.directions-guidance-box p { margin: 0; }
.compact-date-selection {
  display: grid;
  grid-template-columns: repeat(2, minmax(280px, 1fr));
  gap: 10px 16px;
  margin-bottom: 14px;
}
.compact-date-row {
  display: grid;
  grid-template-columns: 92px minmax(170px, 1fr);
  align-items: center;
  gap: 8px;
}
.compact-date-row > label { font-weight: 700; color: #334155; }
.compact-date-row select,
.compact-date-row input[type="date"] { width: 100%; min-height: 36px; }
.compact-date-row input[type="date"] { grid-column: 2; }
.compact-date-row input[type="date"]:disabled { display: none; }
.callable-recalc-controls .button { min-width: 165px; }
@media (max-width: 760px) {
  .compact-date-selection { grid-template-columns: 1fr; }
  .compact-date-row { grid-template-columns: 90px minmax(0, 1fr); }
}

/* QuantLib maturity ladder */
.ladder-spot-grid { display:grid; grid-template-columns:repeat(5,minmax(105px,1fr)); gap:.75rem; }
.ladder-spot-grid label, .ladder-assumption-grid label { display:grid; gap:.35rem; font-size:.78rem; font-weight:700; }
.ladder-fit-summary { margin:.5rem 0 1rem; font-size:.82rem; color:var(--muted-text,#52606d); }
.maturity-ladder-chart-shell { min-height:360px; margin-top:1rem; }
#maturity-ladder-chart { width:100% !important; height:350px !important; }
@media (max-width:900px){ .ladder-spot-grid{grid-template-columns:repeat(2,minmax(120px,1fr));} }


/* Version 5.9 application-mode selector and ladder workspace */
.application-mode-selector {
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  margin:.25rem 0 .35rem;
}
.application-mode-selector label {
  display:flex;
  align-items:center;
  gap:6px;
  font-size:.86rem;
  font-weight:700;
  cursor:pointer;
}
.application-mode-selector input { accent-color:var(--accent,#0f5fa8); }
.ladder-sidebar-controls { display:grid; gap:12px; }
.ladder-sidebar-spot-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.ladder-sidebar-spot-grid label { display:grid; gap:3px; font-size:.74rem; font-weight:700; }
.ladder-sidebar-spot-grid input { width:100%; min-width:0; }
.ladder-sidebar-actions .button { width:100%; }
body[data-application-mode="ladder"] .tab-workspace { align-items:start; }
body[data-application-mode="ladder"] .function-bar { grid-column:2; }
body[data-application-mode="ladder"] .maturity-ladder-panel { grid-column:2; }
body[data-application-mode="ladder"] .control-panel { min-height:0; }
@media (max-width:760px) {
  .application-mode-selector { flex-direction:column; gap:5px; }
}


/* Version 5.10 dev: Bond Ladder summary bar */
.ladder-summary-bar {
  grid-template-columns: minmax(150px, 0.8fr) repeat(4, minmax(150px, 1fr));
  align-items: stretch;
}
.ladder-summary-title {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-right: 1px solid var(--line-color, #d8dee9);
}
.ladder-summary-card {
  display: grid;
  grid-template-rows: auto 1fr auto auto;
  align-content: center;
  gap: 0.25rem;
  padding: 0.65rem 1rem;
  text-align: center;
  border-left: 1px solid var(--line-color, #d8dee9);
}
.ladder-summary-card > span {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.ladder-summary-price {
  font-size: 1.75rem;
  line-height: 1;
}
.ladder-summary-yield {
  font-size: 0.85rem;
  font-weight: 700;
}
.ladder-summary-call-value {
  font-size: 0.76rem;
  font-weight: 700;
  opacity: 0.82;
}
@media (max-width: 900px) {
  .ladder-summary-bar {
    grid-template-columns: 1fr;
  }
  .ladder-summary-title, .ladder-summary-card {
    border-left: 0;
    border-right: 0;
    border-top: 1px solid var(--line-color, #d8dee9);
  }
}


/* Version 5.11 dev: two-column municipal mode header and switched summary bars */
.brand-content { min-width: min(720px, 75vw); }
.header-choice-row {
  display: grid;
  grid-template-columns: minmax(180px, 0.8fr) minmax(360px, 1.5fr);
  align-items: center;
  gap: 1.5rem;
}
.header-choice-row h1 { white-space: nowrap; }
.application-mode-selector {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 1.25rem;
  margin: 0;
}
.application-mode-selector label { white-space: nowrap; }
.single-bond-bar-title {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 0.85rem;
  border-right: 1px solid var(--line-color, #d8dee9);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-align: center;
}
#municipal-price-bar {
  grid-template-columns: minmax(190px, 0.72fr) minmax(210px, 1fr) minmax(230px, 1.08fr) repeat(3, minmax(170px, 0.85fr));
}
.ladder-summary-bar {
  grid-template-columns: minmax(225px, 1fr) repeat(4, minmax(155px, 0.9fr));
}
@media (max-width: 1050px) {
  .header-choice-row { grid-template-columns: 1fr; gap: 0.45rem; }
  .brand-content { min-width: 0; }
  .application-mode-selector { flex-wrap: wrap; gap: 0.65rem 1rem; }
  #municipal-price-bar, .ladder-summary-bar { grid-template-columns: 1fr; }
  .single-bond-bar-title { border-right: 0; border-bottom: 1px solid var(--line-color, #d8dee9); }
}

/* Ensure only the active mode summary bar is displayed. */
#municipal-price-bar[hidden],
#ladder-summary-bar[hidden] {
  display: none !important;
}

/* Version 5.15 maturity-ladder usability improvements */
.ladder-input-card { padding: 1.35rem 1.45rem; }
.ladder-input-groups { display:grid; gap:1.35rem; }
.ladder-input-group { display:grid; gap:.75rem; }
.ladder-input-group + .ladder-input-group { padding-top:1.1rem; border-top:1px solid var(--line,#d7dee7); }
.ladder-input-group h4 { margin:0; font-size:1rem; letter-spacing:.035em; text-transform:uppercase; color:var(--heading,#1f3347); }
.ladder-assumption-grid { display:grid; grid-template-columns:repeat(2,minmax(240px,1fr)); gap:1rem 1.35rem; }
.ladder-assumption-grid label { display:grid; gap:.5rem; font-size:1.02rem; line-height:1.2; font-weight:700; color:var(--heading,#1f3347); }
.ladder-assumption-grid input,
.ladder-assumption-grid select { width:100%; min-height:46px; padding:.65rem .8rem; font-size:1.1rem; font-weight:600; border-radius:8px; }
.ladder-assumption-grid input[type="number"] { text-align:right; font-variant-numeric:tabular-nums; }
.ladder-sidebar-actions { display:block; }
#calculate-maturity-ladder { width:100%; min-height:48px; font-size:1.05rem; letter-spacing:.06em; font-weight:800; }
.maturity-ladder-chart-shell { min-height:490px; }
#maturity-ladder-chart { height:475px !important; }
#maturity-ladder-body tr.ladder-key-maturity { background:rgba(15,95,168,.08); font-weight:700; }
#maturity-ladder-body tr.ladder-key-maturity td:first-child { box-shadow:inset 4px 0 0 var(--accent,#0f5fa8); }
#maturity-ladder-body td:not(:first-child),
#maturity-ladder-body th:not(:first-child) { text-align:right; font-variant-numeric:tabular-nums; }
@media (max-width:820px) {
  .ladder-assumption-grid { grid-template-columns:1fr; }
  .maturity-ladder-chart-shell { min-height:400px; }
  #maturity-ladder-chart { height:385px !important; }
}

/* Version 6.0 integrated visual system */
:root { --card-radius: 9px; --card-pad: 18px; --soft-bg: #f7f9fc; --soft-blue: #eef5ff; --muted: #64748b; }
.tab-bar { align-items: stretch; gap: 5px; }
.tab-button { min-height: 58px; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1.05; gap:2px; white-space:normal; text-align:center; padding:8px 12px; }
.tab-button span { display:block; }
.panel, .bond-section-card, .verification-card, .quantlib-explainer, .info-panel, .chart-card, .details-accordion { border-radius: var(--card-radius); }
.info-panel { background: var(--soft-blue); border:1px solid #cbdcf7; padding:16px 18px; }
.getting-started-list { margin:.5rem 0 0 1.25rem; display:grid; gap:.45rem; }
.directions-panel { display:grid; gap:16px; }
.directions-panel .bond-section-card { padding:var(--card-pad); background:#fff; border:1px solid #d9e0ea; box-shadow:0 2px 8px rgba(15,23,42,.04); }
.directions-curve-start, .directions-live-recalc-note { margin:0; }
.curve-dot { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:8px; vertical-align:1px; }
.muni-dot { background:#2563eb; }.treasury-dot { background:#111; }
.treasury-starter-row { min-height:44px; gap:9px; padding:8px 10px; border-radius:7px; }
.treasury-starter-row:hover { background:#f8fafc; }
.treasury-starter-row input[type="radio"] { width:18px; height:18px; }
.ready-card { border-left:4px solid #16a34a !important; }

.chart-panel { display:grid; gap:12px; }
.chart-title-row { align-items:flex-start; }
.curve-legend { display:flex; flex-wrap:wrap; gap:14px 22px; align-items:center; padding:10px 14px; background:#fff; border:1px solid #d9e0ea; border-radius:8px; font-size:.86rem; }
.curve-legend span { display:flex; align-items:center; gap:7px; }
.legend-dot { width:11px; height:11px; border-radius:50%; display:inline-block; }.legend-line { width:25px; height:0; border-top:3px solid; display:inline-block; }
.legend-dot.treasury{background:#000}.legend-line.treasury{border-color:#000}.legend-dot.muni{background:#2563eb}.legend-line.muni{border-color:#2563eb}
.point-toolbar { background:#f8fafc; border:1px solid #d9e0ea; border-radius:8px; padding:9px 11px; }
.chart-card { height:clamp(430px,60vh,680px); border:1px solid #d7dee8; background:#fff; box-shadow:0 3px 14px rgba(15,23,42,.07); overflow:hidden; }
.chart-options-bottom { background:#f8fafc; border:1px solid #d9e0ea; border-radius:8px; padding:10px; }

.rate-table-toolbar { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 10px; }
.rate-table-wrap { max-height:62vh; border-radius:8px; }
.rate-table { border-collapse:separate; border-spacing:0; min-width:1120px; }
.rate-table thead th { position:sticky; top:0; z-index:3; background:#eef2f7; box-shadow:0 1px 0 #cbd5e1; }
.rate-table th:first-child,.rate-table td:first-child { position:sticky; left:0; z-index:2; background:#fff; font-weight:700; }
.rate-table thead th:first-child { z-index:4; background:#e8edf4; }
.rate-table th:nth-child(3),.rate-table th:nth-child(4){border-top:4px solid #2563eb}.rate-table th:nth-child(5),.rate-table th:nth-child(6){border-top:4px solid #111}
.rate-table tbody tr:nth-child(even) td { background:#f8fafc; }.rate-table tbody tr:nth-child(even) td:first-child { background:#f8fafc; }
.rate-table td:not(:first-child),.rate-table th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}
.rate-table tbody tr:nth-child(6) td,.rate-table tbody tr:nth-child(8) td,.rate-table tbody tr:nth-child(9) td,.rate-table tbody tr:nth-child(10) td{border-top:2px solid #cbd5e1}

.analytics-section-title { margin:16px 0 8px; font-size:1rem; text-transform:uppercase; letter-spacing:.08em; color:#475569; }
.bond-metrics-section .professional-metrics-grid { grid-template-columns:repeat(3,minmax(150px,1fr)); gap:12px; }
.bond-metrics-section .professional-metrics-grid>div { min-height:105px; padding:16px; border:1px solid #d9e0ea; border-radius:9px; background:#fff; display:flex; flex-direction:column; justify-content:space-between; }
.bond-metrics-section .professional-metrics-grid strong { font-size:1.9rem; line-height:1; }
.price-yield-section .analytics-chart-shell { min-height:460px; height:52vh; max-height:620px; }
.basic-details-summary { margin-top:14px; }

.calculation-details-panel { display:grid; gap:12px; }
.details-intro { margin-bottom:2px; }
.details-accordion { border:1px solid #d9e0ea; background:#fff; overflow:hidden; }
.details-accordion>summary { cursor:pointer; padding:14px 18px; font-weight:800; font-size:1rem; background:#f5f7fa; border-bottom:1px solid transparent; }
.details-accordion[open]>summary { border-bottom-color:#d9e0ea; }
.details-accordion>*:not(summary) { margin:16px; }
.details-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(175px,1fr)); gap:10px; }
.details-grid>div { padding:12px; border:1px solid #e2e8f0; border-radius:7px; background:#fafcff; }
.details-grid span { display:block; color:#64748b; font-size:.72rem; font-weight:700; letter-spacing:.06em; }
.details-grid strong { display:block; margin-top:5px; font-size:1rem; }
.quantlib-diagnostics { border:0; margin:0 !important; padding:0; }
.details-accordion .table-shell,.details-accordion .table-wrap { max-height:430px; overflow:auto; }

@media (max-width:900px){
 .bond-metrics-section .professional-metrics-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}
 .chart-card{height:460px}
}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Version 6.1.1: strict application-mode isolation. */
#municipal-sidebar-controls[hidden],
#ladder-sidebar-controls[hidden],
.tab-button[hidden],
.tab-view[hidden] {
  display: none !important;
}

.top-price-case-card small {
  white-space: nowrap;
  font-weight: 750;
  letter-spacing: .02em;
}

/* 6.1.2 usability refinements */
:root { --table-number-font-size: 1rem; }
table tbody td { font-size: var(--table-number-font-size); }
.table-number-size-control { display:flex; align-items:center; justify-content:flex-end; gap:.45rem; font-size:.72rem; font-weight:700; text-transform:uppercase; }
.table-local-controls { display:flex; justify-content:flex-end; margin:.35rem 0 .55rem; }
.table-number-size-control select { min-width:7.5rem; }
.derived-rate-heading-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1rem; }
.derived-rate-heading-row h4 { margin:0; }
.derived-rate-heading-row > div { display:flex; gap:.45rem; }
.derived-muni-rate-grid { display:grid; grid-template-columns:repeat(5,minmax(90px,1fr)); gap:.65rem; margin-top:.75rem; }
.derived-muni-rate-grid label { display:flex; flex-direction:column; gap:.25rem; font-size:.75rem; font-weight:700; }
.derived-muni-rate-grid input { width:100%; }
.top-price-case-card .price-case-stack { text-align:center; }
.top-price-case-card .top-price-value { display:flex; flex-direction:column; align-items:center; }
.top-price-case-card .top-price-value > span { font:inherit; }
.top-price-case-card .top-price-value small { display:block; margin-top:.15rem; font-size:.67rem; font-weight:700; letter-spacing:.04em; text-transform:none; }
@media (max-width: 900px) { .derived-muni-rate-grid { grid-template-columns:repeat(2,minmax(100px,1fr)); } }

.step3-heading-row { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; }
.step3-fill-actions { display:flex; gap:.5rem; flex-wrap:wrap; }
.derived-muni-rate-grid input[readonly] { background:var(--surface-muted, #f4f6f8); cursor:default; }
@media (max-width: 700px) { .step3-heading-row { align-items:flex-start; flex-direction:column; } }

/* Ensure mutually exclusive price states never render together. */
#top-no-call-case[hidden],
#top-call-price-row[hidden] { display: none !important; }

/* Version 6.2.0: full-width option scenarios and prominent linked call date */
.call-option-panel .call-option-layout {
  display: block;
  width: 100%;
  max-width: none;
}
.call-option-panel .rate-scenario-section {
  display: block;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  margin-top: 18px;
}
.call-option-panel .scenario-chart-shell {
  display: block;
  width: 100%;
  max-width: none;
  min-height: 470px;
  height: 56vh;
  max-height: 680px;
}
.call-option-panel .scenario-chart-shell canvas {
  width: 100% !important;
  max-width: none !important;
}
.call-option-panel .scenario-table-shell {
  display: block;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
.call-option-panel .scenario-table-shell table {
  width: 100%;
  min-width: 900px;
  table-layout: auto;
}
.call-date-link-row {
  display: grid;
  gap: 10px;
  margin: 12px 0 16px;
  padding: 13px 15px;
  border: 1px solid var(--line, #cbd5e1);
  border-radius: 10px;
  background: #f8fafc;
}
.call-date-current-row {
  display: flex;
  align-items: baseline;
  gap: 12px;
}
.call-date-current-label {
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #475569;
}
#callable-call-date-display {
  font-size: 1.2rem;
  line-height: 1.2;
  color: #0f172a;
}
.call-date-selection-row {
  display: grid;
  grid-template-columns: max-content minmax(220px, 360px) minmax(155px, 210px) 1fr;
  gap: 10px;
  align-items: center;
}
.call-date-selection-row label { font-weight: 750; }
.call-date-selection-row select,
.call-date-selection-row input { font-size: 1rem; }
@media (max-width: 900px) {
  .call-date-selection-row { grid-template-columns: 1fr; }
  .call-option-panel .scenario-table-shell table { min-width: 760px; }
}

/* Version 6.2.1: enforce scenario content across the complete inner tab width. */
#call-option-panel .rate-scenario-section,
#call-option-panel .scenario-chart-shell,
#call-option-panel .scenario-table-shell {
  grid-column: 1 / -1;
  justify-self: stretch;
  align-self: stretch;
}
#call-option-panel .rate-scenario-section > * {
  max-width: none;
}


/* Version 6.2.2: call-date tenor label and separate scenario charts. */
.call-date-current-row { flex-wrap: wrap; }
.call-date-tenor {
  font-size: 1.02rem;
  font-weight: 750;
  color: #475569;
}
.scenario-chart-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  width: 100%;
  max-width: none;
}
#call-option-panel .scenario-chart-grid .scenario-chart-shell {
  width: 100%;
  min-width: 0;
  min-height: 390px;
  height: 46vh;
  max-height: 560px;
}
@media (max-width: 950px) {
  .scenario-chart-grid { grid-template-columns: 1fr; }
}


/* Version 6.2.5: observed price/YTC OAS and dual automatic NSS fitting. */
.issuer-decision-dashboard { width: 100%; max-width: none; margin-top: 18px; box-sizing: border-box; }
.issuer-decision-table-shell { width: 100%; max-width: 760px; margin-top: 14px; }
.issuer-decision-table { width: 100%; table-layout: fixed; }
.issuer-decision-table th:first-child, .issuer-decision-table td:first-child { width: 68%; text-align: left; }
.issuer-decision-table th:last-child, .issuer-decision-table td:last-child { width: 32%; text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }

.issuer-model-line { margin-top: 12px; font-size: .9rem; letter-spacing: .02em; color: #334155; }
.issuer-model-line strong { margin-left: 8px; color: #0f172a; font-size: .9rem; font-weight: 650; }

.issuer-decision-table th, .issuer-decision-table td { font-family: inherit; font-size: .92rem; line-height: 1.35; }
.compact-callable-inputs label[hidden] { display:none; }


/* Version 6.2.6 Market Data tab */
.market-data-panel { display:grid; gap:16px; }
.market-data-intro p { margin:.45rem 0 0; }
.market-data-table-shell { overflow-x:auto; border:1px solid #d9e0ea; border-radius:8px; background:#fff; }
.market-data-table { width:100%; min-width:980px; border-collapse:collapse; font-size:.88rem; }
.market-data-table th { background:#eef2f7; text-align:left; padding:12px; border-bottom:1px solid #cbd5e1; vertical-align:bottom; }
.market-data-table td { padding:12px; border-bottom:1px solid #e2e8f0; vertical-align:top; line-height:1.45; }
.market-data-table tbody tr:nth-child(even) td { background:#f8fafc; }
.market-data-table td:first-child { min-width:180px; }
.market-data-table td:nth-child(2) { min-width:360px; }
.market-data-table td:nth-child(3) { min-width:145px; }
.market-data-table a { display:inline-block; margin-top:6px; font-weight:600; }
.access-badge { display:inline-flex; align-items:center; border-radius:999px; padding:3px 9px; font-size:.72rem; font-weight:700; letter-spacing:.03em; text-transform:uppercase; }
.access-badge.public { background:#dcfce7; color:#166534; }
.access-badge.limited { background:#fef3c7; color:#92400e; }
.access-badge.subscription { background:#fee2e2; color:#991b1b; }
.market-data-notes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.market-data-notes .bond-section-card { margin:0; }
.market-data-asof { margin:0; color:var(--muted); font-size:.8rem; }
@media (max-width:850px) { .market-data-notes { grid-template-columns:1fr; } }


/* Version 6.3.0 stabilization: visible Market Data tab and consistent call analytics typography. */
.market-data-tab {
  gap: .5rem;
  min-width: 154px;
  justify-content: center;
}
.tab-public-badge {
  display: inline-block;
  padding: .14rem .3rem;
  border: 1px solid rgba(67, 209, 122, .48);
  border-radius: 3px;
  color: var(--green);
  background: rgba(67, 209, 122, .08);
  font: 700 .52rem var(--mono);
  letter-spacing: .06em;
}
.market-data-panel:not([hidden]) {
  display: grid;
}
#call-option-panel .issuer-decision-table-shell {
  max-width: 820px;
}
#call-option-panel .issuer-decision-table,
#call-option-panel .issuer-decision-table th,
#call-option-panel .issuer-decision-table td {
  font-family: var(--sans);
  font-size: .92rem;
  line-height: 1.4;
  letter-spacing: normal;
  text-transform: none;
}
#call-option-panel .issuer-decision-table th {
  font-weight: 650;
}
#call-option-panel .issuer-decision-table td {
  font-weight: 400;
}
#call-option-panel .issuer-decision-table td:last-child {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
#call-option-panel .issuer-model-line,
#call-option-panel .issuer-model-line strong {
  font-family: var(--sans);
  font-size: .9rem;
  letter-spacing: normal;
}

/* Version 6.3.2 approved workflow controls */
.step3-method-options{display:grid;gap:.55rem;margin:0 0 .8rem;padding:.8rem;border:1px solid var(--line,#cbd5e1);border-radius:8px;background:rgba(255,255,255,.55)}
.step3-method-options label{display:flex;gap:.55rem;align-items:center;font-weight:600}
.step3-single-adjustments{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:.75rem;margin-bottom:.85rem}
.step3-single-adjustments label,.observed-market-input-grid label{display:grid;gap:.35rem;font-weight:600}
.muni-parallel-shift-control{display:flex;align-items:end;gap:.6rem;flex-wrap:wrap;padding:.75rem;margin:0 0 .85rem;border:1px solid var(--line,#cbd5e1);border-radius:8px;background:rgba(255,255,255,.65)}
.muni-parallel-shift-control label{display:grid;gap:.3rem;font-weight:700}.muni-parallel-shift-control input{width:130px}
.muni-parallel-shift-control .microcopy{flex-basis:100%;margin:0}
.ladder-import-button{width:100%;margin:.45rem 0 .75rem}
.callable-summary-status{margin:.25rem 0 .75rem}
.observed-market-input-card{padding:.85rem;margin:0 0 .85rem;border:1px solid var(--line,#cbd5e1);border-radius:8px;background:rgba(248,250,252,.9)}
.observed-market-input-card h4{margin:0 0 .65rem}.observed-market-input-grid{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:.75rem}
@media(max-width:800px){.step3-single-adjustments,.observed-market-input-grid{grid-template-columns:1fr}}

/* Version 6.3.3 compact Market Data table: keep all four columns visible. */
.market-data-table-shell {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}
.market-data-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
  font-size: .78rem;
}
.market-data-table th,
.market-data-table td {
  min-width: 0 !important;
  padding: 8px 9px;
  line-height: 1.28;
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
}
.market-data-table th:nth-child(1),
.market-data-table td:nth-child(1) { width: 16%; }
.market-data-table th:nth-child(2),
.market-data-table td:nth-child(2) { width: 38%; }
.market-data-table th:nth-child(3),
.market-data-table td:nth-child(3) { width: 18%; }
.market-data-table th:nth-child(4),
.market-data-table td:nth-child(4) { width: 28%; }
.market-data-table a {
  max-width: 100%;
  margin-top: 4px;
  font-size: .74rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.market-data-table td:first-child span {
  font-size: .72rem;
  line-height: 1.2;
}
.market-data-table .access-badge {
  padding: 2px 6px;
  font-size: .62rem;
  white-space: normal;
  text-align: center;
}
@media (max-width: 1100px) {
  .market-data-table { font-size: .71rem; }
  .market-data-table th,
  .market-data-table td { padding: 6px; line-height: 1.22; }
  .market-data-table a { font-size: .68rem; }
}

/* Version 6.3.5: normal-font multi-line Market Data availability copy. */
.market-data-table td:nth-child(2) .market-availability-copy {
  margin: 0;
  font-family: var(--sans);
  font-size: .86rem;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: normal;
  text-transform: none;
  white-space: normal;
  overflow-wrap: break-word;
}
@media (max-width: 1100px) {
  .market-data-table td:nth-child(2) .market-availability-copy {
    font-size: .80rem;
    line-height: 1.38;
  }
}

/* Version 6.3.6: Municipal Parallel Shift in the left sidebar */
.sidebar-muni-parallel-shift{display:grid;gap:.55rem;margin:.85rem 0;padding:.8rem;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:rgba(255,255,255,.04)}
.sidebar-muni-parallel-shift[hidden]{display:none!important}
.sidebar-muni-parallel-shift .eyebrow{margin:0}
.sidebar-muni-parallel-shift label{display:block;font-size:.74rem;font-weight:700}
.sidebar-muni-parallel-shift input{width:100%;min-width:0}
.sidebar-shift-actions{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}
.sidebar-shift-actions .button{width:100%;padding-left:.45rem;padding-right:.45rem}
.sidebar-muni-parallel-shift .microcopy{margin:0}


/* Version 6.3.7: Parallel Shift is its own Rate Setting Method panel. */
#municipal-sidebar-controls .parameter-header[hidden],
#municipal-sidebar-controls #parameter-controls[hidden],
#municipal-sidebar-controls .compact-actions[hidden]{display:none!important}

/* Version 6.3.8: explicit Market Data alignment fallback. */
.market-data-table th,
.market-data-table td,
.market-data-table .market-availability-copy { text-align:left; }

/* Version 6.4.0 UI polish release marker. */


/* Version 6.5.0: About link, issuer-purpose copy, and additional call analysis. */
.terminal-bar{position:relative}
.about-link{margin-left:auto;align-self:flex-start;color:#fff;text-decoration:none;font-weight:700;font-size:.9rem;padding:.45rem .75rem;border:1px solid rgba(255,255,255,.28);border-radius:6px;white-space:nowrap}
.about-link:hover,.about-link:focus{background:rgba(255,255,255,.12);text-decoration:underline}
.app-purpose-box{margin:0 0 1rem;padding:1rem 1.1rem;border-left:4px solid #2b6da6}
.app-purpose-box p{margin:0;font-size:1rem;line-height:1.55}
.rate-tree-shell{min-height:430px;overflow-x:auto;border:1px solid var(--border-color,#d6dde5);border-radius:8px;background:#fff;padding:.5rem}
.rate-tree-shell canvas{display:block;max-width:none}
.tree-toolbar,.tree-legend{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:.7rem 0}
.tree-legend{font-size:.82rem;color:var(--muted-text,#536779)}
.additional-analysis-link-card{margin-top:1rem}
@media(max-width:900px){.about-link{position:absolute;right:.75rem;top:.65rem}.app-purpose-box p{font-size:.93rem}}

/* Version 6.6.0: issuer OAS analysis. */
.oas-volatility-section { margin-top: 1rem; }


/* Version 6.6.2: visible About link and full-width Calculation Details. */
.about-link,
.about-link:visited {
  color: #17324d !important;
  background: #ffffff !important;
  border-color: #c9d5df !important;
  box-shadow: 0 1px 4px rgba(0,0,0,.12);
}
.about-link:hover,
.about-link:focus {
  color: #0b2238 !important;
  background: #eef5fb !important;
}
.tab-workspace > .calculation-details-panel {
  grid-area: content !important;
  width: 100%;
  min-width: 0;
  color: var(--text, #17212b);
}
.calculation-details-panel[hidden] { display: none !important; }
.calculation-details-panel:not([hidden]) { display: grid !important; }
.calculation-details-panel .details-accordion,
.calculation-details-panel .details-intro { color: #17212b; }


/* Version 6.7.1 readability and navigation corrections. */
.about-link, .about-link:visited {
  margin-left:auto; align-self:center; padding:0; border:0 !important; border-radius:0;
  background:transparent !important; box-shadow:none !important; color:#f7fbff !important;
  font-weight:650; font-size:.92rem; text-decoration:underline; text-underline-offset:3px;
}
.about-link:hover, .about-link:focus { background:transparent !important; color:#ffffff !important; text-decoration-thickness:2px; }
.terminal-bar .brand-content > .eyebrow { color:#eaf4ff !important; text-shadow:0 1px 1px rgba(0,0,0,.3); }
.basic-analytics-assumptions { margin:.7rem .85rem .15rem; text-align:center; color:var(--muted,#526579); font-size:.82rem; line-height:1.45; font-weight:600; }


/* Version 6.7.2: persistent About-link contrast and overlapping Price-Yield curve clarity. */
.terminal-bar .about-link,
.terminal-bar .about-link:visited {
  color:#ffd166 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  text-decoration:underline !important;
  text-underline-offset:3px;
}
.terminal-bar .about-link:hover,
.terminal-bar .about-link:focus {
  color:#ffe7a3 !important;
  background:transparent !important;
}
.price-yield-overlap-note {
  margin:.45rem .85rem .15rem;
  color:var(--muted,#526579);
  font-size:.8rem;
  line-height:1.4;
  text-align:center;
}
