:root {
    --app-nav-height: 64px;
    --sticky-header-offset: calc(var(--app-nav-height) + 1rem);
}
body { background: #eef3f9; color: #1f2937; }
.app-navbar { background: #0b7db6; min-height: var(--app-nav-height); }
.app-navbar .nav-link, .app-navbar .navbar-brand { color: #f8fafc; }
.build-badge { min-width: 5.5rem; }
.card { border: 0; border-radius: 1rem; }
.metric-card .metric-label { color: #64748b; font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; }
.metric-card .metric-value { font-size: 2rem; font-weight: 700; line-height: 1.1; }
.table td.step-detail, .text-prewrap { white-space: pre-wrap; word-break: break-word; }
.table-responsive { border-radius: 1rem; overflow: auto; max-height: calc(100vh - 14rem); }
.sticky-section-header, .sticky-page-header { position: sticky; top: var(--sticky-header-offset); z-index: 1010; background: #eef3f9; padding-top: .25rem; padding-bottom: .5rem; }
.sticky-table-wrap .sticky-table thead th,
.table-responsive .sticky-table thead th { position: sticky; top: 0; z-index: 5; background: #f8fbff; box-shadow: inset 0 -1px 0 #d9e2ec; cursor: pointer; }
.badge-soft { background: #dbeafe; color: #1d4ed8; }
.code-block-lite { max-height: 14rem; overflow: auto; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: .75rem; padding: .75rem; }
.list-filter { max-width: 28rem; }
.table thead th[data-sort]::after { content: ' ↕'; color: #94a3b8; font-weight: 400; }
.group-card { background: linear-gradient(180deg, rgba(11,125,182,.08), rgba(11,125,182,.02)); }
.run-pill { font-size: .8rem; }
.section-subtle { color: #64748b; }

.lens-progress { height: 1.25rem; background: #dbeafe; }
.lens-progress .progress-bar { background: #0b7db6; font-weight: 600; }
