/* ═══════════════════════════════════════════════════════════════
   BCA Tool – Application Styles v3
   USWDS tokens · Radzen Material · Material Symbols Outlined
   ═══════════════════════════════════════════════════════════════ */

/* ── Tokens ─────────────────────────────────────────────────── */
:root {
  --nav-w:       240px;
  --lc-h:        56px;   /* lifecycle bar height */

  /* USWDS blue family */
  --c-blue-90:   #0d2b52;
  --c-blue-80:   #112f4e;
  --c-blue-70:   #1a4480;
  --c-blue-60:   #1a4480;
  --c-blue-50:   #005ea2;
  --c-blue-40:   #0076d6;
  --c-blue-10:   #d9e8f6;
  --c-blue-5:    #eff6fb;

  --primary:     #005ea2;
  --primary-dk:  #1a4480;
  --accent:      #0076d6;
  --success:     #00a91c;
  --warning:     #ffbe2e;
  --error:       #e52207;
  --info:        #00bde3;

  --surface:     #ffffff;
  --surface-2:   #f0f0f0;
  --surface-3:   #e8e8e8;
  --border:      #c9c9c9;
  --border-lt:   #dfe1e2;
  --text:        #1b1b1b;
  --text-2:      #3d4551;
  --text-muted:  #71767a;

  --nav-bg:      var(--c-blue-70);
  --nav-text:    #ffffff;
  --nav-muted:   rgba(255,255,255,.58);
  --nav-hover:   rgba(255,255,255,.09);
  --nav-active:  rgba(255,255,255,.16);
  --nav-accent:  #4fceff;

  --radius-sm:   4px;
  --radius:      6px;
  --radius-lg:   10px;
  --shadow-1:    0 1px 2px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.06);
  --shadow-2:    0 2px 6px rgba(0,0,0,.10),0 4px 12px rgba(0,0,0,.07);
  --shadow-3:    0 8px 24px rgba(0,0,0,.14);

  font-family: 'Public Sans', 'Source Sans Pro', system-ui, -apple-system, sans-serif;
}

/* ── Reset ──────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 70px; }
html, body { height:100%; margin:0; padding:0; color:var(--text); background:var(--surface-2); }

/* ── Material Symbols ───────────────────────────────────────── */
.mi {
  font-family: 'Material Symbols Outlined';
  font-weight: normal; font-style: normal;
  font-size: 20px; line-height: 1;
  letter-spacing: normal; text-transform: none;
  display: inline-block; white-space: nowrap;
  word-wrap: normal; direction: ltr;
  -webkit-font-feature-settings: 'liga';
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
  vertical-align: middle;
  user-select: none;
  flex-shrink: 0;
}
.mi-sm  { font-size:16px; }
.mi-lg  { font-size:24px; }
.mi-xl  { font-size:32px; }
.mi-2xl { font-size:48px; }

/* ═══════ APP SHELL (legacy kept for compat) ════════════════ */
.app-shell { display:flex; min-height:100vh; }

/* ─── Left Nav – hidden (replaced by top app bar) ───────────── */
.app-nav { display: none; }

.app-nav__brand {
  padding: .875rem 1rem;
  display: flex;
  align-items: center;
  gap: .625rem;
  border-bottom: 1px solid rgba(255,255,255,.12);
  min-height: 64px;
  flex-shrink: 0;
  text-decoration: none;
  color: inherit;
}
.app-nav__brand:hover { background: rgba(255,255,255,.06); }

.app-nav__brand-icon {
  width: 36px; height: 36px;
  background: rgba(255,255,255,.15);
  border-radius: var(--radius);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  border: 1px solid rgba(255,255,255,.2);
}

.app-nav__brand-text { min-width:0; }
.app-nav__brand-name {
  font-size: .9rem; font-weight:700;
  display:block; line-height:1.2;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.app-nav__brand-sub {
  font-size:.64rem; color:var(--nav-muted);
  display:block; line-height:1.3; margin-top:.1rem;
  letter-spacing:.02em;
}

.app-nav__body   { flex:1; padding:.375rem 0; overflow-y:auto; }
.app-nav__footer { padding:.25rem 0; border-top:1px solid rgba(255,255,255,.12); flex-shrink:0; }
.app-nav__divider{ height:1px; background:rgba(255,255,255,.1); margin:.375rem .75rem; }

.app-nav__section {
  font-size:.6rem; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--nav-muted);
  padding:.75rem 1rem .25rem;
  display: flex; align-items: center; gap: .4rem;
}

.app-nav__items  { list-style:none; margin:0; padding:0; }

.app-nav__link {
  display: flex; align-items: center; gap:.55rem;
  padding: .5rem 1rem;
  color: rgba(255,255,255,.82);
  text-decoration: none;
  font-size: .82rem; font-weight:400;
  border-left: 2px solid transparent;
  transition: background .12s, color .12s;
  cursor: pointer;
  background: transparent; border-top:none; border-right:none; border-bottom:none;
  text-align:left; width:100%; font-family:inherit;
}
.app-nav__link:hover { background:var(--nav-hover); color:#fff; }
.app-nav__link--active {
  background: var(--nav-active); color:#fff;
  font-weight:600; border-left-color:var(--nav-accent);
}
.app-nav__link--indent { padding-left:2.5rem; font-size:.8rem; }

.app-nav__project {
  margin:.375rem .625rem;
  background:rgba(255,255,255,.09);
  border-radius:var(--radius-sm);
  padding:.5rem .75rem;
  border:1px solid rgba(255,255,255,.14);
}
.app-nav__project-label {
  font-size:.58rem; text-transform:uppercase; letter-spacing:.1em;
  color:var(--nav-muted); display:block; margin-bottom:.15rem;
}
.app-nav__project-name {
  font-size:.78rem; font-weight:600;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; color:#fff;
}

.app-nav__user {
  display:flex; align-items:center; gap:.5rem;
  padding:.4rem 1rem;
  font-size:.78rem; color:var(--nav-muted);
}

/* ─── Main ──────────────────────────────────────────────────── */
.app-main {
  margin-left: 0;
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:100vh;
  min-width:0;
}

.app-content { flex:1; padding:1.25rem 1.5rem; }

/* ─── Full-width page content (new layout) ──────────────────── */
.bca-content {
  flex: 1;
  padding: 1.25rem 1.75rem;
  max-width: 100%;
  min-height: calc(100vh - 120px);
  background: var(--surface-2);
}

.bca-content--flush {
  padding: 0;
}

@media (max-width: 768px) {
  .bca-content { padding: 1rem; }
}

/* ══ Modern App Bar ═════════════════════════════════════════════ */
.bca-appbar {
  background: linear-gradient(90deg, var(--c-blue-80) 0%, var(--c-blue-70) 100%);
  color: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,.18);
  position: sticky;
  top: 0;
  z-index: 300;
}

.bca-appbar__inner {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .5rem 1.5rem;
  min-height: 56px;
  flex-wrap: nowrap;
}

/* Brand */
.bca-appbar__brand {
  display: flex;
  align-items: center;
  gap: .5rem;
  text-decoration: none;
  color: #fff;
  flex-shrink: 0;
  margin-right: .25rem;
}
.bca-appbar__brand:hover { opacity: .9; }

