/* ============================================================
   Medcurity UI Uplift — 2026-05-28 (Makena-ui-uplift-2026-05-28)
   ============================================================
   This stylesheet sits ON TOP of public/css/app.css (the compiled
   Bootstrap/SCSS bundle). It restyles the authenticated app to
   match the Realistic Pass mockup (2026-05-21) without altering
   any application behavior:
     - Forms still submit to the same routes.
     - Dropdowns still use the same Bootstrap JS hooks.
     - AJAX endpoints (alert dismiss, evidence upload, etc.) are
       untouched.
     - Vue components mount in the same containers (#alertApp,
       Vue widgets) — only their visual chrome changes.
   Public/marketing pages, the BAA signing page, PDF templates,
   and email layouts are intentionally NOT touched by these rules.
   ============================================================ */

:root {
  --mc-navy: #0B3B5E;
  --mc-navy-deep: #082c47;
  --mc-blue: #0071BC;
  --mc-blue-soft: #e6f0f8;
  --mc-red: #C41230;
  --mc-red-soft: #fadbe1;
  --mc-amber: #BA7517;
  --mc-amber-soft: #fdf0d8;
  --mc-green: #1f8a4c;
  --mc-green-soft: #e6f4ec;
  --mc-teal: #197a7a;
  --mc-teal-soft: #d9eded;
  --mc-purple: #6c4eb2;
  --mc-purple-soft: #ede7f8;
  --mc-cream: #f4ede0;
  --mc-cream-soft: #fbfaf6;
  --mc-cream-border: #ece0c4;
  --mc-ink: #1a2230;
  --mc-mute: #5a6b80;
  --mc-mute-2: #8896a8;
  --mc-mute-3: #a8b0bd;
  --mc-line: #e2e8ef;
  --mc-line-2: #eef2f6;
  --mc-shadow-1: 0 1px 2px rgba(11, 59, 94, 0.04), 0 1px 3px rgba(11, 59, 94, 0.04);
  --mc-shadow-2: 0 4px 12px rgba(11, 59, 94, 0.08);
  --mc-shadow-3: 0 14px 32px rgba(11, 59, 94, 0.10);
  --mc-font: -apple-system, BlinkMacSystemFont, "Inter", "Open Sans", "Segoe UI", system-ui, sans-serif;
  --mc-sidebar-w: 220px;
  --mc-sidebar-w-collapsed: 64px;
  /* Color review 2026-06-24: graduated score ramp + singular focus. */
  --mc-clay: #C2410C;        /* low-score / room-to-grow (not crimson) */
  --mc-gold: #B8860B;        /* mid-score */
  --mc-focus: var(--mc-navy);
  /* Semantic roles (round 2): red = alert/overdue ONLY. */
  --action: var(--mc-navy);
  --alert: var(--mc-red);
  --warning: var(--mc-gold);
  --success: var(--mc-green);
  --text-secondary: var(--mc-mute);
  --score-low: var(--mc-clay);
  --score-mid: var(--mc-gold);
  --score-high: var(--mc-green);
}

/* ============================================================
   1. SCOPE — only on authenticated app pages
   ============================================================
   Triggered by body.has-uplift (added in layouts/app.blade.php
   when auth()->check() && company context is present).
   Public/marketing pages keep the original look entirely.
*/
body.has-uplift {
  font-family: var(--mc-font);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: #f4f6f9;
  color: var(--mc-ink);
  font-feature-settings: "tnum", "ss01";
  font-size: 14px;
  min-height: 100vh;
}
/* The legacy theme sets `overflow-x: hidden` on <body>, which makes the
   body a scroll container and silently breaks `position: sticky` for ALL
   descendants — the uplift topbar (.mc-topbar) and the setup-wizard banner
   (.mc-wiz-banner) both have `position: sticky` but were scrolling away.
   `overflow-x: clip` clips horizontal overflow identically yet does NOT
   establish a scroll container (overflow-y stays `visible`, not coerced to
   `auto`), so sticky resolves to the document scroll and works again. The
   `hidden` line is a fallback for browsers without `clip` support. */
body.has-uplift {
  overflow-x: hidden;
  overflow-x: clip;
}

/* The legacy chrome elements still render but are visually
   replaced; hiding them lets the new shell take over without
   ripping wiring out of app.blade.php. */
body.has-uplift > header.header,
body.has-uplift > .nav-bg,
body.has-uplift > nav.nav,
body.has-uplift > footer {
  display: none !important;
}

/* The admin-header carries the page title (@section header_title).
   Don't hide it — restyle it so it reads as a clean page header
   inside the new content area. */
body.has-uplift .admin-header-area {
  background: transparent;
  padding: 0;
  margin: 0;
}
body.has-uplift .admin-header-area .container { max-width: 100%; padding: 0; }
body.has-uplift .admin-header {
  padding: 20px 32px 4px;
  background: transparent;
  border: none;
}
body.has-uplift .admin-header h3 {
  font-size: 26px; font-weight: 600; color: var(--mc-navy);
  letter-spacing: -0.014em; margin: 0 0 4px;
}
body.has-uplift .admin-header h4 {
  font-size: 13.5px; color: var(--mc-mute); font-weight: 500;
  margin: 0;
}
body.has-uplift .admin-header h4 small {
  display: inline-block; margin-right: 6px; color: var(--mc-mute-2);
  font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em;
}
/* The original admin-header has an inline user dropdown — the new
   topbar carries the user menu, so suppress the inline one. */
body.has-uplift .admin-header .user-dropdown { display: none !important; }
/* The original admin-header has an inline multi-company switch —
   the new sidebar carries that switch, so suppress this one. */
body.has-uplift .admin-header .multiple-companies { display: none !important; }

/* The Vue alert bar slot — keep at top of viewport, on the canvas. */
body.has-uplift #alertApp { position: relative; z-index: 1100; }

/* Demo lock indicator floats top-right inside the new shell. */
body.has-uplift .is-demo {
  position: fixed; top: 14px; right: 18px; z-index: 1200;
  /* The legacy app.css `.is-demo` rule pins this badge with
     `bottom: 0; left: 0` (a full-width red bar). We only override
     top/right here, so without explicitly clearing the legacy
     bottom/left the element ends up with all four insets set and
     stretches to fill the viewport — combined with the 999px
     radius below that paints a giant amber ellipse over the whole
     page on demo accounts. Reset them so the badge shrinks to its
     content in the top-right corner. */
  bottom: auto; left: auto;
  background: var(--mc-amber-soft); color: var(--mc-amber);
  padding: 6px 14px; border-radius: 999px;
  font-size: 11.5px; font-weight: 700; letter-spacing: 0.04em;
  text-transform: uppercase;
  box-shadow: var(--mc-shadow-2);
}
body.has-uplift .is-demo .demo-toggle { margin-left: 8px; cursor: pointer; }

/* ============================================================
   2. APPLICATION SHELL — sidebar + canvas
   ============================================================ */
body.has-uplift main.py-4 { padding: 0 !important; margin: 0; }

.mc-shell {
  /* No grid — the sidebar is position:fixed and floats over the
     viewport's left edge. Reserve space for it via padding-left on
     .mc-main so the main content doesn't slide under the sidebar. */
  position: relative;
  min-height: 100vh;
  background:
    radial-gradient(circle at 82% 4%, rgba(255, 220, 160, 0.20), transparent 50%),
    radial-gradient(circle at 6% 96%, rgba(0, 113, 188, 0.10), transparent 55%),
    linear-gradient(180deg, #f3f6fb 0%, #ebf1f7 100%);
}
.mc-shell .mc-main {
  padding-left: var(--mc-sidebar-w);
  min-width: 0;
  transition: padding-left 0.2s ease;
}
.mc-shell.is-collapsed .mc-main {
  padding-left: var(--mc-sidebar-w-collapsed);
}

/* ============================================================
   3. SIDEBAR
   ============================================================ */
.mc-side {
  background: rgba(255, 255, 255, 0.78);
  backdrop-filter: blur(14px) saturate(160%);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
  border-right: 1px solid rgba(11, 59, 94, 0.06);
  padding: 14px 12px;
  display: flex; flex-direction: column; gap: 4px;
  /* Anchored to the viewport so the nav bar is always visible while
     the main content scrolls. The .mc-shell reserves a same-width
     column so layout still flows around it. */
  position: fixed;
  top: 0;
  left: 0;
  width: var(--mc-sidebar-w);
  height: 100vh;
  overflow-y: auto; overflow-x: visible;
  /* High z-index so the collapsed-sidebar flyout submenus (z:1200
     inside this stacking context) can rise above page chrome and
     hero cards. Without this the flyout was rendered but hidden
     behind dashboard content. */
  z-index: 1100;
  transition: padding 0.2s ease, width 0.2s ease;
}
.mc-shell.is-collapsed .mc-side { width: var(--mc-sidebar-w-collapsed); }
.mc-shell.is-collapsed .mc-side { padding: 14px 6px; }

.mc-brand {
  /* Fixed height so collapsed/expanded states have identical
     vertical footprints — nothing below shifts when the rail
     toggles. Minimal padding/margin so the logo fills the row. */
  height: 52px;
  flex: 0 0 52px;
  padding: 0 4px;
  margin: 0;
  display: flex; align-items: center; justify-content: center;
  position: relative;
  text-decoration: none;
}
.mc-brand:hover { text-decoration: none; }
.mc-brand-img {
  height: 48px; width: auto; max-width: 100%;
  display: block; object-fit: contain;
  transition: opacity 0.15s ease;
}
.mc-brand:hover .mc-brand-img { opacity: 0.85; }
/* Brand row in the expanded state — show the wordmark, hide the mini. */
.mc-brand-mini { display: none; }

/* When the rail is collapsed, swap the wordmark for the favicon-style
   mini mark. Same .mc-brand height keeps row position locked. */
.mc-shell.is-collapsed .mc-brand { padding: 0; }
.mc-shell.is-collapsed .mc-brand-img { display: none; }
.mc-shell.is-collapsed .mc-brand-mini {
  display: block;
  height: 28px;
  width: 28px;
  object-fit: contain;
}

/* Collapse / expand toggle — position:fixed so it sits at the same
   spot on screen at all times, anchored to the sidebar/main border.
   Light/airy style that matches the rest of the platform — white
   with a soft mute-toned border and navy chevron, no heavy navy fill. */
.mc-collapse-toggle {
  position: fixed;
  /* Vertically aligned with the .mc-brand row:
     .mc-side padding-top (14px) + half of .mc-brand height (26px)
     − half of the toggle's own height (14px) = 26px. */
  top: 26px;
  left: calc(var(--mc-sidebar-w) - 14px);
  z-index: 10000;
  width: 28px; height: 28px; border-radius: 50%;
  background: white;
  color: var(--mc-navy);
  border: 1px solid var(--mc-line);
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  line-height: 1;
  box-shadow: 0 2px 8px rgba(11, 59, 94, 0.10);
  transition: transform 0.2s ease, background 0.15s ease, left 0.2s ease, border-color 0.15s ease;
  user-select: none; padding: 0;
}
.mc-collapse-toggle i {
  font-size: 12px;
  line-height: 1;
  display: block;
  /* The FA chevron sits ~1px right of center in its own bounding
     box. Nudge it left so it reads as horizontally centered when
     pointing left, and let the rotation below flip the nudge so
     it ALSO reads as centered when pointing right. */
  transform: translateX(-1px);
}
.mc-collapse-toggle:hover {
  background: var(--mc-blue-soft);
  border-color: var(--mc-blue);
  color: var(--mc-navy);
}
.mc-shell.is-collapsed .mc-collapse-toggle {
  left: calc(var(--mc-sidebar-w-collapsed) - 14px);
}
.mc-shell.is-collapsed .mc-collapse-toggle i {
  /* Right-to-left order: translateX(-1px) is applied first (icon
     shifts 1px left in its original orientation), then rotate(180deg)
     flips the whole thing — turning that "1px left" into "1px right"
     in screen coordinates, which is exactly what we need to re-center
     the now-rightward-pointing chevron. */
  transform: rotate(180deg) translateX(-1px);
}

/* While any Bootstrap modal is open (body carries .modal-open), the
   backdrop (z:1040) is supposed to gray out the ENTIRE page — but the
   fixed sidebar (z:1100) and its collapse/expand toggle (z:10000)
   normally sit above it, so they stayed full-brightness and clickable
   next to e.g. the "How Posture Score is calculated" modal. Drop both
   below the backdrop for the duration of the modal so the whole left
   rail is dimmed (and click-shielded) like the rest of the background.
   z-index returns to normal automatically when Bootstrap removes
   .modal-open on close. */
body.has-uplift.modal-open .mc-side { z-index: 1030; }
body.has-uplift.modal-open .mc-collapse-toggle { z-index: 1030; }

/* Org switcher — links into the existing company-list dropdown
   pulled from admin_header.blade.php. */
.mc-org {
  padding: 9px 10px; border-radius: 10px; background: rgba(11,59,94,0.05);
  display: flex; align-items: center; gap: 10px; margin-bottom: 12px;
  cursor: pointer; text-decoration: none; color: inherit; position: relative;
}
.mc-org:hover { background: rgba(11,59,94,0.08); text-decoration: none; color: inherit; }
.mc-org-av {
  width: 26px; height: 26px; border-radius: 7px;
  background: linear-gradient(135deg, var(--mc-amber), #d99440); color: white;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 10px; font-weight: 700; flex-shrink: 0;
}
.mc-org-info { flex: 1; min-width: 0; line-height: 1.2; }
.mc-org-info b { font-size: 12.5px; color: var(--mc-navy); font-weight: 700; display: block;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-org-info small { display: block; font-size: 10.5px; color: var(--mc-mute);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Org-switcher chevron — matches the category chevrons so the
   whole sidebar reads consistently. */
.mc-org-chev {
  color: var(--mc-mute-2);
  width: 20px; height: 20px;
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: transform 0.18s ease;
  line-height: 1;
}
.mc-org-chev i {
  font-size: 10px;
  line-height: 1;
  display: block;
}
.mc-org.is-open .mc-org-chev { transform: rotate(180deg); }
.mc-shell.is-collapsed .mc-org { padding: 6px; justify-content: center; }
.mc-shell.is-collapsed .mc-org-info,
.mc-shell.is-collapsed .mc-org-chev { display: none; }

/* The org switcher's dropdown panel — fed from the existing
   company list. Uses absolute positioning so it floats over
   the sidebar like a popover. */
.mc-org-menu {
  /* Position:fixed so the dropdown escapes the .mc-side's
     overflow:auto clipping and can float over the rest of the
     page. left/top are set in JS from .mc-org's bounding rect
     when the menu opens. */
  position: fixed;
  width: 320px; max-width: 90vw;
  background: white; border: 1px solid var(--mc-line); border-radius: 12px;
  box-shadow: 0 14px 36px rgba(11, 59, 94, 0.18);
  padding: 8px;
  z-index: 9000;
  max-height: 360px; overflow-y: auto;
  display: none;
}
/* The menu is re-parented to <body> by JS so its show-rule no longer
   nests under .mc-org — toggle a class on the menu itself instead. */
.mc-org-menu.is-open { display: block; }
.mc-org-menu input {
  width: 100%; padding: 8px 10px; border-radius: 7px;
  border: 1px solid var(--mc-line); font-size: 12.5px; font-family: inherit;
  margin-bottom: 6px;
}
.mc-org-menu input:focus { outline: none; border-color: var(--mc-blue); }
.mc-org-menu a.dropdown-item {
  padding: 8px 12px;
  border-radius: 7px;
  font-size: 13px;
  color: var(--mc-ink);
  text-decoration: none;
  /* Single-line items with ellipsis when names overflow — the
     truncation cue tells the user there's more text. */
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mc-org-menu a.dropdown-item:hover {
  background: var(--mc-blue-soft);
  color: var(--mc-navy);
  /* On hover, show the full name via tooltip-like title attribute
     (set on each <a> already by the markup); also widen by allowing
     the hover state to extend beyond the menu briefly. */
}
.mc-org-menu a.dropdown-item:focus-visible {
  outline: 2px solid var(--mc-blue);
  outline-offset: -1px;
}
.mc-org-menu ul { list-style: none; margin: 0; padding: 0; }

/* Nav category accordion. */
.mc-cat { margin-bottom: 4px; position: relative; }
.mc-cat-head {
  display: flex; align-items: center; gap: 10px;
  padding: 6px 8px; border-radius: 9px; cursor: pointer; list-style: none;
}
.mc-cat-head::-webkit-details-marker { display: none; }
.mc-cat-head:hover { background: rgba(11,59,94,0.04); }
.mc-cat-icon {
  width: 22px; height: 22px;
  background: transparent;
  color: var(--mc-mute);
  border: none;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; flex-shrink: 0;
  filter: none;
}
.mc-cat-icon i { font-size: 14px; color: inherit; }
.mc-cat-head:hover .mc-cat-icon { color: var(--mc-navy); }
.mc-cat-label {
  flex: 1; font-size: 10.5px; color: var(--mc-mute);
  text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700;
}
.mc-cat-chev {
  color: var(--mc-mute-2);
  width: 20px; height: 20px;
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: transform 0.18s ease;
  line-height: 1;
}
.mc-cat-chev i {
  font-size: 10px;
  line-height: 1;
  display: block;
}
.mc-cat[open] .mc-cat-chev { transform: rotate(180deg); }
.mc-cat-items { padding: 4px 0 8px; }
/* CONDUCTOR3 #2 — guarantee an open group reveals its items even when a page-
   scoped stylesheet (e.g. the SRA questions view) overrides the accordion. */
.mc-shell:not(.is-collapsed) details.mc-cat[open] > .mc-cat-items { display: block !important; max-height: none !important; overflow: visible !important; }

/* Indent module items under each category — connected by a left rule. */
.mc-nav {
  display: flex; align-items: center; gap: 10px;
  padding: 7px 12px 7px 22px;
  border-radius: 0 8px 8px 0; font-size: 13px; color: var(--mc-ink);
  cursor: pointer; text-decoration: none; position: relative;
  margin-left: 14px;
  border-left: 2px solid var(--mc-line-2);
}
.mc-nav:hover { background: rgba(11,59,94,0.04); border-left-color: var(--mc-mute-2);
  color: var(--mc-navy); text-decoration: none; }
.mc-nav.active {
  background: var(--mc-blue-soft);
  border-left-color: var(--mc-blue);
  color: var(--mc-navy); font-weight: 700;
}
.mc-nav-ct {
  margin-left: auto; font-size: 11px; font-weight: 700; padding: 1px 7px;
  border-radius: 999px;
  background: var(--mc-red-soft); color: var(--mc-red);
}
.mc-nav-ct.warn { background: var(--mc-amber-soft); color: var(--mc-amber); }
.mc-nav-ct.ok { background: var(--mc-green-soft); color: var(--mc-green); }

/* Collapsed state — category icons only with a popout panel. */
.mc-shell.is-collapsed .mc-cat-head { justify-content: center; padding: 6px 0; }
.mc-shell.is-collapsed .mc-cat-label,
.mc-shell.is-collapsed .mc-cat-chev { display: none; }
.mc-shell.is-collapsed .mc-cat-items { display: none; }
.mc-shell.is-collapsed .mc-cat { position: relative; }
/* Use position: fixed so the flyout escapes the .mc-side scroll
   container's overflow context (overflow-x: visible gets coerced to
   auto when overflow-y is auto, so we can't fix it with overflow
   alone). The left/top coordinates are set by JS based on each
   cat-head's screen position. */
/* Flyout styling applies whether the .mc-cat-items is still
   inside its original .mc-cat (e.g., during the brief instant
   before JS lifts it) OR has been lifted out to document.body
   (which is required to escape .mc-side's backdrop-filter
   containing block). The lifted variant lives directly under
   <body> and is identified by the `data-mc-flyout-owner` attr
   that JS sets on lift. */
.mc-shell.is-collapsed .mc-cat[open] .mc-cat-items,
.mc-cat-items[data-mc-flyout-owner] {
  display: block; position: fixed;
  min-width: 230px;
  background: white; border: 1px solid var(--mc-line); border-radius: 12px;
  padding: 8px;
  box-shadow: 0 14px 36px rgba(11,59,94,0.18);
  z-index: 9999;
}
.mc-shell.is-collapsed .mc-cat[open] .mc-cat-items::before,
.mc-cat-items[data-mc-flyout-owner]::before {
  content: attr(data-cat); display: block;
  padding: 6px 10px 8px; font-size: 10.5px; color: var(--mc-mute);
  text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700;
  border-bottom: 1px solid var(--mc-line-2); margin: 0 0 6px;
}
.mc-shell.is-collapsed .mc-cat[open] .mc-cat-items .mc-nav,
.mc-cat-items[data-mc-flyout-owner] .mc-nav {
  padding: 7px 12px; justify-content: flex-start;
  margin-left: 0; border-left: none; border-radius: 7px;
  display: flex;
  align-items: center;
  color: var(--mc-navy);
  text-decoration: none;
  font-size: 13.5px;
  font-weight: 500;
}
.mc-cat-items[data-mc-flyout-owner] .mc-nav:hover {
  background: rgba(11, 59, 94, 0.05);
  color: var(--mc-blue, #185FA5);
  text-decoration: none;
}
.mc-shell.is-collapsed .mc-cat[open] .mc-cat-items::before {
  content: attr(data-cat); display: block;
  padding: 6px 10px 8px; font-size: 10.5px; color: var(--mc-mute);
  text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700;
  border-bottom: 1px solid var(--mc-line-2); margin: 0 0 6px;
}
.mc-shell.is-collapsed .mc-cat[open] .mc-cat-items .mc-nav {
  padding: 7px 12px; justify-content: flex-start;
  margin-left: 0; border-left: none; border-radius: 7px;
}
.mc-shell.is-collapsed .mc-cat-head:hover .mc-cat-icon {
  color: var(--mc-navy);
}

/* Side footer — current user, clickable button with upward menu. */
.mc-sidefoot-wrap {
  margin-top: auto;
  position: relative;
  padding-top: 8px;
  border-top: 1px solid rgba(11,59,94,0.06);
}
.mc-sidefoot {
  width: 100%;
  padding: 10px;
  display: flex; align-items: center; gap: 10px;
  font-size: 12px; text-align: left;
  background: transparent; border: 0; border-radius: 8px;
  color: inherit; cursor: pointer;
  font-family: inherit;
  transition: background 0.15s ease;
}
.mc-sidefoot:hover { background: rgba(11,59,94,0.05); }
.mc-sidefoot-wrap.is-open .mc-sidefoot { background: rgba(11,59,94,0.06); }
.mc-sidefoot-av {
  width: 28px; height: 28px; border-radius: 50%;
  background: linear-gradient(135deg, var(--mc-amber), #d99440); color: white;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; flex-shrink: 0;
}
.mc-sidefoot-who { line-height: 1.2; flex: 1; min-width: 0; }
.mc-sidefoot-who b { color: var(--mc-navy); font-weight: 700; font-size: 12.5px;
  display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-sidefoot-who small { display: block; color: var(--mc-mute); font-size: 11px; font-weight: 400;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-sidefoot-chev {
  font-size: 10px; color: var(--mc-mute-2);
  transition: transform 0.18s ease;
}
.mc-sidefoot-wrap.is-open .mc-sidefoot-chev { transform: rotate(180deg); }

/* Upward-expanding menu — sits above the button. */
.mc-sidefoot-menu {
  position: absolute;
  left: 8px; right: 8px;
  bottom: calc(100% + 4px);
  background: white;
  border: 1px solid var(--mc-line);
  border-radius: 10px;
  box-shadow: 0 14px 36px rgba(11, 59, 94, 0.18);
  padding: 6px;
  z-index: 200;
  display: none;
}
.mc-sidefoot-wrap.is-open .mc-sidefoot-menu { display: block; }
.mc-sidefoot-item {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 10px;
  border-radius: 7px;
  font-size: 13px; color: var(--mc-ink);
  text-decoration: none;
}
.mc-sidefoot-item:hover {
  background: var(--mc-blue-soft);
  color: var(--mc-navy);
  text-decoration: none;
}
.mc-sidefoot-item i { color: var(--mc-mute); width: 14px; }
.mc-sidefoot-item:hover i { color: var(--mc-navy); }
.mc-sidefoot-sep {
  height: 1px; background: var(--mc-line);
  margin: 4px 6px;
}

.mc-shell.is-collapsed .mc-sidefoot { justify-content: center; padding: 12px 6px; }
.mc-shell.is-collapsed .mc-sidefoot-who,
.mc-shell.is-collapsed .mc-sidefoot-chev { display: none; }
.mc-shell.is-collapsed .mc-sidefoot-menu {
  left: calc(100% + 8px); right: auto;
  bottom: 0;
  min-width: 200px;
}

/* ============================================================
   4. TOPBAR
   ============================================================ */
.mc-main { min-width: 0; display: flex; flex-direction: column; }
.mc-topbar {
  padding: 14px 32px; background: rgba(255,255,255,0.6);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(11,59,94,0.06);
  display: flex; align-items: center; gap: 16px;
  position: sticky; top: 0; z-index: 40;
}
/* Search affordance — pill input with a leading FA magnifier so the
   icon matches the rest of the platform's iconography. The wrap is
   the visual pill; the bare <input> inside sheds its own background. */
.mc-search-wrap {
  flex: 1; max-width: 360px; margin: 0;
  display: inline-flex; align-items: center; gap: 10px;
  padding: 8px 14px; border-radius: 999px;
  background: rgba(11,59,94,0.05); border: 1px solid transparent;
  transition: border-color 120ms ease, background 120ms ease;
}
.mc-search-wrap:focus-within {
  border-color: rgba(0,113,188,0.3); background: white;
}
.mc-search-ic {
  font-size: 12px; color: var(--mc-mute);
  flex-shrink: 0;
}
.mc-search {
  flex: 1; min-width: 0;
  padding: 0; margin: 0; border: 0; background: transparent;
  font-family: inherit; font-size: 13px; color: var(--mc-ink);
}
.mc-search:focus { outline: none; }
.mc-search::placeholder { color: var(--mc-mute); }
.mc-search::-webkit-search-cancel-button { display: none; }

/* Search host — relatively-positioned wrapper so the dropdown can be
   absolutely positioned beneath it. The wrap (.mc-search-wrap) remains
   the visible pill. */
.mc-search-host {
  position: relative;
  flex: 1; max-width: 360px;
}
.mc-search-host .mc-search-wrap {
  flex: 1; max-width: none; width: 100%;
}

/* Subtle inline loader. Shown via JS while a request is in flight. */
.mc-search-spinner {
  width: 12px; height: 12px;
  border-radius: 50%;
  border: 2px solid rgba(11,59,94,0.15);
  border-top-color: var(--mc-blue);
  animation: mc-search-spin 700ms linear infinite;
  display: none;
  flex-shrink: 0;
}
.mc-search-host.is-loading .mc-search-spinner { display: inline-block; }
@keyframes mc-search-spin {
  to { transform: rotate(360deg); }
}

/* The results dropdown. Lives in the same `.mc-search-host` block —
   position absolute below the pill. Grouped sections with headers,
   each row a button-like link with icon + label + meta. */
.mc-search-results {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  min-width: 360px;
  max-width: 460px;
  max-height: 60vh;
  overflow-y: auto;
  background: white;
  border: 1px solid rgba(11,59,94,0.10);
  border-radius: 14px;
  box-shadow: 0 12px 32px rgba(11,59,94,0.14),
              0 2px 6px rgba(11,59,94,0.06);
  z-index: 9000;
  padding: 6px;
}
.mc-search-results[hidden] { display: none; }
.mc-search-group {
  padding: 8px 0 6px;
}
.mc-search-group + .mc-search-group {
  border-top: 1px solid rgba(11,59,94,0.06);
}
.mc-search-group-head {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--mc-mute);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 4px 12px 6px;
}
.mc-search-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  text-decoration: none;
  color: var(--mc-ink);
  cursor: pointer;
}
.mc-search-row:hover,
.mc-search-row.is-active {
  background: var(--mc-blue-soft);
  color: var(--mc-navy);
  text-decoration: none;
}
.mc-search-row .ic {
  width: 26px; height: 26px;
  border-radius: 7px;
  background: rgba(11,59,94,0.06);
  color: var(--mc-navy);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 12px;
  flex-shrink: 0;
}
.mc-search-row .body {
  flex: 1; min-width: 0;
  display: flex; flex-direction: column; gap: 1px;
}
.mc-search-row .lbl {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--mc-navy);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mc-search-row .sub {
  font-size: 11.5px;
  color: var(--mc-mute);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mc-search-row mark {
  background: rgba(0,113,188,0.18);
  color: inherit;
  padding: 0 1px;
  border-radius: 2px;
}
.mc-search-empty,
.mc-search-hint {
  padding: 12px 14px;
  font-size: 13px;
  color: var(--mc-mute);
  text-align: center;
}
.mc-search-empty b {
  color: var(--mc-navy);
  font-weight: 700;
}
.mc-topbar-live { font-size: 11.5px; color: var(--mc-mute);
  display: inline-flex; align-items: center; gap: 7px; }
.mc-live-dot {
  width: 7px; height: 7px; border-radius: 50%; background: var(--mc-green);
  display: inline-block; vertical-align: middle;
  box-shadow: 0 0 0 0 rgba(31, 138, 76, 0.55);
  animation: mc-pulse 2.4s ease-in-out infinite;
}
.mc-live-dot.warn { background: var(--mc-amber); }

/* "Saved X ago" / "Synced X ago" status — replaces the green
   pulsing dot with a matching-green Font Awesome icon. The sync
   icon spins so the user feels the page is actively reflecting
   the latest data. */
.mc-topbar-live .mc-live-status-ic {
  font-size: 11px;
  color: #1f8a4c;
  line-height: 1;
}
.mc-topbar-live.is-status-synced .mc-live-status-ic {
  animation: mc-sync-spin 2.2s linear infinite;
}
.mc-topbar-live.is-status-saved {
  color: #166831;
}
.mc-topbar-live.is-status-synced {
  color: #166831;
}
@keyframes mc-sync-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
@keyframes mc-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(31, 138, 76, 0.45); }
  70%  { box-shadow: 0 0 0 6px rgba(31, 138, 76, 0); }
  100% { box-shadow: 0 0 0 0 rgba(31, 138, 76, 0); }
}
.mc-topbar-right { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.mc-bell {
  width: 32px; height: 32px; border-radius: 8px; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--mc-mute); font-size: 14px; position: relative;
  background: transparent; border: none;
}
.mc-bell:hover { color: var(--mc-navy); background: rgba(11,59,94,0.05); }
.mc-bell .mc-bell-count {
  position: absolute; top: 2px; right: 2px;
  background: var(--mc-red); color: white; font-size: 9px; font-weight: 700;
  min-width: 14px; height: 14px; padding: 0 3px; border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1.5px solid white;
}

/* ============================================================
   Notifications — bell dropdown (2026-06-08)
   Bell toggles a glassy dropdown anchored under it; the unread
   badge is driven client-side from the JSON feed. Mirrors the
   search dropdown's look and the topbar's surface tokens.
   ============================================================ */
.mc-notif-host { position: relative; display: inline-flex; }
.mc-bell .mc-bell-badge {
  position: absolute; top: 1px; right: 1px;
  background: var(--mc-red); color: #fff; font-size: 9px; font-weight: 700;
  min-width: 15px; height: 15px; padding: 0 3px; border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1.5px solid #fff; line-height: 1; pointer-events: none;
}
.mc-bell.has-unread { color: var(--mc-navy); }

.mc-notif-panel {
  position: absolute; top: calc(100% + 10px); right: 0; z-index: 1200;
  width: 360px; max-width: calc(100vw - 24px);
  background: #fff; border: 1px solid var(--mc-line); border-radius: 14px;
  box-shadow: var(--mc-shadow-3); overflow: hidden;
}
.mc-notif-panel[hidden] { display: none; }
.mc-notif-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 14px; border-bottom: 1px solid var(--mc-line-2);
}
.mc-notif-title { font-size: 13.5px; font-weight: 700; color: var(--mc-ink); }
.mc-notif-readall {
  background: transparent; border: none; cursor: pointer;
  font-size: 11.5px; font-weight: 600; color: var(--mc-blue);
  padding: 2px 4px; border-radius: 6px; font-family: inherit;
}
.mc-notif-readall:hover { background: var(--mc-blue-soft); }
.mc-notif-list { max-height: 60vh; overflow-y: auto; padding: 4px; }
.mc-notif-loading, .mc-notif-empty {
  padding: 26px 16px; text-align: center; color: var(--mc-mute);
  font-size: 12.5px; display: flex; flex-direction: column;
  align-items: center; gap: 8px;
}
.mc-notif-empty i { font-size: 22px; color: var(--mc-green); }

.mc-notif-row {
  display: flex; align-items: flex-start; gap: 11px;
  padding: 11px 12px; border-radius: 10px; text-decoration: none;
  color: inherit; cursor: pointer; position: relative;
}
.mc-notif-row + .mc-notif-row { margin-top: 2px; }
.mc-notif-row:hover { background: rgba(11,59,94,0.04); }
.mc-notif-row.is-unread { background: rgba(0,113,188,0.05); }
.mc-notif-row.is-unread:hover { background: rgba(0,113,188,0.09); }
.mc-notif-ic {
  flex: 0 0 auto; width: 30px; height: 30px; border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 13px; background: var(--mc-blue-soft); color: var(--mc-blue);
}
.mc-notif-row.tone-danger  .mc-notif-ic { background: var(--mc-red-soft);   color: var(--mc-red); }
.mc-notif-row.tone-warning .mc-notif-ic { background: var(--mc-amber-soft); color: var(--mc-amber); }
.mc-notif-row.tone-info    .mc-notif-ic { background: var(--mc-blue-soft);  color: var(--mc-blue); }
.mc-notif-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.mc-notif-row-title { font-size: 13px; font-weight: 600; color: var(--mc-ink); line-height: 1.3; }
.mc-notif-row-text { font-size: 11.5px; color: var(--mc-mute); line-height: 1.35; }
.mc-notif-row-meta {
  font-size: 10px; font-weight: 700; letter-spacing: 0.03em;
  text-transform: uppercase; color: var(--mc-mute-2); margin-top: 2px;
}
.mc-notif-dot {
  flex: 0 0 auto; width: 8px; height: 8px; border-radius: 999px;
  background: var(--mc-blue); margin-top: 6px;
}

/* Top-right shows a static image of the current tenant's logo —
   no button affordance, no link. Whitelabel tenants get their
   uploaded logo as an <img>; everyone else gets a 2-letter
   initials avatar acting as a stand-in logo. */
.mc-topbar-co {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: default;
  background: transparent;
  border: 0;
  padding: 0;
}
.mc-topbar-co-img {
  height: 34px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  display: block;
}
.mc-topbar-co-av {
  width: 34px; height: 34px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--mc-amber), #d99440);
  color: white;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 12.5px; font-weight: 700;
  flex-shrink: 0;
}

/* ============================================================
   5. PAGE CONTENT WRAPPER
   ============================================================ */
.mc-content { padding: 0 0 60px; flex: 1; }
.mc-content > .container,
.mc-content > .container-fluid {
  max-width: 1480px;
}

/* Page header within content — title + meta. */
.mc-page-head {
  padding: 24px 32px 8px;
}
.mc-page-head h1, .mc-page-head .mc-page-title {
  font-size: 26px; font-weight: 600; margin: 0 0 4px;
  color: var(--mc-navy); letter-spacing: -0.014em;
}
.mc-page-head .mc-page-sub {
  font-size: 13px; color: var(--mc-mute); margin: 0;
}

/* ============================================================
   6. HERO (Dashboard cream card)
   ============================================================ */
.mc-hero {
  margin: 14px 32px 12px;
  padding: 22px 36px;
  border-radius: 22px;
  background:
    radial-gradient(circle at 88% 0%, rgba(255, 219, 168, 0.50), transparent 58%),
    linear-gradient(110deg, #ffffff 0%, #fdf8f1 42%, #fbead6 100%);
  box-shadow: 0 1px 2px rgba(186,117,23,0.04), 0 14px 32px rgba(186,117,23,0.08);
  position: relative; overflow: hidden;
  display: grid; grid-template-columns: 1.3fr 1fr; gap: 32px; align-items: center;
}
@media (max-width: 900px) {
  .mc-hero { grid-template-columns: 1fr; padding: 18px 22px; }
}
.mc-hero h2 {
  margin: 0 0 6px; font-size: 26px; font-weight: 500;
  color: var(--mc-navy); letter-spacing: -0.018em; line-height: 1.15;
}
.mc-hero h2 em { color: var(--mc-navy); font-style: normal; font-weight: 600; }
.mc-hero p {
  margin: 0 0 12px; font-size: 14px; color: #5a4a2a;
  line-height: 1.5; max-width: 460px;
}
.mc-hero p b { color: var(--mc-navy); }
.mc-hero p b.good { color: var(--mc-green); }

/* "Biggest lift" inline tip inside the hero. */
.mc-lift {
  display: inline-flex; align-items: center; gap: 12px;
  background: white; border: 1px solid rgba(186,117,23,0.20); border-radius: 14px;
  padding: 12px 16px; max-width: 540px;
  box-shadow: 0 4px 14px rgba(186,117,23,0.06);
  text-decoration: none; color: inherit;
}
.mc-lift:hover { text-decoration: none; color: inherit; box-shadow: 0 8px 20px rgba(186,117,23,0.10); }
.mc-lift .ic {
  width: 30px; height: 30px; border-radius: 8px;
  background: var(--mc-amber-soft); color: var(--mc-amber);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; flex-shrink: 0;
}
.mc-lift .txt { font-size: 13px; color: var(--mc-ink); line-height: 1.5; }
.mc-lift .txt b { color: var(--mc-navy); font-weight: 700; }
.mc-lift .txt a { color: var(--mc-blue); font-weight: 700; text-decoration: none; white-space: nowrap; }

/* Posture ring. */
/* Hero column wrapper — stacks the ring + the "last lift" line
   beneath it. Both center horizontally. */
.mc-postring-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
}
.mc-postring { display: flex; justify-content: center; align-items: center; position: relative; }
.mc-postring svg {
  width: 188px; height: 188px; transform: rotate(-90deg);
  /* Allow the `.fg` arc's drop-shadow to bleed past the SVG box.
     Without this, the filter region is clipped to the SVG element's
     edges and the shadow shows hard rectangular corners. */
  overflow: visible;
}
.mc-postring .bg { fill: none; stroke: rgba(11,59,94,0.12); stroke-width: 14; }
.mc-postring .fg {
  fill: none; stroke: url(#mc-grad); stroke-width: 14; stroke-linecap: round;
  stroke-dasharray: 628.32;
  filter: drop-shadow(0 6px 12px rgba(0,113,188,0.25));
  transition: stroke-dashoffset 0.6s ease;
}
/* Score-tier color variants. Applied via a class on `.mc-postring`
   chosen from `$mc_posture_pct` in the dashboard hero — green at
   85%+, blue 60–84, amber 40–59, red below 40. The drop-shadow hue
   tracks the stroke so the glow reads as the same colour. */
.mc-postring.is-green .fg {
  stroke: url(#mc-grad-green);
  filter: drop-shadow(0 6px 12px rgba(31,138,76,0.25));
}
.mc-postring.is-blue .fg {
  stroke: url(#mc-grad-blue);
  filter: drop-shadow(0 6px 12px rgba(0,113,188,0.25));
}
.mc-postring.is-amber .fg {
  stroke: url(#mc-grad-amber);
  filter: drop-shadow(0 6px 12px rgba(214,141,0,0.28));
}
.mc-postring.is-red .fg {
  stroke: url(#mc-grad-red);
  filter: drop-shadow(0 6px 12px rgba(196,18,48,0.28));
}
.mc-postring.is-clay .fg {
  stroke: url(#mc-grad-clay);
  filter: drop-shadow(0 6px 12px rgba(194,65,12,0.26));
}
/* Score number tracks the ring tier (low=clay, mid=gold, high=green). */
.mc-postring.is-green .ctr .num { color: var(--score-high); }
.mc-postring.is-amber .ctr .num { color: var(--score-mid); }
.mc-postring.is-clay  .ctr .num { color: var(--score-low); }
.mc-postring .ctr {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.mc-postring .ctr .label {
  font-size: 10px; font-weight: 700; color: var(--mc-mute);
  text-transform: uppercase; letter-spacing: 0.14em;
}
.mc-postring .ctr .num {
  font-size: 56px; font-weight: 300; color: var(--mc-navy);
  letter-spacing: -0.04em; line-height: 1; margin-top: 4px;
}
.mc-postring .ctr .num small { font-size: 21px; font-weight: 400; color: var(--mc-mute); }

/* Last action that lifted posture — sits as a single line of
   inline text beneath the ring, no background container. The
   arrow + points pop in green, the event reads navy, and the
   timestamp recedes in muted grey. Keeps the hero card visually
   uncluttered. */
.mc-posture-lift {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  font-size: 12.5px;
  color: var(--mc-mute);
  max-width: 100%;
  flex-wrap: wrap;
  justify-content: center;
  text-align: center;
  line-height: 1.4;
}
.mc-posture-lift-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px; height: 14px;
  background: transparent;
  color: var(--mc-green);
  flex-shrink: 0;
  align-self: center;
}
.mc-posture-lift-arrow svg { width: 12px; height: 12px; }
.mc-posture-lift-pts {
  font-weight: 700;
  color: var(--mc-green);
  font-size: 13px;
  letter-spacing: -0.005em;
}
.mc-posture-lift-sep {
  color: var(--mc-mute);
  opacity: 0.6;
}
.mc-posture-lift-what {
  font-weight: 600;
  color: var(--mc-navy);
}
.mc-posture-lift-when {
  color: var(--mc-mute);
  font-size: 12px;
}
.mc-posture-lift-when::before {
  content: '·';
  margin: 0 6px 0 4px;
  color: var(--mc-mute);
  opacity: 0.6;
}
.mc-postring .ctr .tr { margin-top: 6px; font-size: 13px; font-weight: 700; color: var(--mc-green); }
.mc-postring .ctr .tr.flat { color: var(--mc-mute); }
.mc-postring .ctr .tr.down { color: var(--mc-red); }

/* Success-state hero (Frame 6 — Training hit 100%). */
.mc-hero.is-celebrate {
  background:
    radial-gradient(circle at 85% 0%, rgba(102, 211, 156, 0.45), transparent 55%),
    radial-gradient(circle at 0% 100%, rgba(0, 113, 188, 0.12), transparent 55%),
    linear-gradient(135deg, #e6f4ec 0%, #f4ede0 100%);
  box-shadow: 0 1px 2px rgba(31,138,76,0.05), 0 14px 30px rgba(31,138,76,0.10);
}
.mc-hero.is-celebrate h2 em { color: var(--mc-green); }

/* ============================================================
   7. SECTION HEADS — used above each module row
   ============================================================ */
.mc-section-head {
  padding: 18px 32px 10px; display: flex; align-items: baseline; gap: 8px;
}
.mc-section-head h3 { margin: 0; font-size: 16px; color: var(--mc-navy); font-weight: 700; }
.mc-section-head .meta { font-size: 12px; color: var(--mc-mute); }
.mc-section-head a {
  margin-left: auto; font-size: 12.5px; color: var(--mc-blue);
  font-weight: 600; text-decoration: none;
}
.mc-section-head a:hover { text-decoration: underline; }

/* ============================================================
   8. ACTION CARDS (What to address today)
   ============================================================ */
.mc-actrow {
  padding: 0 32px 14px;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
}
@media (max-width: 1100px) { .mc-actrow { grid-template-columns: 1fr; } }
.mc-act {
  padding: 16px 18px; background: white; border-radius: 14px;
  border: 1px solid var(--mc-line);
  box-shadow: 0 1px 2px rgba(11,59,94,0.04);
  border-top: 4px solid var(--mc-navy);
  display: grid; grid-template-columns: 44px 1fr auto; gap: 14px; align-items: center;
  cursor: pointer; transition: transform 0.15s ease, box-shadow 0.15s ease;
  text-decoration: none; color: inherit;
}
/* Address-today card accents stay calm navy regardless of tone;
   urgency is carried by the posture-component leads below. */
.mc-act.warn, .mc-act.info, .mc-act.bad, .mc-act.ok { border-top-color: var(--mc-navy); }
.mc-act:hover {
  transform: translateY(-2px);
  box-shadow: 0 1px 2px rgba(11,59,94,0.04), 0 12px 24px rgba(11,59,94,0.08);
  text-decoration: none; color: inherit;
}
.mc-act .ico {
  width: 32px; height: 44px;
  background: transparent;
  border: 0;
  color: var(--mc-mute);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 22px;
  flex-shrink: 0;
}
.mc-act h4 {
  margin: 0 0 2px; font-size: 15px; color: var(--mc-navy);
  font-weight: 700; line-height: 1.3;
}
.mc-act p { margin: 0; font-size: 12.5px; color: var(--mc-mute); line-height: 1.45; }
.mc-act p b { color: var(--mc-ink); }
.mc-act .cta {
  font-size: 13px; font-weight: 700; color: var(--mc-navy);
  display: inline-flex; align-items: center; gap: 4px; white-space: nowrap;
}
.mc-act.warn .cta, .mc-act.info .cta, .mc-act.bad .cta, .mc-act.ok .cta { color: var(--action); }

/* ============================================================
   9. POSTURE COMPONENT CARDS (modules grid)
   ============================================================ */
.mc-pcomp-head {
  padding: 22px 32px 8px; display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap;
}
.mc-pcomp-head h3 { margin: 0; font-size: 16px; color: var(--mc-navy); font-weight: 700; }
.mc-pcomp-head .total {
  padding: 4px 12px; border-radius: 999px;
  background: var(--mc-green-soft); color: var(--mc-green);
  font-size: 12px; font-weight: 700;
}
.mc-pcomp-head .total b { font-size: 14px; }
.mc-pcomp-head .meta { font-size: 12px; color: var(--mc-mute); }
.mc-pcomp-head a {
  margin-left: auto; font-size: 12.5px; color: var(--mc-blue);
  font-weight: 600; text-decoration: none;
}

.mc-modgrid {
  padding: 0 32px 16px;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
}
@media (max-width: 1300px) { .mc-modgrid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 980px)  { .mc-modgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .mc-modgrid { grid-template-columns: 1fr; } }

/* ============================================================
   "Explore other Medcurity modules" — upsell + integration tiles
   shown beneath the posture breakdown for modules this tenant
   doesn't currently have. Visually treated as "not on the
   account": dashed border, desaturated background, muted icons
   and text. A solid CTA pill is the only thing that "pops" so
   the affordance reads as "click to add."
   ============================================================ */

/* Section divider so the upsell row reads as visually separate
   from the live posture breakdown above it. */
.mc-offer-section {
  margin: 20px 32px 0;
  padding: 18px 0 0;
  border-top: 1px dashed rgba(11, 59, 94, 0.20);
}
.mc-offer-section .mc-section-head {
  padding: 0 0 10px;
}
.mc-offer-section .mc-section-head h3 { color: var(--mc-mute); }
.mc-offer-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: 6px;
  padding: 2px 9px;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--mc-mute);
  background: rgba(11, 59, 94, 0.05);
  border: 1px dashed rgba(11, 59, 94, 0.25);
  border-radius: 999px;
  vertical-align: middle;
}

.mc-offergrid {
  padding: 0 0 18px;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
}
@media (max-width: 1100px) { .mc-offergrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 720px)  { .mc-offergrid { grid-template-columns: 1fr; } }

a.mc-offer {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 16px 18px;
  /* Faintly-tinted off-white background instead of pure white so
     the card visibly "recedes" against the posture rows above. */
  background: rgba(11, 59, 94, 0.025);
  /* Dashed border = the universal "not added / placeholder" cue. */
  border: 1.5px dashed rgba(11, 59, 94, 0.20);
  border-radius: 14px;
  box-shadow: none;
  text-decoration: none;
  color: inherit;
  transition: border-color 120ms ease, background 120ms ease,
              box-shadow 120ms ease, transform 120ms ease;
  position: relative;
}
a.mc-offer:hover {
  /* Hover "wakes" the card — the dashed line becomes a solid blue
     border so the user gets clear visual feedback that this is
     an interactive thing they can click. */
  border-style: solid;
  border-color: var(--mc-blue);
  background: white;
  box-shadow: 0 6px 18px rgba(0, 113, 188, 0.12);
  transform: translateY(-1px);
  text-decoration: none;
  color: inherit;
}
.mc-offer-ic {
  width: 32px; height: 44px;
  background: transparent;
  border: 0;
  border-radius: 0;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 22px;
  flex-shrink: 0;
  color: var(--mc-mute);
  transition: color 120ms ease;
}
a.mc-offer:hover .mc-offer-ic { color: var(--mc-navy); }
.mc-offer-body {
  min-width: 0;
  display: flex; flex-direction: column; gap: 4px;
}
.mc-offer-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--mc-mute);
  letter-spacing: -0.005em;
  transition: color 120ms ease;
}
a.mc-offer:hover .mc-offer-name { color: var(--mc-navy); }
.mc-offer-desc {
  font-size: 12.5px;
  color: var(--mc-mute);
  line-height: 1.5;
  opacity: 0.85;
}
.mc-offer-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  font-size: 12px;
  font-weight: 700;
  color: var(--mc-navy);
  white-space: nowrap;
  align-self: center;
  /* Just slightly darker than the card's 2.5% navy-tinted bg so
     the CTA reads as a quiet affordance, not a flashy primary
     button. Lifts on hover. */
  background: rgba(11, 59, 94, 0.08);
  border: 1px solid rgba(11, 59, 94, 0.10);
  border-radius: 999px;
  box-shadow: none;
  transition: background 120ms ease, color 120ms ease,
              border-color 120ms ease;
}
a.mc-offer:hover .mc-offer-cta {
  background: rgba(0, 113, 188, 0.12);
  color: var(--mc-blue);
  border-color: rgba(0, 113, 188, 0.25);
}

/* Tone variants — kept as no-ops so the markup still passes the
   class, but every icon now uses the shared muted-grey treatment
   from `.mc-offer-ic` regardless of which tone it carries. The
   "you don't have this yet" cue lives in the dashed card border,
   not in the icon color. */

.mc-pcomp {
  background: white; border-radius: 16px; padding: 18px 18px 16px;
  border: 1px solid var(--mc-line); cursor: pointer; position: relative;
  box-shadow: 0 1px 2px rgba(11,59,94,0.04);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  display: flex; flex-direction: column;
  text-decoration: none; color: inherit;
}
.mc-pcomp:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(11,59,94,0.08); border-color: rgba(11,59,94,0.15);
  text-decoration: none; color: inherit;
}
.mc-pcomp .pc-top { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.mc-pcomp .pc-top .ic {
  width: auto; height: 32px;
  background: transparent;
  border: 0;
  color: var(--mc-mute);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
  padding-right: 2px;
}
.mc-pcomp .pc-top h5 {
  margin: 0; font-size: 14px; color: var(--mc-navy); font-weight: 700; line-height: 1.25;
}
.mc-pcomp .pc-top .pscore {
  margin-left: auto; font-size: 12px; font-weight: 700; color: var(--mc-green);
  font-variant-numeric: tabular-nums; white-space: nowrap;
}
.mc-pcomp .pc-top .pscore.hi { color: var(--score-high); }
.mc-pcomp .pc-top .pscore.md { color: var(--score-mid); }
.mc-pcomp .pc-top .pscore.lo { color: var(--score-low); }
.mc-pcomp .pc-top .pscore.empty { color: var(--text-secondary); }

.mc-pcomp .pc-bar {
  height: 11px; border-radius: 999px;
  background: rgba(11,59,94,0.10); overflow: hidden;
  margin: 6px 0 14px;
  box-shadow: inset 0 1px 2px rgba(11,59,94,0.12);
}
.mc-pcomp .pc-bar i {
  display: block; height: 100%; border-radius: 999px;
  /* Dark → light: bar starts at the saturated brand colour at the
     left edge and softens toward the right tip. Reads as "anchored"
     rather than "fading in." Same direction across every progress
     bar on the platform. */
  background: linear-gradient(90deg, var(--mc-green), #66d39c);
  box-shadow: 0 0 8px rgba(31,138,76,0.30);
}
.mc-pcomp .pc-bar i.hi {
  background: linear-gradient(90deg, var(--mc-green), #66d39c);
  box-shadow: 0 0 8px rgba(31,138,76,0.30);
}
.mc-pcomp .pc-bar i.md {
  background: linear-gradient(90deg, var(--mc-gold), #e6c264);
  box-shadow: 0 0 8px rgba(184,134,11,0.30);
}
.mc-pcomp .pc-bar i.lo {
  background: linear-gradient(90deg, var(--mc-clay), #e9966a);
  box-shadow: 0 0 8px rgba(194,65,12,0.30);
}
.mc-pcomp .pc-bar i.empty {
  background: rgba(11,59,94,0.12); box-shadow: none;
}
.mc-pcomp .pc-meta { font-size: 12px; color: var(--mc-mute); line-height: 1.55; }
.mc-pcomp .pc-meta b { color: var(--mc-ink); font-weight: 700; }
.mc-pcomp .pc-lead {
  display: block; margin-bottom: 14px; font-weight: 700; color: var(--mc-ink);
}
.mc-pcomp .pc-lead.ok { color: var(--success); }
.mc-pcomp .pc-lead.warn { color: var(--warning); }
.mc-pcomp .pc-lead.bad { color: var(--alert); }
.mc-pcomp .pc-lead.muted { color: var(--mc-mute); font-style: italic; font-weight: 600; }

/* ── Locked signal ────────────────────────────────────────────
   When a posture signal can't even be attempted because something
   else is gating it (Worklist is locked until SRA is finalized,
   for example), we render the score slot as a small grey lock
   icon instead of a number. No second colored badge anywhere on
   the card — the lock + the narrative paragraph carry the
   message together. Card chrome stays normal (no gray-out).
   ───────────────────────────────────────────────────────── */
.mc-pcomp .pc-top .pscore.mc-pscore-locked {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: auto;
  height: auto;
  padding: 0;
  border-radius: 0;
  background: transparent;
  /* Light grey — a couple of steps lighter than --mc-mute so the
     lock reads as a quiet "blocked" cue rather than a strong icon.
     Locked signals the tenant still HAS carry their "0 / N" score
     next to the lock (they count toward the total, earning 0 until
     unlocked), so the badge keeps a real font size. */
  color: rgba(11, 59, 94, 0.38);
  font-size: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.mc-pcomp .pc-top .pscore.mc-pscore-locked i {
  font-size: 15px;
  /* Solid FA5 doesn't include a thinner lock variant, so compress
     horizontally to thin the silhouette while keeping the same
     rendered height. */
  display: inline-block;
  transform: scale(0.82, 0.95);
  transform-origin: center;
}

/* ============================================================
   "How Posture Score is calculated" modal — clean redesign.

   Replaces the default Bootstrap modal chrome with the uplift
   card aesthetic: white card, soft navy shadow, generous
   padding, navy heading + muted body, compact row list of
   signals with mini progress bars, and a single total row at
   the bottom. Sized so the whole thing fits without scrolling
   on a typical viewport.
   ============================================================ */
.mc-pmodal .mc-pmodal-dialog {
  max-width: 720px;
  width: calc(100% - 32px);
  margin: 1.75rem auto;
}
.mc-pmodal .mc-pmodal-content {
  position: relative;
  background: white;
  border: 0;
  border-radius: 18px;
  padding: 28px 30px 24px;
  box-shadow:
    0 24px 60px rgba(11, 59, 94, 0.18),
    0 6px 18px rgba(11, 59, 94, 0.10);
  overflow: hidden;
}
.mc-pmodal .modal-content > * { font-family: var(--mc-font); }

.mc-pmodal-close {
  position: absolute;
  top: 14px; right: 16px;
  width: 32px; height: 32px;
  border: 0;
  background: transparent;
  color: var(--mc-mute);
  font-size: 14px;
  border-radius: 8px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 120ms ease, color 120ms ease;
}
.mc-pmodal-close:hover {
  background: rgba(11, 59, 94, 0.06);
  color: var(--mc-navy);
}

.mc-pmodal-head { padding: 0; margin: 0 0 18px; }
.mc-pmodal-eyebrow {
  display: block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--mc-blue);
  margin-bottom: 4px;
}
.mc-pmodal-head h3 {
  margin: 0 0 8px;
  font-size: 20px;
  font-weight: 700;
  color: var(--mc-navy);
  letter-spacing: -0.005em;
  line-height: 1.2;
}
.mc-pmodal-head p {
  margin: 0;
  font-size: 13px;
  color: var(--mc-mute);
  line-height: 1.55;
  max-width: 640px;
}
.mc-pmodal-head p em {
  color: var(--mc-navy);
  font-style: italic;
}

.mc-pmodal-rows {
  display: grid;
  gap: 4px;
  margin: 0 0 16px;
}
.mc-pmodal-rowwrap {
  border-radius: 10px;
  transition: background 120ms ease;
}
.mc-pmodal-row {
  /* Reset button defaults so the row reads as a row, not a button. */
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: 0;
  width: 100%;
  text-align: left;
  font: inherit;
  color: inherit;
  cursor: pointer;

  display: grid;
  grid-template-columns: 28px 1fr minmax(120px, 180px) 80px 18px;
  gap: 14px;
  align-items: center;
  padding: 9px 10px;
  border-radius: 10px;
  transition: background 120ms ease;
}
.mc-pmodal-row:hover { background: rgba(11, 59, 94, 0.04); }
.mc-pmodal-row:focus-visible {
  outline: 2px solid rgba(11, 59, 94, 0.35);
  outline-offset: 2px;
}
.mc-pmodal-row[aria-expanded="true"] {
  background: rgba(11, 59, 94, 0.05);
}

.mc-pmodal-row-chev {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  color: var(--mc-mute);
  transition: transform 180ms ease, color 120ms ease;
}
.mc-pmodal-row:hover .mc-pmodal-row-chev { color: var(--mc-navy); }
.mc-pmodal-row[aria-expanded="true"] .mc-pmodal-row-chev {
  transform: rotate(180deg);
  color: var(--mc-navy);
}

/* Expanded detail panel — sits directly under the row. */
.mc-pmodal-row-detail {
  padding: 2px 10px 10px 50px; /* align under the body column */
}
.mc-pmodal-row-detail[hidden] { display: none; }
.mc-pmodal-row-detail-inner {
  display: grid;
  gap: 10px;
  padding: 12px 14px;
  background: white;
  border: 1px solid rgba(11, 59, 94, 0.10);
  border-radius: 10px;
  box-shadow: 0 1px 0 rgba(11, 59, 94, 0.03);
  opacity: 0;
  transform: translateY(-2px);
  transition: opacity 180ms ease, transform 180ms ease;
}
.mc-pmodal-row-detail.is-open .mc-pmodal-row-detail-inner {
  opacity: 1;
  transform: translateY(0);
}
.mc-pmodal-row-detail-section { display: grid; gap: 3px; }
.mc-pmodal-row-detail-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--mc-blue);
}
.mc-pmodal-row-detail-section p {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--mc-navy);
  opacity: 0.85;
}
.mc-pmodal-row.is-locked + .mc-pmodal-row-detail .mc-pmodal-row-detail-label {
  color: rgba(11, 59, 94, 0.55);
}
.mc-pmodal-row-ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  color: var(--mc-mute);
}
.mc-pmodal-row-body { min-width: 0; }
.mc-pmodal-row-name {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--mc-navy);
  letter-spacing: -0.005em;
}
.mc-pmodal-row-what {
  font-size: 11.5px;
  color: var(--mc-mute);
  margin-top: 1px;
}
.mc-pmodal-row-bar { padding-right: 6px; }
.mc-pmodal-row-bartrack {
  width: 100%;
  height: 6px;
  border-radius: 999px;
  background: rgba(11, 59, 94, 0.08);
  overflow: hidden;
}
.mc-pmodal-row-bartrack i {
  display: block;
  height: 100%;
  background: var(--mc-green);
  border-radius: 999px;
  transition: width 0.3s ease;
}
.mc-pmodal-row-bartrack i.md { background: var(--mc-amber); }
.mc-pmodal-row-bartrack i.lo { background: var(--mc-red); }
.mc-pmodal-row-score {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-size: 13px;
}
.mc-pmodal-row-score .num {
  font-weight: 700;
  color: var(--mc-navy);
}
.mc-pmodal-row-score .den { color: var(--mc-mute); margin-left: 2px; }
.mc-pmodal-row-score .muted { color: var(--mc-mute); font-style: italic; }

.mc-pmodal-row.is-locked .mc-pmodal-row-ic { color: rgba(11, 59, 94, 0.32); }
.mc-pmodal-row.is-locked .mc-pmodal-row-name,
.mc-pmodal-row.is-locked .mc-pmodal-row-what {
  font-style: italic;
}

.mc-pmodal-total {
  margin-top: 8px;
  padding: 14px 14px;
  border-top: 1px solid rgba(11, 59, 94, 0.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.mc-pmodal-total-formula {
  display: flex; flex-direction: column; gap: 2px;
}
.mc-pmodal-total-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--mc-navy);
  letter-spacing: -0.005em;
}
.mc-pmodal-total-formula-text {
  font-size: 11.5px;
  color: var(--mc-mute);
}
.mc-pmodal-total-score {
  font-variant-numeric: tabular-nums;
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
}
.mc-pmodal-total-score .num {
  font-size: 28px;
  font-weight: 700;
  color: var(--mc-navy);
  letter-spacing: -0.02em;
  line-height: 1;
}
.mc-pmodal-total-score .den {
  font-size: 16px;
  color: var(--mc-mute);
  font-weight: 500;
}

/* "What a 100/100 means" footnote — sits under the total row.
   Deliberately quiet (muted text on a soft navy wash) so it reads
   as context, not an alert. */
.mc-pmodal-disclaimer {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 10px 14px 14px;
  padding: 12px 14px;
  background: rgba(11, 59, 94, 0.04);
  border: 1px solid rgba(11, 59, 94, 0.07);
  border-radius: 10px;
}
.mc-pmodal-disclaimer-ic {
  flex-shrink: 0;
  color: rgba(11, 59, 94, 0.45);
  font-size: 13px;
  line-height: 1.55;
  padding-top: 1px;
}
.mc-pmodal-disclaimer p {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--mc-mute);
}
.mc-pmodal-disclaimer p b {
  color: var(--mc-navy);
  font-weight: 600;
}

/* Strip Bootstrap modal default chrome so our custom card shows
   through cleanly — our card-styling lives on .mc-pmodal-content,
   which IS the .modal-content element. */
.mc-pmodal .modal-header,
.mc-pmodal .modal-footer { display: none; }
.mc-pmodal .modal-body { padding: 0; }

@media (max-width: 600px) {
  .mc-pmodal-row {
    grid-template-columns: 24px 1fr 70px 16px;
    grid-template-areas:
      "ic name score chev"
      ".  bar  bar   bar";
    gap: 8px 10px;
  }
  .mc-pmodal-row-ic     { grid-area: ic; }
  .mc-pmodal-row-body   { grid-area: name; }
  .mc-pmodal-row-score  { grid-area: score; }
  .mc-pmodal-row-chev   { grid-area: chev; }
  .mc-pmodal-row-bar    { grid-area: bar; padding-right: 0; }
  .mc-pmodal-row-detail { padding-left: 34px; padding-right: 0; }
}

/* When the card is locked, italicise the supporting text — the lead
   sentence and the narrative paragraph — so the whole card reads
   visually as "pending / on hold". The card title (`h5`) stays
   upright so it still anchors as a real heading. */
.mc-pcomp.is-locked .pc-meta,
.mc-pcomp.is-locked .pc-meta .pc-lead {
  font-style: italic;
}
.mc-pcomp.is-locked .pc-top h5 { font-style: normal; }

/* Legacy `.is-missing` styling removed — non-contributing signals
   now keep their normal card chrome and instead carry an inline
   status badge (lock / wrench / hourglass) that explains why the
   signal isn't measurable. Block left below in case anything still
   targets it, but all of its rules have been neutralized. */
.mc-pcomp.is-missing-legacy-disabled {
  background: rgba(255,255,255,0.50);
  border-style: dashed; border-color: rgba(11,59,94,0.15);
}
.mc-pcomp.is-missing .pc-top .ic { background: rgba(11,59,94,0.06); color: var(--mc-mute); border-color: transparent; }
.mc-pcomp.is-missing .pc-top h5 { color: var(--mc-mute); }
.mc-pcomp.is-missing .pc-bar { background: transparent; }
.mc-pcomp.is-missing .pc-bar i { display: none; }
.mc-pcomp.is-missing .pc-meta { color: var(--mc-mute); }

/* Locked / activate card. */
.mc-mod-locked {
  background: rgba(255,255,255,0.50);
  border: 1px dashed rgba(11,59,94,0.15);
  border-radius: 16px;
  padding: 18px 18px 16px;
  position: relative;
}
.mc-mod-locked .ico {
  width: 36px; height: 36px; border-radius: 10px;
  background: rgba(11,59,94,0.06); color: var(--mc-mute);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 15px; margin-bottom: 12px;
}
.mc-mod-locked h5 { margin: 0; font-size: 13.5px; color: var(--mc-mute); font-weight: 700; }
.mc-mod-locked .meta { font-size: 11.5px; color: var(--mc-mute); margin-top: 4px; line-height: 1.4; }
.mc-mod-locked .activate {
  margin-top: 12px; padding: 7px 12px; background: white;
  border: 1px solid var(--mc-navy); color: var(--mc-navy);
  border-radius: 999px; font-size: 11.5px; font-weight: 700;
  display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
}
.mc-mod-locked .activate:hover { background: var(--mc-navy); color: white; }

/* ============================================================
   10. SRA WIZARD STYLES — apply to existing SRA pages by
       wrapping the SRA body in .mc-sra-wrap.
   ============================================================ */
.mc-sra-statusbar {
  background: linear-gradient(180deg, #1a4a6e, var(--mc-navy));
  padding: 20px 32px 22px; color: white; border-radius: 18px 18px 0 0;
  /* Side margin matches the .company_questions outer padding (24px)
     so the navy bar lines up cleanly with the columns below. */
  margin: 24px 24px 0;
}
.mc-sra-statusbar .meta {
  display: flex; justify-content: space-between; font-size: 12.5px;
  opacity: 0.85; margin-bottom: 8px;
}
.mc-sra-statusbar .meta b { color: white; opacity: 1; font-weight: 700; }
.mc-sra-statusbar .titlerow { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 12px; }
.mc-sra-statusbar h2 { margin: 0; font-size: 22px; font-weight: 500; letter-spacing: -0.01em; color: white; }
.mc-sra-statusbar h2 b { color: #ffd166; }
/* Beat the platform-wide `body.has-uplift .mc-content h2 { color: navy }`
   default — the statusbar sits on the navy gradient hero, so its
   heading needs to be white. The non-bold parts ("Keep going",
   "Generate your risk matrix", etc.) were rendering in navy on
   navy and disappearing. */
body.has-uplift .mc-content .mc-sra-statusbar h2 { color: white; }
body.has-uplift .mc-content .mc-sra-statusbar h2 b { color: #ffd166; }
.mc-sra-statusbar .pct {
  font-size: 36px;
  font-weight: 300;
  letter-spacing: -0.02em;
  line-height: 1;
  color: white;
  /* Force the big number and the small denominator onto the same
     line — without this the "/140" was wrapping below "126" when
     the flex item ran out of width. */
  white-space: nowrap;
}
.mc-sra-statusbar .pct small,
body.has-uplift .mc-sra-statusbar .pct small {
  /* Force inline rendering — another rule in app.css resets <small>
     to display:block, which was stacking "/140" beneath "126"
     instead of placing it next to the big number. */
  display: inline !important;
  font-size: 18px;
  /* Match the .foot text visually — that block has opacity: 0.78
     on its parent, rendering white at 78% on the navy gradient.
     The big number stays solid white; this small denominator
     now sits in the same "supporting label" tier as the foot
     text. Platform-wide `small { color: var(--mc-mute) }` was
     winning the cascade, hence !important. */
  color: rgba(255, 255, 255, 0.78) !important;
  margin-left: 1px;
}
.mc-sra-statusbar .bar { height: 10px; background: rgba(255,255,255,0.16); border-radius: 999px; overflow: hidden; }
.mc-sra-statusbar .bar i {
  display: block; height: 100%;
  background: linear-gradient(90deg, #1f8a4c, #66d39c); border-radius: 999px;
  box-shadow: 0 0 16px rgba(102, 211, 156, 0.5);
}
.mc-sra-statusbar .foot {
  margin-top: 10px; display: flex; justify-content: space-between;
  font-size: 12px; opacity: 0.78;
}

.mc-sra-body {
  margin: 0 32px 32px;
  background: white;
  border-radius: 0 0 18px 18px;
  box-shadow: var(--mc-shadow-2);
  padding: 32px 36px;
}
.mc-sra-body h1, .mc-sra-body h2 {
  color: var(--mc-navy); font-weight: 500; letter-spacing: -0.014em;
}

/* Make existing SRA question pages adopt new card style. */
.mc-sra-body .question-row,
.mc-sra-body .threat-row,
.mc-sra-body .threat-question {
  background: var(--mc-cream-soft);
  border: 1px solid #efe6cd; border-radius: 12px;
  padding: 18px 22px;
  margin-bottom: 14px;
}
.mc-sra-body .radio-group label,
.mc-sra-body .form-check {
  display: flex; gap: 14px; align-items: flex-start; padding: 14px 16px;
  border: 1.5px solid var(--mc-line); border-radius: 10px; background: white;
  cursor: pointer; margin-bottom: 10px; transition: border-color 0.15s ease;
  font-size: 14px; color: var(--mc-ink); font-weight: 600;
}
.mc-sra-body .radio-group label:hover,
.mc-sra-body .form-check:hover { border-color: var(--mc-blue); }

/* ============================================================
   10a. SRA QUESTION WALKTHROUGH PAGE — Frame 2 visual match
        body.questions-pg — company_assessment_questions/index.blade.php
   ============================================================ */
body.has-uplift.questions-pg .mc-content { padding: 0 0 80px; }
body.has-uplift.questions-pg .company_questions { padding: 0; }
body.has-uplift.questions-pg .company_questions > section { padding: 0 32px 32px; }

/* Left flyout styled as the mockup's stepper. */
body.has-uplift.questions-pg .questions_flyout {
  background: #f7f9fb;
  border: 1px solid var(--mc-line);
  border-radius: 16px;
  padding: 22px 18px;
}
body.has-uplift.questions-pg .questions_flyout h3 {
  font-size: 15px; color: var(--mc-navy); font-weight: 700;
  margin: 0 0 14px;
  text-transform: uppercase; letter-spacing: 0.06em;
}
body.has-uplift.questions-pg .questions_flyout .close_btn { display: none; }

/* Open/Answered tabs in flyout — match the design system's pill tabs. */
body.has-uplift.questions-pg .questions_flyout #nav-tab {
  background: rgba(11,59,94,0.05); border-radius: 10px;
  padding: 4px; display: inline-flex; gap: 2px; margin-bottom: 14px;
}
body.has-uplift.questions-pg .questions_flyout #nav-tab .nav-link {
  border: none; border-radius: 8px;
  font-size: 12.5px; font-weight: 600;
  color: var(--mc-mute); padding: 6px 14px;
}
body.has-uplift.questions-pg .questions_flyout #nav-tab .nav-link.active {
  background: white; color: var(--mc-navy);
  box-shadow: 0 1px 2px rgba(11,59,94,0.06);
}

/* Section accordion cards inside the flyout. */
body.has-uplift.questions-pg .questions_flyout .section_header {
  background: white !important;
  border-radius: 10px;
  margin-bottom: 6px;
  border: 1px solid var(--mc-line) !important;
}
body.has-uplift.questions-pg .questions_flyout .section_header h5 {
  margin: 0; padding: 10px 12px;
}
body.has-uplift.questions-pg .questions_flyout .section_header .btn-link {
  color: var(--mc-navy) !important; font-weight: 700; font-size: 12.5px;
  text-transform: uppercase; letter-spacing: 0.06em;
  text-decoration: none;
}
body.has-uplift.questions-pg .questions_flyout .section_header img {
  width: 22px; height: 22px;
}
body.has-uplift.questions-pg .questions_flyout .questions_toggle.card-body,
body.has-uplift.questions-pg .questions_flyout .card-body {
  padding: 8px 10px;
  background: transparent;
  border: none;
}
body.has-uplift.questions-pg .questions_flyout .list-group {
  background: transparent; border-radius: 0;
}
body.has-uplift.questions-pg .questions_flyout .list-group-item {
  background: transparent; border: none; border-left: 2px solid var(--mc-line-2);
  margin-left: 8px; padding: 7px 10px;
  font-size: 12.5px; color: var(--mc-ink);
}
body.has-uplift.questions-pg .questions_flyout .list-group-item.active {
  background: var(--mc-blue-soft); color: var(--mc-navy); font-weight: 700;
  border-left-color: var(--mc-blue);
}
body.has-uplift.questions-pg .questions_flyout .list-group-item a { color: inherit; text-decoration: none; }

/* Main question column — white background, no rounded corners,
   no border, no shadow. Sits flush against the stepper on the
   left, the help column on the right, and the navy status bar
   above. Keeps its white surface so it reads as the focused main
   content (the side columns are gray #f7f9fb).
   `max-width: none` + `flex: 1 1 auto` are required overrides:
   Bootstrap's `.col-lg-8` caps the box at 66.6667% of the row
   width, which would otherwise leave a transparent gap between
   this white surface and the help column on its right. Under the
   grid layout we want the box to fill the 1fr track edge-to-edge.
   `min-width: 0` so the column can compress freely when the user
   drags the extra-info divider close to its 500px max — without
   it, child content's intrinsic min-width would push the column
   (and therefore the whole row) past the section's right edge. */
body.has-uplift.questions-pg .col-lg-8.questions {
  background: white;
  border: 0;
  border-radius: 0;
  padding: 32px 36px;
  box-shadow: none;
  max-width: none;
  width: 100%;
  flex: 1 1 auto;
  min-width: 0;
}
body.has-uplift.questions-pg .col-lg-8.questions .open_questions { display: none; }
body.has-uplift.questions-pg .col-lg-8.questions > hr { display: none; }

/* Question title styling — mockup's .sra-qtitle. */
body.has-uplift.questions-pg .col-lg-8.questions h4,
body.has-uplift.questions-pg .col-lg-8.questions h2 {
  color: var(--mc-navy); font-weight: 500;
  font-size: 22px; letter-spacing: -0.014em;
  margin: 0 0 12px;
}
body.has-uplift.questions-pg .col-lg-8.questions h2 {
  font-size: 26px;
}

/* ============================================================
   10c. ANSWER OPTIONS — mockup's .sra-qcard / .sra-opt pattern.
        Each Yes/No/Partial/N/A answer renders as a click-card
        with the radio + answer name + outcome badge + sub-explanation.
   ============================================================ */
body.has-uplift.questions-pg .sra-answers-fieldset {
  border: none; padding: 0; margin: 22px 0 14px;
}
body.has-uplift.questions-pg .sra-answers-fieldset legend.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

body.has-uplift.questions-pg .sra-qcard {
  background: var(--mc-cream-soft);
  border: 1px solid var(--mc-cream-border);
  border-radius: 14px;
  padding: 18px 22px;
}
body.has-uplift.questions-pg .sra-qcard.is-invalid {
  border-color: var(--mc-red);
  box-shadow: 0 0 0 3px rgba(196,18,48,0.10);
}
body.has-uplift.questions-pg .sra-qcard .lbl {
  font-size: 13px; color: var(--mc-ink); font-weight: 700;
  margin-bottom: 14px;
}

body.has-uplift.questions-pg .sra-opt {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 16px 18px;
  background: white;
  border: 1.5px solid var(--mc-line);
  border-radius: 10px;
  margin-bottom: 10px;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  position: relative;
}
body.has-uplift.questions-pg .sra-opt:last-child { margin-bottom: 0; }
body.has-uplift.questions-pg .sra-opt:hover {
  border-color: var(--mc-blue);
  box-shadow: 0 4px 12px rgba(11,59,94,0.06);
}
body.has-uplift.questions-pg .sra-opt.sel {
  border-color: var(--mc-navy);
  background: #f0f6fb;
  box-shadow: 0 4px 14px rgba(11,59,94,0.08);
}

body.has-uplift.questions-pg .sra-opt .sra-opt-input {
  position: absolute; opacity: 0; pointer-events: none;
}

body.has-uplift.questions-pg .sra-opt .radio {
  flex-shrink: 0;
  width: 22px; height: 22px;
  border-radius: 50%;
  border: 2px solid var(--mc-mute-3);
  position: relative;
  margin-top: 2px;
  transition: border-color 0.15s ease;
}
body.has-uplift.questions-pg .sra-opt.sel .radio {
  border-color: var(--mc-navy);
}
body.has-uplift.questions-pg .sra-opt.sel .radio::after {
  content: '';
  position: absolute; inset: 3px;
  border-radius: 50%;
  background: var(--mc-navy);
}

body.has-uplift.questions-pg .sra-opt-body {
  flex: 1; display: flex; flex-direction: column; gap: 4px;
}
body.has-uplift.questions-pg .sra-opt .ot {
  font-size: 14.5px; color: var(--mc-ink); font-weight: 600;
  line-height: 1.4;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
body.has-uplift.questions-pg .sra-opt .ot .badge {
  display: inline-block;
  padding: 2px 9px; border-radius: 999px;
  font-size: 10.5px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.04em;
  vertical-align: middle;
}
body.has-uplift.questions-pg .sra-opt .badge.ok   { background: var(--mc-green-soft); color: var(--mc-green); }
body.has-uplift.questions-pg .sra-opt .badge.warn { background: var(--mc-amber-soft); color: var(--mc-amber); }
body.has-uplift.questions-pg .sra-opt .badge.bad  { background: var(--mc-red-soft);   color: var(--mc-red); }
body.has-uplift.questions-pg .sra-opt .badge.mute { background: rgba(11,59,94,0.06);  color: var(--mc-mute); }
body.has-uplift.questions-pg .sra-opt .os {
  font-size: 12.5px; color: var(--mc-mute);
  line-height: 1.5;
}

body.has-uplift.questions-pg .sra-actions-inline {
  margin: 10px 0 0;
}
body.has-uplift.questions-pg .sra-actions-inline .btn-link {
  color: var(--mc-mute); font-size: 12.5px; font-weight: 600;
  padding: 6px 12px; text-decoration: none;
}
body.has-uplift.questions-pg .sra-actions-inline .btn-link:hover {
  color: var(--mc-navy);
}

/* Hide the original "ANSWERS" dark-blue panel header — it's
   replaced by the .sra-qcard's own label. */
body.has-uplift.questions-pg .ANSWERS,
body.has-uplift.questions-pg [class*="ANSWERS"] { display: none; }

/* IMPACT OF RISK / LIKELIHOOD blue panels — restyle as mockup's panels. */
body.has-uplift.questions-pg .impact_panel,
body.has-uplift.questions-pg .likelihood_panel,
body.has-uplift.questions-pg [class*="impact"],
body.has-uplift.questions-pg [class*="likelihood"],
body.has-uplift.questions-pg .blue_box {
  background: var(--mc-navy);
  color: white;
  border-radius: 9px 9px 0 0;
  padding: 10px 16px;
  font-weight: 700;
  font-size: 12.5px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* De-select buttons. */
body.has-uplift.questions-pg .deselect-btn,
body.has-uplift.questions-pg button[class*="deselect"] {
  background: var(--mc-red); border-color: var(--mc-red); color: white;
  border-radius: 8px; font-weight: 600;
}

/* Back to imported SRA review button. */
body.has-uplift.questions-pg .imported-review-link a {
  background: white; border: 1px solid var(--mc-blue); color: var(--mc-blue);
  border-radius: 999px; padding: 6px 14px;
  font-size: 12.5px; font-weight: 600; text-decoration: none;
}

/* Continue / Back / Save buttons. */
body.has-uplift.questions-pg .continue-btn,
body.has-uplift.questions-pg .btn-primary[name="continue"] {
  background: var(--mc-red);
  border-color: var(--mc-red);
  color: white;
  border-radius: 9px;
  padding: 11px 26px;
  font-weight: 700;
  box-shadow: 0 6px 16px rgba(196,18,48,0.30);
}
body.has-uplift.questions-pg .back-btn,
body.has-uplift.questions-pg .btn-default {
  background: white;
  border: 1px solid var(--mc-line);
  color: var(--mc-navy);
  border-radius: 9px;
  padding: 10px 18px;
  font-weight: 600;
}

/* Help/info icons (red pill buttons next to question title in original). */
body.has-uplift.questions-pg .col-lg-8.questions .help-btn,
body.has-uplift.questions-pg .question-help-btn,
body.has-uplift.questions-pg .question-evidence-btn {
  background: var(--mc-red); border-color: var(--mc-red); color: white;
  border-radius: 8px;
}

/* "View imported SRA review page" CTA. */
body.has-uplift.questions-pg .col-lg-8.questions .btn-outline-primary,
body.has-uplift.questions-pg .col-lg-8.questions .imported-sra-btn {
  background: white; border: 1px solid var(--mc-blue); color: var(--mc-blue);
  border-radius: 999px;
}

/* ============================================================
   10f. WORKLIST PAGE — Frame-2 visual match
        company_assessment_recommendations/index.blade.php now
        carries body classes "worklist questions-pg", so the SRA
        walkthrough styling in 10a–10c above applies to the
        worklist flyout / Open-Closed tabs / section cards too.
        (Section 10e's display:none on the legacy flyout is scoped
        to .company_questions .col-lg-4, so the worklist's
        .col-md-4 flyout stays visible — here it IS the stepper.)
        Analytics' "Open worklist item" deep links and the SRA
        card's "Open Worklist" CTA both land on this page, so it
        must read as the new UI platform, not the legacy page.
        The rules below cover worklist-only elements and re-
        override a few legacy !important declarations from
        recommendation.scss / format.scss.
   ============================================================ */
/* Page wrapper — mirror .company_questions > section spacing. */
body.has-uplift.worklist .company_recc > section { padding: 0 32px 32px; }

/* Two-column shell. 10a's .col-lg-8.questions override sets
   width:100% / flex:1 1 auto (correct inside the question page's
   grid), which under the worklist's legacy Bootstrap flex row
   would wrap the main column BELOW the flyout. Promote the row to
   the same kind of grid the walkthrough uses: stepper | main.
   Selector carries BOTH body classes: the walkthrough's
   "section:not(:has(.mc-sra-extra)) > .row { 1fr }" fallback
   (10e layout block, later in this file) otherwise ties this
   specificity and collapses the worklist to one column. */
body.has-uplift.questions-pg.worklist .company_recc > section > .row {
  display: grid;
  grid-template-columns: 360px minmax(0, 1fr);
  gap: 24px;
  margin: 0;
  align-items: start;
}
/* Bootstrap's .col-md-4 max-width would clamp the flyout to 33% of
   its own grid track; neutralize the col sizing inside the grid. */
body.has-uplift.worklist .company_recc .col-md-4.questions_flyout {
  max-width: none;
  width: auto;
}

/* Flyout header — legacy paints a giant #007DC1 banner behind it. */
body.has-uplift.worklist .questions_flyout h3 {
  background: transparent;
  color: var(--mc-navy);
  font-size: 15px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.06em;
  padding: 0 0 10px;
}
body.has-uplift.worklist .questions_flyout nav { background: transparent; }

/* Open/Closed pill tabs — legacy backgrounds carry !important
   (.questions_flyout .nav-item), so these need !important too.
   Full-width flex so the two w-50 links sit side by side instead
   of stacking inside 10a's inline-flex pill bar. */
body.has-uplift.worklist .questions_flyout #nav-tab {
  display: flex; flex-wrap: nowrap; width: 100%;
}
body.has-uplift.worklist .questions_flyout #nav-tab .nav-link {
  /* w-50 is width:50% !important — with the pill bar's padding+gap
     that overflows and wraps the second tab onto its own row. */
  width: auto !important;
  flex: 1 1 0;
  text-align: center;
  background: transparent !important; color: var(--mc-mute) !important;
}
body.has-uplift.worklist .questions_flyout #nav-tab .nav-link.active {
  background: white !important; color: var(--mc-navy) !important;
}

/* Section icons — legacy forces width: 70px !important. */
body.has-uplift.worklist .questions_flyout .section_header h5 img {
  width: 22px !important; height: 22px; margin: 0 0 0 10px;
}
body.has-uplift.worklist .questions_flyout .section_header .btn-link {
  font-size: 12.5px;
}

/* User / sort filter form above the tabs — legacy paints a solid
   #6ea9ca teal panel with white labels and a #005C90 !important
   button. */
body.has-uplift.worklist .worklist-filters {
  background: transparent;
  padding: 0;
  margin-bottom: 14px;
}
body.has-uplift.worklist .worklist-filters button {
  background: var(--mc-navy) !important;
  border-color: var(--mc-navy);
  color: white;
  border-radius: 9px;
}
body.has-uplift.worklist .worklist-filters button:hover {
  background: var(--mc-blue) !important;
}
body.has-uplift.worklist .worklist-filters label {
  font-size: 11px; font-weight: 700; color: var(--mc-mute);
  text-transform: uppercase; letter-spacing: 0.05em;
  margin: 0 0 4px; display: block;
}
body.has-uplift.worklist .worklist-filters .form-control {
  border: 1px solid var(--mc-line); border-radius: 9px;
  font-size: 12.5px; color: var(--mc-ink); background: white;
}
body.has-uplift.worklist .worklist-filters .btn-primary {
  background: var(--mc-navy); border-color: var(--mc-navy); color: white;
  border-radius: 9px; width: 100%;
}

/* Due-date pill on flyout items — keep the red past-due signal. */
body.has-uplift.worklist .due_date_label {
  background: var(--mc-blue); border-radius: 999px;
  font-size: 10px; font-weight: 700; padding: 1px 8px;
  top: 4px; right: 6px;
}
body.has-uplift.worklist .due_date_label.past_due { background: var(--mc-red); }

/* Main column chrome — drop legacy double rules, restyle the
   threat/question/references icon buttons as quiet pills. */
body.has-uplift.worklist .col-lg-8.questions > hr { display: none; }
body.has-uplift.worklist .col-lg-8.questions .text-right.hipaa .btn-primary {
  background: white; border: 1px solid var(--mc-line); color: var(--mc-navy);
  border-radius: 9px; font-size: 13px;
}
body.has-uplift.worklist .col-lg-8.questions .text-right.hipaa .btn-primary:hover {
  border-color: var(--mc-blue); color: var(--mc-blue);
}

/* Recommendation body text — legacy paints it 1.5em blue. */
body.has-uplift.worklist #recommendation-title p {
  font-size: 15px; color: var(--mc-ink); line-height: 1.6;
}

/* Form labels + controls — legacy paints labels 1.25em blue with
   a 20px left margin. */
body.has-uplift.worklist .recommendation_form label {
  color: var(--mc-navy); font-size: 13px; font-weight: 700; margin-left: 0;
}
body.has-uplift.worklist .recommendation_form .form-control {
  border: 1px solid var(--mc-line); border-radius: 9px;
}

/* Comments thread + submit buttons (legacy: 23px font inputs). */
body.has-uplift.worklist dl#comment-list {
  border: 1px solid var(--mc-line); border-radius: 12px; padding: 18px;
}
body.has-uplift.worklist .questions dt { color: var(--mc-navy); font-size: 14px; }
body.has-uplift.worklist input#submitComment,
body.has-uplift.worklist input#submitDetails {
  font-size: 14px; font-weight: 700;
  padding: 10px 26px; border-radius: 9px;
}

/* Previous / Next action pager — legacy paints 2.375em blue text. */
body.has-uplift.worklist .assessment-nav span {
  color: var(--mc-navy); font-size: 15px; font-weight: 600;
}
body.has-uplift.worklist .assessment-nav input[type="submit"],
body.has-uplift.worklist .assessment-nav .btn {
  background: white; border: 1px solid var(--mc-line); color: var(--mc-navy);
  border-radius: 9px; padding: 8px 16px; font-weight: 600;
}

/* Small screens: legacy hides .questions_flyout behind a
   "View Worklist" opener that 10a hides under uplift — without
   this the list would be unreachable below 990px. Stack the
   columns and keep the flyout inline instead. */
@media (max-width: 990px) {
  body.has-uplift.questions-pg.worklist .company_recc > section > .row {
    grid-template-columns: 1fr;
  }
  body.has-uplift.worklist .company_recc .questions_flyout {
    display: block;
    position: static;
    height: auto;
    background: #f7f9fb;
    margin-bottom: 18px;
  }
  body.has-uplift.worklist .questions_flyout #nav-tabContent {
    background: transparent;
    border-bottom: 0;
    box-shadow: none;
  }
  body.has-uplift.worklist .questions_flyout h3 { display: block; }
}

/* ============================================================
   11. VENDOR / BAA LIST STYLES — apply via body.companies-baa,
       company_baa.*, vendors-* route names.
   ============================================================ */
body.has-uplift[class*="baa"] .mc-content,
body.has-uplift[class*="vendor"] .mc-content { padding-top: 0; }

.mc-vd-bar {
  padding: 24px 32px 18px; background: white;
  display: flex; align-items: center; gap: 16px;
  border-bottom: 1px solid rgba(11, 59, 94, 0.06);
}
.mc-vd-title { font-size: 26px; font-weight: 600; color: var(--mc-navy);
  letter-spacing: -0.018em; margin: 0; }
.mc-vd-meta { font-size: 13px; color: var(--mc-mute); margin-top: 2px; }
.mc-vd-actions { margin-left: auto; display: flex; gap: 10px; }

.mc-vd-segments {
  margin: 16px 32px 14px; display: inline-flex; gap: 4px;
  background: rgba(11, 59, 94, 0.05); border-radius: 12px; padding: 4px;
}
.mc-vd-seg {
  padding: 8px 18px; border-radius: 9px;
  font-size: 12.5px; font-weight: 600; color: var(--mc-mute);
  cursor: pointer; text-decoration: none;
}
.mc-vd-seg.active { background: white; color: var(--mc-navy); box-shadow: 0 1px 2px rgba(11,59,94,0.06); }
.mc-vd-seg .mc-seg-count {
  margin-left: 6px; padding: 1px 7px; border-radius: 999px;
  background: rgba(11,59,94,0.08); color: var(--mc-mute);
  font-size: 11px; font-weight: 700;
}
.mc-vd-seg.active .mc-seg-count { background: var(--mc-blue-soft); color: var(--mc-blue); }

.mc-vd-tilerow {
  padding: 0 32px 14px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
}
@media (max-width: 980px) { .mc-vd-tilerow { grid-template-columns: repeat(2, 1fr); } }
.mc-vd-tile {
  background: white; border-radius: 14px; padding: 14px 18px;
  border: 1px solid rgba(11,59,94,0.08); box-shadow: 0 1px 2px rgba(11,59,94,0.04);
}
.mc-vd-tile .lbl { font-size: 11px; color: var(--mc-mute); font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.06em; }
.mc-vd-tile .v {
  font-size: 26px; color: var(--mc-navy); font-weight: 600;
  letter-spacing: -0.014em; margin-top: 4px;
}
.mc-vd-tile .v.red { color: var(--mc-red); }
.mc-vd-tile .v.amber { color: var(--mc-amber); }
.mc-vd-tile .v.green { color: var(--mc-green); }
.mc-vd-tile .s { font-size: 11.5px; color: var(--mc-mute); margin-top: 4px; }

.mc-vd-list { padding: 4px 24px 40px; }

/* When the existing BAA tables run inside .mc-content, dress them up. */
body.has-uplift[class*="baa"] .table,
body.has-uplift[class*="vendor"] .table,
body.has-uplift[class*="baa"] table.dataTable {
  background: white; border-radius: 16px; overflow: hidden;
  border: 1px solid rgba(11,59,94,0.08); border-collapse: separate;
  box-shadow: 0 1px 2px rgba(11,59,94,0.04);
}

/* ============================================================
   11a. VENDORS & BAAs — full redesign (2026-05-28)
   ============================================================ */

/* Toolbar: segments on left, sort + actions on right. */
.mc-vd-toolbar {
  display: flex; align-items: center; gap: 14px;
  padding: 0 32px 14px;
  flex-wrap: wrap;
}
.mc-vd-toolbar .mc-vd-segments { margin: 0; }
.mc-vd-toolbar-right {
  margin-left: auto; display: inline-flex; align-items: center; gap: 8px;
}
.mc-vd-sort-label {
  font-size: 12px; color: var(--mc-mute); font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.06em; margin: 0 6px 0 0;
}
.mc-vd-sort {
  background: white; border: 1px solid var(--mc-line);
  border-radius: 9px; padding: 7px 12px;
  font-size: 12.5px; color: var(--mc-navy); font-weight: 600;
}
.mc-vd-sort:focus { outline: none; border-color: var(--mc-blue); }

/* Disclaimer details/summary — replaces the legacy collapse button. */
.mc-vd-disclaimer {
  margin: 0 32px 14px;
  background: var(--mc-cream-soft);
  border: 1px solid var(--mc-cream-border);
  border-radius: 12px;
  padding: 0;
}
.mc-vd-disclaimer summary {
  padding: 12px 18px;
  cursor: pointer; font-size: 13px; font-weight: 600; color: var(--mc-navy);
  list-style: none;
}
.mc-vd-disclaimer summary::-webkit-details-marker { display: none; }
.mc-vd-disclaimer summary i { color: var(--mc-amber); margin-right: 4px; }
.mc-vd-disclaimer[open] summary { border-bottom: 1px solid var(--mc-cream-border); }
.mc-vd-disclaimer p {
  padding: 14px 18px; margin: 0;
  font-size: 12.5px; color: var(--mc-mute); line-height: 1.55;
}

/* BAA row — design-system replacement for the legacy nested-card markup. */
.mc-baa-list {
  display: flex; flex-direction: column; gap: 10px;
  padding: 0 32px 24px;
}
.mc-baa-row {
  background: white;
  border: 1px solid var(--mc-line);
  border-left: 4px solid var(--mc-line);
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(11,59,94,0.04);
  overflow: hidden;
  transition: box-shadow 0.15s ease, transform 0.12s ease;
}
.mc-baa-row:hover {
  box-shadow: 0 6px 16px rgba(11,59,94,0.06);
  transform: translateY(-1px);
}
.mc-baa-row.warn { border-left-color: var(--mc-amber); }
.mc-baa-row.bad  { border-left-color: var(--mc-red); }
.mc-baa-row.is-deactivated { opacity: 0.55; }

.mc-baa-row-head {
  display: grid;
  grid-template-columns: 48px 1fr auto auto 36px;
  gap: 16px; align-items: center;
  padding: 14px 18px;
}
@media (max-width: 980px) {
  .mc-baa-row-head { grid-template-columns: 48px 1fr 36px; }
  .mc-baa-row-head .mc-baa-pills,
  .mc-baa-row-head .mc-baa-attest { grid-column: 1 / -1; padding-left: 64px; }
}

.mc-baa-icon {
  width: 48px; height: 48px; border-radius: 12px;
  background: linear-gradient(135deg, var(--mc-blue), #4ba2e0);
  color: white; display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 700;
}
.mc-baa-row.warn .mc-baa-icon { background: linear-gradient(135deg, var(--mc-amber), #d99440); }
.mc-baa-row.bad  .mc-baa-icon { background: linear-gradient(135deg, var(--mc-red), #e25577); }

.mc-baa-meta h4 {
  margin: 0; color: var(--mc-navy); font-size: 15px; font-weight: 700;
}
.mc-baa-meta p {
  margin: 2px 0 0; color: var(--mc-mute); font-size: 12.5px;
}
.mc-baa-meta p b { color: var(--mc-ink); font-weight: 700; }

.mc-baa-pills {
  display: inline-flex; gap: 6px; flex-wrap: wrap; align-items: center;
}

/* Status chips. */
.mc-chip {
  display: inline-flex; align-items: center;
  padding: 3px 10px; border-radius: 999px;
  font-size: 11px; font-weight: 700;
  background: rgba(11,59,94,0.08); color: var(--mc-mute);
  letter-spacing: 0.02em;
}
.mc-chip.ok    { background: var(--mc-green-soft); color: var(--mc-green); }
.mc-chip.warn  { background: var(--mc-amber-soft); color: var(--mc-amber); }
.mc-chip.bad   { background: var(--mc-red-soft);   color: var(--mc-red); }
.mc-chip.muted { background: rgba(11,59,94,0.06);  color: var(--mc-mute); }

.mc-baa-attest { display: inline-flex; gap: 6px; align-items: center; }
.mc-baa-attest-add {
  background: var(--mc-green-soft); color: var(--mc-green);
  padding: 5px 10px; border-radius: 999px;
  font-size: 11.5px; font-weight: 700; text-decoration: none;
  white-space: nowrap;
}
.mc-baa-attest-add:hover { background: var(--mc-green); color: white; text-decoration: none; }
.mc-baa-attest-link {
  color: var(--mc-navy); font-size: 12px; font-weight: 600; text-decoration: none;
  display: inline-flex; align-items: center; gap: 4px;
}
.mc-baa-attest-link:hover { color: var(--mc-blue); text-decoration: none; }
.mc-baa-attest-del {
  color: var(--mc-red); font-size: 12px; padding: 4px;
  text-decoration: none;
}

.mc-baa-expand {
  background: transparent; border: 1px solid var(--mc-line); border-radius: 50%;
  width: 32px; height: 32px;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--mc-mute); cursor: pointer;
  transition: transform 0.18s ease;
}
.mc-baa-expand:hover { background: var(--mc-blue-soft); color: var(--mc-navy); border-color: transparent; }
.mc-baa-row .collapsed .mc-baa-expand,
.mc-baa-row .mc-baa-expand[aria-expanded="false"] { transform: rotate(-90deg); }

/* Expanded body. */
.mc-baa-body {
  border-top: 1px solid var(--mc-line-2);
  background: var(--mc-cream-soft);
}
.mc-baa-actions {
  padding: 14px 18px;
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
}
.mc-baa-actions .mc-inline-form { display: inline-flex; margin: 0; }
.mc-baa-actions .btn { font-weight: 600; }

/* Archived children. */
.mc-baa-history {
  background: white; border-top: 1px solid var(--mc-line-2);
  padding: 12px 18px;
}
.mc-baa-history-head {
  font-size: 10.5px; color: var(--mc-mute);
  text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700;
  margin-bottom: 8px;
}
.mc-baa-history-row {
  display: flex; align-items: center; gap: 14px;
  padding: 8px 0; border-bottom: 1px dashed var(--mc-line-2);
}
.mc-baa-history-row:last-child { border-bottom: none; }
.mc-baa-history-meta { flex: 1; font-size: 13px; color: var(--mc-ink); }
.mc-baa-history-meta b { color: var(--mc-navy); }
.mc-baa-history-meta p { margin: 2px 0 0; font-size: 11.5px; color: var(--mc-mute); }
.mc-baa-history-actions { display: inline-flex; gap: 6px; }
.mc-baa-history-actions .btn-sm { padding: 4px 10px; font-size: 11.5px; }

/* "+ Add business associate" CTA below the list. */
.mc-baa-add {
  margin: 0 32px 32px; padding: 18px 22px;
  background: white;
  border: 1px dashed rgba(11,59,94,0.18);
  border-radius: 14px;
  text-align: center;
}
.mc-baa-add a {
  color: var(--mc-blue); font-weight: 700; text-decoration: none;
  font-size: 14px;
}
.mc-baa-add a:hover { color: var(--mc-navy); }
.mc-baa-add i { margin-right: 4px; }

/* Policy archive toggle (in the row header). */
.mc-policy-archive-toggle {
  display: inline-flex; align-items: center; gap: 8px;
  cursor: pointer; margin: 0;
  font-size: 11.5px; color: var(--mc-mute); font-weight: 600;
}
.mc-policy-archive-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.mc-policy-archive-track {
  width: 32px; height: 18px; border-radius: 999px;
  background: rgba(11,59,94,0.15);
  position: relative; transition: background 0.18s ease;
  flex-shrink: 0;
}
.mc-policy-archive-thumb {
  position: absolute; top: 2px; left: 2px;
  width: 14px; height: 14px; border-radius: 50%;
  background: white;
  transition: transform 0.18s ease;
  box-shadow: 0 1px 2px rgba(11,59,94,0.20);
}
.mc-policy-archive-toggle input:checked + .mc-policy-archive-track {
  background: var(--mc-amber);
}
.mc-policy-archive-toggle input:checked + .mc-policy-archive-track .mc-policy-archive-thumb {
  transform: translateX(14px);
}
.mc-policy-archive-label .label_on { display: none; }
.mc-policy-archive-toggle input:checked ~ .mc-policy-archive-label .label_on { display: inline; }
.mc-policy-archive-toggle input:checked ~ .mc-policy-archive-label .label_off { display: none; }

/* ============================================================
   12. APPENDIX TEMPLATES — design-system tile grid
   ============================================================ */
.mc-appendix-section {
  margin: 0 32px 40px;
  background: white;
  border: 1px solid var(--mc-line);
  border-radius: 18px;
  overflow: hidden;
}
.mc-appendix-head {
  padding: 18px 24px;
  border-bottom: 1px solid var(--mc-line);
}
.mc-appendix-head h3 {
  margin: 0 0 10px; font-size: 17px; color: var(--mc-navy); font-weight: 700;
}
.mc-appendix-empty {
  padding: 24px; text-align: center; color: var(--mc-mute); font-style: italic; margin: 0;
}
.mc-appendix-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px;
  padding: 22px;
}
@media (max-width: 1100px) { .mc-appendix-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px)  { .mc-appendix-grid { grid-template-columns: repeat(2, 1fr); } }
.mc-appendix-tile {
  background: var(--mc-cream-soft);
  border: 1px solid var(--mc-line);
  border-radius: 14px;
  padding: 20px 16px 16px;
  text-align: center;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.mc-appendix-tile:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(11,59,94,0.08); }
.mc-appendix-tile .file-download {
  text-decoration: none; color: inherit;
  display: block;
}
.mc-appendix-tile .file-download:hover { text-decoration: none; color: inherit; }
.mc-appendix-tile .fa-5x { font-size: 56px; }
.mc-appendix-title {
  margin-top: 14px;
  font-size: 12.5px; line-height: 1.4; color: var(--mc-navy);
}
.mc-appendix-title b { display: block; font-weight: 700; color: var(--mc-navy); }
.mc-appendix-title p { margin: 4px 0 0; color: var(--mc-mute); font-weight: 600; }
.mc-appendix-controls {
  margin-top: 12px; padding-top: 12px;
  border-top: 1px dashed var(--mc-line-2);
  display: inline-flex; gap: 6px;
}

/* ============================================================
   12. TRAINING (workforce circles)
   ============================================================ */
.mc-tn-hero {
  margin: 24px 32px 16px;
  padding: 28px 32px 22px;
  background: linear-gradient(115deg, #e9f3fb 0%, #f3ebe0 100%);
  border: 1px solid var(--mc-line);
  border-radius: 18px;
}
.mc-tn-crumbs { font-size: 12px; color: var(--mc-mute); margin-bottom: 10px; }
.mc-tn-crumbs a { color: var(--mc-blue); text-decoration: none; }
.mc-tn-title { font-size: 28px; color: var(--mc-navy); font-weight: 600;
  margin: 0 0 4px; letter-spacing: -0.014em; }
.mc-tn-sub { font-size: 14px; color: var(--mc-mute); }

.mc-tn-row {
  margin-top: 22px; display: flex; gap: 16px; align-items: center; flex-wrap: wrap;
}
.mc-tn-person {
  display: inline-flex; flex-direction: column; align-items: center; gap: 6px;
  cursor: pointer; position: relative; text-decoration: none; color: inherit;
}
.mc-tn-person:hover { text-decoration: none; color: inherit; }
.mc-tn-person .ring {
  width: 56px; height: 56px; border-radius: 50%; position: relative;
  background: conic-gradient(var(--mc-green) calc(var(--p, 100) * 1%), #ececec 0);
  display: inline-flex; align-items: center; justify-content: center;
}
.mc-tn-person .ring.warn { background: conic-gradient(var(--mc-amber) calc(var(--p, 60) * 1%), #ececec 0); }
.mc-tn-person .ring.bad  { background: conic-gradient(var(--mc-red) calc(var(--p, 40) * 1%), #ececec 0); }
.mc-tn-person .av {
  width: 44px; height: 44px; border-radius: 50%; background: white; color: var(--mc-navy);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700;
}
.mc-tn-person .nm { font-size: 11.5px; color: var(--mc-ink); font-weight: 600; }
.mc-tn-person .rl { font-size: 10.5px; color: var(--mc-mute); }
.mc-tn-person .alert {
  position: absolute; top: -2px; right: -2px; width: 16px; height: 16px;
  border-radius: 50%; background: var(--mc-red); color: white;
  font-size: 9px; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center;
  border: 2px solid white;
}

/* Training hero — gradient hero with workforce rings (Frame 4). */
.mc-tn-hero {
  margin: 0 32px 18px; padding: 28px 32px;
  background: linear-gradient(115deg, #e9f3fb 0%, #f3ebe0 100%);
  border: 1px solid var(--mc-line); border-radius: 18px;
}
.mc-tn-crumbs { font-size: 12.5px; color: var(--mc-mute); margin-bottom: 10px; }
.mc-tn-crumbs a { color: var(--mc-blue); font-weight: 600; text-decoration: none; }
.mc-tn-crumbs .sep { margin: 0 6px; color: var(--mc-mute-3); }
.mc-tn-title { font-size: 26px; color: var(--mc-navy); font-weight: 600; margin: 0 0 4px; letter-spacing: -0.014em; }
.mc-tn-sub { font-size: 14px; color: var(--mc-mute); margin: 0 0 16px; }
.mc-tn-sub b { color: var(--mc-navy); }

.mc-tn-row { display: flex; gap: 18px; flex-wrap: wrap; align-items: flex-start; }
.mc-tn-person { display: inline-flex; flex-direction: column; align-items: center; gap: 6px;
  text-decoration: none; color: inherit; min-width: 64px; }
.mc-tn-person .ring {
  width: 56px; height: 56px; border-radius: 50%; position: relative;
  background: conic-gradient(var(--mc-green) calc(var(--p, 100) * 1%), #ececec 0);
  display: inline-flex; align-items: center; justify-content: center;
}
.mc-tn-person .ring.warn { background: conic-gradient(var(--mc-amber) calc(var(--p, 60) * 1%), #ececec 0); }
.mc-tn-person .ring.bad  { background: conic-gradient(var(--mc-red) calc(var(--p, 40) * 1%), #ececec 0); }
.mc-tn-person .av {
  width: 44px; height: 44px; border-radius: 50%; background: white; color: var(--mc-navy);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700;
}
.mc-tn-person .nm { font-size: 11.5px; color: var(--mc-ink); font-weight: 700; max-width: 80px;
  text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mc-tn-person .rl { font-size: 10.5px; color: var(--mc-mute); }
.mc-tn-person .alert {
  position: absolute; top: -2px; right: -2px; width: 16px; height: 16px;
  border-radius: 50%; background: var(--mc-red); color: white;
  font-size: 9px; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center;
  border: 2px solid white;
}

/* Training body — 2-col grid: main card + sidebar. */
.mc-tn-body {
  margin: 0 32px 32px;
  display: grid; grid-template-columns: 2fr 1fr; gap: 22px;
}
@media (max-width: 1100px) {
  .mc-tn-body { grid-template-columns: 1fr; }
}
.mc-tn-card {
  background: white; border-radius: 16px;
  border: 1px solid var(--mc-line);
  box-shadow: 0 1px 2px rgba(11,59,94,0.04);
  overflow: hidden;
}
.mc-tn-card-head {
  padding: 14px 18px;
  border-bottom: 1px solid var(--mc-line);
  display: flex; align-items: center; gap: 10px;
}
.mc-tn-card-head h4 {
  font-size: 14px; color: var(--mc-navy); font-weight: 700; margin: 0; flex: 1;
}
.mc-tn-search {
  background: var(--mc-line-2); border: none; border-radius: 8px;
  padding: 6px 12px; font-size: 12px; font-family: inherit; width: 220px;
}
.mc-tn-search:focus { outline: none; background: white; box-shadow: inset 0 0 0 1px var(--mc-blue); }
.mc-tn-cbtn {
  padding: 7px 12px; border-radius: 8px; background: var(--mc-blue); color: white;
  border: none; font-family: inherit; font-size: 12px; font-weight: 600; cursor: pointer;
}
.mc-tn-trow {
  display: grid; grid-template-columns: 1.4fr 1.4fr 110px;
  align-items: center; padding: 14px 18px;
  border-bottom: 1px solid var(--mc-line-2); gap: 14px;
}
.mc-tn-trow:last-child { border-bottom: none; }
.mc-tn-trow-person { display: flex; align-items: center; gap: 10px; }
.mc-tn-trow-av {
  width: 32px; height: 32px; border-radius: 50%; background: var(--mc-blue-soft);
  color: var(--mc-blue); display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; flex-shrink: 0;
}
.mc-tn-trow-nm { font-size: 13px; font-weight: 600; color: var(--mc-navy); }
.mc-tn-trow-rl { font-size: 11px; color: var(--mc-mute); }
.mc-tn-trow-course { font-size: 13px; color: var(--mc-ink); }
.mc-tn-trow-course small { display: block; font-size: 11px; color: var(--mc-mute); margin-top: 2px; }

/* Sidebar cards. */
.mc-tn-sidec {
  background: white; padding: 20px;
  border-radius: 16px; border: 1px solid var(--mc-line);
  margin-bottom: 14px;
}
.mc-tn-sidec h4 { margin: 0 0 12px; font-size: 13.5px; color: var(--mc-navy); font-weight: 700; }
.mc-tn-numrow {
  display: flex; gap: 22px; padding: 14px 0;
  border-top: 1px dashed var(--mc-line-2);
  border-bottom: 1px dashed var(--mc-line-2);
  margin-bottom: 14px;
}
.mc-tn-numrow div .v { font-size: 22px; font-weight: 600; color: var(--mc-navy); letter-spacing: -0.01em; }
.mc-tn-numrow div .v small { font-size: 14px; color: var(--mc-mute); }
.mc-tn-numrow div .l { font-size: 11px; color: var(--mc-mute); font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.04em; }

/* ============================================================
   13. FORM CARDS — User Profile, Manage Users, Company Profile
   ============================================================ */
.mc-form-wrap {
  max-width: 900px;
  margin: 0 32px 40px;
}
.mc-form-card {
  background: white;
  border: 1px solid var(--mc-line);
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(11,59,94,0.04);
  margin-bottom: 14px;
  overflow: hidden;
}
.mc-form-card-head {
  padding: 18px 22px;
  cursor: pointer;
  display: flex; align-items: center; gap: 12px;
  list-style: none;
  background: white;
  transition: background 0.12s ease;
}
.mc-form-card-head::-webkit-details-marker { display: none; }
.mc-form-card-head:hover { background: var(--mc-cream-soft); }
.mc-form-card-head i.fa-fw:first-child {
  width: 36px; height: 36px; border-radius: 9px;
  background: var(--mc-blue-soft); color: var(--mc-blue);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px;
}
.mc-form-card-head h3 {
  flex: 1; margin: 0; color: var(--mc-navy);
  font-size: 16px; font-weight: 700;
}
.mc-form-card-chev {
  color: var(--mc-mute-2); font-size: 12px;
  transition: transform 0.18s ease;
}
.mc-form-card[open] .mc-form-card-chev { transform: rotate(180deg); }
.mc-form-card-body {
  padding: 22px;
  border-top: 1px solid var(--mc-line-2);
}
.mc-form-row {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
  margin-bottom: 12px;
}
@media (max-width: 700px) { .mc-form-row { grid-template-columns: 1fr; } }
.mc-form-field { margin-bottom: 14px; }

/* Read-only email display inside the User Information card. Sits as
   its own row, full-width so the address always fits on one line. */
.mc-form-row.mc-user-email-row {
  grid-template-columns: 1fr;
}
.mc-user-email-readout {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: rgba(11, 59, 94, 0.04);
  border: 1px solid rgba(11, 59, 94, 0.10);
  border-radius: 9px;
  font-size: 14px;
  color: var(--mc-mute);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  word-break: break-all;
}
.mc-user-email-ic {
  font-size: 13px;
  color: var(--mc-mute);
  flex-shrink: 0;
}
.mc-user-email-hint {
  margin-left: auto;
  font-size: 11.5px;
  font-weight: 500;
  color: var(--mc-mute);
  white-space: nowrap;
}
@media (max-width: 540px) {
  .mc-user-email-hint { display: none; }
}

/* Inline "Edit" affordance — used by both the Email pill (a
   <button> that opens the Login credentials card) and the Role
   pill (an <a> that deep-links to the role editor). Borderless /
   background-less so it reads as a quiet link against the muted
   pill; hover adds a tinted wash for affordance without breaking
   the visual line. */
.mc-user-email-edit {
  margin-left: auto;
  background: transparent;
  border: 0;
  color: var(--mc-blue);
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 6px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  text-decoration: none;
  transition: background 120ms ease, color 120ms ease;
}
.mc-user-email-edit i {
  font-size: 10.5px;
}
.mc-user-email-edit:hover {
  background: rgba(0, 113, 188, 0.08);
  color: var(--mc-navy);
  text-decoration: none;
}
.mc-user-email-edit:focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--mc-blue-soft);
}

/* Primary-contact picker — only renders when the user arrived via
   the dashboard's Finish-setup CTA AND multiple admin candidates
   exist. Lets the auth user swap which admin's phone they're filling
   in without bouncing back to Manage Users. */
.mc-pc-picker {
  background:
    radial-gradient(circle at 90% 0%, rgba(0, 113, 188, 0.10), transparent 50%),
    linear-gradient(180deg, white 0%, #f3f8fc 100%);
  border: 1px solid rgba(0, 113, 188, 0.18);
  border-radius: 14px;
  padding: 18px 22px 16px;
  margin: 0 0 18px;
  box-shadow: 0 4px 14px rgba(0, 113, 188, 0.08);
}
.mc-pc-picker-head {
  display: flex; align-items: flex-start; gap: 14px;
  margin-bottom: 14px;
}
.mc-pc-picker-ic {
  font-size: 18px;
  color: var(--mc-blue);
  background: var(--mc-blue-soft);
  width: 38px; height: 38px;
  border-radius: 9px;
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.mc-pc-picker-head h4 {
  margin: 0 0 2px;
  font-size: 15px;
  font-weight: 700;
  color: var(--mc-navy);
}
.mc-pc-picker-head p {
  margin: 0;
  font-size: 13px;
  color: var(--mc-mute);
  line-height: 1.5;
}
.mc-pc-picker-list {
  display: grid;
  gap: 8px;
}
a.mc-pc-cand {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: white;
  border: 1.5px solid rgba(11, 59, 94, 0.10);
  border-radius: 10px;
  text-decoration: none;
  color: inherit;
  transition: border-color 120ms ease, box-shadow 120ms ease,
              transform 120ms ease;
}
a.mc-pc-cand:hover {
  border-color: var(--mc-blue);
  box-shadow: 0 4px 12px rgba(0, 113, 188, 0.12);
  text-decoration: none;
  color: inherit;
}
a.mc-pc-cand.is-active {
  border-color: var(--mc-blue);
  background: var(--mc-blue-soft);
  box-shadow: 0 2px 6px rgba(0, 113, 188, 0.10);
}
.mc-pc-cand-av {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--mc-cream-soft, #f4ede0);
  color: var(--mc-navy);
  font-weight: 700;
  font-size: 12px;
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
a.mc-pc-cand.is-active .mc-pc-cand-av {
  background: var(--mc-blue);
  color: white;
}
.mc-pc-cand-body {
  flex: 1; min-width: 0;
  display: flex; flex-direction: column; gap: 2px;
}
.mc-pc-cand-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--mc-navy);
}
.mc-pc-cand-sub {
  font-size: 12px;
  color: var(--mc-mute);
}
.mc-pc-cand-ok {
  color: var(--mc-green);
  font-weight: 600;
}
.mc-pc-cand-ok i { font-size: 10px; margin-right: 2px; }
.mc-pc-cand-todo {
  color: var(--mc-amber, #d68d00);
  font-weight: 600;
}
.mc-pc-cand-tag {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--mc-blue);
  background: white;
  border: 1px solid var(--mc-blue);
  border-radius: 999px;
  padding: 3px 10px;
}
.mc-form-field label {
  display: block; color: var(--mc-navy); font-weight: 600;
  font-size: 13px; margin-bottom: 6px;
}
.mc-form-field label .req { color: var(--mc-red); margin-left: 2px; }
.mc-form-field input.form-control,
.mc-form-field select.form-control,
.mc-form-field textarea.form-control { width: 100%; }
.mc-form-hint {
  margin-top: 6px; font-size: 12px; color: var(--mc-mute); line-height: 1.5;
}
.mc-form-hint b { color: var(--mc-ink); }
.mc-form-checkbox {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; color: var(--mc-ink); font-weight: 500;
  cursor: pointer; margin: 0;
}
.mc-form-checkbox input { width: 16px; height: 16px; }

/* Two-factor method chooser (User Profile → Two-factor authentication).
   Replaces a bare native checkbox that rendered as plain text because a
   global appearance:none reset stripped the native box without painting
   a replacement. These two radio cards draw their own control, so they
   render regardless of native checkbox/radio styling, and make both the
   current method and the available choice obvious. */
.mc-mfa-choice { display: flex; flex-direction: column; gap: 10px; margin: 0 0 4px; }
.mc-mfa-choice-prompt { font-size: 13.5px; font-weight: 600; color: var(--mc-ink); margin: 0 0 2px; }
.mc-mfa-option {
  margin: 0;
  border: 1.5px solid var(--mc-line); border-radius: 12px;
  background: #fff; overflow: hidden;
  transition: border-color 120ms ease, box-shadow 120ms ease, background 120ms ease;
}
/* Clickable header row (radio + icon + text + check) that selects the option. */
.mc-mfa-option-head {
  position: relative; display: grid;
  grid-template-columns: 40px 1fr 22px; gap: 14px; align-items: center;
  padding: 14px 16px; margin: 0; cursor: pointer;
}
.mc-mfa-option:hover { border-color: var(--mc-navy); background: rgba(11, 59, 94, 0.02); }
/* Hide the native radio visually but keep it focusable for keyboard/AT. */
.mc-mfa-option-head > input[type="radio"] {
  position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none;
}
.mc-mfa-option-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 10px;
  background: rgba(11, 59, 94, 0.06); color: var(--mc-navy); font-size: 17px;
}
.mc-mfa-option-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mc-mfa-option-title { font-size: 14.5px; font-weight: 600; color: var(--mc-ink); }
.mc-mfa-option-desc { font-size: 12.5px; color: var(--mc-mute); line-height: 1.45; }
.mc-mfa-option-check {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; border-radius: 50%;
  border: 1.5px solid var(--mc-line); background: #fff; color: #fff; font-size: 11px;
  transition: background 120ms ease, border-color 120ms ease;
}
.mc-mfa-option.is-selected {
  border-color: var(--mc-navy);
  box-shadow: 0 0 0 1px var(--mc-navy), 0 2px 8px rgba(11, 59, 94, 0.08);
  background: rgba(11, 59, 94, 0.03);
}
.mc-mfa-option.is-selected .mc-mfa-option-icon { background: var(--mc-navy); color: #fff; }
.mc-mfa-option.is-selected .mc-mfa-option-check { background: var(--mc-navy); border-color: var(--mc-navy); }
.mc-mfa-option:focus-within { border-color: var(--mc-navy); box-shadow: 0 0 0 3px rgba(11, 59, 94, 0.18); }
/* Detail field nested inside its option card, shown when that option is
   selected. Padded to align under the header text and separated from it
   by a hairline. */
.mc-mfa-detail {
  margin: 0; padding: 14px 16px 16px;
  border-top: 1px solid var(--mc-line);
}
.mc-mfa-option.is-selected .mc-mfa-detail { border-top-color: rgba(11, 59, 94, 0.18); }

/* ============================================================
   Authentication screens (login, 2FA verify, 2FA setup,
   forgot-password, reset-password) — used by layouts/auth.blade.php.
   A centered uplift card on a branded navy canvas. No app shell:
   these pages render before the user is fully signed in, so there
   is deliberately no sidebar and no notification bell.
   ============================================================ */
body.mc-auth { background: var(--mc-navy-deep); }
.mc-auth-canvas {
  min-height: 100vh;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 40px 20px;
  background:
    radial-gradient(circle at 15% 8%, rgba(75, 162, 224, 0.22), transparent 45%),
    radial-gradient(circle at 88% 92%, rgba(8, 44, 71, 0.55), transparent 50%),
    linear-gradient(160deg, #0b3b5e 0%, #082c47 100%);
}
.mc-auth-brand { margin: 0 0 22px; text-align: center; }
.mc-auth-logo { height: 40px; width: auto; }
.mc-auth-card {
  width: 100%; max-width: 440px;
  background: #fff; border-radius: 18px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.28);
  padding: 34px 34px 30px;
}
.mc-auth-card .mc-auth-title {
  font-size: 22px; font-weight: 700; color: var(--mc-navy);
  letter-spacing: -0.012em; margin: 0 0 6px;
}
.mc-auth-sub { font-size: 13.5px; color: var(--mc-mute); line-height: 1.55; margin: 0 0 22px; }
.mc-auth-card .mc-form-field { margin-bottom: 16px; }
.mc-auth-actions { margin-top: 20px; }
/* Full-width primary action on auth cards. */
.mc-auth-card .mc-auth-submit { display: block; width: 100%; }
.mc-auth-code { letter-spacing: 0.32em; text-align: center; font-size: 18px; font-weight: 600; }
.mc-auth-code::placeholder { letter-spacing: 0.12em; font-weight: 500; }
.mc-auth-callout {
  margin: 18px 0 0; border-radius: 10px; font-size: 13px; line-height: 1.5;
}
.mc-auth-links {
  margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--mc-line);
  font-size: 13px; color: var(--mc-mute);
}
.mc-auth-links p { margin: 0 0 6px; }
.mc-auth-links p:last-child { margin-bottom: 0; }
.mc-auth-links a { color: var(--mc-blue); font-weight: 600; }
.mc-auth-foot { margin: 22px 0 0; font-size: 12px; color: rgba(255, 255, 255, 0.6); text-align: center; }

/* On auth cards the MFA chooser is the whole form, so let it breathe. */
.mc-auth-card .mc-mfa-choice { margin-bottom: 4px; }

.mc-form-actions {
  display: flex; justify-content: flex-end; gap: 10px;
  padding: 22px 0 0;
}
.mc-form-actions .btn-secondary { margin-right: auto; }

/* Launch panel — used in the 'subscription active but no seats' fallback. */
.mc-tn-launch-panel {
  margin: 0 32px 32px; padding: 26px 32px;
  background: white; border: 1px solid var(--mc-line); border-radius: 16px;
  display: flex; gap: 22px; align-items: center; justify-content: space-between;
  box-shadow: 0 1px 2px rgba(11,59,94,0.04);
}
.mc-tn-launch-panel h3 { color: var(--mc-navy); font-size: 18px; font-weight: 700; margin: 0 0 4px; }
.mc-tn-launch-panel p { color: var(--mc-mute); font-size: 13px; margin: 0; }
.mc-tn-launch-panel p b { color: var(--mc-ink); }
.mc-tn-launch-panel .btn-lg { padding: 12px 28px; font-size: 16px; }

/* ============================================================
   13. ONBOARDING (Frame 5)
   ============================================================ */
.mc-ob-hero {
  /* Match the dashboard `.mc-hero` (posture card) one-for-one:
     same margins, padding, border-radius, type sizing — only the
     gradient/eyebrow color differs. */
  margin: 14px 32px 12px;
  padding: 22px 36px;
  border-radius: 22px;
  background:
    radial-gradient(circle at 90% 0%, rgba(102, 211, 156, 0.30), transparent 55%),
    radial-gradient(circle at 0% 100%, rgba(0, 113, 188, 0.15), transparent 55%),
    linear-gradient(135deg, #f4ede0 0%, #e6f4ec 100%);
  box-shadow: 0 1px 2px rgba(31, 138, 76, 0.05), 0 14px 30px rgba(31, 138, 76, 0.08);
}
.mc-ob-hero .eyebrow {
  font-size: 11px; color: var(--mc-green);
  text-transform: uppercase; letter-spacing: 0.12em; font-weight: 700; margin-bottom: 8px;
}
.mc-ob-hero h2 {
  margin: 0 0 6px; font-size: 26px; font-weight: 500;
  color: var(--mc-navy); letter-spacing: -0.018em; line-height: 1.15;
}
.mc-ob-hero h2 em { color: var(--mc-green); font-style: normal; font-weight: 600; }
.mc-ob-hero p { margin: 0 0 12px; font-size: 14px; color: #44563f; line-height: 1.5; max-width: 620px; }

.mc-ob-progress {
  background: white; border: 1px solid rgba(31,138,76,0.18); border-radius: 14px;
  padding: 12px 28px 14px;
  max-width: none;
  width: 100%;
  margin: 6px auto 0;
  box-shadow: 0 4px 12px rgba(31,138,76,0.06);
}
.mc-ob-progress .row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 6px;
}
.mc-ob-progress .lbl {
  font-size: 11.5px;
  color: var(--mc-mute);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.mc-ob-progress .pct {
  font-size: 13px;
  color: var(--mc-ink);
  font-weight: 500;
}
.mc-ob-progress .pct b {
  color: var(--mc-navy);
  font-weight: 700;
}
.mc-ob-progress .bar { position: relative; height: 8px; border-radius: 999px;
  background: rgba(11,59,94,0.08); margin-bottom: 6px;
  transition: none; }
.mc-ob-progress .bar i { display: block; height: 100%;
  background: linear-gradient(90deg, var(--mc-green), #66d39c); border-radius: 999px;
  transition: width 0.3s ease; }
/* Vertical step markers at the two interior step boundaries (33.3%
   and 66.6%). They extend a couple of pixels above and below the
   track so they read as small ticks. A marker turns green once the
   step to its left is fully finished. */
.mc-ob-progress .bar .marks { position: absolute; inset: 0; pointer-events: none; }
.mc-ob-progress .bar .marks u {
  position: absolute; top: -2px; bottom: -2px; width: 2px;
  margin-left: -1px; border-radius: 1px;
  background: rgba(11,59,94,0.22);
  transition: background 0.2s ease, width 0.2s ease, top 0.2s ease,
              bottom 0.2s ease, box-shadow 0.2s ease, margin-left 0.2s ease;
}
.mc-ob-progress .bar .marks u.m1 { left: 33.333%; }
.mc-ob-progress .bar .marks u.m2 { left: 66.666%; }
/* Finished-step marker: taller, thicker, full green with a soft glow
   and a white outline so a completed step boundary clearly stands out
   from a not-yet-finished one. */
.mc-ob-progress .bar .marks u.done {
  width: 3px; margin-left: -1.5px;
  top: -5px; bottom: -5px;
  background: var(--mc-green);
  box-shadow: 0 0 0 1px rgba(255,255,255,0.85), 0 0 6px rgba(31,138,76,0.55);
}
/* Equal-width, center-aligned ticks so the step labels sit at
   predictable positions (16.67%, 50%, 83.33% for a 3-step process).
   The bar fill is now incremental (advances per completed sub-bullet,
   see the Blade `$obBarPct` calc); the vertical `.marks` above sit at
   each step's 1/3 boundary (33.3% / 66.6% / 100%). */
.mc-ob-progress .ticks { display: flex; font-size: 12px; color: var(--mc-mute); }
.mc-ob-progress .ticks > span {
  flex: 1;
  text-align: center;
  padding: 0 4px;
}
.mc-ob-progress .ticks span.done { color: var(--mc-green); font-weight: 700; }
.mc-ob-progress .ticks span.cur { color: var(--mc-navy); font-weight: 700; }

.mc-onboarding-uplift .mc-section-head { padding: 18px 32px 14px; }
.mc-onboarding-uplift .mc-section-head h3 { font-size: 15px; }
.mc-ob-steprow { padding: 0 32px 4px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
@media (max-width: 1100px) { .mc-ob-steprow { grid-template-columns: 1fr; } }
.mc-ob-step {
  background: white; border-radius: 18px; border: 1px solid var(--mc-line);
  padding: 16px 20px 16px;
  box-shadow: 0 1px 2px rgba(11,59,94,0.04), 0 6px 18px rgba(11,59,94,0.06);
  display: flex; flex-direction: column; position: relative;
  border-top: 4px solid var(--mc-line);
}
.mc-ob-step.done { border-top-color: var(--mc-green); background: linear-gradient(180deg, #f7fcf9 0%, white 30%); }
.mc-ob-step.cur  { border-top-color: var(--mc-blue);
  box-shadow: 0 1px 2px rgba(0,113,188,0.10), 0 14px 30px rgba(0,113,188,0.10); }
.mc-ob-step.next { opacity: 0.85; }
.mc-ob-step .head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.mc-ob-step .stepnum {
  width: 30px; height: 30px; border-radius: 50%;
  background: white; border: 2px solid var(--mc-line); color: var(--mc-mute);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700; flex-shrink: 0;
}
.mc-ob-step.done .stepnum { background: var(--mc-green); border-color: var(--mc-green); color: white; }
.mc-ob-step.cur .stepnum  { background: var(--mc-blue); border-color: var(--mc-blue); color: white; }
.mc-ob-step .titlewrap h4 { margin: 0; font-size: 16px; color: var(--mc-navy); font-weight: 700; line-height: 1.2; }
.mc-ob-step .titlewrap .meta { font-size: 11px; color: var(--mc-mute); margin-top: 2px;
  font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; }
.mc-ob-step.done .titlewrap .meta { color: var(--mc-green); }
.mc-ob-step.cur .titlewrap .meta { color: var(--mc-blue); }
.mc-ob-step .desc { font-size: 12.5px; color: var(--mc-mute); line-height: 1.45; margin-bottom: 8px; }
.mc-ob-step .checklist { padding: 0; margin: 0 0 8px; list-style: none; flex: 1; }
.mc-ob-step .checklist li {
  padding: 3px 0; border-bottom: 1px dashed var(--mc-line-2);
  display: flex; align-items: center; gap: 10px; font-size: 12.5px; color: var(--mc-ink);
  line-height: 1.3;
}
.mc-ob-step .checklist li:last-child { border-bottom: none; }
.mc-ob-step .checklist li .ck {
  width: 16px; height: 16px; border-radius: 50%;
  background: rgba(11,59,94,0.06); color: var(--mc-mute);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 10px; font-weight: 700; flex-shrink: 0;
}
.mc-ob-step .checklist li.done .ck { background: var(--mc-green-soft); color: var(--mc-green); }
.mc-ob-step .checklist li.done { color: var(--mc-mute); text-decoration: line-through; }
/* Each checklist line is wrapped in a .bullet-link so the whole line is
   clickable, jumping into that step's wizard (incomplete steps) or
   rendering inert (finished steps, where it's a plain span). */
.mc-ob-step .checklist li .bullet-link {
  display: flex; align-items: center; gap: 10px;
  flex: 1; min-width: 0;
  color: inherit; text-decoration: inherit;
}
/* Clickable line resting state: looks like plain text. The padding +
   negative margin reserve the button's shape so hovering doesn't shift
   the row. */
.mc-ob-step .checklist li a.bullet-link {
  cursor: pointer;
  padding: 4px 8px; margin: -4px -8px;
  border: 1px solid transparent; border-radius: 10px;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
/* On hover the line lifts into a soft green button (matching the
   onboarding theme) and goes bold — no blue, no underline. */
.mc-ob-step .checklist li a.bullet-link:hover {
  background: var(--mc-green-soft);
  border-color: rgba(31,138,76,0.22);
  box-shadow: 0 1px 2px rgba(11,59,94,0.06);
  color: var(--mc-navy);
  font-weight: 700;
  text-decoration: none;
}
.mc-ob-step .checklist li a.bullet-link:hover .ck {
  background: var(--mc-green-soft); color: var(--mc-green);
}
.mc-ob-step .cta {
  display: block; width: 100%; box-sizing: border-box;
  margin-top: auto;
  padding: 9px 16px;
  border-radius: 10px;
  font-size: 13px; font-weight: 700;
  background: var(--mc-blue); color: white !important;
  border: 1px solid var(--mc-blue);
  box-shadow: 0 4px 12px rgba(0,113,188,0.18);
}
.mc-ob-step.done .cta {
  background: white; color: var(--mc-green) !important;
  border-color: var(--mc-green); box-shadow: none;
}
.mc-ob-step.next .cta {
  background: var(--mc-line-2); color: var(--mc-mute) !important;
  border-color: var(--mc-line); box-shadow: none; cursor: not-allowed;
}

/* Onboarding container — wraps the new Frame-5 hero + steps. */
.mc-onboarding-uplift {
  margin: 0;
}

/* Skip-row: a low-volume "Skip →" affordance that lives below the
   step cards and lets the tenant dismiss guided setup until next
   time. Per-user, per-company, persisted in localStorage. */
.mc-ob-skiprow {
  display: flex;
  justify-content: flex-end;
  margin-top: 0;
  margin-bottom: 12px;
  padding: 0 28px 0 4px;
}
button.mc-ob-skip { padding: 6px 12px; }
button.mc-ob-skip {
  background: transparent;
  border: 0;
  padding: 11px 14px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  color: var(--mc-mute);
  cursor: pointer;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: color 120ms ease, background 120ms ease;
}
button.mc-ob-skip i {
  font-size: 20px;
  transition: transform 140ms ease;
}
.mc-ob-skip-arrow {
  width: 32px;
  height: 12px;
  display: inline-block;
  flex: 0 0 auto;
  transition: transform 140ms ease;
}
button.mc-ob-skip:hover .mc-ob-skip-arrow {
  transform: translateX(3px);
}
button.mc-ob-skip:hover {
  color: var(--mc-navy);
  background: rgba(11, 59, 94, 0.05);
}
button.mc-ob-skip:hover i { transform: translateX(2px); }

/* Onboarding-skip gate.
   - Default (no skip): onboarding visible, dashboard wrapper hidden.
     Implemented as a sibling-selector default so server-side render
     is correct with zero JS — no flash of dashboard content under
     the onboarding banner.
   - After skip (body.mc-ob-skipped, set pre-paint by inline script
     in app.blade.php that reads localStorage): hide onboarding,
     show dashboard, and reveal the Resume-setup pill.
   - When onboarding doesn't render at all (setup complete), the
     dashboard wrapper has no .mc-onboarding-uplift sibling, so it
     stays visible. */
.mc-onboarding-uplift ~ .mc-dashboard-uplift {
  display: none !important;
}
body.mc-ob-skipped .mc-onboarding-uplift,
body.mc-ob-skipped .mc-onboarding-uplift .mc-ob-skiprow {
  display: none !important;
}
body.mc-ob-skipped .mc-onboarding-uplift ~ .mc-dashboard-uplift {
  display: block !important;
}

/* Resume-setup affordance — visually identical to `.mc-ob-skip`,
   just left-aligned at the top of the dashboard wrapper so it sits
   right underneath the page's "Dashboard" title. Only revealed when
   the tenant has previously skipped guided setup. */
.mc-ob-resumerow {
  display: none;
}
body.mc-ob-skipped .mc-ob-resumerow {
  display: flex;
  justify-content: flex-start;
  margin-top: 4px;
  margin-bottom: 0;
  padding: 0 4px 0 28px;
}
/* Tighten the gap between the Resume-setup pill and the posture
   hero. The hero's normal `margin-top: 14px` reads as too much
   air once the resume row is sitting right above it. */
body.mc-ob-skipped .mc-hero { margin-top: 2px; }
button.mc-ob-resume {
  background: transparent;
  border: 0;
  padding: 11px 14px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  color: var(--mc-mute);
  cursor: pointer;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
  flex: 0 0 auto;
  transition: color 120ms ease, background 120ms ease;
}
button.mc-ob-resume:hover {
  color: var(--mc-navy);
  background: rgba(11, 59, 94, 0.05);
}
/* The arrow itself reuses `.mc-ob-skip-arrow` for sizing/transitions
   so the two buttons stay visually paired. Resume's hover-nudge
   goes left instead of right. */
button.mc-ob-resume:hover .mc-ob-skip-arrow {
  transform: translateX(-3px);
}

/* ============================================================
   14. BOOTSTRAP COMPONENT OVERRIDES — adopt design tokens
       across the rest of the app without touching markup.
   ============================================================ */

/* Headings & paragraph defaults inside the new content shell. */
body.has-uplift .mc-content h1,
body.has-uplift .mc-content h2,
body.has-uplift .mc-content h3,
body.has-uplift .mc-content h4,
body.has-uplift .mc-content h5,
body.has-uplift .mc-content h6 {
  color: var(--mc-navy);
  font-family: var(--mc-font);
  letter-spacing: -0.01em;
}
body.has-uplift .mc-content h1 { font-weight: 600; }
body.has-uplift .mc-content h2 { font-weight: 600; }
body.has-uplift .mc-content h3 { font-weight: 700; }
body.has-uplift .mc-content h4,
body.has-uplift .mc-content h5,
body.has-uplift .mc-content h6 { font-weight: 700; }
body.has-uplift .mc-content p { color: var(--mc-ink); }
body.has-uplift .mc-content small { color: var(--mc-mute); }

/* Buttons. */
body.has-uplift .btn {
  border-radius: 10px;
  font-weight: 600; font-family: var(--mc-font);
  letter-spacing: 0;
  padding: 8px 18px;
  transition: transform 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
}
body.has-uplift .btn:hover { transform: translateY(-1px); }
body.has-uplift .btn.btn-lg { padding: 11px 24px; font-size: 15px; }
body.has-uplift .btn.btn-sm { padding: 5px 12px; font-size: 12px; border-radius: 8px; }

body.has-uplift .btn-primary {
  background: var(--mc-navy); border-color: var(--mc-navy); color: white;
  box-shadow: 0 6px 14px rgba(11,59,94,0.20);
}
body.has-uplift .btn-primary:hover {
  background: var(--mc-navy-deep); border-color: var(--mc-navy-deep); color: white;
  box-shadow: 0 10px 22px rgba(11,59,94,0.28);
}
/* Legacy marketing CTA stays brand-crimson (public/home pages). */
body.has-uplift .btn.button.red-button,
body.has-uplift .btn.button.button.red-button {
  background: var(--mc-red); border-color: var(--mc-red); color: white;
  box-shadow: 0 6px 14px rgba(196,18,48,0.20);
}
body.has-uplift .btn.button.red-button:hover {
  background: #a30f28; border-color: #a30f28; color: white;
  box-shadow: 0 10px 22px rgba(196,18,48,0.28);
}
/* Singular focus ring in the brand token set. */
body.has-uplift .btn:focus-visible {
  outline: 2px solid var(--mc-focus); outline-offset: 2px;
}
body.has-uplift .btn-info {
  background: var(--mc-navy); border-color: var(--mc-navy); color: white;
}
body.has-uplift .btn-info:hover { background: var(--mc-navy-deep); border-color: var(--mc-navy-deep); color: white; }
body.has-uplift .btn-secondary {
  background: white; border-color: var(--mc-line); color: var(--mc-navy);
}
body.has-uplift .btn-secondary:hover { background: var(--mc-blue-soft); color: var(--mc-navy); border-color: var(--mc-blue-soft); }
body.has-uplift .btn-success { background: var(--mc-green); border-color: var(--mc-green); color: white; }
body.has-uplift .btn-success:hover { background: #176c3a; border-color: #176c3a; color: white; }
body.has-uplift .btn-warning { background: var(--mc-amber); border-color: var(--mc-amber); color: white; }
body.has-uplift .btn-warning:hover { background: #985e0e; border-color: #985e0e; color: white; }
body.has-uplift .btn-danger { background: var(--mc-red); border-color: var(--mc-red); color: white; }
body.has-uplift .btn-danger:hover { background: #a30f28; border-color: #a30f28; color: white; }
body.has-uplift .btn-outline-primary,
body.has-uplift .btn-outline-info {
  background: transparent; border-color: var(--mc-navy); color: var(--mc-navy);
}
body.has-uplift .btn-outline-primary:hover,
body.has-uplift .btn-outline-info:hover {
  background: var(--mc-navy); color: white; border-color: var(--mc-navy);
}
body.has-uplift .btn-link { color: var(--mc-navy); font-weight: 600; }

/* Form controls. */
body.has-uplift .form-control,
body.has-uplift .custom-select,
body.has-uplift textarea.form-control {
  border-radius: 9px;
  border: 1px solid var(--mc-line);
  font-family: var(--mc-font);
  font-size: 14px;
  background: white;
  color: var(--mc-ink);
  padding: 9px 13px;
  box-shadow: none;
}
body.has-uplift .form-control:focus,
body.has-uplift .custom-select:focus {
  border-color: var(--mc-blue);
  box-shadow: 0 0 0 3px rgba(0,113,188,0.15);
  outline: none;
}
body.has-uplift .form-control.is-invalid { border-color: var(--mc-red); }

/* ── Dropdowns (selects) ───────────────────────────────────────────────
   Platform-wide select styling so every dropdown matches: a single
   down-chevron caret with a small gap before the right edge, and reduced
   vertical padding so the selected option's text isn't clipped along the
   bottom (the base `.form-control` padding eats the interior of a select's
   fixed height). Element height is left to the control's own box so each
   dropdown stays the same height as its sibling text inputs.
   Skips multi-selects, which shouldn't carry a single-value caret. */
body.has-uplift select.form-control:not([multiple]):not([size]),
body.has-uplift select.custom-select:not([multiple]):not([size]) {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='none' stroke='%235a6b80' stroke-width='1.5' d='M1 1l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 10px 6px;
  padding-top: 2px;
  padding-bottom: 2px;
  padding-right: 28px;
  line-height: 1.4;
}

body.has-uplift label { color: var(--mc-navy); font-weight: 600; font-size: 13px; }
body.has-uplift .invalid-feedback { color: var(--mc-red); font-weight: 600; font-size: 12px; }

/* ── Checkboxes ────────────────────────────────────────────────────────
   Legacy app.css hides native checkboxes (`input[type=checkbox]
   {display:none}`) and paints a sibling `+ label::before` box (old blue
   border + a text "✓"). Checkboxes with no following label rendered as
   nothing at all. Bring every checkbox up to the new UI:
     • where a `+ label` box exists, restyle that ::before box in place
       (keeps each page's existing placement, just a modern look);
     • where there's no label box, re-show the native input painted as the
       same modern box.
   Page-specific custom checkboxes (contact_us, PHI, plans, add-user pills,
   the SRA archive toggle, etc.) carry higher-specificity rules and keep
   their own styling. The new box: rounded, fills new-UI blue with a crisp
   white SVG check when selected. */

/* Restyle the legacy label-sibling pseudo box. */
body.has-uplift input[type="checkbox"] + label::before {
  background-color: #fff !important;
  border: 1.5px solid var(--mc-line) !important;
  border-radius: 5px !important;
  color: transparent !important;
  content: "" !important;
  box-shadow: none !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 12px 12px !important;
}
body.has-uplift input[type="checkbox"]:checked + label::before {
  background-color: var(--mc-blue) !important;
  border-color: var(--mc-blue) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") !important;
  content: "" !important;
}
/* Legacy grayed checkbox labels out; keep them readable in the new UI. */
body.has-uplift input[type="checkbox"] + label,
body.has-uplift input[type="checkbox"]:checked + label {
  color: var(--mc-ink) !important;
}

/* Re-show + paint checkboxes that have no following label box. */
body.has-uplift input[type="checkbox"]:not(:has(+ label)) {
  display: inline-block !important;
  position: static !important;
  clip: auto !important;
  pointer-events: auto !important;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  box-sizing: border-box;
  width: 18px;
  height: 18px;
  margin: 0;
  padding: 0;
  border: 1.5px solid var(--mc-line);
  border-radius: 5px;
  background-color: #fff;
  vertical-align: middle;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
body.has-uplift input[type="checkbox"]:not(:has(+ label)):hover {
  border-color: var(--mc-blue);
}
body.has-uplift input[type="checkbox"]:not(:has(+ label)):checked {
  background-color: var(--mc-blue);
  border-color: var(--mc-blue);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 12px 12px;
}
body.has-uplift input[type="checkbox"]:not(:has(+ label)):focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(0, 113, 188, 0.22);
}

/* Cards. */
body.has-uplift .card {
  border-radius: 16px;
  border: 1px solid var(--mc-line);
  box-shadow: 0 1px 2px rgba(11,59,94,0.04);
  background: white;
  overflow: hidden;
}
body.has-uplift .card-header {
  background: white;
  border-bottom: 1px solid var(--mc-line);
  padding: 16px 20px;
  font-weight: 700;
  color: var(--mc-navy);
}
body.has-uplift .card-body { padding: 20px; color: var(--mc-ink); }
body.has-uplift .card-footer {
  background: var(--mc-cream-soft);
  border-top: 1px solid var(--mc-line);
}

/* Tables. */
body.has-uplift .table {
  font-size: 13.5px; color: var(--mc-ink); background: white;
  border-radius: 14px; overflow: hidden;
}
body.has-uplift .table thead th {
  background: var(--mc-cream-soft);
  color: var(--mc-mute);
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 0.06em;
  font-weight: 700;
  border-bottom: 1px solid var(--mc-line);
  border-top: none;
  padding: 12px 14px;
}
body.has-uplift .table tbody td {
  padding: 14px;
  vertical-align: middle;
  border-top: 1px solid var(--mc-line-2);
  color: var(--mc-ink);
}
body.has-uplift .table tbody tr:hover { background: var(--mc-blue-soft); }
body.has-uplift .table-striped tbody tr:nth-of-type(odd) { background: rgba(238,242,246,0.4); }
body.has-uplift .table-striped tbody tr:nth-of-type(odd):hover { background: var(--mc-blue-soft); }

/* Alerts. */
body.has-uplift .alert {
  border-radius: 12px;
  border: 1px solid transparent;
  padding: 14px 18px;
  font-size: 13.5px;
  box-shadow: var(--mc-shadow-1);
}
body.has-uplift .alert-success { background: var(--mc-green-soft); color: #166831; border-color: rgba(31,138,76,0.2); }
body.has-uplift .alert-info    { background: var(--mc-blue-soft); color: var(--mc-navy); border-color: rgba(0,113,188,0.2); }
body.has-uplift .alert-warning { background: var(--mc-amber-soft); color: var(--mc-amber); border-color: rgba(186,117,23,0.2); }
body.has-uplift .alert-danger  { background: var(--mc-red-soft); color: var(--mc-red); border-color: rgba(196,18,48,0.2); }

/* Badges. */
body.has-uplift .badge {
  border-radius: 999px;
  padding: 4px 10px;
  font-weight: 700;
  font-size: 11px;
}
body.has-uplift .badge-primary,
body.has-uplift .badge-info    { background: var(--mc-blue-soft); color: var(--mc-blue); }
body.has-uplift .badge-success { background: var(--mc-green-soft); color: var(--mc-green); }
body.has-uplift .badge-warning { background: var(--mc-amber-soft); color: var(--mc-amber); }
body.has-uplift .badge-danger  { background: var(--mc-red-soft); color: var(--mc-red); }
body.has-uplift .badge-secondary { background: rgba(11,59,94,0.08); color: var(--mc-mute); }

/* Dropdowns. */
body.has-uplift .dropdown-menu {
  border-radius: 12px;
  border: 1px solid var(--mc-line);
  box-shadow: 0 14px 36px rgba(11,59,94,0.18);
  padding: 6px;
}
body.has-uplift .dropdown-item {
  border-radius: 7px;
  padding: 8px 12px;
  font-size: 13px;
  color: var(--mc-ink);
}
body.has-uplift .dropdown-item:hover,
body.has-uplift .dropdown-item:focus { background: var(--mc-blue-soft); color: var(--mc-navy); }

/* Modals. */
body.has-uplift .modal-content {
  border-radius: 18px;
  border: 1px solid var(--mc-line);
  box-shadow: 0 30px 80px rgba(11,59,94,0.25);
}
body.has-uplift .modal-header {
  background: var(--mc-cream-soft);
  border-bottom: 1px solid var(--mc-line);
  padding: 18px 22px;
}
body.has-uplift .modal-title { color: var(--mc-navy); font-weight: 700; }
body.has-uplift .modal-body { padding: 22px; color: var(--mc-ink); }
body.has-uplift .modal-footer { background: var(--mc-cream-soft); border-top: 1px solid var(--mc-line); }

/* Nav tabs / pills. */
body.has-uplift .nav-tabs {
  border-bottom: 1px solid var(--mc-line);
}
body.has-uplift .nav-tabs .nav-link {
  border: none;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  color: var(--mc-mute);
  font-weight: 600;
  padding: 10px 16px;
}
body.has-uplift .nav-tabs .nav-link.active {
  background: transparent;
  border-bottom-color: var(--mc-blue);
  color: var(--mc-navy);
}

/* Progress bars. */
body.has-uplift .progress {
  height: 10px; border-radius: 999px;
  background: rgba(11,59,94,0.08);
  overflow: hidden;
}
body.has-uplift .progress-bar {
  background: linear-gradient(90deg, var(--mc-navy), var(--mc-blue));
  box-shadow: 0 0 8px rgba(0,113,188,0.30);
}

/* Pagination. */
body.has-uplift .pagination .page-link {
  border-radius: 8px; margin: 0 2px;
  border: 1px solid var(--mc-line); color: var(--mc-navy);
}
body.has-uplift .pagination .page-item.active .page-link {
  background: var(--mc-navy); border-color: var(--mc-navy); color: white;
}

/* ============================================================
   Tooltips & popovers — full restyle to match the new platform.
   Applied platform-wide (not gated on has-uplift) so they match
   the visual language everywhere they appear, including pages
   that don't have the uplift class. Covers:
     - Bootstrap tooltips (data-toggle="tooltip")
     - Rich-content tooltips with em/span/b/br (data-html="true")
     - Bootstrap popovers (data-toggle="popover")
     - Form-validation tooltips (.valid-tooltip / .invalid-tooltip)
   The Bootstrap defaults (deep black, hard corners, 150ms fade)
   read as legacy chrome inside the navy/cream UI; the existing
   compiled app.css also injects a legacy white-bg variant via
   `.tooltip > .tooltip-inner` which we explicitly override here.
   ============================================================ */
.tooltip {
  font-family: var(--mc-font, inherit) !important;
  /* Faster pop — Bootstrap defaults to 150ms fade. Drop to 80ms
     so the tooltip lands before the user's eyes have to wait for
     it. Animation stays so the appearance still feels intentional
     (not a flash). */
  transition: opacity 80ms ease-out !important;
  /* Win against every other stacking context on the platform —
     the sidebar (1100), topbar bell/menu (1200), the dashboard
     hero (9000), nav flyouts (9999), modal backdrops (10000) and
     anything else that has snuck up the z-index ladder. Tooltips
     are short-lived overlays and should always paint on top. */
  z-index: 2147483647 !important;
}
/* Bootstrap also injects a `.tooltip-arrow` element; keep it
   pinned to the same plane as the bubble. */
.tooltip .arrow,
.tooltip > .arrow,
.tooltip .tooltip-arrow,
.tooltip > .tooltip-arrow {
  z-index: 2147483647 !important;
}
.tooltip.show { opacity: 0.98 !important; }

/* Use BOTH descendant and direct-child selectors so we beat the
   legacy `.tooltip > .tooltip-inner` rule even if specificity
   ties happen to fall the wrong way after future Bootstrap
   upgrades. The legacy rule sits in `public/css/app.css`. */
.tooltip .tooltip-inner,
.tooltip > .tooltip-inner {
  background: var(--mc-navy, #0B3B5E) !important;
  color: white !important;
  font-family: var(--mc-font, inherit) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.005em !important;
  padding: 8px 12px !important;
  border-radius: 8px !important;
  max-width: 300px !important;
  text-align: left !important;
  box-shadow:
    0 6px 18px rgba(11, 59, 94, 0.22),
    0 2px 4px rgba(11, 59, 94, 0.10) !important;
}

/* Rich-content tooltips (data-html="true") — the legacy SCSS
   styles inline em/span/b inside tooltip-inner as heading + body
   markers. Override with a softer treatment on the dark bubble:
   em becomes the section header (slightly larger + uppercase
   eyebrow feel), span/b stay readable in the same white. */
.tooltip .tooltip-inner em,
.tooltip > .tooltip-inner em {
  display: inline-block;
  margin-bottom: 2px;
  font-size: 10.5px !important;
  font-style: normal !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.78);
}
.tooltip .tooltip-inner span,
.tooltip > .tooltip-inner span {
  font-size: 12px !important;
  font-style: normal !important;
  line-height: 1.5 !important;
  color: white;
}
.tooltip .tooltip-inner b,
.tooltip > .tooltip-inner b {
  font-weight: 600;
  color: white;
}
.tooltip .tooltip-inner br + br { display: block; height: 4px; }

/* Arrows — recolor to match the navy bubble. Bootstrap 4 uses
   .arrow::before with a border-color trick; override per
   placement so the visible triangle takes the navy fill. The
   legacy app.css ships `.tooltip .arrow:before { border-top/
   bottom-color: white !important }` so we use !important too. */
.tooltip .arrow::before { border-color: transparent !important; }
.bs-tooltip-top   .arrow::before,
.bs-tooltip-auto[x-placement^="top"]    .arrow::before { border-top-color:    var(--mc-navy, #0B3B5E) !important; }
.bs-tooltip-bottom .arrow::before,
.bs-tooltip-auto[x-placement^="bottom"] .arrow::before { border-bottom-color: var(--mc-navy, #0B3B5E) !important; }
.bs-tooltip-left  .arrow::before,
.bs-tooltip-auto[x-placement^="left"]   .arrow::before { border-left-color:   var(--mc-navy, #0B3B5E) !important; }
.bs-tooltip-right .arrow::before,
.bs-tooltip-auto[x-placement^="right"]  .arrow::before { border-right-color:  var(--mc-navy, #0B3B5E) !important; }

/* Bootstrap popovers — bigger sibling of tooltip, used for
   longer / interactive hover content. Same family treatment:
   white surface with navy text + soft navy shadow + 12px radius
   so it lines up with the dashboard cards. */
.popover {
  font-family: var(--mc-font, inherit) !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  background: white !important;
  border: 1px solid rgba(11, 59, 94, 0.12) !important;
  border-radius: 12px !important;
  box-shadow:
    0 12px 32px rgba(11, 59, 94, 0.18),
    0 2px 6px rgba(11, 59, 94, 0.08) !important;
  max-width: 320px !important;
}
.popover-header {
  background: rgba(11, 59, 94, 0.04) !important;
  color: var(--mc-navy, #0B3B5E) !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  border-bottom: 1px solid rgba(11, 59, 94, 0.08) !important;
  border-radius: 12px 12px 0 0 !important;
  padding: 10px 14px !important;
}
.popover-body {
  color: var(--mc-ink, #1f2a37) !important;
  padding: 12px 14px !important;
}
.bs-popover-top    .arrow::before,
.bs-popover-auto[x-placement^="top"]    .arrow::before { border-top-color:    rgba(11, 59, 94, 0.18) !important; }
.bs-popover-top    .arrow::after,
.bs-popover-auto[x-placement^="top"]    .arrow::after  { border-top-color:    white !important; }
.bs-popover-bottom .arrow::before,
.bs-popover-auto[x-placement^="bottom"] .arrow::before { border-bottom-color: rgba(11, 59, 94, 0.18) !important; }
.bs-popover-bottom .arrow::after,
.bs-popover-auto[x-placement^="bottom"] .arrow::after  { border-bottom-color: rgba(11, 59, 94, 0.04) !important; }
.bs-popover-left   .arrow::before,
.bs-popover-auto[x-placement^="left"]   .arrow::before { border-left-color:   rgba(11, 59, 94, 0.18) !important; }
.bs-popover-left   .arrow::after,
.bs-popover-auto[x-placement^="left"]   .arrow::after  { border-left-color:   white !important; }
.bs-popover-right  .arrow::before,
.bs-popover-auto[x-placement^="right"]  .arrow::before { border-right-color:  rgba(11, 59, 94, 0.18) !important; }
.bs-popover-right  .arrow::after,
.bs-popover-auto[x-placement^="right"]  .arrow::after  { border-right-color:  white !important; }

/* Form-validation tooltips (.valid-tooltip / .invalid-tooltip) —
   used by Bootstrap's :valid / :invalid form-state hooks. Match
   the platform's status pill palette instead of the default
   solid green / solid red blocks. */
.valid-tooltip {
  font-family: var(--mc-font, inherit) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  background: #1f8a4c !important;
  color: white !important;
  border-radius: 8px !important;
  padding: 7px 11px !important;
  box-shadow: 0 6px 18px rgba(31, 138, 76, 0.22) !important;
}
.invalid-tooltip {
  font-family: var(--mc-font, inherit) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  background: #A32D2D !important;
  color: white !important;
  border-radius: 8px !important;
  padding: 7px 11px !important;
  box-shadow: 0 6px 18px rgba(163, 45, 45, 0.22) !important;
}

/* ============================================================
   15. LEGACY CHROME SUPPRESSION & ELEMENT NORMALIZATION
   ============================================================ */
/* Hide the legacy companyListDropdown styling. The company switch
   now lives in the sidebar org card. */
body.has-uplift .multiple-companies { display: none !important; }

/* Tawk/Meddy widget container — leave it; just make sure z-index
   keeps it under modals. */
body.has-uplift iframe[id^="tawk"],
body.has-uplift iframe[id^="meddy"] { z-index: 1050 !important; }

/* Container padding inside .mc-content. */
body.has-uplift .mc-content > .container,
body.has-uplift .mc-content > .container-fluid {
  padding-left: 32px; padding-right: 32px;
}
body.has-uplift .mc-content > .container > .row,
body.has-uplift .mc-content > .container-fluid > .row { margin-bottom: 16px; }

/* Stop bootstrap container from collapsing too narrow within wide canvas. */
@media (min-width: 1200px) {
  body.has-uplift .mc-content > .container { max-width: 1320px; }
}

/* Restore some legacy wrappers that have aggressive margins. */
body.has-uplift .nav-icon { display: none !important; }

/* ============================================================
   13a. SRA TAB CONTENT — legacy panel restyle.
        The _dashboard_assessments partial uses panel.panel-default
        + card.card-header + various ad-hoc classes that need
        targeted styling to match the design system.
   ============================================================ */
body.has-uplift .dashboard-container .panel.panel-default {
  background: transparent; border: none; box-shadow: none;
}
body.has-uplift .dashboard-container .panel-heading { display: none; }

/* Per-assessment card. */
body.has-uplift .dashboard-container .card .top-heading {
  color: var(--mc-blue); font-size: 24px; font-weight: 500;
  letter-spacing: -0.01em; margin: 0 0 4px; line-height: 1.2;
}
body.has-uplift .dashboard-container .card .company {
  color: var(--mc-mute); font-size: 13px; font-weight: 500;
}
body.has-uplift .dashboard-container .card .name_edit_btn {
  color: var(--mc-mute-2); margin-left: 8px;
  font-size: 12px; text-decoration: none;
}
body.has-uplift .dashboard-container .card .name_edit_btn:hover { color: var(--mc-blue); }

/* Calculate Risk button + Archive toggle. */
body.has-uplift .dashboard-container .card-header .btn-info,
body.has-uplift .dashboard-container .calculate-risk-btn {
  background: var(--mc-blue); border-color: var(--mc-blue); color: white;
  border-radius: 10px; font-weight: 600;
}
body.has-uplift .dashboard-container .archive-switch,
body.has-uplift .archive-row {
  font-size: 13px; color: var(--mc-mute);
}

/* Big stat row: OPEN / ANSWERED / Percentage ANSWERED */
body.has-uplift .scan-stats,
body.has-uplift .questions-stats,
body.has-uplift .ai-stats-row {
  display: flex; gap: 0; padding: 18px 0;
  border-top: 1px solid var(--mc-line-2);
  border-bottom: 1px solid var(--mc-line-2);
  margin: 18px 0;
}

/* Section links list. */
body.has-uplift .dashboard-container .accordion-group .nav-item,
body.has-uplift .ai-status .nav-link,
body.has-uplift .scan-status .nav-link {
  font-size: 14px; color: var(--mc-blue); font-weight: 600;
}

/* PolicyScan / "automated review" gray panel. */
body.has-uplift .ai-section,
body.has-uplift [class*="PolicyScan"],
body.has-uplift .policyscan-section {
  background: var(--mc-cream-soft);
  border: 1px solid var(--mc-cream-border);
  border-radius: 14px;
  padding: 22px 26px;
  margin: 18px 0;
}
body.has-uplift .policyscan-modal-btn {
  border-radius: 9px; font-weight: 700;
  background: var(--mc-red); border-color: var(--mc-red); color: white;
}

/* Walkthroughs header */
body.has-uplift .walkthroughs-header,
body.has-uplift .dashboard-container h3 {
  color: var(--mc-navy); font-weight: 700; font-size: 17px;
  margin: 24px 0 12px;
}

/* ============================================================
   13b. MANAGE USERS — design-system overrides for the legacy
        page that hosts a Vue add-user component.
   ============================================================ */
body.has-uplift .add-user-page { padding: 0 32px; }
body.has-uplift .add-user-main-heading h5 {
  color: var(--mc-navy); font-weight: 700; font-size: 13px;
  text-transform: uppercase; letter-spacing: 0.08em;
  margin: 0 0 14px;
}
body.has-uplift .user-roles {
  gap: 16px; display: flex; flex-wrap: wrap;
}
body.has-uplift .add-user-heading-area {
  flex: 1 1 280px;
  background: white; border: 1px solid var(--mc-line);
  border-radius: 16px; padding: 22px 24px;
  box-shadow: 0 1px 2px rgba(11,59,94,0.04);
}
body.has-uplift .add-user-heading-area h4 {
  color: var(--mc-navy); font-size: 17px; font-weight: 700;
  margin: 0 0 10px;
}
body.has-uplift .add-user-heading-area .role-description {
  font-size: 13px; color: var(--mc-mute); line-height: 1.55;
}
body.has-uplift .add-user-heading-area .role-description ul {
  margin: 10px 0 0; padding-left: 18px;
  color: var(--mc-ink); font-size: 13px;
}
body.has-uplift .add-user-heading-area .role-description ul li {
  margin-bottom: 4px;
}

/* Add User / Manage tab strip — restyle the legacy nav-tabs. */
body.has-uplift .dashboard-border {
  border: none; background: rgba(11,59,94,0.05);
  border-radius: 12px; padding: 4px; margin-bottom: 18px;
  display: inline-flex; gap: 4px;
}
body.has-uplift .dashboard-border .nav-link {
  border: none; padding: 8px 18px;
  font-size: 13px; font-weight: 600;
  color: var(--mc-mute); border-radius: 9px;
}
body.has-uplift .dashboard-border .nav-link h5 {
  margin: 0; font-size: 13px; font-weight: 600;
}
body.has-uplift .dashboard-border .nav-link.active {
  background: white; color: var(--mc-navy);
  box-shadow: 0 1px 2px rgba(11,59,94,0.06);
}

body.has-uplift .manage-users { padding: 18px 0; }
body.has-uplift .manage-dept-area > section { padding: 0; }

/* ============================================================
   13c. COMPANY PROFILE — design-system overrides for legacy
        Order History panels.
   ============================================================ */
body.has-uplift .order-history-card,
body.has-uplift .order-card,
body.has-uplift [class*="order-history"] .card {
  border-radius: 14px; overflow: hidden;
  border: 1px solid var(--mc-line);
  box-shadow: 0 1px 2px rgba(11,59,94,0.04);
  margin-bottom: 12px;
}
body.has-uplift .order-card-header,
body.has-uplift [class*="order-history"] .card-header {
  background: var(--mc-navy);
  color: white; padding: 14px 18px;
  font-weight: 700;
}

/* ============================================================
   14b. CALENDAR PAGE
   ============================================================
   The calendar's full uplift styling now lives, scoped, in the page's
   own <style> block (resources/views/calendar/index.blade.php) so the
   FullCalendar internals, modals, scope toggle, and legend-as-filter
   are all themed from one place. The former "light-touch" rules here
   were removed (2026-06-23) because they competed on specificity with
   the page block and broke the scope toggle. Keep calendar styling in
   the page block, not here. The shared `body.has-uplift` button / form /
   modal / card rules elsewhere in this file still apply to it. */
body.has-uplift .medcurity-calendar-page { padding: 0 12px; }

/* ============================================================
   14c. USERS / PROFILE / EVIDENCE — light-touch panel dressing.
   ============================================================ */
body.has-uplift .add-user-page .add-user-main-heading h5,
body.has-uplift .add-user-page h5 {
  color: var(--mc-navy); font-weight: 700; font-size: 15px;
  text-transform: uppercase; letter-spacing: 0.06em;
}
/* Manage Users page — outer wrapper used to render as its own card
   nested inside the page. Dropped the card chrome so the inner role
   cards (.add-user-heading-area) and the tab strip below sit on the
   page background directly. */
body.has-uplift .manage-dept-area {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
  margin-bottom: 16px;
}
body.has-uplift .user-permission-card,
body.has-uplift .edit-user-main-cont {
  background: white; border: 1px solid var(--mc-line);
  border-radius: 16px; padding: 22px 26px;
  box-shadow: 0 1px 2px rgba(11,59,94,0.04);
  margin-bottom: 16px;
}

/* Evidence library tiles. */
body.has-uplift .evidence-tile,
body.has-uplift .evidence-row {
  background: white; border-radius: 14px;
  border: 1px solid var(--mc-line);
  padding: 16px 20px; margin-bottom: 10px;
  box-shadow: 0 1px 2px rgba(11,59,94,0.04);
}

/* ============================================================
   15a. DASHBOARD-SPECIFIC TWEAKS
   ============================================================
   The legacy dashboard ships its own internal left-nav column
   inside `.dashboard-container`. Now that the global Uplift
   sidebar carries the same links, hide the internal one so the
   right column (tab content) takes the full canvas width.
*/
body.has-uplift.dashboard .dashboard-container { max-width: 100%; padding-left: 32px; padding-right: 32px; }
body.has-uplift.dashboard .dashboard-nav-column { display: none !important; }
body.has-uplift.dashboard .dashboard-tab-content,
body.has-uplift.dashboard .col-lg-10.dashboard-tab-content {
  max-width: 100%; flex: 0 0 100%;
}
body.has-uplift.dashboard .row.no-gutters > .col-lg-10 { flex: 0 0 100%; max-width: 100%; }

/* Trim the inline <br><br> that sits between the messages and
   the row — the new hero already provides top spacing. */
body.has-uplift.dashboard .dashboard-container > br { display: none; }
body.has-uplift .mc-dashboard-uplift + .container,
body.has-uplift .mc-dashboard-uplift ~ .container { padding-top: 0; }

/* When the dashboard is not the active route (e.g. SRA tab,
   BAA tab), the same suppression applies since the URL is
   still `companies.dashboard.*`. The body class is `dashboard`
   for the top-level route but we also see `companies.dashboard.*`
   route names — wildcard-match those. */
body.has-uplift[class*="companies.dashboard"] .dashboard-nav-column { display: none !important; }
body.has-uplift[class*="companies.dashboard"] .dashboard-container { max-width: 100%; padding-left: 32px; padding-right: 32px; }
body.has-uplift[class*="companies.dashboard"] .row.no-gutters > .col-lg-10 { flex: 0 0 100%; max-width: 100%; }
body.has-uplift[class*="companies.dashboard"] .dashboard-tab-content { max-width: 100%; flex: 0 0 100%; }

/* The dashboard-tab partials use Bootstrap cards/panels; let
   the uplift's card/table/btn overrides take it from here. */

/* ============================================================
   16. PRINT — strip the chrome
   ============================================================ */
@media print {
  body.has-uplift .mc-side,
  body.has-uplift .mc-topbar,
  body.has-uplift .mc-collapse-toggle { display: none !important; }
  body.has-uplift .mc-shell { grid-template-columns: 1fr; background: white; }
  body.has-uplift .mc-content { padding: 0; }
}

/* ============================================================
   Admin-header "Welcome {company}" line — only on main Dashboard.
   ============================================================ */
/* Hide everywhere by default... */
body.has-uplift .admin-header-area h4.d-inline-block {
  display: none !important;
}
/* ...except on the top-level Dashboard route (body class
   `companies.dashboard`, which is a different literal class
   from sub-tabs like `companies.dashboard.sra`). */
body.has-uplift.companies\.dashboard .admin-header-area h4.d-inline-block {
  display: inline-block !important;
}
/* ...but ALSO hide it when the onboarding banner is on screen —
   the banner already greets the tenant with "Welcome to Medcurity,
   {company}", so the smaller secondary line above it is redundant. */
body.has-uplift.companies\.dashboard:has(.mc-onboarding-uplift) .admin-header-area h4.d-inline-block {
  display: none !important;
}

/* ============================================================
   10d. SRA SECONDARY PANELS (mockup uplift, 2026-05-28)
        Restyles the legacy <legend> + textarea + radio rows in
        the SRA walkthrough below the question card:
          - Impact of Risk
          - Likelihood
          - Assessor Details / Notes
          - Comments / Submit Comment
          - Associated Policies header
          - Evidence header
        Markup untouched — pure CSS scoping under .company_questions.
   ============================================================ */

/* Replace the screaming blue full-width legend bars with a
   tidy section header (small label + thin underline). */
body.has-uplift.questions-pg .company_questions fieldset {
  background: white;
  border: 1px solid rgba(11, 59, 94, 0.08);
  border-radius: 14px;
  padding: 18px 20px 14px;
  margin-bottom: 14px;
  box-shadow: 0 1px 2px rgba(11, 59, 94, 0.04);
}
body.has-uplift.questions-pg .company_questions legend {
  all: unset;
  display: flex; align-items: center; gap: 8px;
  font-size: 11.5px; font-weight: 700;
  color: var(--mc-mute);
  text-transform: uppercase; letter-spacing: 0.08em;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(11, 59, 94, 0.06);
  width: 100%;
  background: transparent !important;
}
body.has-uplift.questions-pg .company_questions legend .btn-secondary,
body.has-uplift.questions-pg .company_questions legend button {
  background: transparent !important;
  border: 1px solid rgba(11, 59, 94, 0.12) !important;
  color: var(--mc-mute) !important;
  border-radius: 999px;
  width: 22px; height: 22px;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0;
  box-shadow: none;
}
body.has-uplift.questions-pg .company_questions legend button:hover {
  color: var(--mc-blue) !important;
  border-color: var(--mc-blue) !important;
}

/* Hide the .answers fieldset wrapper styling — the new .sra-qcard
   provides its own container — but keep the layout. */
body.has-uplift.questions-pg .company_questions fieldset.answers,
body.has-uplift.questions-pg .company_questions fieldset.sra-answers-fieldset {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  margin-bottom: 14px;
  box-shadow: none;
}
body.has-uplift.questions-pg .company_questions fieldset.answers > legend,
body.has-uplift.questions-pg .company_questions fieldset.sra-answers-fieldset > legend {
  display: none;
}

/* Impact of Risk + Likelihood radio rows.
   Original markup: <div class="form-group p-1 d-flex form-control"><div><input radio><label></div>...</div>
   Make the form-control wrapper invisible (no border, no padding box). */
body.has-uplift.questions-pg .risk_impact .form-control,
body.has-uplift.questions-pg .risk_likelihood .form-control {
  background: transparent;
  border: 0;
  padding: 0;
  height: auto;
  min-height: 0;
  display: flex; flex-wrap: wrap; gap: 8px;
  overflow: visible !important;
}
body.has-uplift.questions-pg .risk_impact .form-group,
body.has-uplift.questions-pg .risk_likelihood .form-group {
  overflow: visible !important;
}
body.has-uplift.questions-pg .risk_impact .form-control > div,
body.has-uplift.questions-pg .risk_likelihood .form-control > div {
  margin-right: 0 !important;
  padding: 0 !important;
}

/* Each Low/Medium/High becomes a click-pill. */
body.has-uplift.questions-pg .risk_impact .form-control > div:not(:has(button)),
body.has-uplift.questions-pg .risk_likelihood .form-control > div:not(:has(button)) {
  background: white;
  border: 1px solid rgba(11, 59, 94, 0.12);
  border-radius: 9px;
  padding: 8px 14px !important;
  cursor: pointer;
  transition: all 120ms ease;
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
}
body.has-uplift.questions-pg .risk_impact .form-control > div:not(:has(button)):hover,
body.has-uplift.questions-pg .risk_likelihood .form-control > div:not(:has(button)):hover {
  border-color: var(--mc-blue);
  background: var(--mc-blue-soft);
}
body.has-uplift.questions-pg .risk_impact label,
body.has-uplift.questions-pg .risk_likelihood label {
  font-size: 13px; font-weight: 600;
  color: var(--mc-ink);
  cursor: pointer;
  margin: 0 !important;
}
body.has-uplift.questions-pg .risk_impact input[type="radio"],
body.has-uplift.questions-pg .risk_likelihood input[type="radio"] {
  accent-color: var(--mc-blue);
  width: 14px; height: 14px;
  cursor: pointer;
}

/* "De-select" button — make it a subtle text link, not a screaming red pill. */
body.has-uplift.questions-pg .risk_impact .deselect-btn,
body.has-uplift.questions-pg .risk_likelihood .deselect-btn,
body.has-uplift.questions-pg .answers .deselect-btn {
  background: transparent !important;
  border: 0 !important;
  color: var(--mc-mute) !important;
  font-size: 12.5px; font-weight: 600;
  padding: 6px 12px !important;
  box-shadow: none !important;
  border-radius: 8px;
  white-space: nowrap !important;
  flex-shrink: 0;
  margin-left: auto;
  height: auto !important;
  width: auto !important;
  min-width: 0 !important;
}
body.has-uplift.questions-pg .risk_impact .deselect-btn:hover,
body.has-uplift.questions-pg .risk_likelihood .deselect-btn:hover,
body.has-uplift.questions-pg .answers .deselect-btn:hover {
  background: rgba(196, 18, 48, 0.08) !important;
  color: var(--mc-red) !important;
}

/* Textareas — Assessor Details, Comments, Recommendation. */
body.has-uplift.questions-pg .company_questions textarea.form-control,
body.has-uplift.questions-pg .company_questions input[type="text"].form-control,
body.has-uplift.questions-pg .company_questions input[type="date"].form-control,
body.has-uplift.questions-pg .company_questions select.form-control {
  border: 1px solid rgba(11, 59, 94, 0.12);
  border-radius: 9px;
  padding: 10px 12px;
  font-size: 13.5px;
  color: var(--mc-ink);
  background: white;
  box-shadow: none;
  transition: border-color 120ms ease, box-shadow 120ms ease;
}
body.has-uplift.questions-pg .company_questions textarea.form-control:focus,
body.has-uplift.questions-pg .company_questions input[type="text"].form-control:focus,
body.has-uplift.questions-pg .company_questions input[type="date"].form-control:focus,
body.has-uplift.questions-pg .company_questions select.form-control:focus {
  outline: 0;
  border-color: var(--mc-blue);
  box-shadow: 0 0 0 3px var(--mc-blue-soft);
}

/* "Submit Comment" button — uplift red. */
body.has-uplift.questions-pg .company_questions #submitComment,
body.has-uplift.questions-pg .company_questions input[type="submit"].btn-primary {
  background: var(--mc-red);
  border-color: var(--mc-red);
  color: white;
  border-radius: 9px;
  padding: 10px 22px;
  font-weight: 700;
  font-size: 13px;
  box-shadow: 0 6px 16px rgba(196, 18, 48, 0.22);
  transition: transform 120ms ease, box-shadow 120ms ease;
}
body.has-uplift.questions-pg .company_questions #submitComment:hover,
body.has-uplift.questions-pg .company_questions input[type="submit"].btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(196, 18, 48, 0.28);
}

/* Existing comments list — restyle dt/dd pairs as tidy thread items. */
body.has-uplift.questions-pg .comment-list-wrapper {
  margin-top: 14px;
  border-top: 1px solid rgba(11, 59, 94, 0.06);
  padding-top: 14px;
}
body.has-uplift.questions-pg .comment-list-wrapper dl {
  margin: 0;
}
body.has-uplift.questions-pg .comment-list-wrapper dt {
  font-size: 12px;
  color: var(--mc-mute);
  font-weight: 600;
  margin-bottom: 4px;
}
body.has-uplift.questions-pg .comment-list-wrapper dd {
  margin: 0 0 14px;
  padding: 12px 14px;
  background: rgba(11, 59, 94, 0.03);
  border-radius: 10px;
  font-size: 13px;
  color: var(--mc-ink);
}
body.has-uplift.questions-pg .comment-list-wrapper .comment-delete,
body.has-uplift.questions-pg .comment-list-wrapper .comment-edit {
  color: var(--mc-mute) !important;
  font-size: 11.5px !important;
  text-decoration: none !important;
  font-weight: 600 !important;
}
body.has-uplift.questions-pg .comment-list-wrapper .comment-delete:hover {
  color: var(--mc-red) !important;
}
body.has-uplift.questions-pg .comment-list-wrapper .comment-edit:hover {
  color: var(--mc-blue) !important;
}
/* Hide the comment-list wrapper entirely when there are no comments —
   otherwise the empty <dl> renders as a confusing rounded rectangle. */
body.has-uplift.questions-pg .comment-list-wrapper:has(> dl#comment-list:empty) {
  display: none !important;
}

/* Hide the Associated Policies fieldset when it has only a legend and
   no real policy children — the legend alone is just noise. */
body.has-uplift.questions-pg fieldset.associated_policy:not(:has(> *:not(legend))) {
  display: none !important;
}

/* Associated Policies / Evidence — the markup uses standalone .blue-bg
   section headers via Bootstrap classes. Make them match. */
body.has-uplift.questions-pg .company_questions .section_title,
body.has-uplift.questions-pg .company_questions h3.policies-title,
body.has-uplift.questions-pg .company_questions h3.evidence-title {
  font-size: 11.5px; font-weight: 700;
  color: var(--mc-mute);
  text-transform: uppercase; letter-spacing: 0.08em;
  background: transparent;
  padding: 0 0 8px;
  border-bottom: 1px solid rgba(11, 59, 94, 0.06);
  margin: 0 0 14px;
}

/* The legacy blue bars rendered via custom HTML (not <legend>) — they
   appear with a navy background. Detect by descendants and override. */
body.has-uplift.questions-pg .company_questions [style*="background-color: rgb(11, 59, 94)"],
body.has-uplift.questions-pg .company_questions [style*="background:#0b3b5e"],
body.has-uplift.questions-pg .company_questions [style*="background: #0b3b5e"],
body.has-uplift.questions-pg .company_questions .questions_blue_bg,
body.has-uplift.questions-pg .company_questions .associated-policies-header,
body.has-uplift.questions-pg .company_questions .evidence-header {
  background: transparent !important;
  color: var(--mc-mute) !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 14px 0 6px !important;
  margin-bottom: 8px;
  border-bottom: 1px solid rgba(11, 59, 94, 0.06);
  border-radius: 0 !important;
}

/* Evidence / 2FA banner alerts inside the walkthrough. */
body.has-uplift.questions-pg .company_questions .alert {
  border-radius: 10px;
  border: 1px solid rgba(11, 59, 94, 0.08);
  font-size: 12.5px;
}
body.has-uplift.questions-pg .company_questions .alert a {
  color: var(--mc-blue);
  font-weight: 600;
  text-decoration: none;
}
body.has-uplift.questions-pg .company_questions .alert a:hover {
  text-decoration: underline;
}

/* Previous / Next question footer buttons + counter. */
body.has-uplift.questions-pg .question-nav,
body.has-uplift.questions-pg .col-lg-8 > .d-flex.justify-content-between {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(11, 59, 94, 0.06);
  align-items: center;
}
body.has-uplift.questions-pg .question-nav .btn,
body.has-uplift.questions-pg .col-lg-8 .question-prev,
body.has-uplift.questions-pg .col-lg-8 .question-next {
  background: white;
  border: 1px solid rgba(11, 59, 94, 0.14);
  color: var(--mc-navy);
  border-radius: 9px;
  font-size: 13px;
  font-weight: 600;
  padding: 9px 18px;
}
body.has-uplift.questions-pg .question-nav .btn:hover,
body.has-uplift.questions-pg .col-lg-8 .question-prev:hover,
body.has-uplift.questions-pg .col-lg-8 .question-next:hover {
  border-color: var(--mc-blue);
  color: var(--mc-blue);
}

/* ============================================================
   10e. SRA WALKTHROUGH — Frame 2 LAYOUT (2026-05-28)
        Restructures the legacy 4/8 Bootstrap row into the mockup's
        3-column shell:  280px stepper | 1fr main | 280px help.
        Hides the legacy left-flyout markup (still in DOM for tests
        but not rendered) and lays out the new .mc-sra-stepper +
        .mc-sra-extra alongside the existing .col-lg-8.questions
        as a CSS grid.
   ============================================================ */

/* Hide the legacy left flyout completely under uplift — its content
   (open/answered tabs + per-section accordion) is replaced by the
   new .mc-sra-stepper aside. */
body.has-uplift.questions-pg .company_questions .col-lg-4.questions_flyout {
  display: none !important;
}

/* Top-level shell. .company_questions wraps section > .row.
   Promote .row to a CSS grid that puts the stepper, main, and help
   side by side. */
body.has-uplift.questions-pg .company_questions {
  background: var(--mc-bg);
  padding: 24px 0 0;
}
body.has-uplift.questions-pg .company_questions > section {
  position: relative;
  margin: 0 24px;
  /* Background card removed — the inner question column and the
     help column carry their own surfaces; wrapping them in a third
     outer card made the page feel boxed-in. */
  background: transparent;
  border: 0;
  box-shadow: none;
  overflow: visible;
  border-radius: 0;
}
body.has-uplift.questions-pg .company_questions > section > .row {
  display: grid;
  /* Right column width is driven by a CSS variable so the
     question/extra divider can adjust it. Default 280px; clamped
     200-500px by the JS handler; persisted to localStorage.
     `minmax(0, 1fr)` (not just `1fr`) lets the question column
     shrink below its content's min-width — without this, dragging
     the extra column near its 500px max would push the grid past
     the section's right edge instead of compressing the question
     column. */
  grid-template-columns: minmax(0, 1fr) var(--mc-extra-w, 280px);
  /* Explicit zero gap + Bootstrap gutter vars overridden so the
     question column butts directly against the help column with
     no Bootstrap-injected gap. */
  gap: 0;
  --bs-gutter-x: 0;
  --bs-gutter-y: 0;
  margin: 0;
  min-height: 720px;
}
body.has-uplift.questions-pg .company_questions > section {
  position: relative;
}
/* Draggable divider between the question column and the right
   extra-info column. Sits centered on the boundary; same hit
   target + hover treatment as the left-side stepper handle. */
body.has-uplift.questions-pg .mc-extra-resize-handle {
  position: absolute;
  top: 0;
  bottom: 0;
  right: calc(var(--mc-extra-w, 280px) - 5px);
  width: 10px;
  cursor: col-resize;
  z-index: 5;
  touch-action: none;
  user-select: none;
}
body.has-uplift.questions-pg .mc-extra-resize-handle::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1.5px;
  background: transparent;
  transition: background 120ms ease;
  transform: translateX(-50%);
}
body.has-uplift.questions-pg .mc-extra-resize-handle:hover::before,
body.has-uplift.questions-pg .mc-extra-resize-handle.is-dragging::before {
  background: rgba(11, 59, 94, 0.30);
}
@media (max-width: 1280px) {
  body.has-uplift.questions-pg .mc-extra-resize-handle { display: none; }
}
/* Hide the extra-column divider when the question has no extra
   info to show (no references AND no prior-year response) — the
   right column collapses to empty in that case and there's
   nothing to resize against. */
body.has-uplift.questions-pg section:not(:has(.mc-sra-extra)) .mc-extra-resize-handle {
  display: none;
}
body.has-uplift.questions-pg section:not(:has(.mc-sra-extra)) > .row {
  grid-template-columns: 1fr;
}
@media (max-width: 1280px) {
  body.has-uplift.questions-pg .company_questions > section > .row {
    grid-template-columns: 1fr;
  }
}

/* The stepper sits OUTSIDE the section wrapper so it can render
   to the left of the card. Make .company_questions a flex/grid
   container that arranges stepper + section side-by-side. No top
   padding so the columns sit flush with the navy status bar above
   them, and no gap so the three columns (stepper / main / refs)
   read as a single continuous surface instead of three floating
   cards. */
body.has-uplift.questions-pg .company_questions:has(.mc-sra-stepper) {
  display: grid;
  /* Stepper width is driven by a CSS variable so the divider can
     adjust it. Default 280px, clamped 180-500px by the JS resize
     handler; persisted to localStorage so the choice sticks. */
  grid-template-columns: var(--mc-stepper-w, 280px) 1fr;
  gap: 0;
  padding: 0 24px 0;
  align-items: stretch;
  /* Anchor for the absolutely-positioned resize handle below. */
  position: relative;
}
/* Draggable divider between the stepper and the question column.
   Sits centered on the column boundary; a 10px-wide click target
   with a 1.5px visible line that brightens on hover/drag. */
body.has-uplift.questions-pg .mc-stepper-resize-handle {
  position: absolute;
  top: 0;
  bottom: 0;
  /* outer padding (24px) + stepper width - half the handle width */
  left: calc(24px + var(--mc-stepper-w, 280px) - 5px);
  width: 10px;
  cursor: col-resize;
  z-index: 5;
  touch-action: none;
  user-select: none;
}
body.has-uplift.questions-pg .mc-stepper-resize-handle::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1.5px;
  background: transparent;
  transition: background 120ms ease;
  transform: translateX(-50%);
}
body.has-uplift.questions-pg .mc-stepper-resize-handle:hover::before,
body.has-uplift.questions-pg .mc-stepper-resize-handle.is-dragging::before {
  background: rgba(11, 59, 94, 0.30);
}
body.has-uplift.questions-pg .mc-stepper-resize-handle.is-dragging {
  /* While dragging, lock the global cursor so it doesn't flicker
     to text/default as the pointer crosses other elements. */
}
body.is-stepper-resizing,
body.is-stepper-resizing * {
  cursor: col-resize !important;
  user-select: none !important;
}
/* Hide the handle when the layout collapses to single-column
   on narrow screens — the stepper stacks above the content and
   width-resizing makes no sense there. */
@media (max-width: 1280px) {
  body.has-uplift.questions-pg .mc-stepper-resize-handle { display: none; }
}
body.has-uplift.questions-pg .company_questions:has(.mc-sra-stepper) > section {
  margin: 0;
  /* Override the platform-wide `padding: 0 32px 32px;` set higher
     up in this file for `.company_questions > section`. That 32px
     side padding was pushing the question column 32px off the
     stepper's right edge and pushing the help column 32px off the
     navy status bar's right edge — visible as the gaps Makena
     flagged. Zero them out so the row sits flush. */
  padding: 0;
}
body.has-uplift.questions-pg .company_questions:has(.mc-sra-stepper) > .alert,
body.has-uplift.questions-pg .company_questions:has(.mc-sra-stepper) > .messages,
body.has-uplift.questions-pg .company_questions:has(.mc-sra-stepper) > .errors {
  grid-column: 1 / -1;
}
@media (max-width: 1280px) {
  body.has-uplift.questions-pg .company_questions:has(.mc-sra-stepper) {
    grid-template-columns: 1fr;
  }
}

/* Stepper visual styling. Top corners are square so the panel
   sits flush against the flat bottom of the navy status bar
   above; bottom-left rounded so it doesn't look brutally
   chopped at the page's lower edge. */
.mc-sra-stepper {
  background: #f7f9fb;
  border-radius: 0 0 0 14px;
  border: 1px solid rgba(11, 59, 94, 0.06);
  border-top: 0;
  padding: 22px 16px 22px 18px;
  align-self: start;
  position: sticky;
  top: 90px;
  max-height: calc(100vh - 110px);
  overflow-y: auto;
}
/* Panel title ("Walkthrough sections" on the stepper). Navy bold
   uppercase with light tracking so it reads as the dominant
   heading of the panel, above any sub-headings the panel adds.
   The references panel uses the same style. */
.mc-sra-stepper .head {
  font-size: 12px;
  color: var(--mc-navy);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 700;
  margin-bottom: 12px;
}
/* Section step is now a <details>. The <summary> carries the
   visual row (number badge + name + progress + chevron); the
   body holds a scrollable list of the section's individual
   questions. */
.mc-sra-step {
  position: relative;
  border-radius: 9px;
  margin-bottom: 2px;
}
.mc-sra-step > summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 10px;
  border-radius: 9px;
  color: inherit;
  transition: background 120ms ease;
}
.mc-sra-step > summary::-webkit-details-marker { display: none; }
.mc-sra-step > summary::marker { content: ''; }
.mc-sra-step > summary:hover {
  background: rgba(11, 59, 94, 0.04);
}
.mc-sra-step.active > summary {
  background: white;
  box-shadow: 0 1px 2px rgba(11, 59, 94, 0.06);
}
.mc-sra-step .num {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: white;
  border: 1.5px solid rgba(11, 59, 94, 0.18);
  color: var(--mc-mute);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
  z-index: 1;
  position: relative;
}
.mc-sra-step.done .num {
  background: #1f8a4c;
  border-color: #1f8a4c;
  color: white;
}
.mc-sra-step.active .num {
  background: var(--mc-navy);
  border-color: var(--mc-navy);
  color: white;
}
/* Vertical connector between step badges. Anchored to the
   summary's badge area so it doesn't stretch when a step is
   expanded and the question list is visible. */
.mc-sra-step > summary::after {
  content: "";
  position: absolute;
  left: 28px;
  top: 38px;
  width: 1.5px;
  height: calc(100% - 30px);
  background: rgba(11, 59, 94, 0.10);
  pointer-events: none;
}
.mc-sra-step:last-of-type > summary::after {
  display: none;
}
.mc-sra-step .body {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1 1 auto;
}
.mc-sra-step .stt {
  font-size: 13px;
  color: var(--mc-ink);
  font-weight: 600;
  line-height: 1.3;
}
.mc-sra-step.done .stt {
  color: var(--mc-mute);
}
.mc-sra-step.active .stt {
  color: var(--mc-navy);
}
.mc-sra-step .ss {
  font-size: 11.5px;
  color: var(--mc-mute);
  margin-top: 2px;
  line-height: 1.4;
}
/* Small chevron on the right of each step summary. Pointing down
   when collapsed, up when open. `align-self: center` overrides the
   summary's `align-items: flex-start` so the chevron centers
   vertically on the whole card rather than aligning with the first
   line of the section name. `margin-right` gives it a slight gap
   from the card's right edge. */
.mc-sra-step .mc-sra-step-chev {
  flex: 0 0 auto;
  align-self: center;
  width: 8px;
  height: 8px;
  border-right: 1.5px solid rgba(11, 59, 94, 0.30);
  border-bottom: 1.5px solid rgba(11, 59, 94, 0.30);
  transform: rotate(45deg) translate(-2px, -2px);
  margin-left: 4px;
  margin-right: 6px;
  transition: transform 140ms ease;
}
.mc-sra-step[open] > summary .mc-sra-step-chev {
  transform: rotate(-135deg) translate(-2px, -2px);
}

/* Per-question list inside an open section. Capped at ~3 rows
   (each row ~46px tall including padding) so a long section like
   "Administrative Safeguards" doesn't dominate the panel —
   scrolling within the list reveals the rest. */
.mc-sra-step-questions {
  display: flex;
  flex-direction: column;
  gap: 1px;
  margin: 2px 0 6px 36px; /* indent past the number badge */
  padding: 0 4px 0 4px;
  max-height: 138px;
  overflow-y: auto;
}
/* Hide the body when collapsed (Chrome's UA stylesheet doesn't
   always do this when author styles override display on
   non-summary children). */
.mc-sra-step:not([open]) > .mc-sra-step-questions {
  display: none;
}
.mc-sra-step-q {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 6px 8px;
  border-radius: 6px;
  color: inherit;
  text-decoration: none !important;
  font-size: 12px;
  line-height: 1.35;
  transition: background 120ms ease;
}
.mc-sra-step-q:hover {
  background: rgba(11, 59, 94, 0.05);
  text-decoration: none !important;
  color: inherit;
}
.mc-sra-step-q .qn {
  flex: 0 0 auto;
  font-weight: 700;
  color: var(--mc-mute);
  min-width: 22px;
  /* Reserve room on the left of the number for the amber "not
     answered yet" dot so answered/unanswered rows stay aligned. */
  position: relative;
  padding-left: 10px;
}
/* Amber dot to the left of the number on rows whose question
   has NOT been answered yet. Answered rows (.is-done) and the
   current row leave the slot empty so the eye is drawn to what's
   left to do. */
.mc-sra-step-q:not(.is-done) .qn::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #f0a500; /* amber — matches platform's caution tone */
  transform: translateY(-50%);
}
.mc-sra-step-q .qt {
  flex: 1 1 auto;
  color: var(--mc-ink);
  /* Clamp to 2 lines so each row stays a predictable size, which
     is what makes the "show 2-3 questions" cap behave. */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* Hover-to-read: while the row is hovered, the JS-driven
   stepperQtScroll IIFE adds .is-scrolling and an inline max-height
   equal to the clamped 2-line height, then gently auto-scrolls the
   title so the whole question can be read in place without opening
   it. Dropping -webkit-box for plain block lets the text overflow
   vertically (scrollable) instead of being clipped by the clamp. */
.mc-sra-step-q .qt.is-scrolling {
  display: block;
  -webkit-line-clamp: unset;
  white-space: normal;
  overflow: hidden;
  scroll-behavior: smooth;
}
.mc-sra-step-q.is-current {
  background: rgba(11, 59, 94, 0.07);
}
.mc-sra-step-q.is-current .qn,
.mc-sra-step-q.is-current .qt {
  color: var(--mc-navy);
  font-weight: 600;
}
.mc-sra-step-q.is-done .qn {
  color: #1f8a4c;
}
.mc-sra-step-q.is-done .qt {
  color: var(--mc-mute);
}
.mc-sra-tip {
  margin-top: 22px;
  padding: 14px 12px;
  background: var(--mc-blue-soft);
  border-radius: 9px;
  font-size: 12px;
  color: var(--mc-navy);
  line-height: 1.5;
}
.mc-sra-tip b {
  color: var(--mc-navy);
}

/* Right help column. Mirrors .mc-sra-stepper exactly so the two
   side panels read as a matched pair: same gray surface, same
   border treatment (full border minus top so it sits flush with
   the navy bar above), same padding, same bottom-corner radius
   on the outside edge. */
.mc-sra-extra {
  background: #f7f9fb;
  border: 1px solid rgba(11, 59, 94, 0.06);
  border-top: 0;
  border-radius: 0 0 14px 0;
  padding: 22px 18px 22px 16px;
  margin: 0;
  width: 100%;
  /* Shrink-wraps to content so when both <details> sections are
     collapsed the gray surface ends right at the summaries.
     `max-height` is set imperatively by an inline script that
     keeps it in sync with the height of the question column on
     the left — see the @push('scripts') block. Cap + overflow-y
     mean that on the rare case where both sections expanded
     produce more content than the question column is tall, the
     panel scrolls internally instead of stretching the page. */
  align-self: start;
  overflow-y: auto;
}
@media (max-width: 1280px) {
  .mc-sra-extra {
    border-top: 1px solid rgba(11, 59, 94, 0.06);
  }
}
/* Extra-info panel sections — each `<details>` carries one
   collapsible category (References / Last year's response /
   future additions). Closed by default. The <summary> renders
   as the section's clickable header, styled the same as the
   stepper's panel title so both side columns read consistently. */
.mc-sra-extra-section {
  margin-bottom: 10px;
  padding-bottom: 10px;
  /* Hairline divider between collapsibles — same color/weight as
     the vertical connector that links the walkthrough section
     steps on the left panel, so the two panels visually rhyme. */
  border-bottom: 1.5px solid rgba(11, 59, 94, 0.10);
}
.mc-sra-extra-section:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}
.mc-sra-extra-section > summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 2px;
  border-radius: 6px;
  font-size: 12px;
  color: var(--mc-navy);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 700;
  line-height: 1.3;
  transition: background 120ms ease;
}
.mc-sra-extra-section > summary::-webkit-details-marker { display: none; }
.mc-sra-extra-section > summary::marker { content: ''; }
.mc-sra-extra-section > summary:hover {
  background: rgba(11, 59, 94, 0.04);
}
/* "Apply" affordance for the "Last year's response" section.
   Lives inside the expanded section body (never in the summary)
   so it's hidden whenever the disclosure is collapsed. Wrapper
   pins it to the bottom-right corner of the expanded card. */
.mc-sra-apply-prev-wrap {
  display: flex;
  justify-content: flex-end;
  margin-top: 10px;
}
.mc-sra-apply-prev {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: white;
  /* Same red as the platform's primary submit button
     (.btn.btn-primary -> rgb(196, 18, 48)) so the affordance
     reads as a primary action. */
  background: rgb(196, 18, 48);
  border: 0;
  border-radius: 6px;
  padding: 5px 11px;
  cursor: pointer;
  transition: background 120ms ease, transform 120ms ease;
}
.mc-sra-apply-prev:hover {
  background: rgb(168, 14, 40);
}
.mc-sra-apply-prev:active {
  transform: translateY(1px);
}
.mc-sra-apply-prev.is-applied,
.mc-sra-apply-prev.is-applied:hover {
  background: #1f8a4c; /* same green as the "done" stepper badge */
  cursor: default;
}
/* Chevron on the right side of the summary — collapsed points
   down, expanded points up (Bootstrap-accordion convention).
   `margin-right` gives it a little breathing room from the card's
   right edge to match the walkthrough-section chevrons. */
.mc-sra-extra-section > summary::after {
  content: '';
  flex: 0 0 auto;
  align-self: center;
  width: 8px;
  height: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translate(-2px, -2px);
  margin-left: auto;
  margin-right: 6px;
  transition: transform 140ms ease;
}
.mc-sra-extra-section[open] > summary::after {
  transform: rotate(-135deg) translate(-2px, -2px);
}
.mc-sra-extra-section-body {
  padding: 10px 0 4px 0;
}
/* Author rule for hiding the section body when collapsed. Author
   selectors elsewhere (.mc-sra-extra-card uses display: flex) win
   over the user-agent's implicit `details:not([open]) > :not(summary)
   { display: none }` in some Chrome versions, so children stay
   visible even when the disclosure is closed. This selector matches
   the same specificity and re-asserts the intended behavior. */
.mc-sra-extra-section:not([open]) > .mc-sra-extra-section-body {
  display: none;
}
/* (.mc-sra-helpc rules removed during 2026-06-02 rename — class was
   never wired up in the blade; refs panel uses .mc-sra-extra-card.) */
/* Reference group — one per category (HIPAA CFR, HICP, CPG, NIST,
   linked threats, etc.). The category name renders once as a small
   uppercase sub-heading, with the individual reference cards
   stacked underneath. Avoids the label being stamped on every card
   for categories that hold multiple citations. */
.mc-sra-extra-group {
  margin-bottom: 14px;
}
.mc-sra-extra-group:last-child {
  margin-bottom: 0;
}
/* Category sub-heading inside the references panel. Sits BELOW
   the panel's navy bold .head — rendered as a small uppercase
   mute tag so it clearly reads as a subordinate label, not as
   another title. Hierarchy: panel title (navy bold) > category
   tag (uppercase mute) > card link (blue underlined). */
.mc-sra-extra-group-lbl {
  font-size: 10.5px;
  color: var(--mc-mute);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  line-height: 1.3;
  margin: 0 0 6px 2px;
}

/* Reference card — mirrors the currently-selected (active) stepper
   step: white surface with subtle shadow. Anchor variant is
   clickable with a blue underlined title; .is-static variant uses
   the same chrome but isn't a link. */
.mc-sra-extra-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px 12px;
  border-radius: 9px;
  background: white;
  box-shadow: 0 1px 2px rgba(11, 59, 94, 0.06);
  text-decoration: none !important;
  color: inherit;
  margin-bottom: 6px;
  transition: box-shadow 120ms ease, transform 120ms ease;
}
.mc-sra-extra-card:last-child {
  margin-bottom: 0;
}
a.mc-sra-extra-card:hover {
  box-shadow: 0 2px 6px rgba(11, 59, 94, 0.10);
  text-decoration: none !important;
}
.mc-sra-extra-card .title {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  word-break: break-word;
  color: var(--mc-ink);
}
/* Clickable reference cards: title rendered as a visible link —
   blue and underlined — so users see it's tappable. */
a.mc-sra-extra-card .title {
  color: var(--mc-blue);
  text-decoration: underline;
  text-underline-offset: 2px;
}
a.mc-sra-extra-card:hover .title {
  text-decoration: underline;
}
.mc-sra-extra-card.is-static {
  cursor: default;
}
/* Embedded URL link inside a citation note keeps the link color
   so it's still visibly tappable inside a static card. */
.mc-sra-extra-card .title a {
  color: var(--mc-blue);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Question header — replaces the legacy "Question 5" h4 + p prompt
   with mockup's .sra-qhead breadcrumb + .sra-qtitle + .sra-qexplain. */
body.has-uplift.questions-pg .col-lg-8.questions {
  padding: 36px 36px 32px;
  background: white;
  /* Override Bootstrap's col-lg-8 width constraint so the CSS grid
     1fr/280 split takes precedence. */
  flex: 1 1 auto !important;
  max-width: none !important;
  width: auto !important;
}
@media (max-width: 1280px) {
  body.has-uplift.questions-pg .col-lg-8.questions {
    padding: 24px 22px 28px;
  }
}

/* Hide the legacy "View Questions" hamburger and the legacy
   "Question 5" h4 + question prompt <p> — they are replaced
   by .mc-sra-qhead / .mc-sra-qtitle / .mc-sra-qexplain. */
body.has-uplift.questions-pg .col-lg-8.questions > a.open_questions,
body.has-uplift.questions-pg .col-lg-8.questions > a.open_questions + hr,
body.has-uplift.questions-pg .col-lg-8.questions > .d-flex.justify-content-between > h4,
body.has-uplift.questions-pg .col-lg-8.questions > .d-flex.justify-content-between + hr,
body.has-uplift.questions-pg .col-lg-8.questions > div:has(> p > a#question_help_icon) {
  display: none !important;
}

body.has-uplift.questions-pg .mc-sra-qhead {
  font-size: 12px;
  color: var(--mc-mute);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  margin-bottom: 14px;
}
body.has-uplift.questions-pg .mc-sra-qtitle {
  font-size: 26px;
  color: var(--mc-navy);
  font-weight: 500;
  letter-spacing: -0.014em;
  line-height: 1.25;
  margin: 0 0 12px;
}
body.has-uplift.questions-pg .mc-sra-qexplain {
  font-size: 14px;
  color: var(--mc-mute);
  line-height: 1.55;
  margin: 0 0 22px;
}

/* Keep the icon button row (Threats / Last year's response / References)
   visible but float it above the qhead as small chips. */
body.has-uplift.questions-pg .col-lg-8.questions > .d-flex.justify-content-between {
  display: flex !important;
  justify-content: flex-end !important;
  margin-bottom: 8px;
}
body.has-uplift.questions-pg .col-lg-8.questions > .d-flex.justify-content-between .hipaa .btn-primary {
  background: white !important;
  border: 1px solid rgba(11, 59, 94, 0.12) !important;
  color: var(--mc-mute) !important;
  border-radius: 8px;
  width: 32px;
  height: 32px;
  padding: 0 !important;
  font-size: 12px;
  box-shadow: none !important;
}
body.has-uplift.questions-pg .col-lg-8.questions > .d-flex.justify-content-between .hipaa .btn-primary:hover {
  color: var(--mc-blue) !important;
  border-color: var(--mc-blue) !important;
}

/* Answer options on the SRA walkthrough question page — styled
   to match the imported-SRA review page's plain inline-radio
   layout. The row is a flex container: native radio + text label
   chips on the left, and (when this assessment has an active
   imported SRA) the "Back to imported SRA review →" affordance
   pushed to the far right via margin-left: auto. */
/* Row that contains the "Your answer" label on the left and the
   inline save/clear status indicator on the right (well, just to
   the right of the label, sharing the same baseline). */
body.has-uplift.questions-pg .mc-sra-answers-head {
  display: flex;
  align-items: baseline;
  gap: 1.25rem;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
body.has-uplift.questions-pg .mc-sra-answers-lbl {
  font-size: 11.5px;
  color: var(--mc-mute);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  margin-bottom: 0;
  flex: 0 0 auto;
}
body.has-uplift.questions-pg .mc-sra-answers-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem 1rem;
  margin: 0; /* the status span below carries the bottom margin */
}
body.has-uplift.questions-pg .mc-sra-answers-row.is-invalid {
  box-shadow: 0 0 0 3px rgba(196, 18, 48, 0.10);
  border-radius: 8px;
  padding: 4px 6px;
}
/* Bare answer radios — no outline, no fill. */
body.has-uplift.questions-pg .mc-sra-answers-radios {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 1rem;
  padding: 0;
  background: transparent;
  border: 0;
}
/* Clear-answer sits just to the right of the card with a small
   gap — close, not pushed to the far right. */
body.has-uplift.questions-pg .mc-sra-answers-clear {
  background: none;
  border: 0;
  padding: 0;
  font-size: 0.82rem;
  line-height: 1;
  color: #8a939c;
  text-decoration: none;
  cursor: pointer;
  transition: color 120ms ease;
}
body.has-uplift.questions-pg .mc-sra-answers-clear:hover,
body.has-uplift.questions-pg .mc-sra-answers-clear:focus {
  color: #c0392b;
  text-decoration: none;
  outline: none;
}
/* Back-to-imported-review still pushes itself to the far right
   so it stays anchored to the card's right edge regardless of
   whether the Clear button is present beside the radios. */
body.has-uplift.questions-pg .mc-sra-back-to-review {
  margin-left: auto;
}

/* Per-section save/clear status ping — sits inline to the right
   of the section label (Your answer / Impact of Risk / Likelihood),
   sharing the same baseline. Same look + sizing everywhere via the
   `!important` overrides so legacy `.risk_impact span` /
   `.risk_likelihood span` rules can't shadow it. */
body.has-uplift.questions-pg .mc-sra-answers-status {
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #1f7a3a !important;
  font-weight: 600 !important;
  font-size: 0.78rem !important;
  line-height: 1.4 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  flex: 0 0 auto;
  white-space: nowrap;
}

/* Each .sra-opt label inside the row. The `!important`s drop the
   older card / pill chrome from earlier iterations of this view
   so the look matches the imported-SRA review page (plain native
   radio + text). */
body.has-uplift.questions-pg .mc-sra-answers-radios .sra-opt {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding: 4px 6px !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  cursor: pointer;
  color: var(--mc-ink) !important;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.3;
  gap: 0.4rem;
  min-width: auto;
}
body.has-uplift.questions-pg .mc-sra-answers-radios .sra-opt:hover {
  background: rgba(11, 59, 94, 0.04) !important;
}
body.has-uplift.questions-pg .mc-sra-answers-radios .sra-opt.sel {
  background: transparent !important;
  color: var(--mc-navy) !important;
  font-weight: 600;
}

/* The fake .radio span from earlier iterations is hidden — we
   show the real native radio input here, the way the imported-SRA
   review page does. */
body.has-uplift.questions-pg .mc-sra-answers-radios .sra-opt .radio { display: none !important; }
body.has-uplift.questions-pg .mc-sra-answers-radios .sra-opt .sra-opt-input {
  position: static;
  opacity: 1;
  pointer-events: auto;
  margin: 0;
  accent-color: var(--mc-navy);
}
body.has-uplift.questions-pg .mc-sra-answers-radios .sra-opt .sra-opt-body {
  display: inline-flex;
  align-items: center;
}
body.has-uplift.questions-pg .mc-sra-answers-radios .sra-opt .ot {
  display: inline;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
/* Explicit override for any answer-name text rendered inside an
   .sra-opt label — keeps "Yes / No / Partial / Low / Medium / High"
   in plain mixed case regardless of any inherited uppercase rule. */
body.has-uplift.questions-pg .mc-sra-answers-radios .sra-opt,
body.has-uplift.questions-pg .mc-sra-answers-radios .sra-opt * {
  text-transform: none !important;
}

/* Locked / disabled state. */
body.has-uplift.questions-pg .mc-sra-answers-radios .sra-opt:has(input:disabled) {
  cursor: not-allowed;
  opacity: 0.55;
}
body.has-uplift.questions-pg .sra-opt:hover {
  border-color: var(--mc-blue) !important;
}
body.has-uplift.questions-pg .sra-opt.sel {
  border-color: var(--mc-navy) !important;
  background: #f0f6fb !important;
}

/* Impact of Risk / Likelihood cards — keep all three answer options
   (Low / Medium / High) on a SINGLE line. These two fieldsets live in
   half-width (col-md-6) columns, so the generic wrapping radios row
   could push "High" onto its own line beneath the other two. Scoped
   to the .risk_impact / .risk_likelihood fieldsets only; the "Your
   answer" section above keeps its normal wrapping behaviour.
   (2026-06-10, Makena-ui-uplift-2026-05-28) */
body.has-uplift.questions-pg .mc-sra-field.risk_impact .mc-sra-answers-radios,
body.has-uplift.questions-pg .mc-sra-field.risk_likelihood .mc-sra-answers-radios {
  flex-wrap: nowrap;          /* never break Low / Medium / High */
  gap: 0.4rem 0.65rem;        /* slightly tighter than the generic 1rem column gap */
  min-width: 0;               /* allow the group to sit inside the flex row without forcing wrap */
}
body.has-uplift.questions-pg .mc-sra-field.risk_impact .mc-sra-answers-radios .sra-opt,
body.has-uplift.questions-pg .mc-sra-field.risk_likelihood .mc-sra-answers-radios .sra-opt {
  flex: 0 0 auto !important;
  white-space: nowrap;        /* an option's own text never breaks mid-word */
  padding: 4px 4px !important; /* a touch tighter than the generic 4px 6px */
}

/* Tone dot replaces the hardcoded text badge — pure visual cue
   (green/amber/red/gray) tied to the answer's compliant/partial/
   noncompliant/N-A tone with no fake "Best practice" label. */
body.has-uplift.questions-pg .sra-tone-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-left: 8px;
  vertical-align: middle;
}
body.has-uplift.questions-pg .sra-tone-dot.tone-ok   { background: #1f8a4c; }
body.has-uplift.questions-pg .sra-tone-dot.tone-warn { background: #f59e0b; }
body.has-uplift.questions-pg .sra-tone-dot.tone-bad  { background: var(--mc-red); }
body.has-uplift.questions-pg .sra-tone-dot.tone-mute { background: rgba(11, 59, 94, 0.25); }

/* .mc-sra-summary — green outcome line under qcard, matches mockup. */
.mc-sra-summary {
  margin: 18px 0 8px;
  padding: 16px 20px;
  border-radius: 10px;
  display: flex;
  gap: 14px;
  align-items: center;
}
.mc-sra-summary.tone-ok {
  background: rgba(31, 138, 76, 0.08);
  border: 1px solid rgba(31, 138, 76, 0.18);
}
.mc-sra-summary.tone-warn {
  background: rgba(245, 158, 11, 0.08);
  border: 1px solid rgba(245, 158, 11, 0.20);
}
.mc-sra-summary.tone-bad {
  background: rgba(196, 18, 48, 0.06);
  border: 1px solid rgba(196, 18, 48, 0.18);
}
.mc-sra-summary.tone-mute {
  background: rgba(11, 59, 94, 0.04);
  border: 1px solid rgba(11, 59, 94, 0.10);
}
.mc-sra-summary .ck {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: white;
  font-size: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.mc-sra-summary.tone-ok .ck   { background: #1f8a4c; }
.mc-sra-summary.tone-warn .ck { background: #f59e0b; }
.mc-sra-summary.tone-bad .ck  { background: var(--mc-red); }
.mc-sra-summary.tone-mute .ck { background: var(--mc-mute); }
.mc-sra-summary .t {
  font-size: 13px;
  color: var(--mc-ink);
  line-height: 1.5;
}
.mc-sra-summary .t b {
  color: var(--mc-navy);
}

/* ============================================================
   10f. SRA SECONDARY POLISH
        Tighten Impact/Likelihood labels to keep on one line in
        the narrower main column, restyle Previous/Next bottom nav
        as proper Back / Continue buttons per mockup.
   ============================================================ */
body.has-uplift.questions-pg .risk_impact,
body.has-uplift.questions-pg .risk_likelihood {
  padding: 14px 16px 12px !important;
}
body.has-uplift.questions-pg .risk_impact legend,
body.has-uplift.questions-pg .risk_likelihood legend {
  white-space: nowrap;
  font-size: 11px;
  padding-bottom: 6px;
  margin-bottom: 10px;
}
/* Make Low/Medium/High flow as a single row with proper room for De-select. */
body.has-uplift.questions-pg .risk_impact .form-control,
body.has-uplift.questions-pg .risk_likelihood .form-control {
  flex-wrap: wrap !important;
  gap: 6px !important;
  align-items: center !important;
}
body.has-uplift.questions-pg .risk_impact .form-control > div:not(:has(button)),
body.has-uplift.questions-pg .risk_likelihood .form-control > div:not(:has(button)) {
  flex: 0 0 auto;
  justify-content: center;
  padding: 7px 12px !important;
  min-width: 0;
}

/* Bottom Previous / Next navigation — flip to a clean two-button
   row matching mockup's .sra-actions (Back left, Continue right). */
body.has-uplift.questions-pg .assessment-nav.form-inline {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid rgba(11, 59, 94, 0.06);
  gap: 12px;
}
body.has-uplift.questions-pg .assessment-nav.form-inline > span {
  font-size: 12px;
  color: var(--mc-mute);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  flex-shrink: 0;
  /* Recolor the legacy red/blue "X of Y" to a muted label. */
}
body.has-uplift.questions-pg .assessment-nav.form-inline > span * {
  color: var(--mc-mute) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}
/* Previous Question — outline button on the left. */
body.has-uplift.questions-pg .assessment-nav .prev_q {
  background: white !important;
  border: 1px solid rgba(11, 59, 94, 0.16) !important;
  color: var(--mc-navy) !important;
  border-radius: 9px !important;
  padding: 9px 14px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  height: auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 180px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-shadow: none !important;
  cursor: pointer;
}
body.has-uplift.questions-pg .assessment-nav .prev_q:hover {
  border-color: var(--mc-blue) !important;
  color: var(--mc-blue) !important;
}
/* Next Question — navy Save · Continue style. */
body.has-uplift.questions-pg .assessment-nav .next_q {
  background: var(--mc-navy) !important;
  border: 1px solid var(--mc-navy) !important;
  color: white !important;
  border-radius: 9px !important;
  padding: 11px 18px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  height: auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 200px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-shadow: 0 6px 16px rgba(11, 59, 94, 0.22) !important;
  cursor: pointer;
}
body.has-uplift.questions-pg .assessment-nav .next_q:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(11, 59, 94, 0.28) !important;
}

/* Secondary "Skip to next unanswered →" link button. Sits next
   to the red Next CTA; visually subordinate (outline, not solid)
   so the primary forward motion is the chronological Next while
   the skip stays available as an escape hatch. */
body.has-uplift.questions-pg .assessment-nav .mc-sra-skip-unanswered {
  background: white !important;
  border: 1px solid rgba(11, 59, 94, 0.18) !important;
  color: var(--mc-navy) !important;
  border-radius: 9px !important;
  padding: 11px 16px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  height: auto !important;
  width: auto !important;
  display: inline-flex;
  align-items: center;
  text-decoration: none !important;
  white-space: nowrap;
  transition: all 120ms ease;
}
body.has-uplift.questions-pg .assessment-nav .mc-sra-skip-unanswered:hover {
  border-color: var(--mc-blue) !important;
  color: var(--mc-blue) !important;
  background: white !important;
  text-decoration: none !important;
}

/* Sticky top breadcrumb chip row alignment — keep the .mc-sra-qhead
   inline with the icon buttons (Threats / References) on the right. */
body.has-uplift.questions-pg .col-lg-8.questions {
  display: flex;
  flex-direction: column;
}
/* In the narrower 1280px+ main col, keep the qcard and answer rows
   from getting too wide either. */
body.has-uplift.questions-pg .sra-qcard {
  max-width: 100%;
}

/* Comment thread inside narrow col can look cramped — slim padding. */
body.has-uplift.questions-pg .comment_medcurity textarea {
  min-height: 90px;
}

/* ============================================================
   11. LEGACY-BLEED PURGE (2026-05-28)
        Hide every piece of legacy dashboard markup that still
        appears on uplift routes. The uplift hero + posture cards
        cover what the main dashboard needs; sub-tabs have their
        own dedicated rewritten content. The legacy nav sidebar
        and legacy SRA-tab content panel should never render on
        any uplift page.
   ============================================================ */

/* MAIN DASHBOARD only — body class `companies.dashboard` (escape the
   literal dot). This matches the top-level Dashboard URL but NOT
   sub-tabs like companies.dashboard.baa / .sra / .training etc.,
   which have their own single class names. */
body.has-uplift.companies\.dashboard .dashboard-container {
  display: none !important;
}

/* SUB-TABS — the legacy left nav sidebar column (col-lg-2) is fully
   replaced by the uplift .mc-side sidebar. Hide it everywhere uplift
   is active. */
body.has-uplift .dashboard-nav-column,
body.has-uplift .nav.nav-sidebar.dashboard-nav-content {
  display: none !important;
}

/* When the col-lg-2 sidebar is hidden, the col-lg-10 tab content
   should fill the row width. Bootstrap's max-width: 83.33% caps it,
   so override. */
body.has-uplift .dashboard-container .row > .col-lg-10,
body.has-uplift .dashboard-container .row > .col-lg-10.dashboard-tab-content {
  flex: 0 0 100% !important;
  max-width: 100% !important;
}

/* The legacy `<br><br>` spacer before .row is wasted space — collapse it. */
body.has-uplift .dashboard-container > br {
  display: none;
}
body.has-uplift .dashboard-container {
  padding-top: 0;
}

/* SRA / NVA TABS — hide the legacy panels; the new .mc-sra-tab block
   above each shows clean per-assessment cards. */
body.has-uplift .legacy-sra-content,
body.has-uplift .legacy-nva-content {
  display: none !important;
}

.mc-sra-tab {
  padding: 4px 0 28px;
}
.mc-sra-tab-head {
  margin-bottom: 12px;
}
/* The layout's page-title row already shows the module name AND the
   company name in the "WELCOME …" subtitle. Hide both duplicates. */
.mc-sra-tab-head h2,
.mc-sra-tab-sub {
  display: none;
}
.mc-sra-empty {
  background: white;
  border: 1px solid rgba(11, 59, 94, 0.08);
  border-radius: 14px;
  padding: 28px 30px;
  margin-bottom: 16px;
}
.mc-sra-empty h3 {
  font-size: 18px;
  font-weight: 700;
  color: var(--mc-navy);
  margin: 0 0 8px;
}
.mc-sra-empty p {
  margin: 0 0 8px;
  color: var(--mc-mute);
  font-size: 14px;
  line-height: 1.55;
  max-width: 720px;
}
.mc-sra-empty a {
  color: var(--mc-blue);
  font-weight: 600;
  text-decoration: none;
}

/* Per-assessment card. */
/* Finalized (closed) assessments — clearly distinguish from open
   ones so a 34%-coverage record that was finalized doesn't read as
   "stalled / in progress." Faint green wash + lock icon on the
   sub-label + neutral-grey section bars (since coverage is locked
   and no longer editable). */
/* Mode eyebrow — uppercase label above the title that names what
   the user is actually doing on this card (Answering / Remediating
   / Finalized). Dotted indicator left of the text is colour-coded
   per mode so the visual cue lands even before the user reads
   the words. */
.mc-sra-mode-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--mc-mute);
  margin: 0 0 6px;
  line-height: 1;
}
.mc-sra-mode-eyebrow .dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--mc-mute);
  flex-shrink: 0;
}
.mc-sra-mode-eyebrow .dot-answering   { background: var(--mc-amber); }
.mc-sra-mode-eyebrow .dot-remediating { background: var(--mc-blue, #185FA5); }
.mc-sra-mode-eyebrow .dot-finalized   { background: #1f8a4c; }
.mc-sra-card--answering   .mc-sra-mode-eyebrow { color: #b07a16; }
.mc-sra-card--remediating .mc-sra-mode-eyebrow { color: var(--mc-blue, #185FA5); }
.mc-sra-card--finalized   .mc-sra-mode-eyebrow { color: #1f8a4c; }

/* Archival caption — small, faded line that appears on finalized-
   with-worklist cards in place of the prominent question-coverage
   row. It's a frozen snapshot, not a live signal, so it shouldn't
   compete visually with the worklist progress bar below it. */
.mc-sra-archive-caption {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  color: var(--mc-mute);
  margin: 0 0 12px;
  opacity: 0.85;
}
.mc-sra-archive-caption b { color: var(--mc-navy); font-weight: 600; }
.mc-sra-archive-caption i {
  font-size: 10px;
  opacity: 0.7;
}

/* Finalized-and-clean cards (no worklist items, nothing left to do)
   get the muted green archival wash — they're correctly "done." */
.mc-sra-card.is-finalized {
  background: rgba(31, 138, 76, 0.04);
  border-color: rgba(31, 138, 76, 0.18);
}
/* Remediating cards (finalized SRA with an OPEN worklist) need to
   read as live, active work — not archived. Strip the green
   archival wash entirely and put the card back on white. The
   blue REMEDIATING WORKLIST eyebrow, status pills, worklist
   closure progress bar, and red Open Worklist CTA carry the
   "do this now" signal — no left-edge accent needed. */
.mc-sra-card--remediating.is-finalized {
  background: white;
  border-color: rgba(11, 59, 94, 0.10);
}
.mc-sra-card--remediating.is-finalized .mc-sra-card-title .sub {
  color: var(--mc-blue, #185FA5);
}
.mc-sra-card--remediating.is-finalized .mc-sra-finalized-ic {
  color: var(--mc-blue, #185FA5);
}
.mc-sra-card.is-finalized .mc-sra-card-title .sub {
  color: #1f8a4c;
  font-weight: 500;
}
.mc-sra-card.is-finalized .mc-sra-finalized-ic {
  color: #1f8a4c;
  margin-right: 2px;
}
.mc-sra-card.is-finalized .mc-sra-progress-meta {
  font-size: 12px;
  color: var(--mc-mute);
}
.mc-sra-card.is-finalized .mc-sra-progress-meta .pct { color: var(--mc-mute); }
.mc-sra-card.is-finalized .mc-sra-section {
  background: rgba(11, 59, 94, 0.03);
}
.mc-sra-card.is-finalized .mc-sra-section .bar i {
  /* Neutralise — closed records can't change, so amber "in progress"
     is wrong. Use a quiet navy-tint to read as "this is what was
     captured." */
  background: rgba(11, 59, 94, 0.32);
}
/* …UNLESS the finalized card still has an open worklist. In that
   case the section bars represent active worklist-closure progress,
   not a frozen snapshot, so flip them back to the amber gradient
   that means "in progress" platform-wide. */
.mc-sra-card--remediating.is-finalized .mc-sra-section .bar i {
  background: linear-gradient(90deg, var(--mc-amber), #f0c065);
}

/* Collapsible group for finalized SRAs that have no remaining
   work (worklist 100% closed OR finalized with no worklist).
   Keeps them reachable without crowding the active SRAs at the
   top of the tab. */
.mc-sra-done-group {
  margin: 8px 0 14px;
  border: 1px solid rgba(11, 59, 94, 0.08);
  border-radius: 12px;
  background: rgba(31, 138, 76, 0.025);
  overflow: hidden;
}
.mc-sra-done-group > summary {
  list-style: none;
  cursor: pointer;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--mc-font);
  color: var(--mc-mute);
  transition: background 120ms ease;
}
.mc-sra-done-group > summary::-webkit-details-marker { display: none; }
.mc-sra-done-group > summary::before {
  content: '\f054'; /* fa-chevron-right */
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  font-size: 10px;
  color: var(--mc-mute);
  transition: transform 180ms ease;
}
.mc-sra-done-group[open] > summary::before { transform: rotate(90deg); }
.mc-sra-done-group > summary:hover { background: rgba(31, 138, 76, 0.05); }
.mc-sra-done-group-label {
  font-size: 13px;
  font-weight: 600;
  color: #1f8a4c;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.mc-sra-done-group-label i { font-size: 12px; opacity: 0.7; }
.mc-sra-done-group-hint {
  font-size: 12px;
  color: var(--mc-mute);
  font-style: italic;
}
.mc-sra-done-group-body {
  padding: 6px 14px 14px;
  background: white;
  border-top: 1px solid rgba(11, 59, 94, 0.06);
}
.mc-sra-done-group-body .mc-sra-card { margin-bottom: 10px; }
.mc-sra-done-group-body .mc-sra-card:last-child { margin-bottom: 0; }

/* "View archived assessments" link at the very bottom of the tab.
   Discoverability for the archive page since it's not currently
   in the uplift sidebar. */
.mc-sra-archive-link {
  margin: 14px 0 4px;
  padding: 10px 6px;
  text-align: center;
}
.mc-sra-archive-link a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--mc-mute);
  text-decoration: none;
  padding: 8px 14px;
  border-radius: 9px;
  transition: color 120ms ease, background 120ms ease;
}
.mc-sra-archive-link a:hover {
  color: var(--mc-navy);
  background: rgba(11, 59, 94, 0.04);
}
.mc-sra-archive-link-arrow { transition: transform 120ms ease; }
.mc-sra-archive-link a:hover .mc-sra-archive-link-arrow { transform: translateX(3px); }

.mc-sra-card {
  background: white;
  border: 1px solid rgba(11, 59, 94, 0.08);
  border-radius: 14px;
  padding: 22px 24px;
  margin-bottom: 14px;
  box-shadow: 0 1px 2px rgba(11, 59, 94, 0.04);
}
.mc-sra-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
.mc-sra-card-title h3 {
  font-size: 19px;
  font-weight: 600;
  color: var(--mc-navy);
  margin: 0 0 2px;
  letter-spacing: -0.01em;
}
.mc-sra-card-title .sub {
  font-size: 12.5px;
  color: var(--mc-mute);
}
.mc-sra-status {
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.mc-sra-status.tone-ok {
  background: rgba(31, 138, 76, 0.10);
  color: #166831;
}
.mc-sra-status.tone-warn {
  background: rgba(245, 158, 11, 0.12);
  color: #92580d;
}
.mc-sra-status.tone-mute {
  background: rgba(11, 59, 94, 0.06);
  color: var(--mc-mute);
}
.mc-sra-status.tone-bad {
  background: rgba(163, 45, 45, 0.10);
  color: #A32D2D;
}

/* Right-side stack: Avg-risk badge sits next to the status pill.
   On narrow widths it wraps below the title without breaking the
   card layout. */
.mc-sra-card-headright {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.mc-sra-risk {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  background: rgba(11, 59, 94, 0.04);
  color: var(--mc-navy);
  white-space: nowrap;
}

/* Template-version badge ("v7", etc.) — sits to the right of the
   risk and status pills on each SRA card. Uses the platform teal
   tokens so it's clearly distinct from the navy / green / amber /
   red / gray pills nearby; teal also already carries an "info"
   semantic on the dashboard action band, which lines up with the
   badge being metadata rather than a status. */
.mc-sra-version-tag {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 999px;
  background: var(--mc-teal-soft);
  color: var(--mc-teal);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.mc-sra-risk .lbl { color: var(--mc-mute); font-weight: 500; }
.mc-sra-risk i { font-size: 11px; opacity: 0.85; }
.mc-sra-risk.tone-ok {
  background: rgba(31, 138, 76, 0.10);
  color: #166831;
}
.mc-sra-risk.tone-ok .lbl { color: #1f8a4c; opacity: 0.75; }
.mc-sra-risk.tone-warn {
  background: rgba(245, 158, 11, 0.12);
  color: #92580d;
}
.mc-sra-risk.tone-warn .lbl { color: #b07a16; opacity: 0.78; }
.mc-sra-risk.tone-bad {
  background: rgba(163, 45, 45, 0.10);
  color: #A32D2D;
}
.mc-sra-risk.tone-bad .lbl { color: #c14747; opacity: 0.78; }

/* Inline pencil-icon for the rename action. Sits beside the
   title h3 in light grey, tints navy on hover. Hidden on
   smaller spec widths via opacity 0 → 1 to avoid title clutter. */
.mc-sra-name-edit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px; height: 22px;
  border-radius: 6px;
  font-size: 11px;
  color: var(--mc-mute);
  margin-left: 6px;
  text-decoration: none !important;
  opacity: 0.55;
  transition: all 120ms ease;
  vertical-align: 2px;
}
.mc-sra-name-edit:hover {
  opacity: 1;
  color: var(--mc-navy);
  background: rgba(11, 59, 94, 0.06);
  text-decoration: none !important;
}

/* Second progress bar — worklist coverage on finalized SRAs. */
.mc-sra-progress--worklist {
  margin-top: -4px;
  margin-bottom: 18px;
}

/* "Blocked by prior" lightweight card variant. No progress bar,
   no section grid — just title + status + the explanatory notice. */
.mc-sra-card.is-blocked {
  background: rgba(11, 59, 94, 0.025);
  border-color: rgba(11, 59, 94, 0.10);
}
.mc-sra-card.is-blocked .mc-sra-card-title h3 { color: var(--mc-mute); }

.mc-sra-notice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  background: rgba(245, 158, 11, 0.08);
  border: 1px solid rgba(245, 158, 11, 0.20);
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.5;
  color: #7a5210;
  margin: 0 0 14px;
}
.mc-sra-notice i {
  flex-shrink: 0;
  margin-top: 2px;
  font-size: 14px;
  color: #b07a16;
}

/* Compact icon-only secondary (for the "import another" +). */
.mc-sra-secondary--icon {
  padding-left: 10px !important;
  padding-right: 10px !important;
}

/* Archive switch — custom checkbox styled as a soft toggle so it
   reads as an action, not a form field. */
.mc-sra-archive {
  display: inline-flex;
  margin: 0;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
}
.mc-sra-archive-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 7px 12px;
  border-radius: 9px;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--mc-mute);
  cursor: pointer;
  background: transparent;
  transition: background 120ms ease, color 120ms ease;
}
.mc-sra-archive-label:hover {
  background: rgba(11, 59, 94, 0.05);
  color: var(--mc-navy);
}
.mc-sra-archive-label input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0; height: 0;
}
.mc-sra-archive-switch {
  position: relative;
  width: 28px; height: 16px;
  border-radius: 999px;
  background: rgba(11, 59, 94, 0.18);
  transition: background 140ms ease;
  flex-shrink: 0;
}
.mc-sra-archive-switch::after {
  content: '';
  position: absolute;
  top: 2px; left: 2px;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: white;
  transition: transform 140ms ease;
}
.mc-sra-archive-label input:checked + .mc-sra-archive-switch {
  background: var(--mc-amber);
}
.mc-sra-archive-label input:checked + .mc-sra-archive-switch::after {
  transform: translateX(12px);
}

/* Progress bar. */
.mc-sra-progress {
  margin-bottom: 16px;
}
.mc-sra-progress-meta {
  display: flex;
  justify-content: space-between;
  font-size: 12.5px;
  color: var(--mc-mute);
  margin-bottom: 6px;
}
.mc-sra-progress-meta b {
  color: var(--mc-ink);
  font-weight: 700;
}
.mc-sra-progress-meta .pct {
  color: var(--mc-navy);
  font-weight: 700;
}
.mc-sra-progress-bar {
  height: 8px;
  background: rgba(11, 59, 94, 0.08);
  border-radius: 999px;
  overflow: hidden;
}
.mc-sra-progress-bar i {
  display: block;
  height: 100%;
  /* Default = incomplete = amber, matching the rest of the
     platform's "in progress" treatment. Only flips to green
     when the assessment hits 100% (see .is-done below). */
  background: linear-gradient(90deg, var(--mc-amber), #f0c065);
  border-radius: 999px;
}
.mc-sra-progress-bar i.is-done {
  background: linear-gradient(90deg, #1f8a4c, #66d39c);
}

/* Section grid — clickable section tiles. */
.mc-sra-section-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  margin: 12px 0 18px;
}
.mc-sra-section {
  background: rgba(11, 59, 94, 0.025);
  border: 1px solid rgba(11, 59, 94, 0.06);
  border-radius: 10px;
  padding: 11px 14px;
  text-decoration: none !important;
  color: inherit;
  transition: all 120ms ease;
  /* Flex-column so the status row (bar OR done-mark) can be
     pinned to the bottom of the card with margin-top: auto.
     Without this, the 4px bar sits flush against the meta line
     while the taller done-mark row sits lower, and adjacent
     cards in the same grid row look misaligned. */
  display: flex;
  flex-direction: column;
}
.mc-sra-section:hover {
  background: var(--mc-blue-soft);
  border-color: var(--mc-blue);
  text-decoration: none !important;
}
.mc-sra-section .lbl {
  font-size: 13px;
  font-weight: 600;
  color: var(--mc-navy);
  margin-bottom: 2px;
}
.mc-sra-section .meta {
  font-size: 11.5px;
  color: var(--mc-mute);
  margin-bottom: 6px;
}
.mc-sra-section .bar {
  height: 4px;
  background: rgba(11, 59, 94, 0.10);
  border-radius: 999px;
  overflow: hidden;
  /* Pin to bottom of the card and lift 5px so the 4px bar's
     visual centre aligns with the centre of a neighbouring
     ~14px done-mark row (icon-driven height). Without the
     5px lift the bar hugs the bottom while the done-mark
     text sits higher up. */
  margin-top: auto;
  margin-bottom: 5px;
}
.mc-sra-section .bar i {
  display: block;
  height: 100%;
  /* Incomplete sections — amber. (Fully-answered sections never
     render this bar; they switch to .done-mark above.) Matches
     the platform convention where amber = in progress / partial
     and green is reserved for fully completed signals. */
  background: linear-gradient(90deg, var(--mc-amber), #f0c065);
  border-radius: 999px;
}
/* Fully-answered section: tint the card faint green, replace the
   progress bar with a check icon + "Complete" label so a finished
   section reads as visually different from one that's at 100% mid-
   review. */
.mc-sra-section.is-done {
  background: rgba(31, 138, 76, 0.06);
  border-color: rgba(31, 138, 76, 0.20);
}
.mc-sra-section.is-done:hover {
  background: rgba(31, 138, 76, 0.10);
  border-color: rgba(31, 138, 76, 0.36);
}
.mc-sra-section.is-done .meta {
  color: #1f8a4c;
}
.mc-sra-section .done-mark {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  font-weight: 600;
  color: #1f8a4c;
  line-height: 1;
  padding-top: 1px;
  /* Pin to bottom of the card so it shares a baseline with the
     progress bar on neighbouring incomplete cards. */
  margin-top: auto;
}
.mc-sra-section .done-mark i {
  font-size: 14px;
}

/* Action row. */
.mc-sra-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  padding-top: 14px;
  border-top: 1px solid rgba(11, 59, 94, 0.06);
}
.mc-sra-cta {
  background: var(--mc-navy);
  color: white !important;
  border-radius: 9px;
  padding: 10px 18px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 6px 16px rgba(11, 59, 94, 0.22);
  transition: transform 120ms ease;
}
.mc-sra-cta:hover {
  transform: translateY(-1px);
  color: white !important;
}
.mc-sra-secondary,
a.mc-sra-secondary,
button.mc-sra-secondary {
  background: white !important;
  border: 1px solid rgba(11, 59, 94, 0.14) !important;
  color: var(--mc-navy) !important;
  border-radius: 9px !important;
  padding: 9px 14px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  box-shadow: none !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-family: inherit !important;
  height: auto !important;
  line-height: 1.4 !important;
}
.mc-sra-secondary:hover,
a.mc-sra-secondary:hover,
button.mc-sra-secondary:hover {
  border-color: var(--mc-blue) !important;
  color: var(--mc-blue) !important;
  background: white !important;
}

/* "Last updated …" meta line below per-assessment cards (SRA + NVA). */
.mc-sra-meta {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(11, 59, 94, 0.04);
  font-size: 11.5px;
  color: var(--mc-mute);
  font-weight: 500;
}

/* ============================================================
   MANAGE USERS PAGE — body.add_user
   Permission Levels cards, Add User / Manage tabs, user table.
   ============================================================ */
body.has-uplift.add_user .add-user-page {
  padding: 12px 24px 40px;
}
body.has-uplift.add_user .add-user-page .container {
  max-width: 1280px;
}
body.has-uplift.add_user .manage-dept-area > section { padding: 0; }

/* ── Permission Levels card ─────────────────────────────────── */
body.has-uplift.add_user .add-user-main-heading {
  margin: 0 0 14px;
}
body.has-uplift.add_user .add-user-main-heading h5 {
  font-size: 11.5px;
  color: var(--mc-mute);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 0;
}
body.has-uplift.add_user .user-roles {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  /* Outer card chrome removed — the three role cards inside carry
     their own borders/backgrounds, so the wrapper is just a grid. */
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}
@media (max-width: 980px) {
  body.has-uplift.add_user .user-roles { grid-template-columns: 1fr; }
}
body.has-uplift.add_user .add-user-heading-area-2 {
  padding: 18px 20px;
  border: 1px solid rgba(11, 59, 94, 0.08);
  border-radius: 12px;
  background: rgba(11, 59, 94, 0.02);
  min-width: 0;
}
body.has-uplift.add_user .add-user-heading-area-2 h4 {
  font-size: 15px;
  font-weight: 700;
  color: var(--mc-navy);
  margin: 0 0 8px;
  letter-spacing: -0.005em;
}
body.has-uplift.add_user .add-user-heading-area-2 .role-description {
  font-size: 13px;
  color: var(--mc-ink);
  line-height: 1.55;
}
body.has-uplift.add_user .add-user-heading-area-2 .role-description ul {
  margin: 8px 0 0;
  padding-left: 18px;
}
body.has-uplift.add_user .add-user-heading-area-2 .role-description li {
  font-size: 12.5px;
  color: var(--mc-mute);
  line-height: 1.55;
  margin-bottom: 3px;
}

/* ── Add User / Manage tab strip ──────────────────────────── */
body.has-uplift.add_user nav .dashboard-border,
body.has-uplift.add_user .form-check.nav#nav-tab {
  display: inline-flex !important;
  gap: 4px;
  background: rgba(11, 59, 94, 0.06);
  border: 1px solid rgba(11, 59, 94, 0.08);
  border-radius: 12px;
  padding: 4px;
  margin: 22px 0 18px;
}
body.has-uplift.add_user #nav-tab .nav-link {
  margin: 0;
  padding: 10px 22px;
  border-radius: 9px;
  background: transparent;
  border: 0;
  color: var(--mc-navy);
  font-weight: 600;
  text-decoration: none;
  transition: background 120ms ease, color 120ms ease;
  display: inline-flex; align-items: center;
}
body.has-uplift.add_user #nav-tab .nav-link h5 {
  margin: 0;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: -0.005em;
  color: inherit;
}
body.has-uplift.add_user #nav-tab .nav-link:hover {
  background: rgba(11, 59, 94, 0.05);
  color: var(--mc-navy);
}
body.has-uplift.add_user #nav-tab .nav-link.active,
body.has-uplift.add_user #nav-tab .nav-link.active:focus {
  background: var(--mc-blue);
  color: white;
  box-shadow: 0 2px 6px rgba(0, 113, 188, 0.25);
}
body.has-uplift.add_user #nav-tab .nav-link.active h5 { color: white; }

/* ── Add User form ──────────────────────────────────────── */
body.has-uplift.add_user .tab-content.manage-users {
  background: white;
  border: 1px solid rgba(11, 59, 94, 0.08);
  border-radius: 14px;
  padding: 26px 28px;
  box-shadow: 0 1px 2px rgba(11, 59, 94, 0.04);
}
body.has-uplift.add_user .admin-form label {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--mc-navy);
  margin-bottom: 6px;
  display: block;
}
body.has-uplift.add_user .admin-form .form-control {
  border: 1px solid rgba(11, 59, 94, 0.14);
  border-radius: 9px;
  padding: 10px 12px;
  font-size: 13.5px;
  color: var(--mc-ink);
  background: white;
  box-shadow: none;
  transition: border-color 120ms ease, box-shadow 120ms ease;
}
body.has-uplift.add_user .admin-form .form-control:focus {
  outline: 0;
  border-color: var(--mc-blue);
  box-shadow: 0 0 0 3px var(--mc-blue-soft);
}
body.has-uplift.add_user .admin-form .form-row {
  align-items: flex-end;
  margin: 0 0 22px;
  gap: 16px;
}
body.has-uplift.add_user .admin-form .form-row > [class*="col-"] {
  padding: 0;
}
/* Inputs row (First / Last / Email) — flex-end so labels stack above
   inputs but every input's bottom edge sits on the same baseline. */
body.has-uplift.add_user .admin-form .form-row .col-md-7.d-flex {
  gap: 16px;
  align-items: flex-end;
}
body.has-uplift.add_user .admin-form .form-row .col-md-7 > div {
  margin: 0 !important;
  flex: 1;
  min-width: 0;
}
body.has-uplift.add_user .admin-form .form-row .col-md-7 .email { flex: 1.4; }

/* Role-picker column — vertically center the pill-row against the
   adjacent input row so radios sit at input-bottom level instead of
   floating up to the labels. */
body.has-uplift.add_user .admin-form .form-row .col-md-5 {
  display: flex;
  align-items: flex-end;
}

/* Role radios. The legacy markup is several individual <ul> lists
   inside a flex container. Normalize them into one tidy pill row. */
body.has-uplift.add_user .admin-form .col-md-5 .d-flex {
  gap: 8px;
  align-items: stretch;
  flex-wrap: wrap;
  width: 100%;
}
body.has-uplift.add_user .admin-form .dashbord-radio-button {
  list-style: none;
  margin: 0;
  padding: 0;
  display: inline-flex;
}
body.has-uplift.add_user .admin-form .dashbord-radio-button > li {
  margin: 0;
  display: inline-flex;
  align-items: stretch;
  position: relative;
}
body.has-uplift.add_user .admin-form .dashbord-radio-button > li > input[type="radio"] {
  /* Hide the native control; the <label> becomes the click target. */
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0; height: 0;
}
body.has-uplift.add_user .admin-form .dashbord-radio-button > li > label {
  margin: 0;
  padding: 9px 14px;
  background: white;
  border: 1px solid rgba(11, 59, 94, 0.14);
  color: var(--mc-navy);
  font-size: 12.5px;
  font-weight: 600;
  border-radius: 9px;
  cursor: pointer;
  user-select: none;
  transition: background 120ms ease, border-color 120ms ease, color 120ms ease;
  white-space: nowrap;
}
body.has-uplift.add_user .admin-form .dashbord-radio-button > li > label:hover {
  border-color: var(--mc-blue);
  color: var(--mc-blue);
}
body.has-uplift.add_user .admin-form .dashbord-radio-button > li > input[type="radio"]:checked + label {
  background: var(--mc-blue);
  border-color: var(--mc-blue);
  color: white;
  box-shadow: 0 2px 6px rgba(0, 113, 188, 0.25);
}

/* Submit button — make it a real footer row that can't overlap the
   form above. The legacy `.button.btn-red` had its own positioning,
   which is the source of the overlap; we re-style it as a clean
   primary button anchored to its own row. */
body.has-uplift.add_user .admin-form .form-group.text-right {
  margin: 24px 0 0;
  padding-top: 18px;
  border-top: 1px solid rgba(11, 59, 94, 0.06);
  text-align: right !important;
  position: static;
  clear: both;
  display: block;
}
body.has-uplift.add_user .admin-form input[type="submit"],
body.has-uplift.add_user .admin-form .button.btn-red,
body.has-uplift.add_user .admin-form .btn-primary {
  background: var(--mc-red) !important;
  border: 1px solid var(--mc-red) !important;
  color: white !important;
  border-radius: 9px !important;
  padding: 10px 22px !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  box-shadow: 0 6px 16px rgba(196, 18, 48, 0.22) !important;
  position: static !important;
  margin: 0 !important;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  text-decoration: none;
  height: auto !important;
  width: auto !important;
  line-height: 1.4 !important;
}
body.has-uplift.add_user .admin-form input[type="submit"]:hover,
body.has-uplift.add_user .admin-form .button.btn-red:hover,
body.has-uplift.add_user .admin-form .btn-primary:hover {
  background: #a3142e !important;
  border-color: #a3142e !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(196, 18, 48, 0.28) !important;
}

/* General User extra fields (assessment / sections / walkthrough) */
body.has-uplift.add_user .admin-form fieldset legend,
body.has-uplift.add_user .admin-form .input-heading {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--mc-navy);
  margin: 0 0 10px;
  display: block;
  background: transparent !important;
  padding: 0 !important;
  text-transform: none;
  letter-spacing: normal;
  border: 0 !important;
}
body.has-uplift.add_user .admin-form .dashbord-check-button {
  list-style: none; margin: 0; padding: 0;
}
body.has-uplift.add_user .admin-form .dashbord-check-button > li > input[type="checkbox"] {
  position: absolute; opacity: 0; pointer-events: none; width: 0; height: 0;
}
body.has-uplift.add_user .admin-form .dashbord-check-button > li > label {
  margin: 0 0 6px;
  padding: 8px 12px;
  background: white;
  border: 1px solid rgba(11, 59, 94, 0.14);
  color: var(--mc-navy);
  font-size: 12.5px;
  font-weight: 600;
  border-radius: 9px;
  cursor: pointer;
  display: inline-flex;
  white-space: nowrap;
}
body.has-uplift.add_user .admin-form .dashbord-check-button > li > input[type="checkbox"]:checked + label {
  background: var(--mc-blue-soft);
  border-color: var(--mc-blue);
  color: var(--mc-navy);
}

/* ── Manage tab — users table ─────────────────────────── */
body.has-uplift.add_user .nav-manage table.table {
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
}
body.has-uplift.add_user .nav-manage table.table thead th {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--mc-mute);
  border: 0;
  border-bottom: 1px solid rgba(11, 59, 94, 0.10);
  padding: 12px 14px;
  background: transparent;
}
body.has-uplift.add_user .nav-manage table.table tbody td {
  vertical-align: middle;
  padding: 14px;
  border: 0;
  border-bottom: 1px solid rgba(11, 59, 94, 0.06);
  font-size: 13.5px;
  color: var(--mc-ink);
}
body.has-uplift.add_user .nav-manage table.table tbody tr:hover td {
  background: rgba(11, 59, 94, 0.025);
}
body.has-uplift.add_user .nav-manage table.table tbody tr:last-child td {
  border-bottom: 0;
}

/* Action buttons inside the user rows — Manage = blue pill with
   white text, Delete = subtle outline button so the table stays
   calm and reading-friendly. */
body.has-uplift.add_user .nav-manage .btn-primary {
  background: var(--mc-blue);
  border: 1px solid var(--mc-blue);
  color: white !important;
  border-radius: 9px;
  padding: 7px 16px;
  font-size: 12.5px;
  font-weight: 600;
  box-shadow: none;
  text-decoration: none;
}
body.has-uplift.add_user .nav-manage .btn-primary:hover {
  background: var(--mc-navy);
  border-color: var(--mc-navy);
  color: white !important;
}
body.has-uplift.add_user .nav-manage .btn-danger,
body.has-uplift.add_user .nav-manage input[type="submit"].btn-danger {
  background: white;
  border: 1px solid rgba(196, 18, 48, 0.30);
  color: var(--mc-red) !important;
  border-radius: 9px;
  padding: 7px 16px;
  font-size: 12.5px;
  font-weight: 600;
  box-shadow: none;
}
body.has-uplift.add_user .nav-manage .btn-danger:hover {
  background: rgba(196, 18, 48, 0.08);
  border-color: var(--mc-red);
  color: var(--mc-red) !important;
}
body.has-uplift.add_user .nav-manage form.delete-user { margin: 0; }

/* ============================================================
   ADD USER FORM — clean rewrite, `.mc-au-*` namespace
   ============================================================ */
body.has-uplift.add_user .mc-au-form { display: block; }
body.has-uplift.add_user .mc-au-section {
  padding: 22px 0;
  border-bottom: 1px solid rgba(11, 59, 94, 0.06);
}
body.has-uplift.add_user .mc-au-section:first-child,
body.has-uplift.add_user .mc-au-section.mc-au-section-first { padding-top: 0; }
body.has-uplift.add_user .mc-au-field-opt {
  font-size: 11.5px;
  font-weight: 500;
  color: var(--mc-mute);
  margin-left: 4px;
}
body.has-uplift.add_user .mc-au-section:last-of-type { border-bottom: 0; }
body.has-uplift.add_user .mc-au-section-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--mc-navy);
  margin: 0 0 4px;
  letter-spacing: -0.005em;
}
body.has-uplift.add_user .mc-au-section-help {
  font-size: 12.5px;
  color: var(--mc-mute);
  line-height: 1.5;
  margin: 0 0 14px;
  max-width: 640px;
}
body.has-uplift.add_user .mc-au-section .mc-au-section-title + .mc-au-grid,
body.has-uplift.add_user .mc-au-section .mc-au-section-title + .mc-au-roles,
body.has-uplift.add_user .mc-au-section .mc-au-section-title + .mc-au-pillrow,
body.has-uplift.add_user .mc-au-section .mc-au-section-title + .mc-au-select {
  margin-top: 14px;
}

/* Grid layout for the three-input row. */
body.has-uplift.add_user .mc-au-grid {
  display: grid;
  gap: 14px;
}
body.has-uplift.add_user .mc-au-grid-3 {
  grid-template-columns: 1fr 1fr 1.4fr;
}
body.has-uplift.add_user .mc-au-grid-2 {
  grid-template-columns: 1fr 1fr;
}
body.has-uplift.add_user .mc-au-field.mc-au-field-full {
  grid-column: 1 / -1;
}
@media (max-width: 760px) {
  body.has-uplift.add_user .mc-au-grid-3,
  body.has-uplift.add_user .mc-au-grid-2 { grid-template-columns: 1fr; }
}
body.has-uplift.add_user .mc-au-field { min-width: 0; }
body.has-uplift.add_user .mc-au-field label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--mc-navy);
  margin: 0 0 6px;
  text-transform: none;
  letter-spacing: 0;
}
body.has-uplift.add_user .mc-au-field input.form-control {
  width: 100%;
  /* Lock every form-control input to the same rendered height
     regardless of input type — Bootstrap's defaults render
     `<input type="tel">` slightly shorter than `type="text"`,
     which made Phone visibly out of sync with the other fields.
     Explicit height + line-height removes browser-default
     variance. */
  height: 42px;
  line-height: 20px;
  font-family: inherit;
  border: 1px solid rgba(11, 59, 94, 0.14);
  border-radius: 9px;
  padding: 10px 12px;
  font-size: 13.5px;
  color: var(--mc-ink);
  background: white;
  box-shadow: none;
  box-sizing: border-box;
  transition: border-color 120ms ease, box-shadow 120ms ease;
}
body.has-uplift.add_user .mc-au-field input.form-control:focus {
  outline: 0;
  border-color: var(--mc-blue);
  box-shadow: 0 0 0 3px var(--mc-blue-soft);
}

/* Role cards. */
body.has-uplift.add_user .mc-au-roles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
@media (max-width: 760px) {
  body.has-uplift.add_user .mc-au-roles { grid-template-columns: 1fr; }
}
body.has-uplift.add_user .mc-au-role {
  margin: 0;
  display: flex;
  align-items: center;
  padding: 14px 16px;
  background: white;
  border: 1.5px solid rgba(11, 59, 94, 0.12);
  border-radius: 10px;
  cursor: pointer;
  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;
  position: relative;
}
body.has-uplift.add_user .mc-au-role:hover { border-color: var(--mc-blue); }
body.has-uplift.add_user .mc-au-role > input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0; height: 0;
}
body.has-uplift.add_user .mc-au-role-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
body.has-uplift.add_user .mc-au-role-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--mc-navy);
}
body.has-uplift.add_user .mc-au-role-summary {
  display: block;
  margin-top: 4px;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--mc-mute);
  line-height: 1.45;
}
body.has-uplift.add_user .mc-au-role-bullets {
  margin: 8px 0 0;
  padding-left: 20px;
  font-size: 12.5px;
  color: var(--mc-ink);
  list-style: disc outside;
}
body.has-uplift.add_user .mc-au-role-bullets li {
  margin-bottom: 2px;
  line-height: 1.4;
  display: list-item;
  /* Override the legacy `form.admin-form ul li { overflow: hidden }`
     rule that clips list-style markers since they live in the
     padding region outside the li's content box. */
  overflow: visible;
  list-style: disc outside;
}
body.has-uplift.add_user .mc-au-role-bullets li::marker {
  color: var(--mc-mute);
  font-size: 14px;
}
body.has-uplift.add_user .mc-au-role:has(> input[type="radio"]:checked) .mc-au-role-summary,
body.has-uplift.add_user .mc-au-role:has(> input[type="radio"]:checked) .mc-au-role-bullets,
body.has-uplift.add_user .mc-au-role:has(> input[type="radio"]:checked) .mc-au-role-bullets li {
  /* Use a softer white-transparent for the body copy on selected
     cards — the previous 0.92 opacity rendered near-pure white,
     which fights the white card title and reads as "the bullets
     are the same weight as the name." Lighter alpha gives the
     hierarchy back. */
  color: rgba(255, 255, 255, 0.78);
}
body.has-uplift.add_user .mc-au-role:has(> input[type="radio"]:checked) .mc-au-role-bullets li::marker {
  color: rgba(255, 255, 255, 0.55);
}

/* Manage tab — per-row role info pop-up */
body.has-uplift.add_user .mc-role-cell {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
body.has-uplift.add_user .mc-role-cell-name {
  color: var(--mc-ink);
}
body.has-uplift.add_user button.mc-role-info {
  background: transparent;
  border: 0;
  color: var(--mc-blue);
  font-size: 14px;
  padding: 2px;
  border-radius: 4px;
  cursor: pointer;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
body.has-uplift.add_user button.mc-role-info:hover {
  color: var(--mc-navy);
}

/* Floating popover injected by JS — attached to <body> so it isn't
   clipped by the table's overflow rules. */
.mc-role-popover {
  position: fixed;
  z-index: 9500;
  max-width: 320px;
  background: white;
  color: var(--mc-ink);
  border: 1px solid rgba(11, 59, 94, 0.12);
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(11, 59, 94, 0.18),
              0 2px 6px rgba(11, 59, 94, 0.08);
  padding: 14px 16px 12px;
  font-size: 13px;
  line-height: 1.5;
  pointer-events: auto;
}
.mc-role-popover h5 {
  margin: 0 0 4px;
  font-size: 14px;
  font-weight: 700;
  color: var(--mc-navy);
}
.mc-role-popover p {
  margin: 0 0 8px;
  color: var(--mc-mute);
  font-size: 12.5px;
}
.mc-role-popover ul {
  margin: 0;
  padding-left: 18px;
  font-size: 12.5px;
}
.mc-role-popover ul:empty { display: none; }
.mc-role-popover li {
  margin-bottom: 2px;
}

/* ============================================================
   PLATFORM-WIDE ALERT / MESSAGE STYLING

   Replaces the legacy Bootstrap `.alert.alert-danger` /
   `.alert-primary` look (which had the wrong font, weird vertical
   alignment, and an indented bullet list). Used by:
   - resources/views/layouts/errors.blade.php
   - resources/views/layouts/messages.blade.php
   - any inline `<div class="mc-alert">...` anywhere else
   ============================================================ */
body.has-uplift .mc-alert {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin: 0 32px 18px;
  padding: 14px 18px;
  border-radius: 12px;
  font-family: inherit;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--mc-ink);
  background: white;
  border: 1px solid rgba(11, 59, 94, 0.10);
  border-left-width: 4px;
  box-shadow: 0 1px 2px rgba(11, 59, 94, 0.04);
}
body.has-uplift .mc-alert-ic {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  font-size: 14px;
  margin-top: 1px;
}
body.has-uplift .mc-alert-body {
  flex: 1;
  min-width: 0;
}
body.has-uplift .mc-alert-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--mc-navy);
  margin-bottom: 4px;
  letter-spacing: -0.005em;
}
body.has-uplift .mc-alert-text {
  font-size: 13.5px;
  color: var(--mc-ink);
  line-height: 1.3;
}
body.has-uplift .mc-alert-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 4px;
}
body.has-uplift .mc-alert-list li {
  font-size: 13px;
  color: var(--mc-ink);
  padding: 0;
  margin: 0;
  line-height: 1.3;
}
body.has-uplift .mc-alert-list li a {
  color: var(--mc-blue);
  font-weight: 600;
  text-decoration: none;
}
body.has-uplift .mc-alert-list li a:hover { text-decoration: underline; }

/* Danger — soft red */
body.has-uplift .mc-alert-danger {
  background: #fff4f5;
  border-color: rgba(196, 18, 48, 0.18);
  border-left-color: var(--mc-red);
}
body.has-uplift .mc-alert-danger .mc-alert-ic {
  background: rgba(196, 18, 48, 0.10);
  color: var(--mc-red);
}
body.has-uplift .mc-alert-danger .mc-alert-title { color: var(--mc-red); }
body.has-uplift .mc-alert-danger .mc-alert-list li { color: var(--mc-navy); }

/* Info / primary — soft blue */
body.has-uplift .mc-alert-info {
  background: var(--mc-blue-soft);
  border-color: rgba(0, 113, 188, 0.18);
  border-left-color: var(--mc-blue);
}
body.has-uplift .mc-alert-info .mc-alert-ic {
  background: rgba(0, 113, 188, 0.10);
  color: var(--mc-blue);
}
body.has-uplift .mc-alert-info .mc-alert-title { color: var(--mc-navy); }

/* Success — soft green */
body.has-uplift .mc-alert-success {
  background: #f1faf5;
  border-color: rgba(31, 138, 76, 0.18);
  border-left-color: var(--mc-green);
}
body.has-uplift .mc-alert-success .mc-alert-ic {
  background: rgba(31, 138, 76, 0.10);
  color: var(--mc-green);
}
body.has-uplift .mc-alert-success .mc-alert-title { color: var(--mc-green); }

/* Warning — soft amber */
body.has-uplift .mc-alert-warning {
  background: #fff7e6;
  border-color: rgba(214, 141, 0, 0.20);
  border-left-color: var(--mc-amber, #d68d00);
}
body.has-uplift .mc-alert-warning .mc-alert-ic {
  background: rgba(214, 141, 0, 0.12);
  color: var(--mc-amber, #d68d00);
}
body.has-uplift .mc-alert-warning .mc-alert-title { color: var(--mc-amber, #d68d00); }

/* Neutralize the legacy Bootstrap `.alert.alert-*` styles that
   render *inside* `.mc-alert` — they fight the uplift look with
   their own padding/colors/font. Strip them so only our rules
   matter. */
body.has-uplift .mc-alert.alert,
body.has-uplift .mc-alert.alert.alert-danger,
body.has-uplift .mc-alert.alert.alert-primary,
body.has-uplift .mc-alert.alert.alert-success,
body.has-uplift .mc-alert.alert.alert-warning,
body.has-uplift .mc-alert.alert.alert-info {
  color: var(--mc-ink);
  background: inherit;
  border: inherit;
  border-left-width: inherit;
}
/* Some pages still drop raw legacy `.alert.alert-danger` (without
   the .mc-alert wrapper) — give those a quick once-over so they
   don't look outright broken even before being converted. */
body.has-uplift .alert.alert-danger:not(.mc-alert),
body.has-uplift .alert.alert-primary:not(.mc-alert),
body.has-uplift .alert.alert-success:not(.mc-alert),
body.has-uplift .alert.alert-warning:not(.mc-alert) {
  font-family: inherit;
  font-size: 13.5px;
  line-height: 1.5;
  padding: 12px 16px;
  border-radius: 10px;
  border: 1px solid rgba(11, 59, 94, 0.10);
  border-left-width: 4px;
  margin: 0 0 14px;
}
body.has-uplift .alert.alert-danger:not(.mc-alert) {
  background: #fff4f5;
  border-left-color: var(--mc-red);
  color: var(--mc-navy);
}
body.has-uplift .alert.alert-primary:not(.mc-alert) {
  background: var(--mc-blue-soft);
  border-left-color: var(--mc-blue);
  color: var(--mc-navy);
}
body.has-uplift .alert.alert-success:not(.mc-alert) {
  background: #f1faf5;
  border-left-color: var(--mc-green);
  color: var(--mc-navy);
}
body.has-uplift .alert.alert-warning:not(.mc-alert) {
  background: #fff7e6;
  border-left-color: var(--mc-amber, #d68d00);
  color: var(--mc-navy);
}
body.has-uplift .alert > ul,
body.has-uplift .alert > .container,
body.has-uplift .alert > .form-group {
  margin: 0;
  padding: 0;
  list-style: none;
}
body.has-uplift .alert > ul > li {
  padding: 0;
  margin: 0 0 2px;
}

/* ============================================================
   SETUP WIZARD BANNER — guided card shown on any page reached
   via the `?wizard=stepN` flag. Surfaces:
     - Step + progress bar at the top
     - The current task's title + goal + instructions
     - Cancel / Save & continue actions at the bottom
   ============================================================ */
.mc-wiz-banner {
  /* Full-bleed bar. No side margins, so it spans the full content column:
     from the right edge of the sidebar to the window's right edge. The
     containing block (.mc-content) already begins at the sidebar's right
     edge and tracks the collapse/expand via .mc-main's padding-left, so
     the bar's left edge follows the nav automatically in both states.
     Horizontal padding matches the topbar (32px) so the text lines up. */
  margin: 0 0 22px;
  padding: 18px 32px;
  border-radius: 0;
  /* Saturated blue-tinted bar + solid brand-blue bottom edge + a deeper
     shadow, so it reads clearly when pinned over the mostly white/light
     pages below it (the old near-white card blended in). */
  background:
    radial-gradient(circle at 97% -10%, rgba(0, 113, 188, 0.20), transparent 60%),
    linear-gradient(180deg, #eaf3fb 0%, #d6e7f6 100%);
  border: 0;
  border-bottom: 2px solid var(--mc-blue);
  box-shadow: 0 10px 26px rgba(11, 59, 94, 0.18);
  /* Keep the wizard guidance on screen while the user works down a long
     form: pin it just beneath the sticky topbar (.mc-topbar, top:0) so it
     stays "flush against the top edge" as the page scrolls, then drops
     back into normal flow when scrolled all the way up. --mc-topbar-h is
     measured live in uplift-2026.js (wireWizardStickyOffset); the 62px
     fallback covers the no-JS / pre-measurement case. z-index sits below
     the topbar (40) and above page content. */
  position: -webkit-sticky;
  position: sticky;
  top: var(--mc-topbar-h, 62px);
  z-index: 30;
}
.mc-wiz-banner-head {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(11, 59, 94, 0.16);
}
.mc-wiz-eyebrow-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  flex-wrap: wrap;
}
.mc-wiz-eyebrow {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--mc-blue);
}
.mc-wiz-count {
  font-size: 11.5px;
  color: var(--mc-mute);
}
.mc-wiz-count b { color: var(--mc-navy); font-weight: 700; }
.mc-wiz-bar {
  width: 100%;
  height: 6px;
  border-radius: 999px;
  background: rgba(11, 59, 94, 0.08);
  overflow: hidden;
}
.mc-wiz-bar i {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--mc-blue), #4ba2e0);
  border-radius: 999px;
  transition: width 0.3s ease;
}

.mc-wiz-banner-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 22px;
}
.mc-wiz-task { min-width: 0; }
.mc-wiz-task h4 {
  margin: 0 0 4px;
  font-size: 17px;
  font-weight: 700;
  color: var(--mc-navy);
  letter-spacing: -0.005em;
}
.mc-wiz-task-goal {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--mc-navy);
  line-height: 1.45;
}
.mc-wiz-task-how {
  margin: 0;
  font-size: 13px;
  color: var(--mc-mute);
  line-height: 1.55;
  max-width: 720px;
}

.mc-wiz-actions {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
a.mc-wiz-cancel {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--mc-mute);
  text-decoration: none;
  padding: 8px 12px;
  border-radius: 7px;
}
a.mc-wiz-cancel:hover {
  color: var(--mc-navy);
  background: rgba(11, 59, 94, 0.05);
  text-decoration: none;
}
a.mc-wiz-continue {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 11px 20px;
  border-radius: 9px;
  background: var(--mc-blue);
  color: white;
  font-size: 13.5px;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(0, 113, 188, 0.22);
  transition: background 120ms ease, transform 120ms ease,
              box-shadow 120ms ease;
}
a.mc-wiz-continue:hover {
  background: #005d9c;
  color: white;
  text-decoration: none;
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(0, 113, 188, 0.28);
}
a.mc-wiz-continue svg {
  width: 26px; height: 10px;
}

/* Stack the primary "Save & continue" and the optional "I don't have a
   prior SRA" skip beneath it, right-aligned under the button. */
.mc-wiz-continue-col {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}
.mc-wiz-skiprow {
  display: flex;
  justify-content: flex-end;
  margin: 0;
}
/* Mirrors button.mc-ob-skip (the onboarding Skip button) exactly, just
   smaller — smaller font, tighter padding, and a smaller arrow. */
button.mc-wiz-skip-prior {
  background: transparent;
  border: 0;
  padding: 4px 8px;
  font-family: inherit;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--mc-mute);
  cursor: pointer;
  border-radius: 7px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  transition: color 120ms ease, background 120ms ease;
}
button.mc-wiz-skip-prior .mc-ob-skip-arrow {
  width: 24px;
  height: 9px;
}
button.mc-wiz-skip-prior:hover {
  color: var(--mc-navy);
  background: rgba(11, 59, 94, 0.05);
}
button.mc-wiz-skip-prior:hover .mc-ob-skip-arrow {
  transform: translateX(3px);
}

@media (max-width: 860px) {
  .mc-wiz-banner { padding-left: 18px; padding-right: 18px; }
  .mc-wiz-banner-body {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .mc-wiz-actions { justify-content: flex-end; }
}

/* Dashboard step-complete celebration banner — shown when the user
   arrives back with `?wizard_done=stepN`. JS in uplift-2026.js
   detects this on page load, fires confetti, and the banner offers
   the "Start Step N+1" hand-off. */
.mc-wiz-celebrate {
  margin: 14px 32px 8px;
  padding: 18px 22px 16px;
  border-radius: 16px;
  background:
    radial-gradient(circle at 90% 0%, rgba(102, 211, 156, 0.30), transparent 55%),
    linear-gradient(180deg, white 0%, #f3fbf6 100%);
  border: 1px solid rgba(31, 138, 76, 0.22);
  box-shadow: 0 8px 24px rgba(31, 138, 76, 0.10);
  display: flex;
  align-items: center;
  gap: 18px;
  justify-content: space-between;
}
.mc-wiz-celebrate-body { display: flex; align-items: center; gap: 14px; }
.mc-wiz-celebrate-ic {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: var(--mc-green);
  color: white;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 18px;
  box-shadow: 0 4px 12px rgba(31, 138, 76, 0.30);
}
.mc-wiz-celebrate h4 {
  margin: 0 0 2px;
  font-size: 16px;
  font-weight: 700;
  color: var(--mc-navy);
}
.mc-wiz-celebrate p {
  margin: 0;
  font-size: 13px;
  color: var(--mc-mute);
}
a.mc-wiz-celebrate-cta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 18px;
  border-radius: 9px;
  background: var(--mc-green);
  color: white;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(31, 138, 76, 0.22);
}
a.mc-wiz-celebrate-cta:hover {
  background: #197a40;
  color: white;
  text-decoration: none;
}
a.mc-wiz-celebrate-dismiss {
  color: var(--mc-mute);
  font-size: 12.5px;
  font-weight: 600;
  text-decoration: none;
  padding: 8px 10px;
  border-radius: 7px;
}
a.mc-wiz-celebrate-dismiss:hover {
  color: var(--mc-navy);
  background: rgba(11, 59, 94, 0.05);
  text-decoration: none;
}

/* ============================================================
   MANAGE USERS PAGE — flat, well-spaced layout that matches the
   rest of the new shell. No nested cards, no Bootstrap row/col
   cruft. Header → tabs → content sit directly on the page.
   ============================================================ */

/* Header: title + count line on the left, primary CTA on the right. */
body.has-uplift.add_user .mc-mu-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin: 0 0 18px;
  padding: 0;
}
body.has-uplift.add_user .mc-mu-head-title h3 {
  margin: 0 0 4px;
  font-size: 19px;
  font-weight: 700;
  color: var(--mc-navy);
  letter-spacing: -0.005em;
}
body.has-uplift.add_user .mc-mu-head-title p {
  margin: 0;
  font-size: 13px;
  color: var(--mc-mute);
  line-height: 1.5;
}
body.has-uplift.add_user .mc-mu-head-title p b {
  color: var(--mc-navy);
  font-weight: 700;
}
body.has-uplift.add_user button.mc-mu-cta {
  background: var(--mc-red);
  color: white;
  border: 1px solid var(--mc-red);
  border-radius: 9px;
  padding: 10px 18px;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 4px 12px rgba(196, 18, 48, 0.18);
  transition: transform 120ms ease, box-shadow 120ms ease,
              background 120ms ease;
  flex-shrink: 0;
}
body.has-uplift.add_user button.mc-mu-cta i { font-size: 12px; }
body.has-uplift.add_user button.mc-mu-cta:hover {
  background: #a3142e;
  border-color: #a3142e;
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(196, 18, 48, 0.24);
}

/* Tab strip — segmented inline pills directly above the content
   with no surrounding card. Active tab gets a strong navy underline
   so the visual "anchor" between tab and content is unambiguous. */
body.has-uplift.add_user .mc-mu-tabs {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  background: rgba(11, 59, 94, 0.05);
  border-radius: 12px;
  margin: 0 0 18px;
}
body.has-uplift.add_user a.mc-mu-tab {
  padding: 8px 18px;
  font-size: 13px;
  font-weight: 600;
  color: var(--mc-mute);
  border-radius: 9px;
  text-decoration: none;
  cursor: pointer;
  transition: background 120ms ease, color 120ms ease;
}
body.has-uplift.add_user a.mc-mu-tab:hover { color: var(--mc-navy); text-decoration: none; }
body.has-uplift.add_user a.mc-mu-tab.active {
  background: white;
  color: var(--mc-navy);
  box-shadow: 0 1px 2px rgba(11, 59, 94, 0.06);
}

/* Tab content shell — no padding, no card. The user-list rows and
   the Add-User form below are responsible for their own chrome. */
body.has-uplift.add_user .mc-mu-tabcontent {
  padding: 0;
  background: transparent;
}

/* User list — clean card rows on the page background. */
body.has-uplift.add_user .mc-mu-list {
  display: grid;
  gap: 10px;
}
body.has-uplift.add_user .mc-mu-row {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 18px;
  padding: 14px 18px;
  background: white;
  border: 1px solid rgba(11, 59, 94, 0.08);
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(11, 59, 94, 0.04);
  transition: border-color 120ms ease, box-shadow 120ms ease,
              transform 120ms ease;
}
body.has-uplift.add_user .mc-mu-row:hover {
  border-color: rgba(0, 113, 188, 0.25);
  box-shadow: 0 6px 18px rgba(11, 59, 94, 0.08);
  transform: translateY(-1px);
}
body.has-uplift.add_user .mc-mu-row.is-self {
  border-color: rgba(0, 113, 188, 0.30);
  background: linear-gradient(180deg, var(--mc-blue-soft) 0%, white 50%);
}
body.has-uplift.add_user .mc-mu-av {
  width: 44px; height: 44px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 700;
  font-size: 14px;
  flex-shrink: 0;
}
body.has-uplift.add_user .mc-mu-av.is-admin {
  background: var(--mc-blue);
  color: white;
  box-shadow: 0 2px 6px rgba(0, 113, 188, 0.20);
}
body.has-uplift.add_user .mc-mu-av.is-member {
  background: var(--mc-cream-soft, #f4ede0);
  color: var(--mc-navy);
}
body.has-uplift.add_user .mc-mu-body {
  min-width: 0;
  display: flex; flex-direction: column; gap: 2px;
}
body.has-uplift.add_user .mc-mu-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--mc-navy);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.has-uplift.add_user .mc-mu-youtag {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  background: var(--mc-blue);
  color: white;
  padding: 2px 7px;
  border-radius: 999px;
}
body.has-uplift.add_user .mc-mu-email {
  font-size: 12.5px;
  color: var(--mc-mute);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.has-uplift.add_user .mc-mu-rolewrap {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
body.has-uplift.add_user .mc-mu-role-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 11px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}
body.has-uplift.add_user .mc-mu-role-pill.is-admin {
  background: var(--mc-blue-soft);
  color: var(--mc-navy);
}
body.has-uplift.add_user .mc-mu-role-pill.is-member {
  background: rgba(11, 59, 94, 0.06);
  color: var(--mc-ink);
}
body.has-uplift.add_user .mc-mu-role-pill i { font-size: 10.5px; }
body.has-uplift.add_user button.mc-mu-info {
  background: transparent;
  border: 0;
  color: var(--mc-mute);
  font-size: 13px;
  padding: 4px;
  border-radius: 4px;
  cursor: pointer;
  line-height: 1;
}
body.has-uplift.add_user button.mc-mu-info:hover { color: var(--mc-blue); }

body.has-uplift.add_user .mc-mu-actions {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
body.has-uplift.add_user .mc-mu-actions .mc-mu-removeform {
  margin: 0;
  display: inline-flex;
}

/* Buttons — icon-pill style. Edit reads as a quiet text link, Remove
   reads as a quiet destructive icon. Strong primary lives only in
   the page-level CTA. Avoids the noisy "two big buttons per row"
   issue from the legacy table. */
body.has-uplift.add_user a.mc-mu-btn,
body.has-uplift.add_user button.mc-mu-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  border-radius: 8px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  border: 0;
  background: transparent;
  color: var(--mc-mute);
  transition: background 120ms ease, color 120ms ease;
}
body.has-uplift.add_user .mc-mu-btn i { font-size: 11px; }
body.has-uplift.add_user a.mc-mu-btn-primary {
  color: var(--mc-blue);
}
body.has-uplift.add_user a.mc-mu-btn-primary:hover {
  background: rgba(0, 113, 188, 0.08);
  color: var(--mc-navy);
  text-decoration: none;
}
body.has-uplift.add_user button.mc-mu-btn-danger:hover {
  background: rgba(196, 18, 48, 0.08);
  color: var(--mc-red);
}

@media (max-width: 760px) {
  body.has-uplift.add_user .mc-mu-head {
    flex-direction: column;
    align-items: stretch;
  }
  body.has-uplift.add_user button.mc-mu-cta { align-self: flex-start; }
  body.has-uplift.add_user .mc-mu-row {
    grid-template-columns: 44px 1fr;
    grid-template-areas:
      "av body"
      "role role"
      "actions actions";
    row-gap: 12px;
  }
  body.has-uplift.add_user .mc-mu-av       { grid-area: av; }
  body.has-uplift.add_user .mc-mu-body     { grid-area: body; }
  body.has-uplift.add_user .mc-mu-rolewrap { grid-area: role; }
  body.has-uplift.add_user .mc-mu-actions  { grid-area: actions; justify-content: flex-end; }
}
body.has-uplift.add_user .mc-au-role > input[type="radio"]:checked + .mc-au-role-body {
  color: white;
}
body.has-uplift.add_user .mc-au-role:has(> input[type="radio"]:checked) {
  background: var(--mc-blue);
  border-color: var(--mc-blue);
}
body.has-uplift.add_user .mc-au-role:has(> input[type="radio"]:checked) .mc-au-role-name {
  color: white;
}

/* Generic pill row used for Assessment radios, Section checkboxes,
   etc. */
body.has-uplift.add_user .mc-au-pillrow {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
body.has-uplift.add_user .mc-au-pill {
  margin: 0;
  display: inline-flex;
  align-items: center;
  padding: 9px 14px;
  background: white;
  border: 1px solid rgba(11, 59, 94, 0.14);
  color: var(--mc-navy);
  font-size: 12.5px;
  font-weight: 600;
  border-radius: 9px;
  cursor: pointer;
  white-space: nowrap;
  transition: background 120ms ease, border-color 120ms ease, color 120ms ease;
  position: relative;
}
body.has-uplift.add_user .mc-au-pill:hover {
  border-color: var(--mc-blue);
  color: var(--mc-blue);
}
body.has-uplift.add_user .mc-au-pill > input[type="radio"],
body.has-uplift.add_user .mc-au-pill > input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0; height: 0;
}
body.has-uplift.add_user .mc-au-pill:has(> input:checked) {
  background: var(--mc-blue);
  border-color: var(--mc-blue);
  color: white;
}

/* Walkthrough location dropdown + chips. */
body.has-uplift.add_user .mc-au-select.form-control {
  max-width: 320px;
  border: 1px solid rgba(11, 59, 94, 0.14);
  border-radius: 9px;
  padding: 9px 32px 9px 12px;
  font-size: 13.5px;
  color: var(--mc-ink);
  background: white;
  box-shadow: none;
}
body.has-uplift.add_user .mc-au-select.form-control:focus {
  outline: 0;
  border-color: var(--mc-blue);
  box-shadow: 0 0 0 3px var(--mc-blue-soft);
}
body.has-uplift.add_user .mc-au-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
body.has-uplift.add_user .mc-au-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  background: var(--mc-blue-soft);
  color: var(--mc-navy);
  font-size: 12px;
  font-weight: 600;
  border-radius: 999px;
}
body.has-uplift.add_user .mc-au-chip a { line-height: 1; color: inherit; text-decoration: none; }
body.has-uplift.add_user .mc-au-chip i {
  font-style: normal;
  font-size: 14px;
  cursor: pointer;
  color: var(--mc-mute);
}
body.has-uplift.add_user .mc-au-chip i:hover { color: var(--mc-red); }

/* Footer with the submit button. */
body.has-uplift.add_user .mc-au-footer {
  margin-top: 4px;
  padding-top: 18px;
  border-top: 1px solid rgba(11, 59, 94, 0.06);
  display: flex;
  justify-content: flex-end;
}
body.has-uplift.add_user button.mc-au-submit {
  background: var(--mc-red);
  border: 1px solid var(--mc-red);
  color: white;
  border-radius: 9px;
  padding: 11px 22px;
  font-size: 13.5px;
  font-weight: 700;
  font-family: inherit;
  box-shadow: 0 6px 16px rgba(196, 18, 48, 0.22);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease;
}
body.has-uplift.add_user button.mc-au-submit:hover {
  background: #a3142e;
  border-color: #a3142e;
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(196, 18, 48, 0.28);
}

/* ============================================================
   PURCHASE SUMMARY / CHECKOUT — body.create-plans  (2026-06-10)
   Covers order/create, order/create-custom, order/create-medman
   and company_assessments/create (all share body_class
   "create-plans" and the same .purchase-summary markup).

   The legacy format.scss checkout rules use enormous spacing
   (80px page padding, 84/150px card padding, 50px row gaps,
   0 95px list gutters) and a heavy gray double-border card, so
   the page sprawls far past one screen. This section compacts
   everything onto the platform's card system (16px radius,
   --mc-* palette, soft shadows) without touching any behavior:
   same form fields, same Vue bindings, same Stripe elements.
   ============================================================ */

/* Page canvas + centered column. */
body.has-uplift.create-plans .purchase-summary-area { padding: 8px 32px 40px; }
body.has-uplift.create-plans .purchase-summary-area .container {
  max-width: 880px;
  margin: 0 auto;
  padding: 0;
}
/* Back to Subscription/Plans link above the cards. Sits outside
   the form so it never participates in the checkout grid.
   Styled to match the dashboard "Resume setup" button EXACTLY
   (button.mc-ob-resume + .mc-ob-skip-arrow) — only the text
   differs. Keep the two in sync if Resume setup ever changes. */
body.has-uplift.create-plans .mc-checkout-back {
  max-width: 880px;
  margin: 0 auto 8px;
}
body.has-uplift.create-plans .mc-checkout-back a {
  background: transparent;
  border: 0;
  padding: 11px 14px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  color: var(--mc-mute);
  cursor: pointer;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
  flex: 0 0 auto;
  text-decoration: none;
  transition: color 120ms ease, background 120ms ease;
}
body.has-uplift.create-plans .mc-checkout-back a:hover {
  color: var(--mc-navy);
  background: rgba(11, 59, 94, 0.05);
  text-decoration: none;
}
/* Same back-pointing hover nudge as Resume setup. */
body.has-uplift.create-plans .mc-checkout-back a:hover .mc-ob-skip-arrow {
  transform: translateX(-3px);
}

/* Two-column checkout (2026-06-10): the form holds exactly two
   .container blocks — Purchase Summary first, Billing/Payment
   second. Side by side on desktop, with Billing/Payment (the
   bigger card) on the LEFT and Purchase Summary on the RIGHT. */
@media (min-width: 1024px) {
  body.has-uplift.create-plans .mc-checkout-back { max-width: 1240px; }
  body.has-uplift.create-plans .purchase-summary-area > form {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 4fr);
    gap: 0 20px;
    align-items: start;
    max-width: 1240px;
    margin: 0 auto;
  }
  body.has-uplift.create-plans .purchase-summary-area > form > .container {
    max-width: none;
    margin: 0;
  }
  /* Place each card by which card it CONTAINS, not by sibling position.
     The form's first DOM child is the @csrf hidden input, and Stripe/cart.js
     plus the validation-error reload can inject further hidden siblings, so
     :first-child / :last-child were unreliable: an injected last child made
     the billing card stop matching :last-child, both cards then lost their
     explicit placement and auto-flowed in source order — which swapped their
     sides (Purchase Summary jumping left, Billing right). Keying on the inner
     card class is deterministic regardless of any injected hidden siblings.
     Billing/Payment card (.purchase-summary-payment-methor) → LEFT; the plain
     Purchase Summary card → RIGHT. Shared by every .create-plans checkout view
     (order/create, order/create-custom, order/create-medman,
     company_assessments/create). */
  body.has-uplift.create-plans .purchase-summary-area > form > .container:has(.purchase-summary-payment-methor) {
    grid-column: 1;
    grid-row: 1;
  }
  body.has-uplift.create-plans .purchase-summary-area > form > .container:has(.purchase-summary):not(:has(.purchase-summary-payment-methor)) {
    grid-column: 2;
    grid-row: 1;
  }
}
/* The totals block sits in a Bootstrap offset column sized for the
   old full-width card; flatten it so it doesn't get crushed in the
   narrower right-hand card, and keep the totals right-aligned. */
body.has-uplift.create-plans .purchase-summary .offset-md-6 {
  flex: 0 0 100%;
  max-width: 100%;
  margin-left: 0;
}
body.has-uplift.create-plans .calculation-area {
  max-width: 300px;
  margin-left: auto;
}
/* Same for the payment tab-content column (col-md-7 offset-md-1) —
   let the saved-card list / Stripe element use the card's width. */
body.has-uplift.create-plans .payment-method-area > .row > [class*="col-"] {
  flex: 0 0 100%;
  max-width: 100%;
  margin-left: 0;
}
/* The legacy markup centers content with col-md-10/xl-8 + offsets
   inside the card; with the 880px container above those offsets
   just waste width, so flatten the OUTER column only (nested rows
   — billing fields, totals — keep their own grid). */
body.has-uplift.create-plans .purchase-summary > .row > [class*="col-"] {
  flex: 0 0 100%;
  max-width: 100%;
  margin-left: 0;
}

/* Cards. */
body.has-uplift.create-plans .purchase-summary {
  background: #fff;
  border: 1px solid var(--mc-line);
  border-radius: 16px;
  box-shadow: var(--mc-shadow-1);
  padding: 22px 26px;
  margin-bottom: 18px;
}
body.has-uplift.create-plans .purchase-summary.purchase-summary-payment-methor {
  padding-bottom: 24px; /* legacy: 100px */
}

/* Section headings — full-width hairline, platform navy. */
body.has-uplift.create-plans .purchase-summary-heading h5 {
  display: block;
  font-size: 16px;
  font-weight: 600;
  color: var(--mc-navy);
  border-bottom: 1px solid var(--mc-line);
  padding: 0 0 10px;
  margin: 0 0 14px;
}
body.has-uplift.create-plans .purchase-summary-form-area h6 {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--mc-mute);
  margin: 0 0 4px;
}

/* Line-item lists — tight rows, soft separators. */
body.has-uplift.create-plans .purchase-summary-form-area ul {
  padding: 0;
  margin: 0;
}
body.has-uplift.create-plans .purchase-summary-form-area ul li {
  align-items: center;
  border-bottom: 1px solid var(--mc-line-2) !important; /* legacy -top rule is !important gray */
  padding: 10px 0;
  margin: 0;
}
body.has-uplift.create-plans .purchase-summary-form-area-top ul li { margin-top: 0; }
body.has-uplift.create-plans .purchase-summary-form-area ul li:last-child { border-bottom: none !important; }
/* The SUBSCRIPTIONS list = the actual items being purchased.
   Render each as an indented line-item row (soft fill + blue
   accent bar) instead of a bare hairline row, so they read as
   the contents of the order rather than page furniture. */
body.has-uplift.create-plans .purchase-summary-form-area-top ul li {
  background: var(--mc-line-2);
  border-left: 3px solid var(--mc-blue);
  border-bottom: none !important;
  border-radius: 8px;
  padding: 10px 14px;
  margin-bottom: 8px;
}
body.has-uplift.create-plans .purchase-summary-form-area-top ul li:last-child { margin-bottom: 4px; }
body.has-uplift.create-plans .purchase-summary-form-area-top ul li p span {
  font-weight: 600;
  color: var(--mc-navy);
}
/* Per-plan discount slot: cart.js fills these spans when a valid
   product-specific promo code applies, which would grow each line
   item and push the promo row (and Apply button) down. Reserve the
   line up front so applying a code never moves anything. */
body.has-uplift.create-plans .purchase-summary-form-area-top ul li .discount_plan_column {
  display: block;
  min-height: 17px;
  font-size: 12.5px;
  font-weight: 600;
}
body.has-uplift.create-plans .purchase-summary-form-area ul li p { margin: 0; font-size: 14px; }
body.has-uplift.create-plans .purchase-summary-form-area ul li span {
  font-size: 14px;
  font-weight: 500;
  color: var(--mc-ink);
}

/* Promo code row. */
body.has-uplift.create-plans .purchase-summary-form-input {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  position: relative;
}
/* Keep the Apply button rock-steady: the "This code is invalid."
   message (cart.js toggles d-block on the input's sibling span)
   would otherwise wrap to a new flex line and grow the row,
   shifting the button down. Overlay it below the input instead so
   showing/hiding it changes nothing in the layout. */
body.has-uplift.create-plans .purchase-summary-form-input .invalid-feedback {
  position: absolute;
  top: 100%;
  left: 0;
  width: auto;
  margin: 3px 0 0;
  white-space: nowrap;
}
body.has-uplift.create-plans .purchase-summary-form-input label.promo-code {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--mc-navy);
}
body.has-uplift.create-plans .purchase-summary-form-input input.promo-code-input {
  margin-left: 0;          /* legacy: 50px */
  height: 38px;
  width: auto;
  max-width: 240px;
  font-size: 13.5px;
  color: var(--mc-ink);
  border: 1px solid var(--mc-line);
  border-radius: 9px;
}
body.has-uplift.create-plans #promo-code-apply,
body.has-uplift.create-plans .purchase-summary-form-area ul li button.button {
  background: var(--mc-navy);
  border: none;
  border-radius: 999px;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  padding: 9px 22px;
  cursor: pointer;
  transition: background 120ms ease, transform 120ms ease;
}
body.has-uplift.create-plans #promo-code-apply:hover,
body.has-uplift.create-plans .purchase-summary-form-area ul li button.button:hover {
  background: var(--mc-navy-deep);
  transform: translateY(-1px);
}

/* Totals block. */
body.has-uplift.create-plans .calculation { display: flex; justify-content: space-between; }
body.has-uplift.create-plans .calculation span {
  font-size: 14px;
  font-weight: 500;
  color: var(--mc-ink);
  margin-bottom: 6px;       /* legacy: 23px */
}
body.has-uplift.create-plans .calculation span.calculation-title {
  width: auto;
  margin-right: 16px;
  font-size: 13px;
  font-weight: 600;
  color: var(--mc-mute);
}
body.has-uplift.create-plans .calculation-all {
  border-top: 1px solid var(--mc-line);
  border-bottom: 1px solid var(--mc-line);
  padding: 10px 0 4px;
}
body.has-uplift.create-plans .calculation-total { padding-top: 10px; }
body.has-uplift.create-plans .calculation-total span {
  font-size: 16px;
  font-weight: 700;
  color: var(--mc-navy);
}
body.has-uplift.create-plans .calculation-total span.calculation-title {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Billing address block — the legacy markup nests the whole form
   inside .purchase-summary-heading; keep the fields breathing
   without the legacy 100px voids. */
body.has-uplift.create-plans .purchase-summary-heading .form-group { margin: 0 0 6px; }
body.has-uplift.create-plans .payment-method-area .form-group label { margin: 0 0 4px; }
body.has-uplift.create-plans .payment-method-area .form-group .row > [class*="col-"] {
  margin-bottom: 10px;
}

/* Checkboxes ("Same As Profile Address", "Auto Renew?") carry
   .form-control in the legacy markup, which the platform-wide
   form-control rule would stretch into a full-width text box. */
body.has-uplift.create-plans input[type="checkbox"].form-control {
  width: 15px;
  height: 15px;
  display: inline-block;
  vertical-align: middle;
  padding: 0;
  margin: 0 8px 0 0;
  box-shadow: none;
  accent-color: var(--mc-blue);
}
/* Legacy format.scss hides native checkboxes and paints its own
   label::before square — with the native input visible again that
   reads as TWO checkboxes. Keep the native one, drop the pseudo. */
body.has-uplift.create-plans input[type="checkbox"].form-control + label::before {
  content: none;
  display: none;
}
body.has-uplift.create-plans label.loadAccountInfo,
body.has-uplift.create-plans label.auto-renew {
  display: inline;
  vertical-align: middle;
  margin: 0;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--mc-navy);
}
body.has-uplift.create-plans p.purchase-summary-text {
  font-size: 12.5px;
  color: var(--mc-mute);
  line-height: 1.45;
  margin: 6px 0 0;
}

/* Payment-method tabs → platform pill tabs. */
body.has-uplift.create-plans .payment_m .nav {
  display: flex;
  gap: 8px;
  padding: 0;
  margin: 2px 0 0;
}
body.has-uplift.create-plans .payment_m .nav-link {
  border: 1px solid var(--mc-line);
  border-radius: 999px;
  background: #fff;
  color: var(--mc-mute);
  font-size: 13px;
  font-weight: 600;
  padding: 7px 18px;
  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;
}
body.has-uplift.create-plans .payment_m .nav-link:hover {
  border-color: var(--mc-blue);
  color: var(--mc-navy);
  text-decoration: none;
}
body.has-uplift.create-plans .payment_m .nav-link.active {
  background: var(--mc-navy);
  border-color: var(--mc-navy);
  color: #fff;
}
body.has-uplift.create-plans .tab-content {
  font-size: 13.5px;
  color: var(--mc-ink);
  line-height: 1.5;
  margin-top: 4px;
}

/* Saved-card picker → bordered selectable rows. */
body.has-uplift.create-plans .payment-method-area ul.card-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 6px 0 12px;       /* legacy ul margin-top: 35px */
  overflow: visible;
}
body.has-uplift.create-plans ul.card-list li {
  background: #fff !important;   /* legacy zebra #f1f1f1/#eee */
  border: 1px solid var(--mc-line);
  border-radius: 10px;
  float: none;
  margin: 0;
  padding: 0;
  width: 100%;
  transition: border-color 120ms ease, background 120ms ease;
}
body.has-uplift.create-plans ul.card-list li:has(input:checked) {
  border-color: var(--mc-blue);
  background: var(--mc-blue-soft) !important;
}
body.has-uplift.create-plans ul.card-list li label {
  display: flex;
  align-items: center;
  padding: 11px 14px;
  margin: 0;
  width: 100%;
  cursor: pointer;
}
/* Legacy draws the radio dot as label::before with odd offsets —
   normalize it into the flex row. */
body.has-uplift.create-plans ul.card-list li input[type="radio"] + label::before {
  position: static;
  top: auto;
  display: inline-block;
  flex: 0 0 16px;
  margin-right: 12px;
  border: 1.5px solid var(--mc-mute-3);
}
body.has-uplift.create-plans ul.card-list li input[type="radio"]:checked + label::before {
  background: var(--mc-blue);
  border-color: var(--mc-blue);
  box-shadow: inset 0 0 0 3px #fff;
}
body.has-uplift.create-plans ul.card-list li .card-details {
  margin: 0;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  font-size: 13.5px;
  color: var(--mc-ink);
}
body.has-uplift.create-plans ul.card-list li .card_type i {
  font-size: 18px;
  color: var(--mc-navy);
}

/* New-card / Stripe element area. */
body.has-uplift.create-plans #card-info p {
  font-size: 13px;
  color: var(--mc-mute);
  margin: 4px 0 8px;
}
body.has-uplift.create-plans #card-holder-name.new-card-element {
  display: block;
  width: 100%;
  max-width: 380px;
  border: 1px solid var(--mc-line);
  border-radius: 9px;
  padding: 9px 13px;
  font-size: 14px;
  font-family: var(--mc-font);
  color: var(--mc-ink);
  margin-bottom: 10px;
}
body.has-uplift.create-plans #card-holder-name.new-card-element:focus {
  border-color: var(--mc-blue);
  box-shadow: 0 0 0 3px rgba(0, 113, 188, 0.15);
  outline: none;
}
body.has-uplift.create-plans #card-element {
  border: 1px solid var(--mc-line);
  border-radius: 9px;
  background: #fff;
  padding: 11px 13px;
  max-width: 480px;
}
body.has-uplift.create-plans #card-number-errors:empty { display: none; }
body.has-uplift.create-plans #card-number-errors {
  border-radius: 9px;
  padding: 8px 12px;
  font-size: 13px;
  margin-bottom: 8px;
}

/* Add Card / Edit Card pages (body.edit_company) — give the Stripe
   card-holder name input + #card-element the same bordered-input look
   as the create-plans checkout, so they read as proper fields inside
   the mc-form-card. */
body.has-uplift.edit_company #card-holder-name.new-card-element {
  display: block;
  width: 100%;
  border: 1px solid var(--mc-line);
  border-radius: 9px;
  padding: 9px 13px;
  font-size: 14px;
  font-family: var(--mc-font);
  color: var(--mc-ink);
}
body.has-uplift.edit_company #card-holder-name.new-card-element:focus {
  border-color: var(--mc-blue);
  box-shadow: 0 0 0 3px rgba(0, 113, 188, 0.15);
  outline: none;
}
body.has-uplift.edit_company #card-element {
  border: 1px solid var(--mc-line);
  border-radius: 9px;
  background: #fff;
  padding: 11px 13px;
}
body.has-uplift.edit_company #card-number-errors:empty { display: none; }

/* ACH details list. */
body.has-uplift.create-plans .nav-ach dl dt {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--mc-mute);
  margin-bottom: 2px;
}
body.has-uplift.create-plans .nav-ach dl dd {
  font-size: 14px;
  font-weight: 600;
  color: var(--mc-ink);
  margin-bottom: 10px;
}

/* Cancel / Submit row — right-aligned platform pills. */
body.has-uplift.create-plans .form_btns {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  margin: 0 0 8px;
}
body.has-uplift.create-plans .form_btns [class*="col-"] {
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
}
body.has-uplift.create-plans .form_btns .form-control {
  width: auto;
  height: auto;
}
body.has-uplift.create-plans .form_btns .btn-cancel {
  background: #fff;
  border: 1px solid var(--mc-line);
  border-radius: 999px;
  color: var(--mc-mute);
  font-size: 14px;
  font-weight: 600;
  padding: 9px 26px;
  margin: 0 !important;
  transition: background 120ms ease, border-color 120ms ease, color 120ms ease,
              transform 120ms ease, box-shadow 120ms ease;
}
/* Mirror the Submit hover (fill + lift + shadow) in a neutral secondary tone.
   The previous hover set color: var(--mc-navy) — an undefined variable — so the
   global app.css rule .btn-cancel:hover{color:#fff!important} won, painting white
   text on the white button (text vanished). Filling with the dark ink makes that
   white text legible, and the explicit !important keeps it robust against app.css. */
body.has-uplift.create-plans .form_btns .btn-cancel:hover {
  background: var(--mc-ink);
  border-color: var(--mc-ink);
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(26, 34, 48, 0.22);
  text-decoration: none;
}
body.has-uplift.create-plans .form_btns .btn-red {
  background: var(--mc-red);
  border: 1px solid var(--mc-red);
  border-radius: 999px;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  padding: 9px 30px;
  margin: 0 !important;
  transition: background 120ms ease, transform 120ms ease, box-shadow 120ms ease;
}
body.has-uplift.create-plans .form_btns .btn-red:hover {
  background: #a3142e;
  border-color: #a3142e;
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(196, 18, 48, 0.28);
}

/* Small screens — keep the compact cards, stack the buttons. */
@media (max-width: 767px) {
  body.has-uplift.create-plans .purchase-summary-area { padding: 8px 16px 32px; }
  body.has-uplift.create-plans .purchase-summary { padding: 16px; }
  body.has-uplift.create-plans .form_btns { flex-direction: column-reverse; }
  body.has-uplift.create-plans .form_btns [class*="col-"] { width: 100%; }
  body.has-uplift.create-plans .form_btns .form-control { width: 100%; }
}

/* ============================================================
   10g. THREATS WORKLIST — match SRA assessment styling.
        company_assessment_threats/index.blade.php now carries
        body classes "worklist questions-pg", so the SRA Frame-2
        shell (10a–10c) and the questions-pg.worklist two-column
        grid (10f) apply to the threats worklist exactly as they
        do to the questions walkthrough and the recommendations
        worklist — same flyout / tabs / section cards / stepper.

        The threats page is the ONE worklist that keeps the legacy
        <fieldset class="risk_impact|risk_likelihood"> markup for
        Impact of Risk / Likelihood / Initial Risk / Current Risk
        (the questions walkthrough wraps these in .mc-sra-field,
        which already overrides the navy collateral; the
        recommendations worklist has no such fieldsets). 10c's
        broad "[class*="impact"] / [class*="likelihood"]" rule would
        otherwise paint those whole fieldsets navy. Re-tame them
        here as clean white SRA cards with a navy legend heading,
        preserving the Impact/Likelihood legacy parity, and give
        the Related-Recommendations tiles the platform card look.
   ============================================================ */

/* Impact / Likelihood / Initial Risk / Current Risk — white cards,
   navy heading bar. Higher specificity than 10c's two-class
   [class*="impact"] selector, and later in the cascade, so it wins. */
body.has-uplift.questions-pg.worklist .threat_form fieldset.risk_impact,
body.has-uplift.questions-pg.worklist .threat_form fieldset.risk_likelihood {
  background: #fff;
  color: var(--mc-navy);
  border: 1px solid var(--mc-line);
  border-radius: 12px;
  padding: 0;
  overflow: hidden;
  box-shadow: 0 6px 16px rgba(11, 59, 94, 0.06);
  font-weight: 400;
  font-size: inherit;
  text-transform: none;
  letter-spacing: normal;
}
body.has-uplift.questions-pg.worklist .threat_form fieldset.risk_impact > legend,
body.has-uplift.questions-pg.worklist .threat_form fieldset.risk_likelihood > legend {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 0;
  padding: 10px 16px;
  background: var(--mc-navy);
  color: #fff;
  font-weight: 700;
  font-size: 12.5px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  width: 100%;
}
/* The info-tooltip button sitting inside the legend stays compact
   and on-tone against the navy bar. */
body.has-uplift.questions-pg.worklist .threat_form fieldset.risk_impact > legend .btn,
body.has-uplift.questions-pg.worklist .threat_form fieldset.risk_likelihood > legend .btn {
  background: rgba(255, 255, 255, 0.16);
  border: none;
  color: #fff;
  border-radius: 999px;
  width: 22px; height: 22px;
  padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px;
  flex: 0 0 auto;
}
/* Card body spacing — keep the legacy content; only inset it. */
body.has-uplift.questions-pg.worklist .threat_form fieldset.risk_impact > .form-group,
body.has-uplift.questions-pg.worklist .threat_form fieldset.risk_likelihood > .form-group {
  margin: 12px 16px 14px;
  height: auto;
}
/* Radio row (unactioned threat) — drop the legacy .form-control box so
   the Low / Medium / High options sit cleanly inside the card. */
body.has-uplift.questions-pg.worklist .threat_form fieldset.risk_impact > .form-group.form-control,
body.has-uplift.questions-pg.worklist .threat_form fieldset.risk_likelihood > .form-group.form-control {
  border: none;
  background: transparent;
  border-radius: 0;
  padding: 4px 0;
}
/* Risk-level chip (an actioned/locked threat shows text, not radios) —
   the legacy .risk-* classes carry the colour + white text, so render
   them as an inline pill instead of a full-width block. Do NOT strip the
   background here, or the white text would become invisible (the bug the
   blanket transparent rule caused). */
body.has-uplift.questions-pg.worklist .threat_form fieldset.risk_impact > .form-group[class*="risk-"],
body.has-uplift.questions-pg.worklist .threat_form fieldset.risk_likelihood > .form-group[class*="risk-"] {
  display: inline-flex;
  width: auto;
  border-radius: 999px;
  padding: 5px 18px;
  font-weight: 700;
}
/* Readable spacing between the Low / Medium / High radio choices. */
body.has-uplift.questions-pg.worklist .threat_form fieldset.risk_impact > .form-group label,
body.has-uplift.questions-pg.worklist .threat_form fieldset.risk_likelihood > .form-group label {
  color: var(--mc-navy);
  font-weight: 600;
}

/* Related Recommendations tiles — platform card look (rounded,
   bordered, soft shadow) consistent with the rest of the uplift. */
body.has-uplift.questions-pg.worklist .threat-associated-recommendation li {
  border: 1px solid var(--mc-line);
  border-radius: 12px;
  box-shadow: 0 6px 16px rgba(11, 59, 94, 0.06);
  background: #fff;
}
body.has-uplift.questions-pg.worklist .threat-associated-recommendation li .btn-primary {
  background: var(--mc-navy);
  border-color: var(--mc-navy);
  border-radius: 9px;
  font-weight: 600;
}

/* Compensating-control summary heading colour to platform navy
   (legacy hard-codes #007DC1 on #threat-title / its h6). */
body.has-uplift.questions-pg.worklist #threat-title,
body.has-uplift.questions-pg.worklist #threat-title h6 {
  color: var(--mc-navy);
}

/* ============================================================
   10h. WORKLIST FRAME-2 — full parity layout (stepper | main | rail).
        Activated ONLY when the page has rendered a .mc-sra-stepper
        (the recommendations worklist; the threats worklist gets the
        same once its stepper is built). Every rule is guarded by
        :has(.mc-sra-stepper) so a worklist still on the legacy flyout
        (10f) is completely untouched. The new .mc-sra-stepper and
        .mc-sra-extra components reuse the SRA walkthrough's own global
        component CSS (the .mc-sra-step and .mc-sra-extra rules are
        unscoped class selectors); only the column grid + body-card below is
        worklist-specific, mirroring 10e's questions-page grid but
        scoped to .company_recc instead of .company_questions.
   ============================================================ */

/* Outer shell: stepper | section, matching .company_questions:has(...). */
body.has-uplift.questions-pg.worklist .company_recc:has(.mc-sra-stepper) {
  display: grid;
  grid-template-columns: var(--mc-stepper-w, 280px) 1fr;
  gap: 0;
  align-items: start;
  background: var(--mc-bg);
  padding: 24px 0 0;
}
body.has-uplift.questions-pg.worklist .company_recc:has(.mc-sra-stepper) > section {
  margin: 0 24px;
  padding: 0 0 32px;
  background: transparent;
  border: 0;
  box-shadow: none;
}
/* Inner row: main | rail. Higher specificity than 10f's two-class
   ".company_recc > section > .row" (the :has() pseudo adds a class),
   so this wins where a stepper exists. */
body.has-uplift.questions-pg.worklist .company_recc:has(.mc-sra-stepper) > section > .row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--mc-extra-w, 300px);
  gap: 24px;
  margin: 0;
  --bs-gutter-x: 0;
  --bs-gutter-y: 0;
  align-items: start;
}
/* When this recommendation has no rail content, main spans full width. */
body.has-uplift.questions-pg.worklist .company_recc:has(.mc-sra-stepper) > section:not(:has(.mc-sra-extra)) > .row {
  grid-template-columns: 1fr;
}
/* Legacy left flyout is replaced by the new stepper — keep it in the
   DOM for the recommendation.js scroll hooks, but don't render it. */
body.has-uplift.questions-pg.worklist .company_recc:has(.mc-sra-stepper) .col-md-4.questions_flyout {
  display: none !important;
}

/* Main column → platform card, matching the walkthrough's question card. */
body.has-uplift.questions-pg.worklist .company_recc:has(.mc-sra-stepper) .col-lg-8.questions {
  background: #fff;
  border: 1px solid var(--mc-line);
  border-radius: 14px;
  padding: 24px 28px 28px;
  box-shadow: 0 6px 16px rgba(11, 59, 94, 0.06);
  min-width: 0;
}
/* Recommendation title block. */
body.has-uplift.questions-pg.worklist .company_recc:has(.mc-sra-stepper) #recommendation-title p {
  font-size: 17px;
  font-weight: 600;
  color: var(--mc-navy);
  line-height: 1.55;
}
/* Section legends (Comments / Evidence / Fields) — the legacy worklist
   paints these as a solid blue bar; restyle as quiet navy headings to
   match the walkthrough's section labels. */
body.has-uplift.questions-pg.worklist .company_recc:has(.mc-sra-stepper) .col-lg-8.questions legend {
  background: transparent !important;
  color: var(--mc-navy) !important;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0 !important;
  margin: 22px 0 12px;
  border: 0 !important;
  width: auto;
}
/* Form controls — design-system rounding. */
body.has-uplift.questions-pg.worklist .company_recc:has(.mc-sra-stepper) .col-lg-8.questions .form-control {
  border-radius: 9px;
}
/* Priority chip — legacy renders the risk level as a full-width red
   block; compress to an inline pill (keeps the legacy risk-* colour). */
body.has-uplift.questions-pg.worklist .company_recc:has(.mc-sra-stepper) .col-lg-8.questions .form-inline > span[class*="risk-"] {
  display: inline-block;
  width: auto !important;
  border-radius: 999px;
  padding: 4px 16px;
  font-weight: 600;
}
/* Comment list — quiet cards instead of the legacy flat list. */
body.has-uplift.questions-pg.worklist .company_recc:has(.mc-sra-stepper) #comment-list dt {
  color: var(--mc-navy);
  font-weight: 600;
  font-size: 13px;
}
/* Prev / Next worklist nav buttons — match the walkthrough's footer. */
body.has-uplift.questions-pg.worklist .company_recc:has(.mc-sra-stepper) .assessment-nav .form-control {
  border-radius: 9px;
  font-weight: 600;
}

/* Narrow viewports — collapse to a single column. */
@media (max-width: 1180px) {
  body.has-uplift.questions-pg.worklist .company_recc:has(.mc-sra-stepper) {
    grid-template-columns: 1fr;
  }
  body.has-uplift.questions-pg.worklist .company_recc:has(.mc-sra-stepper) > section > .row {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   Contact Us (public) — UI Uplift 2026-06-19.
   /contact renders in layouts.app and is reachable signed-out, so it
   never gets body.has-uplift. The new-UI form-card structure classes
   (.mc-form-card/.mc-form-field/.mc-form-actions) are global, but the
   form-control + button polish is gated on body.has-uplift. These rules
   re-apply that polish scoped to body.contact_us so the page looks like
   the rest of the new UI whether the visitor is signed in or not. Values
   intentionally mirror the body.has-uplift .form-control/.btn-primary
   rules so the signed-in view stays consistent.
   ============================================================ */
body.contact_us .mc-contact-wrap {
  max-width: 1040px;
  margin: 32px auto 56px;
  padding: 0 20px;
}
body.contact_us .mc-contact-head { padding: 0 4px 10px; }
body.contact_us .mc-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 24px;
  align-items: start;
}
@media (max-width: 860px) {
  body.contact_us .mc-contact-grid { grid-template-columns: 1fr; }
}

/* Re-apply new-UI form controls for the signed-out state (matches the
   body.has-uplift .form-control rules). */
body.contact_us .form-control,
body.contact_us textarea.form-control {
  border-radius: 9px;
  border: 1px solid var(--mc-line);
  font-family: inherit;
  font-size: 14px;
  background: white;
  color: var(--mc-ink);
  padding: 9px 13px;
  box-shadow: none;
}
body.contact_us .form-control:focus,
body.contact_us textarea.form-control:focus {
  border-color: var(--mc-blue);
  box-shadow: 0 0 0 3px rgba(0, 113, 188, 0.15);
  outline: none;
}
body.contact_us textarea.form-control { min-height: 130px; resize: vertical; }
body.contact_us .form-control.is-invalid { border-color: var(--mc-red); }

/* Submit button — new-UI red pill, even without has-uplift. */
body.contact_us .mc-form-actions .btn-primary {
  background: var(--mc-red);
  border-color: var(--mc-red);
  color: white;
  border-radius: 999px;
  padding: 9px 28px;
  font-weight: 600;
  font-size: 14px;
  box-shadow: 0 6px 14px rgba(196, 18, 48, 0.20);
  transition: background 0.15s ease, box-shadow 0.15s ease;
}
body.contact_us .mc-form-actions .btn-primary:hover {
  background: #a30f28;
  border-color: #a30f28;
  color: white;
  box-shadow: 0 10px 22px rgba(196, 18, 48, 0.28);
}
body.contact_us .mc-contact-actions { align-items: center; }
body.contact_us .mc-form-req-note {
  /* margin-right:auto keeps the note left + pushes Submit right within the
     flex row; padding-left:4px lines its left edge up with the page-sub
     ("We would love to answer...") text, which is inset 4px by
     .mc-contact-head's `padding: 0 4px 10px`. */
  margin: 0 auto 0 0;
  padding-left: 4px;
  font-size: 12.5px;
  color: var(--mc-mute);
}
/* The inline "*" in the note matches the required-field asterisks (.req). */
body.contact_us .mc-form-req-note .req { color: var(--mc-red); }

/* Checkbox row. The global app.css rule `input[type=checkbox]
   { display:none }` hides every native checkbox and expects a sibling
   `+ label:before` to paint a replacement box. Here the input lives
   INSIDE its label (sibling is a <span>), so no replacement is drawn.
   Rather than fall back to the OS-native control, draw a custom new-UI
   checkbox: a rounded box that fills new-UI blue when checked, with a
   crisp white SVG checkmark — matching the card/button styling elsewhere
   in the uplift. appearance:none lets us own the rendering; display is
   re-shown over the global display:none. */
body.contact_us .mc-form-checkbox { align-items: flex-start; line-height: 1.5; gap: 10px; }
body.contact_us .mc-form-checkbox input[type="checkbox"] {
  display: inline-block;
  -webkit-appearance: none;
  appearance: none;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 1px 0 0;
  padding: 0;
  border: 1.5px solid var(--mc-line);
  border-radius: 5px;
  background: #fff;
  box-shadow: none;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
body.contact_us .mc-form-checkbox input[type="checkbox"]:hover {
  border-color: var(--mc-blue);
}
body.contact_us .mc-form-checkbox input[type="checkbox"]:checked {
  background-color: var(--mc-blue);
  border-color: var(--mc-blue);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 12px 12px;
}
body.contact_us .mc-form-checkbox input[type="checkbox"]:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(0, 113, 188, 0.22);
}
/* Belt-and-suspenders: if any sibling-label pseudo box ever matches,
   suppress it so the row never shows a doubled checkbox. */
body.contact_us .mc-form-checkbox input[type="checkbox"] + span::before { content: none; }
body.contact_us .mc-form-checkbox > span { font-size: 14px; color: var(--mc-ink); }

/* Contact-info aside card (non-collapsible). */
body.contact_us .mc-contact-aside .mc-form-card-head { cursor: default; }
body.contact_us .mc-contact-aside .mc-form-card-head:hover { background: white; }
body.contact_us .mc-contact-info-item { margin-bottom: 18px; }
body.contact_us .mc-contact-info-item:last-child { margin-bottom: 0; }
body.contact_us .mc-contact-info-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--mc-mute-2);
  margin-bottom: 6px;
}
body.contact_us .mc-contact-info-item a,
body.contact_us .mc-contact-info-item p {
  font-size: 14px;
  color: var(--mc-ink);
  margin: 0;
  line-height: 1.55;
}
body.contact_us .mc-contact-info-item a { color: var(--mc-blue); font-weight: 600; text-decoration: none; }
body.contact_us .mc-contact-info-item a:hover { text-decoration: underline; }


/* UI-refit fix: SRA walkthrough Previous/Next nav buttons were collapsing
   to a sliver ("Pr") as flex items. Size them to their content. */
.assessment-nav .prev_q,
.assessment-nav .next_q {
  width: auto;
  flex: 0 0 auto;
  white-space: nowrap;
  min-width: max-content;
}


/* ===== post-merge heading-color survival fixes (2026-06-23) =====
   The platform-wide `body.has-uplift .mc-content h2/h3 { color: navy }` rule
   forces every module heading navy; restore the few that need other colors so
   they "survive the shell" (posture card heading on its blue gradient; the SRA
   bright-blue tab captions). */
body.has-uplift .mc-content .mc-tab-title { color: #0B3B5E !important; }
body.has-uplift .mc-content .em-summary-card h2,
body.has-uplift .mc-content .em-summary-card h3 { color: #0B3B5E !important; } /* light-restyled banner 2026-06-25: navy heading, was forced #fff for the old dark gradient */

/* Partner co-brand lockup (sidebar footer, white-labeled tenants) — Partner Branding Restore */
.mc-cobrand{display:flex;align-items:center;gap:8px;padding:10px 14px;margin:0 8px 4px;border-top:1px solid rgba(20,40,70,.08);}
.mc-cobrand-img{height:22px;width:auto;max-width:96px;object-fit:contain;border-radius:3px;flex:0 0 auto;}
.mc-cobrand-txt{display:flex;flex-direction:column;line-height:1.18;min-width:0;}
.mc-cobrand-by{font-size:11px;font-weight:600;color:var(--mc-navy,#1a2b40);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mc-cobrand-pow{font-size:10px;color:var(--mc-muted,#8a97a8);}
.mc-shell.is-collapsed .mc-cobrand-txt{display:none;}
.mc-shell.is-collapsed .mc-cobrand{justify-content:center;padding:8px 4px;}

/* Walkthrough-mode (PWA) launch mic on the SRA Walkthrough tile (global admins only) */
.mc-sra-section{position:relative;}
.mc-sra-walkthrough-mic{display:inline-flex;align-items:center;transition:color .12s;}
.mc-sra-walkthrough-mic:hover{color:var(--mc-blue,#0071BC);}

/* Round 2: the only #4285F4 in the rendered dashboard came from the
   Google-Translate gadget spinner (class VIpgJd-*), not our gauge.
   Recolor its stroke so no off-palette blue renders. */
circle[class^="VIpgJd"], circle[class*=" VIpgJd"] { stroke: var(--mc-navy) !important; }

/* Compact "policy module not enabled" notice on SRA questions so it
   does not crowd the Evidence header below it. */
body.has-uplift .mc-assoc-notice { margin-bottom: 10px; }
body.has-uplift .mc-assoc-notice legend { font-size: 12px; margin-bottom: 4px; }
body.has-uplift .mc-assoc-notice p { font-size: 11.5px; line-height: 1.45; color: var(--mc-mute); margin: 0; }

/* ── Operator omnibox chat ────────────────────────────────────────────
   Conversation anchored to the BOTTOM of the dropdown; quick-reply chips
   and the composer stay pinned below. */
body.has-uplift .mc-search-results.is-op-chat { padding: 0; overflow: hidden; max-height: none; }
.mc-op-chat { display: flex; flex-direction: column; height: min(64vh, 460px); }
.mc-op-thread {
  flex: 1 1 auto; min-height: 0; overflow-y: auto;
  display: flex; flex-direction: column; justify-content: flex-end;
  gap: 9px; padding: 12px;
}
.mc-op-msg { max-width: 88%; padding: 9px 12px; border-radius: 14px; font-size: 13px; line-height: 1.5; word-wrap: break-word; }
.mc-op-msg.user { align-self: flex-end; background: var(--mc-navy); color: #fff; border-bottom-right-radius: 4px; }
.mc-op-msg.bot  { align-self: flex-start; background: #f1f5f9; color: var(--mc-ink); border-bottom-left-radius: 4px; }
.mc-op-msg.bot strong { color: var(--mc-navy); }
.mc-op-msg.bot code { background: rgba(11,59,94,0.08); border-radius: 4px; padding: 1px 4px; font-size: 12px; }
.mc-op-msg.bot .mc-op-ul { margin: 6px 0; padding-left: 18px; }
.mc-op-loading { color: var(--mc-mute); font-style: italic; }
.mc-op-confirm {
  display: block; width: 100%; text-align: left; margin-top: 8px;
  border: 1px solid var(--mc-navy); background: #fff; color: var(--mc-navy);
  border-radius: 8px; padding: 7px 11px; font-size: 12.5px; font-weight: 600; cursor: pointer;
}
.mc-op-confirm:hover { background: var(--mc-navy); color: #fff; }
.mc-op-confirm.is-done { background: var(--mc-green); border-color: var(--mc-green); color: #fff; }
.mc-op-foot { border-top: 1px solid var(--mc-line); padding: 10px 12px; background: #fff; }
.mc-op-quickreplies { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 9px; }
.mc-op-chip {
  border: 1px solid var(--mc-navy); color: var(--mc-navy); background: #fff;
  border-radius: 999px; padding: 5px 12px; font-size: 12px; font-weight: 600; cursor: pointer;
}
.mc-op-chip:hover { background: var(--mc-navy); color: #fff; }
.mc-op-composer { display: flex; gap: 8px; align-items: flex-end; }
.mc-op-input {
  flex: 1 1 auto; border: 1px solid var(--mc-line); border-radius: 10px;
  padding: 8px 12px; font-size: 13px; line-height: 1.4; resize: none; max-height: 90px;
  font-family: inherit; color: var(--mc-ink);
}
.mc-op-input:focus { outline: none; border-color: var(--mc-navy); }
.mc-op-send {
  flex: 0 0 auto; background: var(--mc-navy); color: #fff; border: none;
  border-radius: 10px; padding: 9px 16px; font-size: 13px; font-weight: 600; cursor: pointer;
}
.mc-op-send:hover { background: var(--mc-navy-deep); }
.mc-op-fulllink { display: inline-block; margin-top: 8px; font-size: 12px; font-weight: 600; color: var(--mc-navy); text-decoration: none; }
.mc-op-fulllink:hover { text-decoration: underline; }
/* ── Legacy-form modernization (round 3) ──────────────────────────────────
   The uplift previously tamed the legacy blue <legend> bars and the blue
   policy/BAA navigator ONLY on the SRA questions page (.questions-pg). These
   broaden the same clean treatment to the policy/BAA wizards and any other
   legacy form. The page-specific overrides remain more specific and win
   where they apply; sr-only legends are excluded. */
body.has-uplift legend:not(.sr-only) {
  display: block; float: none; width: 100%;
  background: transparent !important;
  color: var(--mc-navy);
  font-size: 13px; font-weight: 700; letter-spacing: 0.01em;
  text-transform: none; text-shadow: none;
  margin: 0 0 12px; padding: 0 0 8px;
  border: none; border-bottom: 1px solid var(--mc-line);
  border-radius: 0; box-shadow: none;
}

/* Policy / BAA form-wizard navigator (left column): drop the blue company
   header and the blue policy-card headers; use clean uplift cards. */
body.has-uplift .policy-form-navigator,
body.has-uplift .baa-form-navigator { background: transparent; }
body.has-uplift .policy-form-navigator > h3,
body.has-uplift .baa-form-navigator > h3 {
  background: transparent !important; color: var(--mc-navy) !important;
  font-size: 18px; font-weight: 800; letter-spacing: -0.01em;
  padding: 0 0 10px; margin: 0 0 8px; border: none; box-shadow: none;
}
body.has-uplift .policy-form-navigator .card,
body.has-uplift .baa-form-navigator .card {
  border: 1px solid var(--mc-line); border-radius: 12px;
  box-shadow: 0 1px 2px rgba(11,59,94,0.04); overflow: hidden;
  margin-bottom: 10px; background: white;
}
body.has-uplift .policy-form-navigator .section_header,
body.has-uplift .policy-form-navigator .card-header,
body.has-uplift .baa-form-navigator .section_header,
body.has-uplift .baa-form-navigator .card-header {
  background: white !important; border: none !important; padding: 0 !important;
}
body.has-uplift .policy-form-navigator .card-header .btn-link,
body.has-uplift .baa-form-navigator .card-header .btn-link {
  color: var(--mc-navy) !important; font-weight: 700; padding: 12px 14px !important;
  text-decoration: none;
}
body.has-uplift .policy-form-navigator .card-header .btn-link:hover,
body.has-uplift .baa-form-navigator .card-header .btn-link:hover {
  background: var(--mc-line-2); color: var(--mc-navy) !important;
}
/* Vue wizard tooltip popper off the legacy #0090df blue. */
body.has-uplift .policy-form .popper,
body.has-uplift .baa-form .popper { background: var(--mc-navy) !important; }
/* ── Worklist / recommendations page (.company_recc) uplift polish ─────────── */
[v-cloak] { display: none !important; }
body.has-uplift .company_recc { color: var(--mc-ink); }
/* Left column: company-name header */
body.has-uplift .company_recc .questions_flyout > h3 {
  font-size: 18px; font-weight: 800; color: var(--mc-navy);
  background: transparent !important; padding: 0 0 10px; margin: 0 0 10px; border: none;
}
/* Open / Closed -> clean pill toggle */
body.has-uplift .company_recc #nav-tab {
  background: var(--mc-line-2); border-radius: 10px; padding: 3px; gap: 3px; margin-bottom: 12px;
}
body.has-uplift .company_recc #nav-tab .nav-link {
  border: none !important; border-radius: 8px; color: var(--mc-mute);
  font-weight: 700; font-size: 13px; padding: 8px 0;
}
body.has-uplift .company_recc #nav-tab .nav-link.active {
  background: white; color: var(--mc-navy); box-shadow: 0 1px 2px rgba(11,59,94,0.08);
}
/* Section accordion cards */
body.has-uplift .company_recc .section_header {
  border: 1px solid var(--mc-line) !important; border-radius: 10px !important;
  background: white !important; box-shadow: 0 1px 2px rgba(11,59,94,0.04);
}
body.has-uplift .company_recc .section_header .btn-link {
  color: var(--mc-navy) !important; font-weight: 700 !important; text-decoration: none; padding: 12px 14px;
}
body.has-uplift .company_recc .list-group-item { border-color: var(--mc-line); }
body.has-uplift .company_recc .list-group-item.active,
body.has-uplift .company_recc .list-group-item:hover { background: var(--mc-blue-soft); }
/* Detail panel as a clean card */
body.has-uplift .company_recc .recommendation_form {
  background: white; border: 1px solid var(--mc-line); border-radius: 16px;
  box-shadow: 0 1px 2px rgba(11,59,94,0.04); padding: 22px 26px;
}
/* Comments */
body.has-uplift .company_recc .comment-list-wrapper dl > div {
  border-bottom: 1px solid var(--mc-line); padding: 10px 0;
}
body.has-uplift .company_recc .comment-list-wrapper dt { font-size: 12px; font-weight: 700; color: var(--mc-mute); }
body.has-uplift .company_recc .comment-list-wrapper dd { margin: 4px 0 0; color: var(--mc-ink); }
body.has-uplift .company_recc .comment-lock-message {
  color: var(--mc-mute); font-style: italic; background: var(--mc-line-2);
  border-radius: 8px; padding: 10px 12px;
}
/* Evidence items */
body.has-uplift .company_recc .evidence-item {
  border: 1px solid var(--mc-line); border-radius: 10px; padding: 10px 12px; margin-bottom: 8px; background: white;
}
/* Dashboard: drop the admin-header title + company name (the hero greeting
   already carries them) and collapse the space above the hero to a small buffer. */
body.has-uplift.dashboard .admin-header h3,
body.has-uplift.dashboard .admin-header h4 { display: none !important; }
body.has-uplift.dashboard .admin-header-area { padding-top: 10px !important; padding-bottom: 0 !important; min-height: 0 !important; }
body.has-uplift.dashboard .admin-header { padding-top: 0 !important; padding-bottom: 0 !important; min-height: 0 !important; }
body.has-uplift.dashboard .admin-header .row { margin-top: 0 !important; }

/* SRA associated-policy sub-headings: render as compact eyebrow labels, not
   oversized headings, to fit the question-card type scale (2026-06-25). */
body.has-uplift .associated_policy h5 {
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--mc-navy) !important;
  margin: 16px 0 8px !important;
}


/* SRA associated-policy checkboxes: long policy names wrap instead of truncating;
   single clean column with checkbox + label aligned. (2026-06-25) */
body.has-uplift.questions-pg .associated-policies { column-count: 1 !important; columns: 1 !important; }
body.has-uplift.questions-pg .associated-policy { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 6px; break-inside: avoid; }
body.has-uplift.questions-pg .associated-policy label { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; word-break: break-word; max-width: none !important; margin: 0; }
/* ============================================================
   E2E-batch2 FIX 4 — uplift topbar user menu / Sign out popover.
   Append to public/css/uplift-2026.css (source), or load on the
   dashboard. Reuses the existing --mc-* custom properties so it
   matches the topbar's glass/navy language. The menu functions
   without this CSS (plain absolutely-positioned markup); this
   just makes it look right.
   ============================================================ */

.mc-topbar-user {
    position: relative;
    display: inline-flex;
    align-items: center;
    margin-left: 8px;
}

.mc-topbar-user-btn {
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
    line-height: 0;
}

.mc-topbar-user-av {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--mc-navy, #1f2a44);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
    border: 2px solid rgba(255, 255, 255, .65);
}

.mc-topbar-user-btn:hover .mc-topbar-user-av,
.mc-topbar-user-btn:focus-visible .mc-topbar-user-av {
    box-shadow: 0 0 0 2px rgba(31, 42, 68, .25);
}

.mc-topbar-user-pop {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 200px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: 10px;
    box-shadow: 0 12px 32px rgba(15, 23, 42, .16);
    padding: 6px;
    z-index: 1200;
}

.mc-topbar-user-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    border-radius: 7px;
    color: var(--mc-navy, #1f2a44);
    font-size: 14px;
    text-decoration: none;
    white-space: nowrap;
}

.mc-topbar-user-item:hover,
.mc-topbar-user-item:focus-visible {
    background: rgba(31, 42, 68, .06);
    color: var(--mc-navy, #1f2a44);
    text-decoration: none;
}

.mc-topbar-user-item i {
    color: #6c757d;
}

.mc-topbar-user-sep {
    height: 1px;
    margin: 6px 4px;
    background: rgba(0, 0, 0, .07);
}
/* ============================================================
   /register — "sales register" two-column layout (PLAN_register-
   sales-page-restore_2026-06-24.md). Scoped to body.mc-auth-register
   so it ONLY affects the registration page; /login and the other
   auth screens keep the centered 440px card untouched.

   The form is the hero (left, stacks first on mobile); the sales
   rail (value prop + testimonials + transparent pricing) sits to
   the right and drops below the form on narrow screens via source
   order, so a decided buyer just signs up. Re-dressed in the uplift
   tokens (navy, crimson accent, ink, mute, line, cream) — quote cards
   are soft-shadow tint with NO edge stripes, pricing is a clean
   summary rather than the old bootstrap accordions.
   ============================================================ */

/* Widen the auth card from the centered 440px to a two-column canvas. */
body.mc-auth-register .mc-auth-card {
  max-width: 980px;
  padding: 34px 34px 30px;
}

.mc-reg-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 38px;
  align-items: start;
}

/* Form column keeps the existing auth field rhythm. */
.mc-reg-form-col .mc-form-field { margin-bottom: 16px; }
.mc-reg-form-col .mc-auth-title { margin-top: 0; }

/* The submit button stays full-width within its column (mc-auth-submit
   is display:block;width:100% globally — the narrower column keeps it
   from spanning the whole page). */

/* Field note + checkbox rows — these classes are already used by the
   shipped register view but were never styled; give them clean,
   on-token defaults here (scoped, so no global side effects). */
body.mc-auth-register .mc-form-note {
  display: block; margin-top: 6px;
  font-size: 12px; color: var(--mc-mute); line-height: 1.5;
}
body.mc-auth-register .mc-form-note a { color: var(--mc-blue); font-weight: 600; }
body.mc-auth-register .mc-form-check { margin-bottom: 12px; }
body.mc-auth-register .mc-form-check label {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: 13.5px; color: var(--mc-ink); line-height: 1.45; cursor: pointer; margin: 0;
}
body.mc-auth-register .mc-form-check input[type="checkbox"] {
  margin-top: 2px; width: 16px; height: 16px; flex: 0 0 auto;
}
body.mc-auth-register .mc-form-check a { color: var(--mc-blue); font-weight: 600; }

/* ---------- Sales rail ---------- */
.mc-reg-rail {
  background: var(--mc-cream-soft);
  border: 1px solid var(--mc-line);
  border-radius: 14px;
  padding: 24px 24px 22px;
}
.mc-reg-rail-title {
  font-size: 18px; font-weight: 700; color: var(--mc-navy);
  letter-spacing: -0.01em; line-height: 1.3; margin: 0 0 14px;
}
.mc-reg-bullets {
  list-style: none; padding: 0; margin: 0 0 20px;
}
.mc-reg-bullets li {
  position: relative; padding-left: 26px; margin-bottom: 12px;
  font-size: 14px; color: var(--mc-ink); line-height: 1.5;
}
.mc-reg-bullets li:last-child { margin-bottom: 0; }
.mc-reg-bullets li::before {
  content: "\2713"; /* ✓ */
  position: absolute; left: 0; top: 0;
  color: var(--mc-navy); font-weight: 700;
}

.mc-reg-rating {
  display: flex; align-items: baseline; gap: 12px;
  margin: 0 0 20px; padding: 0 0 18px;
  border-bottom: 1px solid var(--mc-line);
}
.mc-reg-rating-score {
  font-size: 36px; font-weight: 700; color: var(--mc-navy); line-height: 1;
}
.mc-reg-rating-denom { font-size: 16px; font-weight: 600; }
.mc-reg-rating-label {
  font-size: 12.5px; color: var(--mc-mute); line-height: 1.35;
}

/* Quote cards — subtle tint + soft shadow, NO edge stripes. */
.mc-reg-quote {
  margin: 0 0 14px; padding: 16px 18px;
  background: #fff; border: 1px solid var(--mc-line); border-radius: 12px;
  box-shadow: 0 2px 10px rgba(11, 59, 94, 0.05);
}
.mc-reg-quote:last-of-type { margin-bottom: 0; }
.mc-reg-quote blockquote {
  margin: 0; padding: 0; border: 0;
  font-size: 14px; font-style: italic; color: var(--mc-ink); line-height: 1.55;
}
.mc-reg-quote figcaption {
  margin-top: 12px; display: flex; flex-direction: column; gap: 2px;
}
.mc-reg-quote-name { font-size: 12.5px; font-weight: 700; color: var(--mc-navy); line-height: 1.35; }
.mc-reg-quote-org  { font-size: 12px; color: var(--mc-mute); line-height: 1.35; }

/* ---------- Pricing summary ---------- */
.mc-reg-pricing {
  margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--mc-line);
}
.mc-reg-pricing-title {
  font-size: 15px; font-weight: 700; color: var(--mc-navy); margin: 0 0 4px;
}
.mc-reg-pricing-note { font-size: 12.5px; color: var(--mc-mute); margin: 0 0 14px; line-height: 1.45; }

.mc-reg-price-block { margin-bottom: 16px; }
.mc-reg-price-block:last-of-type { margin-bottom: 0; }
.mc-reg-price-head {
  font-size: 13px; font-weight: 700; color: var(--mc-ink);
  margin-bottom: 6px;
}
.mc-reg-price-table { width: 100%; border-collapse: collapse; }
.mc-reg-price-table td {
  padding: 5px 0; font-size: 13px; color: var(--mc-mute);
  border-bottom: 1px solid var(--mc-line); vertical-align: top;
}
.mc-reg-price-table tr:last-child td { border-bottom: 0; }
.mc-reg-price-amt {
  text-align: right; color: var(--mc-ink); font-weight: 600; white-space: nowrap;
}
.mc-reg-price-fine {
  margin: 8px 0 0; font-size: 11.5px; font-style: italic; color: var(--mc-mute); line-height: 1.45;
}

/* Personalization: when an Org Type is selected, non-matching edition
   blocks collapse to a quiet "muted" state until "See all" expands them.
   With no type chosen (or JS off), everything shows by default. */
.mc-reg-price-block.is-muted { display: none; }
.mc-reg-pricing.is-expanded .mc-reg-price-block.is-muted { display: block; opacity: 0.85; }

.mc-reg-see-all {
  display: inline-block; margin-top: 14px;
  font-size: 13px; font-weight: 600; color: var(--mc-blue);
}
.mc-reg-see-all:hover { text-decoration: underline; }

.mc-reg-rail-help {
  margin: 18px 0 0; font-size: 12.5px; color: var(--mc-mute); line-height: 1.45;
}
.mc-reg-rail-help a { color: var(--mc-blue); font-weight: 600; }

/* ---------- Responsive: stack form first, rail below ---------- */
@media (max-width: 820px) {
  body.mc-auth-register .mc-auth-card { max-width: 480px; }
  .mc-reg-grid { grid-template-columns: 1fr; gap: 28px; }
}
/* register-page-fixes 2026-06-24 — APPEND to public/css/uplift-2026.css.
   Anchor: paste this block inside the `body.mc-auth-register` register-page
   scope, immediately AFTER the `.mc-reg-form-col .mc-auth-title { margin-top: 0; }`
   rule (currently ~line 9360) and BEFORE the `.mc-form-note` block. Scoped to
   the register body class so it cannot leak into /login or other auth screens.

   Only ONE new class is introduced: .mc-reg-dup-reminder (the restored
   duplicate-organization reminder). Everything else the view needs
   (.mc-form-check, .mc-reg-pricing, etc.) is already styled on origin/dev.
   The terms-line fix is markup-only (single text span inside the flex label)
   and needs no CSS. The "See all size bands" removal needs no CSS change;
   .mc-reg-see-all / .is-expanded / .is-muted rules are simply left unused. */

body.mc-auth-register .mc-reg-dup-reminder {
  margin: 0 0 22px;
  padding: 12px 14px;
  background: var(--mc-surface-2, #F4F7FB);
  border: 1px solid var(--mc-border, #E2E8F0);
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.55;
  color: #5A6B80; /* secondary text per spec */
}

/* ── E2E batch3 fixes ───────────────────────────────────────────── */
/* F10: keep the Ask Meddy composer above any in-content overlay so the Send
   button is always clickable (the empty transcript/proposals layers and the
   shell were intercepting the click in automated/edge cases). Scoped to the
   composer; does NOT exceed the sidebar layer. */
.mc-coach__ask { position: relative; z-index: 6; }
.mc-coach__transcript, .mc-coach__proposals { position: relative; z-index: 1; }
.mc-coach__send, .mc-coach__input, .mc-coach__attach { position: relative; z-index: 7; pointer-events: auto; }

/* F11: make the company-profile specialty checkboxes real, hittable controls
   (they had Bootstrap .form-control, which forced block/full-width and made the
   raw input awkward to click). */
.specialty-selector { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 4px 0; }
.specialty-selector input.specialty-checkbox {
  -webkit-appearance: checkbox; appearance: checkbox;
  width: 18px; height: 18px; min-height: 0; margin: 0; flex: 0 0 auto; cursor: pointer; box-shadow: none; padding: 0;
}
.specialty-selector label.specialty-label { margin: 0; cursor: pointer; font-weight: 500; }
