:root {
  --rbi-navy: #14283d;
  --rbi-blue: #1769aa;
  --rbi-surface: #f4f7fa;
  --rbi-border: #dce4eb;
}

html { min-height: 100%; }
body { min-height: 100vh; background: var(--rbi-surface); color: #182431; }
.app-navbar { background: var(--rbi-navy); box-shadow: 0 2px 10px rgb(20 40 61 / 18%); }
.app-brand { color: #fff; line-height: 1.05; text-decoration: none; }
.app-brand:hover { color: #fff; }
.app-brand-main { display: block; font-size: 1rem; font-weight: 750; letter-spacing: .015em; }
.app-brand-sub { display: block; color: #bcd2e5; font-size: .7rem; letter-spacing: .09em; text-transform: uppercase; }
.workspace-shell { max-width: 96rem; margin-inline: auto; }
.context-label { margin-bottom: .2rem; color: #647486; font-size: .72rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.metric-card, .module-card { border-color: var(--rbi-border); }
.metric-value { color: var(--rbi-navy); font-size: 1.65rem; font-weight: 750; }
.module-card { transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease; }
.module-card:hover { border-color: #9fc1dc; box-shadow: 0 .75rem 1.75rem rgb(20 40 61 / 10%); transform: translateY(-2px); }
.data-table thead th { position: sticky; top: 0; z-index: 1; background: #edf2f6; color: #526273; font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.data-table td, .data-table th { padding: .7rem .85rem; vertical-align: middle; }
.data-table a { font-weight: 600; text-decoration: none; }
.search-panel { border: 0; box-shadow: 0 .25rem 1rem rgb(20 40 61 / 7%); }
.code-pill { display: inline-block; border-radius: .35rem; background: #e8f1f8; color: #164e78; font-family: var(--bs-font-monospace); font-size: .82rem; padding: .12rem .4rem; }
.login-shell { display: grid; min-height: calc(100vh - 3rem); place-items: center; }
.login-card { width: min(100%, 29rem); }
.empty-state { padding: 3rem 1rem; text-align: center; color: #647486; }
.pagination { margin-bottom: 0; }
@media (max-width: 767.98px) {
  .table-responsive { max-height: none !important; }
  .metric-value { font-size: 1.35rem; }
}

