:root { --settings-top: 72px; }
body { background: #f6f7f9; }
.navbar-brand { letter-spacing: .01em; }
.settings-card { top: var(--settings-top); max-height: calc(100vh - 88px); }
.settings-scroll { overflow-y: auto; }
.section-title { font-size: .88rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: #59636e; }
.form-label { font-size: .82rem; margin-bottom: .25rem; }
.form-check-label { font-size: .82rem; }
.table-wrap { max-height: 430px; overflow: auto; }
.output-table-wrap { max-height: 560px; overflow: auto; }
.data-table { font-size: .75rem; white-space: nowrap; margin-bottom: 0; }
.data-table thead th { position: sticky; top: 0; z-index: 2; background: var(--bs-body-bg); }
.plotly-chart { width: 100%; min-height: 360px; }
.chart-card { overflow: hidden; }
.htmx-indicator { display: none; }
.htmx-request .htmx-indicator, .htmx-request.htmx-indicator { display: block; }
.htmx-request #run-button { opacity: .65; pointer-events: none; }
code { font-size: .85em; }
@media (max-width: 1199.98px) {
  .settings-card { max-height: none; }
  .settings-scroll { overflow: visible; }
}