.bca-appbar__brand-icon {
  width: 36px; height: 36px;
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: var(--radius);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.bca-appbar__brand-name {
  font-size: .95rem; font-weight: 800;
  line-height: 1.15; display: block; white-space: nowrap;
  letter-spacing: -.01em;
}
.bca-appbar__brand-sub {
  font-size: .58rem; color: rgba(255,255,255,.65);
  display: block; white-space: nowrap; letter-spacing: .04em;
}

/* Nav links */
.bca-appbar__nav {
  display: flex;
  align-items: center;
  gap: .125rem;
  flex: 1;
  overflow-x: auto;
  scrollbar-width: none;
}
.bca-appbar__nav::-webkit-scrollbar { display: none; }

.bca-appbar__navlink {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .4rem .65rem;
  border-radius: var(--radius-sm);
  font-size: .8rem; font-weight: 500;
  color: rgba(255,255,255,.82);
  text-decoration: none;
  white-space: nowrap;
  transition: background .12s, color .12s;
  border-bottom: 2px solid transparent;
}
.bca-appbar__navlink:hover {
  background: rgba(255,255,255,.1);
  color: #fff;
}
.bca-appbar__navlink--active {
  background: rgba(255,255,255,.15);
  color: #fff;
  font-weight: 700;
  border-bottom-color: #4fceff;
}

.bca-appbar__divider {
  width: 1px; height: 20px;
  background: rgba(255,255,255,.2);
  margin: 0 .25rem;
  flex-shrink: 0;
}

/* Right side */
.bca-appbar__right {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-left: auto;
}

/* User menu */
.bca-appbar__usermenu { position: relative; }

.bca-appbar__userbtn {
  display: flex; align-items: center; gap: .35rem;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: var(--radius);
  color: #fff; cursor: pointer; padding: .35rem .75rem;
  font-size: .8rem; font-weight: 500; font-family: inherit;
  transition: background .12s;
  white-space: nowrap;
}
.bca-appbar__userbtn:hover { background: rgba(255,255,255,.2); }

.bca-appbar__username { max-width: 140px; overflow: hidden; text-overflow: ellipsis; }

.bca-appbar__roletag {
  font-size: .6rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .05em;
  padding: .12em .45em; border-radius: 99px;
  border: 1px solid rgba(255,255,255,.3);
  background: rgba(255,255,255,.14);
  color: rgba(255,255,255,.9);
}
.bca-appbar__roletag--submitter { background: rgba(23,130,95,.24); border-color: rgba(23,130,95,.38); }
.bca-appbar__roletag--reviewer  { background: rgba(0,189,227,.25); border-color: rgba(0,189,227,.4); }
.bca-appbar__roletag--admin     { background: rgba(229,34,7,.2);   border-color: rgba(229,34,7,.35); }

/* Dropdown */
.bca-appbar__userdrop {
  position: absolute; top: calc(100% + .5rem); right: 0;
  min-width: 200px;
  background: #fff; color: var(--text);
  border: 1px solid var(--border-lt);
  border-radius: var(--radius);
  box-shadow: var(--shadow-3);
  z-index: 9999;
  overflow: hidden;
}

.bca-appbar__userdrop-header {
  display: flex; align-items: center; gap: .5rem;
  padding: .75rem 1rem;
  background: #f5f7fb;
  border-bottom: 1px solid var(--border-lt);
}

.bca-appbar__userdrop-divider {
  height: 1px; background: var(--border-lt); margin: .15rem 0;
}

.bca-appbar__userdrop-item {
  display: flex; align-items: center; gap: .5rem;
  padding: .5rem 1rem;
  font-size: .82rem; color: var(--text); text-decoration: none;
  cursor: pointer; transition: background .1s;
  background: transparent; border: none; width: 100%;
  text-align: left; font-family: inherit;
}
.bca-appbar__userdrop-item:hover { background: #f0f5ff; }
.bca-appbar__userdrop-item--danger { color: var(--error); }
.bca-appbar__userdrop-item--danger:hover { background: #fde8e6; }

/* Context bar */
.bca-ctxbar {
  background: #f5f7fb;
  border-top: 1px solid rgba(255,255,255,.1);
  border-bottom: 1px solid var(--border-lt);
}
.bca-ctxbar__inner {
  display: flex; align-items: center; gap: .5rem;
  padding: .35rem 1.5rem;
  flex-wrap: wrap;
  font-size: .78rem;
}
.bca-ctxbar__actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.bca-ctxbar__label { font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; font-size: .65rem; }
.bca-ctxbar__name  { font-weight: 600; color: var(--text); max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bca-ctxbar__sep   { color: var(--border); }

@media (max-width: 960px) {
  .bca-appbar__brand-sub { display: none; }
  .bca-appbar__navlink span:not(.mi) { display: none; }
  .bca-appbar__navlink { padding: .4rem .5rem; }
  .bca-appbar__username { display: none; }
}

/* Reviewer dashboard specifics */
.review-queue-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1rem; flex-wrap: wrap; gap: .5rem;
}
.review-decision-card {
  background: var(--surface); border: 1px solid var(--border-lt);
  border-radius: var(--radius); padding: 1.25rem 1.5rem;
  box-shadow: var(--shadow-1); margin-bottom: 1rem;
}
.review-decision-card__name {
  font-size: 1.1rem; font-weight: 700; margin: 0 0 .25rem;
  display: flex; align-items: center; gap: .4rem;
}
.review-decision-card__meta {
  font-size: .78rem; color: var(--text-muted); margin: 0 0 1rem;
  display: flex; align-items: center; gap: .75rem; flex-wrap: wrap;
}
.review-decision-actions {
  display: flex; gap: .75rem; margin-top: 1rem; flex-wrap: wrap;
}

/* Project preview card */
.preview-section {
  background: var(--surface); border: 1px solid var(--border-lt);
  border-radius: var(--radius); padding: 1.25rem 1.5rem;
  box-shadow: var(--shadow-1); margin-bottom: 1rem;
}
.preview-section__title {
  font-size: .72rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .08em; color: var(--text-muted);
  margin: 0 0 .75rem; padding-bottom: .4rem;
  border-bottom: 1px solid var(--border-lt);
  display: flex; align-items: center; gap: .35rem;
}
.preview-kv { display: flex; gap: .5rem; margin-bottom: .35rem; flex-wrap: wrap; }
.preview-kv__key { font-size: .78rem; font-weight: 600; color: var(--text-2); min-width: 160px; }
.preview-kv__val { font-size: .82rem; color: var(--text); }

/* ─── Lifecycle Strip ───────────────────────────────────────── */
.lifecycle-strip {
  background: var(--surface);
  border-bottom:1px solid var(--border-lt);
  padding:0 1.5rem;
  height:var(--lc-h);
  display:flex;
  align-items:center;
  position:sticky; top:0; z-index:100;
  box-shadow: 0 1px 0 var(--border-lt);
}

.lifecycle-steps {
  display:flex; align-items:center; gap:0;
  list-style:none; margin:0; padding:0;
  overflow-x:auto; white-space:nowrap;
}

.lifecycle-step { display:flex; align-items:center; font-size:.76rem; }

.lifecycle-step__link {
  display:flex; align-items:center; gap:.3rem;
  padding:.3rem .625rem;
  border-radius:var(--radius-sm);
  color:var(--text-muted); text-decoration:none;
  font-weight:500; transition:background .12s;
  line-height:1;
}
.lifecycle-step__link:hover { background:#eef2f8; color:var(--primary); }
.lifecycle-step--complete .lifecycle-step__link { color:var(--success); }
.lifecycle-step--current  .lifecycle-step__link {
  color:var(--primary); font-weight:700; background:#e8f0fe;
}
.lifecycle-step__arrow { color:var(--border); padding:0 .15rem; font-size:.65rem; }

/* ═══════ LOGIN ═════════════════════════════════════════════ */
.login-shell {
  min-height:100vh;
  background:linear-gradient(145deg,#0d2b52 0%,#005ea2 60%,#0076d6 100%);
  display:flex; align-items:center; justify-content:center; padding:1.5rem;
}

.login-card {
  background:var(--surface);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-3);
  padding:2.25rem 2rem;
  width:100%; max-width:400px;
}

.login-card__logo {
  display:flex; flex-direction:column; align-items:center; gap:.5rem;
  margin-bottom:1.5rem;
}

.login-card__logo-badge {
  width:52px; height:52px;
  background:var(--primary);
  border-radius:var(--radius-lg);
  display:flex; align-items:center; justify-content:center;
  color:#fff;
}

.login-card__title {
  font-size:1.25rem; font-weight:700; text-align:center;
  color:var(--text); margin:0 0 .25rem;
}
.login-card__sub {
  text-align:center; font-size:.8rem; color:var(--text-muted); margin:0 0 1.25rem;
}

/* ═══════ DASHBOARD ══════════════════════════════════════════ */
.dash-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
  gap: .75rem;
}

.dash-stats {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:.75rem;
  margin-bottom:1rem;
}

.dash-stat-card {
  background:var(--surface);
  border:1px solid var(--border-lt);
  border-radius:var(--radius);
  padding:.875rem 1rem;
  box-shadow:var(--shadow-1);
  display:flex; flex-direction:column; gap:.25rem;
}

.dash-stat-card__value {
  font-size:1.9rem; font-weight:700;
  color:var(--primary); line-height:1;
}
.dash-stat-card__label {
  font-size:.7rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.07em; color:var(--text-muted);
}

/* ═══════ CARDS ══════════════════════════════════════════════ */
.page-card {
  background:var(--surface);
  border:1px solid var(--border-lt);
  border-radius:var(--radius);
  box-shadow:var(--shadow-1);
  overflow:visible; margin-bottom:.875rem;
  /* border-radius clipping for page-card children */
  isolation:isolate;
}

.page-card__header {
  padding:.625rem 1rem;
  border-bottom:1px solid var(--border-lt);
  display:flex; align-items:center; justify-content:space-between;
  background:#fafbfc;
  gap:.5rem;
  border-radius:var(--radius) var(--radius) 0 0;
}

.page-card__title {
  font-size:.8rem; font-weight:700; margin:0;
  color:var(--text-2); text-transform:uppercase; letter-spacing:.05em;
  display:flex; align-items:center; gap:.375rem;
}

.page-card__body { padding:1rem; }

/* ═══════ WORKSPACE ══════════════════════════════════════════ */
.workspace-layout { display:flex; flex-direction:column; gap:.25rem; }

.workspace-project-context {
  margin-top:.45rem;
  display:flex;
  align-items:center;
  gap:.4rem;
  flex-wrap:wrap;
  font-size:.82rem;
}
.workspace-project-context__label {
  font-weight:700;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:.68rem;
}
.workspace-project-context__name {
  font-weight:600;
  color:var(--text);
}
.workspace-project-note {
  margin-top:.75rem;
  display:flex;
  align-items:flex-start;
  gap:.35rem;
  font-size:.78rem;
  color:var(--error);
}

.workspace-main { min-width:0; }

/* ── Workspace tab card — no double border ── */
.ws-card {
  background: var(--surface);
  border: 1px solid var(--border-lt);
  border-radius: var(--radius);
  box-shadow: var(--shadow-1);
  margin-bottom: .25rem;
  overflow: visible;
}
/* Strip RadzenTabs own border/shadow so only ws-card border shows */
.ws-card .rz-tabview {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
}
.ws-card .rz-tabview-nav-container {
  background: #fafbfc;
  border-bottom: 1px solid var(--border-lt);
  border-radius: var(--radius) var(--radius) 0 0;
  padding: 0 .75rem;
  overflow: visible;
}
/* Fix: Radzen applies overflow:auto and flex:1 to panels which clips content */
.ws-card .rz-tabview-panels {
  padding: 0;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  overflow: visible !important;
  flex: none !important;
}
.ws-card .rz-tabview-panel  { padding: 0 !important; }

/* ── Inline editable tables (replaces RadzenDataGrid for row-edit) ── */
.ws-table-wrap {
  border: 1px solid var(--border-lt);
  border-radius: var(--radius-sm);
  overflow: auto;
  margin-bottom: .75rem;
}
.ws-table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  font-size: .825rem;
  background: var(--surface);
}
.ws-table thead tr { background: #f5f5f5; }
.ws-table thead th {
  padding: .4rem .6rem;
  font-size: .68rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .05em;
  color: var(--text-muted);
  border-bottom: 2px solid var(--border);
  text-align: left; white-space: nowrap;
}
.ws-table tbody tr { border-bottom: 1px solid #f0f0f0; }
.ws-table tbody tr:last-child { border-bottom: none; }
.ws-table tbody tr:hover { background: #f7f9ff; }
.ws-table tbody td { padding: .25rem .4rem; vertical-align: middle; }
.ws-input {
  width: 100%; border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: .25rem .4rem;
  font-size: .82rem; font-family: inherit;
  background: #fff; outline: none; box-sizing: border-box;
}
.ws-input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 2px rgba(0,94,162,.15);
}
.ws-select {
  width: 100%; border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: .25rem .4rem;
  font-size: .82rem; font-family: inherit;
  background: #fff; box-sizing: border-box;
}

/* Bridge selector top bar */
.workspace-shell-card .page-card__body {
  padding:.5rem .75rem;
}
.workspace-shell-card__divider {
  margin:.95rem 0 .85rem;
  border-top:1px solid var(--border-lt);
}
.bridge-selector-bar {
  background:var(--surface);
  border:1px solid var(--border-lt);
  border-radius:var(--radius);
  padding:.5rem .875rem;
  display:flex; align-items:flex-start; justify-content:flex-start;
  box-shadow:var(--shadow-1);
  gap:.75rem; flex-wrap:wrap;
}
.bridge-selector-bar--embedded {
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  padding:0;
}
.bridge-selector-bar__left {
  display:flex; align-items:flex-start; gap:.625rem; flex-wrap:wrap; flex:0 1 auto; min-width:0;
}
.bridge-selector-bar__actions {
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  gap:.375rem;
  flex-wrap:wrap;
}
.bridge-selector-bar__actions .btn--sm {
  min-height:32px;
  align-items:center;
}
.bridge-selector-bar__action-group {
  display:flex;
  align-items:flex-start;
  gap:.375rem;
  flex-wrap:wrap;
}
.bridge-selector-bar__action-group + .bridge-selector-bar__action-group {
  padding-left:.5rem;
  margin-left:.125rem;
  border-left:1px solid var(--border-lt);
}
.bridge-selector-bar__label {
  font-size:.7rem; font-weight:700; text-transform:uppercase;
  letter-spacing:.07em; color:var(--text-muted); white-space:nowrap;
}
.bridge-selector-bar__switcher {
  min-width:260px;
  max-width:420px;
}
.bridge-selector-bar__switcher.rz-dropdown,
.bridge-selector-bar__switcher .rz-dropdown-label,
.bridge-selector-bar__switcher .rz-dropdown-trigger {
  min-height:32px;
  display:flex;
  align-items:center;
}
.bridge-selector-bar__switcher .rz-dropdown-label,
.bridge-selector-bar__switcher .rz-dropdown-trigger,
.bridge-selector-bar__switcher .rz-inputtext {
  font-weight:700;
}
.bridge-selector-bar__empty {
  font-size:.8rem; color:var(--text-muted); font-style:italic;
}
.bridge-selector-bar__badge {
  font-size:.7rem; display:inline-flex; align-items:center; gap:.2rem;
  padding:.15em .5em; border-radius:var(--radius-sm);
}
.bridge-selector-bar__badge--sensitivity { background:#f0e8ff; color:#5a3e8b; }

.bridge-list-card {
  background:var(--surface);
  border:1px solid var(--border-lt);
  border-radius:var(--radius);
  box-shadow:var(--shadow-1);
  overflow:hidden;
  display:flex; flex-direction:column;
  height:100%;
}

.bridge-list-header {
  padding:.5rem .75rem;
  background:#f5f5f5;
  border-bottom:1px solid var(--border-lt);
  display:flex; align-items:center; justify-content:space-between;
  flex-shrink:0;
  gap:.25rem;
}
.bridge-list-title {
  font-size:.7rem; font-weight:700; margin:0;
  text-transform:uppercase; letter-spacing:.07em; color:var(--text-muted);
  display:flex; align-items:center; gap:.35rem;
}

.bridge-list-body { flex:1; overflow-y:auto; }

.bridge-item {
  padding:.45rem .75rem;
  cursor:pointer;
  border-bottom:1px solid #f0f0f0;
  display:flex; align-items:center; gap:.35rem;
  font-size:.8rem;
  transition:background .1s;
  border-left:2px solid transparent;
}
.bridge-item:hover { background:#f0f5ff; }
.bridge-item--active {
  background:#e8f0fe; font-weight:600; color:var(--primary);
  border-left-color:var(--primary);
}
.bridge-item__name {
  flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.bridge-item__tag {
  font-size:.6rem; border-radius:3px; padding:.1em .4em; flex-shrink:0;
}
.bridge-item__tag--sensitivity { background:#f0e8ff; color:#5a3e8b; }

.bridge-list-empty {
  padding:1.25rem .875rem; text-align:center; color:var(--text-muted); font-size:.8rem;
}

/* ─── Bridge Header Bar ─── */
.bridge-header {
  background:var(--surface); border:1px solid var(--border-lt);
  border-radius:var(--radius); padding:.625rem 1rem;
  margin-bottom:.875rem;
  display:flex; align-items:center; justify-content:space-between;
  box-shadow:var(--shadow-1); flex-wrap:wrap; gap:.5rem;
}
.bridge-header--embedded {
  background:transparent;
  border:0;
  border-top:1px solid var(--border-lt);
  border-radius:0;
  box-shadow:none;
  padding:.4rem 0 0;
  margin:.3rem 0 0;
}
.bridge-header--embedded > div {
  display:flex;
  flex-direction:column;
  align-items:center;
  width:100%;
}
.bridge-header__name {
  font-size:1rem; font-weight:700; margin:0;
  display:flex; align-items:center; gap:.375rem;
}
.workspace-calc-summary {
  margin-top:.3rem;
  display:flex;
  flex-direction:column;
  gap:.35rem;
  align-items:center;
  width:100%;
}
.workspace-calc-summary__header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-direction:row;
  gap:.75rem;
  flex-wrap:wrap;
  text-align:left;
  width:100%;
}
.workspace-calc-summary__title {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  font-size:.72rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--text-muted);
}
.workspace-calc-summary__title-group {
  display:flex;
  align-items:center;
  gap:.65rem;
  flex-wrap:wrap;
}
.workspace-calc-summary__badges {
  display:flex;
  align-items:center;
  gap:.45rem;
  flex-wrap:wrap;
}
.workspace-calc-summary__controls {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.65rem;
  margin-left:auto;
}
.workspace-calc-summary__auto-switch {
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  font-size:.72rem;
  font-weight:700;
  color:var(--text-2);
  white-space:nowrap;
}
.workspace-calc-summary__auto-switch input {
  width:2.4rem;
  height:1.25rem;
  accent-color:var(--primary);
}
.workspace-calc-summary__status,
.workspace-calc-summary__empty {
  font-size:.78rem;
  color:var(--text-muted);
  text-align:center;
}
.workspace-calc-summary__grid {
  display:inline-grid;
  grid-template-columns:repeat(4, minmax(170px, 210px));
  gap:.6rem;
  width:fit-content;
  max-width:100%;
  justify-content:center;
  margin:0 auto;
}
.workspace-calc-summary__card {
  background:var(--surface);
  border:1px solid var(--border-lt);
  border-radius:var(--radius-sm);
  padding:.6rem .7rem;
  box-shadow:var(--shadow-1);
  min-width:0;
  text-align:center;
}
.workspace-calc-summary__card--primary {
  border-color:var(--primary);
  background:#e8f0fe;
}
.workspace-calc-summary__label {
  font-size:.68rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--text-muted);
  text-align:center;
}
.workspace-calc-summary__value {
  margin-top:.25rem;
  font-size:1.05rem;
  font-weight:800;
  color:var(--primary-dk);
  line-height:1.1;
}

/* ─── Tab Container ─── */
.tab-section { padding:.875rem 0 .25rem; }
.form-section-title {
  font-size:.68rem; font-weight:700; text-transform:uppercase;
  letter-spacing:.08em; color:var(--text-muted);
  margin:0 0 .625rem; padding-bottom:.3rem;
  border-bottom:1px solid var(--border-lt);
  display:flex; align-items:center; gap:.35rem;
}

/* ─── NBI Lookup ─── */
.nbi-lookup-banner {
  background:linear-gradient(135deg,#e8f0fe,#d6e4f9);
  border:1px solid #b0cdf7;
  border-radius:var(--radius); padding:.75rem .875rem;
  margin-bottom:1rem; display:flex; align-items:flex-start; gap:.625rem;
}
.nbi-lookup-banner__title {
  font-size:.82rem; font-weight:700; color:var(--primary-dk); margin:0 0 .15rem;
  display:flex; align-items:center; gap:.35rem;
}
.nbi-lookup-banner__sub { font-size:.76rem; color:#4a6fa5; margin:0; }
.nbi-lookup-banner__icon {
  display:flex; align-items:center; justify-content:center;
  font-size:1.5rem; flex-shrink:0;
}

.nbi-prefill-badge {
  display:inline-flex; align-items:center; gap:.25rem;
  font-size:.7rem; background:#d4edda; color:#0d6b24;
  border-radius:99px; padding:.2em .6em; margin-bottom:.625rem; font-weight:600;
}

/* ═══════ FORMS ══════════════════════════════════════════════ */
.form-row { display:grid; gap:.5rem; margin-bottom:.5rem; }
.form-row--2 { grid-template-columns:1fr 1fr; }
.form-row--3 { grid-template-columns:1fr 1fr 1fr; }
.form-row--4 { grid-template-columns:1fr 1fr 1fr 1fr; }
.form-row--4c { grid-template-columns:repeat(4,minmax(0,1fr)); gap:.4rem; margin-bottom:.4rem; }

.form-field { display:flex; flex-direction:column; gap:.15rem; }

.form-label {
  font-size:.67rem; font-weight:600; color:var(--text-2);
  text-transform:uppercase; letter-spacing:.04em;
  display:flex; align-items:center; gap:.2rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.form-label--required::after { content:' *'; color:var(--error); }
.form-hint { font-size:.67rem; color:var(--text-muted); line-height:1.3; }

/* Tab inputs panel show/hide */
.tab-inputs--hidden { display:none !important; }
.inp-toggle { padding:.25rem .5rem !important; font-size:.72rem !important; gap:.2rem !important; }
.inp-toggle .mi { font-size:.9rem !important; }

/* Rollup cards in Calculations tab */
.rollup-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:.5rem; margin-bottom:.75rem; }
.rollup-card { background:var(--surface-alt); border:1px solid var(--border-lt); border-radius:6px; padding:.5rem .625rem; }
.rollup-card__title { font-size:.67rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--primary); margin-bottom:.3rem; border-bottom:1px solid var(--border-lt); padding-bottom:.2rem; }
.rollup-card__row { display:flex; justify-content:space-between; align-items:baseline; font-size:.73rem; padding:.075rem 0; gap:.35rem; overflow:hidden; }
.rollup-card__row span { color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rollup-card__row strong { text-align:right; flex-shrink:0; }

/* Benefits cascade waterfall */
.benefits-cascade { border:1px solid var(--border); border-radius:6px; overflow:hidden; margin-bottom:.75rem; }
.cascade-row { display:flex; justify-content:space-between; align-items:center; padding:.3rem .75rem; border-bottom:1px solid var(--border-lt); font-size:.8rem; gap:.5rem; }
.cascade-row:last-child { border-bottom:none; }
.cascade-row__label { color:var(--text-muted); }
.cascade-row__val { font-weight:600; }
.cascade-row--subtotal { background:#f5f7fa; font-weight:600; }
.cascade-row--total { background:#edf2fb; font-weight:700; font-size:.85rem; }
.cascade-row--npv { background:#edf2fb; font-weight:700; }
.cascade-row--bcr { background:#f0fdf4; font-weight:700; font-size:.88rem; }
.cascade-row--neg .cascade-row__val { color:var(--error); }
.cascade-row--pos .cascade-row__val { color:#1a7340; }
/* cascade-table: keep special row backgrounds on hover */
.ws-table tfoot tr.cascade-row--total td,
.ws-table tfoot tr.cascade-row--subtotal td,
.ws-table tfoot tr.cascade-row--npv td,
.ws-table tfoot tr.cascade-row--bcr td { background:inherit; }
.ws-table tfoot tr.cascade-row--total:hover,
.ws-table tfoot tr.cascade-row--subtotal:hover,
.ws-table tfoot tr.cascade-row--npv:hover,
.ws-table tfoot tr.cascade-row--bcr:hover { background:revert; }

/* ═══════ KPI CARDS ══════════════════════════════════════════ */
.kpi-row { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:.75rem; margin-bottom:1rem; }

.kpi-card {
  background:var(--surface); border:1px solid var(--border-lt);
  border-radius:var(--radius); padding:.875rem 1rem;
  box-shadow:var(--shadow-1);
}
.kpi-card--primary { border-color:var(--primary); background:#e8f0fe; }
.kpi-card__label {
  font-size:.68rem; font-weight:700; text-transform:uppercase;
  letter-spacing:.07em; color:var(--text-muted); margin-bottom:.3rem;
  display:flex; align-items:center; gap:.3rem;
}
.kpi-card__value { font-size:1.8rem; font-weight:700; color:var(--primary); line-height:1.1; }
.kpi-card--primary .kpi-card__value { font-size:2.25rem; }
.kpi-card__sub { font-size:.72rem; color:var(--text-muted); margin-top:.25rem; }

/* ═══════ TAGS ═══════════════════════════════════════════════ */
.tag {
  display:inline-flex; align-items:center; gap:.2em;
  font-size:.68rem; font-weight:600;
  padding:.18em .55em; border-radius:99px;
  text-transform:uppercase; letter-spacing:.04em;
}
.tag--success { background:#d4edda; color:#00521b; }
.tag--warning { background:#fff3cd; color:#7d5200; }
.tag--error   { background:#fde8e6; color:#8c1c0a; }
.tag--info    { background:#e8f0fe; color:#1a4480; }
.tag--neutral { background:#f0f0f0; color:#565c65; }
.tag--purple  { background:#f0e8ff; color:#5a3e8b; }

/* backward compat */
.usa-tag--green  { background:#00a91c; color:#fff; border-radius:4px; font-size:.68rem; font-weight:600; padding:.18em .5em; }
.usa-tag--red    { background:#e52207; color:#fff; border-radius:4px; font-size:.68rem; font-weight:600; padding:.18em .5em; }
.text-green { color:var(--success); font-weight:600; }
.text-red   { color:var(--error);   font-weight:600; }

/* ═══════ BUTTONS ════════════════════════════════════════════ */
.btn {
  display:inline-flex; align-items:center; gap:.3rem;
  font-size:.825rem; font-weight:600;
  padding:.4rem .875rem;
  border-radius:var(--radius-sm); border:none;
  cursor:pointer; transition:background .12s,box-shadow .12s;
  text-decoration:none; line-height:1; white-space:nowrap;
  font-family:inherit;
}
.btn:disabled { opacity:.5; cursor:not-allowed; }
.btn--primary  { background:var(--primary); color:#fff; }
.btn--primary:hover:not(:disabled)   { background:var(--primary-dk); color:#fff; box-shadow:var(--shadow-2); }
.btn--secondary { background:#fff; color:var(--primary); border:1.5px solid var(--primary); }
.btn--secondary:hover:not(:disabled) { background:#e8f0fe; }
.btn--success  { background:var(--success); color:#fff; }
.btn--success:hover:not(:disabled)   { background:#007f15; }
.btn--danger   { background:transparent; color:var(--error); border:1px solid var(--error); }
.btn--danger:hover:not(:disabled)    { background:#fde8e6; }
.btn--ghost    { background:transparent; color:var(--text-muted); border:1px solid var(--border); }
.btn--ghost:hover:not(:disabled)     { background:var(--surface-3); color:var(--text); }
.btn--sm  { padding:.28rem .6rem; font-size:.76rem; }
.btn--lg  { padding:.6rem 1.25rem; font-size:.95rem; }
.btn--icon { padding:.4rem; border-radius:50%; }

/* ═══════ ALERTS ═════════════════════════════════════════════ */
.alert {
  border-radius:var(--radius-sm); padding:.625rem .875rem;
  margin-bottom:.875rem; display:flex; align-items:flex-start;
  gap:.5rem; font-size:.825rem;
}
.alert--info    { background:#e8f0fe; border-left:3px solid var(--primary); color:var(--primary-dk); }
.alert--success { background:#d4edda; border-left:3px solid var(--success); color:#00521b; }
.alert--warning { background:#fff3cd; border-left:3px solid var(--warning); color:#7d5200; }
.alert--error   { background:#fde8e6; border-left:3px solid var(--error);   color:#8c1c0a; }

/* ═══════ SETUP WIZARD ═══════════════════════════════════════ */
.wizard-card {
  background:var(--surface); border:1px solid var(--border-lt);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-2); max-width:800px;
}
.wizard-card__header {
  padding:1rem 1.25rem; border-bottom:1px solid var(--border-lt); background:#fafbfc;
}
.wizard-card__body { padding:1.25rem 1.5rem; }

/* ═══════ SINGLE-PAGE SETUP SECTIONS ════════════════════════ */
.setup-progress {
  display: flex;
  align-items: center;
  gap: 0;
}
.setup-progress__step {
  display: flex;
  align-items: center;
  gap: .4rem;
  flex-shrink: 0;
}
.setup-progress__circle {
  width: 28px; height: 28px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: .72rem; font-weight: 700;
  border: 2px solid var(--border);
  background: #fff; color: var(--text-muted);
  flex-shrink: 0;
}
.setup-progress__label {
  font-size: .75rem; font-weight: 500; color: var(--text-muted);
  white-space: nowrap;
}
.setup-progress__step--current .setup-progress__circle {
  background: var(--primary); border-color: var(--primary); color: #fff;
  box-shadow: 0 0 0 3px rgba(0,94,162,.15);
}
.setup-progress__step--current .setup-progress__label { color: var(--primary); font-weight: 700; }
.setup-progress__step--done .setup-progress__circle { background: var(--success); border-color: var(--success); color: #fff; }
.setup-progress__step--done .setup-progress__label { color: var(--success); }
.setup-progress__step--pending .setup-progress__circle { opacity: .5; }
.setup-progress__step--pending .setup-progress__label { opacity: .55; }
.setup-progress__connector {
  flex: 1; height: 2px; background: var(--border-lt); min-width: 20px;
}
.setup-progress__connector--done { background: var(--success); }

.setup-section {
  background: var(--surface);
  border: 1px solid var(--border-lt);
  border-radius: var(--radius);
  box-shadow: var(--shadow-1);
  margin-bottom: 1rem;
  overflow: hidden;
  transition: border-color .15s;
}
.setup-section--complete { border-color: #b7efc5; background: #f8fff9; }
.setup-section--locked { opacity: .7; pointer-events: none; }

.setup-section__header {
  display: flex;
  align-items: center;
  gap: .875rem;
  padding: .875rem 1.25rem;
  border-bottom: 1px solid var(--border-lt);
  background: #fafbfc;
}
.setup-section--complete .setup-section__header { background: #f0fdf4; border-bottom-color: #b7efc5; }

.setup-section__num {
  width: 32px; height: 32px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: .8rem; font-weight: 700;
  flex-shrink: 0;
  border: 2px solid var(--border);
  color: var(--text-muted); background: #fff;
}
.setup-section__num--active { background: var(--primary); border-color: var(--primary); color: #fff; }
.setup-section__num--done   { background: var(--success); border-color: var(--success); color: #fff; }

.setup-section__title { font-size: .92rem; font-weight: 700; color: var(--text); }
.setup-section__sub   { font-size: .75rem; color: var(--text-muted); margin-top: .1rem; }

.setup-section__body {
  padding: 1.25rem 1.5rem;
}
.setup-section__summary {
  padding: .625rem 1.25rem;
  display: flex; align-items: center; gap: .4rem;
  font-size: .82rem; color: var(--text);
}
.setup-section__locked-msg {
  padding: .625rem 1.25rem;
  font-size: .78rem; color: var(--text-muted);
  display: flex; align-items: center; gap: .35rem;
}

/* ═══════ HOME PAGE ══════════════════════════════════════════ */
.home-hero {
  background: linear-gradient(135deg, #0d2b52 0%, #005ea2 55%, #0076d6 100%);
  color:#fff;
  padding: 3.5rem 1.75rem 3rem;
  margin-bottom: 0;
  position:relative; overflow:hidden;
  text-align: center;
}
.home-hero::before {
  content:''; position:absolute; inset:0;
  background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  pointer-events:none;
}
.home-hero__inner {
  max-width: 820px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
.home-hero__tag {
  display:inline-flex; align-items:center; gap:.35rem;
  font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.25);
  border-radius:99px; padding:.25em .75em; margin-bottom:1rem; color:rgba(255,255,255,.9);
}
.home-hero__title { font-size:2.5rem; font-weight:800; margin:0 0 1rem; line-height:1.15; }
.home-hero__sub   { font-size:1.05rem; margin:0 auto 1.5rem; opacity:.9; line-height:1.6; max-width:640px; }
.home-hero__ctas  { display:flex; gap:.75rem; flex-wrap:wrap; justify-content:center; }
.home-hero-slider {
  margin-top: 1.5rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .85rem;
  text-align: left;
}
.home-hero-slide {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--radius-lg);
  padding: 1rem 1rem 1.1rem;
  backdrop-filter: blur(10px);
  box-shadow: 0 10px 30px rgba(0,0,0,.14);
}
.home-hero-slide__eyebrow {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.72);
  margin-bottom: .45rem;
}
.home-hero-slide__title { font-size: 1rem; font-weight: 700; margin: 0 0 .45rem; }
.home-hero-slide__body { font-size: .8rem; line-height: 1.55; margin: 0 0 .7rem; color: rgba(255,255,255,.88); }
.home-hero-slide__link {
  color: #fff; font-size: .78rem; font-weight: 700; text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.5);
}
.home-live-links { margin-bottom: 2rem; }
.home-live-links__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .85rem;
}
.home-live-links__card {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  background: linear-gradient(180deg, #fff 0%, #f8fbff 100%);
  border: 1px solid var(--border-lt);
  border-radius: var(--radius);
  padding: 1rem;
  text-decoration: none;
  color: var(--text);
  box-shadow: var(--shadow-1);
}
.home-live-links__card:hover { box-shadow: var(--shadow-2); background: #f3f8ff; }
.home-live-links__title { font-size: .88rem; font-weight: 700; margin-bottom: .18rem; }
.home-live-links__body { font-size: .77rem; color: var(--text-muted); line-height: 1.45; }

/* Stats strip */
.home-stats-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  background: var(--surface);
  border: 1px solid var(--border-lt);
  border-radius: var(--radius);
  box-shadow: var(--shadow-1);
  margin: 1.5rem 0 2rem;
  overflow: hidden;
}
.home-stat {
  display: flex; align-items: center; gap: .75rem;
  padding: 1rem 1.25rem;
  border-right: 1px solid var(--border-lt);
}
.home-stat:last-child { border-right: none; }
.home-stat__icon { font-size: 28px; flex-shrink: 0; opacity: .8; }
.home-stat__value { font-size: 1.5rem; font-weight: 800; color: var(--text); line-height: 1; }
.home-stat__label { font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .07em; color: var(--text-muted); margin-top: .2rem; }

@media (max-width: 768px) {
  .home-stats-strip { grid-template-columns: repeat(2, 1fr); }
  .home-stat { border-bottom: 1px solid var(--border-lt); }
}

/* Section title */
.home-section-title {
  font-size: 1.15rem; font-weight: 800; margin: 0 0 1.25rem;
  color: var(--text); display: flex; align-items: center; gap: .4rem;
}

.home-process {
  display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-bottom:0;
}
@media (max-width: 900px) { .home-process { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 500px) { .home-process { grid-template-columns: 1fr; } }

.home-step-card {
  background:var(--surface); border:1px solid var(--border-lt);
  border-radius:var(--radius); padding:1.25rem;
  box-shadow:var(--shadow-1); display:flex; flex-direction:column; gap:.625rem;
  transition:box-shadow .15s, transform .15s;
}
.home-step-card:hover { box-shadow:var(--shadow-2); transform:translateY(-1px); }

.home-step-card__icon {
  width:40px; height:40px;
  border-radius:var(--radius);
  background:var(--c-blue-10);
  display:flex; align-items:center; justify-content:center;
  color:var(--primary);
}
.home-step-card__num {
  font-size:.68rem; font-weight:700; color:var(--text-muted);
  text-transform:uppercase; letter-spacing:.08em;
}
.home-step-card__title { font-size:.95rem; font-weight:700; margin:0; }
.home-step-card__body  { font-size:.82rem; color:var(--text-muted); flex:1; line-height:1.5; }

.home-info-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; margin-bottom:0; }
@media (max-width: 600px) { .home-info-grid { grid-template-columns: 1fr; } }

.home-info-card {
  background:var(--surface); border:1px solid var(--border-lt);
  border-radius:var(--radius); padding:1rem;
  box-shadow:var(--shadow-1); display:flex; align-items:flex-start; gap:.75rem;
  transition:box-shadow .15s;
}
.home-info-card:hover { box-shadow:var(--shadow-2); }
.home-info-card__icon {
  width:36px; height:36px; border-radius:var(--radius-sm);
  background:var(--c-blue-10); display:flex; align-items:center; justify-content:center;
  color:var(--primary); flex-shrink:0;
}
.home-info-card__title { font-size:.85rem; font-weight:700; margin:0 0 .2rem; }
.home-info-card__body  { font-size:.78rem; color:var(--text-muted); margin:0; line-height:1.45; }

/* Resources section */
.home-resources { margin-bottom: 2rem; }
.home-resource-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .75rem;
}
@media (max-width: 600px) { .home-resource-grid { grid-template-columns: 1fr; } }

.home-resource-card {
  display: flex; align-items: center; gap: .75rem;
  background: var(--surface);
  border: 1px solid var(--border-lt);
  border-radius: var(--radius);
  padding: .875rem 1rem;
  box-shadow: var(--shadow-1);
  text-decoration: none; color: var(--text);
  transition: background .12s, box-shadow .12s;
}
.home-resource-card:hover { background: #f0f5ff; box-shadow: var(--shadow-2); }
.home-resource-card__title { font-size: .85rem; font-weight: 700; margin: 0 0 .1rem; }
.home-resource-card__sub   { font-size: .72rem; color: var(--text-muted); }

/* ═══════ RADZEN OVERRIDES ════════════════════════════════════ */
/* Ensure DataGrid renders at full width and is never clipped */
/* Fix: rz-data-grid uses display:flex with flex:1 child — must override to block so height is content-driven */
.rz-data-grid { width: 100%; display: block !important; }
.rz-data-grid-data { overflow: visible !important; flex: none !important; }
.rz-grid-table-scroller { width: 100%; overflow-x: auto; }
/* Reset any USWDS global table styles that could interfere */
.rz-grid-table { border-collapse: separate !important; border-spacing: 0; width: 100%; }

/* DataGrid column header (Radzen 5.x class names) */
.rz-column-header-title { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--text-muted); }
.rz-data-grid .rz-datatable-thead > tr > th {
  padding:.4rem .75rem; font-size:.68rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.05em;
  background:#f5f5f5; border-bottom:2px solid var(--border);
  color:var(--text-muted);
}
.rz-data-grid .rz-datatable-tbody > tr > td {
  padding:.44rem .75rem; font-size:.82rem;
}
.rz-data-grid .rz-datatable-tbody > tr:hover { background:#f0f5ff; cursor:pointer; }

/* Tabs */
.rz-tabview .rz-tabview-nav {
  background:transparent; border-bottom:2px solid var(--border-lt);
  padding:0 .25rem; gap:0; flex-wrap:wrap;
}
.rz-tabview .rz-tabview-nav li a {
  font-size:.82rem; font-weight:500; padding:.5rem .875rem;
  color:var(--text-muted); border-bottom:2px solid transparent; margin-bottom:-2px;
  white-space:nowrap;
}
.rz-tabview .rz-tabview-nav li.rz-tabview-selected a,
.rz-tabview .rz-tabview-nav li.rz-tabview-selected a:hover {
  border-bottom-color:var(--primary); color:var(--primary); font-weight:700;
}
.rz-tabview .rz-tabview-panel { padding:1rem .125rem .375rem; }

/* Steps */
.rz-steps .rz-steps-item.rz-steps-current  .rz-steps-number { background:var(--primary);  border-color:var(--primary); }
.rz-steps .rz-steps-item.rz-steps-complete .rz-steps-number { background:var(--success); border-color:var(--success); }

/* Lifecycle bar removed from the submitter/reviewer experience */

/* ═══════ ICON TOOLBAR ════════════════════════════════════════ */
/* (canonical block below – duplicate removed from end of file) */

/* DataGrid */
.rz-datatable .rz-datatable-thead > tr > th {
  padding:.4rem .75rem; font-size:.68rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.05em;
  background:#f5f5f5; border-bottom:2px solid var(--border);
  color:var(--text-muted);
}
.rz-datatable .rz-datatable-tbody > tr > td {
  padding:.44rem .75rem; font-size:.82rem;
}
.rz-datatable .rz-datatable-tbody > tr:hover { background:#f0f5ff; cursor:pointer; }

/* Input chrome */
.rz-textbox, .rz-numeric input, .rz-textarea {
  border:1px solid var(--border); border-radius:var(--radius-sm);
  font-size:.825rem; transition:border-color .12s;
}
.rz-dropdown,
.rz-autocomplete,
.rz-numeric {
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:#fff;
  transition:border-color .12s, box-shadow .12s;
}

/* NBI structure-number search wrapper */
.nbi-search-wrap {
  position:relative;
  display:flex;
  align-items:center;
}
.nbi-search-wrap__icon {
  position:absolute;
  left:.55rem;
  z-index:1;
  font-size:1.1rem;
  color:var(--text-muted);
  pointer-events:none;
  line-height:1;
}
.nbi-search-wrap .rz-autocomplete {
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
}
.nbi-search-wrap .rz-autocomplete input {
  padding-left:2rem !important;
}
.nbi-search-wrap:focus-within .rz-autocomplete {
  border-color:var(--primary);
  outline:2px solid rgba(0,94,162,.18);
  outline-offset:0;
}
.nbi-search-wrap .rz-autocomplete:focus-within {
  border-color:var(--primary);
  outline:none;
}
.rz-dropdown .rz-dropdown-label,
.rz-dropdown .rz-dropdown-trigger,
.rz-autocomplete input,
.rz-numeric input {
  border:none !important;
  box-shadow:none !important;
  background:transparent;
}
.rz-dropdown,
.rz-autocomplete,
.rz-textbox,
.rz-numeric,
.rz-textarea {
  width:100%;
  box-sizing:border-box;
}
.rz-textbox:focus, .rz-numeric input:focus, .rz-textarea:focus,
.rz-dropdown:focus-within,
.rz-autocomplete:focus-within,
.rz-numeric:focus-within {
  border-color:var(--primary);
  outline:2px solid rgba(0,94,162,.18); outline-offset:0;
}

.workspace-main .form-row   { grid-template-columns:repeat(4,minmax(0,1fr)); }
.workspace-main .form-row--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.workspace-main .form-row--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.workspace-main .form-row--4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.workspace-main .form-field  { min-width:0; }
.workspace-main .rz-dropdown,
.workspace-main .rz-autocomplete,
.workspace-main .rz-numeric,
.workspace-main .rz-textbox,
.workspace-main .rz-textarea {
  width:100%;
  box-sizing:border-box;
  border:1px solid var(--border) !important;
  border-radius:var(--radius-sm) !important;
  background:#fff !important;
  box-shadow:none !important;
}
.workspace-main .rz-dropdown .rz-dropdown-label,
.workspace-main .rz-dropdown .rz-inputtext,
.workspace-main .rz-dropdown .rz-dropdown-trigger,
.workspace-main .rz-autocomplete-input,
.workspace-main .rz-numeric-input,
.workspace-main .rz-numeric input,
.workspace-main .rz-textbox,
.workspace-main .rz-textarea {
  border:none !important;
  box-shadow:none !important;
  background:transparent !important;
}
.workspace-main .rz-dropdown-trigger {
  border-inline-start:1px solid var(--border-lt);
}
.workspace-main .rz-dropdown:focus-within,
.workspace-main .rz-autocomplete:focus-within,
.workspace-main .rz-numeric:focus-within,
.workspace-main .rz-textbox:focus,
.workspace-main .rz-textarea:focus {
  border-color:var(--primary) !important;
  outline:2px solid rgba(0,94,162,.18);
  outline-offset:0;
}

/* Panels */
.rz-datepicker-popup, .rz-dropdown-panel, .rz-autocomplete-panel {
  z-index:9999; box-shadow:var(--shadow-2); border-radius:var(--radius);
}
.rz-notification     { z-index:10000; }
.rz-progressbar      { border-radius:99px; overflow:hidden; }
.rz-dialog-wrapper   { z-index:9998; }

/* Removed legacy project lifecycle stepper styles */

/* ═══════ SUBMITTER / REVIEWER WORKFLOW ══════════════════════ */
.workflow-shell {
  max-width: 1380px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 1rem;
}
.workflow-main { min-width: 0; }
.workflow-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  position: sticky;
  top: 84px;
  align-self: start;
}
.setup-hero .page-card__body { padding: 1.1rem 1.2rem; }
.status-chip-row,
.workspace-cta-row {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  align-items: center;
}
.setup-panel--disabled {
  opacity: .72;
}
.summary-list {
  display: flex;
  flex-direction: column;
  gap: .85rem;
}
.summary-list__item {
  display: flex;
  flex-direction: column;
  gap: .18rem;
  font-size: .84rem;
  color: var(--text-2);
}
.summary-list__label {
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text-muted);
}
.preview-shell {
  max-width: 1280px;
  margin: 0 auto;
}
.preview-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .875rem;
  margin-bottom: 1rem;
}
.preview-card {
  background: var(--surface);
  border: 1px solid var(--border-lt);
  border-radius: var(--radius);
  box-shadow: var(--shadow-1);
  padding: .95rem 1rem;
}
.preview-card__value {
  margin-top: .35rem;
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--primary-dk);
}
.section-stack {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.reviewer-board {
  display: grid;
  gap: 1rem;
  padding: 1rem !important;
}
.review-workbench-card {
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
  border: 1px solid var(--border-lt);
  border-radius: var(--radius);
  box-shadow: var(--shadow-1);
  padding: 1rem;
}
.review-workbench-card__header {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  align-items: flex-start;
  margin-bottom: .75rem;
}

/* ═══════ SLIDER FIELDS ════════════════════════════════════════ */
.slider-field {
  display:flex;
  align-items:center;
  gap:.6rem;
  width:100%;
  min-width:0;
}
.slider-field__track {
  display:flex;
  align-items:center;
  gap:.45rem;
  flex:1 1 auto;
  min-width:0;
}
/* Radzen slider — fills available space, no width cap */
.rz-slider         { flex:1 1 auto; min-width:0; }
.rz-slider-handle  { border-color:var(--primary) !important; }
.rz-slider-range   { background:var(--primary) !important; }
.rz-slider .rz-slider-track { background:var(--border) !important; }
/* Numeric paired with slider: auto-size from min-width, right-aligned for readability */
.workspace-main .slider-field .rz-numeric {
  flex:0 0 auto;
  min-width:78px;
  width:auto !important;
}
.workspace-main .slider-field .rz-numeric-input,
.workspace-main .slider-field .rz-numeric input {
  min-width:78px;
  width:100%;
  text-align:right;
  box-sizing:border-box;
}
.traffic-closure-row {
  align-items:center;
}
.traffic-closure-row__control {
  justify-content:center;
}

/* ═══════ ICON TOOLBAR ════════════════════════════════════════ */
.bca-icon-toolbar {
  display:flex; align-items:center; gap:.25rem;
  padding:.3rem .5rem;
  background:#f5f7fa;
  border:1px solid var(--border-lt);
  border-radius:var(--radius-sm);
  margin-bottom:.75rem;
  flex-wrap:wrap;
}
.bca-toolbar-btn {
  min-height:30px;
  padding:.35rem .6rem;
  border-radius:var(--radius-sm);
  box-shadow:none;
}
.bca-toolbar-btn .mi { font-size:16px; }
.bca-toolbar-btn:disabled {
  opacity:.55;
  box-shadow:none;
}
.bca-toolbar-btn__label { font-size:.73rem !important; font-weight:600 !important; margin-left:.15rem; }

/* Fix double border: RadzenTabs directly inside page-card */
.page-card > .rz-tabview .rz-tabview-nav-container { border-bottom:none; }
.page-card > .rz-tabview .rz-tabview-nav {
  padding-left:.75rem; background:#fafbfc;
  border-bottom:1px solid var(--border-lt);
  border-radius:var(--radius) var(--radius) 0 0;
}
.page-card > .rz-tabview { overflow:visible; }

/* Tab section inner spacing */
.tab-section { padding:.75rem .875rem .5rem; }
.tab-section + .tab-section { border-top:1px solid var(--border-lt); }
.tab-toolbar-row {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.875rem;
  padding:.1rem 0 .9rem;
  margin-bottom:1rem;
  border-bottom:1px solid var(--border-lt);
  flex-wrap:wrap;
}
.tab-toolbar-row__meta {
  min-width:0;
  flex:1;
}
.tab-toolbar-row__title {
  margin:0 0 .22rem;
  font-size:.98rem;
  font-weight:800;
  color:var(--text);
}
.tab-toolbar-row__sub {
  margin:0;
  font-size:.79rem;
  line-height:1.45;
  color:var(--text-muted);
  max-width:52rem;
}
.tab-toolbar-row .bca-icon-toolbar {
  margin-bottom:0;
  position:sticky;
  top:.25rem;
}

/* Dashboard stats responsive fix */
@media (min-width:1280px) { .dash-stats { grid-template-columns:repeat(4,1fr); } }

@media (max-width: 1100px) {
  .workflow-shell {
    grid-template-columns: 1fr;
  }
  .workflow-sidebar {
    position: static;
  }
  .preview-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .home-hero-slider,
  .home-live-links__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .preview-kpi-grid {
    grid-template-columns: 1fr;
  }
  .review-workbench-card__header {
    flex-direction: column;
  }
  .home-hero {
    padding-top: 2.75rem;
  }
}

/* ═══════ UTILITY ════════════════════════════════════════════ */
.flex-center   { display:flex; align-items:center; justify-content:center; }
.flex-between  { display:flex; align-items:center; justify-content:space-between; }
.flex-align    { display:flex; align-items:center; }
.flex-gap-1    { gap:.25rem; }
.flex-gap-2    { gap:.5rem; }
.flex-gap-3    { gap:.75rem; }
.flex-gap-4    { gap:1rem; }
.display-flex  { display:flex; }
.flex-align-center { align-items:center; }
.flex-justify  { justify-content:space-between; }
.text-muted    { color:var(--text-muted); font-size:.82rem; }
.text-error    { color:var(--error); }
.text-success  { color:var(--success); }
.divider       { height:1px; background:var(--border-lt); margin:.875rem 0; }
.mt-1{margin-top:.25rem} .mt-2{margin-top:.5rem} .mt-3{margin-top:.75rem} .mt-4{margin-top:1rem}
.mb-1{margin-bottom:.25rem} .mb-2{margin-bottom:.5rem} .mb-3{margin-bottom:.75rem} .mb-4{margin-bottom:1rem}
.w-full{width:100%}

/* USWDS legacy helpers */
.margin-top-2{margin-top:.5rem} .margin-top-4{margin-top:1rem}
.margin-bottom-2{margin-bottom:.5rem} .margin-bottom-3{margin-bottom:.75rem}
.margin-bottom-4{margin-bottom:1rem} .margin-left-2{margin-left:.5rem} .margin-0{margin:0}
.grid-container { max-width:100%; }
.grid-row { display:flex; flex-wrap:wrap; gap:1rem; }
.grid-gap { gap:1rem; }
.desktop\:grid-col-4 { flex:0 0 calc(33.333% - .667rem); max-width:calc(33.333% - .667rem); }
.desktop\:grid-col-5 { flex:0 0 calc(41.667% - .583rem); max-width:calc(41.667% - .583rem); }
.desktop\:grid-col-7 { flex:0 0 calc(58.333% - .417rem); max-width:calc(58.333% - .417rem); }

/* Blazor error */
#blazor-error-ui {
  background:#0d2b52; color:#fff; padding:.375rem 1rem;
  text-align:center; font-size:.8rem; display:none;
}
#blazor-error-ui .dismiss { float:right; cursor:pointer; }

/* ═══════ RESPONSIVE ═════════════════════════════════════════ */
@media (max-width:1024px) {
  :root { --nav-w:200px; }
  .home-process { grid-template-columns:1fr 1fr; }
  .dash-stats   { grid-template-columns:1fr 1fr; }
}
@media (max-width:768px) {
  :root { --nav-w:0px; }
  .app-nav      { display:none; }
  .app-main     { margin-left:0; }
  .app-content  { padding:.875rem 1rem; }
  .home-process { grid-template-columns:1fr; }
  .home-info-grid { grid-template-columns:1fr; }
  .bridge-selector-bar { gap:.5rem; }
  .bridge-selector-bar__left { gap:.375rem; }
  .bridge-selector-bar__actions { justify-content:flex-start; }
  .bridge-selector-bar__action-group + .bridge-selector-bar__action-group {
    padding-left:0;
    margin-left:0;
    border-left:0;
  }
  .workspace-calc-summary__grid {
    grid-template-columns:repeat(2, minmax(170px, 210px));
    width:auto;
  }
  .form-row--3, .form-row--4 { grid-template-columns:1fr 1fr; }
  .dash-stats   { grid-template-columns:repeat(2,1fr); }
  .kpi-row      { grid-template-columns:repeat(2,1fr); }
}
/* Borderless read-only display inputs */
input.form-control[readonly] {
  border:none;
  background:transparent;
  box-shadow:none;
  padding-left:0;
  cursor:default;
}

@media (max-width:480px) {
  .form-row--2, .form-row--3, .form-row--4 { grid-template-columns:1fr; }
  .home-hero__title { font-size:1.5rem; }
  .dash-stats { grid-template-columns:1fr 1fr; }
  .kpi-row    { grid-template-columns:1fr; }
  .workspace-calc-summary__grid {
    grid-template-columns:minmax(0, 1fr);
    width:100%;
  }
}

/* ══ Compact workspace top-bar ══════════════════════════════════════════════ */
.ws-topbar {
  display: flex;
  align-items: center;
  gap: .625rem;
  flex-wrap: wrap;
  padding: .55rem .75rem;
  border-bottom: 1px solid var(--border-lt);
  background: #fafbfc;
  border-radius: var(--radius) var(--radius) 0 0;
}
.ws-topbar__left {
  display: flex;
  align-items: center;
  gap: .45rem;
  flex: 0 0 auto;
}
.ws-topbar__icon  { color: var(--primary); font-size: 1.25rem; line-height: 1; }
.ws-topbar__title { font-size: .9rem; font-weight: 700; color: var(--text); }
.ws-topbar__proj-name { font-size: .78rem; color: var(--text-muted); display: flex; align-items: center; gap: .2rem; }
.ws-topbar__status-tag { flex: 0 0 auto; }
.ws-topbar__selector {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  min-width: 0;
}
.ws-topbar__actions {
  display: flex;
  align-items: center;
  gap: .3rem;
  flex-wrap: wrap;
  flex: 0 0 auto;
}

/* ── Icon-only action buttons (ws-icon-btn) ─────────────────────────────── */
.ws-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background .15s, border-color .15s, box-shadow .15s;
  flex-shrink: 0;
  text-decoration: none;
}
.ws-icon-btn:hover {
  background: #e8eaed;
  border-color: #c8cace;
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
.ws-icon-btn:disabled,
.ws-icon-btn[disabled] { opacity: .45; cursor: not-allowed; }
.ws-icon-btn--danger:hover {
  background: #fde8e8;
  border-color: #f5c0c0;
}
.ws-icon-btn--action {
  width: 2.1rem;
  height: 2.1rem;
  border: 1px solid #d0d3d9;
  background: #f0f1f3;
}
.ws-icon-btn--action:hover { background: #e4e6eb; }
.ws-icon-btn--active {
  background: #1565c0;
  border-color: #0d47a1;
}
.ws-icon-btn--active:hover { background: #1976d2; border-color: #1565c0; }
@keyframes ws-recalc-slide {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.ws-recalc-bar {
  height: 3px;
  background: linear-gradient(90deg, transparent 0%, #1565c0 40%, #42a5f5 60%, transparent 100%);
  background-size: 200% 100%;
  animation: ws-recalc-slide 1.2s linear infinite;
}


/* Light-gray labeled buttons (ws-btn) – legacy */
.ws-btn {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  background: #f0f1f3;
  border: 1px solid #d0d3d9;
  color: var(--text);
  padding: .28rem .6rem;
  border-radius: var(--radius-sm);
  font-size: .75rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, box-shadow .15s;
  white-space: nowrap;
}
.ws-btn:hover   { background: #e4e6eb; box-shadow: 0 1px 3px rgba(0,0,0,.1); }
.ws-btn:disabled,
.ws-btn[disabled] { opacity: .5; cursor: not-allowed; }
.ws-btn__label  { white-space: nowrap; }

/* ── Centered Calculation Summary header ─────────────────────────────────── */
.workspace-calc-summary__center-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .4rem;
  width: 100%;
  text-align: center;
  padding: .5rem 0 .35rem;
}
.workspace-calc-summary__center-header .workspace-calc-summary__title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text);
}
.workspace-calc-summary__center-header .workspace-calc-summary__badges {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
  justify-content: center;
}

/* ── Defaults Panel ─────────────────────────────────────────────────────── */
.defaults-panel {
  background: var(--surface-alt, #f8f9fa);
  border: 1px solid var(--border, #dee2e6);
  border-radius: 6px;
  padding: .75rem 1rem;
  margin-bottom: 1rem;
}
.defaults-panel__intro {
  font-size: .72rem;
  color: var(--text-muted, #6c757d);
  margin-bottom: .5rem;
  line-height: 1.4;
}
.defaults-section-header {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--text-muted, #6c757d);
  margin-top: .6rem;
  margin-bottom: .25rem;
  padding-bottom: .15rem;
  border-bottom: 1px solid var(--border, #dee2e6);
}

/* ── Override Cell (Submitter has changed from reference/default value) ──── */
.cell--override {
  background: #e3f2fd !important;   /* light blue – indicates override */
}
.cell--override input.ws-input {
  background: transparent;
}
/* ── Default Cell (shows FHWA system default for comparison) ─────────────── */
.cell--default {
  color: var(--text-muted, #6c757d);
  font-size: 0.875rem;
  text-align: right;
  padding-right: 0.5rem;
  white-space: nowrap;
}
.row--validation-error td {
  background: #fff3e0 !important;
}
input.input--required {
  border-color: #e65100 !important;
  background: #fff8f0 !important;
}
input.input--required::placeholder {
  color: #e65100;
  font-style: italic;
}

/* ── Calibration Log ─────────────────────────────────────── */
.workspace-calibration-log {
  margin: .75rem 0;
  background: #fffde7;
  border: 1px solid #f9a825;
  border-radius: 6px;
  font-size: .88rem;
  overflow: hidden;
}
.workspace-calibration-log__toggle {
  display: flex;
  align-items: center;
  gap: .4rem;
  width: 100%;
  padding: .6rem 1rem;
  background: transparent;
  border: none;
  cursor: pointer;
  font-weight: 600;
  font-size: .88rem;
  color: #5d4037;
  text-align: left;
}
.workspace-calibration-log__toggle:hover {
  background: rgba(249,168,37,.15);
}
.workspace-calibration-log__body {
  padding: .5rem 1rem .75rem;
  border-top: 1px solid #f9a825;
}
.workspace-calibration-log__header {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-weight: 600;
  margin-bottom: .5rem;
  color: #5d4037;
}
.workspace-calibration-log__editor {
  width: 100%;
  font-size: .85rem;
  resize: vertical;
}
.workspace-calibration-log__actions {
  display: flex;
  gap: .5rem;
  margin-top: .4rem;
}
.workspace-calibration-log__text {
  white-space: pre-wrap;
  word-break: break-word;
  font-family: inherit;
  margin: 0;
  color: #3e2723;
}
.workspace-calibration-log__empty {
  color: var(--text-muted);
  font-style: italic;
}
