/* /App.razor.rz.scp.css */
/* Auth gate styles now live in MainLayout.razor.css as the loading curtain */
/* /Layout/AuthLayout.razor.rz.scp.css */
/* Branded, chromeless backdrop for the sign-in page. Mirrors the unauthenticated
   look the authenticated shell used to render (MainLayout's NotAuthorized branch),
   but as its own layout so the staff login is never coupled to the authed shell.
   The crm-float-orb / crm-slide-up keyframes live in app.css (global). */

.auth-stage[b-m7ddt990bl] {
    position: relative;
    background: linear-gradient(170deg, var(--crm-navy) 0%, var(--crm-navy-dark, #091A36) 100%);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow: clip;
    padding: 2.5rem 1rem;
}

/* Dot-grid texture matching the sidebar + loading curtain */
.auth-stage[b-m7ddt990bl]::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
    background-size: 18px 18px;
    pointer-events: none;
    z-index: 0;
}

/* Centred branding header above the card */
.auth-brand-header[b-m7ddt990bl] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.5rem 1rem 0;
    gap: 0.6rem;
    position: relative;
    z-index: 1;
    animation: crm-slide-up 0.5s var(--crm-ease) both;
}

.auth-brand-logo[b-m7ddt990bl] {
    height: 52px;
    object-fit: contain;
    filter: drop-shadow(0 0 12px var(--crm-teal-glow));
}

.auth-brand-name[b-m7ddt990bl] {
    font-family: 'Instrument Serif', serif;
    font-size: 1.75rem;
    font-weight: 400;
    color: #fff;
    letter-spacing: -0.01em;
}

/* The login card (@Body) sits above the dot-grid + orbs */
.auth-content[b-m7ddt990bl] {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    width: 100%;
    padding-top: 1rem;
}

/* Ambient floating orbs */
.auth-orb[b-m7ddt990bl] {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
    filter: blur(80px);
    opacity: 0.35;
    will-change: transform;
}

.auth-orb-1[b-m7ddt990bl] {
    width: 400px;
    height: 400px;
    top: 5%;
    left: 5%;
    background: var(--crm-teal);
    animation: crm-float-orb 20s ease-in-out infinite;
}

.auth-orb-2[b-m7ddt990bl] {
    width: 350px;
    height: 350px;
    bottom: 5%;
    right: 5%;
    background: var(--crm-navy-400);
    animation: crm-float-orb 25s ease-in-out infinite reverse;
}

.auth-orb-3[b-m7ddt990bl] {
    width: 250px;
    height: 250px;
    top: 35%;
    left: 55%;
    background: var(--crm-teal-600);
    animation: crm-float-orb 18s ease-in-out infinite 5s;
}
/* /Layout/MainLayout.razor.rz.scp.css */
/* ─────────────────────────────────────────────────────────
   Page Shell
   ───────────────────────────────────────────────────────── */

.page[b-1z36pzjo1c] {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: var(--crm-bg);
}

main[b-1z36pzjo1c] {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
}

/* ─────────────────────────────────────────────────────────
   Sidebar
   ───────────────────────────────────────────────────────── */

.sidebar[b-1z36pzjo1c] {
  background: linear-gradient(170deg, var(--crm-navy) 0%, var(--crm-navy-dark, #091A36) 100%);
  position: relative;
  flex-shrink: 0;
}

/* Micro dot-grid texture — adds depth without noise */
.sidebar[b-1z36pzjo1c]::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,0.045) 1px, transparent 1px);
  background-size: 18px 18px;
  pointer-events: none;
  z-index: 0;
}

/* ─────────────────────────────────────────────────────────
   Top Bar
   ───────────────────────────────────────────────────────── */

.top-row[b-1z36pzjo1c] {
  background: var(--crm-white);
  border-bottom: 1px solid var(--crm-border);
  justify-content: flex-end;
  height: 58px;
  display: flex;
  align-items: center;
  padding: 0 1.75rem !important;
  position: sticky;
  top: 0;
  z-index: 20;
  box-shadow: 0 1px 4px rgba(13,36,71,0.04);
}

/* ─────────────────────────────────────────────────────────
   Alpha Environment Banner
   ───────────────────────────────────────────────────────── */

.alpha-banner[b-1z36pzjo1c] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.3rem 1rem;
  background: linear-gradient(90deg, #F59E0B, #D97706);
  color: #78350F;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.4;
  position: sticky;
  top: 58px;
  z-index: 19;
  text-align: center;
}

.alpha-banner-badge[b-1z36pzjo1c] {
  display: inline-block;
  background: rgba(120, 53, 15, 0.18);
  color: #78350F;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.1rem 0.5rem;
  border-radius: 9999px;
  line-height: 1.4;
}

/* ─────────────────────────────────────────────────────────
   Content Area
   ───────────────────────────────────────────────────────── */

article.content[b-1z36pzjo1c] {
  flex: 1;
  padding: 2rem 2.25rem !important;
}

/* ─────────────────────────────────────────────────────────
   Unauthenticated layout — full-bleed branded background
   ───────────────────────────────────────────────────────── */

main.main-unauth[b-1z36pzjo1c] {
  position: relative;
  background: linear-gradient(170deg, var(--crm-navy) 0%, var(--crm-navy-dark, #091A36) 100%);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: clip;
  padding: 2.5rem 1rem;
}

/* Same dot-grid texture as the sidebar */
main.main-unauth[b-1z36pzjo1c]::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,0.045) 1px, transparent 1px);
  background-size: 18px 18px;
  pointer-events: none;
  z-index: 0;
}

/* Elevate content above dot-grid and orbs */
.auth-brand-header[b-1z36pzjo1c],
main.main-unauth[b-1z36pzjo1c]  article.content {
  position: relative;
  z-index: 1;
}

/* Let article size to its content so the brand header + card center as one group */
main.main-unauth article.content[b-1z36pzjo1c] {
  flex: 0 0 auto;
  padding-top: 1rem !important;
}

/* ─────────────────────────────────────────────────────────
   Unauthenticated — centred branding header
   ───────────────────────────────────────────────────────── */

.auth-brand-header[b-1z36pzjo1c] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.5rem 1rem 0;
  gap: 0.6rem;
  animation: crm-slide-up 0.5s var(--crm-ease) both;
}

.auth-brand-logo[b-1z36pzjo1c] {
  height: 52px;
  object-fit: contain;
  filter: drop-shadow(0 0 12px var(--crm-teal-glow));
}

.auth-brand-name[b-1z36pzjo1c] {
  font-family: 'Instrument Serif', serif;
  font-size: 1.75rem;
  font-weight: 400;
  color: #fff;
  letter-spacing: -0.01em;
}

/* ─────────────────────────────────────────────────────────
   Ambient Orbs — floating gradient blurs on login bg
   ───────────────────────────────────────────────────────── */

.auth-orb[b-1z36pzjo1c] {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
  filter: blur(80px);
  opacity: 0.35;
  will-change: transform;
}

.auth-orb-1[b-1z36pzjo1c] {
  width: 400px;
  height: 400px;
  top: 5%;
  left: 5%;
  background: var(--crm-teal);
  animation: crm-float-orb 20s ease-in-out infinite;
}

.auth-orb-2[b-1z36pzjo1c] {
  width: 350px;
  height: 350px;
  bottom: 5%;
  right: 5%;
  background: var(--crm-navy-400);
  animation: crm-float-orb 25s ease-in-out infinite reverse;
}

.auth-orb-3[b-1z36pzjo1c] {
  width: 250px;
  height: 250px;
  top: 35%;
  left: 55%;
  background: var(--crm-teal-600);
  animation: crm-float-orb 18s ease-in-out infinite 5s;
}

/* ─────────────────────────────────────────────────────────
   Loading Curtain — navy overlay that covers the entire
   viewport during initial load, then fades away to reveal
   the ready layout underneath.
   ───────────────────────────────────────────────────────── */

.load-curtain[b-1z36pzjo1c] {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(170deg, var(--crm-navy) 0%, var(--crm-navy-dark, #091A36) 100%);
}

/* Dot-grid texture matching login + sidebar */
.load-curtain[b-1z36pzjo1c]::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,0.045) 1px, transparent 1px);
  background-size: 18px 18px;
  pointer-events: none;
}

.load-curtain-spinner[b-1z36pzjo1c] {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, 0.08);
  border-top-color: var(--crm-teal);
  animation: curtain-spin-b-1z36pzjo1c 0.7s linear infinite;
  position: relative;
  z-index: 1;
}

/* Fade-out state — played when layout is ready */
.load-curtain--out[b-1z36pzjo1c] {
  animation: curtain-fade-out-b-1z36pzjo1c 0.45s var(--crm-ease) both;
}

@keyframes curtain-spin-b-1z36pzjo1c {
  to { transform: rotate(360deg); }
}

@keyframes curtain-fade-out-b-1z36pzjo1c {
  from { opacity: 1; }
  to   { opacity: 0; pointer-events: none; }
}

@media (prefers-reduced-motion: reduce) {
  .load-curtain-spinner[b-1z36pzjo1c] { animation: none; }
  .load-curtain--out[b-1z36pzjo1c] { animation-duration: 0.01s; }
}

/* User Menu styles moved to Shared/UserMenu.razor.css so the component is styled
   wherever it's used (the staff shell here, plus the Member/Vendor portal top
   bars). The mobile-slot tweaks below stay here — they're about this layout's
   sidebar slot, not the component itself. */

/* ─────────────────────────────────────────────────────────
   Responsive
   ───────────────────────────────────────────────────────── */

@media (max-width: 640.98px) {
  .top-row[b-1z36pzjo1c] { display: none; }
  article.content[b-1z36pzjo1c] { padding: 1.25rem 1rem !important; }

  /* On mobile the window is the scroll container, but main has
     overflow:hidden (set above for desktop, where main IS the scroll
     container alongside a sticky sidebar). overflow:hidden also makes
     main a scrolling container for sticky positioning, which silently
     breaks `position: sticky` on any descendant — the sticky pins inside
     main (which never scrolls on mobile) instead of the viewport.
     `overflow: clip` keeps the visual clipping without registering as a
     scroll container, so descendant sticky elements pin to the viewport
     as expected. */
  main[b-1z36pzjo1c] { overflow: clip; }

  .mobile-user-menu-slot[b-1z36pzjo1c] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0 0.875rem 0.5rem;
    position: relative;
    z-index: 1;
  }

  [b-1z36pzjo1c] .mobile-user-menu-slot .user-display-name { display: none; }
  [b-1z36pzjo1c] .mobile-user-menu-slot .user-caret { display: none; }

  /* Alpha banner: drop sticky on mobile (no top-row to anchor to) and
     condense to a slim inline strip so it scrolls with content instead
     of overlapping page H1s. */
  .alpha-banner[b-1z36pzjo1c] {
    position: static;
    top: auto;
    z-index: auto;
    padding: 0.25rem 0.65rem;
    font-size: 0.7rem;
    line-height: 1.3;
    border-radius: 0;
    gap: 0.4rem;
  }
  .alpha-banner-badge[b-1z36pzjo1c] {
    font-size: 0.6rem;
    padding: 0.05rem 0.4rem;
  }
}

@media (min-width: 641px) {
  .page[b-1z36pzjo1c] { flex-direction: row; }

  .sidebar[b-1z36pzjo1c] {
    width: 264px;
    height: 100vh;
    position: sticky;
    top: 0;
    transition: width 0.22s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
  }

  .sidebar.sidebar-collapsed[b-1z36pzjo1c] {
    width: 64px;
  }

  /* `clip`, not `auto`, for the same reason as the mobile rule above: main is
     not the scroll container here either. `.page` is min-height, so main grows
     to its content and the window does the scrolling — but `overflow: auto`
     still registers main as a scrolling box, and every `position: sticky`
     descendant then pins to a box that never moves. That silently disabled the
     sticky top-row and alpha banner. */
  main[b-1z36pzjo1c] { flex: 1; overflow: clip; }

  article.content[b-1z36pzjo1c] { min-height: calc(100vh - 58px); }
}

/* Collapsed sidebar — hide text, center icons */
[b-1z36pzjo1c] .sidebar-collapsed .nav-label {
  opacity: 0;
  width: 0;
  overflow: hidden;
  pointer-events: none;
}

[b-1z36pzjo1c] .sidebar-collapsed .nav-brand-text {
  opacity: 0;
  width: 0;
  overflow: hidden;
  pointer-events: none;
}

[b-1z36pzjo1c] .sidebar-collapsed .nav-link {
  justify-content: center;
  padding-left: 0;
  padding-right: 0;
}

[b-1z36pzjo1c] .sidebar-collapsed .bi {
  margin-right: 0;
  transform: scale(1.1);
  transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1),
              margin 0.22s cubic-bezier(0.4, 0, 0.2, 1),
              opacity var(--crm-fast) ease;
}

[b-1z36pzjo1c] .sidebar-collapsed .nav-version {
  text-align: center;
  padding-left: 0;
  padding-right: 0;
}

[b-1z36pzjo1c] .sidebar-collapsed .nav-version-text {
  font-size: 0.55rem;
}

/* ─────────────────────────────────────────────────────────
   Mobile User Menu Slot
   ───────────────────────────────────────────────────────── */

.mobile-user-menu-slot[b-1z36pzjo1c] { display: none; }

/* Mobile: restore nav labels even when sidebar is collapsed */
@media (max-width: 640.98px) {
  [b-1z36pzjo1c] .sidebar-collapsed .nav-label {
    opacity: 1;
    width: auto;
    overflow: visible;
    pointer-events: auto;
  }

  [b-1z36pzjo1c] .sidebar-collapsed .nav-brand-text {
    opacity: 1;
    width: auto;
    overflow: visible;
    pointer-events: auto;
  }

  [b-1z36pzjo1c] .sidebar-collapsed .nav-link {
    justify-content: flex-start;
    padding-left: 0.875rem;
    padding-right: 0.875rem;
  }

  [b-1z36pzjo1c] .sidebar-collapsed .bi {
    margin-right: 0.7rem;
  }
}
/* /Layout/MemberLayout.razor.rz.scp.css */
/* The member/vendor portal page shell (.member-shell / .member-main / .member-container) is
   GLOBAL, in wwwroot/css/app.css — not here.

   It has to be. VendorLayout renders the same markup, so it gets its own scoped-CSS attribute;
   rules in this file would match only MemberLayout's copy and silently do nothing for the
   vendor's. They did live here, and that is exactly what happened — every vendor portal page
   rendered with no background, no max-width and no padding.

   The top bar has the same shape and solves it the other way, by owning its markup in a shared
   component (PortalTopBar). Either approach works; reusing another layout's scoped classes does
   not. */
/* /Layout/NavMenu.razor.rz.scp.css */
/* ─────────────────────────────────────────────────────────
   Nav Header (brand + collapse btn + mobile hamburger)
   ───────────────────────────────────────────────────────── */

.nav-header[b-2k5z7k35em] {
  height: 58px;
  min-height: 58px;
  display: flex;
  align-items: center;
  padding: 0 0.875rem;
  border-bottom: none;
  position: relative;
  z-index: 1;
  gap: 0.25rem;
}

/* Gradient separator replacing solid border */
.nav-header[b-2k5z7k35em]::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0.875rem;
  right: 0.875rem;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.12) 30%, rgba(255,255,255,0.12) 70%, transparent);
}

.nav-brand[b-2k5z7k35em] {
  font-family: 'Outfit', sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  color: #fff !important;
  letter-spacing: -0.01em;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  line-height: 1;
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

/* Teal pulse dot — shown when no logo */
.nav-brand:not(:has(.nav-logo))[b-2k5z7k35em]::before {
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  min-width: 8px;
  background: var(--crm-teal);
  border-radius: 50%;
  box-shadow: 0 0 0 3px var(--crm-teal-glow), 0 0 8px var(--crm-teal-glow);
  flex-shrink: 0;
}

.nav-logo[b-2k5z7k35em] {
  height: 26px;
  max-width: 80px;
  object-fit: contain;
  flex-shrink: 0;
  filter: drop-shadow(0 0 6px var(--crm-teal-glow));
}

.nav-brand-text[b-2k5z7k35em] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: opacity 0.18s ease, width 0.22s cubic-bezier(0.4,0,0.2,1);
}

/* ─────────────────────────────────────────────────────────
   Collapse Button (desktop chevron)
   ───────────────────────────────────────────────────────── */

.nav-collapse-btn[b-2k5z7k35em] {
  display: none; /* shown only on desktop via media query */
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 6px;
  cursor: pointer;
  padding: 0;
  transition: background var(--crm-fast) ease;
}

.nav-collapse-btn:hover[b-2k5z7k35em] {
  background: rgba(255,255,255,0.14);
}

/* Chevron arrow via CSS border trick */
.nav-collapse-icon[b-2k5z7k35em] {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-left: 2px solid rgba(255,255,255,0.7);
  border-bottom: 2px solid rgba(255,255,255,0.7);
  transform: rotate(45deg) translateX(1px);
  transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

/* When collapsed, flip chevron to point right */
.nav-collapse-icon.is-collapsed[b-2k5z7k35em] {
  transform: rotate(-135deg) translateX(-1px);
}

/* ─────────────────────────────────────────────────────────
   Mobile Hamburger
   ───────────────────────────────────────────────────────── */

.nav-mobile-toggle[b-2k5z7k35em] {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  width: 36px;
  height: 36px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 6px;
  cursor: pointer;
  padding: 0 9px;
  flex-shrink: 0;
  transition: background var(--crm-fast) ease;
}

.nav-mobile-toggle:hover[b-2k5z7k35em] { background: rgba(255,255,255,0.15); }

.nav-mobile-toggle span[b-2k5z7k35em] {
  display: block;
  height: 2px;
  width: 100%;
  background: rgba(255,255,255,0.8);
  border-radius: 2px;
}

/* ─────────────────────────────────────────────────────────
   Nav Body
   ───────────────────────────────────────────────────────── */

.nav-body[b-2k5z7k35em] {
  padding: 0.875rem 0.75rem;
  overflow-x: hidden;
  position: relative;
  z-index: 1;
}

/* Scrollable region: Dashboard + sections + Customize scroll here, so the
   pinned footer (inbox links / Help / Admin / version) stays anchored to the
   bottom. Bounded + faded on desktop (see the desktop media query). */
.nav-scroll[b-2k5z7k35em] {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;               /* allow the flex item to shrink below content so it can scroll */
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.1) transparent;
}

/* Section labels, group headers, dividers and the Customize button. Same reason as
   .nav-link below: a flex child that is allowed to shrink means .nav-scroll never
   overflows, so its overflow-y never engages. */
.nav-scroll > *[b-2k5z7k35em] { flex-shrink: 0; }

.nav-scroll[b-2k5z7k35em]::-webkit-scrollbar { width: 4px; }
.nav-scroll[b-2k5z7k35em]::-webkit-scrollbar-track { background: transparent; }
.nav-scroll[b-2k5z7k35em]::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.12); border-radius: 2px; }

/* Pinned footer — never scrolls, never wraps. */
.nav-footer[b-2k5z7k35em] {
  flex-shrink: 0;
}

/* ─────────────────────────────────────────────────────────
   Search row (opens the Ctrl+K palette)

   Carries .nav-link so every collapsed-sidebar and mobile rule in MainLayout applies
   to it unchanged; these rules only add the faux-input treatment on top.
   ───────────────────────────────────────────────────────── */

.nav-search-row[b-2k5z7k35em] {
  width: 100%;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 8px;
  margin-bottom: 0.5rem;
  cursor: text;
  text-align: left;
}

.nav-search-row:hover[b-2k5z7k35em] {
  background: rgba(255,255,255,0.11);
  border-color: rgba(255,255,255,0.18);
}

/* It is a control, not a destination — never paint the active-route indicator on it. */
.nav-search-row[b-2k5z7k35em]::before { display: none !important; }

.nav-search-kbd[b-2k5z7k35em] {
  margin-left: auto;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 0.08rem 0.34rem;
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 4px;
  color: rgba(255,255,255,0.4);
  white-space: nowrap;
  flex-shrink: 0;
}

/* Collapsed sidebar: icon only. MainLayout already zeroes .nav-label width/opacity, but the
   badge also needs its border and padding gone or it leaves a sliver next to the icon. */
@media (min-width: 641px) {
  .sidebar-collapsed .nav-search-row[b-2k5z7k35em] {
    background: transparent;
    border-color: transparent;
    margin-bottom: 0.25rem;
  }

  .sidebar-collapsed .nav-search-row:hover[b-2k5z7k35em] {
    background: rgba(255,255,255,0.11);
  }

  .sidebar-collapsed .nav-search-kbd[b-2k5z7k35em] {
    display: none;
  }
}

/* ─────────────────────────────────────────────────────────
   Nav Links
   ───────────────────────────────────────────────────────── */

.nav[b-2k5z7k35em]  .nav-link {
  color: rgba(255,255,255,0.58);
  border-radius: 8px;
  height: 2.35rem;
  display: flex;
  align-items: center;
  padding: 0 0.875rem;
  font-family: 'Outfit', sans-serif;
  font-size: 0.84rem;
  font-weight: 500;
  text-decoration: none;
  border-left: 3px solid transparent;
  margin-bottom: 0.05rem;
  white-space: nowrap;
  overflow: hidden;
  /* Must not shrink. `overflow: hidden` above cancels the automatic minimum size
     a flex item normally gets, so without this the links squash towards zero
     height — text still painting at full size — instead of letting .nav-scroll
     scroll. Expanding a nav group on a short viewport made every other item
     collapse into an unreadable overlapping stack. */
  flex-shrink: 0;
  position: relative;
  transition: background-color var(--crm-fast) ease,
              color var(--crm-fast) ease,
              border-color var(--crm-fast) ease,
              box-shadow var(--crm-mid) var(--crm-ease);
}

/* Animated left bar via pseudo-element */
.nav[b-2k5z7k35em]  .nav-link::before {
  content: '';
  position: absolute;
  left: 0;
  top: 20%;
  height: 60%;
  width: 3px;
  border-radius: 2px;
  background: rgba(255,255,255,0.3);
  transform: scaleY(0);
  transform-origin: center;
  transition: transform var(--crm-mid) var(--crm-ease),
              background var(--crm-fast) ease,
              box-shadow var(--crm-fast) ease;
}

.nav[b-2k5z7k35em]  .nav-link:hover {
  color: rgba(255,255,255,0.92);
  background: rgba(255,255,255,0.07);
  border-left-color: transparent;
}

.nav[b-2k5z7k35em]  .nav-link:hover::before {
  transform: scaleY(1);
}

.nav[b-2k5z7k35em]  .nav-link.active {
  color: #fff;
  background: rgba(255,255,255,0.06);
  border-left-color: transparent;
  font-weight: 600;
}

.nav[b-2k5z7k35em]  .nav-link.active::before {
  transform: scaleY(1);
  background: var(--crm-teal);
}

/* ── Skeleton nav items ── */

.nav-skel-item[b-2k5z7k35em] {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.55rem 0.875rem;
  animation: crm-fade-in 0.3s var(--crm-ease) both;
}

.nav-skel-icon[b-2k5z7k35em] {
  width: 18px;
  height: 18px;
  border-radius: 4px;
  flex-shrink: 0;
}

.nav-skel-label[b-2k5z7k35em] {
  height: 12px;
  border-radius: 3px;
}

.nav-divider[b-2k5z7k35em] {
  flex: 1;
  min-height: 1rem;
  display: flex;
  align-items: flex-end;
  padding-bottom: 0.5rem;
}

.nav-divider[b-2k5z7k35em]::after {
  content: '';
  display: block;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.08) 30%, rgba(255,255,255,0.08) 70%, transparent);
}

.nav.flex-column[b-2k5z7k35em] {
  display: flex;
  flex-direction: column;
  /* Override Bootstrap's .nav { flex-wrap: wrap }, which would spill a too-tall
     menu into a clipped second column instead of letting .nav-scroll scroll. */
  flex-wrap: nowrap;
  height: 100%;
}

/* ─────────────────────────────────────────────────────────
   Nav Labels
   ───────────────────────────────────────────────────────── */

.nav-label[b-2k5z7k35em] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: opacity 0.18s ease;
}

/* ─────────────────────────────────────────────────────────
   Inbox count badge — Data Accuracy / Pending approvals.
   These links only render when their count > 0, so the badge
   is always showing a non-zero number.
   ───────────────────────────────────────────────────────── */

.nav[b-2k5z7k35em]  .nav-link .nav-count-badge {
  margin-left: auto;
  flex-shrink: 0;
  min-width: 1.2rem;
  height: 1.2rem;
  padding: 0 0.36rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Outfit', sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1;
  color: #fff;
  background: var(--crm-teal);
  border-radius: 999px;
  box-shadow: 0 0 8px var(--crm-teal-glow);
}

.nav[b-2k5z7k35em]  .nav-link .nav-count-badge.nav-count-badge-alert {
  background: var(--crm-danger, #c0392b);
  box-shadow: none;
}

/* Desktop collapsed (icon-only): shrink to a corner dot on the icon.
   .sidebar-collapsed lives on MainLayout's .sidebar (an ancestor of .nav);
   Blazor appends this component's scope id to .nav, so the ancestor match holds. */
@media (min-width: 641px) {
  .sidebar-collapsed .nav[b-2k5z7k35em]  .nav-link .nav-count-badge {
    position: absolute;
    top: 0.3rem;
    right: 0.3rem;
    margin-left: 0;
    min-width: 0.95rem;
    height: 0.95rem;
    padding: 0 0.18rem;
    font-size: 0.58rem;
  }
}

/* ─────────────────────────────────────────────────────────
   Nav Icons
   ───────────────────────────────────────────────────────── */

.bi[b-2k5z7k35em] {
  display: inline-block;
  position: relative;
  width: 1.05rem;
  height: 1.05rem;
  min-width: 1.05rem;
  margin-right: 0.7rem;
  top: -1px;
  background-size: cover;
  opacity: 0.5;
  flex-shrink: 0;
  transition: opacity var(--crm-fast) ease,
              margin var(--crm-fast) ease,
              transform var(--crm-mid) var(--crm-ease);
}

.nav[b-2k5z7k35em]  .nav-link:hover .bi,
.nav[b-2k5z7k35em]  .nav-link.active .bi {
  opacity: 1;
  transform: scale(1.08);
}

.bi-house-door-fill-nav-menu[b-2k5z7k35em] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-question-circle-fill-nav-menu[b-2k5z7k35em] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM5.496 6.033h.825c.138 0 .248-.113.266-.25.09-.656.54-1.134 1.342-1.134.686 0 1.314.343 1.314 1.168 0 .635-.374.927-.965 1.371-.673.489-1.206 1.06-1.168 1.987l.003.217a.25.25 0 0 0 .25.246h.811a.25.25 0 0 0 .25-.25v-.105c0-.718.273-.927 1.01-1.486.609-.463 1.244-.977 1.244-2.056 0-1.511-1.276-2.241-2.673-2.241-1.267 0-2.655.59-2.75 2.286a.237.237 0 0 0 .241.247zm2.325 6.443c.61 0 1.029-.394 1.029-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94 0 .533.425.927 1.01.927z'/%3E%3C/svg%3E");
}

.bi-gear-fill-nav-menu[b-2k5z7k35em] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M9.405 1.05c-.413-1.4-2.397-1.4-2.81 0l-.1.34a1.464 1.464 0 0 1-2.105.872l-.31-.17c-1.283-.698-2.686.705-1.987 1.987l.169.311c.446.82.023 1.841-.872 2.105l-.34.1c-1.4.413-1.4 2.397 0 2.81l.34.1a1.464 1.464 0 0 1 .872 2.105l-.17.31c-.698 1.283.705 2.686 1.987 1.987l.311-.169a1.464 1.464 0 0 1 2.105.872l.1.34c.413 1.4 2.397 1.4 2.81 0l.1-.34a1.464 1.464 0 0 1 2.105-.872l.31.17c1.283.698 2.686-.705 1.987-1.987l-.169-.311a1.464 1.464 0 0 1 .872-2.105l.34-.1c1.4-.413 1.4-2.397 0-2.81l-.34-.1a1.464 1.464 0 0 1-.872-2.105l.17-.31c.698-1.283-.705-2.686-1.987-1.987l-.311.169a1.464 1.464 0 0 1-2.105-.872l-.1-.34zM8 10.93a2.929 2.929 0 1 1 0-5.86 2.929 2.929 0 0 1 0 5.858z'/%3E%3C/svg%3E");
}

/* ─────────────────────────────────────────────────────────
   Customize Button
   ───────────────────────────────────────────────────────── */

.nav-customize-btn[b-2k5z7k35em] {
  display: flex;
  align-items: center;
  height: 2.25rem;
  padding: 0 0.875rem;
  margin-top: 0.25rem;
  background: none;
  border: none;
  border-radius: 8px;
  border-left: 2.5px solid transparent;
  cursor: pointer;
  color: rgba(255,255,255,0.3);
  font-family: 'Outfit', sans-serif;
  font-size: 0.8rem;
  font-weight: 500;
  transition: color var(--crm-fast) ease, background var(--crm-fast) ease;
  white-space: nowrap;
  overflow: hidden;
}

.nav-customize-btn:hover[b-2k5z7k35em] {
  color: rgba(255,255,255,0.6);
  background: rgba(255,255,255,0.05);
}

.nav-customize-btn i[b-2k5z7k35em] {
  font-size: 0.9rem;
  margin-right: 0.7rem;
  flex-shrink: 0;
}

/* ─────────────────────────────────────────────────────────
   Version Badge
   ───────────────────────────────────────────────────────── */

.nav-version[b-2k5z7k35em] {
  padding: 0.5rem 0.875rem 0.75rem;
  text-align: right;
}

.nav-version-text[b-2k5z7k35em] {
  font-family: 'Outfit', sans-serif;
  font-size: 0.65rem;
  font-weight: 500;
  color: rgba(255,255,255,0.18);
  letter-spacing: 0.04em;
  transition: color var(--crm-fast) ease;
}

.nav-version:hover .nav-version-text[b-2k5z7k35em] {
  color: rgba(255,255,255,0.35);
}

.alpha-badge[b-2k5z7k35em] {
  display: inline-block;
  background: #F59E0B;
  color: #78350F;
  font-family: 'Outfit', sans-serif;
  font-size: 0.55rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding: 0.1rem 0.4rem;
  border-radius: 9999px;
  margin-right: 0.35rem;
  vertical-align: middle;
  line-height: 1.4;
}

/* Custom object icons use Bootstrap Icons font (not SVG background) */
.nav-custom-obj-icon[b-2k5z7k35em] {
  background-image: none !important;
  font-size: 1rem;
  line-height: 1.05rem;
  color: white;
  text-align: center;
}

/* ─────────────────────────────────────────────────────────
   Mobile
   ───────────────────────────────────────────────────────── */

@media (max-width: 640.98px) {
  .nav-collapse-btn[b-2k5z7k35em] { display: none !important; }

  .nav-body[b-2k5z7k35em] {
    max-height: 0;
    overflow: hidden;
    padding: 0 0.75rem;
    transition: max-height 0.32s var(--crm-ease), padding 0.32s ease;
  }

  .nav-body.mobile-open[b-2k5z7k35em] {
    max-height: 100vh;
    padding: 0.875rem 0.75rem;
  }

}

/* ─────────────────────────────────────────────────────────
   Desktop
   ───────────────────────────────────────────────────────── */

@media (min-width: 641px) {
  .nav-mobile-toggle[b-2k5z7k35em] { display: none; }

  .nav-collapse-btn[b-2k5z7k35em] { display: flex; }

  .nav-body[b-2k5z7k35em] {
    height: calc(100vh - 58px);
    overflow: hidden;          /* footer stays pinned; .nav-scroll does the scrolling */
  }

  /* Bound the scroll region and fade its content out at the bottom as it slides
     behind the pinned footer. When the menu fits, the faded strip is empty space
     so there's no visible artifact. */
  .nav-scroll[b-2k5z7k35em] {
    overflow-y: auto;
    mask-image: linear-gradient(to bottom, black calc(100% - 28px), transparent);
    -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 28px), transparent);
  }
}
/* /Layout/PortalAuthLayout.razor.rz.scp.css */
.portal-auth-root[b-19kiw1e630] {
    min-height: 100vh;
    min-height: 100dvh;
    width: 100%;
}
/* /Layout/PortalSearch.razor.rz.scp.css */
/* Portal search overlay. Springs in on open; rows rise in a short stagger. */

.ps-backdrop[b-xrdwheugh7] {
    position: fixed;
    inset: 0;
    z-index: 90;
    background: rgba(8, 16, 32, .38);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding: 12vh 1rem 1rem;
}

.ps-panel[b-xrdwheugh7] {
    width: min(640px, 100%);
    max-height: 76vh;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: 18px;
    box-shadow: 0 40px 90px -20px rgba(8, 16, 32, .5);
    overflow: hidden;
}

.ps-input-row[b-xrdwheugh7] {
    display: flex;
    align-items: center;
    gap: .75rem;
    height: 60px;
    padding: 0 1rem;
    border-bottom: 1px solid var(--crm-border, #DCE5F0);
    color: var(--crm-text-2, #4A5B78);
    font-size: 1.1rem;
}

.ps-input[b-xrdwheugh7] {
    flex: 1;
    min-width: 0;
    height: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    font: inherit;
    font-size: 1rem;
    color: var(--crm-text, #0D2447);
}

.ps-input[b-xrdwheugh7]::placeholder { color: var(--crm-text-3, #8A9BB5); }

.ps-esc[b-xrdwheugh7], .ps-enter[b-xrdwheugh7], .ps-foot kbd[b-xrdwheugh7] {
    font: inherit;
    font-size: .7rem;
    font-weight: 600;
    color: var(--crm-text-2, #4A5B78);
    border: 1px solid var(--crm-border-2, #C5D3E8);
    border-radius: 6px;
    padding: 1px 6px;
    background: #fff;
}

.ps-esc[b-xrdwheugh7] { cursor: pointer; }

.ps-list[b-xrdwheugh7] { padding: .5rem; overflow-y: auto; }

.ps-group[b-xrdwheugh7] {
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--crm-text-2, #4A5B78);
    padding: .65rem .6rem .35rem;
}

.ps-row[b-xrdwheugh7] {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-height: 50px;
    padding: .35rem .6rem;
    border-radius: 10px;
    cursor: pointer;
    color: var(--crm-text, #0D2447);
}

.ps-row.is-active[b-xrdwheugh7] { background: var(--crm-bg, #F2F6FC); }

.ps-tile[b-xrdwheugh7] {
    width: 34px;
    height: 34px;
    flex: none;
    border-radius: 9px;
    background: rgba(var(--crm-teal-rgb, 0, 197, 168), .14);
    color: color-mix(in oklab, var(--crm-teal, #00C5A8) 55%, #06131F);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ps-text[b-xrdwheugh7] { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ps-title[b-xrdwheugh7] { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ps-sub[b-xrdwheugh7] { font-size: .8rem; color: var(--crm-text-2, #4A5B78); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ps-ext[b-xrdwheugh7] { color: var(--crm-text-3, #8A9BB5); font-size: .8rem; }
.ps-enter[b-xrdwheugh7] { display: none; }
.ps-row.is-active .ps-enter[b-xrdwheugh7] { display: inline; }

.ps-empty[b-xrdwheugh7] { padding: 1.75rem .75rem; text-align: center; color: var(--crm-text-2, #4A5B78); }

.ps-foot[b-xrdwheugh7] {
    display: flex;
    gap: 1rem;
    padding: .6rem 1rem;
    border-top: 1px solid var(--crm-border, #DCE5F0);
    background: var(--crm-bg, #F2F6FC);
    font-size: .75rem;
    color: var(--crm-text-2, #4A5B78);
}

.ps-foot kbd[b-xrdwheugh7] { margin-right: .2rem; }

@keyframes ps-fade-b-xrdwheugh7 { from { opacity: 0; } }
@keyframes ps-spring-b-xrdwheugh7 { from { opacity: 0; transform: translateY(-12px) scale(.97); } }
@keyframes ps-row-b-xrdwheugh7 { from { opacity: 0; transform: translateY(6px); } }

@media (prefers-reduced-motion: no-preference) {
    .ps-backdrop[b-xrdwheugh7] { animation: ps-fade-b-xrdwheugh7 .25s ease; }
    .ps-panel[b-xrdwheugh7] { animation: ps-spring-b-xrdwheugh7 .5s cubic-bezier(.34, 1.5, .64, 1); }
    .ps-row[b-xrdwheugh7] { animation: ps-row-b-xrdwheugh7 .35s cubic-bezier(.2, .8, .2, 1) backwards; animation-delay: calc(min(var(--d, 0), 10) * 25ms + 80ms); }
}

@media (max-width: 640px) {
    .ps-backdrop[b-xrdwheugh7] { padding-top: 1rem; }
    .ps-foot[b-xrdwheugh7] { display: none; }
}
/* /Layout/PortalTopBar.razor.rz.scp.css */
/* Shared portal top bar (member + vendor). A light, frosted bar: brand, up to five entries (groups
   open a menu), search, the bell and the avatar menu. Below 940px the entries move into a sheet
   that slides in from the right.

   NavLink renders its own <a>, so rules for .ptb-link / .ptb-mi / .ptb-sl / .ptb-si reach into it
   with ::deep. Motion is gated on prefers-reduced-motion throughout. */

/* The sheet and the scrims render beside the header, not inside it, so they need the tokens too. */
.ptb[b-aysmuen334], .ptb-sheet[b-aysmuen334], .ptb-scrim[b-aysmuen334], .ptb-veil[b-aysmuen334] {
    --ptb-ease: cubic-bezier(.2, .8, .2, 1);
    --ptb-spring: cubic-bezier(.34, 1.5, .64, 1);
    --ptb-soft: rgba(var(--crm-teal-rgb, 0, 197, 168), .14);
    --ptb-ink: color-mix(in oklab, var(--crm-teal, #00C5A8) 55%, #06131F);
}

.ptb[b-aysmuen334] {
    position: sticky;
    top: 0;
    z-index: 60;
    background: rgba(255, 255, 255, .84);
    backdrop-filter: saturate(1.4) blur(16px);
    -webkit-backdrop-filter: saturate(1.4) blur(16px);
    border-bottom: 1px solid var(--crm-border, #DCE5F0);
    color: var(--crm-text, #0D2447);
    /* No overflow here or on any ancestor: a non-`visible` overflow makes an element a scroll
       container, and `position: sticky` then binds to it instead of the viewport — silently. */
}

/* The vendor bar keeps a hint of its own colour so the two portals stay distinguishable. */
.ptb-vendor[b-aysmuen334] { box-shadow: inset 0 3px 0 var(--crm-teal, #00C5A8); }

.ptb-inner[b-aysmuen334] {
    position: relative;
    max-width: 1380px;
    margin: 0 auto;
    height: 68px;
    padding: 0 1.5rem;
    display: flex;
    align-items: center;
    gap: 1.75rem;
}

/* ── Brand ───────────────────────────────────────────── */
.ptb-brand[b-aysmuen334] {
    display: flex;
    align-items: center;
    gap: .65rem;
    color: inherit;
    text-decoration: none;
    flex-shrink: 0;
}

.ptb-plate[b-aysmuen334] {
    height: 38px;
    min-width: 38px;
    padding: 0 7px;
    border-radius: 10px;
    background: var(--crm-navy, #0D2447);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ptb-plate-bare[b-aysmuen334] { background: none; padding: 0; }

.ptb-plate-mark[b-aysmuen334] {
    color: var(--crm-teal, #00C5A8);
    font-family: 'Instrument Serif', Georgia, serif;
    font-size: 1.55rem;
    line-height: 1;
}

.ptb-logo[b-aysmuen334] { max-height: 26px; max-width: 132px; width: auto; display: block; }
.ptb-plate-bare .ptb-logo[b-aysmuen334] { max-height: 36px; }

.ptb-wordmark[b-aysmuen334] { display: flex; flex-direction: column; line-height: 1.12; }
.ptb-name[b-aysmuen334] { font-size: 1rem; font-weight: 600; }
.ptb-suffix[b-aysmuen334] { font-size: .74rem; color: var(--crm-text-2, #4A5B78); }

/* ── Entries ─────────────────────────────────────────── */
.ptb-nav[b-aysmuen334] { display: flex; align-items: center; gap: .15rem; height: 100%; min-width: 0; }

[b-aysmuen334] .ptb-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    height: 40px;
    padding: 0 .85rem;
    border: 0;
    border-radius: 10px;
    background: none;
    color: var(--crm-text-2, #4A5B78);
    font: inherit;
    font-size: .95rem;
    font-weight: 500;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
    transition: background-color .2s, color .2s;
}

[b-aysmuen334] .ptb-link:hover,
[b-aysmuen334] .ptb-link.is-open { background: var(--crm-bg, #F2F6FC); color: var(--crm-text, #0D2447); }

[b-aysmuen334] .ptb-link.active { color: var(--crm-text, #0D2447); font-weight: 600; }

/* "You are here": an accent bar on the bar's bottom edge, drawn in from the left. */
[b-aysmuen334] .ptb-link::after {
    content: "";
    position: absolute;
    left: .85rem;
    right: .85rem;
    bottom: -14px;
    height: 2px;
    border-radius: 2px;
    background: var(--crm-teal, #00C5A8);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .45s var(--ptb-ease);
}

[b-aysmuen334] .ptb-link.active::after { transform: scaleX(1); }

.ptb-chev[b-aysmuen334] { font-size: .75rem; transition: transform .35s var(--ptb-ease); }
.ptb-group.is-open .ptb-chev[b-aysmuen334],
.ptb-chev.is-flipped[b-aysmuen334] { transform: rotate(180deg); }

.ptb-badge[b-aysmuen334] {
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--crm-teal, #00C5A8);
    color: #081627;
    font-size: .7rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ── Right cluster ───────────────────────────────────── */
.ptb-actions[b-aysmuen334] { margin-left: auto; display: flex; align-items: center; gap: .35rem; flex-shrink: 0; }

.ptb-search[b-aysmuen334] {
    display: flex;
    align-items: center;
    gap: .6rem;
    width: 320px;
    height: 40px;
    padding: 0 .75rem;
    border: 1px solid var(--crm-border-2, #C5D3E8);
    border-radius: 10px;
    background: #fff;
    color: var(--crm-text-3, #8A9BB5);
    font: inherit;
    font-size: .9rem;
    text-align: left;
    cursor: pointer;
    margin-right: .35rem;
    transition: border-color .2s, box-shadow .25s;
}

.ptb-search:hover[b-aysmuen334] { border-color: var(--crm-text-3, #8A9BB5); box-shadow: 0 0 0 4px var(--ptb-soft); }
.ptb-search-text[b-aysmuen334] { flex: 1; color: var(--crm-text-2, #4A5B78); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.ptb-kbd[b-aysmuen334] {
    font: inherit;
    font-size: .7rem;
    font-weight: 600;
    color: var(--crm-text-2, #4A5B78);
    border: 1px solid var(--crm-border-2, #C5D3E8);
    border-radius: 6px;
    padding: 1px 6px;
    background: #fff;
}

.ptb-icon[b-aysmuen334] {
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 10px;
    background: none;
    color: var(--crm-text-2, #4A5B78);
    font-size: 1.15rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    cursor: pointer;
    transition: background-color .2s, color .2s;
}

.ptb-icon:hover[b-aysmuen334] { background: var(--crm-bg, #F2F6FC); color: var(--crm-text, #0D2447); }
.ptb-burger[b-aysmuen334] { display: none; }

.ptb-pip[b-aysmuen334] {
    position: absolute;
    top: 8px;
    right: 9px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #D93644;
    border: 2px solid #fff;
}

/* ── Bell popover ────────────────────────────────────── */
.ptb-bell-wrap[b-aysmuen334] { position: relative; }

.ptb-pop[b-aysmuen334] {
    position: absolute;
    right: 0;
    top: calc(100% + 12px);
    width: 360px;
    background: #fff;
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: 16px;
    box-shadow: 0 30px 70px -20px rgba(8, 16, 32, .35);
    padding: .5rem;
    z-index: 62;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px) scale(.98);
    transform-origin: top right;
    transition: opacity .16s, transform .25s var(--ptb-ease), visibility 0s linear .25s;
}

.ptb-pop.is-open[b-aysmuen334] { opacity: 1; visibility: visible; transform: none; transition: opacity .2s, transform .45s var(--ptb-spring), visibility 0s; }
.ptb-pop-head[b-aysmuen334] { font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--crm-text-2, #4A5B78); padding: .5rem .6rem .4rem; }
.ptb-pop-empty[b-aysmuen334] { padding: .6rem .6rem 1rem; color: var(--crm-text-2, #4A5B78); }
.ptb-pop-empty .bi[b-aysmuen334] { color: var(--ptb-ink); margin-right: .3rem; }

.ptb-pop-row[b-aysmuen334] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .6rem;
    border-radius: 10px;
    color: var(--crm-text, #0D2447);
    text-decoration: none;
}

.ptb-pop-row:hover[b-aysmuen334] { background: var(--crm-bg, #F2F6FC); }
.ptb-pop-text[b-aysmuen334] { display: flex; flex-direction: column; min-width: 0; }
.ptb-pop-title[b-aysmuen334] { font-weight: 500; font-size: .9rem; }
.ptb-pop-sub[b-aysmuen334] { font-size: .8rem; color: var(--crm-text-2, #4A5B78); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.ptb-tile[b-aysmuen334] {
    width: 38px;
    height: 38px;
    flex: none;
    border-radius: 10px;
    background: var(--ptb-soft);
    color: var(--ptb-ink);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
}

/* ── Group menus ─────────────────────────────────────── */
.ptb-mega[b-aysmuen334] {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    margin: 0 auto;
    width: min(940px, calc(100% - 2rem));
    background: #fff;
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: 18px;
    box-shadow: 0 30px 70px -20px rgba(8, 16, 32, .35);
    padding: .75rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 290px;
    gap: .25rem;
    z-index: 61;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px) scale(.985);
    transform-origin: 50% 0;
    transition: opacity .16s, transform .25s var(--ptb-ease), visibility 0s linear .25s;
}

.ptb-mega-plain[b-aysmuen334] { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); width: min(720px, calc(100% - 2rem)); }

.ptb-mega.is-open[b-aysmuen334] { opacity: 1; visibility: visible; transform: none; transition: opacity .2s, transform .5s var(--ptb-spring), visibility 0s; }

[b-aysmuen334] .ptb-mi {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    padding: .85rem;
    border-radius: 12px;
    color: var(--crm-text, #0D2447);
    text-decoration: none;
}

[b-aysmuen334] .ptb-mi:hover,
[b-aysmuen334] .ptb-mi.active { background: var(--crm-bg, #F2F6FC); }
[b-aysmuen334] .ptb-mi .ptb-tile { width: 42px; height: 42px; transition: transform .4s var(--ptb-spring), background-color .25s, color .25s; }
[b-aysmuen334] .ptb-mi:hover .ptb-tile { transform: scale(1.08) rotate(-6deg); background: var(--crm-teal, #00C5A8); color: #081627; }

.ptb-mi-text[b-aysmuen334] { display: flex; flex-direction: column; min-width: 0; }
.ptb-mi-title[b-aysmuen334] { display: flex; align-items: center; gap: .45rem; font-weight: 600; font-size: .95rem; }
.ptb-mi-sub[b-aysmuen334] { font-size: .82rem; color: var(--crm-text-2, #4A5B78); margin-top: .1rem; }
.ptb-ext[b-aysmuen334] { font-size: .75rem; color: var(--crm-text-3, #8A9BB5); }

.ptb-feat[b-aysmuen334] {
    grid-column: 3;
    grid-row: 1 / span 2;
    background: var(--crm-navy, #0D2447);
    color: #fff;
    border-radius: 12px;
    padding: 1.15rem 1.2rem;
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.ptb-feat-eb[b-aysmuen334] { font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--crm-teal, #00C5A8); }
.ptb-feat-title[b-aysmuen334] { font-size: 1.15rem; font-weight: 600; line-height: 1.25; margin-top: .2rem; }
.ptb-feat-detail[b-aysmuen334] { font-size: .82rem; color: rgba(255, 255, 255, .78); }

.ptb-feat-btn[b-aysmuen334] {
    margin-top: auto;
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    height: 38px;
    padding: 0 1rem;
    border-radius: 10px;
    background: var(--crm-teal, #00C5A8);
    color: #081627;
    font-weight: 500;
    font-size: .88rem;
    text-decoration: none;
}

.ptb-feat-btn:hover[b-aysmuen334] { filter: brightness(1.07); color: #081627; }

.ptb-mfoot[b-aysmuen334] {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem .85rem .35rem;
    margin-top: .35rem;
    border-top: 1px solid var(--crm-border, #DCE5F0);
    font-size: .84rem;
    color: var(--crm-text-2, #4A5B78);
}

.ptb-mfoot a[b-aysmuen334] { color: var(--ptb-ink); font-weight: 500; text-decoration: none; white-space: nowrap; }
.ptb-mfoot a .bi[b-aysmuen334] { display: inline-block; transition: transform .3s var(--ptb-ease); }
.ptb-mfoot a:hover .bi[b-aysmuen334] { transform: translateX(3px); }

/* Items rise in one after another as a menu opens. */
[b-aysmuen334] .ptb-mega .ptb-mi,
.ptb-mega .ptb-feat[b-aysmuen334],
.ptb-mega .ptb-mfoot[b-aysmuen334] { opacity: 0; transform: translateY(6px); transition: opacity .15s, transform .2s; }

[b-aysmuen334] .ptb-mega.is-open .ptb-mi,
.ptb-mega.is-open .ptb-feat[b-aysmuen334],
.ptb-mega.is-open .ptb-mfoot[b-aysmuen334] {
    opacity: 1;
    transform: none;
    transition: opacity .35s ease, transform .5s var(--ptb-ease);
    transition-delay: calc(var(--d, 0) * 45ms + 60ms);
}

.ptb-scrim[b-aysmuen334] {
    position: fixed;
    inset: 68px 0 0 0;
    z-index: 55;
    background: rgba(8, 16, 32, .16);
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s ease;
}

.ptb-scrim.is-open[b-aysmuen334] { opacity: 1; pointer-events: auto; }

/* ── Sheet (small screens) ───────────────────────────── */
.ptb-veil[b-aysmuen334] {
    position: fixed;
    inset: 0;
    z-index: 70;
    background: rgba(8, 16, 32, .4);
    backdrop-filter: blur(3px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s ease;
}

.ptb-veil.is-open[b-aysmuen334] { opacity: 1; pointer-events: auto; }

.ptb-sheet[b-aysmuen334] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(360px, 92vw);
    z-index: 71;
    background: #fff;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    box-shadow: -30px 0 60px -30px rgba(8, 16, 32, .5);
    transform: translateX(100%);
    visibility: hidden;
    transition: transform .45s var(--ptb-ease), visibility 0s linear .45s;
}

.ptb-sheet.is-open[b-aysmuen334] { transform: none; visibility: visible; transition: transform .55s cubic-bezier(.16, 1, .3, 1), visibility 0s; }

.ptb-sheet-head[b-aysmuen334] {
    height: 64px;
    flex: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 .5rem 0 1.1rem;
    border-bottom: 1px solid var(--crm-border, #DCE5F0);
    font-weight: 600;
}

.ptb-sheet-search[b-aysmuen334] {
    margin: 1rem 1rem .4rem;
    height: 46px;
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: 0 .9rem;
    border: 0;
    border-radius: 12px;
    background: var(--crm-bg, #F2F6FC);
    color: var(--crm-text-2, #4A5B78);
    font: inherit;
    text-align: left;
}

.ptb-sheet-list[b-aysmuen334] { padding: .4rem .6rem; display: flex; flex-direction: column; }

[b-aysmuen334] .ptb-sl {
    display: flex;
    align-items: center;
    gap: .85rem;
    min-height: 52px;
    width: 100%;
    padding: 0 .6rem;
    border: 0;
    border-radius: 12px;
    background: none;
    color: var(--crm-text, #0D2447);
    font: inherit;
    font-size: 1rem;
    font-weight: 500;
    text-align: left;
    text-decoration: none;
}

[b-aysmuen334] .ptb-sl.active { background: var(--ptb-soft); }
.ptb-sl-label[b-aysmuen334] { flex: 1; }

.ptb-sub[b-aysmuen334] {
    margin: 0 0 .35rem 1.9rem;
    padding-left: .8rem;
    border-left: 1px solid var(--crm-border, #DCE5F0);
    display: flex;
    flex-direction: column;
    animation: ptb-sub-in-b-aysmuen334 .3s var(--ptb-ease);
}

@keyframes ptb-sub-in-b-aysmuen334 { from { opacity: 0; transform: translateY(-4px); } }

[b-aysmuen334] .ptb-si {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-height: 46px;
    padding: 0 .6rem;
    border-radius: 10px;
    color: var(--crm-text, #0D2447);
    text-decoration: none;
    font-size: .95rem;
}

[b-aysmuen334] .ptb-si.active { background: var(--crm-bg, #F2F6FC); font-weight: 600; }

.ptb-sheet-acct[b-aysmuen334] {
    margin-top: auto;
    border-top: 1px solid var(--crm-border, #DCE5F0);
    background: var(--crm-bg, #F2F6FC);
    padding: 1rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
}

.ptb-ql[b-aysmuen334] {
    display: flex;
    align-items: center;
    gap: .5rem;
    min-height: 44px;
    padding: 0 .7rem;
    border-radius: 10px;
    background: #fff;
    border: 1px solid var(--crm-border, #DCE5F0);
    color: var(--crm-text, #0D2447);
    font-size: .85rem;
    font-weight: 500;
    text-decoration: none;
}

.ptb-sheet[b-aysmuen334]  .ptb-st { opacity: 0; transform: translateX(24px); transition: opacity .2s, transform .2s; }

.ptb-sheet.is-open[b-aysmuen334]  .ptb-st {
    opacity: 1;
    transform: none;
    transition: opacity .4s ease, transform .55s var(--ptb-ease);
    transition-delay: calc(var(--d, 0) * 40ms + 120ms);
}

/* ── Motion: the bell nods once, the header picks up a shadow as the page scrolls ── */
@keyframes ptb-wiggle-b-aysmuen334 {
    0%, 100% { transform: rotate(0); }
    15% { transform: rotate(16deg); }
    30% { transform: rotate(-13deg); }
    45% { transform: rotate(9deg); }
    60% { transform: rotate(-5deg); }
    75% { transform: rotate(2deg); }
}

@keyframes ptb-ping-b-aysmuen334 { from { transform: scale(1); opacity: .6; } to { transform: scale(2.6); opacity: 0; } }
@keyframes ptb-shade-b-aysmuen334 { to { box-shadow: 0 10px 30px -12px rgba(8, 16, 32, .25); background: rgba(255, 255, 255, .93); } }

@media (prefers-reduced-motion: no-preference) {
    .ptb-bell-ring[b-aysmuen334] { display: inline-block; transform-origin: 50% 10%; animation: ptb-wiggle-b-aysmuen334 1s ease 1.2s 1 backwards; }
    .ptb-pip[b-aysmuen334]::after { content: ""; position: absolute; inset: -2px; border-radius: 50%; background: inherit; animation: ptb-ping-b-aysmuen334 1.4s ease-out 1s 2 backwards; opacity: 0; }

    @supports (animation-timeline: scroll()) {
        .ptb[b-aysmuen334] { animation: ptb-shade-b-aysmuen334 linear both; animation-timeline: scroll(); animation-range: 0 160px; }
    }
}

@media (prefers-reduced-motion: reduce) {
    .ptb *[b-aysmuen334], .ptb-sheet[b-aysmuen334], .ptb-sheet *[b-aysmuen334], .ptb-scrim[b-aysmuen334], .ptb-veil[b-aysmuen334] { transition-duration: 0s !important; transition-delay: 0s !important; animation: none !important; }
}

/* ── Responsive ladder ───────────────────────────────────────────────────────
   Full row at the 1380 container: brand ~190 + five entries ~480 + search 320 + bell 40 + avatar
   and name ~170 + gaps. The search box gives way first (to an icon), then the user's name; the
   entries leave for the sheet last. */

@media (max-width: 1360px) {
    .ptb-search[b-aysmuen334] { width: 40px; padding: 0; justify-content: center; border-color: transparent; background: none; margin-right: 0; font-size: 1.1rem; color: var(--crm-text-2, #4A5B78); }
    .ptb-search:hover[b-aysmuen334] { box-shadow: none; background: var(--crm-bg, #F2F6FC); }
    .ptb-search-text[b-aysmuen334], .ptb-kbd[b-aysmuen334] { display: none; }
}

@media (max-width: 1080px) {
    .ptb-inner[b-aysmuen334] { gap: 1.1rem; }
    .ptb-actions[b-aysmuen334]  .user-display-name,
    .ptb-actions[b-aysmuen334]  .user-caret { display: none; }
}

@media (max-width: 940px) {
    .ptb-nav[b-aysmuen334], .ptb-mega[b-aysmuen334], .ptb-scrim[b-aysmuen334] { display: none; }
    .ptb-burger[b-aysmuen334] { display: inline-flex; }
}

@media (min-width: 941px) {
    .ptb-sheet[b-aysmuen334], .ptb-veil[b-aysmuen334] { display: none; }
}

@media (max-width: 480px) {
    .ptb-inner[b-aysmuen334] { padding: 0 .75rem 0 1rem; gap: .5rem; }
    .ptb-suffix[b-aysmuen334] { display: none; }
    .ptb-pop[b-aysmuen334] { position: fixed; left: .75rem; right: .75rem; top: 76px; width: auto; }
}
/* /Layout/VendorLayout.razor.rz.scp.css */
/* The vendor bar's accent lives in PortalTopBar.razor.css as .ptb-vendor (applied via
   <PortalTopBar Vendor="true" />). The shared page shell is global, in app.css.
   Nothing layout-specific remains here. */
/* /Pages/Accounts/AccountDetail.razor.rz.scp.css */
/* ── Header ─────────────────────────────────────────── */

/* The logo is the first flex child, so cd-header-left keeps its flex:1 and the
   actions stay pinned right. */
.cd-logo[b-nhq6gh5zj4] {
    flex: 0 0 auto;
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 6px;
    background: var(--crm-white, #fff);
    overflow: hidden;
    padding: 5px;
}

.cd-logo img[b-nhq6gh5zj4] {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.cd-header[b-nhq6gh5zj4] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1.5rem;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    box-shadow: var(--crm-shadow-xs);
}

.cd-header-left[b-nhq6gh5zj4] {
    min-width: 0;
    flex: 1;
}

.cd-header[b-nhq6gh5zj4]  h1 {
    margin: 0 0 0.4rem;
    font-size: 1.6rem;
}

.cd-meta[b-nhq6gh5zj4] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.75rem;
}

.cd-meta-item[b-nhq6gh5zj4] {
    font-size: 0.85rem;
    color: var(--crm-text-2);
}

/* ── Type chips — color-coded per account type ────────
   Types drive which custom-field groups appear below, so they deserve
   visible signal in the header. One small chip per type with a tinted
   background; falls back to neutral grey for unknown types. */

.cd-types[b-nhq6gh5zj4] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
}

.cd-type-chip[b-nhq6gh5zj4] {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 10px;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 999px;
    border: 1px solid transparent;
}

.cd-type-default[b-nhq6gh5zj4] {
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-text-2);
    border-color: var(--crm-border, #d8dee7);
}

.cd-type-member[b-nhq6gh5zj4] {
    background: rgba(0, 197, 168, 0.12);
    color: var(--crm-teal-700, #00735f);
    border-color: rgba(0, 197, 168, 0.32);
}

.cd-type-hospital[b-nhq6gh5zj4] {
    background: rgba(31, 41, 55, 0.08);
    color: var(--crm-navy, #0f172a);
    border-color: rgba(31, 41, 55, 0.18);
}

.cd-type-facility[b-nhq6gh5zj4] {
    background: rgba(99, 102, 241, 0.10);
    color: #4338ca;
    border-color: rgba(99, 102, 241, 0.25);
}

.cd-type-system[b-nhq6gh5zj4] {
    background: rgba(14, 116, 144, 0.10);
    color: #0e7490;
    border-color: rgba(14, 116, 144, 0.25);
}

.cd-type-vendor[b-nhq6gh5zj4] {
    background: rgba(217, 119, 6, 0.10);
    color: #b45309;
    border-color: rgba(217, 119, 6, 0.25);
}

/* ── Info-tab utility row ─────────────────────────────
   Single horizontal row at the top of the Info tab: leadership strip
   (or empty-state CTA) on the left, the hierarchy / engagement / email
   domains / data accuracy / data health pills on the right, and the
   "show empty fields" icon toggle far right. One line when it fits.

   The right cluster is ~1,100px of nowrap pills, so below a ~1,600px
   viewport it has to shrink and wrap or the shell's `overflow: clip`
   silently cuts the trailing pills off. The row is `position: relative`
   because on narrower viewports the pill popovers anchor to the row
   (see the component stylesheets) instead of their own pill — the only
   way a right-anchored popover under a left-hand pill stays inside the
   content column. */

.cd-info-utility-row[b-nhq6gh5zj4] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.cd-info-utility-left[b-nhq6gh5zj4] {
    flex: 1 1 auto;
    min-width: 0;
}

.cd-info-utility-right[b-nhq6gh5zj4] {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
    flex: 0 1 auto;
    min-width: 0;
    margin-left: auto;
}

.cd-show-all-toggle[b-nhq6gh5zj4] {
    background: none;
    border: 1px solid transparent;
    color: var(--crm-text-3, #9ca3af);
    width: 32px;
    height: 32px;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
}

.cd-show-all-toggle:hover[b-nhq6gh5zj4] {
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-navy, #0f172a);
    border-color: var(--crm-border, #d8dee7);
}

.cd-show-all-toggle .bi[b-nhq6gh5zj4] {
    font-size: 0.9rem;
}

/* ── Tab transitions ──────────────────────────────────
   `@key="activeTab"` on this wrapper forces Blazor to remount it on
   every tab switch, which retriggers the keyframe animation below.
   Snappy 180ms fade + 4px rise — softens the swap without making
   navigation feel sluggish. */

.cd-tab-content[b-nhq6gh5zj4] {
    animation: cd-tab-fade-in-b-nhq6gh5zj4 180ms cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes cd-tab-fade-in-b-nhq6gh5zj4 {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0);   }
}

@media (prefers-reduced-motion: reduce) {
    .cd-tab-content[b-nhq6gh5zj4] {
        animation: none;
    }
}

/* ── Info-tab property panel ──────────────────────────
   Single white panel wraps all data sections. Drops the per-card
   chrome (left teal stripe, header pill, individual borders) in
   favor of one unified surface with hairline section headers.
   Linear/Attio/Notion-style density. */

.cd-info-panel[b-nhq6gh5zj4] {
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: var(--crm-r, 10px);
    padding: 22px 26px;
    box-shadow: var(--crm-shadow-xs);
}

.cd-prop-stack > .cd-prop-section + .cd-prop-section[b-nhq6gh5zj4],
.cd-prop-section-spaced[b-nhq6gh5zj4] {
    margin-top: 22px;
}

.cd-prop-section-title[b-nhq6gh5zj4] {
    margin: 0 0 10px 0;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--crm-navy, #0f172a);
    display: flex;
    align-items: center;
    gap: 8px;
}

.cd-prop-section-title[b-nhq6gh5zj4]::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
    flex-shrink: 0;
}

.cd-prop-empty[b-nhq6gh5zj4] {
    color: var(--crm-text-3, #9ca3af);
}

.cd-prop-notes[b-nhq6gh5zj4] {
    margin: 0;
    color: var(--crm-text-1, #1f2937);
    font-size: 0.85rem;
    line-height: 1.5;
    white-space: pre-wrap;
}

/* ── Animatable property rows ─────────────────────────
   Each label/value pair lives inside .cd-anim-row whose
   grid-template-rows animates from 1fr → 0fr to collapse height
   smoothly. The inner div uses min-height: 0 + overflow: hidden so
   the row closes fully (grid children otherwise fight the collapse).
   Coupled with opacity fade for a snappy 200ms transition. Modern
   property-list aesthetic: muted label, primary-color value, tight
   row padding. */

.cd-anim-dl[b-nhq6gh5zj4] {
    display: flex;
    flex-direction: column;
}

.cd-anim-row[b-nhq6gh5zj4] {
    display: grid;
    grid-template-rows: 1fr;
    opacity: 1;
    transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1),
                opacity 160ms ease,
                margin 220ms ease;
}

.cd-anim-row.is-hidden[b-nhq6gh5zj4] {
    grid-template-rows: 0fr;
    opacity: 0;
    margin-top: 0;
    margin-bottom: 0;
    pointer-events: none;
}

.cd-anim-row-inner[b-nhq6gh5zj4] {
    min-height: 0;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(140px, max-content) 1fr;
    align-items: baseline;
    column-gap: 24px;
    padding: 5px 0;
    font-size: 0.85rem;
}

/* Keep labels on one line — values can wrap if they need to. */
.cd-anim-row-inner > dt[b-nhq6gh5zj4],
.cd-anim-row-inner[b-nhq6gh5zj4]  dt {
    white-space: nowrap;
}

/* Apply the property-list label/value styling to BOTH inline dt/dd pairs
   (rendered directly in AccountDetail.razor) and dt/dd pairs rendered by
   the DynamicFieldDisplay child component. Blazor CSS isolation would
   otherwise scope the rule to AccountDetail only, leaving custom-field
   labels with Bootstrap's default bold dt — the source of the boldness
   inconsistency the user flagged. ::deep makes the descendant selector
   match across the component boundary. */
.cd-anim-row-inner > dt[b-nhq6gh5zj4],
.cd-anim-row-inner[b-nhq6gh5zj4]  dt {
    margin: 0;
    font-weight: 500;
    color: var(--crm-text-3, #9ca3af);
}

.cd-anim-row-inner > dd[b-nhq6gh5zj4],
.cd-anim-row-inner[b-nhq6gh5zj4]  dd {
    margin: 0;
    color: var(--crm-text-1, #1f2937);
    line-height: 1.45;
}

.cd-anim-row-inner > dd a[b-nhq6gh5zj4],
.cd-anim-row-inner[b-nhq6gh5zj4]  dd a {
    color: var(--crm-teal-700, #00735f);
    text-decoration: none;
}

.cd-anim-row-inner > dd a:hover[b-nhq6gh5zj4],
.cd-anim-row-inner[b-nhq6gh5zj4]  dd a:hover {
    color: var(--crm-teal, #00C5A8);
    text-decoration: underline;
}

.cd-anim-row.is-hidden .cd-anim-row-inner[b-nhq6gh5zj4] {
    padding-top: 0;
    padding-bottom: 0;
}

/* DynamicFieldDisplay still emits .col-sm-* classes. Reset those so they
   don't fight the 180px/1fr grid layout. */
.cd-anim-row-inner > dt[class*="col-"][b-nhq6gh5zj4],
.cd-anim-row-inner > dd[class*="col-"][b-nhq6gh5zj4],
.cd-anim-row-inner[b-nhq6gh5zj4]  dt[class*="col-"],
.cd-anim-row-inner[b-nhq6gh5zj4]  dd[class*="col-"] {
    flex: unset;
    max-width: unset;
    padding: 0;
}

/* ── Shared tab-body chrome ───────────────────────────
   Workgroups / Visits / Activities all use the same panel + header
   pattern as the Info tab. One section title on top with an
   optional Add button on the right, then the data list/grid
   underneath. Empty state is centered with an icon and a soft
   one-liner — no oversized illustration. */

.cd-tab-head[b-nhq6gh5zj4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 10px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    gap: 12px;
}

.cd-tab-title[b-nhq6gh5zj4] {
    margin: 0;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--crm-text-3, #9ca3af);
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
}

.cd-tab-count[b-nhq6gh5zj4] {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--crm-text-2, #4b5563);
    background: var(--crm-bg, #f5f7fa);
    padding: 2px 8px;
    border-radius: 999px;
    letter-spacing: 0;
}

/* Per-tab search input — sits between the title and the "+ Add" CTA,
   grows to fill available width. Compact, borderless-ish; focus reveals
   a teal ring matching the rest of the brand. */

.cd-tab-search[b-nhq6gh5zj4] {
    flex: 1 1 auto;
    max-width: 320px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: var(--crm-bg, #f5f7fa);
    border: 1px solid transparent;
    border-radius: 6px;
    transition: background 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

.cd-tab-search:focus-within[b-nhq6gh5zj4] {
    background: var(--crm-white, #fff);
    border-color: var(--crm-border-2, #c5d3e8);
    box-shadow: 0 0 0 3px rgba(0, 197, 168, 0.12);
}

.cd-tab-search i[b-nhq6gh5zj4] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.85rem;
}

.cd-tab-search input[b-nhq6gh5zj4] {
    border: none;
    background: transparent;
    outline: none;
    width: 100%;
    font-size: 0.85rem;
    color: var(--crm-text-1, #1f2937);
}

.cd-tab-search input[b-nhq6gh5zj4]::placeholder {
    color: var(--crm-text-3, #9ca3af);
}

/* Wrappers around embedded child components that bring their own
   chrome. `cd-info-panel-flush` strips the panel's own padding so the
   child's container can sit edge-to-edge. */

.cd-info-panel-flush[b-nhq6gh5zj4] {
    padding: 0;
    overflow: hidden;
}

/* When an embedded form (ActivityForm) renders inside an info panel
   the inner ::deep card chrome competes with the panel; flatten it
   to a borderless inline section. */
.cd-embedded-form[b-nhq6gh5zj4]  .card {
    border: none;
    box-shadow: none;
    background: var(--crm-bg, #f5f7fa);
    border-radius: 8px;
    margin-bottom: 16px;
}

.cd-embedded-form[b-nhq6gh5zj4]  .card-header {
    background: transparent;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    padding: 8px 14px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--crm-text-3, #9ca3af);
}

.cd-embedded-form[b-nhq6gh5zj4]  .card-body {
    padding: 14px;
}

.cd-empty[b-nhq6gh5zj4] {
    text-align: center;
    padding: 36px 16px;
    color: var(--crm-text-3, #9ca3af);
}

.cd-empty i[b-nhq6gh5zj4] {
    font-size: 1.75rem;
    display: block;
    margin-bottom: 8px;
    color: var(--crm-border-2, #c5d3e8);
}

.cd-empty p[b-nhq6gh5zj4] {
    margin: 0;
    font-size: 0.85rem;
}

/* ── Section heads inside a tab body ──────────────────
   One typographic rank below .cd-tab-title, for splitting a tab's
   rows into labelled groups. */

.cd-group-head[b-nhq6gh5zj4] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 18px 0 6px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--crm-text-3);
}

.cd-group-head:first-child[b-nhq6gh5zj4] {
    margin-top: 0;
}

/* ── Row list (Visits) ────────────────────────────────
   Compact date-led rows. The date chip on the left + title + meta
   structure reads at a glance and scales to dozens of entries
   without the visual debt of card-per-row. */

.cd-row-list[b-nhq6gh5zj4] {
    display: flex;
    flex-direction: column;
}

.cd-row[b-nhq6gh5zj4] {
    display: grid;
    grid-template-columns: 50px 1fr auto;
    align-items: center;
    gap: 14px;
    padding: 10px 4px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    text-decoration: none;
    color: inherit;
    transition: background 120ms ease;
    border-radius: 6px;
}

.cd-row:last-child[b-nhq6gh5zj4] {
    border-bottom: none;
}

.cd-row:hover[b-nhq6gh5zj4] {
    background: var(--crm-bg, #f5f7fa);
}

.cd-row-date[b-nhq6gh5zj4] {
    text-align: center;
    color: var(--crm-text-2, #4b5563);
    padding: 6px 8px;
    background: var(--crm-bg, #f5f7fa);
    border-radius: 8px;
    line-height: 1;
}

.cd-row-date-day[b-nhq6gh5zj4] {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--crm-navy, #0f172a);
}

.cd-row-date-mon[b-nhq6gh5zj4] {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 2px;
}

.cd-row-main[b-nhq6gh5zj4] {
    min-width: 0;
}

.cd-row-title[b-nhq6gh5zj4] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cd-row-sub[b-nhq6gh5zj4] {
    font-size: 0.75rem;
    color: var(--crm-text-3, #9ca3af);
    margin-top: 2px;
}

.cd-row-chev[b-nhq6gh5zj4] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.85rem;
    transition: transform 140ms ease, color 140ms ease;
}

.cd-row:hover .cd-row-chev[b-nhq6gh5zj4] {
    color: var(--crm-navy);
    transform: translateX(2px);
}

/* ── Two-column row variant (Workgroups) ──────────────
   Same row, minus the date chip. The title wraps instead of
   truncating: in the previous card grid a long committee name was
   clipped to ~120px, which made siblings indistinguishable. */

.cd-row-2col[b-nhq6gh5zj4] {
    grid-template-columns: 1fr auto;
    align-items: start;
    padding: 12px 4px;
}

.cd-row-2col .cd-row-title[b-nhq6gh5zj4] {
    white-space: normal;
    overflow: visible;
    overflow-wrap: anywhere;
    line-height: 1.35;
}

.cd-row-2col .cd-row-chev[b-nhq6gh5zj4] {
    margin-top: 3px;
}

.cd-row-meta[b-nhq6gh5zj4] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 5px;
}

.cd-row-meta .cd-row-sub[b-nhq6gh5zj4] {
    margin-top: 0;
}

/* ── Activity list (Activities) ───────────────────────
   ActivityListItem brings its own row styling; flush-list-group
   strips the card border so the activities sit cleanly inside
   the panel. */

.cd-activity-list[b-nhq6gh5zj4] {
    margin-top: 14px;
}

/* Destructive item rendered inside the header's kebab menu — keep the
   danger-red affordance but as text+icon styling that fits a menu. */
.cd-action-danger[b-nhq6gh5zj4] {
    color: var(--bs-danger, #dc3545) !important;
}

.cd-action-danger:hover[b-nhq6gh5zj4] {
    color: var(--bs-danger, #dc3545) !important;
    background: rgba(220, 53, 69, 0.08) !important;
}

.cd-action-danger i[b-nhq6gh5zj4] {
    color: inherit !important;
}

.cd-actions[b-nhq6gh5zj4] {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
    padding-top: 0.15rem;
    align-items: center;
}

/* ── RelatedObjectsPanel styling (Staff & other tabs) ── */

.cd-panel-section[b-nhq6gh5zj4] {
    min-width: 0;
}

/* Embedded RelatedObjectsPanel (Internal Team) sits inside the
   unified .cd-info-panel surface. Strip its own border/shadow and
   adopt the same section-header pattern as the rest of the tabs. */

.cd-panel-section[b-nhq6gh5zj4]  .rop-container {
    background: transparent;
    border: none;
    box-shadow: none;
    border-radius: 0;
}

.cd-panel-section[b-nhq6gh5zj4]  .rop-header {
    background: transparent;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    border-radius: 0;
    padding: 0 0 10px 0;
    margin-bottom: 14px;
}

.cd-panel-section[b-nhq6gh5zj4]  .rop-title {
    color: var(--crm-navy, #0f172a);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    font-weight: 600;
    text-transform: none;
    display: flex;
    align-items: center;
    gap: 8px;
}

.cd-panel-section[b-nhq6gh5zj4]  .rop-title::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
    flex-shrink: 0;
    display: inline-block;
}

.cd-panel-section[b-nhq6gh5zj4]  .rop-header .btn-primary {
    background: var(--crm-teal, #00C5A8);
    border-color: var(--crm-teal, #00C5A8);
    color: var(--crm-white, #fff);
    font-weight: 600;
    font-size: 0.78rem;
}

.cd-panel-section[b-nhq6gh5zj4]  .rop-header .btn-primary:hover {
    background: var(--crm-teal-600, #009E88);
    border-color: var(--crm-teal-600, #009E88);
}

.cd-panel-section[b-nhq6gh5zj4]  .rop-item {
    border-bottom-color: var(--crm-border);
    padding: 10px 14px;
}

.cd-panel-section[b-nhq6gh5zj4]  .rop-item:hover {
    background: var(--crm-teal-50);
}

.cd-panel-section[b-nhq6gh5zj4]  .rop-item-name {
    color: var(--crm-navy);
    font-weight: 600;
}

.cd-panel-section[b-nhq6gh5zj4]  .rop-empty {
    padding: 20px 14px;
    text-align: center;
    color: var(--crm-text-3);
}

/* ── Workgroup rollup contributors ────────────────────
   Which of the account's contacts pulled this workgroup in. The
   direct/via distinction itself is carried by the group headings, so
   no per-row badge or dashed border is needed. */

.wg-rollup-contributors[b-nhq6gh5zj4] {
    margin-top: 0.4rem;
    font-size: 0.78rem;
    color: var(--crm-text-3);
    line-height: 1.35;
}

.wg-rollup-contributors-prefix[b-nhq6gh5zj4] {
    font-style: italic;
    margin-right: 0.25rem;
}

.wg-rollup-contributor-sep[b-nhq6gh5zj4] {
    margin: 0 0.3rem;
    opacity: 0.6;
}

.wg-rollup-contributor-more[b-nhq6gh5zj4] {
    margin-left: 0.4rem;
    font-style: italic;
    opacity: 0.8;
}

/* ── Responsive ─────────────────────────────────────── */

@media (max-width: 575.98px) {
    .cd-header[b-nhq6gh5zj4] {
        flex-direction: column;
        gap: 0.75rem;
    }

    .cd-actions[b-nhq6gh5zj4] {
        align-self: flex-end;
    }
}

/* ── CCN section ──────────────────────────────────────
   Same rows as every other section; the only additions are quiet title actions and a couple
   of value treatments. The controls read as links in the title rule so the details lead. */

.cd-prop-section-heading[b-nhq6gh5zj4] {
    margin: 0;
    font: inherit;
    letter-spacing: inherit;
    color: inherit;
}

.cd-prop-section-actions[b-nhq6gh5zj4] {
    margin-left: auto;
    display: inline-flex;
    gap: 12px;
}

.cd-prop-section-actions button[b-nhq6gh5zj4] {
    padding: 0;
    border: 0;
    background: none;
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: normal;
    color: var(--crm-text-3, #6b7280);
}

.cd-prop-section-actions button:hover[b-nhq6gh5zj4] { color: var(--crm-navy, #0f172a); text-decoration: underline; }
.cd-prop-section-actions button:focus-visible[b-nhq6gh5zj4] { outline: 2px solid var(--crm-teal, #00C5A8); outline-offset: 2px; }

.cd-ccn-number[b-nhq6gh5zj4] {
    font-weight: 600;
    letter-spacing: 0.04em;
    font-variant-numeric: tabular-nums;
}

.cd-ccn-flag[b-nhq6gh5zj4] {
    margin-left: 8px;
    padding: 1px 8px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    background: #fff4d6;
    color: #7a5800;
    white-space: nowrap;
}

.cd-ccn-flag.is-terminated[b-nhq6gh5zj4] { background: #fdecec; color: #9b1c1c; }

.cd-ccn-siblings[b-nhq6gh5zj4] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
/* /Pages/Accounts/AccountForm.razor.rz.scp.css */
/* ── Header ────────────────────────────────── */
.ef-header[b-9h273lf9h5] {
    margin-bottom: 24px;
}

.ef-header h1[b-9h273lf9h5] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--crm-navy);
    margin: 0;
}

/* Cap the header at the same max-width as the form below it so the
   right-aligned action sits flush with the form's right edge. */
.ef-header--with-actions[b-9h273lf9h5] {
    max-width: 820px;
}

/* ── Sections ──────────────────────────────── */
.ef-section[b-9h273lf9h5] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: 20px 24px;
    margin-bottom: 16px;
    box-shadow: var(--crm-shadow-xs);
}

.ef-section-title[b-9h273lf9h5] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--crm-navy);
    margin: 0 0 16px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--crm-border);
}

/* ── Types section accent ─────────────────── */
.ef-types-section[b-9h273lf9h5] {
    border-left: 3px solid var(--crm-teal);
}

/* ── Labels ────────────────────────────────── */
/* Separates the logo from the identity fields above it without a full divider. */
.ef-logo-row[b-9h273lf9h5] {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--crm-border, #dee2e6);
}

.ef-label[b-9h273lf9h5] {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--crm-text-2);
    margin-bottom: 4px;
}

.ef-req[b-9h273lf9h5] {
    color: #E34850;
}

/* ── Type pill toggles ───────────────────── */
.ef-type-pills[b-9h273lf9h5] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 4px;
}

.ef-type-pill[b-9h273lf9h5] {
    padding: 6px 14px;
    border: 1px solid var(--crm-border-2);
    background: var(--crm-white);
    font-size: 0.82rem;
    font-weight: 500;
    border-radius: 20px;
    cursor: pointer;
    transition: all var(--crm-fast) ease;
    color: var(--crm-text-2);
    line-height: 1.4;
}

.ef-type-pill:hover[b-9h273lf9h5] {
    border-color: var(--crm-teal);
    background: var(--crm-teal-50);
    color: var(--crm-navy);
}

.ef-type-pill.active[b-9h273lf9h5] {
    background: var(--crm-teal-50);
    border-color: var(--crm-teal);
    color: var(--crm-navy);
    font-weight: 600;
    box-shadow: 0 0 0 2px var(--crm-teal-glow);
}

/* ── Custom fields area ──────────────────── */
.ef-custom-fields[b-9h273lf9h5] {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px dashed var(--crm-border);
}

.ef-custom-fields-header[b-9h273lf9h5] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
    margin-bottom: 12px;
}

.ef-custom-fields-empty[b-9h273lf9h5] {
    margin-top: 12px;
    padding: 14px 16px;
    font-size: 0.82rem;
    color: var(--crm-text-3);
    background: var(--crm-bg);
    border-radius: var(--crm-r-sm);
    text-align: center;
}

/* ── Field groups (type-grouped properties) ── */
.ef-field-group[b-9h273lf9h5] {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px dashed var(--crm-border);
}

.ef-field-group:first-child[b-9h273lf9h5] {
    margin-top: 12px;
    padding-top: 0;
    border-top: none;
}

.ef-field-group-header[b-9h273lf9h5] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ef-field-group-header[b-9h273lf9h5]::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--crm-border);
}

/* ── Address tabs ─────────────────────────── */
.ef-addr-tabs[b-9h273lf9h5] {
    display: flex;
    gap: 2px;
    border-bottom: 1px solid var(--crm-border);
    margin-bottom: 16px;
}

.ef-addr-tab[b-9h273lf9h5] {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 8px 14px;
    margin-bottom: -1px;
    font-size: 0.86rem;
    font-weight: 500;
    color: var(--crm-text-3);
    cursor: pointer;
    transition: color 120ms, border-color 120ms;
}

.ef-addr-tab:hover[b-9h273lf9h5] {
    color: var(--crm-text-2);
}

.ef-addr-tab.active[b-9h273lf9h5] {
    color: var(--crm-text-1);
    border-bottom-color: var(--crm-teal);
}

/* ── Type subtabs (custom-fields inside the Types card) ─── */
.ef-type-subtabs[b-9h273lf9h5] {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    border-bottom: 1px solid var(--crm-border);
    margin: 8px 0 16px;
}

.ef-type-subtab[b-9h273lf9h5] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 8px 14px;
    margin-bottom: -1px;
    font-size: 0.86rem;
    font-weight: 500;
    color: var(--crm-text-3);
    cursor: pointer;
    transition: color 120ms, border-color 120ms;
    position: relative;
}

.ef-type-subtab:hover[b-9h273lf9h5] {
    color: var(--crm-text-2);
}

.ef-type-subtab.active[b-9h273lf9h5] {
    color: var(--crm-text-1);
    border-bottom-color: var(--crm-teal);
}

.ef-type-subtab-name[b-9h273lf9h5] {
    line-height: 1;
}

.ef-type-subtab-count[b-9h273lf9h5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.4rem;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--crm-text-3);
    background: var(--crm-surface-2);
    border-radius: 999px;
}

.ef-type-subtab.active .ef-type-subtab-count[b-9h273lf9h5] {
    color: var(--crm-text);
    background: var(--crm-surface-2);
}

.ef-type-subtab-dot[b-9h273lf9h5] {
    display: inline-block;
    width: 7px;
    height: 7px;
    background: #F59E0B;
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.18);
}

/* A value on this tab breaks a field rule — red, and it outranks the amber "required" dot. */
.ef-type-subtab-dot--conflict[b-9h273lf9h5] {
    background: var(--bs-danger, #dc3545);
    box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.18);
}

/* A save that didn't happen says why, right above the buttons that tried. */
.ef-save-error[b-9h273lf9h5] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    margin: 1rem 0 0.25rem;
    padding: 0.65rem 0.85rem;
    border-radius: 8px;
    font-size: 0.875rem;
    color: var(--bs-danger-text-emphasis, #58151c);
    background: var(--bs-danger-bg-subtle, #f8d7da);
    box-shadow: inset 3px 0 0 var(--bs-danger, #dc3545);
}

.ef-save-error > i[b-9h273lf9h5] {
    color: var(--bs-danger, #dc3545);
    font-size: 1rem;
    line-height: 1.3;
}

.ef-type-subtab-body[b-9h273lf9h5] {
    animation: crm-slide-up 160ms ease;
}

.ef-addr-same[b-9h273lf9h5] {
    display: flex;
    gap: 18px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px dashed var(--crm-border);
    flex-wrap: wrap;
}

.ef-checkbox[b-9h273lf9h5] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.84rem;
    color: var(--crm-text-2);
    cursor: pointer;
}

/* ── Actions ──────────────────────────────── */
.ef-actions[b-9h273lf9h5] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 16px 0 32px;
}

/* ── Responsive ───────────────────────────── */
@media (max-width: 575.98px) {
    .ef-section[b-9h273lf9h5] {
        padding: 16px;
    }

    .ef-type-pills[b-9h273lf9h5] {
        gap: 4px;
    }

    .ef-type-pill[b-9h273lf9h5] {
        padding: 5px 10px;
        font-size: 0.78rem;
    }
}

/* ── What ticking Facility took off ───────── */
.ef-type-note[b-9h273lf9h5] {
    margin: 8px 0 0;
    padding: 8px 12px;
    font-size: 0.8rem;
    color: var(--crm-text-2);
    background: var(--crm-bg);
    border-radius: var(--crm-r-sm);
}
/* /Pages/Accounts/AccountList.razor.rz.scp.css */
/* The panel's foot ("Show archived") parts from the filters by space, not a
   full-width rule — the filter bar's rows are separated the same way. */
.filter-group-divider[b-1of9n8tyak] {
    margin-top: 0.85rem;
    padding-top: 0.25rem;
}

/* A role someone added to their own bar: its chip, plus a small × to take it off again. */
.cf-role-other[b-1of9n8tyak] {
    display: inline-flex;
    align-items: center;
}

.cf-role-remove[b-1of9n8tyak] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    margin-left: -0.15rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--bs-secondary-color, #6c757d);
    opacity: 0.55;
    transition: opacity 0.12s ease, background-color 0.12s ease;
}

.cf-role-other:hover .cf-role-remove[b-1of9n8tyak],
.cf-role-remove:focus-visible[b-1of9n8tyak] {
    opacity: 1;
}

.cf-role-remove:hover[b-1of9n8tyak] {
    background: rgba(13, 36, 71, 0.08);
    color: var(--crm-navy, #0D2447);
}
/* /Pages/Activities/ActivityList.razor.rz.scp.css */
/* Flatten the inline ActivityForm's card chrome so the embedded log
   panel reads as a soft inline section rather than a competing card.
   Matches the cd-embedded-form treatment used on detail pages. */

.al-log-panel[b-u4q5dpij5w]  .card {
    border: 1px solid var(--crm-border, #d8dee7);
    box-shadow: var(--crm-shadow-xs);
    background: var(--crm-white, #fff);
    border-radius: var(--crm-r, 10px);
    margin-bottom: 0;
}

.al-log-panel[b-u4q5dpij5w]  .card-header {
    background: var(--crm-bg, #f5f7fa);
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    padding: 10px 16px;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--crm-navy, #0f172a);
    display: flex;
    align-items: center;
    gap: 8px;
}

.al-log-panel[b-u4q5dpij5w]  .card-header::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
    flex-shrink: 0;
    display: inline-block;
}

.al-log-panel[b-u4q5dpij5w]  .card-body {
    padding: 16px;
}
/* /Pages/Admin/AdminSettings.razor.rz.scp.css */
.admin-header p[b-flkxsp6pqq] { font-size: 0.95rem; margin-top: 0.25rem; }

/* ── Settings card (no hover lift) ────────────────────── */

[b-flkxsp6pqq] .settings-card { transition: none !important; }
[b-flkxsp6pqq] .settings-card:hover { transform: none !important; box-shadow: var(--crm-shadow-sm) !important; }

/* Card containing the icon picker must sit above sibling cards so the dropdown panel clears them */
[b-flkxsp6pqq] .settings-card-picker { z-index: 10; }

/* ── Branding grid ─────────────────────────────────────── */

[b-flkxsp6pqq] .settings-grid { display: grid; gap: 2rem; }

@media (min-width: 900px) {
    [b-flkxsp6pqq] .settings-grid { grid-template-columns: 1fr 1fr; }
}

[b-flkxsp6pqq] .settings-section-title {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--crm-text-2);
    margin-bottom: 0.2rem;
}

[b-flkxsp6pqq] .settings-section-desc { font-size: 0.82rem; color: var(--crm-text-3); margin-bottom: 0.75rem; }

/* Logo */
[b-flkxsp6pqq] .logo-preview-wrap {
    display: flex;
    align-items: center;
    padding: 0.75rem;
    background: var(--crm-bg);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    max-width: 320px;
    margin-bottom: 0.5rem;
}
[b-flkxsp6pqq] .logo-preview-img { max-height: 40px; max-width: 180px; object-fit: contain; }
/* The full-size logo lands on the dark sign-in/survey hero — preview it there so its
   legibility (and whether the backdrop toggle is needed) is obvious at a glance. */
[b-flkxsp6pqq] .logo-preview-wrap--full { background: var(--crm-navy, #0D2447); border-color: var(--crm-navy, #0D2447); }
[b-flkxsp6pqq] .logo-preview-img--full { max-height: 56px; max-width: 240px; }
[b-flkxsp6pqq] .logo-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 56px;
    max-width: 320px;
    background: var(--crm-bg);
    border: 1px dashed var(--crm-border-2);
    border-radius: var(--crm-r-sm);
    color: var(--crm-text-3);
    font-size: 0.825rem;
    margin-bottom: 0.5rem;
}

/* Colors */
[b-flkxsp6pqq] .color-fields { display: flex; flex-direction: column; gap: 1.1rem; }
[b-flkxsp6pqq] .color-field { display: flex; flex-direction: column; gap: 0.25rem; }
[b-flkxsp6pqq] .color-input-row { display: flex; align-items: center; gap: 0.5rem; }
[b-flkxsp6pqq] .color-swatch {
    width: 42px;
    height: 38px;
    border: 1px solid var(--crm-border-2);
    border-radius: var(--crm-r-sm);
    padding: 2px;
    cursor: pointer;
    background: none;
    flex-shrink: 0;
}
[b-flkxsp6pqq] .color-hex { width: 108px; font-family: 'Courier New', monospace; font-size: 0.875rem; letter-spacing: 0.04em; }
[b-flkxsp6pqq] .color-hint { font-size: 0.78rem; color: var(--crm-text-3); }

/* Save row */
[b-flkxsp6pqq] .settings-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding-top: 1.75rem;
    margin-top: 1.75rem;
    border-top: 1px solid var(--crm-border);
}

[b-flkxsp6pqq] .alert-success {
    background: var(--crm-teal-50);
    border: 1px solid var(--crm-teal);
    color: var(--crm-teal-600);
    border-radius: var(--crm-r-sm);
    font-size: 0.875rem;
    padding: 0.6rem 1rem;
}

/* ── Add user form ─────────────────────────────────────── */

[b-flkxsp6pqq] .add-user-form {
    background: var(--crm-bg);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: 1.25rem;
}

/* ── Role filter pills ─────────────────────────────────── */

[b-flkxsp6pqq] .role-filter { display: flex; gap: 0.4rem; flex-wrap: wrap; }

[b-flkxsp6pqq] .role-pill {
    padding: 0.3rem 0.875rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border-2);
    border-radius: 20px;
    font-family: 'Outfit', sans-serif;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--crm-text-2);
    cursor: pointer;
    transition: background-color var(--crm-fast) ease,
                border-color var(--crm-fast) ease,
                color var(--crm-fast) ease;
}

[b-flkxsp6pqq] .role-pill:hover { border-color: var(--crm-navy); color: var(--crm-navy); }

[b-flkxsp6pqq] .role-pill.active {
    background: var(--crm-navy);
    border-color: var(--crm-navy);
    color: #fff;
}

/* ── User table ────────────────────────────────────────── */

[b-flkxsp6pqq] .user-table { margin-bottom: 0; }

[b-flkxsp6pqq] .user-cell { display: flex; align-items: center; gap: 0.75rem; }

[b-flkxsp6pqq] .user-cell-avatar {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--crm-navy) 0%, var(--crm-navy-600) 100%);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 700;
    flex-shrink: 0;
}

[b-flkxsp6pqq] .user-cell-name { font-weight: 500; font-size: 0.9rem; }
[b-flkxsp6pqq] .user-cell-title { font-size: 0.78rem; color: var(--crm-text-3); }

[b-flkxsp6pqq] .role-select {
    width: auto;
    min-width: 100px;
    font-size: 0.8rem;
    padding: 0.25rem 0.5rem;
    cursor: pointer;
}

/* ── Delete confirmation ───────────────────────────────── */

[b-flkxsp6pqq] .delete-confirm-overlay {
    position: fixed;
    inset: 0;
    background: rgba(13,36,71,0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 200;
    backdrop-filter: blur(2px);
}

[b-flkxsp6pqq] .delete-confirm-box {
    background: var(--crm-white);
    border-radius: var(--crm-r);
    box-shadow: var(--crm-shadow-lift);
    padding: 1.75rem 2rem;
    max-width: 360px;
    width: 100%;
    animation: crm-slide-up 0.2s var(--crm-ease) both;
}

/* ── Relationship Labels ───────────────────────────── */

[b-flkxsp6pqq] .label-group {
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    overflow: hidden;
    background: var(--crm-white);
    box-shadow: var(--crm-shadow-xs);
}

[b-flkxsp6pqq] .label-group-header {
    font-family: 'Outfit', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--crm-text-3);
    padding: 0.55rem 1rem;
    background: var(--crm-bg);
    border-bottom: 1px solid var(--crm-border);
    margin-bottom: 0;
}

[b-flkxsp6pqq] .label-group .user-table { margin-bottom: 0; }

[b-flkxsp6pqq] .label-group .user-table thead th {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
    border-bottom-width: 1px;
    border-color: var(--crm-border);
    padding: 0.5rem 0.75rem;
    background: var(--crm-white);
}

[b-flkxsp6pqq] .label-group .user-table tbody td {
    padding: 0.6rem 0.75rem;
    vertical-align: middle;
    font-size: 0.87rem;
    border-color: var(--crm-border);
}

[b-flkxsp6pqq] .label-group .user-table tbody tr:last-child td {
    border-bottom: none;
}

/* Relationship label badges */
[b-flkxsp6pqq] .rl-badge-promoted {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border-radius: 20px;
    font-size: 0.72rem;
    font-weight: 600;
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
    border: 1px solid var(--crm-teal);
}

[b-flkxsp6pqq] .rl-badge-change {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border-radius: 20px;
    font-size: 0.72rem;
    font-weight: 600;
    background: var(--crm-bg);
    color: var(--crm-text-2);
    border: 1px solid var(--crm-border-2);
}

[b-flkxsp6pqq] .rl-badge-builtin {
    display: inline-block;
    padding: 0.12rem 0.5rem;
    border-radius: 20px;
    font-size: 0.68rem;
    font-weight: 600;
    background: var(--crm-surface-2);
    color: var(--crm-text-2);
    border: 1px solid var(--crm-border-2);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

/* ── Audit log ─────────────────────────────────────── */

[b-flkxsp6pqq] .audit-filters { }

[b-flkxsp6pqq] .audit-count-bar { border-bottom: 1px solid var(--crm-border); padding-bottom: 0.5rem; }

[b-flkxsp6pqq] .audit-table td { vertical-align: middle; }

/* Action badges */
[b-flkxsp6pqq] .audit-action-badge {
    display: inline-block;
    padding: 0.2rem 0.55rem;
    border-radius: 20px;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

[b-flkxsp6pqq] .audit-badge-auth    { background: var(--crm-teal-50); color: var(--crm-teal-600); border: 1px solid var(--crm-teal); }
[b-flkxsp6pqq] .audit-badge-create  { background: #ecfdf5; color: #065f46; border: 1px solid #6ee7b7; }
[b-flkxsp6pqq] .audit-badge-update  { background: #eff6ff; color: #1e40af; border: 1px solid #93c5fd; }
[b-flkxsp6pqq] .audit-badge-delete  { background: #fef2f2; color: #991b1b; border: 1px solid #fca5a5; }
[b-flkxsp6pqq] .audit-badge-complete { background: #f0fdf4; color: #166534; border: 1px solid #86efac; }
[b-flkxsp6pqq] .audit-badge-neutral { background: var(--crm-bg); color: var(--crm-text-2); border: 1px solid var(--crm-border-2); }

/* ── Built-in fields: search toolbar & sortable headers ── */

[b-flkxsp6pqq] .field-search-wrap {
    position: relative;
    flex: 1;
    max-width: 280px;
}

[b-flkxsp6pqq] .field-search-icon {
    position: absolute;
    left: 0.6rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1rem;
    color: var(--crm-text-3);
    pointer-events: none;
    line-height: 1;
}

[b-flkxsp6pqq] .field-search-input {
    width: 100%;
    padding: 0.3rem 0.75rem 0.3rem 2rem;
    font-size: 0.82rem;
    font-family: inherit;
    color: var(--crm-text-1, #111);
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border-2, #d1d5db);
    border-radius: var(--crm-r-sm);
    outline: none;
    transition: border-color var(--crm-fast) ease, box-shadow var(--crm-fast) ease;
    /* remove native x in webkit */
    -webkit-appearance: none;
}

[b-flkxsp6pqq] .field-search-input:focus {
    border-color: var(--crm-navy);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--crm-navy) 12%, transparent);
}

[b-flkxsp6pqq] .field-search-input::placeholder { color: var(--crm-text-3); }

[b-flkxsp6pqq] .sortable-th {
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
    transition: color var(--crm-fast) ease;
}

[b-flkxsp6pqq] .sortable-th:hover { color: var(--crm-navy); }

[b-flkxsp6pqq] .sortable-th.sort-active { color: var(--crm-navy); }

[b-flkxsp6pqq] .sort-icon {
    display: inline-block;
    font-size: 0.68rem;
    margin-left: 0.25rem;
    opacity: 0.35;
    vertical-align: middle;
    transition: opacity var(--crm-fast) ease;
}

[b-flkxsp6pqq] .sort-icon.active { opacity: 1; }

[b-flkxsp6pqq] .sortable-th:hover .sort-icon { opacity: 0.7; }

/* Inline audit trail (used in entity detail pages) */
[b-flkxsp6pqq] .audit-trail { display: flex; flex-direction: column; gap: 0.6rem; }

[b-flkxsp6pqq] .audit-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.6rem 0.75rem;
    background: var(--crm-bg);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    font-size: 0.83rem;
}

[b-flkxsp6pqq] .audit-time { color: var(--crm-text-2); }
[b-flkxsp6pqq] .audit-actor { font-weight: 500; }
[b-flkxsp6pqq] .audit-notes-inline { color: var(--crm-text-3); font-style: italic; }

/* ── Feature Module cards ──────────────────────────── */

[b-flkxsp6pqq] .fm-module-card {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1rem 1.15rem;
    background: var(--crm-bg);
    border: 1px solid var(--crm-border);
    border-left: 3px solid var(--crm-border-2);
    border-radius: 0 var(--crm-r-sm) var(--crm-r-sm) 0;
    transition: border-color var(--crm-mid) ease,
                background-color var(--crm-mid) ease,
                box-shadow var(--crm-mid) ease;
}

[b-flkxsp6pqq] .fm-module-card.fm-enabled {
    border-left-color: var(--crm-teal);
    background: var(--crm-white);
    box-shadow: var(--crm-shadow-xs);
}

[b-flkxsp6pqq] .fm-module-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--crm-r-sm);
    background: var(--crm-surface-2);
    color: var(--crm-text-3);
    flex-shrink: 0;
    transition: background-color var(--crm-mid) ease, color var(--crm-mid) ease;
}

[b-flkxsp6pqq] .fm-enabled .fm-module-icon {
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
}

[b-flkxsp6pqq] .fm-module-body {
    flex: 1;
    min-width: 0;
}

[b-flkxsp6pqq] .fm-module-title {
    font-family: 'Outfit', sans-serif;
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--crm-navy);
    margin-bottom: 0.2rem;
    line-height: 1.3;
}

[b-flkxsp6pqq] .fm-module-desc {
    font-size: 0.82rem;
    color: var(--crm-text-2);
    line-height: 1.5;
    margin-bottom: 0.5rem;
}

[b-flkxsp6pqq] .fm-status-badge {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

[b-flkxsp6pqq] .fm-status-active {
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
    border: 1px solid var(--crm-teal);
}

[b-flkxsp6pqq] .fm-status-inactive {
    background: var(--crm-bg);
    color: var(--crm-text-3);
    border: 1px solid var(--crm-border-2);
}

[b-flkxsp6pqq] .fm-module-toggle {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    flex-shrink: 0;
    padding-top: 0.15rem;
}

/* =====================================================
   Custom Objects -- Sub-tabs
   ===================================================== */

[b-flkxsp6pqq] .co-subtab-bar {
    display: flex;
    gap: 0.15rem;
    background: var(--crm-surface-2);
    border-radius: var(--crm-r);
    padding: 3px;
    margin-bottom: 1.5rem;
    width: fit-content;
}

[b-flkxsp6pqq] .co-subtab {
    padding: 0.4rem 1.1rem;
    background: none;
    border: none;
    border-radius: calc(var(--crm-r) - 2px);
    font-family: 'Outfit', sans-serif;
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--crm-text-2);
    cursor: pointer;
    transition: background-color var(--crm-fast) ease,
                color var(--crm-fast) ease,
                box-shadow var(--crm-fast) ease;
    white-space: nowrap;
}

[b-flkxsp6pqq] .co-subtab:hover { color: var(--crm-navy); }

[b-flkxsp6pqq] .co-subtab.active {
    background: var(--crm-white);
    color: var(--crm-navy);
    font-weight: 600;
    box-shadow: var(--crm-shadow-xs);
}

/* =====================================================
   Settings -- Sub-tabs (reusable pill-bar)
   ===================================================== */

.settings-subtab-bar[b-flkxsp6pqq] {
    display: flex;
    gap: 0.15rem;
    background: var(--crm-surface-2);
    border-radius: var(--crm-r);
    padding: 3px;
    margin-bottom: 1.5rem;
    width: fit-content;
}

.settings-subtab[b-flkxsp6pqq] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 1.1rem;
    background: none;
    border: none;
    border-radius: calc(var(--crm-r) - 2px);
    font-family: 'Outfit', sans-serif;
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--crm-text-2);
    cursor: pointer;
    transition: background-color var(--crm-fast) ease,
                color var(--crm-fast) ease,
                box-shadow var(--crm-fast) ease;
    white-space: nowrap;
    text-decoration: none;
}

.settings-subtab:hover[b-flkxsp6pqq] { color: var(--crm-navy); }

.settings-subtab.active[b-flkxsp6pqq] {
    background: var(--crm-white);
    color: var(--crm-navy);
    font-weight: 600;
    box-shadow: var(--crm-shadow-xs);
}

.settings-subtab i[b-flkxsp6pqq] {
    font-size: 0.85rem;
}

/* External link icon for nav-away sub-tabs */
.settings-subtab-ext[b-flkxsp6pqq] {
    font-size: 0.6rem;
    opacity: 0.4;
    margin-left: 0.1rem;
    transition: opacity var(--crm-fast) ease;
}
.settings-subtab-link:hover .settings-subtab-ext[b-flkxsp6pqq] {
    opacity: 0.7;
}

/* =====================================================
   Master-Detail layout
   ===================================================== */

[b-flkxsp6pqq] .co-master-detail {
    display: grid;
    grid-template-columns: minmax(280px, 2fr) 3fr;
    gap: 1.25rem;
    align-items: start;
    min-height: 420px;
}

@media (max-width: 900px) {
    [b-flkxsp6pqq] .co-master-detail { grid-template-columns: 1fr; }
}

/* Left panel -- object type list */
[b-flkxsp6pqq] .co-master {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
    overflow: visible;
    box-shadow: var(--crm-shadow-xs);
}

[b-flkxsp6pqq] .co-master-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--crm-border);
    background: var(--crm-bg);
    border-radius: var(--crm-r) var(--crm-r) 0 0;
}

[b-flkxsp6pqq] .co-master-search {
    flex: 1;
    padding: 0.3rem 0.6rem;
    font-size: 0.82rem;
    font-family: inherit;
    border: 1px solid var(--crm-border-2);
    border-radius: var(--crm-r-sm);
    background: var(--crm-white);
    outline: none;
    transition: border-color var(--crm-fast) ease, box-shadow var(--crm-fast) ease;
}

[b-flkxsp6pqq] .co-master-search:focus {
    border-color: var(--crm-navy);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--crm-navy) 12%, transparent);
}

[b-flkxsp6pqq] .co-master-search::placeholder { color: var(--crm-text-3); }

[b-flkxsp6pqq] .co-master-list {
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    max-height: 520px;
    padding: 6px;
}

[b-flkxsp6pqq] .co-master-item {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.7rem 1rem;
    border: none;
    border-bottom: 1px solid var(--crm-border);
    background: var(--crm-white);
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    transition: background-color var(--crm-fast) ease;
    position: relative;
    width: 100%;
}

[b-flkxsp6pqq] .co-master-item:last-child { border-bottom: none; }

[b-flkxsp6pqq] .co-master-item:hover { background: var(--crm-bg); }

[b-flkxsp6pqq] .co-master-item.selected {
    background: var(--crm-teal-50);
    border-left: 3px solid var(--crm-teal);
    padding-left: calc(1rem - 3px);
}

[b-flkxsp6pqq] .co-master-item.selected:hover { background: var(--crm-teal-50); }

[b-flkxsp6pqq] .co-master-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: var(--crm-r-sm);
    background: var(--crm-surface-2);
    color: var(--crm-navy-400);
    font-size: 0.9rem;
    flex-shrink: 0;
    transition: background-color var(--crm-fast) ease, color var(--crm-fast) ease;
}

[b-flkxsp6pqq] .co-master-item.selected .co-master-icon {
    background: var(--crm-teal-glow);
    color: var(--crm-teal-600);
}

[b-flkxsp6pqq] .co-master-info { flex: 1; min-width: 0; }

[b-flkxsp6pqq] .co-master-name {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--crm-navy);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

[b-flkxsp6pqq] .co-master-meta {
    font-size: 0.72rem;
    color: var(--crm-text-3);
    margin-top: 1px;
}

[b-flkxsp6pqq] .co-master-add {
    padding: 0.65rem 1rem;
    border-top: 1px solid var(--crm-border);
    background: var(--crm-bg);
    border-radius: 0 0 var(--crm-r) var(--crm-r);
}

/* Right panel -- detail/fields */
[b-flkxsp6pqq] .co-detail {
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
    box-shadow: var(--crm-shadow-xs);
    overflow: hidden;
}

[b-flkxsp6pqq] .co-detail-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1.15rem;
    background: var(--crm-bg);
    border-bottom: 1px solid var(--crm-border);
}

[b-flkxsp6pqq] .co-detail-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: 'Outfit', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    color: var(--crm-navy);
}

[b-flkxsp6pqq] .co-detail-title i {
    color: var(--crm-teal-600);
    font-size: 1.1rem;
}

[b-flkxsp6pqq] .co-detail-body { padding: 1.15rem; }

[b-flkxsp6pqq] .co-detail-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 360px;
    color: var(--crm-text-3);
    text-align: center;
    padding: 2rem;
}

[b-flkxsp6pqq] .co-detail-empty-icon {
    font-size: 2.5rem;
    margin-bottom: 0.75rem;
    opacity: 0.35;
}

[b-flkxsp6pqq] .co-detail-empty-text {
    font-size: 0.88rem;
    max-width: 240px;
    line-height: 1.5;
}

/* =====================================================
   SortableList -- context overrides (core styles in SortableList.razor.css)
   ===================================================== */

/* Field row inside sortable list */
[b-flkxsp6pqq] .sl-field-label {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--crm-navy);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    letter-spacing: -0.01em;
}

[b-flkxsp6pqq] .sl-field-key {
    font-family: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace;
    font-size: 0.7rem;
    color: var(--crm-text-3);
    background: var(--crm-bg);
    padding: 0.15rem 0.45rem;
    border-radius: 4px;
    border: 1px solid var(--crm-border);
}

/* A field with rules between its options (Data & Schema) — navy, like the rules card. */
[b-flkxsp6pqq] .sl-field-rules {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: rgba(58, 90, 150, 0.1);
    color: var(--crm-navy-600, #1E3D70);
    white-space: nowrap;
}

[b-flkxsp6pqq] .sl-field-type {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.72rem;
    font-weight: 600;
    white-space: nowrap;
    padding: 0.15rem 0.5rem;
    border-radius: 10px;
    letter-spacing: 0.02em;
    /* Default coloring — overridden per type */
    background: var(--crm-surface-2);
    color: var(--crm-text-2);
}

/* Type-specific badge colors */
[b-flkxsp6pqq] .sl-field-type[data-type="Text"]        { background: #f0f4f8; color: #475569; }
[b-flkxsp6pqq] .sl-field-type[data-type="Note"]        { background: #f0f4f8; color: #475569; }
[b-flkxsp6pqq] .sl-field-type[data-type="Number"]      { background: #eff6ff; color: #1d4ed8; }
[b-flkxsp6pqq] .sl-field-type[data-type="Date"]        { background: #fdf4ff; color: #7e22ce; }
[b-flkxsp6pqq] .sl-field-type[data-type="Boolean"]     { background: #fffbeb; color: #b45309; }
[b-flkxsp6pqq] .sl-field-type[data-type="Dropdown"]    { background: var(--crm-teal-50); color: var(--crm-teal-600); }
[b-flkxsp6pqq] .sl-field-type[data-type="MultiSelect"] { background: var(--crm-teal-50); color: var(--crm-teal-600); }
[b-flkxsp6pqq] .sl-field-type[data-type="Url"]         { background: #eef2ff; color: #4338ca; }
[b-flkxsp6pqq] .sl-field-type[data-type="Email"]       { background: #fef2f2; color: #b91c1c; }
[b-flkxsp6pqq] .sl-field-type[data-type="Phone"]       { background: #ecfdf5; color: #047857; }

/* Field type icons (inserted via CSS) */
[b-flkxsp6pqq] .sl-field-type-icon {
    font-size: 0.72rem;
    flex-shrink: 0;
}

[b-flkxsp6pqq] .sl-field-badge {
    display: inline-block;
    padding: 0.1rem 0.4rem;
    border-radius: 20px;
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

[b-flkxsp6pqq] .sl-field-badge.required {
    background: #fef2f2;
    color: #991b1b;
    border: 1px solid #fca5a5;
}

/* Required dot indicator (alternative to badge) */
[b-flkxsp6pqq] .sl-field-required-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #ef4444;
    flex-shrink: 0;
    box-shadow: 0 0 0 2px #fecaca;
}

/* Hover left accent on field rows */
[b-flkxsp6pqq] .sl-item:hover {
    border-left: 2px solid var(--crm-navy-400);
    padding-left: calc(0.75rem - 2px);
}

[b-flkxsp6pqq] .sl-compact .sl-item:hover {
    padding-left: calc(0.6rem - 2px);
}

/* Action buttons inside sortable list */
[b-flkxsp6pqq] .sl-action-btn {
    padding: 0.15rem 0.5rem;
    font-size: 0.72rem;
    line-height: 1.3;
    border-radius: 4px;
}

/* co-master-item nesting fix -- selected state lifted to sl-item */
[b-flkxsp6pqq] .sl-content .co-master-item {
    padding: 0;
    border: none;
    background: transparent;
    width: 100%;
}

[b-flkxsp6pqq] .sl-content .co-master-item:hover {
    background: transparent;
}

[b-flkxsp6pqq] .sl-content .co-master-item.selected {
    background: transparent;
    border-left: none;
    padding-left: 0;
}

[b-flkxsp6pqq] .sl-item:has(.co-master-item.selected) {
    background: var(--crm-teal-50);
    border-left: 3px solid var(--crm-teal);
    padding-left: calc(0.75rem - 3px);
}

/* =====================================================
   Object type inline edit form (in detail panel)
   ===================================================== */

[b-flkxsp6pqq] .co-props-form {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 0.75rem;
    padding: 0.75rem 0;
    margin-bottom: 0.75rem;
    border-bottom: 1px solid var(--crm-border);
    align-items: end;
}

@media (max-width: 700px) {
    [b-flkxsp6pqq] .co-props-form { grid-template-columns: 1fr; }
}

[b-flkxsp6pqq] .co-props-field label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
    margin-bottom: 0.2rem;
    display: block;
}

/* =====================================================
   Built-in Entities -- master panel overrides
   ===================================================== */

[b-flkxsp6pqq] .bei-master-list {
    max-height: 560px;
}

[b-flkxsp6pqq] .bei-section-header {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--crm-text-3);
    padding: 0.75rem 1rem 0.35rem;
    background: var(--crm-white);
    position: sticky;
    top: 0;
    z-index: 1;
    border-bottom: 1px solid var(--crm-border);
}

[b-flkxsp6pqq] .bei-section-header i {
    font-size: 0.8rem;
    color: var(--crm-navy-400);
}

[b-flkxsp6pqq] .bei-section-group {
    margin-left: 0.75rem;
    border-left: 2px solid var(--crm-border);
    margin-bottom: 0.5rem;
    position: relative;
}

/* Tree-rail connector dots at each item */
[b-flkxsp6pqq] .bei-section-group .bei-item::before {
    content: '';
    position: absolute;
    left: -0.75rem;
    top: 50%;
    width: 8px;
    height: 2px;
    background: var(--crm-border);
    transform: translateX(-2px);
}

[b-flkxsp6pqq] .bei-section-group .bei-item {
    position: relative;
}

[b-flkxsp6pqq] .bei-item {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.55rem 0.85rem;
    border: none;
    border-bottom: 1px solid var(--crm-border);
    background: var(--crm-white);
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    transition: background-color var(--crm-fast) ease;
    width: 100%;
}

[b-flkxsp6pqq] .bei-item:last-child { border-bottom: none; }

[b-flkxsp6pqq] .bei-item:hover { background: var(--crm-bg); }

[b-flkxsp6pqq] .bei-item.selected {
    background: var(--crm-teal-50);
    border-left: 3px solid var(--crm-teal);
    padding-left: calc(0.85rem - 3px);
}

[b-flkxsp6pqq] .bei-item.selected:hover { background: var(--crm-teal-50); }

[b-flkxsp6pqq] .bei-item-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: var(--crm-r-sm);
    font-size: 0.8rem;
    flex-shrink: 0;
    color: var(--crm-white);
    transition: background-color var(--crm-fast) ease;
}

[b-flkxsp6pqq] .bei-icon-account { background: var(--crm-navy-400); }
[b-flkxsp6pqq] .bei-icon-contact { background: var(--crm-teal-600); }
[b-flkxsp6pqq] .bei-icon-workgroup { background: var(--crm-navy-700); }
[b-flkxsp6pqq] .bei-icon-visit { background: var(--crm-text-2); }

[b-flkxsp6pqq] .bei-item-info { flex: 1; min-width: 0; }

[b-flkxsp6pqq] .bei-item-name {
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--crm-navy);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
}

[b-flkxsp6pqq] .bei-all-name { font-weight: 500; }

[b-flkxsp6pqq] .bei-item-badge {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--crm-text-3);
    background: var(--crm-surface-2);
    padding: 0.12rem 0.5rem;
    border-radius: 10px;
    white-space: nowrap;
    flex-shrink: 0;
    transition: opacity var(--crm-fast) ease;
}

/* Dim badge when zero fields */
[b-flkxsp6pqq] .bei-item-badge.bei-badge-empty {
    opacity: 0.45;
    font-weight: 400;
}

/* Category-colored badges for items with fields */
[b-flkxsp6pqq] .bei-icon-account ~ .bei-item-info ~ .bei-item-badge:not(.bei-badge-empty) {
    background: rgba(58, 90, 150, 0.1);
    color: var(--crm-navy-400);
}

[b-flkxsp6pqq] .bei-icon-contact ~ .bei-item-info ~ .bei-item-badge:not(.bei-badge-empty) {
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
}

[b-flkxsp6pqq] .bei-add-type {
    padding: 0.4rem 0.85rem;
    border-top: 1px solid var(--crm-border);
    background: var(--crm-bg);
}

[b-flkxsp6pqq] .bei-add-type-btn {
    font-size: 0.78rem;
    color: var(--crm-text-3);
    padding: 0;
    text-decoration: none;
}

[b-flkxsp6pqq] .bei-add-type-btn:hover {
    color: var(--crm-navy);
}

[b-flkxsp6pqq] .bei-detail-subtitle {
    font-size: 0.76rem;
    color: var(--crm-text-3);
    font-style: italic;
    margin-top: 1px;
}

/* ── Detail header enhancements ── */

[b-flkxsp6pqq] .bei-detail-header-left {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

[b-flkxsp6pqq] .bei-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.72rem;
    color: var(--crm-text-3);
}

[b-flkxsp6pqq] .bei-breadcrumb-sep {
    font-size: 0.55rem;
    opacity: 0.6;
}

[b-flkxsp6pqq] .bei-breadcrumb-current {
    color: var(--crm-navy);
    font-weight: 600;
}

[b-flkxsp6pqq] .bei-detail-title-row {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

[b-flkxsp6pqq] .bei-detail-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: var(--crm-r);
    font-size: 1rem;
    flex-shrink: 0;
    color: var(--crm-white);
}

[b-flkxsp6pqq] .bei-detail-actions {
    display: flex;
    gap: 0.35rem;
    align-items: center;
}

/* Overflow menu */
[b-flkxsp6pqq] .bei-overflow-menu {
    position: relative;
}

[b-flkxsp6pqq] .bei-overflow-btn {
    padding: 0.25rem 0.45rem;
    line-height: 1;
}

[b-flkxsp6pqq] .bei-overflow-dropdown {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    min-width: 160px;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    box-shadow: var(--crm-shadow);
    z-index: 100;
    padding: 0.25rem 0;
    animation: bei-dropdown-in-b-flkxsp6pqq 0.12s var(--crm-ease) both;
}

@keyframes bei-dropdown-in-b-flkxsp6pqq {
    0%   { opacity: 0; transform: translateY(-4px) scale(0.97); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

[b-flkxsp6pqq] .bei-overflow-item {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0.5rem 0.85rem;
    border: none;
    background: transparent;
    font-size: 0.82rem;
    color: var(--crm-text);
    cursor: pointer;
    text-align: left;
    transition: background-color var(--crm-fast) ease;
}

[b-flkxsp6pqq] .bei-overflow-item:hover {
    background: var(--crm-bg);
}

[b-flkxsp6pqq] .bei-overflow-danger {
    color: #b91c1c;
}

[b-flkxsp6pqq] .bei-overflow-danger:hover {
    background: #fef2f2;
}

[b-flkxsp6pqq] .bei-overflow-backdrop {
    position: fixed;
    inset: 0;
    z-index: 99;
}

/* ── Empty fields state ── */

[b-flkxsp6pqq] .bei-empty-fields {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2.5rem 1rem;
    text-align: center;
    gap: 0.65rem;
}

[b-flkxsp6pqq] .bei-empty-fields-icon {
    font-size: 2rem;
    color: var(--crm-border-2);
    line-height: 1;
}

[b-flkxsp6pqq] .bei-empty-fields-text {
    font-size: 0.85rem;
    color: var(--crm-text-3);
}

/* bei-item nesting fix for SortableList */
[b-flkxsp6pqq] .sl-content .bei-item {
    padding: 0;
    border: none;
    background: transparent;
    width: 100%;
}

[b-flkxsp6pqq] .sl-content .bei-item:hover {
    background: transparent;
}

[b-flkxsp6pqq] .sl-content .bei-item.selected {
    background: transparent;
    border-left: none;
    padding-left: 0;
}

[b-flkxsp6pqq] .sl-item:has(.bei-item.selected) {
    background: var(--crm-teal-50);
    border-left: 3px solid var(--crm-teal);
    padding-left: calc(0.75rem - 3px);
}

/* =====================================================
   Email Settings
   ===================================================== */

[b-flkxsp6pqq] .em-status-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

[b-flkxsp6pqq] .em-dot-connected {
    background: var(--crm-teal);
    box-shadow: 0 0 0 3px var(--crm-teal-50);
}

[b-flkxsp6pqq] .em-dot-disconnected {
    background: var(--crm-border-2);
    box-shadow: 0 0 0 3px var(--crm-bg);
}

[b-flkxsp6pqq] .em-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

[b-flkxsp6pqq] .em-form-grid .form-label {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--crm-text-2);
    margin-bottom: 0.2rem;
}

[b-flkxsp6pqq] .em-span-full { grid-column: 1 / -1; }

[b-flkxsp6pqq] .em-field-hint {
    display: block;
    font-size: 0.72rem;
    color: var(--crm-text-3);
    margin-top: 0.2rem;
}

[b-flkxsp6pqq] .em-test-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

[b-flkxsp6pqq] .em-test-row input {
    flex: 1;
    max-width: 280px;
}

@media (max-width: 640px) {
    [b-flkxsp6pqq] .em-form-grid { grid-template-columns: 1fr; }
    [b-flkxsp6pqq] .em-span-full { grid-column: auto; }
    [b-flkxsp6pqq] .em-test-row { flex-direction: column; align-items: stretch; }
    [b-flkxsp6pqq] .em-test-row input { max-width: none; }
}

/* Hero image preview */
[b-flkxsp6pqq] .em-hero-preview-wrap {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    background: var(--crm-bg);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    max-width: 420px;
    margin-bottom: 0.5rem;
}

[b-flkxsp6pqq] .em-hero-preview-img {
    max-height: 60px;
    max-width: 280px;
    object-fit: contain;
    border-radius: var(--crm-r-sm);
}

/* =====================================================
   Notification Toggle Groups
   ===================================================== */

[b-flkxsp6pqq] .em-notif-groups {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1rem;
}

[b-flkxsp6pqq] .em-notif-group {
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    overflow: hidden;
    background: var(--crm-white);
}

[b-flkxsp6pqq] .em-notif-group-header {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 0.9rem;
    background: var(--crm-bg);
    border-bottom: 1px solid var(--crm-border);
    font-family: 'Outfit', sans-serif;
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--crm-text-3);
}

[b-flkxsp6pqq] .em-notif-group-header i {
    font-size: 0.85rem;
    color: var(--crm-navy-400);
}

[b-flkxsp6pqq] .em-notif-group-body {
    display: flex;
    flex-direction: column;
}

[b-flkxsp6pqq] .em-notif-toggle {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 0.9rem;
    cursor: pointer;
    transition: background-color var(--crm-fast) ease;
    font-size: 0.85rem;
    color: var(--crm-text);
    border-bottom: 1px solid var(--crm-border);
    margin: 0;
}

[b-flkxsp6pqq] .em-notif-toggle:last-child { border-bottom: none; }

[b-flkxsp6pqq] .em-notif-toggle:hover { background: var(--crm-bg); }

/* ── Notification Preview Rows ───────────────────────── */

[b-flkxsp6pqq] .em-preview-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.6rem 0.9rem;
    border-bottom: 1px solid var(--crm-border);
}

[b-flkxsp6pqq] .em-preview-row:last-child { border-bottom: none; }

[b-flkxsp6pqq] .em-preview-info {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

[b-flkxsp6pqq] .em-preview-label {
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--crm-text);
}

[b-flkxsp6pqq] .em-preview-desc {
    font-size: 0.74rem;
    color: var(--crm-text-3);
    line-height: 1.3;
}

[b-flkxsp6pqq] .em-preview-btn {
    flex-shrink: 0;
    min-width: 52px;
}

/* ── Security Policy ─────────────────────────────────── */

[b-flkxsp6pqq] .sec-toggle-group {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    overflow: hidden;
}

[b-flkxsp6pqq] .sec-toggle-group .em-notif-toggle { margin: 0; }

[b-flkxsp6pqq] .sec-admin-unlock-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.65rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    background: #fef3c7;
    color: #92400e;
    border: 1px solid #fcd34d;
}

/* ── Email Provider Cards ────────────────────────────── */

[b-flkxsp6pqq] .em-provider-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--crm-text-3);
    margin-bottom: 0.6rem;
}

[b-flkxsp6pqq] .em-provider-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0.6rem;
    margin-bottom: 1.5rem;
}

[b-flkxsp6pqq] .em-provider-grid-sm {
    grid-template-columns: repeat(4, 1fr);
    margin-bottom: 1rem;
}

[b-flkxsp6pqq] .em-provider-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding: 1rem 0.5rem 0.75rem;
    background: var(--crm-white);
    border: 1.5px solid var(--crm-border);
    border-radius: var(--crm-r);
    cursor: pointer;
    transition: border-color var(--crm-fast) ease,
                background-color var(--crm-fast) ease,
                box-shadow var(--crm-fast) ease;
    text-align: center;
}

[b-flkxsp6pqq] .em-provider-card:hover {
    border-color: var(--crm-border-2);
    background: var(--crm-bg);
}

[b-flkxsp6pqq] .em-provider-card.em-provider-active {
    border-color: var(--crm-teal);
    background: var(--crm-teal-50);
    box-shadow: 0 0 0 2px var(--crm-teal-glow);
}

[b-flkxsp6pqq] .em-provider-card-sm {
    padding: 0.65rem 0.4rem 0.55rem;
}

[b-flkxsp6pqq] .em-provider-card-sm .em-provider-icon {
    font-size: 1.1rem;
}

[b-flkxsp6pqq] .em-provider-icon {
    font-size: 1.4rem;
    color: var(--crm-navy-400);
    transition: color var(--crm-fast) ease;
}

[b-flkxsp6pqq] .em-provider-active .em-provider-icon {
    color: var(--crm-teal-600);
}

[b-flkxsp6pqq] .em-provider-name {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--crm-text);
    line-height: 1.2;
}

[b-flkxsp6pqq] .em-provider-tag {
    font-size: 0.68rem;
    color: var(--crm-text-3);
    line-height: 1.1;
}

[b-flkxsp6pqq] .em-provider-config {
    padding: 0.25rem 0 0 0;
}

/* Fallback section */

[b-flkxsp6pqq] .em-fallback-section {
    margin-top: 1.5rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    overflow: hidden;
}

[b-flkxsp6pqq] .em-fallback-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.85rem 1rem;
    cursor: pointer;
    background: var(--crm-bg);
    transition: background-color var(--crm-fast) ease;
}

[b-flkxsp6pqq] .em-fallback-toggle:hover {
    background: var(--crm-surface-2);
}

[b-flkxsp6pqq] .em-fallback-icon {
    font-size: 1.1rem;
    color: var(--crm-navy-400);
}

[b-flkxsp6pqq] .em-fallback-title {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--crm-text);
}

[b-flkxsp6pqq] .em-fallback-desc {
    font-size: 0.72rem;
    color: var(--crm-text-3);
    line-height: 1.3;
}

[b-flkxsp6pqq] .em-fallback-chevron {
    font-size: 0.85rem;
    color: var(--crm-text-3);
    transition: transform var(--crm-fast) ease;
}

[b-flkxsp6pqq] .em-fallback-body {
    padding: 1rem;
    border-top: 1px solid var(--crm-border);
}

[b-flkxsp6pqq] .em-fallback-enable {
    margin-bottom: 0.75rem;
}

/* Responsive */

@media (max-width: 900px) {
    [b-flkxsp6pqq] .em-provider-grid { grid-template-columns: repeat(3, 1fr); }
    [b-flkxsp6pqq] .em-provider-grid-sm { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    [b-flkxsp6pqq] .em-provider-grid { grid-template-columns: repeat(2, 1fr); }
    [b-flkxsp6pqq] .em-provider-grid-sm { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 400px) {
    [b-flkxsp6pqq] .em-provider-grid { grid-template-columns: 1fr; }
    [b-flkxsp6pqq] .em-provider-grid-sm { grid-template-columns: 1fr; }
}

/* ── Mobile: scrollable sub-tab bars ──────────────────── */

@media (max-width: 640.98px) {
    .settings-subtab-bar[b-flkxsp6pqq],
    [b-flkxsp6pqq] .co-subtab-bar {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        width: 100%;
        flex-wrap: nowrap;
    }
    .settings-subtab-bar[b-flkxsp6pqq]::-webkit-scrollbar,
    [b-flkxsp6pqq] .co-subtab-bar::-webkit-scrollbar { display: none; }
    .settings-subtab[b-flkxsp6pqq],
    [b-flkxsp6pqq] .co-subtab { flex-shrink: 0; }
}
/* /Pages/Admin/AdminUsage.razor.rz.scp.css */
/* Usage analytics. Quiet cards in the CRM's language; the one distinctive device is the day strip, a row of
   small cells per person, so regular use and drift read at a glance down the list. */

.ua[b-yu8qbfs6k6] { display: grid; gap: 1rem; }
.ua-back[b-yu8qbfs6k6] { font-size: .8rem; font-weight: 500; color: var(--crm-text-3); text-decoration: none; }

.ua-head[b-yu8qbfs6k6] { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1rem; }
.ua-head h1[b-yu8qbfs6k6] { margin: 0 0 .25rem; }
.ua-lede[b-yu8qbfs6k6] { margin: 0; max-width: 68ch; font-size: .9rem; color: var(--crm-text-2); }

.ua-range[b-yu8qbfs6k6] { display: inline-flex; flex-wrap: wrap; }

.ua-seg[b-yu8qbfs6k6] {
    padding: .32rem .8rem;
    border: 1px solid var(--crm-border-2);
    background: var(--crm-white);
    font-size: .82rem;
    font-weight: 500;
    color: var(--crm-text-2);
    cursor: pointer;
}

.ua-seg + .ua-seg[b-yu8qbfs6k6] { margin-left: -1px; }
.ua-seg:first-child[b-yu8qbfs6k6] { border-radius: var(--crm-r-sm) 0 0 var(--crm-r-sm); }
.ua-seg:last-child[b-yu8qbfs6k6] { border-radius: 0 var(--crm-r-sm) var(--crm-r-sm) 0; }
.ua-on[b-yu8qbfs6k6], .ua-on:hover[b-yu8qbfs6k6] { position: relative; border-color: var(--crm-teal-600); background: var(--crm-teal-50); color: var(--crm-navy); }
.ua-seg:focus-visible[b-yu8qbfs6k6] { outline: 2px solid var(--crm-teal); outline-offset: 1px; position: relative; z-index: 1; }

.ua-banner[b-yu8qbfs6k6] {
    display: flex;
    gap: .8rem;
    padding: .8rem 1rem;
    border: 1px solid var(--crm-border);
    border-left: 3px solid var(--crm-teal-600);
    border-radius: var(--crm-r-sm);
    background: var(--crm-white);
    font-size: .88rem;
}

.ua-banner > i[b-yu8qbfs6k6] { color: var(--crm-teal-600); margin-top: .1rem; }
.ua-banner div[b-yu8qbfs6k6] { display: flex; flex-wrap: wrap; gap: .3rem .6rem; align-items: center; }

.ua-tabs[b-yu8qbfs6k6] { display: flex; gap: 1.25rem; border-bottom: 1px solid var(--crm-border); }

.ua-tabs button[b-yu8qbfs6k6] {
    padding: .5rem 0;
    border: 0;
    border-bottom: 2px solid transparent;
    background: none;
    font-weight: 500;
    color: var(--crm-text-2);
    cursor: pointer;
}

.ua-tabs .ua-tab-on[b-yu8qbfs6k6] { color: var(--crm-navy); border-bottom-color: var(--crm-teal-600); }

.ua-error[b-yu8qbfs6k6] { padding: .7rem 1rem; border: 1px solid #F4C7C3; border-radius: var(--crm-r-sm); background: #FFFBFA; color: #B42318; font-size: .88rem; }
.ua-note[b-yu8qbfs6k6] { margin: .4rem 0 0; font-size: .78rem; color: var(--crm-text-2); }

/* ── KPIs ── */
.ua-kpis[b-yu8qbfs6k6] { display: grid; grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr)); gap: .75rem; }

.ua-kpi[b-yu8qbfs6k6] {
    display: grid;
    gap: .15rem;
    padding: .9rem 1rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
}

.ua-kpi-label[b-yu8qbfs6k6] { font-size: .8rem; color: var(--crm-text-2); }
.ua-kpi-value[b-yu8qbfs6k6] { font-size: 1.7rem; font-weight: 700; color: var(--crm-navy); font-variant-numeric: tabular-nums; line-height: 1.15; }
.ua-kpi-delta[b-yu8qbfs6k6] { font-size: .76rem; color: var(--crm-text-3); }
.ua-up[b-yu8qbfs6k6] { color: var(--crm-teal-600); }
.ua-down[b-yu8qbfs6k6] { color: #B54708; }
.ua-kpi-note[b-yu8qbfs6k6] { font-size: .76rem; color: var(--crm-text-2); }

/* ── Cards ── */
.ua-grid[b-yu8qbfs6k6] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.ua-wide[b-yu8qbfs6k6] { grid-column: 1 / -1; }

.ua-card[b-yu8qbfs6k6] {
    padding: 1rem 1.1rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
}

.ua-card h2[b-yu8qbfs6k6] { margin: 0 0 .5rem; font-size: .95rem; font-weight: 600; color: var(--crm-text); }

/* Daily columns: staff stacked on portal. */
.ua-cols[b-yu8qbfs6k6] {
    display: grid;
    grid-template-columns: repeat(var(--n), minmax(0, 1fr));
    gap: 2px;
    align-items: end;
    height: 9rem;
    margin-top: .75rem;
}

.ua-col[b-yu8qbfs6k6] { display: flex; flex-direction: column-reverse; height: 100%; }
.ua-col-staff[b-yu8qbfs6k6] { background: var(--crm-teal-600); border-radius: 2px 2px 0 0; }
.ua-col-portal[b-yu8qbfs6k6] { background: var(--crm-navy-400); }
.ua-col:hover .ua-col-staff[b-yu8qbfs6k6], .ua-col:hover .ua-col-portal[b-yu8qbfs6k6] { filter: brightness(1.15); }
.ua-axis[b-yu8qbfs6k6] { display: flex; justify-content: space-between; margin-top: .3rem; font-size: .72rem; color: var(--crm-text-3); }

.ua-key[b-yu8qbfs6k6] { display: inline-block; width: .65rem; height: .65rem; margin: 0 .2rem 0 .6rem; border-radius: 2px; vertical-align: -1px; }
.ua-key-staff[b-yu8qbfs6k6] { background: var(--crm-teal-600); }
.ua-key-portal[b-yu8qbfs6k6] { background: var(--crm-navy-400); }

.ua-attn[b-yu8qbfs6k6] {
    display: flex;
    gap: .7rem;
    align-items: baseline;
    width: 100%;
    padding: .55rem 0;
    border: 0;
    border-top: 1px solid var(--crm-border);
    background: none;
    text-align: left;
    font-size: .86rem;
    color: var(--crm-text);
    cursor: pointer;
}

.ua-attn:first-of-type[b-yu8qbfs6k6] { border-top: 0; }
.ua-attn:hover span:last-child[b-yu8qbfs6k6] { text-decoration: underline; text-underline-offset: 2px; }
.ua-attn-n[b-yu8qbfs6k6] { min-width: 2.2rem; font-size: 1.35rem; font-weight: 700; color: var(--crm-navy); font-variant-numeric: tabular-nums; }

.ua-bar[b-yu8qbfs6k6] { display: grid; grid-template-columns: minmax(0, 9rem) minmax(0, 1fr) 2.5rem; gap: .6rem; align-items: center; padding: .22rem 0; font-size: .82rem; }
.ua-bar-label[b-yu8qbfs6k6] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--crm-text); }
.ua-bar-track[b-yu8qbfs6k6] { height: .55rem; border-radius: 999px; background: var(--crm-surface-2); overflow: hidden; }
.ua-bar-fill[b-yu8qbfs6k6] { display: block; height: 100%; border-radius: 999px; background: var(--crm-teal-600); }
.ua-fill-portal[b-yu8qbfs6k6] { background: var(--crm-navy-400); }
.ua-bar-n[b-yu8qbfs6k6] { text-align: right; font-variant-numeric: tabular-nums; color: var(--crm-text-2); }

/* ── People ── */
.ua-filters[b-yu8qbfs6k6] { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.ua-search[b-yu8qbfs6k6] { width: 14rem; }

.ua-table[b-yu8qbfs6k6] { width: 100%; border-collapse: collapse; background: var(--crm-white); border: 1px solid var(--crm-border); border-radius: var(--crm-r); overflow: hidden; }
.ua-table th[b-yu8qbfs6k6] { padding: .55rem .75rem; background: var(--crm-bg); border-bottom: 1px solid var(--crm-border); font-size: .76rem; font-weight: 600; color: var(--crm-text-2); text-align: left; }
.ua-table td[b-yu8qbfs6k6] { padding: .55rem .75rem; border-top: 1px solid var(--crm-border); font-size: .86rem; vertical-align: middle; }
.ua-table tbody tr[b-yu8qbfs6k6] { cursor: pointer; }
.ua-table tbody tr:hover[b-yu8qbfs6k6] { background: var(--crm-bg); }
.ua-num[b-yu8qbfs6k6] { text-align: right; font-variant-numeric: tabular-nums; }
.ua-person[b-yu8qbfs6k6] { display: block; font-weight: 600; color: var(--crm-navy); text-decoration: none; }
.ua-sub[b-yu8qbfs6k6] { display: block; font-size: .76rem; color: var(--crm-text-2); }
.ua-never[b-yu8qbfs6k6] { color: #B54708; }
.ua-row-off td[b-yu8qbfs6k6] { color: var(--crm-text-3); }

/* The day strip. */
.ua-strip-head[b-yu8qbfs6k6] { width: 1%; white-space: nowrap; }
.ua-strip[b-yu8qbfs6k6] { white-space: nowrap; line-height: 0; }

.ua-cell[b-yu8qbfs6k6] {
    display: inline-block;
    width: 6px;
    height: 16px;
    margin-right: 1px;
    border-radius: 1px;
    background: var(--crm-surface-2);
    background-image: linear-gradient(rgb(0 158 136 / var(--a)), rgb(0 158 136 / var(--a)));
}

.ua-skeleton[b-yu8qbfs6k6] { display: grid; grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr)); gap: .75rem; }
.ua-skeleton span[b-yu8qbfs6k6] { height: 6rem; border-radius: var(--crm-r); background: var(--crm-surface-2); }

@media (prefers-reduced-motion: no-preference) {
    .ua-skeleton span[b-yu8qbfs6k6] { animation: ua-pulse-b-yu8qbfs6k6 1.4s ease-in-out infinite; }
}

@keyframes ua-pulse-b-yu8qbfs6k6 { 50% { opacity: .55; } }

.ua-grid-2[b-yu8qbfs6k6] { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
.ua-stack[b-yu8qbfs6k6] { display: grid; gap: .75rem; align-content: start; }
.ua-table-plain[b-yu8qbfs6k6] { border: 0; }
.ua-table-plain tbody tr[b-yu8qbfs6k6] { cursor: default; }
.ua-dim[b-yu8qbfs6k6] { color: var(--crm-text-3); }
.ua-tag[b-yu8qbfs6k6] { margin-left: .35rem; padding: 0 .4rem; border-radius: 999px; background: var(--crm-surface-2); font-size: .7rem; font-weight: 600; color: var(--crm-text-2); }
.ua-plainlist[b-yu8qbfs6k6] { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; font-size: .86rem; }
.ua-plainlist li[b-yu8qbfs6k6] { display: flex; flex-wrap: wrap; gap: .2rem .6rem; }
.ua-subrow td[b-yu8qbfs6k6] { background: var(--crm-bg); padding-left: 1.5rem; }
.ua-subrow[b-yu8qbfs6k6] { cursor: default; }

@media (max-width: 1100px) {
    .ua-grid[b-yu8qbfs6k6], .ua-grid-2[b-yu8qbfs6k6] { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 760px) {
    .ua-strip[b-yu8qbfs6k6], .ua-strip-head[b-yu8qbfs6k6] { display: none; }
}
/* /Pages/Admin/AdminUsagePerson.razor.rz.scp.css */
/* One person's usage. Same card language as the usage overview; the calendar is the page's anchor. */

.up[b-hbskxrljhs] { display: grid; gap: 1rem; }
.up-back[b-hbskxrljhs] { font-size: .8rem; font-weight: 500; color: var(--crm-text-3); text-decoration: none; }

.up-head[b-hbskxrljhs] { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1rem; }
.up-head h1[b-hbskxrljhs] { margin: 0 0 .3rem; }
.up-meta[b-hbskxrljhs] { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin: 0; font-size: .86rem; color: var(--crm-text-2); }
.up-off[b-hbskxrljhs] { color: #B54708; font-weight: 600; }

.up-range[b-hbskxrljhs] { display: inline-flex; }

.up-seg[b-hbskxrljhs] {
    padding: .32rem .8rem;
    border: 1px solid var(--crm-border-2);
    background: var(--crm-white);
    font-size: .82rem;
    font-weight: 500;
    color: var(--crm-text-2);
    cursor: pointer;
}

.up-seg + .up-seg[b-hbskxrljhs] { margin-left: -1px; }
.up-seg:first-child[b-hbskxrljhs] { border-radius: var(--crm-r-sm) 0 0 var(--crm-r-sm); }
.up-seg:last-child[b-hbskxrljhs] { border-radius: 0 var(--crm-r-sm) var(--crm-r-sm) 0; }
.up-on[b-hbskxrljhs], .up-on:hover[b-hbskxrljhs] { position: relative; border-color: var(--crm-teal-600); background: var(--crm-teal-50); color: var(--crm-navy); }

.up-facts[b-hbskxrljhs] { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: .75rem; }
.up-facts > div[b-hbskxrljhs] { display: grid; padding: .8rem 1rem; border: 1px solid var(--crm-border); border-radius: var(--crm-r); background: var(--crm-white); font-size: .8rem; color: var(--crm-text-2); }
.up-n[b-hbskxrljhs] { font-size: 1.4rem; font-weight: 700; color: var(--crm-navy); font-variant-numeric: tabular-nums; }

.up-card[b-hbskxrljhs] { padding: 1rem 1.1rem; border: 1px solid var(--crm-border); border-radius: var(--crm-r); background: var(--crm-white); min-width: 0; }
.up-card h2[b-hbskxrljhs] { margin: 0 0 .5rem; font-size: .95rem; font-weight: 600; color: var(--crm-text); }
.up-note[b-hbskxrljhs] { margin: .35rem 0 0; font-size: .78rem; color: var(--crm-text-2); }

.up-grid[b-hbskxrljhs] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.up-grid-2[b-hbskxrljhs] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* Calendar: Monday-first columns of seven days. */
.up-cal[b-hbskxrljhs] {
    display: grid;
    grid-template-rows: repeat(7, 12px);
    grid-auto-flow: column;
    grid-auto-columns: 12px;
    gap: 3px;
    margin-top: .7rem;
    overflow-x: auto;
}

.up-day[b-hbskxrljhs] {
    border-radius: 2px;
    background: var(--crm-surface-2);
    background-image: linear-gradient(rgb(0 158 136 / var(--a, 0)), rgb(0 158 136 / var(--a, 0)));
}

.up-pad[b-hbskxrljhs] { background: transparent; }

.up-bar[b-hbskxrljhs] { display: grid; grid-template-columns: minmax(0, 8rem) minmax(0, 1fr) 2.6rem; gap: .5rem; align-items: center; padding: .2rem 0; font-size: .8rem; }
.up-bar-label[b-hbskxrljhs] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.up-bar-track[b-hbskxrljhs] { height: .5rem; border-radius: 999px; background: var(--crm-surface-2); overflow: hidden; }
.up-bar-fill[b-hbskxrljhs] { display: block; height: 100%; border-radius: 999px; background: var(--crm-teal-600); }
.up-bar-n[b-hbskxrljhs] { text-align: right; font-variant-numeric: tabular-nums; color: var(--crm-text-2); }

.up-dl[b-hbskxrljhs] { display: grid; grid-template-columns: auto 1fr; gap: .3rem .8rem; margin: 0; font-size: .86rem; }
.up-dl dt[b-hbskxrljhs] { color: var(--crm-text-2); font-weight: 400; }
.up-dl dd[b-hbskxrljhs] { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }

.up-list[b-hbskxrljhs] { list-style: none; margin: 0; padding: 0; max-height: 22rem; overflow-y: auto; }
.up-list li[b-hbskxrljhs] { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr) auto; gap: .6rem; padding: .35rem 0; border-top: 1px solid var(--crm-border); font-size: .82rem; }
.up-list li:first-child[b-hbskxrljhs] { border-top: 0; }
.up-when[b-hbskxrljhs] { color: var(--crm-text-2); font-variant-numeric: tabular-nums; }
.up-route[b-hbskxrljhs] { font-family: var(--crm-mono, ui-monospace, SFMono-Regular, Menlo, monospace); font-size: .78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.up-dim[b-hbskxrljhs] { color: var(--crm-text-3); white-space: nowrap; }

.up-error[b-hbskxrljhs] { padding: .7rem 1rem; border: 1px solid #F4C7C3; border-radius: var(--crm-r-sm); background: #FFFBFA; color: #B42318; }
.up-skeleton[b-hbskxrljhs] { display: grid; gap: .75rem; }
.up-skeleton span[b-hbskxrljhs] { height: 8rem; border-radius: var(--crm-r); background: var(--crm-surface-2); }

@media (max-width: 1100px) {
    .up-grid[b-hbskxrljhs], .up-grid-2[b-hbskxrljhs] { grid-template-columns: minmax(0, 1fr); }
}
/* /Pages/Admin/AssistantFeedback/FeedbackItemCard.razor.rz.scp.css */
.af-item[b-s30xbtisou] {
    padding: .7rem .9rem;
    border-bottom: 1px solid var(--crm-border, #DCE5F0);
}

.af-item:last-child[b-s30xbtisou] {
    border-bottom: 0;
}

.af-item--dismissed[b-s30xbtisou] {
    opacity: .6;
}

.af-item-head[b-s30xbtisou] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .5rem;
}

.af-reason[b-s30xbtisou] {
    font-weight: 600;
    font-size: .88rem;
    color: var(--crm-text, #0D2447);
}

.af-item-meta[b-s30xbtisou] {
    font-size: .78rem;
    color: var(--crm-text-2, #4A5B78);
}

.af-item-id[b-s30xbtisou] {
    margin-left: auto;
    font-size: .72rem;
    color: var(--crm-text-3, #8A9BB5);
}

/* The user's own words — what the owner most needs to read, so it reads like a quote. */
.af-note[b-s30xbtisou] {
    margin: .35rem 0 0;
    padding: .1rem 0 .1rem .7rem;
    border-left: 3px solid var(--crm-teal, #00C5A8);
    font-size: .88rem;
    color: var(--crm-text, #0D2447);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    max-width: 75ch;
}

.af-tools[b-s30xbtisou] {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
    margin-top: .45rem;
}

.af-tool[b-s30xbtisou],
.af-signal[b-s30xbtisou] {
    display: inline-flex;
    align-items: baseline;
    gap: .3rem;
    padding: .08rem .45rem;
    border-radius: 6px;
    font-size: .72rem;
    border: 1px solid var(--crm-border, #DCE5F0);
    background: var(--crm-white, #fff);
    color: var(--crm-text-2, #4A5B78);
}

.af-tool span:first-child[b-s30xbtisou] {
    font-family: var(--bs-font-monospace);
}

.af-tool-status[b-s30xbtisou] {
    font-weight: 600;
}

/* Colour carries the failure: a refused call (the missing-tool signal) and a thrown error
   stand out from the calls that simply ran. */
.af-tool--rejected[b-s30xbtisou] {
    border-color: #F5C2C0;
    background: #FEF3F2;
    color: #B42318;
}

.af-tool--error[b-s30xbtisou] {
    border-color: #FEDF89;
    background: #FFFAEB;
    color: #93370D;
}

.af-signal[b-s30xbtisou] {
    border-style: dashed;
}

.af-diagnosis[b-s30xbtisou] {
    margin-top: .4rem;
    font-size: .8rem;
    color: var(--crm-text-2, #4A5B78);
}

.af-diagnosis-cat[b-s30xbtisou] {
    color: var(--crm-text-3, #8A9BB5);
}

.af-suggestion[b-s30xbtisou] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-top: .45rem;
    padding: .4rem .6rem;
    border-radius: 8px;
    background: rgba(0, 197, 168, .07);
    font-size: .8rem;
}

.af-item-actions[b-s30xbtisou] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    margin-top: .45rem;
}

.af-item-actions .btn-link[b-s30xbtisou] {
    font-size: .78rem;
    text-decoration: none;
}

.af-flag[b-s30xbtisou] {
    font-size: .7rem;
    padding: .05rem .4rem;
    border-radius: 999px;
    background: #FEF3C7;
    color: #92400E;
}

.af-draft[b-s30xbtisou] {
    margin-top: .6rem;
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: var(--crm-r, 10px);
    overflow: hidden;
}

.af-draft-head[b-s30xbtisou] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    padding: .45rem .75rem;
    background: var(--bs-secondary-bg-subtle, #f4f5f7);
    font-size: .78rem;
}

.af-draft-json[b-s30xbtisou] {
    margin: 0;
    padding: .6rem .75rem;
    max-height: 22rem;
    overflow: auto;
    font-size: .72rem;
    background: var(--crm-white, #fff);
}
/* /Pages/Admin/AssistantFeedback/FeedbackThemeDetail.razor.rz.scp.css */
.af-status[b-2h74iuhq01] {
    font-size: 0.7rem;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    border: 1px solid currentColor;
}

.af-status--open[b-2h74iuhq01] { color: var(--crm-text, #0D2447); }
.af-status--triaged[b-2h74iuhq01] { color: #1D4ED8; }
.af-status--resolved[b-2h74iuhq01] { color: #067647; }
.af-status--closed[b-2h74iuhq01] { color: var(--crm-text-3, #8A9BB5); }

.af-regression[b-2h74iuhq01] {
    font-size: 0.72rem;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    background: #FEF3F2;
    color: #B42318;
}

.af-inline-select[b-2h74iuhq01] {
    width: auto;
    max-width: 22rem;
}

.af-inline-input[b-2h74iuhq01] {
    width: 14rem;
}

.af-pre[b-2h74iuhq01] {
    white-space: pre-wrap;
}

@media (max-width: 575.98px) {
    .af-inline-input[b-2h74iuhq01] { width: 100%; }
}
/* /Pages/Admin/AssistantFeedback/FeedbackTranscriptViewer.razor.rz.scp.css */
.af-transcript[b-fd5m7g2w64] {
    margin-top: .6rem;
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: var(--crm-r, 10px);
    background: var(--crm-white, #fff);
    overflow: hidden;
}

.af-transcript-banner[b-fd5m7g2w64] {
    padding: .35rem .75rem;
    background: var(--bs-secondary-bg-subtle, #f4f5f7);
    color: var(--crm-text-2, #4A5B78);
    font-size: .75rem;
}

.af-transcript-head[b-fd5m7g2w64] {
    padding: .5rem .75rem;
    border-bottom: 1px solid var(--crm-border, #DCE5F0);
    font-size: .85rem;
}

.af-turns[b-fd5m7g2w64] {
    list-style: none;
    margin: 0;
    padding: .5rem .75rem .75rem;
    max-height: 32rem;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: .55rem;
}

.af-turn[b-fd5m7g2w64] {
    padding: .45rem .65rem;
    border-radius: 8px;
    border-left: 3px solid transparent;
    font-size: .85rem;
}

.af-turn--user[b-fd5m7g2w64] {
    background: var(--bs-secondary-bg-subtle, #f4f5f7);
}

.af-turn--assistant[b-fd5m7g2w64] {
    background: transparent;
    border-left-color: var(--crm-border, #DCE5F0);
}

/* The exchange that was reported — the reason the reviewer opened this. */
.af-turn--flagged[b-fd5m7g2w64] {
    border-left-color: #B42318;
    background: rgba(180, 35, 24, .04);
}

.af-turn-who[b-fd5m7g2w64] {
    display: flex;
    align-items: baseline;
    gap: .5rem;
    font-size: .72rem;
    font-weight: 600;
    color: var(--crm-text-2, #4A5B78);
    margin-bottom: .15rem;
}

.af-turn-when[b-fd5m7g2w64] {
    font-weight: 400;
    color: var(--crm-text-3, #8A9BB5);
}

.af-turn-flag[b-fd5m7g2w64] {
    color: #B42318;
}

.af-turn-body[b-fd5m7g2w64] {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.af-turn--assistant .af-turn-body[b-fd5m7g2w64] {
    white-space: normal;
}

.af-turn-tools[b-fd5m7g2w64] {
    margin-top: .3rem;
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.af-turn-tool summary[b-fd5m7g2w64] {
    cursor: pointer;
    font-size: .75rem;
}

.af-turn-tool pre[b-fd5m7g2w64] {
    margin: .2rem 0 .3rem;
    padding: .35rem .5rem;
    max-height: 14rem;
    overflow: auto;
    background: var(--bs-secondary-bg, #f1f3f5);
    border-radius: 6px;
    font-size: .72rem;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.af-turn-tool-label[b-fd5m7g2w64] {
    font-size: .7rem;
    color: var(--crm-text-3, #8A9BB5);
}

.af-flag[b-fd5m7g2w64] {
    font-size: .7rem;
    padding: .05rem .4rem;
    border-radius: 999px;
    background: #FEF3C7;
    color: #92400E;
}
/* /Pages/Admin/AssistantFeedback/FeedbackWorklist.razor.rz.scp.css */
/* Mirrors the Data Health worklist (DataHealth/Worklist.razor.css): the same tiles, table and
   empty states, so the two queues read as one family. */

.af-lede[b-n2ecowuure] {
    max-width: 75ch;
}

.af-tiles[b-n2ecowuure] {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.5rem;
}

.af-tile[b-n2ecowuure] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    padding: 0.6rem 0.85rem;
    text-align: left;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: var(--crm-r, 10px);
    box-shadow: var(--crm-shadow-xs, 0 1px 3px rgba(13, 36, 71, 0.05));
    transition: border-color 0.12s ease, box-shadow 0.12s ease;
}

button.af-tile:hover[b-n2ecowuure] {
    border-color: var(--crm-border-2, #C5D3E8);
    box-shadow: var(--crm-shadow-sm, 0 2px 8px rgba(13, 36, 71, 0.07));
}

.af-tile:focus-visible[b-n2ecowuure] {
    outline: 2px solid var(--crm-teal, #00C5A8);
    outline-offset: 2px;
}

.af-tile--static[b-n2ecowuure] {
    background: transparent;
    box-shadow: none;
}

.af-tile--on[b-n2ecowuure] {
    border-color: var(--crm-navy, #0D2447);
    box-shadow: inset 0 0 0 1px var(--crm-navy, #0D2447);
}

.af-tile-n[b-n2ecowuure] {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.1;
    color: var(--crm-text, #0D2447);
    font-variant-numeric: tabular-nums;
}

.af-tile--attn .af-tile-n[b-n2ecowuure] {
    color: #B42318;
}

.af-tile-l[b-n2ecowuure] {
    font-size: 0.75rem;
    color: var(--crm-text-2, #4A5B78);
}

.af-chips[b-n2ecowuure] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.af-chip[b-n2ecowuure] {
    padding: 0.2rem 0.65rem;
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: 999px;
    background: var(--crm-white, #fff);
    color: var(--crm-text, #0D2447);
    font-size: 0.78rem;
}

.af-chip:hover[b-n2ecowuure] {
    border-color: var(--crm-border-2, #C5D3E8);
}

.af-chip:focus-visible[b-n2ecowuure] {
    outline: 2px solid var(--crm-teal, #00C5A8);
    outline-offset: 2px;
}

.af-chip--on[b-n2ecowuure] {
    background: var(--crm-navy, #0D2447);
    border-color: var(--crm-navy, #0D2447);
    color: #fff;
}

.af-chip-n[b-n2ecowuure] {
    margin-left: 0.2rem;
    opacity: 0.7;
    font-variant-numeric: tabular-nums;
}

.af-table td[b-n2ecowuure] {
    font-size: 0.85rem;
}

.af-theme-title[b-n2ecowuure] {
    font-weight: 600;
    text-decoration: none;
}

.af-theme-title:hover[b-n2ecowuure] {
    text-decoration: underline;
}

.af-cat[b-n2ecowuure] {
    font-size: 0.78rem;
    white-space: nowrap;
}

.af-toolname[b-n2ecowuure],
.af-proposed[b-n2ecowuure] {
    display: inline-block;
    margin: 0 0.25rem 0.15rem 0;
    padding: 0.05rem 0.35rem;
    border-radius: 5px;
    background: var(--bs-secondary-bg, #f1f3f5);
    color: var(--crm-text-2, #4A5B78);
    font-size: 0.72rem;
}

.af-proposed[b-n2ecowuure] {
    background: rgba(0, 197, 168, 0.1);
    color: #0B6B5D;
}

.af-status[b-n2ecowuure] {
    font-size: 0.7rem;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    border: 1px solid currentColor;
}

.af-status--triaged[b-n2ecowuure] { color: #1D4ED8; }
.af-status--resolved[b-n2ecowuure] { color: #067647; }
.af-status--closed[b-n2ecowuure] { color: var(--crm-text-3, #8A9BB5); }

.af-regression[b-n2ecowuure] {
    font-size: 0.7rem;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: #FEF3F2;
    color: #B42318;
}

.af-inline-select[b-n2ecowuure] {
    width: auto;
    max-width: 22rem;
}

.af-inline-input[b-n2ecowuure] {
    width: 16rem;
}

@media (max-width: 1199.98px) {
    .af-tiles[b-n2ecowuure] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 575.98px) {
    .af-tiles[b-n2ecowuure] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .af-inline-input[b-n2ecowuure] { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .af-tile[b-n2ecowuure] { transition: none; }
}
/* /Pages/Admin/Directory/MemberDirectoryAdmin.razor.rz.scp.css */
/* Membership Directory admin — curation surfaces.

   Everything here is ::deep: the three panels are child components, and their
   markup is what needs shaping. Scoped to the page rather than global because
   these are curation-screen idioms (a rule expressed as counted chips, a seat
   list whose order is the print order), not app-wide patterns. */

/* These are settings forms, not clickable tiles — the hover lift reads as an
   invitation to click and shifts the ground while you're ticking boxes. It also
   creates a containing block that fights the sticky action bar. */
[b-5xqjbfonie] .card { transition: none !important; }
[b-5xqjbfonie] .card:hover { transform: none !important; box-shadow: var(--crm-shadow-sm) !important; }

/* Card headers are uppercase small-caps by design; controls parked in one must
   opt out of the inherited letterforms or the button reads as a label. */
[b-5xqjbfonie] .card-header-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    text-transform: none;
    letter-spacing: normal;
    font-size: 0.875rem;
    font-weight: 500;
}

/* ── Rule chips ──────────────────────────────────────────────────────────────
   The listing rule is a set of account types. As bare checkboxes it reads as a
   wall of jargon with no consequence attached, so each type carries the number
   of organizations it would bring in. */

[b-5xqjbfonie] .dir-chip-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(215px, 1fr));
    gap: 0.5rem;
}

[b-5xqjbfonie] .dir-chip {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0;
    padding: 0.5rem 0.7rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    font-size: 0.875rem;
    cursor: pointer;
    transition: border-color var(--crm-fast) ease, background var(--crm-fast) ease;
}

[b-5xqjbfonie] .dir-chip:hover { border-color: var(--crm-border-2); }
[b-5xqjbfonie] .dir-chip:focus-within { outline: 2px solid var(--crm-teal); outline-offset: 1px; }
[b-5xqjbfonie] .dir-chip.is-on { border-color: var(--crm-teal); background: var(--crm-teal-50); }

[b-5xqjbfonie] .dir-chip input { margin: 0; flex: 0 0 auto; }
[b-5xqjbfonie] .dir-chip-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

[b-5xqjbfonie] .dir-chip-count {
    margin-left: auto;
    padding-left: 0.4rem;
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
    color: var(--crm-text-3);
}

[b-5xqjbfonie] .dir-chip.is-on .dir-chip-count { color: var(--crm-teal-600); font-weight: 600; }

[b-5xqjbfonie] .dir-chip.is-disabled { opacity: 0.55; cursor: default; }

/* ── Field and seat pickers ──────────────────────────────────────────────────
   Both are long lists of checkboxes. Bounded height turns a page-length wall
   into a panel you can look past, and the count in the header is the thing a
   curator actually checks before saving. */

[b-5xqjbfonie] .dir-picker {
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    background: var(--crm-white);
}

[b-5xqjbfonie] .dir-picker-head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.5rem 0.65rem;
    border-bottom: 1px solid var(--crm-border);
    background: var(--crm-bg);
    border-radius: var(--crm-r-sm) var(--crm-r-sm) 0 0;
}

[b-5xqjbfonie] .dir-picker-search {
    flex: 1 1 14rem;
    min-width: 10rem;
    max-width: 22rem;
}

[b-5xqjbfonie] .dir-picker-count {
    font-size: 0.78rem;
    color: var(--crm-text-3);
    font-variant-numeric: tabular-nums;
}

[b-5xqjbfonie] .dir-picker-body {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(235px, 1fr));
    gap: 0.1rem 1rem;
    max-height: 20rem;
    overflow-y: auto;
    padding: 0.6rem 0.65rem;
}

[b-5xqjbfonie] .dir-picker-empty {
    padding: 1rem 0.65rem;
    color: var(--crm-text-3);
    font-size: 0.875rem;
}

/* Quiet label chip. A custom field publishes whatever it happens to hold, so it
   stays marked — but muted, since twenty loud badges read as an error state. */
[b-5xqjbfonie] .dir-tag,
[b-5xqjbfonie] .dir-custom-tag {
    display: inline-block;
    padding: 0.05rem 0.3rem;
    border: 1px solid var(--crm-border-2);
    border-radius: 3px;
    font-size: 0.62rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--crm-text-3);
    vertical-align: 1px;
}

[b-5xqjbfonie] .dir-tag { margin-right: 0.3rem; }
[b-5xqjbfonie] .dir-custom-tag { margin-left: 0.35rem; }

[b-5xqjbfonie] .dir-disclosure {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0;
    border: none;
    background: none;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--crm-navy-600);
}

[b-5xqjbfonie] .dir-disclosure:hover { color: var(--crm-teal-600); }

/* ── Selected seats ──────────────────────────────────────────────────────────
   Seat order is the print order in the published directory, which the tick
   boxes alone never showed. The chosen seats get their own ordered list so the
   sequence is visible and can be changed. */

[b-5xqjbfonie] .dir-seat-order {
    padding: 0.5rem 0.65rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    background: var(--crm-bg);
}

[b-5xqjbfonie] .dir-seat-rank {
    display: inline-block;
    min-width: 1.5rem;
    margin-right: 0.5rem;
    font-size: 0.72rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--crm-text-3);
}

/* ── Staff scope ─────────────────────────────────────────────────────────────
   Two selects that decide who is listed, as opposed to which seats exist. Set
   apart from the tick-box pickers above because this is the one control on the
   screen that can widen the audience rather than the field list. */

[b-5xqjbfonie] .dir-scope {
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 8px;
    padding: 0.85rem 1rem;
    background: var(--crm-bg, #f5f7fa);
}

[b-5xqjbfonie] .dir-scope-title {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3, #6c757d);
    margin-bottom: 0.6rem;
}

[b-5xqjbfonie] .dir-scope-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

[b-5xqjbfonie] .dir-scope-row + .dir-scope-row { margin-top: 0.5rem; }

[b-5xqjbfonie] .dir-scope-label {
    flex: 0 0 11rem;
    font-size: 0.875rem;
    color: var(--crm-text-2, #495057);
}

[b-5xqjbfonie] .dir-scope-select {
    flex: 1 1 18rem;
    max-width: 26rem;
}

[b-5xqjbfonie] .dir-scope-warn {
    margin-top: 0.7rem;
    font-size: 0.82rem;
    line-height: 1.45;
    color: #7A5B12;
    background: #FBF2DC;
    border: 1px solid #E3C77E;
    border-radius: 6px;
    padding: 0.5rem 0.7rem;
}

/* ── Sticky action bar ───────────────────────────────────────────────────────
   The tier form runs past a screen. Save belongs with the summary of what was
   just changed, and both belong in reach of wherever the curator is. */

[b-5xqjbfonie] .dir-actionbar {
    position: sticky;
    bottom: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin: 1.25rem -1.25rem -1.25rem;
    /* The assistant dock is fixed to the bottom-right corner and sits above this
       bar; without the reserved gutter it lands on top of Save. */
    padding: 0.8rem 4rem 0.8rem 1.25rem;
    background: rgba(255, 255, 255, 0.93);
    backdrop-filter: blur(8px);
    border-top: 1px solid var(--crm-border);
    border-radius: 0 0 var(--crm-r) var(--crm-r);
}

[b-5xqjbfonie] .dir-actionbar-summary {
    flex: 1 1 18rem;
    font-size: 0.85rem;
    color: var(--crm-text-2);
}

[b-5xqjbfonie] .dir-actionbar-summary strong { color: var(--crm-navy); font-weight: 600; }

/* ── Row actions ─────────────────────────────────────────────────────────────
   Delete is rare and irreversible; as an outline-danger button on every row it
   shouts on a screen where nothing is usually being deleted. */

[b-5xqjbfonie] .dir-row-action {
    padding: 0.3rem 0.5rem;
    border: none;
    border-radius: var(--crm-r-sm);
    background: transparent;
    color: var(--crm-text-3);
    line-height: 1;
    transition: color var(--crm-fast) ease, background var(--crm-fast) ease;
}

[b-5xqjbfonie] .dir-row-action:hover { background: var(--crm-surface-2); color: var(--crm-navy); }
[b-5xqjbfonie] .dir-row-action.is-danger:hover { background: #FEF2F2; color: #B91C1C; }
[b-5xqjbfonie] .dir-row-action:disabled { opacity: 0.35; background: transparent; color: var(--crm-text-3); }

[b-5xqjbfonie] .dir-table td { vertical-align: middle; }
[b-5xqjbfonie] .dir-table .dir-col-shrink { width: 1%; white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {
    [b-5xqjbfonie] .dir-chip,
    [b-5xqjbfonie] .dir-row-action,
    [b-5xqjbfonie] .dir-disclosure { transition: none; }
}
/* /Pages/Admin/HelpArticleAdmin.razor.rz.scp.css */
/* Help article management.

   A settings surface: panels are workspaces rather than click targets, so this
   deliberately does not inherit the global .card hover-lift. The tab strip is a
   local two-item switcher — the shared admin tab bar belongs to the console shell,
   and this page navigates away from it. */

.hla-head[b-7qemdg4qae] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.hla-title[b-7qemdg4qae] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--crm-text, #0D2447);
    margin: 0 0 0.15rem 0;
}

.hla-sub[b-7qemdg4qae] {
    margin: 0;
    max-width: 62ch;
    font-size: 0.8125rem;
    color: var(--crm-text-2, #4A5B78);
}

/* ── Tabs ──────────────────────────────────────────────────────────────── */

.hla-tabs[b-7qemdg4qae] {
    display: flex;
    gap: 0.25rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid var(--crm-border, #DCE5F0);
}

.hla-tab[b-7qemdg4qae] {
    padding: 0.5rem 0.9rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--crm-text-2, #4A5B78);
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}

.hla-tab:hover[b-7qemdg4qae] { color: var(--crm-text, #0D2447); }

.hla-tab:focus-visible[b-7qemdg4qae] {
    outline: 2px solid var(--crm-teal, #00C5A8);
    outline-offset: -2px;
}

.hla-tab--on[b-7qemdg4qae] {
    color: var(--crm-text, #0D2447);
    border-bottom-color: var(--crm-teal, #00C5A8);
}

/* ── Filters ───────────────────────────────────────────────────────────── */

.hla-filters[b-7qemdg4qae] {
    display: grid;
    grid-template-columns: minmax(0, 22rem) minmax(0, 14rem);
    gap: 0.5rem;
    margin-bottom: 1rem;
}

/* ── Tables ────────────────────────────────────────────────────────────── */

/* Wide tables scroll inside their own container so the page body never does. */
.hla-tablewrap[b-7qemdg4qae] { overflow-x: auto; }

.hla-table[b-7qemdg4qae] {
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
}

.hla-table thead th[b-7qemdg4qae] {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--crm-text-3, #8A9BB5);
    border-bottom-color: var(--crm-border, #DCE5F0);
}

.hla-col-actions[b-7qemdg4qae] { width: 7.5rem; }

.hla-muted[b-7qemdg4qae] {
    font-size: 0.8125rem;
    color: var(--crm-text-3, #8A9BB5);
}

.hla-cat-icon[b-7qemdg4qae] { color: var(--crm-teal-600, #009E88); }

.hla-hint[b-7qemdg4qae] {
    margin: 0.25rem 0 0;
    max-width: 68ch;
    font-size: 0.75rem;
    line-height: 1.5;
    color: var(--crm-text-3, #8A9BB5);
}

.hla-pager[b-7qemdg4qae] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 0.75rem;
}

/* ── Category editor ───────────────────────────────────────────────────── */

.hla-cat-layout[b-7qemdg4qae] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 18rem;
    gap: 1.25rem;
    align-items: start;
}

.hla-panel[b-7qemdg4qae] {
    padding: 1.15rem 1.25rem;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: var(--crm-r, 10px);
    box-shadow: var(--crm-shadow-xs, 0 1px 3px rgba(13, 36, 71, 0.05));
}

.hla-panel-heading[b-7qemdg4qae] {
    margin: 0 0 0.9rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--crm-text-3, #8A9BB5);
}

.hla-field[b-7qemdg4qae] { margin-bottom: 0.85rem; }

.hla-label[b-7qemdg4qae] {
    display: block;
    margin-bottom: 0.25rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--crm-text, #0D2447);
}

/* ── States ────────────────────────────────────────────────────────────── */

.hla-loading[b-7qemdg4qae] {
    display: flex;
    justify-content: center;
    padding: 3rem 0;
}

.hla-empty[b-7qemdg4qae],
.hla-disabled[b-7qemdg4qae] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding: 3.5rem 1rem;
    text-align: center;
}

.hla-empty .bi[b-7qemdg4qae],
.hla-disabled .bi[b-7qemdg4qae] {
    font-size: 2rem;
    color: var(--crm-text-3, #8A9BB5);
    opacity: 0.6;
}

.hla-empty-title[b-7qemdg4qae],
.hla-disabled-title[b-7qemdg4qae] {
    margin: 0.4rem 0 0;
    font-size: 1.0625rem;
    font-weight: 600;
    color: var(--crm-text, #0D2447);
}

.hla-empty-hint[b-7qemdg4qae],
.hla-disabled-hint[b-7qemdg4qae] {
    margin: 0 0 1rem;
    max-width: 50ch;
    font-size: 0.8125rem;
    line-height: 1.55;
    color: var(--crm-text-2, #4A5B78);
}

@media (max-width: 991.98px) {
    .hla-cat-layout[b-7qemdg4qae] { grid-template-columns: minmax(0, 1fr); }
    .hla-filters[b-7qemdg4qae] { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 575.98px) {
    .hla-head[b-7qemdg4qae] { flex-direction: column; }
}
/* /Pages/Admin/HelpArticleEditor.razor.rz.scp.css */
/* Help article editor.

   An authoring surface, so it deliberately opts out of the global .card hover-lift —
   panels here are containers to work inside, not targets to click. The settings rail
   keeps every publishing decision (category, status, visibility, ordering) in one
   column beside the prose rather than buried below it. */

.hae-layout[b-thofommkkg] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 17rem;
    gap: 1.25rem;
    align-items: start;
}

.hae-panel[b-thofommkkg] {
    padding: 1.15rem 1.25rem;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: var(--crm-r, 10px);
    box-shadow: var(--crm-shadow-xs, 0 1px 3px rgba(13, 36, 71, 0.05));
}

.hae-panel-heading[b-thofommkkg] {
    margin: 0 0 0.9rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--crm-text-3, #8A9BB5);
}

.hae-field[b-thofommkkg] { margin-bottom: 1.1rem; }
.hae-field:last-child[b-thofommkkg] { margin-bottom: 0; }

.hae-label[b-thofommkkg] {
    display: block;
    margin-bottom: 0.3rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--crm-text, #0D2447);
}

.hae-hint[b-thofommkkg] {
    margin: 0.3rem 0 0;
    max-width: 44ch;
    font-size: 0.75rem;
    line-height: 1.45;
    color: var(--crm-text-3, #8A9BB5);
}

.hae-title-input[b-thofommkkg] {
    width: 100%;
    padding: 0.55rem 0.75rem;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--crm-text, #0D2447);
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: var(--crm-r-sm, 6px);
}

.hae-title-input:focus[b-thofommkkg] {
    outline: none;
    border-color: var(--crm-teal, #00C5A8);
    box-shadow: 0 0 0 3px var(--crm-teal-glow, rgba(0, 197, 168, 0.18));
}

/* Quill renders its own toolbar and editor divs inside the child component, so the
   frame has to be reached with ::deep. Height is set here rather than inline so the
   editor grows with the panel instead of being pinned to one magic number. */
.hae-editor[b-thofommkkg]  .ql-toolbar {
    border-color: var(--crm-border, #DCE5F0);
    border-top-left-radius: var(--crm-r-sm, 6px);
    border-top-right-radius: var(--crm-r-sm, 6px);
    background: var(--crm-bg, #F2F6FC);
}

.hae-editor[b-thofommkkg]  .ql-container {
    min-height: 26rem;
    font-size: 0.9375rem;
    border-color: var(--crm-border, #DCE5F0);
    border-bottom-left-radius: var(--crm-r-sm, 6px);
    border-bottom-right-radius: var(--crm-r-sm, 6px);
}

.hae-side[b-thofommkkg] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.hae-actions[b-thofommkkg] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.hae-loading[b-thofommkkg] {
    display: flex;
    justify-content: center;
    padding: 3rem 0;
}

.hae-disabled[b-thofommkkg] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 4rem 1rem;
    text-align: center;
}

.hae-disabled .bi[b-thofommkkg] {
    font-size: 2.25rem;
    color: var(--crm-text-3, #8A9BB5);
}

.hae-disabled-title[b-thofommkkg] {
    margin: 0.5rem 0 0;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--crm-text, #0D2447);
}

.hae-disabled-hint[b-thofommkkg] {
    margin: 0 0 1rem;
    max-width: 48ch;
    font-size: 0.875rem;
    color: var(--crm-text-2, #4A5B78);
}

@media (max-width: 991.98px) {
    .hae-layout[b-thofommkkg] { grid-template-columns: minmax(0, 1fr); }
}
/* /Pages/Admin/LivePolls/LivePollDistrictBrief.razor.rz.scp.css */
.ldb-meta[b-w1m130stmj] { color: var(--crm-text-2, #4b5563); font-size: 0.875rem; max-width: 80ch; margin: 0; }
.ldb-muted[b-w1m130stmj] { color: var(--crm-text-3, #9ca3af); font-size: 0.8rem; }

.ldb-card[b-w1m130stmj] {
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: var(--crm-r, 10px);
    padding: 16px 20px;
}

.ldb-h[b-w1m130stmj] { font-size: 0.95rem; font-weight: 600; color: var(--crm-navy, #0f172a); margin: 0 0 10px; }

.ldb-orgs[b-w1m130stmj] { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 6px 20px; font-size: 0.875rem; }
.ldb-orgs a[b-w1m130stmj], .ldb-q-meta a[b-w1m130stmj] { color: var(--crm-teal-700, #00735f); text-decoration: none; }
.ldb-orgs a:hover[b-w1m130stmj], .ldb-q-meta a:hover[b-w1m130stmj] { text-decoration: underline; }

.ldb-q-meta[b-w1m130stmj] { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; font-size: 0.82rem; }
.ldb-q[b-w1m130stmj] { font-size: 1rem; font-weight: 600; color: var(--crm-navy, #0f172a); margin: 4px 0 8px; overflow-wrap: anywhere; }

.ldb-finding[b-w1m130stmj] {
    border-left: 3px solid var(--crm-teal, #00C5A8);
    padding-left: 10px;
    font-size: 0.9rem;
    color: var(--crm-navy, #0f172a);
    margin: 0 0 10px;
}

@media (max-width: 600px) { .ldb-card[b-w1m130stmj] { padding: 14px; } }
/* /Pages/Admin/PipelineManagement.razor.rz.scp.css */
/* ── Header ────────────────────────────────── */
.pm-header[b-wiilvzg8c0] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 24px;
}

.pm-header h1[b-wiilvzg8c0] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--crm-navy);
    margin: 0;
}

.pm-subtitle[b-wiilvzg8c0] {
    font-size: 0.85rem;
    color: var(--crm-text-3);
    margin: 2px 0 0;
}

/* ── Labels ────────────────────────────────── */
.pm-label[b-wiilvzg8c0] {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--crm-text-2);
    margin-bottom: 2px;
}

/* ── Pipeline Card ─────────────────────────── */
.pm-card[b-wiilvzg8c0] {
    background: white;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    margin-bottom: 12px;
    box-shadow: var(--crm-shadow-xs);
    overflow: hidden;
    transition: box-shadow var(--crm-fast) ease;
}

.pm-card.expanded[b-wiilvzg8c0] {
    box-shadow: var(--crm-shadow-sm);
}

.pm-card-head[b-wiilvzg8c0] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    cursor: pointer;
    transition: background var(--crm-fast) ease;
}

.pm-card-head:hover[b-wiilvzg8c0] {
    background: var(--crm-bg);
}

.pm-card-left[b-wiilvzg8c0] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.pm-card-right[b-wiilvzg8c0] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.pm-expand-icon[b-wiilvzg8c0] {
    font-size: 0.6rem;
    color: var(--crm-text-3);
    transition: transform var(--crm-mid) var(--crm-ease);
    transform: rotate(-90deg);
}

.pm-expand-icon.open[b-wiilvzg8c0] {
    transform: rotate(0deg);
}

.pm-card-name[b-wiilvzg8c0] {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--crm-navy);
}

.pm-meta[b-wiilvzg8c0] {
    font-size: 0.78rem;
    color: var(--crm-text-3);
}

/* ── Badges ────────────────────────────────── */
.pm-badge[b-wiilvzg8c0] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 0.68rem;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 10px;
    letter-spacing: 0.02em;
}

.pm-badge-default[b-wiilvzg8c0] {
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
    border: 1px solid color-mix(in srgb, var(--crm-teal) 25%, transparent);
}

.pm-badge-prob[b-wiilvzg8c0] {
    background: var(--crm-bg);
    color: var(--crm-text-2);
    border: 1px solid var(--crm-border);
    font-variant-numeric: tabular-nums;
}

.pm-badge-won[b-wiilvzg8c0] {
    background: #E8F5E9;
    color: #2E7D32;
    border: 1px solid #A5D6A7;
}

.pm-badge-lost[b-wiilvzg8c0] {
    background: #FDECEA;
    color: #C62828;
    border: 1px solid #FFCDD2;
}

/* ── Icon Buttons ──────────────────────────── */
.pm-icon-btn[b-wiilvzg8c0] {
    background: none;
    border: 1px solid transparent;
    border-radius: 4px;
    padding: 4px 6px;
    font-size: 0.82rem;
    color: var(--crm-text-3);
    cursor: pointer;
    line-height: 1;
    transition: all var(--crm-fast) ease;
}

.pm-icon-btn:hover[b-wiilvzg8c0] {
    background: var(--crm-bg);
    color: var(--crm-text);
    border-color: var(--crm-border);
}

.pm-icon-btn.pm-icon-danger:hover[b-wiilvzg8c0] {
    background: #FDECEA;
    color: #C62828;
    border-color: #FFCDD2;
}

.pm-icon-btn.pm-icon-sm[b-wiilvzg8c0] {
    font-size: 0.7rem;
    padding: 2px 5px;
}

.pm-icon-btn:disabled[b-wiilvzg8c0] {
    opacity: 0.3;
    cursor: default;
}

.pm-icon-btn:disabled:hover[b-wiilvzg8c0] {
    background: none;
    color: var(--crm-text-3);
    border-color: transparent;
}

/* ── Stages ────────────────────────────────── */
.pm-stages[b-wiilvzg8c0] {
    border-top: 1px solid var(--crm-border);
    background: var(--crm-bg);
}

.pm-stage-row[b-wiilvzg8c0] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 20px 10px 36px;
    border-bottom: 1px solid var(--crm-border);
    background: white;
    transition: background var(--crm-fast) ease;
}

.pm-stage-row:hover[b-wiilvzg8c0] {
    background: #FAFCFF;
}

.pm-stage-row:last-of-type[b-wiilvzg8c0] {
    border-bottom: none;
}

.pm-stage-left[b-wiilvzg8c0] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.pm-stage-right[b-wiilvzg8c0] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.pm-stage-order[b-wiilvzg8c0] {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--crm-bg);
    border: 1px solid var(--crm-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--crm-text-3);
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
}

.pm-stage-name[b-wiilvzg8c0] {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--crm-text);
}

/* ── Add Stage Button ──────────────────────── */
.pm-add-stage-btn[b-wiilvzg8c0] {
    display: block;
    width: 100%;
    padding: 10px 20px;
    background: none;
    border: none;
    text-align: left;
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--crm-teal-600);
    cursor: pointer;
    transition: background var(--crm-fast) ease;
    padding-left: 36px;
}

.pm-add-stage-btn:hover[b-wiilvzg8c0] {
    background: color-mix(in srgb, var(--crm-teal) 6%, white);
}

/* ── Inline Forms ──────────────────────────── */
.pm-inline-form[b-wiilvzg8c0] {
    background: white;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: 16px 20px;
    margin-bottom: 16px;
    box-shadow: var(--crm-shadow-xs);
}

.pm-inline-form.pm-nested[b-wiilvzg8c0] {
    border-radius: 0;
    margin-bottom: 0;
    border-left: none;
    border-right: none;
    border-top: 1px solid var(--crm-border);
    background: #FAFCFF;
}

.pm-form-title[b-wiilvzg8c0] {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--crm-navy);
    margin-bottom: 10px;
}

.pm-stage-edit[b-wiilvzg8c0] {
    padding: 12px 20px 12px 36px;
    border-bottom: 1px solid var(--crm-border);
    background: #FAFCFF;
}

/* ── Delete Bar ────────────────────────────── */
.pm-delete-bar[b-wiilvzg8c0] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 20px;
    background: #FFF8F7;
    border-top: 1px solid #FFCDD2;
    font-size: 0.85rem;
    color: var(--crm-text);
}

.pm-delete-bar.pm-nested[b-wiilvzg8c0] {
    padding-left: 36px;
    border-bottom: 1px solid var(--crm-border);
}

.pm-delete-warn[b-wiilvzg8c0] {
    color: #C62828;
    font-weight: 500;
    margin-left: 4px;
}

/* ── Empty State ───────────────────────────── */
.pm-empty[b-wiilvzg8c0] {
    text-align: center;
    padding: 48px 24px;
    color: var(--crm-text-3);
}

.pm-empty p[b-wiilvzg8c0] {
    margin-bottom: 16px;
}

/* ── Form check overrides ──────────────────── */
.pm-card .form-check-input:checked[b-wiilvzg8c0],
.pm-inline-form .form-check-input:checked[b-wiilvzg8c0],
.pm-stage-edit .form-check-input:checked[b-wiilvzg8c0] {
    background-color: var(--crm-teal);
    border-color: var(--crm-teal);
}
/* /Pages/Admin/Surveys/SurveyFolderShareDialog.razor.rz.scp.css */
/* Keep the per-row level select narrow enough that the person's name still gets the room, but wide
   enough that "Can manage surveys" isn't clipped. */
.folder-share-level[b-9mvtebn2jk] {
    width: 12rem;
}

@media (max-width: 575.98px) {
    .folder-share-level[b-9mvtebn2jk] {
        width: 9rem;
    }
}
/* /Pages/Admin/Surveys/SurveyLinkHelpModal.razor.rz.scp.css */
.link-help p[b-28q2ai72ml] {
    line-height: 1.6;
    margin-bottom: .5rem;
}

.link-help ul[b-28q2ai72ml] {
    padding-left: 1.25rem;
    margin-bottom: .5rem;
}

.link-help ul li[b-28q2ai72ml] {
    margin-bottom: .3rem;
    line-height: 1.5;
}

/* The survey's base link, called out at the top. */
.link-help-base[b-28q2ai72ml] {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
    padding: .6rem .75rem;
    margin-bottom: 1rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
    border: 1px solid var(--bs-border-color);
    border-radius: .5rem;
}

.link-help-base-label[b-28q2ai72ml] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 600;
    color: var(--bs-secondary-color);
}

/* Each documented parameter. */
.link-help-param[b-28q2ai72ml] {
    padding: .9rem 0;
    border-top: 1px solid var(--bs-border-color-translucent, #e9ecef);
}

.link-help-param-head[b-28q2ai72ml] {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin-bottom: .4rem;
    flex-wrap: wrap;
}

.link-help-param-head h6[b-28q2ai72ml] {
    margin: 0;
    font-weight: 600;
}

/* The monospace token chip beside each heading. */
.link-help-chip[b-28q2ai72ml] {
    padding: .15rem .45rem;
    font-size: .82rem;
    white-space: nowrap;
    border-radius: .375rem;
    background: var(--bs-primary-bg-subtle, #cfe2ff);
    color: var(--bs-primary-text-emphasis, #052c65);
}

/* Copy-ready example row. */
.link-help-example[b-28q2ai72ml] {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: .45rem;
    padding: .4rem .55rem;
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color);
    border-radius: .375rem;
}

/* URL / snippet text reads as plain mono, not Bootstrap's red code colour. */
.link-help-url[b-28q2ai72ml] {
    flex: 1 1 auto;
    min-width: 10rem;
    padding: 0;
    background: transparent;
    color: var(--bs-body-color);
    word-break: break-all;
    font-size: .82rem;
}

.link-help-copy[b-28q2ai72ml] {
    flex: 0 0 auto;
    white-space: nowrap;
}

.link-help-note[b-28q2ai72ml] {
    font-size: .85rem;
    color: var(--bs-secondary-color);
    margin-top: .25rem;
}

.link-help-tip[b-28q2ai72ml] {
    margin-top: 1.1rem;
    padding: .75rem .9rem;
    background: var(--bs-warning-bg-subtle, #fff3cd);
    border: 1px solid var(--bs-warning-border-subtle, #ffe69c);
    border-radius: .5rem;
}

.link-help-tip .link-help-example[b-28q2ai72ml] {
    background: rgba(255, 255, 255, .7);
}
/* /Pages/Admin/Tabs/AdminDataCleanupTab.razor.rz.scp.css */
/* Test-data cleanup. Deliberately plain: this screen deletes things permanently, so it
   reads as a work list rather than a dashboard. */

.dct-head[b-fjb2uyrkza] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.dct-title[b-fjb2uyrkza] {
    font-size: 1.125rem;
    margin: 0 0 0.25rem;
}

.dct-sub[b-fjb2uyrkza] {
    margin: 0;
    max-width: 62ch;
    font-size: 0.8125rem;
    color: var(--crm-text-3);
}

.dct-meta[b-fjb2uyrkza] {
    font-size: 0.8125rem;
    color: var(--crm-text-3);
    margin-bottom: 0.75rem;
}

.dct-bucket[b-fjb2uyrkza] {
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    padding: 0.875rem;
    margin-bottom: 1rem;
    background: var(--crm-white);
}

.dct-bucket-head[b-fjb2uyrkza] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.5rem;
}

.dct-bucket-title[b-fjb2uyrkza] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9375rem;
    margin: 0 0 0.25rem;
}

.dct-count[b-fjb2uyrkza] {
    font-variant-numeric: tabular-nums;
    background: var(--crm-surface-2, rgba(0, 0, 0, 0.05));
    border-radius: 999px;
    padding: 0 0.5rem;
    font-size: 0.8125rem;
    color: var(--crm-text-2);
}

/* Marks a bucket that also contains legitimate hand-entered work. */
.dct-review-badge[b-fjb2uyrkza] {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.125rem 0.375rem;
    border-radius: 4px;
    background: var(--crm-warning-subtle, #fff3cd);
    color: var(--crm-warning-emphasis, #664d03);
}

.dct-bucket-desc[b-fjb2uyrkza] {
    margin: 0;
    max-width: 78ch;
    font-size: 0.8125rem;
    color: var(--crm-text-3);
}

.dct-bucket-actions[b-fjb2uyrkza] {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
}

.dct-empty[b-fjb2uyrkza],
.dct-truncated[b-fjb2uyrkza] {
    font-size: 0.8125rem;
    color: var(--crm-text-3);
    margin: 0.5rem 0;
}

/* Wide tables scroll inside their own box rather than pushing the page sideways. */
.dct-table-wrap[b-fjb2uyrkza] {
    overflow-x: auto;
    max-height: 26rem;
    overflow-y: auto;
}

.dct-name[b-fjb2uyrkza] {
    font-weight: 500;
}

.dct-friendly[b-fjb2uyrkza] {
    margin-left: 0.375rem;
    font-size: 0.75rem;
    color: var(--crm-text-3);
}

.dct-reason[b-fjb2uyrkza] {
    font-size: 0.8125rem;
    color: var(--crm-text-3);
}

.dct-protected[b-fjb2uyrkza] {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--crm-warning-emphasis, #664d03);
}

.dct-flagged[b-fjb2uyrkza] {
    background: var(--crm-warning-subtle, #fff3cd);
}

.dct-footer[b-fjb2uyrkza] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--crm-border);
}

.dct-selected[b-fjb2uyrkza] {
    margin-right: auto;
    font-size: 0.875rem;
}

.dct-skipped[b-fjb2uyrkza] {
    margin: 0.5rem 0 0;
    padding-left: 1.25rem;
    font-size: 0.8125rem;
}

.dct-owned[b-fjb2uyrkza] {
    margin: 0.25rem 0 0;
    font-size: 0.8125rem;
    color: var(--crm-text-3);
    font-style: italic;
}

.dct-flag-icon[b-fjb2uyrkza] {
    color: var(--crm-warning-emphasis, #664d03);
}
/* /Pages/Admin/Tabs/AdminFilterDefaultsTab.razor.rz.scp.css */
.fdt-lede[b-r4xiktbmmm] {
    max-width: 70ch;
}

.fdt-controls[b-r4xiktbmmm] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.75rem 1.5rem;
    margin-bottom: 0.9rem;
}

.fdt-audience[b-r4xiktbmmm] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
}

.fdt-picker[b-r4xiktbmmm] {
    min-width: 18rem;
    max-width: 26rem;
}

.fdt-configured[b-r4xiktbmmm] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.9rem;
    font-size: 0.8rem;
}

.fdt-configured-label[b-r4xiktbmmm] {
    color: var(--crm-text-3, #6c757d);
}

.fdt-configured-chip[b-r4xiktbmmm] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid var(--crm-border, #dee2e6);
    background: var(--crm-white, #fff);
    color: var(--crm-navy, #0D2447);
    border-radius: 999px;
    padding: 0.15rem 0.65rem;
    font-size: 0.78rem;
}

.fdt-configured-chip:hover[b-r4xiktbmmm],
.fdt-configured-chip:focus-visible[b-r4xiktbmmm] {
    border-color: var(--crm-teal, #00C5A8);
}

.fdt-configured-chip--on[b-r4xiktbmmm] {
    border-color: var(--crm-teal, #00C5A8);
    background: var(--crm-teal-50, rgba(0, 197, 168, 0.08));
}

.fdt-configured-count[b-r4xiktbmmm] {
    color: var(--crm-text-3, #6c757d);
    font-variant-numeric: tabular-nums;
}

/* Who a change reaches comes before the change: the first question when a team's bar moves. */
.fdt-reach[b-r4xiktbmmm] {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
    font-size: 0.83rem;
    color: var(--crm-navy, #0D2447);
    background: var(--crm-bg, #F2F6FC);
    border-radius: 8px;
    padding: 0.6rem 0.8rem;
    margin-bottom: 0.9rem;
}

.fdt-reach > i[b-r4xiktbmmm] {
    color: var(--crm-teal-600, #009E88);
    margin-top: 0.1rem;
}

.fdt-provenance[b-r4xiktbmmm] {
    display: block;
    color: var(--crm-text-3, #6c757d);
    font-size: 0.76rem;
    margin-top: 0.15rem;
}
/* /Pages/Admin/Tabs/AdminGaDuplicatesTab.razor.rz.scp.css */
/* GA duplicate cleanup — visually groups each duplicate set so the relationship
   between sibling rows is obvious. The stub row gets a subtle background tint
   so the user can spot which side ingestion didn't write. */

.ga-dup-group[b-ov43gg51u0] {
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 8px;
    margin-bottom: 1rem;
    overflow: hidden;
}

.ga-dup-group-head[b-ov43gg51u0] {
    padding: 0.6rem 0.85rem;
    background: var(--bs-light, #f8f9fa);
    border-bottom: 1px solid var(--bs-border-color-translucent);
}

.ga-dup-stub[b-ov43gg51u0] {
    background: rgba(255, 193, 7, 0.06);
}
/* /Pages/Admin/Tabs/AdminGaIngestionTab.razor.rz.scp.css */
/* =====================================================
   Ingestion inventory + embedding coverage cards
   ===================================================== */

.ga-inventory-grid[b-sysfgzf5sa] {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(360px, 1.25fr);
    gap: 1rem;
}

@@media (max-width: 900px) {
    .ga-inventory-grid[b-sysfgzf5sa] {
        grid-template-columns: 1fr;
    }
}

.ga-inventory-card[b-sysfgzf5sa] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    overflow: hidden;
}

.ga-inventory-card-head[b-sysfgzf5sa] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 0.55rem 0.85rem;
    background: var(--bs-light, #f8f9fa);
    border-bottom: 1px solid var(--crm-border);
    gap: 0.5rem;
}

.ga-inventory-table th[b-sysfgzf5sa],
.ga-inventory-table td[b-sysfgzf5sa] {
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
}

/* =====================================================
   GA Ingestion Health Ribbon
   ===================================================== */

.ga-health-ribbon[b-sysfgzf5sa] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.75rem;
}

.ga-health-card[b-sysfgzf5sa] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem 0.9rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-left: 3px solid var(--crm-border-2);
    border-radius: 0 var(--crm-r-sm) var(--crm-r-sm) 0;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    transition: border-color var(--crm-fast) ease,
                background-color var(--crm-fast) ease,
                box-shadow var(--crm-fast) ease,
                transform var(--crm-fast) ease;
}

.ga-health-card:hover[b-sysfgzf5sa] {
    box-shadow: var(--crm-shadow-xs);
    transform: translateY(-1px);
}

.ga-health-card.active[b-sysfgzf5sa] {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--crm-navy) 18%, transparent);
}

/* Status-driven left rail coloring */
.ga-health-card.ga-health-ok[b-sysfgzf5sa] {
    border-left-color: var(--crm-teal);
}

.ga-health-card.ga-health-running[b-sysfgzf5sa] {
    border-left-color: #0ea5e9; /* info-blue, matches bi-info-circle */
}

.ga-health-card.ga-health-failed[b-sysfgzf5sa] {
    border-left-color: #dc2626;
    background: #fef2f2;
}

/* "Green but empty" — worker keeps reporting Success with zero records.
   Amber rail/background distinguishes it from outright failure (red) so
   operators can spot a stubbed source or muted upstream at a glance. */
.ga-health-card.ga-health-stale[b-sysfgzf5sa] {
    border-left-color: #d97706;
    background: #fffbeb;
}

/* "Skipped" — worker ran cleanly but did no work because configuration is
   missing (no LLM provider bound, Congress.gov unconfigured). Same amber
   palette as stale but a slightly different rail saturation so operators can
   distinguish "fix the config" (skipped) from "investigate the upstream"
   (stale) at a glance. */
.ga-health-card.ga-health-skipped[b-sysfgzf5sa] {
    border-left-color: #f59e0b;
    background: #fef3c7;
}

.ga-health-error.ga-health-error-skipped[b-sysfgzf5sa] {
    border-color: #fcd34d;
    color: #92400e;
}

.ga-health-card-head[b-sysfgzf5sa] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.ga-health-card-job[b-sysfgzf5sa] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--crm-navy);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.ga-health-card-head .badge[b-sysfgzf5sa] {
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    padding: 0.18rem 0.55rem;
    flex-shrink: 0;
}

.ga-health-card-body[b-sysfgzf5sa] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.ga-health-row[b-sysfgzf5sa] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.78rem;
    line-height: 1.3;
}

.ga-health-label[b-sysfgzf5sa] {
    color: var(--crm-text-3);
    font-weight: 500;
}

.ga-health-value[b-sysfgzf5sa] {
    color: var(--crm-text-2);
    font-weight: 500;
    white-space: nowrap;
}

.ga-health-error[b-sysfgzf5sa] {
    margin-top: 0.35rem;
    padding: 0.35rem 0.5rem;
    background: #fff;
    border: 1px solid #fca5a5;
    border-radius: var(--crm-r-sm);
    font-size: 0.72rem;
    color: #991b1b;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* Run-now button row sits flush at the bottom of each card. Stops at the
   card boundary even when the card has no error block above it so the
   buttons always line up across the ribbon. */
.ga-health-actions[b-sysfgzf5sa] {
    margin-top: auto;
    padding-top: 0.45rem;
    display: flex;
    gap: 0.4rem;
    justify-content: flex-end;
}

/* Responsive breakpoints — ribbon drops to a single column on narrow screens */
@media (max-width: 600px) {
    .ga-health-ribbon[b-sysfgzf5sa] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Admin/Tabs/AdminRolesTab.razor.rz.scp.css */
/* Roles (JobRole) admin: a list of job bundles, a detail with its people, and a form. */

.jr-intro[b-ior8rrhxjz] {
    max-width: 68ch;
    font-size: 0.875rem;
    color: var(--crm-text-2);
    margin-bottom: 1rem;
}

.jr-hint[b-ior8rrhxjz] {
    font-size: 0.8125rem;
    color: var(--crm-text-3);
    margin-bottom: 0.75rem;
}

/* ── Empty state ── */
.jr-empty[b-ior8rrhxjz] {
    text-align: center;
    padding: 2rem 1rem;
    border: 1px dashed var(--crm-border-2);
    border-radius: var(--crm-r);
    background: var(--crm-surface-2);
}

.jr-empty > i[b-ior8rrhxjz] {
    font-size: 1.75rem;
    color: var(--crm-teal-600);
    display: block;
    margin-bottom: 0.5rem;
}

/* ── List ── */
.jr-list[b-ior8rrhxjz] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.jr-row[b-ior8rrhxjz] {
    width: 100%;
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    text-align: left;
    padding: 0.75rem 0.875rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
    color: var(--crm-text);
    transition: border-color var(--crm-fast) var(--crm-ease), box-shadow var(--crm-fast) var(--crm-ease);
}

.jr-row:hover[b-ior8rrhxjz],
.jr-row:focus-visible[b-ior8rrhxjz] {
    border-color: var(--crm-teal);
    box-shadow: var(--crm-shadow-xs);
    outline: none;
}

.jr-row-main[b-ior8rrhxjz] {
    flex: 1 1 auto;
    min-width: 0;
}

.jr-row-title[b-ior8rrhxjz] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.jr-name[b-ior8rrhxjz] {
    font-weight: 600;
    font-size: 0.9375rem;
}

.jr-desc[b-ior8rrhxjz] {
    font-size: 0.8125rem;
    color: var(--crm-text-3);
    margin-top: 0.125rem;
}

.jr-scim[b-ior8rrhxjz] {
    font-size: 0.75rem;
    color: var(--crm-text-3);
    margin-top: 0.375rem;
}

.jr-row-count[b-ior8rrhxjz] {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    line-height: 1.1;
}

.jr-count-num[b-ior8rrhxjz] {
    font-size: 1.125rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--crm-navy);
}

.jr-count-label[b-ior8rrhxjz] {
    font-size: 0.6875rem;
    color: var(--crm-text-3);
}

/* ── Chips and badges ── */
.jr-chips[b-ior8rrhxjz] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.5rem;
}

.jr-chip[b-ior8rrhxjz] {
    display: inline-block;
    padding: 0.125rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
    border: 1px solid rgba(var(--crm-teal-rgb), 0.25);
}

.jr-none[b-ior8rrhxjz] {
    font-size: 0.75rem;
    color: var(--crm-text-3);
    font-style: italic;
}

.jr-badge[b-ior8rrhxjz] {
    display: inline-block;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 0.0625rem 0.4375rem;
    border-radius: var(--crm-r-sm);
    border: 1px solid var(--crm-border-2);
    color: var(--crm-text-2);
    background: var(--crm-surface-2);
}

.jr-badge-it[b-ior8rrhxjz] {
    color: var(--crm-navy);
    border-color: rgba(var(--crm-navy-rgb), 0.3);
    background: rgba(var(--crm-navy-rgb), 0.06);
}

.jr-count-pill[b-ior8rrhxjz] {
    display: inline-block;
    margin-left: 0.25rem;
    padding: 0 0.4375rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    background: var(--crm-surface-2);
    color: var(--crm-text-2);
}

/* ── Detail ── */
.jr-detail-head[b-ior8rrhxjz] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.jr-detail-title[b-ior8rrhxjz] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 1.125rem;
    margin: 0 0 0.25rem;
}

.jr-section[b-ior8rrhxjz] {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--crm-border);
}

.jr-section-title[b-ior8rrhxjz] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--crm-text);
    margin-bottom: 0.5rem;
}

.jr-add[b-ior8rrhxjz] {
    display: flex;
    gap: 0.5rem;
    max-width: 420px;
    margin-bottom: 0.25rem;
}

.jr-add-icon[b-ior8rrhxjz] {
    position: absolute;
    left: 0.65rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--crm-text-3);
    pointer-events: none;
}

.jr-add-input[b-ior8rrhxjz] {
    padding-left: 2rem;
}

.jr-candidates[b-ior8rrhxjz] {
    list-style: none;
    margin: 0 0 0.75rem;
    padding: 0.25rem;
    max-width: 420px;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    background: var(--crm-white);
    box-shadow: var(--crm-shadow-sm);
}

.jr-candidate[b-ior8rrhxjz] {
    width: 100%;
    display: flex;
    align-items: center;
    padding: 0.375rem 0.5rem;
    border: 0;
    border-radius: var(--crm-r-sm);
    background: transparent;
    color: var(--crm-text);
    text-align: left;
}

.jr-candidate:hover:not(:disabled)[b-ior8rrhxjz],
.jr-candidate:focus-visible[b-ior8rrhxjz] {
    background: var(--crm-teal-50);
    outline: none;
}

.jr-members[b-ior8rrhxjz] {
    list-style: none;
    margin: 0.75rem 0 0;
    padding: 0;
}

.jr-member[b-ior8rrhxjz] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--crm-border);
}

.jr-member:last-child[b-ior8rrhxjz] {
    border-bottom: 0;
}

.jr-avatar[b-ior8rrhxjz] {
    width: 2rem;
    height: 2rem;
    flex-shrink: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 0.8125rem;
    font-weight: 600;
    background: var(--crm-surface-2);
    color: var(--crm-navy);
}

.jr-member-main[b-ior8rrhxjz] {
    flex: 1 1 auto;
    min-width: 0;
}

.jr-source[b-ior8rrhxjz] {
    flex-shrink: 0;
    font-size: 0.75rem;
    color: var(--crm-text-3);
}

.jr-source-scim[b-ior8rrhxjz] {
    padding: 0.0625rem 0.4375rem;
    border-radius: 999px;
    background: rgba(var(--crm-navy-rgb), 0.06);
    color: var(--crm-navy);
}

/* ── Form ── */
.jr-module[b-ior8rrhxjz] {
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    padding: 0.625rem 0.875rem 0.375rem;
    margin-bottom: 0.75rem;
}

.jr-module-legend[b-ior8rrhxjz] {
    float: none;
    width: auto;
    padding: 0 0.375rem;
    margin-bottom: 0.25rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--crm-text-2);
}

.jr-level[b-ior8rrhxjz] {
    margin-bottom: 0.25rem;
}

@media (max-width: 576px) {
    .jr-row[b-ior8rrhxjz] {
        flex-direction: column;
        gap: 0.5rem;
    }

    .jr-row-count[b-ior8rrhxjz] {
        flex-direction: row;
        align-items: baseline;
        gap: 0.25rem;
    }
}
/* /Pages/Admin/Tabs/AdminScimTab.razor.rz.scp.css */
/* SCIM group mapping: Roles first, extra access levels tucked away for exceptions. */

.scim-gives[b-br6v38cjis] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.scim-chip[b-br6v38cjis] {
    display: inline-block;
    padding: 0 0.4375rem;
    border-radius: 999px;
    font-size: 0.75rem;
    line-height: 1.5;
    white-space: nowrap;
    background: var(--crm-surface-2);
    color: var(--crm-text-2);
    border: 1px solid var(--crm-border);
}

.scim-chip-role[b-br6v38cjis] {
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
    border-color: rgba(var(--crm-teal-rgb), 0.25);
    font-weight: 600;
}

tr.scim-row-editing > td[b-br6v38cjis] {
    background: var(--crm-surface-2);
}

.scim-mapping[b-br6v38cjis] {
    padding: 0.5rem 0.25rem;
}

.scim-mapping-title[b-br6v38cjis] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--crm-text);
    margin-bottom: 0.5rem;
}

.scim-mapping-grid[b-br6v38cjis] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.5rem 1rem;
}

.scim-extra > summary[b-br6v38cjis] {
    cursor: pointer;
    list-style: none;
}

.scim-extra > summary[b-br6v38cjis]::-webkit-details-marker {
    display: none;
}

.scim-extra > summary[b-br6v38cjis]::before {
    content: "▸ ";
    color: var(--crm-text-3);
}

.scim-extra[open] > summary[b-br6v38cjis]::before {
    content: "▾ ";
}

.scim-module[b-br6v38cjis] {
    margin-bottom: 0.5rem;
}

.scim-module-name[b-br6v38cjis] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--crm-text-3);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 0.125rem;
}
/* /Pages/Admin/Tabs/AdminUsersTab.razor.rz.scp.css */
/* Manage-access modal: Roles, extra (direct) access levels, and the read-only effective view.
   The modal shell (.role-editor-modal etc.) is still styled by the <style> block in the .razor. */

.role-editor-section[b-j734v3thib] {
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--crm-border);
}

.role-editor-section:last-of-type[b-j734v3thib] {
    border-bottom: 0;
    padding-bottom: 0;
}

.role-editor-section-title[b-j734v3thib] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--crm-text);
    margin-bottom: 0.25rem;
}

.role-editor-hint[b-j734v3thib] {
    font-size: 0.8125rem;
    color: var(--crm-text-3);
    margin-bottom: 0.5rem;
}

.role-editor-item[b-j734v3thib] {
    margin-bottom: 0.375rem;
}

.role-editor-extra > summary[b-j734v3thib] {
    cursor: pointer;
    list-style: none;
    margin-bottom: 0.25rem;
}

.role-editor-extra > summary[b-j734v3thib]::-webkit-details-marker {
    display: none;
}

.role-editor-extra > summary[b-j734v3thib]::before {
    content: "▸ ";
    color: var(--crm-text-3);
}

.role-editor-extra[open] > summary[b-j734v3thib]::before {
    content: "▾ ";
}

.access-chip[b-j734v3thib] {
    display: inline-block;
    padding: 0 0.4375rem;
    border-radius: 999px;
    font-size: 0.6875rem;
    font-weight: 500;
    line-height: 1.5;
    white-space: nowrap;
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
    border: 1px solid rgba(var(--crm-teal-rgb), 0.25);
}

/* Comes from the identity provider (SCIM / SSO): changed there, not here. */
.access-chip-idp[b-j734v3thib] {
    background: rgba(var(--crm-navy-rgb), 0.06);
    color: var(--crm-navy);
    border-color: rgba(var(--crm-navy-rgb), 0.25);
}

.effective-list[b-j734v3thib] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.effective-list > li[b-j734v3thib] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.375rem;
    padding: 0.3125rem 0;
    border-bottom: 1px dashed var(--crm-border);
}

.effective-list > li:last-child[b-j734v3thib] {
    border-bottom: 0;
}

.effective-name[b-j734v3thib] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--crm-text);
    margin-right: 0.25rem;
}
/* /Pages/Admin/Tabs/DuplicateGroupCard.razor.rz.scp.css */
/* Subtle entry: each duplicate-group card eases in from a slight upward
   offset on mount. Keeps the initial scan feeling alive without being
   distracting. */
@keyframes dup-card-enter-b-1uhdflahr9 {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.dup-card[b-1uhdflahr9] {
    animation: dup-card-enter-b-1uhdflahr9 220ms ease-out;
    /* Transitions drive the leave-animation when .dup-card-fade-out is
       toggled on. max-height + padding + margin collapse so the surrounding
       cards slide up smoothly instead of snapping. */
    transition:
        opacity 350ms ease,
        max-height 350ms ease,
        margin 350ms ease,
        padding 350ms ease,
        transform 350ms ease,
        border-color 350ms ease;
    max-height: 1200px;
    overflow: hidden;
    will-change: opacity, max-height, transform;
}

.dup-card-fade-out[b-1uhdflahr9] {
    opacity: 0;
    max-height: 0;
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
    border-color: transparent;
    transform: translateX(24px);
    pointer-events: none;
}
/* /Pages/Admin/Tabs/Events/AdminEventsCeSection.razor.rz.scp.css */
/* The preview earns the width: a landscape page is unreadable squeezed into a half column,
   so the two sit side by side only once there is room for both. */
.ce-cert-grid[b-1okbx3enzf] { display: grid; gap: 1.75rem; }
@media (min-width: 1200px) {
    .ce-cert-grid[b-1okbx3enzf] { grid-template-columns: minmax(300px, 5fr) 7fr; align-items: start; }
}
.ce-cert-fields[b-1okbx3enzf] { display: flex; flex-direction: column; gap: 1.5rem; }

.ce-signature-thumb[b-1okbx3enzf] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.75rem;
    max-width: 320px;
    padding: 0.75rem 0.75rem 0.5rem;
    margin-bottom: 0.5rem;
    background: #fff;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
}
.ce-signature-thumb img[b-1okbx3enzf] {
    max-height: 44px;
    max-width: 190px;
    object-fit: contain;
    padding-bottom: 4px;
    border-bottom: 1px solid var(--crm-border-2);
}

/* Paper on a desk: the page at US Letter landscape, so what is framed is the page itself. */
.ce-cert-sheet[b-1okbx3enzf] {
    aspect-ratio: 11 / 8.5;
    width: 100%;
    background: #fff;
    border: 1px solid var(--crm-border);
    border-radius: 2px;
    box-shadow: 0 1px 2px rgba(13, 36, 71, 0.06), 0 8px 24px -12px rgba(13, 36, 71, 0.25);
    overflow: hidden;
}
.ce-cert-sheet iframe[b-1okbx3enzf] { width: 100%; height: 100%; border: 0; display: block; }
.ce-cert-sheet-msg[b-1okbx3enzf] {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    text-align: center;
    color: var(--crm-text-3);
    font-size: 0.875rem;
    background: var(--crm-bg);
}
/* /Pages/Admin/Tabs/Partials/CcnSyncReportPanel.razor.rz.scp.css */
.csr[b-3teaoxmgue] {
    margin-top: 8px;
    padding: 12px 14px;
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 6px;
    background: var(--crm-bg, #f5f7fa);
}

.csr-summary[b-3teaoxmgue] {
    margin-bottom: 10px;
    font-size: 0.85rem;
    color: var(--crm-text-2, #334155);
}

.csr-head[b-3teaoxmgue] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin: 12px 0 6px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--crm-navy, #0d2447);
}

.csr-head span[b-3teaoxmgue] {
    font-weight: 500;
    color: var(--crm-text-3, #6c757d);
}

.csr-mono[b-3teaoxmgue] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    letter-spacing: 0.04em;
}
/* /Pages/Admin/Workflows/WorkflowEditor.razor.rz.scp.css */
/* Numbered step badge on each card title */
.wf-step__num[b-i926pd0hbn] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    margin-right: .5rem;
    border-radius: 999px;
    background: var(--crm-navy, #0D2447);
    color: #fff;
    font-size: .8rem;
    font-weight: 700;
}

/* Plain-language sentence rows: inline controls that wrap naturally */
.wf-sentence[b-i926pd0hbn] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
    line-height: 2.2;
}

.wf-kw[b-i926pd0hbn] {
    font-weight: 700;
    color: var(--crm-navy, #0D2447);
}

.wf-kw--muted[b-i926pd0hbn] {
    color: var(--bs-secondary-color, #6c757d);
    min-width: 3.2rem;
}

.wf-inline[b-i926pd0hbn] {
    width: auto;
    min-width: 9rem;
    display: inline-block;
}

.wf-inline--sm[b-i926pd0hbn] {
    min-width: 4.5rem;
    width: 5rem;
}

/* Slide-out test drawer */
.wf-drawer-backdrop[b-i926pd0hbn] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .35);
    z-index: 1045;
}

.wf-drawer[b-i926pd0hbn] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(380px, 92vw);
    background: var(--bs-body-bg, #fff);
    box-shadow: -.5rem 0 1.5rem rgba(0, 0, 0, .2);
    z-index: 1046;
    display: flex;
    flex-direction: column;
    animation: wf-drawer-in-b-i926pd0hbn .18s ease-out;
}

@keyframes wf-drawer-in-b-i926pd0hbn {
    from { transform: translateX(100%); }
    to { transform: translateX(0); }
}

.wf-drawer__header[b-i926pd0hbn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .85rem 1rem;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
}

.wf-drawer__body[b-i926pd0hbn] {
    padding: 1rem;
    overflow-y: auto;
}
/* /Pages/Assistant/PendingActionReview.razor.rz.scp.css */
/* ─────────────────────────────────────────────────────────
   Pending action review page — full-surface approval UI
   for a single proposed write-tool action. Mirrors the
   dock's confirmation-card visual language so users
   recognize the surface, but takes the whole page so a
   reviewer (or someone finalizing an action proposed on
   their behalf) can read context comfortably without
   the chat history getting in the way.
   ───────────────────────────────────────────────────────── */

.par-back a[b-2xqb7kuzxd] {
    color: var(--bs-secondary-color);
    text-decoration: none;
    font-size: 0.85rem;
}

.par-back a:hover[b-2xqb7kuzxd] {
    color: var(--crm-teal, #00C5A8);
    text-decoration: underline;
}

.par-card[b-2xqb7kuzxd] {
    max-width: 760px;
    background: #fffbea;
    border: 1px solid #f5d67a;
    border-radius: 12px;
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.par-card--error[b-2xqb7kuzxd] {
    background: #fff0ed;
    border-color: #f0a8a0;
}

.par-head[b-2xqb7kuzxd] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    color: #856404;
}

.par-head-main[b-2xqb7kuzxd] {
    font-size: 1.05rem;
    display: flex;
    align-items: center;
}

.par-head-meta[b-2xqb7kuzxd] {
    font-size: 0.78rem;
    color: var(--bs-secondary-color);
}

.par-list[b-2xqb7kuzxd] {
    background: #fff;
    border: 1px solid #f1e0a3;
    border-radius: 8px;
    max-height: 280px;
    overflow-y: auto;
    padding: 0.3rem 0.6rem;
}

.par-item[b-2xqb7kuzxd] {
    padding: 0.4rem 0.2rem;
    border-bottom: 1px solid #faf0cb;
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.85rem;
}

.par-item:last-child[b-2xqb7kuzxd] {
    border-bottom: none;
}

.par-item-title[b-2xqb7kuzxd] {
    color: var(--bs-body-color);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1 1 auto;
    min-width: 0;
}

.par-item-state[b-2xqb7kuzxd] {
    color: var(--bs-secondary-color);
    white-space: nowrap;
    font-size: 0.8rem;
}

.par-overflow[b-2xqb7kuzxd] {
    text-align: center;
    padding: 0.4rem;
    font-size: 0.78rem;
    color: var(--bs-secondary-color);
}

.par-edit[b-2xqb7kuzxd] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.par-edit-label[b-2xqb7kuzxd] {
    font-size: 0.78rem;
    color: var(--bs-secondary-color);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.par-edit-textarea[b-2xqb7kuzxd] {
    font-family: var(--bs-font-monospace, ui-monospace, monospace);
    font-size: 0.8rem;
    resize: vertical;
}

.par-edit-error[b-2xqb7kuzxd] {
    font-size: 0.78rem;
    color: #a32a37;
    background: rgba(220, 53, 69, 0.08);
    border-radius: 6px;
    padding: 0.35rem 0.55rem;
}

.par-edit-formwrap[b-2xqb7kuzxd] {
    background: #fff;
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 8px;
    padding: 0.7rem 0.85rem;
}

.par-edit-toggle[b-2xqb7kuzxd] {
    background: none;
    border: none;
    color: var(--bs-primary, #0d2447);
    font-size: 0.78rem;
    padding: 0.15rem 0;
    cursor: pointer;
    text-decoration: underline;
    align-self: flex-start;
}

.par-edit-toggle:hover[b-2xqb7kuzxd] {
    color: var(--crm-teal, #00C5A8);
}

.par-actions[b-2xqb7kuzxd] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.par-view-convo[b-2xqb7kuzxd] {
    color: var(--bs-secondary-color);
    text-decoration: none;
}

.par-view-convo:hover[b-2xqb7kuzxd] {
    color: var(--crm-teal, #00C5A8);
    text-decoration: underline;
}

/* ── Result panel: appears under the actions row once a decision is sent ─ */
.par-result[b-2xqb7kuzxd] {
    border-top: 1px dashed rgba(0, 0, 0, 0.12);
    padding-top: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.par-status[b-2xqb7kuzxd] {
    display: flex;
    align-items: center;
    font-size: 0.9rem;
    color: var(--bs-body-color);
}

.par-status--ok[b-2xqb7kuzxd] {
    color: #166534;
}

.par-status--err[b-2xqb7kuzxd] {
    color: #991b1b;
}

.par-tool-card[b-2xqb7kuzxd] {
    background: rgba(0, 0, 0, 0.04);
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 6px;
    padding: 0.35rem 0.55rem;
    font-size: 0.82rem;
    color: var(--bs-secondary-color);
    align-self: flex-start;
}

.par-tool-summary[b-2xqb7kuzxd] {
    color: var(--bs-secondary-color);
}

.par-final-text[b-2xqb7kuzxd] {
    background: #fff;
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 6px;
    padding: 0.55rem 0.7rem;
    font-size: 0.9rem;
    color: var(--bs-body-color);
    white-space: pre-wrap;
}

.par-result-actions[b-2xqb7kuzxd] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.25rem;
}

@@keyframes par-spin-kf {
    to[b-2xqb7kuzxd] { transform: rotate(360deg); }
}

.par-spin[b-2xqb7kuzxd] {
    display: inline-block;
    animation: par-spin-kf 1s linear infinite;
}

.par-warning[b-2xqb7kuzxd],
.par-unreviewed[b-2xqb7kuzxd] {
    display: flex;
    align-items: flex-start;
    gap: 0.25rem;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    margin-bottom: 0.75rem;
}

.par-warning[b-2xqb7kuzxd] {
    background: #fff3cd;
    border: 1px solid #f1c40f;
    color: #664d03;
}

.par-unreviewed[b-2xqb7kuzxd] {
    background: var(--bs-tertiary-bg, #f8f9fa);
    border: 1px dashed var(--bs-border-color, #dee2e6);
    color: var(--bs-secondary-color);
}

.par-steps[b-2xqb7kuzxd] {
    list-style: none;
    margin: 0 0 0.75rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.par-step-head[b-2xqb7kuzxd] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    min-width: 0;
    overflow-wrap: anywhere;
}

.par-step-num[b-2xqb7kuzxd] {
    flex: 0 0 auto;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    background: var(--bs-secondary-bg, #e9ecef);
    font-size: 0.8rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.par-step-note[b-2xqb7kuzxd] {
    font-size: 0.8rem;
    color: var(--bs-secondary-color);
    padding-left: 2rem;
}

.par-step .par-list[b-2xqb7kuzxd] {
    margin: 0.35rem 0 0 2rem;
}
/* /Pages/Ccns/CcnDetail.razor.rz.scp.css */
.ccd-header[b-u36ho9xtum] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1.5rem;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.25rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    box-shadow: var(--crm-shadow-xs);
}

.ccd-header-main[b-u36ho9xtum] { min-width: 0; }

/* The certification number sits beside the name like the number on the certificate itself:
   framed and tabular, so it reads as an identifier rather than a heading. */
.ccd-title-row[b-u36ho9xtum] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 4px;
}

.ccd-number[b-u36ho9xtum] {
    padding: 6px 12px;
    border: 2px solid var(--crm-navy, #0d2447);
    border-radius: var(--crm-r-sm, 4px);
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    font-variant-numeric: tabular-nums;
    color: var(--crm-navy, #0d2447);
    line-height: 1;
}

.ccd-title[b-u36ho9xtum] {
    margin: 0;
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--crm-navy, #0d2447);
    overflow-wrap: anywhere;
}

.ccd-facts[b-u36ho9xtum] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 28px;
    margin: 14px 0 0;
}

.ccd-facts div[b-u36ho9xtum] { display: flex; flex-direction: column; }

.ccd-facts dt[b-u36ho9xtum] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--crm-text-3, #6c757d);
}

.ccd-facts dd[b-u36ho9xtum] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--crm-text-1, #0f172a);
}

.ccd-review[b-u36ho9xtum] {
    margin: 12px 0 0;
    padding: 8px 12px;
    border-left: 3px solid #d9a300;
    background: #fffaf0;
    font-size: 0.85rem;
    max-width: 70ch;
}

.ccd-actions[b-u36ho9xtum] {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-shrink: 0;
}

.ccd-panel[b-u36ho9xtum] {
    padding: 16px;
    margin-bottom: 16px;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: var(--crm-r, 8px);
}

.ccd-edit[b-u36ho9xtum] {
    border-color: var(--crm-teal, #04cdaf);
}

.ccd-edit-actions[b-u36ho9xtum] {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
    margin-top: 12px;
}

.ccd-panel-head[b-u36ho9xtum] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.ccd-panel-title[b-u36ho9xtum] {
    margin: 0 0 8px;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--crm-navy, #0d2447);
}

.ccd-panel-head .ccd-panel-title[b-u36ho9xtum] { margin-bottom: 0; }

.ccd-members th[b-u36ho9xtum] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--crm-text-3, #6c757d);
}

.ccd-members tr.is-former td[b-u36ho9xtum],
.ccd-members tr.is-former a[b-u36ho9xtum] {
    color: var(--crm-text-4, #9aa4b2);
}

.ccd-sub[b-u36ho9xtum] {
    font-size: 0.78rem;
    color: var(--crm-text-3, #6c757d);
}

.ccd-kintivo[b-u36ho9xtum] {
    border-left: 3px solid #d9a300;
}

.ccd-requests[b-u36ho9xtum] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ccd-requests li[b-u36ho9xtum] {
    padding: 8px 0;
    border-top: 1px solid var(--crm-border, #dee2e6);
}

.ccd-arrow[b-u36ho9xtum] {
    margin: 0 6px;
    color: var(--crm-text-3, #6c757d);
}

.ccd-request-actions[b-u36ho9xtum] {
    display: flex;
    gap: 4px;
    margin-top: 4px;
}

@media (max-width: 768px) {
    .ccd-header[b-u36ho9xtum] { flex-direction: column; gap: 0.75rem; }
    .ccd-actions[b-u36ho9xtum] { align-self: flex-end; }
    .ccd-number[b-u36ho9xtum] { font-size: 1.1rem; }
    .ccd-title[b-u36ho9xtum] { font-size: 1.3rem; }
}

/* CMS details: a quiet label/value grid, as on the account page. DynamicFieldDisplay renders
   Bootstrap col-* dt/dd pairs, so their widths and weight are reset here. */
.ccd-fields[b-u36ho9xtum] {
    display: grid;
    grid-template-columns: minmax(10rem, max-content) 1fr;
    column-gap: 20px;
    row-gap: 6px;
    align-items: baseline;
    font-size: 0.85rem;
}

.ccd-fields[b-u36ho9xtum]  dt,
.ccd-fields[b-u36ho9xtum]  dd {
    width: auto;
    max-width: none;
    flex: none;
    padding: 0;
    margin: 0;
}

.ccd-fields[b-u36ho9xtum]  dt {
    font-weight: 400;
    color: var(--crm-text-3, #6c757d);
}

.ccd-fields[b-u36ho9xtum]  dd {
    color: var(--crm-text-1, #0f172a);
    overflow-wrap: anywhere;
}
/* /Pages/Ccns/CcnList.razor.rz.scp.css */
.ccl-head[b-756kjiaxal] { margin-bottom: 16px; }

.ccl-title[b-756kjiaxal] {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--crm-navy, #0d2447);
}

.ccl-lede[b-756kjiaxal] {
    margin: 4px 0 0;
    color: var(--crm-text-3, #6c757d);
}

.ccl-filters[b-756kjiaxal] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    margin-bottom: 14px;
}

.ccl-search[b-756kjiaxal] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 18rem;
    max-width: 28rem;
    padding: 6px 10px;
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: var(--crm-r-sm, 4px);
    background: var(--crm-white, #fff);
}

.ccl-search input[b-756kjiaxal] {
    border: 0;
    outline: 0;
    flex: 1;
    background: transparent;
}

.ccl-search:focus-within[b-756kjiaxal] { border-color: var(--crm-teal, #04cdaf); }

.ccl-toggles[b-756kjiaxal] { display: flex; flex-wrap: wrap; gap: 6px; }

.ccl-toggle[b-756kjiaxal] {
    padding: 4px 10px;
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 999px;
    background: var(--crm-white, #fff);
    font-size: 0.8rem;
    color: var(--crm-text-2, #334155);
}

.ccl-toggle.is-on[b-756kjiaxal] {
    border-color: var(--crm-navy, #0d2447);
    background: var(--crm-navy, #0d2447);
    color: var(--crm-white, #fff);
}

.ccl-toggle:focus-visible[b-756kjiaxal] { outline: 2px solid var(--crm-teal, #04cdaf); outline-offset: 2px; }

.ccl-table-wrap[b-756kjiaxal] {
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: var(--crm-r, 8px);
}

.ccl-table th[b-756kjiaxal] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--crm-text-3, #6c757d);
}

.ccl-table tbody tr[b-756kjiaxal] { cursor: pointer; }
.ccl-table tbody tr:hover[b-756kjiaxal] { background: var(--crm-bg, #f5f7fa); }
.ccl-table tr.is-archived td[b-756kjiaxal] { color: var(--crm-text-4, #9aa4b2); }

.ccl-number[b-756kjiaxal] {
    font-weight: 700;
    letter-spacing: 0.06em;
    font-variant-numeric: tabular-nums;
    color: var(--crm-navy, #0d2447);
    text-decoration: none;
}

.ccl-sub[b-756kjiaxal] {
    font-size: 0.75rem;
    color: var(--crm-text-3, #6c757d);
}

.ccl-members[b-756kjiaxal] {
    max-width: 38ch;
    font-size: 0.875rem;
    color: var(--crm-text-2, #334155);
}

.ccl-flag[b-756kjiaxal] {
    display: inline-block;
    margin: 2px 4px 0 0;
    padding: 1px 8px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-text-3, #6c757d);
}

.ccl-flag.is-review[b-756kjiaxal] { background: #fff4d6; color: #7a5800; }
.ccl-flag.is-kintivo[b-756kjiaxal] { background: #fff4d6; color: #7a5800; }
.ccl-flag.is-terminated[b-756kjiaxal] { background: #fdecec; color: #9b1c1c; }

.ccl-empty[b-756kjiaxal] {
    padding: 24px;
    border: 1px dashed var(--crm-border, #dee2e6);
    border-radius: var(--crm-r, 8px);
    color: var(--crm-text-3, #6c757d);
}

.ccl-count[b-756kjiaxal] {
    margin-top: 8px;
    font-size: 0.8rem;
    color: var(--crm-text-3, #6c757d);
}
/* /Pages/Contacts/ContactDetail.razor.rz.scp.css */
/* ── Header ─────────────────────────────────────────── */

.cd-header[b-762sxo3ptz] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1.5rem;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    box-shadow: var(--crm-shadow-xs);
}

.cd-header-left[b-762sxo3ptz] {
    min-width: 0;
    flex: 1;
}

.cd-header[b-762sxo3ptz]  h1 {
    margin: 0 0 0.4rem;
    font-size: 1.6rem;
}

.cd-meta[b-762sxo3ptz] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.75rem;
    margin-top: 4px;
}

.cd-meta-item[b-762sxo3ptz] {
    font-size: 0.85rem;
    color: var(--crm-text-2);
}

/* Type chips — same palette as AccountDetail. */
.cd-types[b-762sxo3ptz] {
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
}

.cd-type-chip[b-762sxo3ptz] {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 10px;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 999px;
    border: 1px solid transparent;
}

/* Roles held at linked accounts. Deliberately squarer and lower-contrast than
   the uppercase pill Types above, so the two never read as the same thing —
   a Type classifies the person, a Role is a post at a specific account. */
.cd-roles[b-762sxo3ptz] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start; /* a two-line chip (EA pairing) keeps its neighbours top-aligned */
    gap: 6px;
    margin-top: 6px;
    min-width: 0;
}

/* A chip never outgrows the card: on a narrow screen the account name truncates (the full text
   is in the tooltip) rather than pushing the chip past the card's edge. */
.cd-role-chip[b-762sxo3ptz] {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    max-width: 100%;
    min-width: 0;
    height: 22px;
    padding: 0 9px;
    font-size: 0.74rem;
    line-height: 22px;
    border-radius: 5px;
    text-decoration: none;
    color: var(--crm-text-2, #495057);
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #dee2e6);
    transition: border-color 0.12s, background 0.12s;
}

.cd-role-chip:hover[b-762sxo3ptz] {
    background: var(--crm-teal-50, #e8f7f4);
    border-color: var(--crm-teal, #04cdaf);
    color: var(--crm-navy, #0d2447);
}

.cd-role-chip-role[b-762sxo3ptz] {
    flex-shrink: 0;
    font-weight: 600;
    color: var(--crm-navy, #0d2447);
}

.cd-role-chip-sep[b-762sxo3ptz] {
    flex-shrink: 0;
    color: var(--crm-text-3, #adb5bd);
}

.cd-role-chip-account[b-762sxo3ptz] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: inherit;
}

/* A role chip carrying an EA pairing grows a second line for the person — "EA · name · email" on
   an exec's seat, "Supports · name" on an assistant's role — rather than a chip of its own. The
   chip becomes a box of lines, each its own link(s), since links cannot nest. */
.cd-role-chip-paired[b-762sxo3ptz] {
    flex-direction: column;
    align-items: stretch;
    gap: 1px;
    height: auto;
    padding: 2px 9px 3px;
    line-height: 18px;
}

.cd-role-chip-paired:hover[b-762sxo3ptz] {
    background: var(--crm-white, #fff);
}

.cd-role-chip-line[b-762sxo3ptz] {
    display: flex;
    align-items: baseline;
    gap: 5px;
    min-width: 0;
    color: inherit;
    text-decoration: none;
}

a.cd-role-chip-line:hover .cd-role-chip-account[b-762sxo3ptz] {
    text-decoration: underline;
}

.cd-role-chip-person[b-762sxo3ptz] {
    padding-top: 2px;
    border-top: 1px solid var(--crm-border, #dee2e6);
}

.cd-person-chip-relation[b-762sxo3ptz] {
    flex-shrink: 0;
    font-weight: 600;
    color: var(--crm-teal-700, #007a69);
}

/* People chips (EA / Supports): a person rather than an organization, so a tinted fill and an
   icon set them apart. The chip itself is not a link — the name and the email are, separately.
   Only used when the pairing has no role chip to sit on. */
.cd-person-chip[b-762sxo3ptz] {
    background: var(--crm-teal-50, #e8f7f4);
    border-color: var(--crm-teal-200, #a6e6da);
}

.cd-person-chip:hover[b-762sxo3ptz] {
    background: var(--crm-teal-50, #e8f7f4);
}

.cd-person-chip-icon[b-762sxo3ptz] {
    flex-shrink: 0;
    align-self: center;
    font-size: 0.8rem;
    color: var(--crm-teal-600, #009e88);
}

.cd-person-chip-name[b-762sxo3ptz] {
    flex-shrink: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
    color: var(--crm-navy, #0d2447);
    text-decoration: none;
}

.cd-person-chip-email[b-762sxo3ptz],
.cd-person-chip-context[b-762sxo3ptz] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cd-person-chip-email[b-762sxo3ptz] {
    color: var(--crm-teal-700, #007a69);
    text-decoration: none;
}

.cd-person-chip-context[b-762sxo3ptz] {
    color: var(--crm-text-3, #6c757d);
}

.cd-person-chip-name:hover[b-762sxo3ptz],
.cd-person-chip-email:hover[b-762sxo3ptz] {
    text-decoration: underline;
}

.cd-type-default[b-762sxo3ptz] {
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-text-2);
    border-color: var(--crm-border, #d8dee7);
}

.cd-type-member[b-762sxo3ptz] {
    background: rgba(0, 197, 168, 0.12);
    color: var(--crm-teal-700, #00735f);
    border-color: rgba(0, 197, 168, 0.32);
}

.cd-type-hospital[b-762sxo3ptz] {
    background: rgba(31, 41, 55, 0.08);
    color: var(--crm-navy, #0f172a);
    border-color: rgba(31, 41, 55, 0.18);
}

.cd-type-facility[b-762sxo3ptz] {
    background: rgba(99, 102, 241, 0.10);
    color: #4338ca;
    border-color: rgba(99, 102, 241, 0.25);
}

.cd-type-system[b-762sxo3ptz] {
    background: rgba(14, 116, 144, 0.10);
    color: #0e7490;
    border-color: rgba(14, 116, 144, 0.25);
}

.cd-type-vendor[b-762sxo3ptz] {
    background: rgba(217, 119, 6, 0.10);
    color: #b45309;
    border-color: rgba(217, 119, 6, 0.25);
}

/* Destructive item rendered inside the header's kebab menu. */
.cd-action-danger[b-762sxo3ptz] {
    color: var(--bs-danger, #dc3545) !important;
}

.cd-action-danger:hover[b-762sxo3ptz] {
    color: var(--bs-danger, #dc3545) !important;
    background: rgba(220, 53, 69, 0.08) !important;
}

.cd-action-danger i[b-762sxo3ptz] {
    color: inherit !important;
}

.cd-actions[b-762sxo3ptz] {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
    padding-top: 0.15rem;
    align-items: center;
}

/* ── Tab transitions ──────────────────────────────────
   @key="activeTab" remounts the wrapper on every tab switch, which
   retriggers the keyframe animation. Snappy 180ms fade + 4px rise. */

.cd-tab-content[b-762sxo3ptz] {
    animation: cd-tab-fade-in-b-762sxo3ptz 180ms cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes cd-tab-fade-in-b-762sxo3ptz {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0);   }
}

@media (prefers-reduced-motion: reduce) {
    .cd-tab-content[b-762sxo3ptz] {
        animation: none;
    }
}

/* ── Info-tab utility row ─────────────────────────────
   Holds only the show-all-fields toggle on contacts (no engagement /
   hierarchy / leadership pills the way accounts have). The left
   spacer keeps the toggle right-aligned. */

.cd-info-utility-row[b-762sxo3ptz] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.cd-info-utility-left[b-762sxo3ptz] {
    flex: 1 1 auto;
    min-width: 0;
}

.cd-info-utility-right[b-762sxo3ptz] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    margin-left: auto;
}

.cd-show-all-toggle[b-762sxo3ptz] {
    background: none;
    border: 1px solid transparent;
    color: var(--crm-text-3, #9ca3af);
    width: 32px;
    height: 32px;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
}

.cd-show-all-toggle:hover[b-762sxo3ptz] {
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-navy, #0f172a);
    border-color: var(--crm-border, #d8dee7);
}

.cd-show-all-toggle .bi[b-762sxo3ptz] {
    font-size: 0.9rem;
}

/* ── Info-tab property panel ──────────────────────────
   Single white panel wraps all data sections. Hairline section
   headers with a teal accent bar — Linear/Attio-style density. */

.cd-info-panel[b-762sxo3ptz] {
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: var(--crm-r, 10px);
    padding: 22px 26px;
    box-shadow: var(--crm-shadow-xs);
}

.cd-prop-stack > .cd-prop-section + .cd-prop-section[b-762sxo3ptz],
.cd-prop-section-spaced[b-762sxo3ptz] {
    margin-top: 22px;
}

.cd-prop-section-title[b-762sxo3ptz] {
    margin: 0 0 10px 0;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--crm-navy, #0f172a);
    display: flex;
    align-items: center;
    gap: 8px;
}

.cd-prop-section-title[b-762sxo3ptz]::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
    flex-shrink: 0;
}

.cd-prop-empty[b-762sxo3ptz] {
    color: var(--crm-text-3, #9ca3af);
}

.cd-prop-notes[b-762sxo3ptz] {
    margin: 0;
    color: var(--crm-text-1, #1f2937);
    font-size: 0.85rem;
    line-height: 1.5;
    white-space: pre-wrap;
}

/* ── Animatable dl/row pairs ──────────────────────────
   grid-template-rows animates 1fr → 0fr to collapse height smoothly.
   Coupled with opacity fade. Property-list aesthetic: muted label
   in fixed-width column, primary-color value. */

.cd-anim-dl[b-762sxo3ptz] {
    display: flex;
    flex-direction: column;
}

.cd-anim-row[b-762sxo3ptz] {
    display: grid;
    grid-template-rows: 1fr;
    opacity: 1;
    transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1),
                opacity 160ms ease,
                margin 220ms ease;
}

.cd-anim-row.is-hidden[b-762sxo3ptz] {
    grid-template-rows: 0fr;
    opacity: 0;
    margin-top: 0;
    margin-bottom: 0;
    pointer-events: none;
}

.cd-anim-row-inner[b-762sxo3ptz] {
    min-height: 0;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(140px, max-content) 1fr;
    align-items: baseline;
    column-gap: 24px;
    padding: 5px 0;
    font-size: 0.85rem;
}

/* ::deep so the rule reaches dt/dd rendered by DynamicFieldDisplay
   across Blazor CSS isolation. */
.cd-anim-row-inner > dt[b-762sxo3ptz],
.cd-anim-row-inner[b-762sxo3ptz]  dt {
    margin: 0;
    font-weight: 500;
    color: var(--crm-text-3, #9ca3af);
    white-space: nowrap;
}

.cd-anim-row-inner > dd[b-762sxo3ptz],
.cd-anim-row-inner[b-762sxo3ptz]  dd {
    margin: 0;
    color: var(--crm-text-1, #1f2937);
    line-height: 1.45;
}

.cd-anim-row-inner > dd a[b-762sxo3ptz],
.cd-anim-row-inner[b-762sxo3ptz]  dd a {
    color: var(--crm-teal-700, #00735f);
    text-decoration: none;
}

.cd-anim-row-inner > dd a:hover[b-762sxo3ptz],
.cd-anim-row-inner[b-762sxo3ptz]  dd a:hover {
    color: var(--crm-teal, #00C5A8);
    text-decoration: underline;
}

.cd-anim-row.is-hidden .cd-anim-row-inner[b-762sxo3ptz] {
    padding-top: 0;
    padding-bottom: 0;
}

.cd-anim-row-inner > dt[class*="col-"][b-762sxo3ptz],
.cd-anim-row-inner > dd[class*="col-"][b-762sxo3ptz],
.cd-anim-row-inner[b-762sxo3ptz]  dt[class*="col-"],
.cd-anim-row-inner[b-762sxo3ptz]  dd[class*="col-"] {
    flex: unset;
    max-width: unset;
    padding: 0;
}

/* ── Shared tab-body chrome ───────────────────────────
   Visits / Activities / Audit all use the same panel + header
   pattern. */

.cd-tab-head[b-762sxo3ptz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 10px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    gap: 12px;
    flex-wrap: wrap;
}

.cd-tab-title[b-762sxo3ptz] {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--crm-navy, #0f172a);
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.cd-tab-title[b-762sxo3ptz]::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
    flex-shrink: 0;
}

.cd-tab-count[b-762sxo3ptz] {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--crm-text-2, #4b5563);
    background: var(--crm-bg, #f5f7fa);
    padding: 2px 8px;
    border-radius: 999px;
    letter-spacing: 0;
}

/* Per-tab search input — grows to fill, focus reveals teal ring. */
.cd-tab-search[b-762sxo3ptz] {
    flex: 1 1 auto;
    max-width: 320px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: var(--crm-bg, #f5f7fa);
    border: 1px solid transparent;
    border-radius: 6px;
    transition: background 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

.cd-tab-search:focus-within[b-762sxo3ptz] {
    background: var(--crm-white, #fff);
    border-color: var(--crm-border-2, #c5d3e8);
    box-shadow: 0 0 0 3px rgba(0, 197, 168, 0.12);
}

.cd-tab-search i[b-762sxo3ptz] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.85rem;
}

.cd-tab-search input[b-762sxo3ptz] {
    border: none;
    background: transparent;
    outline: none;
    width: 100%;
    font-size: 0.85rem;
    color: var(--crm-text-1, #1f2937);
}

.cd-tab-search input[b-762sxo3ptz]::placeholder {
    color: var(--crm-text-3, #9ca3af);
}

.cd-empty[b-762sxo3ptz] {
    text-align: center;
    padding: 36px 16px;
    color: var(--crm-text-3, #9ca3af);
}

.cd-empty i[b-762sxo3ptz] {
    font-size: 1.75rem;
    display: block;
    margin-bottom: 8px;
    color: var(--crm-border-2, #c5d3e8);
}

.cd-empty p[b-762sxo3ptz] {
    margin: 0;
    font-size: 0.85rem;
}

/* Row list (Visits) — date chip + main + chevron. */
.cd-row-list[b-762sxo3ptz] {
    display: flex;
    flex-direction: column;
}

.cd-row[b-762sxo3ptz] {
    display: grid;
    grid-template-columns: 50px 1fr auto;
    align-items: center;
    gap: 14px;
    padding: 10px 4px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    text-decoration: none;
    color: inherit;
    transition: background 120ms ease;
    border-radius: 6px;
}

.cd-row:last-child[b-762sxo3ptz] {
    border-bottom: none;
}

.cd-row:hover[b-762sxo3ptz] {
    background: var(--crm-bg, #f5f7fa);
}

.cd-row-date[b-762sxo3ptz] {
    text-align: center;
    color: var(--crm-text-2, #4b5563);
    padding: 6px 8px;
    background: var(--crm-bg, #f5f7fa);
    border-radius: 8px;
    line-height: 1;
}

.cd-row-date-day[b-762sxo3ptz] {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--crm-navy, #0f172a);
}

.cd-row-date-mon[b-762sxo3ptz] {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 2px;
}

.cd-row-main[b-762sxo3ptz] {
    min-width: 0;
}

.cd-row-title[b-762sxo3ptz] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cd-row-sub[b-762sxo3ptz] {
    font-size: 0.75rem;
    color: var(--crm-text-3, #9ca3af);
    margin-top: 2px;
}

.cd-row-sub-link[b-762sxo3ptz] {
    color: var(--crm-teal-700, #00735f);
    text-decoration: none;
}

.cd-row-sub-link:hover[b-762sxo3ptz] {
    color: var(--crm-teal, #00C5A8);
    text-decoration: underline;
}

.cd-row-chev[b-762sxo3ptz] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.85rem;
    transition: transform 140ms ease, color 140ms ease;
}

.cd-row:hover .cd-row-chev[b-762sxo3ptz] {
    color: var(--crm-navy);
    transform: translateX(2px);
}

/* Activity list — strip card border so items sit on the panel. */
.cd-activity-list[b-762sxo3ptz] {
    margin-top: 14px;
}

/* Embedded form (ActivityForm) — flatten the inner card to a
   borderless inline section that fits the panel aesthetic. */
.cd-embedded-form[b-762sxo3ptz]  .card {
    border: none;
    box-shadow: none;
    background: var(--crm-bg, #f5f7fa);
    border-radius: 8px;
    margin-bottom: 16px;
    margin-top: 14px;
}

.cd-embedded-form[b-762sxo3ptz]  .card-header {
    background: transparent;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    padding: 8px 14px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--crm-text-3, #9ca3af);
}

.cd-embedded-form[b-762sxo3ptz]  .card-body {
    padding: 14px;
}

/* ── Embedded RelatedObjectsPanel (Internal Team / Accounts / Workgroups) ──
   Strip the navy header and adopt the new section title style. */

.cd-panel-section[b-762sxo3ptz] {
    min-width: 0;
}

.cd-panel-section[b-762sxo3ptz]  .rop-container {
    background: transparent;
    border: none;
    box-shadow: none;
    border-radius: 0;
}

.cd-panel-section[b-762sxo3ptz]  .rop-header {
    background: transparent;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    border-radius: 0;
    padding: 0 0 10px 0;
    margin-bottom: 14px;
}

.cd-panel-section[b-762sxo3ptz]  .rop-title {
    color: var(--crm-navy, #0f172a);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    font-weight: 600;
    text-transform: none;
    display: flex;
    align-items: center;
    gap: 8px;
}

.cd-panel-section[b-762sxo3ptz]  .rop-title::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
    flex-shrink: 0;
    display: inline-block;
}

.cd-panel-section[b-762sxo3ptz]  .rop-header .btn-primary {
    background: var(--crm-teal, #00C5A8);
    border-color: var(--crm-teal, #00C5A8);
    color: var(--crm-white, #fff);
    font-weight: 600;
    font-size: 0.78rem;
}

.cd-panel-section[b-762sxo3ptz]  .rop-header .btn-primary:hover {
    background: var(--crm-teal-600, #009E88);
    border-color: var(--crm-teal-600, #009E88);
}

.cd-panel-section[b-762sxo3ptz]  .rop-item {
    border-bottom-color: var(--crm-border);
    padding: 10px 14px;
}

.cd-panel-section[b-762sxo3ptz]  .rop-item:hover {
    background: var(--crm-teal-50);
}

.cd-panel-section[b-762sxo3ptz]  .rop-item-name {
    color: var(--crm-navy);
    font-weight: 600;
}

.cd-panel-section[b-762sxo3ptz]  .rop-empty {
    padding: 20px 14px;
    text-align: center;
    color: var(--crm-text-3);
}

/* ── Responsive ─────────────────────────────────────── */

@media (max-width: 575.98px) {
    .cd-header[b-762sxo3ptz] {
        flex-direction: column;
        gap: 0.75rem;
    }

    /* Stacked, the header's align-items: flex-start would size this column to its widest chip
       (a long account name's full width) and push it past the card. Stretching pins it to the
       card, so the chips wrap and truncate inside it. */
    .cd-header-left[b-762sxo3ptz] {
        align-self: stretch;
        max-width: 100%;
    }

    .cd-actions[b-762sxo3ptz] {
        align-self: flex-end;
    }
}

/* ── Inherited address ──────────────────────────────── */

/* An address borrowed from the contact's primary organization. Labelled because an
   unlabelled company address reads as the person's own, which is the confusion this
   fallback exists to resolve rather than deepen. */
.cd-inherited-note[b-762sxo3ptz] {
    margin-top: 0.25rem;
    font-size: 0.8125rem;
    color: var(--crm-text-3);
}

.cd-inherited-note a[b-762sxo3ptz] {
    color: inherit;
    text-decoration: underline;
}

.cd-inherited-note a:hover[b-762sxo3ptz] {
    color: var(--crm-text-1);
}
/* /Pages/Contacts/ContactForm.razor.rz.scp.css */
/* ── Header ────────────────────────────────── */
.ef-header[b-gmf7sevcp6] {
    margin-bottom: 24px;
}

.ef-header h1[b-gmf7sevcp6] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--crm-navy);
    margin: 0;
}

/* Cap the header at the same max-width as the form below it so the
   right-aligned action sits flush with the form's right edge. */
.ef-header--with-actions[b-gmf7sevcp6] {
    max-width: 820px;
}

/* ── Type subtabs (mirrors AccountForm) ──────────────────── */
.ef-type-subtabs[b-gmf7sevcp6] {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    border-bottom: 1px solid var(--crm-border);
    margin: 8px 0 16px;
}

.ef-type-subtab[b-gmf7sevcp6] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 8px 14px;
    margin-bottom: -1px;
    font-size: 0.86rem;
    font-weight: 500;
    color: var(--crm-text-3);
    cursor: pointer;
    transition: color 120ms, border-color 120ms;
    position: relative;
}

.ef-type-subtab:hover[b-gmf7sevcp6] {
    color: var(--crm-text-2);
}

.ef-type-subtab.active[b-gmf7sevcp6] {
    color: var(--crm-text-1);
    border-bottom-color: var(--crm-teal);
}

.ef-type-subtab-name[b-gmf7sevcp6] {
    line-height: 1;
}

.ef-type-subtab-count[b-gmf7sevcp6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.4rem;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--crm-text-3);
    background: var(--crm-surface-2);
    border-radius: 999px;
}

.ef-type-subtab.active .ef-type-subtab-count[b-gmf7sevcp6] {
    color: var(--crm-text);
}

.ef-type-subtab-dot[b-gmf7sevcp6] {
    display: inline-block;
    width: 7px;
    height: 7px;
    background: #F59E0B;
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.18);
}

.ef-type-subtab-body[b-gmf7sevcp6] {
    animation: crm-slide-up 160ms ease;
}

/* ── Sections ──────────────────────────────── */
.ef-section[b-gmf7sevcp6] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: 20px 24px;
    margin-bottom: 16px;
    box-shadow: var(--crm-shadow-xs);
}

.ef-section-title[b-gmf7sevcp6] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--crm-navy);
    margin: 0 0 16px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--crm-border);
}

/* ── Types section accent ─────────────────── */
.ef-types-section[b-gmf7sevcp6] {
    border-left: 3px solid var(--crm-teal);
}

/* ── Labels ────────────────────────────────── */
.ef-label[b-gmf7sevcp6] {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--crm-text-2);
    margin-bottom: 4px;
}

.ef-req[b-gmf7sevcp6] {
    color: #E34850;
}

/* ── Type pill toggles ───────────────────── */
.ef-type-pills[b-gmf7sevcp6] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 4px;
}

.ef-type-pill[b-gmf7sevcp6] {
    padding: 6px 14px;
    border: 1px solid var(--crm-border-2);
    background: var(--crm-white);
    font-size: 0.82rem;
    font-weight: 500;
    border-radius: 20px;
    cursor: pointer;
    transition: all var(--crm-fast) ease;
    color: var(--crm-text-2);
    line-height: 1.4;
}

.ef-type-pill:hover[b-gmf7sevcp6] {
    border-color: var(--crm-teal);
    background: var(--crm-teal-50);
    color: var(--crm-navy);
}

.ef-type-pill.active[b-gmf7sevcp6] {
    background: var(--crm-teal-50);
    border-color: var(--crm-teal);
    color: var(--crm-navy);
    font-weight: 600;
    box-shadow: 0 0 0 2px var(--crm-teal-glow);
}

/* ── Custom fields area ──────────────────── */
.ef-custom-fields[b-gmf7sevcp6] {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px dashed var(--crm-border);
}

.ef-custom-fields-header[b-gmf7sevcp6] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
    margin-bottom: 12px;
}

.ef-custom-fields-empty[b-gmf7sevcp6] {
    margin-top: 12px;
    padding: 14px 16px;
    font-size: 0.82rem;
    color: var(--crm-text-3);
    background: var(--crm-bg);
    border-radius: var(--crm-r-sm);
    text-align: center;
}

/* ── Field groups (type-grouped properties) ── */
.ef-field-group[b-gmf7sevcp6] {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px dashed var(--crm-border);
}

.ef-field-group:first-child[b-gmf7sevcp6] {
    margin-top: 12px;
    padding-top: 0;
    border-top: none;
}

.ef-field-group-header[b-gmf7sevcp6] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ef-field-group-header[b-gmf7sevcp6]::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--crm-border);
}

/* ── Address tabs ─────────────────────────── */
.ef-addr-tabs[b-gmf7sevcp6] {
    display: flex;
    gap: 2px;
    border-bottom: 1px solid var(--crm-border);
    margin-bottom: 16px;
}

.ef-addr-tab[b-gmf7sevcp6] {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 8px 14px;
    margin-bottom: -1px;
    font-size: 0.86rem;
    font-weight: 500;
    color: var(--crm-text-3);
    cursor: pointer;
    transition: color 120ms, border-color 120ms;
}

.ef-addr-tab:hover[b-gmf7sevcp6] {
    color: var(--crm-text-2);
}

.ef-addr-tab.active[b-gmf7sevcp6] {
    color: var(--crm-text-1);
    border-bottom-color: var(--crm-teal);
}

.ef-addr-same[b-gmf7sevcp6] {
    display: flex;
    gap: 18px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px dashed var(--crm-border);
    flex-wrap: wrap;
}

.ef-checkbox[b-gmf7sevcp6] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.84rem;
    color: var(--crm-text-2);
    cursor: pointer;
}

/* ── Actions ──────────────────────────────── */
.ef-actions[b-gmf7sevcp6] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 16px 0 32px;
}

/* ── Responsive ───────────────────────────── */
@media (max-width: 575.98px) {
    .ef-section[b-gmf7sevcp6] {
        padding: 16px;
    }

    .ef-type-pills[b-gmf7sevcp6] {
        gap: 4px;
    }

    .ef-type-pill[b-gmf7sevcp6] {
        padding: 5px 10px;
        font-size: 0.78rem;
    }
}

/* ── Inherited-address hint ─────────────────────────── */

/* Explains why the empty fields below still produce an address on the detail page. */
.ef-inherited-hint[b-gmf7sevcp6] {
    margin-bottom: 0.75rem;
    padding: 0.625rem 0.75rem;
    border-left: 3px solid var(--crm-accent, #6c757d);
    background: var(--crm-surface-2, rgba(0, 0, 0, 0.03));
    border-radius: 4px;
    font-size: 0.8125rem;
    color: var(--crm-text-2);
}

.ef-inherited-hint div[b-gmf7sevcp6] {
    margin-top: 0.25rem;
    color: var(--crm-text-3);
}
/* /Pages/Contacts/ContactList.razor.rz.scp.css */
/* The panel's foot ("Show archived") parts from the filters by space, not a
   full-width rule — the filter bar's rows are separated the same way. */
.filter-group-divider[b-twtknxifwd] {
    margin-top: 0.85rem;
    padding-top: 0.25rem;
}

/* "Account(s) · Role" cell — one line per linked account, with the role(s)
   held there. A contact can be CEO at a system and at two of its hospitals;
   the old single-account cell showed only whichever sorted first. */
.cl-account-roles[b-twtknxifwd] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cl-account-role[b-twtknxifwd] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 6px;
    line-height: 1.35;
}

.cl-account-role-name[b-twtknxifwd] {
    color: var(--crm-text, #212529);
}

.cl-account-role-label[b-twtknxifwd] {
    flex: 0 0 auto;
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: var(--crm-text-3, #6c757d);
    background: var(--crm-surface-2, #f4f6f9);
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 999px;
    padding: 0 7px;
    white-space: nowrap;
}

/* The role the user actually filtered on — reads first without shouting. */
.cl-account-role-label.is-match[b-twtknxifwd] {
    color: var(--crm-teal-600, #04a58c);
    background: var(--crm-teal-50, #e8f7f4);
    border-color: var(--crm-teal, #04cdaf);
}

.cl-account-role-more[b-twtknxifwd] {
    font-size: 0.75rem;
    color: var(--crm-text-3, #6c757d);
    cursor: default;
}
/* /Pages/Contacts/ContactPollsTab.razor.rz.scp.css */
/* Mirrors the contact page's tab panel and row list (ContactDetail.razor.css), which a child
   component cannot reach through scoped CSS. */
.cpt-panel[b-zmvm0xmrwg] {
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: var(--crm-r, 10px);
    padding: 22px 26px;
    box-shadow: var(--crm-shadow-xs);
}

.cpt-head[b-zmvm0xmrwg] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 10px;
    margin-bottom: 6px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    gap: 12px;
}

.cpt-title[b-zmvm0xmrwg] {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--crm-navy, #0f172a);
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.cpt-title[b-zmvm0xmrwg]::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
}

.cpt-count[b-zmvm0xmrwg] {
    font-size: 0.75rem;
    color: var(--crm-text-3, #9ca3af);
}

.cpt-empty[b-zmvm0xmrwg] {
    text-align: center;
    padding: 36px 16px;
    color: var(--crm-text-3, #9ca3af);
}

.cpt-empty i[b-zmvm0xmrwg] {
    font-size: 1.75rem;
    display: block;
    margin-bottom: 8px;
    color: var(--crm-border-2, #c5d3e8);
}

.cpt-empty p[b-zmvm0xmrwg] { margin: 0; font-size: 0.85rem; }

.cpt-row[b-zmvm0xmrwg] { border-bottom: 1px solid var(--crm-border, #d8dee7); }
.cpt-row:last-child[b-zmvm0xmrwg] { border-bottom: none; }

.cpt-row-btn[b-zmvm0xmrwg] {
    display: grid;
    grid-template-columns: 56px 1fr auto;
    align-items: center;
    gap: 14px;
    width: 100%;
    padding: 10px 4px;
    background: none;
    border: 0;
    text-align: left;
    color: inherit;
    cursor: pointer;
}

.cpt-row-btn:hover[b-zmvm0xmrwg], .cpt-row.is-open .cpt-row-btn[b-zmvm0xmrwg] { background: var(--crm-bg, #f5f7fa); }
.cpt-row-btn:focus-visible[b-zmvm0xmrwg] { outline: 2px solid var(--crm-teal, #00C5A8); outline-offset: -2px; }

.cpt-date[b-zmvm0xmrwg] {
    text-align: center;
    color: var(--crm-text-2, #4b5563);
    padding: 6px 4px;
    background: var(--crm-bg, #f5f7fa);
    border-radius: 8px;
    line-height: 1;
}

.cpt-date-day[b-zmvm0xmrwg] { font-size: 1.1rem; font-weight: 700; color: var(--crm-navy, #0f172a); }

.cpt-date-mon[b-zmvm0xmrwg] {
    font-size: 0.62rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 2px;
}

.cpt-main[b-zmvm0xmrwg] { min-width: 0; }

.cpt-row-title[b-zmvm0xmrwg] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cpt-row-sub[b-zmvm0xmrwg] { font-size: 0.75rem; color: var(--crm-text-3, #9ca3af); margin-top: 2px; }

.cpt-tag[b-zmvm0xmrwg], .cpt-live[b-zmvm0xmrwg] {
    display: inline-block;
    margin-left: 6px;
    padding: 0 6px;
    border-radius: 999px;
    font-size: 0.68rem;
    line-height: 1.5;
}

.cpt-tag[b-zmvm0xmrwg] { background: var(--crm-bg, #f5f7fa); color: var(--crm-text-2, #4b5563); border: 1px solid var(--crm-border, #d8dee7); }
.cpt-live[b-zmvm0xmrwg] { background: var(--crm-teal, #00C5A8); color: #fff; font-weight: 600; }

.cpt-chev[b-zmvm0xmrwg] { color: var(--crm-text-3, #9ca3af); font-size: 0.85rem; }

.cpt-answers[b-zmvm0xmrwg] { padding: 4px 4px 14px 74px; }

.cpt-qa[b-zmvm0xmrwg] { margin: 0 0 10px; padding-left: 1.1rem; }
.cpt-qa li[b-zmvm0xmrwg] { margin-bottom: 8px; }
.cpt-q[b-zmvm0xmrwg] { font-size: 0.8rem; color: var(--crm-text-2, #4b5563); }
.cpt-a[b-zmvm0xmrwg] { font-size: 0.875rem; color: var(--crm-navy, #0f172a); font-weight: 500; white-space: pre-wrap; overflow-wrap: anywhere; }
.cpt-muted[b-zmvm0xmrwg] { font-size: 0.8rem; color: var(--crm-text-3, #9ca3af); margin: 0 0 8px; }

.cpt-link[b-zmvm0xmrwg] { font-size: 0.8rem; color: var(--crm-teal-700, #00735f); text-decoration: none; }
.cpt-link:hover[b-zmvm0xmrwg] { text-decoration: underline; }

@media (max-width: 600px) {
    .cpt-panel[b-zmvm0xmrwg] { padding: 16px; }
    .cpt-answers[b-zmvm0xmrwg] { padding-left: 8px; }
}
/* /Pages/Contacts/ContactPortalAccessPanel.razor.rz.scp.css */
.cpa-panel[b-y3qe3xc3gp] {
    max-width: 720px;
}

.cpa-head[b-y3qe3xc3gp] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.cpa-title[b-y3qe3xc3gp] {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--crm-text);
    margin: 0 0 0.25rem 0;
}

.cpa-sub[b-y3qe3xc3gp] {
    color: var(--crm-text-2);
    font-size: 0.875rem;
    margin: 0;
    max-width: 46ch;
}

.cpa-badge[b-y3qe3xc3gp] {
    flex: 0 0 auto;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    padding: 0.28rem 0.6rem;
    border-radius: 999px;
    white-space: nowrap;
}

.cpa-badge-active[b-y3qe3xc3gp] {
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
}

.cpa-badge-pending[b-y3qe3xc3gp] {
    background: #FFF4E0;
    color: #B5710A;
}

.cpa-badge-none[b-y3qe3xc3gp] {
    background: var(--crm-surface-2);
    color: var(--crm-text-3);
}

.cpa-state[b-y3qe3xc3gp] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.1rem;
    background: var(--crm-bg);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
}

.cpa-icon[b-y3qe3xc3gp] {
    font-size: 1.5rem;
    line-height: 1;
}

.cpa-icon-ok[b-y3qe3xc3gp] { color: var(--crm-teal-600); }
.cpa-icon-pending[b-y3qe3xc3gp] { color: #D97706; }

.cpa-state-title[b-y3qe3xc3gp] {
    font-weight: 600;
    color: var(--crm-text);
}

.cpa-state-sub[b-y3qe3xc3gp] {
    font-size: 0.85rem;
    color: var(--crm-text-2);
}

.cpa-actions[b-y3qe3xc3gp] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.9rem;
    flex-wrap: wrap;
}

.cpa-invite-controls[b-y3qe3xc3gp] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 1rem 1.1rem;
    background: var(--crm-bg);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
}

.cpa-link-card[b-y3qe3xc3gp] {
    margin-top: 1rem;
    padding: 0.9rem 1.1rem;
    background: var(--crm-white);
    border: 1px dashed var(--crm-border);
    border-radius: var(--crm-r);
}

.cpa-link-label[b-y3qe3xc3gp] {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
    margin-bottom: 0.4rem;
}

.cpa-link-row[b-y3qe3xc3gp] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.cpa-link[b-y3qe3xc3gp] {
    flex: 1 1 auto;
    overflow-x: auto;
    white-space: nowrap;
    padding: 0.45rem 0.6rem;
    background: var(--crm-bg);
    border-radius: var(--crm-r-sm);
    font-size: 0.8rem;
    color: var(--crm-text);
}

.cpa-copy[b-y3qe3xc3gp] {
    flex: 0 0 auto;
    white-space: nowrap;
}

.cpa-link-hint[b-y3qe3xc3gp] {
    margin-top: 0.5rem;
    font-size: 0.78rem;
    color: var(--crm-text-3);
}
/* /Pages/Contacts/ContactVisitAddPanel.razor.rz.scp.css */
.cv-add-card[b-e8jf7w0194] {
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
    box-shadow: var(--crm-shadow-xs);
    overflow: hidden;
    margin-bottom: 1rem;
}

.cv-add-header[b-e8jf7w0194] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 0.9rem;
    background: var(--crm-bg);
    border-bottom: 1px solid var(--crm-border);
}

.cv-add-title[b-e8jf7w0194] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-navy);
}

.cv-add-close[b-e8jf7w0194] {
    font-size: 0.75rem;
    padding: 0.15rem 0.5rem;
}

.cv-add-tabs[b-e8jf7w0194] {
    display: flex;
    border-bottom: 1px solid var(--crm-border);
    background: var(--crm-white);
}

.cv-add-tab[b-e8jf7w0194] {
    flex: 1;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 0.55rem 0.9rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--crm-text-2);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.cv-add-tab:hover[b-e8jf7w0194] {
    background: var(--crm-bg);
    color: var(--crm-navy);
}

.cv-add-tab.active[b-e8jf7w0194] {
    color: var(--crm-navy);
    border-bottom-color: var(--crm-teal);
    background: var(--crm-white);
}

.cv-add-body[b-e8jf7w0194] {
    padding: 0.9rem;
}

.cv-alert[b-e8jf7w0194] {
    font-size: 0.85rem;
    padding: 0.5rem 0.75rem;
    margin-bottom: 0.75rem;
}

.cv-find-search[b-e8jf7w0194] {
    margin-bottom: 0.6rem;
}

.cv-label[b-e8jf7w0194] {
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
    margin-bottom: 0.2rem;
}

.cv-visit-list[b-e8jf7w0194] {
    max-height: 280px;
    overflow-y: auto;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-bg);
}

.cv-visit-item[b-e8jf7w0194] {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--crm-border);
    cursor: pointer;
    transition: background-color 0.12s ease;
    background: var(--crm-white);
}

.cv-visit-item:last-child[b-e8jf7w0194] {
    border-bottom: none;
}

.cv-visit-item:hover:not(.disabled)[b-e8jf7w0194] {
    background: var(--crm-teal-50);
}

.cv-visit-item.selected[b-e8jf7w0194] {
    background: var(--crm-teal-50);
    box-shadow: inset 3px 0 0 var(--crm-teal);
}

.cv-visit-item.disabled[b-e8jf7w0194] {
    opacity: 0.65;
    cursor: not-allowed;
}

.cv-visit-main[b-e8jf7w0194] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    font-size: 0.88rem;
}

.cv-visit-date[b-e8jf7w0194] {
    font-weight: 600;
    color: var(--crm-navy);
}

.cv-visit-account[b-e8jf7w0194] {
    color: var(--crm-text-2);
}

.cv-visit-sub[b-e8jf7w0194] {
    margin-top: 0.15rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 0.78rem;
    color: var(--crm-text-3);
}

.cv-visit-purpose[b-e8jf7w0194] {
    color: var(--crm-text-2);
}

.cv-visit-attached[b-e8jf7w0194] {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.cv-add-actions[b-e8jf7w0194] {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.75rem;
}
/* /Pages/CustomObjects/CustomObjectDetail.razor.rz.scp.css */
/* ── Header ─────────────────────────────────────────── */

.co-header[b-fpa74geaq3] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1.5rem;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    box-shadow: var(--crm-shadow-xs);
}

.co-header-left[b-fpa74geaq3] {
    min-width: 0;
    flex: 1;
}

.co-header[b-fpa74geaq3]  h1 {
    margin: 0.15rem 0 0.5rem;
    font-size: 1.6rem;
}


.co-meta[b-fpa74geaq3] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1.25rem;
}

.co-meta-item[b-fpa74geaq3] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.85rem;
    color: var(--crm-text-2);
}

.co-meta-muted[b-fpa74geaq3] {
    color: var(--crm-text-3);
}

.co-meta-item[b-fpa74geaq3]  i {
    font-size: 0.9rem;
    opacity: 0.6;
}

.co-actions[b-fpa74geaq3] {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
    padding-top: 0.15rem;
}

/* ── Empty state ───────────────────────────────────── */

.co-empty-state[b-fpa74geaq3] {
    padding: 2rem;
    text-align: center;
    color: var(--crm-text-3);
    background: var(--crm-white);
    border: 1px dashed var(--crm-border-2);
    border-radius: var(--crm-r);
}

/* ── Panels: side-by-side, grow vertically, aligned at top ── */

.co-panels[b-fpa74geaq3] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    align-items: start;
}

.co-panel-section[b-fpa74geaq3] {
    min-width: 0;
}

/* Give the RelatedObjectsPanel containers more visual weight */
.co-panel-section[b-fpa74geaq3]  .rop-container {
    background: var(--crm-white);
    border-color: var(--crm-border-2);
    box-shadow: var(--crm-shadow-sm);
    border-radius: var(--crm-r);
}

.co-panel-section[b-fpa74geaq3]  .rop-header {
    background: var(--crm-navy);
    border-bottom-color: var(--crm-navy-dark);
    border-radius: var(--crm-r) var(--crm-r) 0 0;
}

.co-panel-section[b-fpa74geaq3]  .rop-title {
    color: var(--crm-white);
    font-size: 0.8rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.co-panel-section[b-fpa74geaq3]  .rop-header .btn-primary {
    background: var(--crm-teal);
    border-color: var(--crm-teal);
    color: var(--crm-navy);
    font-weight: 600;
    font-size: 0.78rem;
}

.co-panel-section[b-fpa74geaq3]  .rop-header .btn-primary:hover {
    background: var(--crm-teal-600);
    border-color: var(--crm-teal-600);
}

.co-panel-section[b-fpa74geaq3]  .rop-item {
    border-bottom-color: var(--crm-border);
    padding: 10px 14px;
}

.co-panel-section[b-fpa74geaq3]  .rop-item:hover {
    background: var(--crm-teal-50);
}

.co-panel-section[b-fpa74geaq3]  .rop-item-name {
    color: var(--crm-navy);
    font-weight: 600;
}

.co-panel-section[b-fpa74geaq3]  .rop-empty {
    padding: 20px 14px;
    text-align: center;
    color: var(--crm-text-3);
}

/* ── Responsive ─────────────────────────────────────── */

@media (max-width: 767.98px) {
    .co-panels[b-fpa74geaq3] {
        grid-template-columns: 1fr;
    }

    .co-header[b-fpa74geaq3] {
        flex-direction: column;
        gap: 0.75rem;
    }

    .co-actions[b-fpa74geaq3] {
        align-self: flex-end;
    }
}
/* /Pages/DataAccuracy/Components/DataAccuracyAccountPanel.razor.rz.scp.css */
/* Data Accuracy pill — mirrors AccountEngagementPanel (aep-) and
   AccountHierarchyPanel (ahp-). Compact pill summary on the right-aligned
   utility row; expands into a below-right popover overlay. */

.dap-anchor[b-i3ncv3fzcu] {
    position: relative;
    display: inline-flex;
}

.dap-summary[b-i3ncv3fzcu] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: 999px;
    text-align: left;
    cursor: pointer;
    font-size: 0.8rem;
    color: var(--crm-text-2, #4b5563);
    transition: background 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
    white-space: nowrap;
}

.dap-summary:hover[b-i3ncv3fzcu],
.dap-summary.is-active[b-i3ncv3fzcu] {
    background: var(--crm-bg, #f5f7fa);
    border-color: var(--crm-border-2, #c5d3e8);
}

.dap-summary.is-active[b-i3ncv3fzcu] {
    box-shadow: 0 0 0 3px rgba(0, 197, 168, 0.12);
}

.dap-summary-label[b-i3ncv3fzcu] {
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.dap-summary-label .bi[b-i3ncv3fzcu] {
    color: var(--crm-teal-600, #009E88);
}

.dap-summary-status[b-i3ncv3fzcu] {
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
}

.dap-summary-pending[b-i3ncv3fzcu] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(245, 158, 11, 0.14);
    color: #92400e;
    font-size: 0.72rem;
    font-weight: 600;
}

.dap-summary-when[b-i3ncv3fzcu] {
    font-size: 0.75rem;
    color: var(--crm-text-3, #9ca3af);
}

.dap-summary-chev[b-i3ncv3fzcu] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.85rem;
    transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1), color 140ms ease;
}

.dap-summary.is-active .dap-summary-chev[b-i3ncv3fzcu] {
    transform: rotate(180deg);
    color: var(--crm-navy);
}

/* ── Popover ────────────────────────────────────────── */

.dap-popover[b-i3ncv3fzcu] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 360px;
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 120px);
    display: flex;
    flex-direction: column;
    z-index: 1050;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: saturate(140%) blur(8px);
    -webkit-backdrop-filter: saturate(140%) blur(8px);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 12px;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.06),
        0 16px 32px -10px rgba(15, 23, 42, 0.22);
    transform-origin: top right;
    animation: dap-popover-in-b-i3ncv3fzcu 180ms cubic-bezier(0.16, 1, 0.3, 1);
    overflow: hidden;
}

@keyframes dap-popover-in-b-i3ncv3fzcu {
    from { opacity: 0; transform: translateY(-6px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0)   scale(1);    }
}

.dap-popover-head[b-i3ncv3fzcu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    background: var(--crm-bg, #f5f7fa);
}

.dap-popover-title[b-i3ncv3fzcu] {
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    font-size: 0.9rem;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.dap-popover-title .bi[b-i3ncv3fzcu] {
    color: var(--crm-teal-600, #009E88);
}

.dap-popover-actions[b-i3ncv3fzcu] {
    display: flex;
    gap: 6px;
    align-items: center;
}

.dap-popover-body[b-i3ncv3fzcu] {
    padding: 14px 16px;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.dap-field[b-i3ncv3fzcu] {
    display: flex;
    flex-direction: column;
}

.dap-meta[b-i3ncv3fzcu] {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 12px;
    row-gap: 4px;
    margin: 0;
    font-size: 0.8rem;
}

.dap-meta > div[b-i3ncv3fzcu] {
    display: contents;
}

.dap-meta dt[b-i3ncv3fzcu] {
    color: var(--crm-text-3, #9ca3af);
    font-weight: 500;
}

.dap-meta dd[b-i3ncv3fzcu] {
    margin: 0;
    color: var(--crm-navy, #0f172a);
    font-variant-numeric: tabular-nums;
}

.dap-actions[b-i3ncv3fzcu] {
    display: flex;
    justify-content: flex-end;
}

.dap-status[b-i3ncv3fzcu] {
    border-top: 1px dashed var(--crm-border, #d8dee7);
    padding-top: 8px;
}

.dap-backdrop[b-i3ncv3fzcu] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

/* ── Narrow viewports ─────────────────────────────────
   Below ~1,600px the AccountDetail utility row wraps. The last-run
   stamp is repeated inside the popover, so it goes first. The popover
   then anchors to the row (which is `position: relative`) instead of
   the pill and caps at the row width, so it can never leave the
   content column, which the layout shell clips with no scrollbar. */
@media (max-width: 1599.98px) {
    .dap-summary-when[b-i3ncv3fzcu] { display: none; }
    .dap-anchor[b-i3ncv3fzcu] { position: static; }
    .dap-popover[b-i3ncv3fzcu] { max-width: 100%; }
}

/* Phone: a fixed sheet over a tinted backdrop. */
@media (max-width: 640.98px) {
    .dap-popover[b-i3ncv3fzcu] {
        position: fixed;
        inset: auto 12px 12px 12px;
        width: auto;
        max-width: none;
        max-height: 80vh;
        border-radius: 14px;
        transform-origin: bottom center;
    }
    .dap-backdrop[b-i3ncv3fzcu] { background: rgba(15, 23, 42, 0.35); }
}

/* ── Running state ───────────────────────────────────── */

/* Pill icon pulse + slow spin while a run is in flight. Visible even
   when the popover is closed so the user knows the run is still going. */
.dap-summary.is-running[b-i3ncv3fzcu] {
    border-color: var(--crm-teal-600, #009E88);
    box-shadow: 0 0 0 3px rgba(0, 197, 168, 0.18);
}

.dap-summary.is-running .dap-summary-label .bi[b-i3ncv3fzcu] {
    animation: dap-spin-b-i3ncv3fzcu 1.4s linear infinite;
}

.dap-running[b-i3ncv3fzcu] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 8px;
    background: linear-gradient(180deg, rgba(0, 197, 168, 0.06), rgba(0, 197, 168, 0.02));
    border: 1px solid rgba(0, 197, 168, 0.18);
}

.dap-running-head[b-i3ncv3fzcu] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    font-size: 0.85rem;
}

.dap-running-head .bi[b-i3ncv3fzcu] {
    color: var(--crm-teal-600, #009E88);
    margin-right: 4px;
}

.dap-running-elapsed[b-i3ncv3fzcu] {
    font-variant-numeric: tabular-nums;
    color: var(--crm-text-2, #4b5563);
    font-weight: 500;
}

.dap-running-hint[b-i3ncv3fzcu] {
    font-size: 0.75rem;
    color: var(--crm-text-3, #9ca3af);
    line-height: 1.35;
}

/* Indeterminate progress: a colored band that loops left→right across
   the bar. Striped overlay for additional motion. */
.dap-progress[b-i3ncv3fzcu] {
    position: relative;
    height: 6px;
    border-radius: 999px;
    background: rgba(0, 197, 168, 0.12);
    overflow: hidden;
}

.dap-progress-bar[b-i3ncv3fzcu] {
    position: absolute;
    inset: 0;
    width: 35%;
    border-radius: 999px;
    background:
        linear-gradient(135deg,
            rgba(255, 255, 255, 0.35) 25%, transparent 25%,
            transparent 50%, rgba(255, 255, 255, 0.35) 50%,
            rgba(255, 255, 255, 0.35) 75%, transparent 75%,
            transparent 100%) 0 0 / 14px 14px,
        linear-gradient(90deg, #009E88, #00c5a8);
    animation:
        dap-progress-slide-b-i3ncv3fzcu 1.6s cubic-bezier(0.4, 0, 0.2, 1) infinite,
        dap-progress-stripes-b-i3ncv3fzcu 0.9s linear infinite;
}

.dap-spin[b-i3ncv3fzcu] {
    display: inline-block;
    animation: dap-spin-b-i3ncv3fzcu 1.4s linear infinite;
}

@keyframes dap-progress-slide-b-i3ncv3fzcu {
    0%   { left: -35%; }
    100% { left: 100%; }
}

@keyframes dap-progress-stripes-b-i3ncv3fzcu {
    from { background-position: 0 0, 0 0; }
    to   { background-position: 14px 0, 0 0; }
}

@keyframes dap-spin-b-i3ncv3fzcu {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .dap-progress-bar[b-i3ncv3fzcu],
    .dap-summary.is-running .dap-summary-label .bi[b-i3ncv3fzcu],
    .dap-spin[b-i3ncv3fzcu] { animation: none; }
    .dap-progress-bar[b-i3ncv3fzcu] { width: 100%; }
}

/* "Checked and found nothing to change" — the half of the agent's work the
   suggestion inbox structurally cannot show. Deliberately quiet: it's context
   for a steward who knows better, not a claim to celebrate. */
.dap-verified[b-i3ncv3fzcu] {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin-top: 10px;
    padding: 8px 10px;
    border-radius: 7px;
    background: rgba(25, 135, 84, 0.07);
    border: 1px solid rgba(25, 135, 84, 0.2);
    font-size: 0.78rem;
    line-height: 1.4;
}

.dap-verified .bi[b-i3ncv3fzcu] {
    color: #198754;
    font-size: 0.9rem;
    line-height: 1.3;
}
/* /Pages/DataAccuracy/SuggestionReview.razor.rz.scp.css */
/* Suggestion review — staff-facing layout. No raw JSON, friendly labels,
   clear hero + side-by-side change cards + soft callouts for reasoning and
   sources. Mirrors the calm CRM-wide visual language (teal + navy + soft
   borders) used elsewhere on the Account detail page. */

.sr-back a[b-eqs4uc2qqt] {
    color: var(--crm-text-3, #9ca3af);
    text-decoration: none;
    font-size: 0.85rem;
}

.sr-back a:hover[b-eqs4uc2qqt] {
    color: var(--crm-navy, #0f172a);
}

/* ── Hero ─────────────────────────────────────────────── */

.sr-hero[b-eqs4uc2qqt] {
    margin-bottom: 20px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--crm-border, #e6eaf0);
}

.sr-hero-eyebrow[b-eqs4uc2qqt] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
    font-size: 0.78rem;
    color: var(--crm-text-3, #9ca3af);
}

.sr-scope-chip[b-eqs4uc2qqt] {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    background: rgba(0, 197, 168, 0.10);
    color: #00867a;
    font-weight: 600;
    font-size: 0.72rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.sr-eyebrow-dot[b-eqs4uc2qqt] { color: var(--crm-border-2, #c5d3e8); }

.sr-occurrence[b-eqs4uc2qqt] {
    font-weight: 500;
}

.sr-hero-title[b-eqs4uc2qqt] {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    margin: 0 0 4px 0;
    line-height: 1.25;
}

.sr-hero-field[b-eqs4uc2qqt] {
    color: var(--crm-teal-600, #009E88);
    font-weight: 700;
}

.sr-hero-subtitle[b-eqs4uc2qqt] {
    color: var(--crm-text-2, #4b5563);
    font-size: 0.95rem;
}

.sr-account-link[b-eqs4uc2qqt] {
    color: var(--crm-navy, #0f172a);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
}

.sr-account-link:hover[b-eqs4uc2qqt] {
    color: var(--crm-teal-600, #009E88);
    border-color: var(--crm-teal-600, #009E88);
}

/* ── Resolved status row in hero ─────────────────────── */

.sr-status-row[b-eqs4uc2qqt] {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
}

.sr-status-pill[b-eqs4uc2qqt] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 600;
}

.sr-status-pending[b-eqs4uc2qqt] { background: rgba(245, 158, 11, 0.14); color: #92400e; }
.sr-status-approved[b-eqs4uc2qqt] { background: rgba(16, 185, 129, 0.14); color: #047857; }
.sr-status-dismissed[b-eqs4uc2qqt] { background: rgba(107, 114, 128, 0.14); color: #4b5563; }
.sr-status-superseded[b-eqs4uc2qqt] { background: rgba(99, 102, 241, 0.14); color: #4338ca; }

.sr-status-when[b-eqs4uc2qqt] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.8rem;
}

.sr-reviewer-note[b-eqs4uc2qqt] {
    width: 100%;
    margin-top: 6px;
    padding: 8px 12px;
    background: var(--crm-bg, #f5f7fa);
    border-radius: 8px;
    color: var(--crm-text-2, #4b5563);
    font-size: 0.85rem;
    font-style: italic;
}

.sr-reviewer-note .bi[b-eqs4uc2qqt] { color: var(--crm-text-3, #9ca3af); margin-right: 4px; }

/* ── Change cards (current → proposed) ───────────────── */

.sr-change[b-eqs4uc2qqt] {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 14px;
    align-items: stretch;
    margin-bottom: 24px;
}

.sr-change-card[b-eqs4uc2qqt] {
    padding: 16px 18px;
    border-radius: 12px;
    border: 1px solid var(--crm-border, #e6eaf0);
    background: var(--crm-white, #fff);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.sr-change-current[b-eqs4uc2qqt] {
    background: var(--crm-bg, #f5f7fa);
}

.sr-change-proposed[b-eqs4uc2qqt] {
    border-color: rgba(0, 197, 168, 0.40);
    background: linear-gradient(180deg, rgba(0, 197, 168, 0.05), rgba(0, 197, 168, 0.01));
    box-shadow: 0 1px 2px rgba(0, 197, 168, 0.08);
}

.sr-change-label[b-eqs4uc2qqt] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--crm-text-3, #9ca3af);
}

.sr-change-proposed .sr-change-label[b-eqs4uc2qqt] {
    color: var(--crm-teal-600, #009E88);
}

.sr-change-value[b-eqs4uc2qqt] {
    min-height: 40px;
}

.sr-value-primary[b-eqs4uc2qqt] {
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    word-break: break-word;
    line-height: 1.35;
}

.sr-value-secondary[b-eqs4uc2qqt] {
    margin-top: 2px;
    color: var(--crm-text-2, #4b5563);
    font-size: 0.85rem;
}

.sr-change-empty[b-eqs4uc2qqt] {
    color: var(--crm-text-3, #9ca3af);
    font-style: italic;
    font-size: 0.95rem;
}

/* Dismissal reason picker. Grouped into three questions rather than a flat
   radio list, with the consequence spelled out once a reason is chosen — the
   reviewer is teaching the agent here, not just clearing a row. */
.sr-dismiss[b-eqs4uc2qqt] {
    margin-top: 12px;
    padding: 14px 16px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.02);
}

.sr-dismiss-head[b-eqs4uc2qqt] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 10px;
}

.sr-dismiss-group[b-eqs4uc2qqt] { margin-bottom: 10px; }

.sr-dismiss-group-label[b-eqs4uc2qqt] {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--crm-text-muted, #6c757d);
    margin-bottom: 4px;
}

.sr-dismiss-option[b-eqs4uc2qqt] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 9px;
    margin-bottom: 2px;
    border: 1px solid transparent;
    border-radius: 7px;
    font-size: 0.88rem;
    cursor: pointer;
}

.sr-dismiss-option:hover[b-eqs4uc2qqt] { background: rgba(0, 0, 0, 0.04); }

.sr-dismiss-option.is-selected[b-eqs4uc2qqt] {
    border-color: rgba(220, 53, 69, 0.35);
    background: rgba(220, 53, 69, 0.07);
    font-weight: 600;
}

.sr-dismiss-option input[b-eqs4uc2qqt] { margin: 0; }

.sr-dismiss-effect[b-eqs4uc2qqt] {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin: 10px 0 12px;
    padding: 8px 11px;
    border-radius: 7px;
    background: rgba(13, 110, 253, 0.07);
    border: 1px solid rgba(13, 110, 253, 0.2);
    font-size: 0.82rem;
    line-height: 1.4;
}

/* Reuse-vs-create cue on leadership-role suggestions. Reuse (teal) is the
   desirable, no-duplicate outcome; "new contact" (amber) is a heads-up that a
   record will be added. */
.sr-contact-tag[b-eqs4uc2qqt] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.3;
}

.sr-contact-tag .bi[b-eqs4uc2qqt] { font-size: 0.9rem; }
.sr-contact-tag strong[b-eqs4uc2qqt] { font-weight: 700; }

.sr-contact-reuse[b-eqs4uc2qqt] {
    color: #00867a;
    background: rgba(0, 197, 168, 0.12);
    border: 1px solid rgba(0, 197, 168, 0.35);
}

.sr-contact-new[b-eqs4uc2qqt] {
    color: #92600a;
    background: rgba(245, 158, 11, 0.12);
    border: 1px solid rgba(245, 158, 11, 0.35);
}

/* Parent-system collision: the strongest cue of the three, because it's the
   mistake this feature makes most often. Red, but still only a cue — wraps
   rather than truncates, since the sentence is the point. */
.sr-contact-parent[b-eqs4uc2qqt] {
    display: flex;
    align-items: flex-start;
    color: #9b2226;
    background: rgba(220, 53, 69, 0.09);
    border: 1px solid rgba(220, 53, 69, 0.35);
    border-radius: 8px;
    padding: 7px 11px;
    line-height: 1.45;
}

.sr-contact-parent .bi[b-eqs4uc2qqt] { margin-top: 2px; }

.sr-contact-parent a[b-eqs4uc2qqt] {
    color: inherit;
    font-weight: 700;
    text-decoration: underline;
}

.sr-contact-fid[b-eqs4uc2qqt] {
    margin-left: 4px;
    padding: 1px 6px;
    border-radius: 4px;
    background: rgba(0, 0, 0, 0.05);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.sr-change-arrow[b-eqs4uc2qqt] {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--crm-text-3, #9ca3af);
    font-size: 1.2rem;
}

.sr-change-arrow .bi[b-eqs4uc2qqt] {
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #e6eaf0);
    border-radius: 999px;
    padding: 6px 8px;
}

@media (max-width: 700px) {
    .sr-change[b-eqs4uc2qqt] {
        grid-template-columns: 1fr;
    }
    .sr-change-arrow[b-eqs4uc2qqt] {
        transform: rotate(90deg);
    }
}

/* ── Reasoning callout ──────────────────────────────── */

.sr-reasoning[b-eqs4uc2qqt] {
    padding: 16px 18px;
    border-radius: 12px;
    border: 1px solid var(--crm-border, #e6eaf0);
    background: var(--crm-white, #fff);
    margin-bottom: 18px;
}

.sr-reasoning-head[b-eqs4uc2qqt] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.sr-section-title[b-eqs4uc2qqt] {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.sr-section-title .bi[b-eqs4uc2qqt] {
    color: var(--crm-teal-600, #009E88);
}

.sr-section-count[b-eqs4uc2qqt] {
    margin-left: 4px;
    padding: 1px 8px;
    border-radius: 999px;
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.72rem;
    font-weight: 500;
}

.sr-reasoning-body[b-eqs4uc2qqt] {
    margin: 0;
    color: var(--crm-text-2, #374151);
    line-height: 1.55;
    font-size: 0.95rem;
}

/* Confidence indicator */
.sr-confidence[b-eqs4uc2qqt] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.sr-confidence-label[b-eqs4uc2qqt] {
    font-size: 0.78rem;
    color: var(--crm-text-2, #4b5563);
    font-weight: 500;
}

.sr-confidence-bars[b-eqs4uc2qqt] {
    display: inline-flex;
    gap: 3px;
    align-items: flex-end;
}

.sr-confidence-bars > span[b-eqs4uc2qqt] {
    display: inline-block;
    width: 5px;
    background: var(--crm-border, #e6eaf0);
    border-radius: 2px;
}

.sr-confidence-bars > span:nth-child(1)[b-eqs4uc2qqt] { height: 7px; }
.sr-confidence-bars > span:nth-child(2)[b-eqs4uc2qqt] { height: 10px; }
.sr-confidence-bars > span:nth-child(3)[b-eqs4uc2qqt] { height: 13px; }
.sr-confidence-bars > span:nth-child(4)[b-eqs4uc2qqt] { height: 16px; }
.sr-confidence-bars > span:nth-child(5)[b-eqs4uc2qqt] { height: 19px; }

.sr-confidence-5 > span[b-eqs4uc2qqt] { background: #10b981; }
.sr-confidence-4 > span:nth-child(-n+4)[b-eqs4uc2qqt] { background: #10b981; }
.sr-confidence-3 > span:nth-child(-n+3)[b-eqs4uc2qqt] { background: #f59e0b; }
.sr-confidence-2 > span:nth-child(-n+2)[b-eqs4uc2qqt] { background: #f59e0b; }
.sr-confidence-1 > span:nth-child(1)[b-eqs4uc2qqt] { background: #ef4444; }

/* ── Sources ────────────────────────────────────────── */

.sr-sources[b-eqs4uc2qqt] {
    margin-bottom: 18px;
}

.sr-sources .sr-section-title[b-eqs4uc2qqt] {
    margin-bottom: 10px;
}

.sr-source-list[b-eqs4uc2qqt] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sr-source-card[b-eqs4uc2qqt] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border-radius: 10px;
    border: 1px solid var(--crm-border, #e6eaf0);
    background: var(--crm-white, #fff);
    color: var(--crm-navy, #0f172a);
    text-decoration: none;
    transition: border-color 140ms ease, background 140ms ease;
}

.sr-source-card:hover[b-eqs4uc2qqt] {
    border-color: var(--crm-teal-600, #009E88);
    background: rgba(0, 197, 168, 0.04);
}

.sr-source-icon[b-eqs4uc2qqt] {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(0, 197, 168, 0.10);
    color: var(--crm-teal-600, #009E88);
}

.sr-source-text[b-eqs4uc2qqt] {
    flex: 1 1 auto;
    min-width: 0;
}

.sr-source-domain[b-eqs4uc2qqt] {
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    font-size: 0.9rem;
}

.sr-source-url[b-eqs4uc2qqt] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.78rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sr-source-go[b-eqs4uc2qqt] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.85rem;
}

/* ── Trace (collapsed by default) ───────────────────── */

.sr-trace[b-eqs4uc2qqt] {
    margin-bottom: 18px;
    border-radius: 10px;
    border: 1px dashed var(--crm-border-2, #c5d3e8);
    background: var(--crm-bg, #f5f7fa);
    padding: 6px 12px;
}

.sr-trace[open][b-eqs4uc2qqt] {
    background: var(--crm-white, #fff);
    border-style: solid;
    padding: 10px 14px;
}

.sr-trace-summary[b-eqs4uc2qqt] {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    list-style: none;
    color: var(--crm-text-2, #4b5563);
    font-size: 0.85rem;
    font-weight: 500;
    padding: 4px 0;
}

.sr-trace-summary[b-eqs4uc2qqt]::-webkit-details-marker { display: none; }

.sr-trace-chev[b-eqs4uc2qqt] {
    margin-left: auto;
    color: var(--crm-text-3, #9ca3af);
    transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1);
}

.sr-trace[open] .sr-trace-chev[b-eqs4uc2qqt] {
    transform: rotate(180deg);
}

.sr-trace-list[b-eqs4uc2qqt] {
    margin: 10px 0 4px 0;
    padding-left: 22px;
    color: var(--crm-text-2, #4b5563);
    font-size: 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sr-trace-item[b-eqs4uc2qqt] {
    padding: 4px 0;
}

.sr-trace-tool[b-eqs4uc2qqt] {
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.sr-trace-tool .bi[b-eqs4uc2qqt] {
    color: var(--crm-teal-600, #009E88);
}

.sr-trace-detail[b-eqs4uc2qqt] {
    color: var(--crm-text-3, #9ca3af);
    margin-left: 22px;
    font-size: 0.82rem;
}

/* ── Action footer ──────────────────────────────────── */

.sr-actions[b-eqs4uc2qqt] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 16px;
    margin-top: 8px;
    padding: 16px 18px;
    background: var(--crm-bg, #f5f7fa);
    border-radius: 12px;
}

.sr-actions-note[b-eqs4uc2qqt] {
    flex: 1 1 360px;
    min-width: 280px;
}

.sr-actions-buttons[b-eqs4uc2qqt] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;
}

.sr-btn-primary[b-eqs4uc2qqt] {
    padding: 8px 18px;
    font-weight: 600;
}

.sr-edit-link[b-eqs4uc2qqt] {
    background: none;
    border: none;
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.78rem;
    padding: 4px 0;
    cursor: pointer;
    text-decoration: underline;
    text-decoration-style: dotted;
    text-underline-offset: 3px;
}

.sr-edit-link:hover:not(:disabled)[b-eqs4uc2qqt] {
    color: var(--crm-navy, #0f172a);
}

.sr-edit-link:disabled[b-eqs4uc2qqt] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ── Edit-value card ────────────────────────────────── */

.sr-edit-card[b-eqs4uc2qqt] {
    margin-top: 16px;
    padding: 16px 18px;
    border: 1px solid var(--crm-border-2, #c5d3e8);
    border-radius: 12px;
    background: var(--crm-white, #fff);
}

.sr-edit-head[b-eqs4uc2qqt] {
    margin-bottom: 10px;
}

.sr-edit-textarea[b-eqs4uc2qqt] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.85rem;
}

.sr-edit-actions[b-eqs4uc2qqt] {
    display: flex;
    gap: 8px;
    margin-top: 10px;
}

/* ── Spinner ────────────────────────────────────────── */

.sr-spin[b-eqs4uc2qqt] {
    display: inline-block;
    animation: sr-spin-b-eqs4uc2qqt 1.4s linear infinite;
}

@keyframes sr-spin-b-eqs4uc2qqt {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .sr-spin[b-eqs4uc2qqt],
    .sr-trace-chev[b-eqs4uc2qqt] { animation: none; transition: none; }
}

/* "Tell the AI the general rule behind this" — the escape hatch for mistakes a
   per-value rejection can't express. */
.sr-teach[b-eqs4uc2qqt] {
    margin: 10px 0 12px;
    padding: 10px 12px;
    border: 1px dashed rgba(13, 110, 253, 0.35);
    border-radius: 8px;
    background: rgba(13, 110, 253, 0.04);
}

.sr-teach-toggle[b-eqs4uc2qqt] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    margin: 0;
}

.sr-teach-toggle input[b-eqs4uc2qqt] { margin: 0; }

.sr-teach-foot[b-eqs4uc2qqt] {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-top: 5px;
    font-size: 0.74rem;
    color: var(--crm-text-muted, #6c757d);
}

.sr-teach-count[b-eqs4uc2qqt] { white-space: nowrap; }
/* /Pages/DataHealth/Components/DataHealthAccountPanel.razor.rz.scp.css */
/* Data Health pill — same shape as the Data Accuracy (dap-) and engagement
   (aep-) pills on the account utility row, in a warning tone because every
   pill that renders here represents outstanding work. */

.dhp-summary[b-xlkz6mg7f2] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: 999px;
    font-size: 0.8rem;
    color: var(--crm-text-2, #4b5563);
    text-decoration: none;
    white-space: nowrap;
    transition: background 140ms ease, border-color 140ms ease;
}

.dhp-summary:hover[b-xlkz6mg7f2] {
    background: var(--crm-bg, #f5f7fa);
    border-color: var(--crm-border-2, #c5d3e8);
}

.dhp-label[b-xlkz6mg7f2] {
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.dhp-label .bi[b-xlkz6mg7f2] {
    color: var(--crm-amber-600, #b45309);
}

.dhp-count[b-xlkz6mg7f2] {
    font-weight: 600;
    color: var(--crm-amber-700, #92400e);
    background: var(--crm-amber-50, #fffbeb);
    border-radius: 999px;
    padding: 1px 8px;
}
/* /Pages/DataHealth/Worklist.razor.rz.scp.css */
/* Data Health triage surface.

   Two ideas carry the layout. First, the counts across the top are queues you
   can enter, not statistics you read — so they are buttons with a pressed
   state, and "Last checked" (which filters nothing) was pulled out of that row
   rather than left sitting among them looking clickable. Second, severity is
   the only ordering that matters when you are deciding what to work, so it is
   carried structurally: a colour-weighted rail down the left edge of each card,
   reinforced by order, not by a badge alone. */

/* ── Filter tiles ──────────────────────────────────────────────────────── */

.dh-tiles[b-027zuk909i] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
}

.dh-tile[b-027zuk909i] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    padding: 0.6rem 0.85rem;
    text-align: left;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: var(--crm-r, 10px);
    box-shadow: var(--crm-shadow-xs, 0 1px 3px rgba(13, 36, 71, 0.05));
    transition: border-color 0.12s ease, box-shadow 0.12s ease, transform 0.12s ease;
}

.dh-tile:hover[b-027zuk909i] {
    border-color: var(--crm-border-2, #C5D3E8);
    box-shadow: var(--crm-shadow-sm, 0 2px 8px rgba(13, 36, 71, 0.07));
}

.dh-tile:focus-visible[b-027zuk909i] {
    outline: 2px solid var(--crm-teal, #00C5A8);
    outline-offset: 2px;
}

.dh-tile--on[b-027zuk909i] {
    border-color: var(--crm-navy, #0D2447);
    box-shadow: inset 0 0 0 1px var(--crm-navy, #0D2447);
}

.dh-tile-n[b-027zuk909i] {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.1;
    color: var(--crm-text, #0D2447);
}

.dh-tile-l[b-027zuk909i] {
    font-size: 0.75rem;
    color: var(--crm-text-2, #4A5B78);
}

.dh-tile--high .dh-tile-n[b-027zuk909i] { color: #B42318; }

.dh-lastrun[b-027zuk909i] {
    margin-top: 0.35rem;
    font-size: 0.75rem;
    color: var(--crm-text-3, #8A9BB5);
    white-space: nowrap;
}

/* ── Board ─────────────────────────────────────────────────────────────── */

.dh-board[b-027zuk909i] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 0.75rem;
}

.dh-c[b-027zuk909i] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding: 0.85rem 0.95rem 0.7rem;
    text-align: left;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #DCE5F0);
    border-left: 4px solid var(--crm-border-2, #C5D3E8);
    border-radius: var(--crm-r, 10px);
    box-shadow: var(--crm-shadow-xs, 0 1px 3px rgba(13, 36, 71, 0.05));
    transition: box-shadow 0.14s ease, transform 0.14s ease;
}

.dh-c:hover[b-027zuk909i] {
    box-shadow: var(--crm-shadow, 0 4px 16px rgba(13, 36, 71, 0.09));
    transform: translateY(-1px);
}

.dh-c:focus-visible[b-027zuk909i] {
    outline: 2px solid var(--crm-teal, #00C5A8);
    outline-offset: 2px;
}

.dh-c--high[b-027zuk909i] { border-left-color: #B42318; }
.dh-c--med[b-027zuk909i]  { border-left-color: #B54708; }
.dh-c--low[b-027zuk909i]  { border-left-color: var(--crm-border-2, #C5D3E8); }

.dh-c-top[b-027zuk909i] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}

.dh-c-n[b-027zuk909i] {
    font-size: 1.75rem;
    font-weight: 600;
    line-height: 1;
    color: var(--crm-text, #0D2447);
}

.dh-c-sev[b-027zuk909i] {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--crm-text-3, #8A9BB5);
}

.dh-c--high .dh-c-sev[b-027zuk909i] { color: #B42318; }
.dh-c--med .dh-c-sev[b-027zuk909i] { color: #B54708; }

.dh-c-name[b-027zuk909i] {
    font-weight: 600;
    font-size: 0.9375rem;
    color: var(--crm-text, #0D2447);
}

.dh-c-desc[b-027zuk909i] {
    font-size: 0.8125rem;
    line-height: 1.35;
    color: var(--crm-text-2, #4A5B78);
}

.dh-c-foot[b-027zuk909i] {
    margin-top: 0.15rem;
    font-size: 0.75rem;
    color: var(--crm-text-3, #8A9BB5);
}

.dh-c-warn[b-027zuk909i] { color: #B54708; }

/* ── Status strips ─────────────────────────────────────────────────────── */

.dh-strip[b-027zuk909i] {
    padding: 0.5rem 0.75rem;
    font-size: 0.8125rem;
    color: var(--crm-text-2, #4A5B78);
    background: var(--crm-surface-2, #E6EEF8);
    border-radius: var(--crm-r-sm, 6px);
}

.dh-strip--warn[b-027zuk909i] {
    color: #7A2E0E;
    background: #FEF6EE;
    border: 1px solid #F9DBAF;
}

.dh-strip-note[b-027zuk909i] { color: inherit; opacity: 0.75; }

/* ── Drill ─────────────────────────────────────────────────────────────── */

.dh-crumb[b-027zuk909i] {
    display: flex;
    align-items: baseline;
}

.dh-assignee[b-027zuk909i] { white-space: nowrap; }
.dh-assignee .form-select[b-027zuk909i] { min-width: 11rem; }

.dh-assign[b-027zuk909i] {
    font-size: 0.8125rem;
    text-decoration: none;
}

.dh-assign:hover[b-027zuk909i] { text-decoration: underline; }

.dh-assign-me[b-027zuk909i] {
    font-weight: 600;
    color: var(--crm-teal-600, #009E88);
}

@media (max-width: 767.98px) {
    .dh-tiles[b-027zuk909i] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
    .dh-tile[b-027zuk909i],
    .dh-c[b-027zuk909i] {
        transition: none;
    }

    .dh-c:hover[b-027zuk909i] { transform: none; }
}

/* ── Research column ───────────────────────────────────────────────────── */

.dh-research[b-027zuk909i] { white-space: nowrap; }

.dh-research-btn[b-027zuk909i] { font-size: 0.75rem; }

.dh-research-busy[b-027zuk909i] {
    font-size: 0.8125rem;
    color: var(--crm-teal-600, #009E88);
}

.dh-research-hit[b-027zuk909i] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--crm-teal-600, #009E88);
    text-decoration: none;
}

.dh-research-hit:hover[b-027zuk909i] { text-decoration: underline; }

.dh-research-failed[b-027zuk909i] {
    font-size: 0.8125rem;
    color: #B54708;
}
/* /Pages/Events/Components/AudienceRuleEditor.razor.rz.scp.css */
.audience-chip[b-4jk9q81ecg] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.3rem 0.2rem 0.6rem;
    border-radius: 999px;
    font-size: 0.82rem;
    background: color-mix(in srgb, var(--crm-navy, #0D2447) 7%, white);
    color: var(--crm-navy, #0D2447);
}

.audience-chip-kind[b-4jk9q81ecg] {
    color: var(--crm-text-3, #6b7280);
}

.audience-chip-x[b-4jk9q81ecg] {
    border: none;
    background: transparent;
    padding: 0 0.2rem;
    line-height: 1;
    color: inherit;
    border-radius: 999px;
}

.audience-chip-x:hover[b-4jk9q81ecg],
.audience-chip-x:focus-visible[b-4jk9q81ecg] {
    background: color-mix(in srgb, var(--crm-navy, #0D2447) 14%, white);
}
/* /Pages/Events/Components/DiscountEditorModal.razor.rz.scp.css */
.dsc-step[b-ali0zefem6] {
    border-top: 1px solid var(--crm-border, #e5e7eb);
    padding-top: 0.9rem;
    margin-top: 1rem;
}

.dsc-step-title[b-ali0zefem6] {
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: var(--crm-text, #1f2937);
}

.dsc-choice-row[b-ali0zefem6] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 0.6rem;
}

.dsc-choice[b-ali0zefem6] {
    display: grid;
    gap: 0.2rem;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--crm-border, #e5e7eb);
    border-radius: var(--crm-r-sm, 6px);
    cursor: pointer;
    transition: border-color var(--crm-fast, 150ms) ease, background var(--crm-fast, 150ms) ease;
}

.dsc-choice:hover[b-ali0zefem6] {
    border-color: var(--crm-border-2, #cbd5e1);
}

.dsc-choice:focus-within[b-ali0zefem6] {
    outline: 2px solid var(--crm-navy, #0D2447);
    outline-offset: 2px;
}

.dsc-choice--on[b-ali0zefem6] {
    border-color: var(--crm-navy, #0D2447);
    background: color-mix(in srgb, var(--crm-navy, #0D2447) 5%, white);
}

.dsc-choice-title[b-ali0zefem6] {
    font-weight: 600;
    font-size: 0.92rem;
}

.dsc-choice-desc[b-ali0zefem6] {
    font-size: 0.8rem;
    color: var(--crm-text-3, #6b7280);
}

.dsc-preview[b-ali0zefem6] {
    margin-top: 1.25rem;
    padding: 0.85rem 1rem;
    border-radius: var(--crm-r-sm, 6px);
    background: color-mix(in srgb, var(--crm-teal, #00C5A8) 8%, white);
    border: 1px solid color-mix(in srgb, var(--crm-teal, #00C5A8) 30%, white);
}

.dsc-preview-label[b-ali0zefem6] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--crm-text-3, #6b7280);
}

.dsc-preview-rule[b-ali0zefem6] {
    font-weight: 600;
    color: var(--crm-text, #1f2937);
}

.dsc-preview-example[b-ali0zefem6] {
    font-size: 0.88rem;
    margin-top: 0.25rem;
    color: var(--crm-text-2, #4b5563);
}

.dsc-preview-note[b-ali0zefem6] {
    font-size: 0.78rem;
    margin-top: 0.4rem;
    color: var(--crm-text-3, #6b7280);
}
/* /Pages/Events/Components/NewRegistrationModal.razor.rz.scp.css */
.newreg-h[b-nmd0d7cm3z] {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--crm-text-3, #6b7280);
    margin-bottom: 0.5rem;
}

.newreg-ticket[b-nmd0d7cm3z] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 5.5rem;
    align-items: center;
    gap: 0.75rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid var(--crm-border, #e5e7eb);
}

.newreg-ticket-name[b-nmd0d7cm3z] {
    margin: 0;
    font-size: 0.92rem;
}

.newreg-ticket-price[b-nmd0d7cm3z] {
    font-size: 0.88rem;
    color: var(--crm-text-3, #6b7280);
    font-variant-numeric: tabular-nums;
}

.newreg-seat[b-nmd0d7cm3z] {
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--crm-border, #e5e7eb);
    border-radius: var(--crm-r-sm, 6px);
    margin-bottom: 0.5rem;
}

.newreg-seat-head[b-nmd0d7cm3z] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.45rem;
    font-size: 0.88rem;
}

.newreg-side[b-nmd0d7cm3z] {
    position: sticky;
    top: 0;
    padding: 1rem;
    background: var(--crm-surface-2, #f7f7f5);
    border-radius: var(--crm-r-sm, 6px);
}

.newreg-bill[b-nmd0d7cm3z] {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
    padding: 0.5rem 0.6rem;
    border: 1px solid var(--crm-border, #e5e7eb);
    border-radius: var(--crm-r-sm, 6px);
    background: #fff;
    cursor: pointer;
    font-size: 0.88rem;
}

.newreg-bill input[b-nmd0d7cm3z] {
    margin-top: 0.2rem;
}

.newreg-bill span[b-nmd0d7cm3z] {
    display: grid;
}

.newreg-bill small[b-nmd0d7cm3z] {
    color: var(--crm-text-3, #6b7280);
}
/* /Pages/Events/Components/TryABookingPanel.razor.rz.scp.css */
.try-grid[b-t1iwxcc7ra] {
    display: grid;
    gap: 0.4rem;
    max-width: 34rem;
}

.try-row[b-t1iwxcc7ra] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 6.5rem;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.9rem;
    margin: 0;
}

.try-price[b-t1iwxcc7ra] {
    color: var(--crm-text-3, #6b7280);
    font-variant-numeric: tabular-nums;
}

.try-result[b-t1iwxcc7ra] {
    max-width: 34rem;
    display: grid;
    gap: 0.2rem;
    font-size: 0.9rem;
    border-top: 1px solid var(--crm-border, #e5e7eb);
    padding-top: 0.6rem;
}

.try-result div[b-t1iwxcc7ra] {
    display: flex;
    justify-content: space-between;
}

.try-result dt[b-t1iwxcc7ra] { font-weight: 400; }
.try-result dd[b-t1iwxcc7ra] { margin: 0; font-variant-numeric: tabular-nums; }
.try-discount[b-t1iwxcc7ra] { color: var(--crm-teal-600, #00a08a); }
.try-total[b-t1iwxcc7ra] { font-weight: 700; font-size: 1rem; }
/* /Pages/Events/Tabs/EventRegistrationsTab.razor.rz.scp.css */
.reg-row[b-ih7t57b4n4] {
    cursor: pointer;
}

.reg-row:focus-visible[b-ih7t57b4n4] {
    outline: 2px solid var(--crm-navy, #0D2447);
    outline-offset: -2px;
}

.reg-detail-money[b-ih7t57b4n4] {
    display: grid;
    gap: 0.25rem;
    max-width: 22rem;
    margin: 0 0 0 auto;
    font-size: 0.92rem;
}

.reg-detail-money div[b-ih7t57b4n4] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.reg-detail-money dt[b-ih7t57b4n4] { font-weight: 400; }
.reg-detail-money dd[b-ih7t57b4n4] { margin: 0; font-variant-numeric: tabular-nums; }

.reg-detail-total[b-ih7t57b4n4] {
    font-weight: 700;
    border-top: 1px solid var(--crm-border, #e5e7eb);
    padding-top: 0.3rem;
}
/* /Pages/Events/Tabs/EventTicketsTab.razor.rz.scp.css */
.pricing-table th[b-23efzq2wyv] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--crm-text-3, #6b7280);
    border-bottom-width: 1px;
}

.pricing-row--off td:not(:last-child)[b-23efzq2wyv] {
    color: var(--crm-text-3, #6b7280);
}

.pricing-group-note[b-23efzq2wyv] {
    font-size: 0.85rem;
    color: var(--crm-text-2, #4b5563);
    background: var(--crm-surface-2, #f7f7f5);
    border: 1px solid var(--crm-border, #e5e7eb);
    border-radius: var(--crm-r-sm, 6px);
    padding: 0.55rem 0.75rem;
}

.pricing-discount[b-23efzq2wyv] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    padding: 0.75rem 0;
    border-top: 1px solid var(--crm-border, #e5e7eb);
}

.pricing-discount:first-child[b-23efzq2wyv] {
    border-top: none;
    padding-top: 0;
}

.pricing-discount-main[b-23efzq2wyv] {
    min-width: 0;
    display: grid;
    gap: 0.15rem;
}

.pricing-discount--off .pricing-discount-main[b-23efzq2wyv] {
    opacity: 0.65;
}
/* /Pages/GovernmentAffairs/Analytics.razor.rz.scp.css */
/* ── Biennium picker (rendered in GaPageHeader's Actions slot) ── */

.ga-biennium-picker[b-t5dv5bzgda] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.ga-biennium-label[b-t5dv5bzgda] {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--crm-text-3, #9ca3af);
}

.ga-biennium-select[b-t5dv5bzgda] {
    min-width: 240px;
    width: auto;
    border-color: var(--crm-border, #d8dee7);
}

/* ── Stat cards (top row) ──────────────────────────── */

.ga-stats-row[b-t5dv5bzgda] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 1rem;
}

[b-t5dv5bzgda] .ga-stat-card {
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: var(--crm-r, 10px);
    box-shadow: var(--crm-shadow-xs);
    padding: 14px 18px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    transition: border-color 140ms ease, box-shadow 140ms ease;
}

[b-t5dv5bzgda] .ga-stat-card:hover {
    border-color: var(--crm-border-2, #c5d3e8);
}

[b-t5dv5bzgda] .ga-stat-label {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--crm-text-3, #9ca3af);
    display: flex;
    align-items: center;
    gap: 6px;
}

[b-t5dv5bzgda] .ga-stat-label i {
    color: var(--crm-teal-600, #009E88);
    font-size: 0.95rem;
}

[b-t5dv5bzgda] .ga-stat-value {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--crm-navy, #0f172a);
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}

[b-t5dv5bzgda] .ga-stat-success { color: #15803d; }
[b-t5dv5bzgda] .ga-stat-danger  { color: #b91c1c; }

/* ── Info panels + sections ────────────────────────── */

.ga-info-panel[b-t5dv5bzgda] {
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: var(--crm-r, 10px);
    padding: 22px 26px;
    box-shadow: var(--crm-shadow-xs);
}

.ga-section-head[b-t5dv5bzgda] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 8px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    flex-wrap: wrap;
}

.ga-section-title[b-t5dv5bzgda] {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--crm-navy, #0f172a);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 auto;
}

.ga-section-title[b-t5dv5bzgda]::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
    flex-shrink: 0;
}

.ga-section-title i[b-t5dv5bzgda] {
    color: var(--crm-teal-600, #009E88);
    font-size: 0.95rem;
}

.ga-section-meta[b-t5dv5bzgda] {
    font-size: 0.75rem;
    color: var(--crm-text-3, #9ca3af);
}

.ga-scope-chip[b-t5dv5bzgda] {
    font-size: 0.66rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--crm-text-2);
    background: var(--crm-bg, #f5f7fa);
    padding: 2px 8px;
    border-radius: 999px;
    border: 1px solid var(--crm-border, #d8dee7);
}

.ga-empty[b-t5dv5bzgda] {
    padding: 24px 0 0;
    color: var(--crm-text-3, #9ca3af);
}

.ga-empty p[b-t5dv5bzgda] {
    margin: 0;
    font-size: 0.85rem;
}

/* ── Side-by-side panel grid ───────────────────────── */

.ga-panel-grid[b-t5dv5bzgda] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    align-items: start;
}

@media (max-width: 991.98px) {
    .ga-panel-grid[b-t5dv5bzgda] {
        grid-template-columns: 1fr;
    }
}

/* ── Bar rows (outcome / stance breakdowns) ────────── */

.ga-bar-row[b-t5dv5bzgda] {
    margin-bottom: 10px;
}

.ga-bar-row:last-child[b-t5dv5bzgda] {
    margin-bottom: 0;
}

.ga-bar-row-head[b-t5dv5bzgda] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: 0.82rem;
    margin-bottom: 4px;
}

.ga-bar-label[b-t5dv5bzgda] {
    color: var(--crm-text-1, #1f2937);
    display: inline-flex;
    align-items: center;
}

.ga-bar-dot[b-t5dv5bzgda] {
    display: inline-block;
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    margin-right: 0.5rem;
}

.ga-bar-meta[b-t5dv5bzgda] {
    color: var(--crm-text-3, #9ca3af);
    font-variant-numeric: tabular-nums;
    font-size: 0.78rem;
}

.ga-bar-track[b-t5dv5bzgda] {
    height: 6px;
    background: var(--crm-bg, #f5f7fa);
    border-radius: 999px;
    overflow: hidden;
}

.ga-bar-fill[b-t5dv5bzgda] {
    height: 100%;
    transition: width 240ms cubic-bezier(0.16, 1, 0.3, 1);
}

/* ── Stance × outcome matrix ───────────────────────── */

.ga-matrix-table[b-t5dv5bzgda] {
    margin-bottom: 0;
}

.ga-matrix-table th[b-t5dv5bzgda],
.ga-matrix-table td[b-t5dv5bzgda] {
    padding: 8px 10px;
    border-color: var(--crm-border, #d8dee7);
    font-size: 0.82rem;
}

.ga-matrix-table thead th[b-t5dv5bzgda] {
    font-weight: 600;
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.7rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: var(--crm-bg, #f5f7fa);
}

.ga-matrix-table tbody th[b-t5dv5bzgda] {
    font-weight: 500;
    color: var(--crm-text-2, #4b5563);
    background: var(--crm-bg, #f5f7fa);
}

.ga-matrix-cell[b-t5dv5bzgda] {
    font-variant-numeric: tabular-nums;
    color: var(--crm-navy, #0f172a);
    font-weight: 500;
}

.ga-matrix-cell-empty[b-t5dv5bzgda] {
    color: var(--crm-text-3, #9ca3af);
    font-weight: 400;
}

/* ── Trend chart ───────────────────────────────────── */

.ga-trend-grid[b-t5dv5bzgda] {
    display: flex;
    gap: 1rem;
    align-items: flex-end;
    overflow-x: auto;
    padding-bottom: 0.25rem;
}

.ga-trend-bar[b-t5dv5bzgda] {
    min-width: 70px;
}

.ga-trend-col[b-t5dv5bzgda] {
    width: 100%;
    background: var(--crm-bg, #f5f7fa);
    border-radius: 6px 6px 0 0;
    display: flex;
    flex-direction: column-reverse;
    border: 1px solid var(--crm-border, #d8dee7);
    border-bottom: none;
    position: relative;
}

.ga-trend-segment[b-t5dv5bzgda] {
    width: 100%;
    transition: height 240ms cubic-bezier(0.16, 1, 0.3, 1);
}

.ga-trend-enacted[b-t5dv5bzgda] {
    background: #15803d;
}

.ga-trend-died[b-t5dv5bzgda] {
    background: #b91c1c;
}

.ga-trend-period[b-t5dv5bzgda] {
    font-size: 0.75rem;
    color: var(--crm-text-3, #9ca3af);
    margin-top: 6px;
    text-align: center;
}

.ga-trend-count[b-t5dv5bzgda] {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--crm-navy, #0f172a);
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.ga-trend-legend[b-t5dv5bzgda] {
    display: flex;
    gap: 1rem;
    font-size: 0.78rem;
    color: var(--crm-text-3, #9ca3af);
    margin-top: 12px;
}

.ga-trend-legend > span[b-t5dv5bzgda] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ga-legend-swatch[b-t5dv5bzgda] {
    display: inline-block;
    width: 0.9rem;
    height: 0.9rem;
    border-radius: 3px;
}

.ga-legend-active[b-t5dv5bzgda] {
    background: var(--crm-bg, #f5f7fa);
    border: 1px solid var(--crm-border, #d8dee7);
}
/* /Pages/GovernmentAffairs/BillDetail.razor.rz.scp.css */
/* Mostly superseded by the shared, global dossier system in wwwroot/css/ga-dossier.css.
   BillDetail uses the .ga-* language (masthead / progress track / workspace / panel / chip)
   shared by every GA detail page. What remains here is page layout the dossier does not own. */

/* The timeline sits between the progress track and the workspace. Full-bleed, because the
   Chronoscope brings its own two-column body and the ribbon's value is horizontal room.
   Note the Chronoscope's own styling is scoped to that component and does not reach here —
   which is exactly why this file must not try to reach into it either. */
.bd-chronicle[b-edaa5vdwv1] {
    margin: 0 0 1.25rem;
}

/* The companion's live status, beside its number in the masthead facts. Muted because the
   number is the thing being looked up; the status is what makes it worth looking at. */
.bd-companion-status[b-edaa5vdwv1] {
  margin-left: 0.35rem;
  color: var(--crm-text-muted, #6c757d);
  font-size: 0.86em;
}

/* ── Amendments tab ──
   A list rather than a table: the description is the content and wraps, and a table would
   either truncate it or force a horizontal scroll. */
.bd-amendments[b-edaa5vdwv1] { display: flex; flex-direction: column; gap: 0.85rem; }

.bd-amendment[b-edaa5vdwv1] {
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--crm-border, #dee2e6);
  border-radius: 6px;
  border-left: 3px solid transparent;
}

/* An adopted amendment changed the bill. It gets the accent; everything else stays quiet. */
.bd-amendment.is-adopted[b-edaa5vdwv1] { border-left-color: var(--crm-teal); }

.bd-amendment-head[b-edaa5vdwv1] { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
.bd-amendment-desc[b-edaa5vdwv1] { margin-top: 0.45rem; line-height: 1.45; }

.bd-amendment-meta[b-edaa5vdwv1],
.bd-amendment-version[b-edaa5vdwv1],
.bd-amendment-date[b-edaa5vdwv1] {
  color: var(--crm-text-muted, #6c757d);
  font-size: 0.85rem;
}

.bd-amendment-meta[b-edaa5vdwv1] { margin-top: 0.4rem; display: flex; gap: 0.35rem; flex-wrap: wrap; }
.bd-amendment-name[b-edaa5vdwv1] { font-family: var(--crm-mono, ui-monospace, SFMono-Regular, Menlo, monospace); }
.bd-amendment-date[b-edaa5vdwv1] { margin-left: auto; }
/* /Pages/GovernmentAffairs/BillList.razor.rz.scp.css */
/* Version-thread affordances on the consolidated bill list.
   The list shows one row per bill; a bill that has been substituted or engrossed can be
   opened in place to see its printings. Everything here uses --crm-* tokens so a
   rebranded tenant recolours for free — branding never touches --bs-*. */

.bl-vtoggle[b-zjhli1h9f4] {
    border: 0;
    background: transparent;
    padding: 0;
    width: 1.1rem;
    line-height: 1.2;
    color: var(--crm-navy, #1b3a5c);
    opacity: .55;
    cursor: pointer;
    transition: opacity .12s ease;
}

.bl-vtoggle:hover[b-zjhli1h9f4] {
    opacity: 1;
}

/* Keeps the bill number aligned whether or not the row has a chevron. */
.bl-vtoggle-spacer[b-zjhli1h9f4] {
    display: inline-block;
    width: 1.1rem;
    flex: 0 0 auto;
}

.bl-versions[b-zjhli1h9f4] {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .2rem;
}

.bl-vcount[b-zjhli1h9f4],
.bl-vnow[b-zjhli1h9f4] {
    font-size: .7rem;
    line-height: 1.35;
    padding: 0 .35rem;
    border-radius: .25rem;
    white-space: nowrap;
}

.bl-vcount[b-zjhli1h9f4] {
    color: var(--crm-navy, #1b3a5c);
    background: color-mix(in srgb, var(--crm-navy, #1b3a5c) 8%, transparent);
}

/* "now ESHB 1234" — a distinct fact from the bill's own number, so it reads as a
   separate chip rather than replacing the number in the first column. */
.bl-vnow[b-zjhli1h9f4] {
    color: var(--crm-teal, #0f7b8a);
    background: color-mix(in srgb, var(--crm-teal, #0f7b8a) 10%, transparent);
    font-variant-numeric: tabular-nums;
}

/* Cross-chamber companion. Deliberately styled apart from the version chips above: a
   substitute is the same bill, a companion is a different one, and the row must not let
   them read as the same kind of fact. */
.bl-companions[b-zjhli1h9f4] {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .2rem;
}

.bl-companion[b-zjhli1h9f4] {
    display: inline-flex;
    align-items: baseline;
    gap: .3rem;
    max-width: 100%;
    font-size: .72rem;
    line-height: 1.35;
    padding: .05rem .4rem;
    border-radius: .25rem;
    color: var(--crm-navy, #1b3a5c);
    background: color-mix(in srgb, var(--crm-gold, #b8860b) 12%, transparent);
}

.bl-companion > i[b-zjhli1h9f4] {
    opacity: .7;
    font-size: .68rem;
}

.bl-companion a[b-zjhli1h9f4],
.bl-companion-num[b-zjhli1h9f4] {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: inherit;
    text-decoration: none;
    white-space: nowrap;
}

.bl-companion a:hover[b-zjhli1h9f4] {
    text-decoration: underline;
}

.bl-companion-status[b-zjhli1h9f4] {
    color: var(--crm-muted, #6c757d);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    /* Flex children default to min-width:auto, which lets nowrap text push the chip
       past the cell instead of ellipsising inside it. */
    min-width: 0;
}

.bl-vrow > td[b-zjhli1h9f4] {
    background: color-mix(in srgb, var(--crm-navy, #1b3a5c) 3%, transparent);
    padding-top: .35rem;
    padding-bottom: .5rem;
}

.bl-vlist[b-zjhli1h9f4] {
    list-style: none;
    margin: 0;
    padding: 0 0 0 1.6rem;
    border-left: 2px solid color-mix(in srgb, var(--crm-navy, #1b3a5c) 15%, transparent);
    margin-left: .5rem;
}

.bl-vitem[b-zjhli1h9f4] {
    display: grid;
    grid-template-columns: 7.5rem 8.5rem 1fr auto;
    gap: .5rem;
    align-items: baseline;
    padding: .2rem .4rem;
    border-radius: .25rem;
    cursor: pointer;
    font-size: .8rem;
}

.bl-vitem:hover[b-zjhli1h9f4] {
    background: color-mix(in srgb, var(--crm-teal, #0f7b8a) 8%, transparent);
}

.bl-vnum[b-zjhli1h9f4] {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--crm-navy, #1b3a5c);
}

.bl-vdate[b-zjhli1h9f4],
.bl-vstatus[b-zjhli1h9f4] {
    color: var(--crm-muted, #6c757d);
}

.bl-vstatus[b-zjhli1h9f4] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    /* Flex/grid children default to min-width:auto, which lets nowrap text blow past
       the column instead of ellipsising. */
    min-width: 0;
}

.bl-vitem.is-current .bl-vnum[b-zjhli1h9f4] {
    color: var(--crm-teal, #0f7b8a);
}

.bl-vcurrent[b-zjhli1h9f4] {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--crm-teal, #0f7b8a);
}

@media (max-width: 720px) {
    .bl-vitem[b-zjhli1h9f4] {
        grid-template-columns: 1fr auto;
    }

    .bl-vdate[b-zjhli1h9f4],
    .bl-vstatus[b-zjhli1h9f4] {
        grid-column: 1 / -1;
    }
}
/* /Pages/GovernmentAffairs/LegislatorDetail.razor.rz.scp.css */
/* ── Header ─────────────────────────────────────────── */

.ld-header[b-te1uytknx2] {
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    box-shadow: var(--crm-shadow-xs);
}

.ld-header-left[b-te1uytknx2] {
    min-width: 0;
}

.ld-header[b-te1uytknx2]  h1 {
    margin: 0 0 0.4rem;
    font-size: 1.6rem;
}

.ld-meta[b-te1uytknx2] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.75rem;
    margin-top: 4px;
}

.ld-meta-item[b-te1uytknx2] {
    font-size: 0.85rem;
    color: var(--crm-text-2);
}

.ld-meta-muted[b-te1uytknx2] {
    color: var(--crm-text-3, #9ca3af);
}

.ld-chips[b-te1uytknx2] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
}

.ld-chip[b-te1uytknx2] {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 10px;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 999px;
    border: 1px solid transparent;
}

/* Chamber chip (House / Senate / Other) */
.ld-chip-chamber[b-te1uytknx2] {
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-text-2);
    border-color: var(--crm-border, #d8dee7);
}

/* Party chips — color-coded by affiliation. */
.ld-chip-party-dem[b-te1uytknx2] {
    background: rgba(13, 110, 253, 0.12);
    color: #084298;
    border-color: rgba(13, 110, 253, 0.25);
}

.ld-chip-party-rep[b-te1uytknx2] {
    background: rgba(220, 53, 69, 0.10);
    color: #b91c1c;
    border-color: rgba(220, 53, 69, 0.25);
}

.ld-chip-party-ind[b-te1uytknx2] {
    background: rgba(217, 119, 6, 0.10);
    color: #b45309;
    border-color: rgba(217, 119, 6, 0.25);
}

.ld-chip-party-other[b-te1uytknx2] {
    background: rgba(99, 102, 241, 0.10);
    color: #4338ca;
    border-color: rgba(99, 102, 241, 0.25);
}

.ld-chip-party-unknown[b-te1uytknx2] {
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-text-3, #9ca3af);
    border-color: var(--crm-border, #d8dee7);
}

/* Role chips (Committee membership row right edge) */
.ld-chip-role-chair[b-te1uytknx2] {
    background: rgba(0, 197, 168, 0.12);
    color: var(--crm-teal-700, #00735f);
    border-color: rgba(0, 197, 168, 0.32);
}

.ld-chip-role-vicechair[b-te1uytknx2] {
    background: rgba(99, 102, 241, 0.10);
    color: #4338ca;
    border-color: rgba(99, 102, 241, 0.25);
}

.ld-chip-role-ranking[b-te1uytknx2] {
    background: rgba(217, 119, 6, 0.10);
    color: #b45309;
    border-color: rgba(217, 119, 6, 0.25);
}

.ld-chip-role-member[b-te1uytknx2] {
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-text-2);
    border-color: var(--crm-border, #d8dee7);
}

/* ── Info-panel grid (Contact + Matched contact side by side) ── */

.ld-grid[b-te1uytknx2] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    align-items: start;
}

@media (max-width: 767.98px) {
    .ld-grid[b-te1uytknx2] {
        grid-template-columns: 1fr;
    }
}

.ld-info-panel[b-te1uytknx2] {
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: var(--crm-r, 10px);
    padding: 22px 26px;
    box-shadow: var(--crm-shadow-xs);
}

.ld-prop-section-title[b-te1uytknx2] {
    margin: 0 0 10px 0;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--crm-navy, #0f172a);
    display: flex;
    align-items: center;
    gap: 8px;
}

.ld-prop-section-title[b-te1uytknx2]::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
    flex-shrink: 0;
}

.ld-prop-section-head[b-te1uytknx2] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
}

.ld-prop-section-head .ld-prop-section-title[b-te1uytknx2] {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
    flex: 1 1 auto;
}

.ld-prop-empty[b-te1uytknx2] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.85rem;
}

.ld-prop-muted[b-te1uytknx2] {
    color: var(--crm-text-3, #9ca3af);
}

.ld-matched-contact[b-te1uytknx2] {
    margin-top: 4px;
}

.ld-matched-name[b-te1uytknx2] {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    text-decoration: none;
}

.ld-matched-name:hover[b-te1uytknx2] {
    color: var(--crm-teal-600, #009E88);
    text-decoration: underline;
}

.ld-matched-meta[b-te1uytknx2] {
    font-size: 0.78rem;
    color: var(--crm-text-3, #9ca3af);
    margin-top: 2px;
}

/* ── Animatable property rows ───────────────────────── */

.ld-anim-dl[b-te1uytknx2] {
    display: flex;
    flex-direction: column;
}

.ld-anim-row[b-te1uytknx2] {
    display: grid;
    grid-template-rows: 1fr;
    opacity: 1;
    transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1),
                opacity 160ms ease,
                margin 220ms ease;
}

.ld-anim-row-inner[b-te1uytknx2] {
    min-height: 0;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(120px, max-content) 1fr;
    align-items: baseline;
    column-gap: 24px;
    padding: 5px 0;
    font-size: 0.85rem;
}

.ld-anim-row-inner > dt[b-te1uytknx2] {
    margin: 0;
    font-weight: 500;
    color: var(--crm-text-3, #9ca3af);
    white-space: nowrap;
}

.ld-anim-row-inner > dd[b-te1uytknx2] {
    margin: 0;
    color: var(--crm-text-1, #1f2937);
    line-height: 1.45;
}

.ld-anim-row-inner > dd a[b-te1uytknx2] {
    color: var(--crm-teal-700, #00735f);
    text-decoration: none;
}

.ld-anim-row-inner > dd a:hover[b-te1uytknx2] {
    color: var(--crm-teal, #00C5A8);
    text-decoration: underline;
}

/* ── Committees panel ──────────────────────────────── */

.ld-tab-head[b-te1uytknx2] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 10px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    gap: 12px;
    flex-wrap: wrap;
}

.ld-tab-title[b-te1uytknx2] {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--crm-navy, #0f172a);
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.ld-tab-title[b-te1uytknx2]::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
    flex-shrink: 0;
}

.ld-tab-count[b-te1uytknx2] {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--crm-text-2, #4b5563);
    background: var(--crm-bg, #f5f7fa);
    padding: 2px 8px;
    border-radius: 999px;
    letter-spacing: 0;
}

.ld-empty[b-te1uytknx2] {
    text-align: center;
    padding: 36px 16px;
    color: var(--crm-text-3, #9ca3af);
}

.ld-empty i[b-te1uytknx2] {
    font-size: 1.75rem;
    display: block;
    margin-bottom: 8px;
    color: var(--crm-border-2, #c5d3e8);
}

.ld-empty p[b-te1uytknx2] {
    margin: 0;
    font-size: 0.85rem;
}

.ld-committee-list[b-te1uytknx2] {
    display: flex;
    flex-direction: column;
}

.ld-committee-row[b-te1uytknx2] {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 10px 4px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
}

.ld-committee-row:last-child[b-te1uytknx2] {
    border-bottom: none;
}

.ld-committee-name[b-te1uytknx2] {
    font-size: 0.9rem;
    color: var(--crm-navy, #0f172a);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Pages/GovernmentAffairs/RuleMakingDetail.razor.rz.scp.css */
/* The timeline sits between the progress track and the workspace. Full-bleed, because the
   Chronoscope brings its own two-column body and the ribbon's value is horizontal room. */
.rmd-chronicle[b-q8v2vbk28y] {
    margin: 0 0 1.25rem;
}
/* /Pages/GovernmentAffairs/RuleMakingList.razor.rz.scp.css */
/* Filing-thread affordances on the consolidated rulemaking list.
   One row per rule; a rule with more than one CR filing opens in place.
   Tokens are --crm-* so a rebranded tenant recolours for free. */

.rm-ftoggle[b-st7do8nqx1] {
    border: 0;
    background: transparent;
    padding: 0;
    width: 1.1rem;
    line-height: 1.2;
    color: var(--crm-navy, #1b3a5c);
    opacity: .55;
    cursor: pointer;
    transition: opacity .12s ease;
}

.rm-ftoggle:hover[b-st7do8nqx1] {
    opacity: 1;
}

.rm-ftoggle-spacer[b-st7do8nqx1] {
    display: inline-block;
    width: 1.1rem;
    flex: 0 0 auto;
}

.rm-filings[b-st7do8nqx1] {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .2rem;
}

.rm-fcount[b-st7do8nqx1],
.rm-fstage[b-st7do8nqx1] {
    font-size: .7rem;
    line-height: 1.35;
    padding: 0 .35rem;
    border-radius: .25rem;
    white-space: nowrap;
}

.rm-fcount[b-st7do8nqx1] {
    color: var(--crm-navy, #1b3a5c);
    background: color-mix(in srgb, var(--crm-navy, #1b3a5c) 8%, transparent);
}

.rm-fstage[b-st7do8nqx1] {
    color: var(--crm-teal, #0f7b8a);
    background: color-mix(in srgb, var(--crm-teal, #0f7b8a) 10%, transparent);
}

/* A filing date derived from the WSR issue number is not a date the agency published.
   Marked, quietly but always — an inferred date must never read as a stated one. */
.rm-approx[b-st7do8nqx1] {
    font-size: .65rem;
    letter-spacing: .03em;
    color: var(--crm-muted, #6c757d);
    border-bottom: 1px dotted currentColor;
    display: inline-block;
    cursor: help;
}

.rm-frow > td[b-st7do8nqx1] {
    background: color-mix(in srgb, var(--crm-navy, #1b3a5c) 3%, transparent);
    padding-top: .35rem;
    padding-bottom: .5rem;
}

.rm-flist[b-st7do8nqx1] {
    list-style: none;
    margin: 0 0 0 .5rem;
    padding: 0 0 0 1.6rem;
    border-left: 2px solid color-mix(in srgb, var(--crm-navy, #1b3a5c) 15%, transparent);
}

.rm-fitem[b-st7do8nqx1] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .5rem;
    padding: .2rem .4rem;
    border-radius: .25rem;
    cursor: pointer;
    font-size: .8rem;
}

.rm-fitem:hover[b-st7do8nqx1] {
    background: color-mix(in srgb, var(--crm-teal, #0f7b8a) 8%, transparent);
}

.rm-fnum[b-st7do8nqx1] {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--crm-navy, #1b3a5c);
    min-width: 6.5rem;
}

.rm-fdate[b-st7do8nqx1] {
    color: var(--crm-muted, #6c757d);
}

.rm-fitem.is-current .rm-fnum[b-st7do8nqx1] {
    color: var(--crm-teal, #0f7b8a);
}

.rm-fcurrent[b-st7do8nqx1] {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--crm-teal, #0f7b8a);
}
/* /Pages/Help/HelpArticleView.razor.rz.scp.css */
/* Help article reader.

   The page is a two-column read: prose held to a comfortable measure, and a rail
   carrying the table of contents. The rail sticks, because the articles are long
   enough that losing your place in the structure is the actual failure mode; below
   992px it collapses above the prose rather than being hidden, so a phone reader
   still gets the outline. Each article carries its own curated "Related" list in the
   body, which is why the rail does not duplicate one.

   ::deep is required throughout .ha-body — the article HTML is injected as a
   MarkupString, so its elements are not part of this component's scoped markup
   and unprefixed selectors would never match them.

   These rules previously lived in an inline <style> block, which leaked globally. */

.ha-layout[b-qzq01pgsue] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 15rem;
    gap: 2.5rem;
    align-items: start;
}

/* ── Header ────────────────────────────────────────────────────────────── */

.ha-header[b-qzq01pgsue] {
    padding-bottom: 1.25rem;
    margin-bottom: 1.75rem;
    border-bottom: 1px solid var(--crm-border, #DCE5F0);
}

.ha-title[b-qzq01pgsue] {
    margin: 0.35rem 0 0;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--crm-text, #0D2447);
}

.ha-summary[b-qzq01pgsue] {
    margin: 0.6rem 0 0;
    max-width: 68ch;
    font-size: 1.0625rem;
    line-height: 1.6;
    color: var(--crm-text-2, #4A5B78);
}

.ha-meta[b-qzq01pgsue] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.9rem;
    font-size: 0.8125rem;
    color: var(--crm-text-3, #8A9BB5);
}

.ha-meta-cat[b-qzq01pgsue] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--crm-text-2, #4A5B78);
    text-decoration: none;
}

.ha-meta-cat:hover[b-qzq01pgsue] { color: var(--crm-teal-600, #009E88); }

.ha-meta-sep[b-qzq01pgsue] { opacity: 0.6; }

.ha-meta-edit[b-qzq01pgsue] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-left: auto;
    color: var(--crm-text-2, #4A5B78);
    text-decoration: none;
}

.ha-meta-edit:hover[b-qzq01pgsue] { color: var(--crm-teal-600, #009E88); }

/* ── Article body ──────────────────────────────────────────────────────── */

/* The measure is applied to the text elements rather than to .ha-body itself, so
   screenshots can use the full column. Capping the container instead shrank a
   1440px capture to about 660px, which is too small to read a toolbar in. */
.ha-body[b-qzq01pgsue] {
    font-size: 0.9375rem;
    line-height: 1.7;
    color: var(--crm-text, #0D2447);
}

.ha-body[b-qzq01pgsue]  p,
.ha-body[b-qzq01pgsue]  ul,
.ha-body[b-qzq01pgsue]  ol,
.ha-body[b-qzq01pgsue]  blockquote,
.ha-body[b-qzq01pgsue]  .ha-note,
.ha-body[b-qzq01pgsue]  .ha-tip,
.ha-body[b-qzq01pgsue]  .ha-warn {
    max-width: 72ch;
}

.ha-body[b-qzq01pgsue]  h2 {
    margin: 2.25rem 0 0.75rem;
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--crm-text, #0D2447);
    scroll-margin-top: 1.5rem;
}

.ha-body[b-qzq01pgsue]  h2:first-child { margin-top: 0; }

.ha-body[b-qzq01pgsue]  h3 {
    margin: 1.6rem 0 0.5rem;
    font-size: 1.0625rem;
    font-weight: 600;
    color: var(--crm-text, #0D2447);
    scroll-margin-top: 1.5rem;
}

.ha-body[b-qzq01pgsue]  p { margin: 0 0 0.9rem; }

.ha-body[b-qzq01pgsue]  ul,
.ha-body[b-qzq01pgsue]  ol {
    margin: 0 0 1rem;
    padding-left: 1.35rem;
}

.ha-body[b-qzq01pgsue]  li { margin-bottom: 0.4rem; }

.ha-body[b-qzq01pgsue]  a {
    color: var(--crm-teal-600, #009E88);
    text-decoration-color: rgba(0, 158, 136, 0.35);
    text-underline-offset: 2px;
}

.ha-body[b-qzq01pgsue]  a:hover { text-decoration-color: currentColor; }

.ha-body[b-qzq01pgsue]  strong { font-weight: 600; }

.ha-body[b-qzq01pgsue]  code {
    padding: 0.1rem 0.35rem;
    font-size: 0.875em;
    color: var(--crm-navy-700, #16345C);
    background: var(--crm-surface-2, #E6EEF8);
    border-radius: var(--crm-r-sm, 6px);
}

.ha-body[b-qzq01pgsue]  blockquote {
    margin: 0 0 1rem;
    padding: 0.25rem 0 0.25rem 1rem;
    color: var(--crm-text-2, #4A5B78);
    border-left: 3px solid var(--crm-border-2, #C5D3E8);
}

/* Numbered procedures read better with a little more air between steps than a
   bare list gives — they are things to do in order, not items to scan. */
.ha-body[b-qzq01pgsue]  ol.ha-steps > li { margin-bottom: 0.65rem; }

/* ── Screenshots ───────────────────────────────────────────────────────── */

.ha-body[b-qzq01pgsue]  figure {
    margin: 1.5rem 0;
}

.ha-body[b-qzq01pgsue]  img {
    display: block;
    max-width: 100%;
    height: auto;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: var(--crm-r, 10px);
    box-shadow: var(--crm-shadow-sm, 0 2px 8px rgba(13, 36, 71, 0.07));
}

.ha-body[b-qzq01pgsue]  figcaption {
    margin-top: 0.5rem;
    font-size: 0.8125rem;
    color: var(--crm-text-3, #8A9BB5);
}

/* ── Callouts ──────────────────────────────────────────────────────────── */

/* One shape, three meanings, distinguished by the rail colour only: a note is
   context, a tip is optional, a warning costs you something if ignored. */
.ha-body[b-qzq01pgsue]  .ha-note,
.ha-body[b-qzq01pgsue]  .ha-tip,
.ha-body[b-qzq01pgsue]  .ha-warn {
    margin: 1.25rem 0;
    padding: 0.85rem 1rem;
    border: 1px solid var(--crm-border, #DCE5F0);
    border-left-width: 4px;
    border-radius: var(--crm-r, 10px);
    background: var(--crm-white, #fff);
}

.ha-body[b-qzq01pgsue]  .ha-note { border-left-color: var(--crm-navy-400, #6B7589); }
.ha-body[b-qzq01pgsue]  .ha-tip { border-left-color: var(--crm-teal, #00C5A8); }
.ha-body[b-qzq01pgsue]  .ha-warn { border-left-color: #D97706; }

.ha-body[b-qzq01pgsue]  .ha-note > p:last-child,
.ha-body[b-qzq01pgsue]  .ha-tip > p:last-child,
.ha-body[b-qzq01pgsue]  .ha-warn > p:last-child { margin-bottom: 0; }

/* ── Tags ──────────────────────────────────────────────────────────────── */

.ha-tags[b-qzq01pgsue] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-top: 2rem;
}

.ha-tag[b-qzq01pgsue] {
    padding: 0.1rem 0.55rem;
    font-size: 0.6875rem;
    color: var(--crm-text-3, #8A9BB5);
    background: var(--crm-surface-2, #E6EEF8);
    border-radius: 20px;
}

/* ── Previous / next ───────────────────────────────────────────────────── */

.ha-nextprev[b-qzq01pgsue] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--crm-border, #DCE5F0);
}

.ha-np[b-qzq01pgsue] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.75rem 0.9rem;
    text-decoration: none;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: var(--crm-r, 10px);
    transition: border-color 0.12s ease, box-shadow 0.12s ease;
}

.ha-np:hover[b-qzq01pgsue] {
    border-color: var(--crm-border-2, #C5D3E8);
    box-shadow: var(--crm-shadow-sm, 0 2px 8px rgba(13, 36, 71, 0.07));
}

.ha-np:focus-visible[b-qzq01pgsue] {
    outline: 2px solid var(--crm-teal, #00C5A8);
    outline-offset: 2px;
}

.ha-np--next[b-qzq01pgsue] { text-align: right; }

.ha-np-label[b-qzq01pgsue] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--crm-text-3, #8A9BB5);
}

.ha-np--next .ha-np-label[b-qzq01pgsue] { justify-content: flex-end; }

.ha-np-title[b-qzq01pgsue] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--crm-text, #0D2447);
}

/* ── Rail ──────────────────────────────────────────────────────────────── */

.ha-rail[b-qzq01pgsue] {
    position: sticky;
    top: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.75rem;
}

.ha-rail-heading[b-qzq01pgsue] {
    margin: 0 0 0.5rem;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--crm-text-3, #8A9BB5);
}

.ha-toc-list[b-qzq01pgsue] {
    margin: 0;
    padding: 0;
    list-style: none;
    border-left: 2px solid var(--crm-border, #DCE5F0);
}

.ha-toc-item a[b-qzq01pgsue] {
    display: block;
    padding: 0.2rem 0 0.2rem 0.75rem;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--crm-text-2, #4A5B78);
    text-decoration: none;
}

.ha-toc-item a:hover[b-qzq01pgsue] { color: var(--crm-teal-600, #009E88); }

.ha-toc-item--h3 a[b-qzq01pgsue] {
    padding-left: 1.5rem;
    font-size: 0.78125rem;
    color: var(--crm-text-3, #8A9BB5);
}

/* ── States ────────────────────────────────────────────────────────────── */

.ha-loading[b-qzq01pgsue] {
    display: flex;
    justify-content: center;
    padding: 3rem 0;
}

.ha-missing[b-qzq01pgsue] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 4rem 1rem;
    text-align: center;
}

.ha-missing .bi[b-qzq01pgsue] {
    font-size: 2.25rem;
    color: #D97706;
    opacity: 0.75;
}

.ha-missing-title[b-qzq01pgsue] {
    margin: 0.5rem 0 0;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--crm-text, #0D2447);
}

.ha-missing-hint[b-qzq01pgsue] {
    margin: 0 0 1rem;
    max-width: 46ch;
    font-size: 0.875rem;
    color: var(--crm-text-2, #4A5B78);
}

/* ── Narrow ────────────────────────────────────────────────────────────── */

@media (max-width: 991.98px) {
    .ha-layout[b-qzq01pgsue] {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.5rem;
    }

    /* Outline first, then the prose — sticky is meaningless in a single column. */
    .ha-rail[b-qzq01pgsue] {
        position: static;
        order: -1;
        gap: 1rem;
    }

    .ha-main[b-qzq01pgsue] { order: 1; }
}

@media (max-width: 575.98px) {
    .ha-title[b-qzq01pgsue] { font-size: 1.5rem; }
    .ha-nextprev[b-qzq01pgsue] { grid-template-columns: 1fr; }
    .ha-np--next[b-qzq01pgsue] { text-align: left; }
    .ha-np--next .ha-np-label[b-qzq01pgsue] { justify-content: flex-start; }
}

/* ── Walk me through it ─────────────────────────────────────────────── */
.ha-tours[b-qzq01pgsue] {
    margin: 0 0 1.5rem;
    padding: 12px 14px;
    border: 1px solid var(--crm-border);
    border-left: 3px solid var(--crm-teal);
    border-radius: var(--crm-r);
    background: var(--crm-teal-50);
}

.ha-tours-heading[b-qzq01pgsue] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    font-weight: 700;
    color: var(--crm-navy);
}

.ha-tours-hint[b-qzq01pgsue] {
    margin: 2px 0 10px;
    font-size: 0.85rem;
    color: var(--crm-text-2);
}

.ha-tours-list[b-qzq01pgsue] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ha-tour-btn[b-qzq01pgsue] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: 1px solid var(--crm-border-2);
    border-radius: 999px;
    background: var(--crm-white);
    color: var(--crm-navy);
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
    transition: border-color var(--crm-fast) var(--crm-ease), box-shadow var(--crm-fast) var(--crm-ease);
}

.ha-tour-btn:hover[b-qzq01pgsue],
.ha-tour-btn:focus-visible[b-qzq01pgsue] {
    border-color: var(--crm-teal);
    box-shadow: var(--crm-shadow-sm);
}

.ha-tour-btn .bi[b-qzq01pgsue] {
    color: var(--crm-teal-600);
}

.ha-tour-steps[b-qzq01pgsue] {
    font-weight: 400;
    font-size: 0.8rem;
    color: var(--crm-text-3);
}
/* /Pages/Help/HelpIndex.razor.rz.scp.css */
/* Help Center index.

   Two decisions shape this page. First, search leads: people arrive here with a
   question in their head, not a browsing intent, so the field is the largest
   thing on the page rather than an input-group tucked beside the title. Second,
   the categories are destinations rather than a filter sidebar — pressable tiles
   carrying their own count, the same interaction the Data Health queues use, so
   the pattern is already familiar by the time anyone reaches help.

   These rules previously lived in an inline <style> block, which made them global:
   `.card-hover` leaked onto every page in the app once help had been visited. */

/* ── Header ────────────────────────────────────────────────────────────── */

.hc-head[b-t1vgm6k5oo] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.hc-title[b-t1vgm6k5oo] {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--crm-text, #0D2447);
    margin: 0 0 0.15rem 0;
}

.hc-sub[b-t1vgm6k5oo] {
    margin: 0;
    max-width: 62ch;
    font-size: 0.875rem;
    color: var(--crm-text-2, #4A5B78);
}

/* ── Search ────────────────────────────────────────────────────────────── */

.hc-search[b-t1vgm6k5oo] {
    position: relative;
    display: flex;
    align-items: center;
    margin-bottom: 1.5rem;
}

.hc-search-icon[b-t1vgm6k5oo] {
    position: absolute;
    left: 1rem;
    font-size: 1rem;
    color: var(--crm-text-3, #8A9BB5);
    pointer-events: none;
}

.hc-search-input[b-t1vgm6k5oo] {
    width: 100%;
    padding: 0.75rem 2.75rem;
    font-size: 1rem;
    color: var(--crm-text, #0D2447);
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: var(--crm-r-lg, 16px);
    box-shadow: var(--crm-shadow-xs, 0 1px 3px rgba(13, 36, 71, 0.05));
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.hc-search-input[b-t1vgm6k5oo]::placeholder { color: var(--crm-text-3, #8A9BB5); }

.hc-search-input:focus[b-t1vgm6k5oo] {
    outline: none;
    border-color: var(--crm-teal, #00C5A8);
    box-shadow: 0 0 0 3px var(--crm-teal-glow, rgba(0, 197, 168, 0.18));
}

/* The browser's own search affordance duplicates the button below. */
.hc-search-input[b-t1vgm6k5oo]::-webkit-search-cancel-button { display: none; }

.hc-search-clear[b-t1vgm6k5oo] {
    position: absolute;
    right: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    font-size: 0.75rem;
    color: var(--crm-text-3, #8A9BB5);
    background: transparent;
    border: 0;
    border-radius: 50%;
}

.hc-search-clear:hover[b-t1vgm6k5oo] {
    color: var(--crm-text, #0D2447);
    background: var(--crm-surface-2, #E6EEF8);
}

.hc-search-clear:focus-visible[b-t1vgm6k5oo] {
    outline: 2px solid var(--crm-teal, #00C5A8);
    outline-offset: 2px;
}

/* ── Category tiles ────────────────────────────────────────────────────── */

.hc-tiles[b-t1vgm6k5oo] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    gap: 0.5rem;
    margin-bottom: 2rem;
}

.hc-tile[b-t1vgm6k5oo] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.7rem 0.85rem;
    text-align: left;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: var(--crm-r, 10px);
    box-shadow: var(--crm-shadow-xs, 0 1px 3px rgba(13, 36, 71, 0.05));
    transition: border-color 0.12s ease, box-shadow 0.12s ease;
}

.hc-tile:hover[b-t1vgm6k5oo] {
    border-color: var(--crm-border-2, #C5D3E8);
    box-shadow: var(--crm-shadow-sm, 0 2px 8px rgba(13, 36, 71, 0.07));
}

.hc-tile:focus-visible[b-t1vgm6k5oo] {
    outline: 2px solid var(--crm-teal, #00C5A8);
    outline-offset: 2px;
}

.hc-tile--on[b-t1vgm6k5oo] {
    border-color: var(--crm-navy, #0D2447);
    box-shadow: inset 0 0 0 1px var(--crm-navy, #0D2447);
}

.hc-tile-icon[b-t1vgm6k5oo] {
    flex: 0 0 auto;
    font-size: 1rem;
    color: var(--crm-teal-600, #009E88);
}

/* Wraps rather than truncating: category names are admin-editable, and an
   ellipsis on a filter label hides the very word you are looking for. */
.hc-tile-name[b-t1vgm6k5oo] {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--crm-text, #0D2447);
    overflow-wrap: anywhere;
}

.hc-tile-count[b-t1vgm6k5oo] {
    flex: 0 0 auto;
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
    color: var(--crm-text-3, #8A9BB5);
}

.hc-tile--on .hc-tile-count[b-t1vgm6k5oo] { color: var(--crm-text-2, #4A5B78); }

/* ── Article list ──────────────────────────────────────────────────────── */

.hc-list[b-t1vgm6k5oo] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.hc-group[b-t1vgm6k5oo] {
    margin: 1.25rem 0 0.25rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--crm-text-3, #8A9BB5);
}

.hc-group:first-child[b-t1vgm6k5oo] { margin-top: 0; }

.hc-card[b-t1vgm6k5oo] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.9rem 1.1rem;
    text-decoration: none;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: var(--crm-r, 10px);
    box-shadow: var(--crm-shadow-xs, 0 1px 3px rgba(13, 36, 71, 0.05));
    transition: border-color 0.12s ease, box-shadow 0.12s ease, transform 0.12s ease;
}

.hc-card:hover[b-t1vgm6k5oo] {
    border-color: var(--crm-border-2, #C5D3E8);
    box-shadow: var(--crm-shadow-sm, 0 2px 8px rgba(13, 36, 71, 0.07));
    transform: translateY(-1px);
}

.hc-card:focus-visible[b-t1vgm6k5oo] {
    outline: 2px solid var(--crm-teal, #00C5A8);
    outline-offset: 2px;
}

.hc-card-main[b-t1vgm6k5oo] {
    flex: 1 1 auto;
    min-width: 0;
}

.hc-card-title[b-t1vgm6k5oo] {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--crm-text, #0D2447);
}

.hc-card-summary[b-t1vgm6k5oo] {
    margin: 0.2rem 0 0;
    max-width: 78ch;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--crm-text-2, #4A5B78);
}

.hc-card-tags[b-t1vgm6k5oo] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-top: 0.5rem;
}

.hc-tag[b-t1vgm6k5oo] {
    padding: 0.1rem 0.5rem;
    font-size: 0.6875rem;
    color: var(--crm-text-3, #8A9BB5);
    background: var(--crm-surface-2, #E6EEF8);
    border-radius: 20px;
}

.hc-card-chevron[b-t1vgm6k5oo] {
    flex: 0 0 auto;
    font-size: 0.875rem;
    color: var(--crm-text-3, #8A9BB5);
}

.hc-card:hover .hc-card-chevron[b-t1vgm6k5oo] { color: var(--crm-teal-600, #009E88); }

/* ── States ────────────────────────────────────────────────────────────── */

.hc-loading[b-t1vgm6k5oo] {
    display: flex;
    justify-content: center;
    padding: 3rem 0;
}

.hc-empty[b-t1vgm6k5oo] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding: 3rem 1rem;
    text-align: center;
    color: var(--crm-text-3, #8A9BB5);
}

.hc-empty .bi[b-t1vgm6k5oo] {
    font-size: 2rem;
    opacity: 0.45;
}

.hc-empty-title[b-t1vgm6k5oo] {
    margin: 0.35rem 0 0;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--crm-text-2, #4A5B78);
}

.hc-empty-hint[b-t1vgm6k5oo] {
    margin: 0;
    max-width: 46ch;
    font-size: 0.8125rem;
}

/* ── Pager ─────────────────────────────────────────────────────────────── */

.hc-pager[b-t1vgm6k5oo] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.5rem;
}

.hc-pager-status[b-t1vgm6k5oo] {
    font-size: 0.8125rem;
    color: var(--crm-text-3, #8A9BB5);
}

@media (max-width: 575.98px) {
    .hc-head[b-t1vgm6k5oo] { flex-direction: column; }
    .hc-tiles[b-t1vgm6k5oo] { grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); }
}
/* /Pages/Home.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════
   DASHBOARD SKELETONS
   ═══════════════════════════════════════════════════════════════════ */

.dash-skel-metric[b-h6x05ax07t] {
    height: 100px;
    border-radius: var(--crm-r);
    animation: crm-slide-up var(--crm-slow) var(--crm-ease) both;
}

.dash-skel-list[b-h6x05ax07t] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    animation: crm-slide-up var(--crm-slow) var(--crm-ease) both;
}

.dash-skel-list-header[b-h6x05ax07t] {
    height: 16px;
    width: 40%;
    border-radius: 4px;
    margin-bottom: 0.25rem;
}

.dash-skel-list-row[b-h6x05ax07t] {
    height: 12px;
    border-radius: 3px;
}
/* /Pages/Import/NarrativeImport.razor.rz.scp.css */
/* Narrative Import page — single stacked column. Pre-extract is a centered
   compose card so attention is on the paste; post-extract collapses the
   paste into a compact summary header and gives the review full width. */

.ni-page[b-4oixr3lnr2] {
    padding: 20px 24px 32px 24px;
    max-width: 1200px;
    margin: 0 auto;
}

.ni-page-header[b-4oixr3lnr2] {
    margin-bottom: 18px;
}

.ni-page-title[b-4oixr3lnr2] {
    margin: 0 0 6px 0;
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
}

.ni-page-subtitle[b-4oixr3lnr2] {
    margin: 0;
    color: var(--crm-text-2, #4b5563);
    font-size: 0.95rem;
}

/* ── Pre-extract compose card ────────────────────────── */

.ni-compose-shell[b-4oixr3lnr2] {
    display: flex;
    justify-content: center;
}

.ni-compose-card[b-4oixr3lnr2] {
    width: 100%;
    max-width: 760px;
    border-color: var(--crm-border, #e6eaf0);
}

.ni-textarea[b-4oixr3lnr2] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.9rem;
    line-height: 1.5;
    resize: vertical;
}

/* ── Post-extract pasted-text header ─────────────────── */

.ni-pasted-card[b-4oixr3lnr2] {
    margin-bottom: 18px;
    padding: 12px 16px;
    border-radius: 10px;
    border: 1px solid var(--crm-border, #e6eaf0);
    background: var(--crm-bg, #f5f7fa);
}

.ni-pasted-head[b-4oixr3lnr2] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.ni-pasted-eyebrow[b-4oixr3lnr2] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--crm-text-2, #4b5563);
    font-size: 0.85rem;
}

.ni-pasted-eyebrow .bi[b-4oixr3lnr2] {
    color: var(--crm-teal-600, #009E88);
}

.ni-pasted-actions[b-4oixr3lnr2] {
    display: flex;
    gap: 6px;
    align-items: center;
}

.ni-pasted-actions .btn-link[b-4oixr3lnr2] {
    text-decoration: none;
    color: var(--crm-text-2, #4b5563);
}

.ni-pasted-actions .btn-link:hover[b-4oixr3lnr2] {
    color: var(--crm-navy, #0f172a);
}

.ni-pasted-body[b-4oixr3lnr2] {
    margin: 10px 0 0 0;
    padding: 10px 12px;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #e6eaf0);
    border-radius: 8px;
    max-height: 220px;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.85rem;
    color: var(--crm-text-2, #374151);
}
/* /Pages/Invoicing/ArAging.razor.rz.scp.css */
/* Aging is a money report first: figures are tabular, right aligned, and only the
   90+ column and a credit balance get colour. Everything else stays neutral so a
   column of numbers reads as a column and the eye lands on what is actually late. */

.ar-buckets[b-2f720cr2p7] {
    display: grid;
    grid-template-columns: 1.4fr repeat(5, 1fr);
    gap: 1px;
    background: var(--crm-border);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    overflow: hidden;
}

@media (max-width: 900px) {
    .ar-buckets[b-2f720cr2p7] { grid-template-columns: 1fr 1fr; }
}

.ar-bucket[b-2f720cr2p7] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.85rem 1rem;
    background: var(--crm-white);
    border: 0;
    text-align: left;
    transition: background var(--crm-fast) var(--crm-ease);
}

.ar-bucket:hover[b-2f720cr2p7] { background: var(--crm-surface-2); }
.ar-bucket:active[b-2f720cr2p7] { transform: translateY(1px); }

.ar-bucket--total[b-2f720cr2p7] {
    background: var(--crm-surface-2);
    cursor: default;
}

.ar-bucket--total:hover[b-2f720cr2p7] { background: var(--crm-surface-2); }
.ar-bucket--total:active[b-2f720cr2p7] { transform: none; }

.ar-bucket__label[b-2f720cr2p7] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--crm-text-3);
}

.ar-bucket__value[b-2f720cr2p7] {
    font-family: var(--bs-font-monospace, ui-monospace, monospace);
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--crm-navy);
    font-variant-numeric: tabular-nums;
}

.ar-bucket__sub[b-2f720cr2p7] {
    font-size: 0.72rem;
    color: var(--crm-text-3);
}

.ar-bucket--hot .ar-bucket__value[b-2f720cr2p7] { color: var(--crm-danger, #b42318); }

.ar-search[b-2f720cr2p7] { max-width: 280px; }

.ar-table-wrap[b-2f720cr2p7] {
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    overflow-x: auto;
    background: var(--crm-white);
}

.ar-table[b-2f720cr2p7] { font-size: 0.85rem; }

.ar-table thead th[b-2f720cr2p7] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--crm-text-3);
    border-bottom: 1px solid var(--crm-border);
    white-space: nowrap;
}

.ar-table td[b-2f720cr2p7] { vertical-align: middle; }

.ar-num[b-2f720cr2p7] {
    text-align: right;
    font-family: var(--bs-font-monospace, ui-monospace, monospace);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ar-num--total[b-2f720cr2p7] { font-weight: 600; color: var(--crm-navy); }
.ar-num--hot[b-2f720cr2p7] { color: var(--crm-danger, #b42318); font-weight: 600; }
.ar-num--credit[b-2f720cr2p7] { color: var(--crm-teal-600); }

/* The body rows are rendered by ArAgingRowView, which carries its own scope id —
   their styling lives in that component's stylesheet, not here. */

.ar-empty[b-2f720cr2p7],
.ar-waiting[b-2f720cr2p7] {
    background: var(--crm-white);
}

.ar-empty[b-2f720cr2p7] {
    border: 1px dashed var(--crm-border);
    border-radius: var(--crm-r);
    padding: 3rem 1.5rem;
    text-align: center;
}

.ar-empty i[b-2f720cr2p7] {
    font-size: 2rem;
    color: var(--crm-teal-600);
    display: block;
    margin-bottom: 0.75rem;
}

.ar-empty h5[b-2f720cr2p7] { font-weight: 600; color: var(--crm-navy); }
.ar-empty p[b-2f720cr2p7] { font-size: 0.85rem; color: var(--crm-text-2); margin: 0; }

.ar-waiting > div[b-2f720cr2p7] {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 1rem;
    align-items: baseline;
    padding: 0.4rem 0;
    border-bottom: 1px solid var(--crm-border);
    font-size: 0.85rem;
}

.ar-waiting > div:last-child[b-2f720cr2p7] { border-bottom: 0; }
.ar-waiting b[b-2f720cr2p7] { font-variant-numeric: tabular-nums; }

.ar-waiting i[b-2f720cr2p7] {
    font-style: normal;
    font-family: var(--bs-font-monospace, ui-monospace, monospace);
    color: var(--crm-text-2);
    min-width: 6rem;
    text-align: right;
}

/* Skeleton rows match the table's row height so the layout does not jump when the
   real data lands. */
.ar-skeleton[b-2f720cr2p7] {
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    overflow: hidden;
}

.ar-skeleton__row[b-2f720cr2p7] {
    height: 52px;
    border-bottom: 1px solid var(--crm-border);
    background: linear-gradient(90deg,
        var(--crm-surface-2) 25%,
        var(--crm-surface) 37%,
        var(--crm-surface-2) 63%);
    background-size: 400% 100%;
    animation: ar-shimmer-b-2f720cr2p7 1.4s ease infinite;
}

.ar-skeleton__row:last-child[b-2f720cr2p7] { border-bottom: 0; }

@keyframes ar-shimmer-b-2f720cr2p7 {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}
/* /Pages/Invoicing/DuesCycleDetail.razor.rz.scp.css */
/* One dues run. The page is a worklist: the summary strip says whether the run can go
   out, the panels are the three irreversible-ish actions (build, price, issue), and the
   table underneath is the roster being argued over. Scoped CSS is per component, so the
   card/table system is restated here rather than borrowed from the list page. */

.dues-back[b-vvt1cfwnhw] {
    font-size: 0.8rem;
    color: var(--crm-text-3);
    text-decoration: none;
}

.dues-back:hover[b-vvt1cfwnhw] { color: var(--crm-navy); }

/* ── Summary strip ─────────────────────────────────────────────────────── */

.dues-strip[b-vvt1cfwnhw] {
    display: flex;
    flex-wrap: wrap;
    gap: 1px;
    background: var(--crm-border);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-lg);
    overflow: hidden;
}

.dues-stat[b-vvt1cfwnhw] {
    flex: 1 1 130px;
    background: var(--crm-white);
    padding: 0.7rem 0.9rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.dues-stat-k[b-vvt1cfwnhw] {
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-3);
}

.dues-stat-v[b-vvt1cfwnhw] {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--crm-navy);
    font-variant-numeric: tabular-nums;
}

/* Unpriced is what stops a run going out, so it is the one tile that changes colour. */
.dues-stat--warn[b-vvt1cfwnhw] { background: rgba(255, 193, 7, 0.07); }
.dues-stat--warn .dues-stat-v[b-vvt1cfwnhw] { color: #8A6100; }

/* ── Panels ────────────────────────────────────────────────────────────── */

.dues-panel[b-vvt1cfwnhw] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-lg);
    box-shadow: var(--crm-shadow-sm);
    padding: 1rem 1.1rem;
}

/* The issue panel bills the whole membership. It reads differently on purpose. */
.dues-panel--accent[b-vvt1cfwnhw] {
    border-color: rgba(var(--crm-navy-rgb), 0.35);
    box-shadow: var(--crm-shadow-sm), inset 3px 0 0 var(--crm-navy);
}

.dues-panel h6[b-vvt1cfwnhw] {
    font-family: 'Outfit', sans-serif;
    color: var(--crm-navy);
    margin-bottom: 0.35rem;
}

.dues-preview[b-vvt1cfwnhw] {
    background: var(--crm-bg);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: 0.7rem 0.85rem;
}

.dues-preview-counts[b-vvt1cfwnhw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1.1rem;
    font-size: 0.8rem;
    color: var(--crm-text-2);
}

.dues-preview-counts strong[b-vvt1cfwnhw] {
    font-variant-numeric: tabular-nums;
    color: var(--crm-navy);
}

.dues-problems[b-vvt1cfwnhw] {
    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.78rem;
    color: var(--crm-text-2);
}

.dues-scroll[b-vvt1cfwnhw] {
    max-height: 340px;
    overflow: auto;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
}

.dues-confirm[b-vvt1cfwnhw] {
    max-width: 200px;
    letter-spacing: 0.08em;
    font-weight: 600;
}

/* ── Class chips ───────────────────────────────────────────────────────── */

.dues-classes[b-vvt1cfwnhw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.dues-chip[b-vvt1cfwnhw] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--crm-text-2);
    background: var(--crm-white);
    border: 1px solid var(--crm-border-2);
    border-radius: 999px;
    padding: 0.25rem 0.7rem;
    cursor: pointer;
    transition: border-color var(--crm-fast) var(--crm-ease),
                color var(--crm-fast) var(--crm-ease),
                background var(--crm-fast) var(--crm-ease);
}

.dues-chip:hover[b-vvt1cfwnhw] { border-color: var(--crm-navy); }

.dues-chip--on[b-vvt1cfwnhw] {
    color: var(--crm-navy);
    border-color: var(--crm-navy);
    background: rgba(var(--crm-navy-rgb), 0.05);
}

.dues-chip input[b-vvt1cfwnhw] { accent-color: var(--crm-navy); }

/* ── Tabs ──────────────────────────────────────────────────────────────── */

.dues-tabs[b-vvt1cfwnhw] {
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    background: var(--crm-surface-2);
    border-radius: var(--crm-r);
}

.dues-tab[b-vvt1cfwnhw] {
    border: 0;
    background: transparent;
    color: var(--crm-text-2);
    font-size: 0.8rem;
    font-weight: 600;
    padding: 0.3rem 0.8rem;
    border-radius: var(--crm-r-sm);
    transition: background var(--crm-fast) var(--crm-ease),
                color var(--crm-fast) var(--crm-ease);
}

.dues-tab:hover[b-vvt1cfwnhw] { color: var(--crm-text); }

.dues-tab--on[b-vvt1cfwnhw] {
    background: var(--crm-white);
    color: var(--crm-navy);
    box-shadow: var(--crm-shadow-xs);
}

/* ── Table ─────────────────────────────────────────────────────────────── */

.dues-card[b-vvt1cfwnhw] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-lg);
    box-shadow: var(--crm-shadow-sm);
    overflow: hidden;
}

.dues-table[b-vvt1cfwnhw] {
    width: 100%;
    min-width: 900px;
    border-collapse: collapse;
    font-size: 0.85rem;
}

@media (max-width: 940px) {
    .dues-card[b-vvt1cfwnhw] { overflow-x: auto; }
}

.dues-table thead th[b-vvt1cfwnhw] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-3);
    text-align: left;
    padding: 0.7rem 0.85rem;
    border-bottom: 1px solid var(--crm-border);
    background: var(--crm-bg);
    white-space: nowrap;
}

.dues-table tbody td[b-vvt1cfwnhw] {
    padding: 0.6rem 0.85rem;
    border-bottom: 1px solid var(--crm-border);
    vertical-align: middle;
}

.dues-table tbody tr:last-child td[b-vvt1cfwnhw] { border-bottom: 0; }

.dues-table--tight[b-vvt1cfwnhw] { min-width: 0; font-size: 0.8rem; }
.dues-table--tight tbody td[b-vvt1cfwnhw] { padding: 0.4rem 0.6rem; }

.dues-row--muted[b-vvt1cfwnhw] { color: var(--crm-text-3); }
.dues-row--muted .dues-name[b-vvt1cfwnhw] { color: var(--crm-text-3); font-weight: 500; }

.dues-cell-main[b-vvt1cfwnhw] { min-width: 220px; }

.dues-name[b-vvt1cfwnhw] { font-weight: 600; color: var(--crm-navy); }

.dues-sub[b-vvt1cfwnhw] {
    font-size: 0.72rem;
    color: var(--crm-text-3);
    margin-top: 0.1rem;
    max-width: 380px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dues-num[b-vvt1cfwnhw] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.dues-table tbody td.dues-num[b-vvt1cfwnhw] { font-weight: 600; color: var(--crm-text-2); }

/* "Not priced" is a state, not a zero, and has to read as one. */
.dues-unpriced[b-vvt1cfwnhw] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #8A6100;
    background: rgba(255, 193, 7, 0.1);
    border-radius: var(--crm-r-sm);
    padding: 0.1rem 0.4rem;
}

.dues-amount-input[b-vvt1cfwnhw] {
    max-width: 130px;
    margin-left: auto;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.dues-reason-row[b-vvt1cfwnhw] {
    background: var(--crm-bg);
    border-bottom: 1px solid var(--crm-border);
}

/* ── Instalments ───────────────────────────────────────────────────────── */

.dues-installments[b-vvt1cfwnhw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.dues-inst[b-vvt1cfwnhw] {
    font-size: 0.72rem;
    font-variant-numeric: tabular-nums;
    color: var(--crm-text-2);
    border: 1px dashed var(--crm-border-2);
    border-radius: var(--crm-r-sm);
    padding: 0.1rem 0.4rem;
}

/* Solid border once billed: the dashed ones are still just a plan. */
.dues-inst--issued[b-vvt1cfwnhw] {
    border-style: solid;
    border-color: rgba(var(--crm-teal-rgb), 0.4);
    background: var(--crm-teal-50);
}

.dues-inst a[b-vvt1cfwnhw] { color: var(--crm-teal-600); text-decoration: none; font-weight: 600; }
.dues-inst a:hover[b-vvt1cfwnhw] { text-decoration: underline; }

/* ── Status pill ───────────────────────────────────────────────────────── */

.dues-status[b-vvt1cfwnhw] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.15rem 0.5rem 0.15rem 0.4rem;
    border-radius: 999px;
    border: 1px solid var(--crm-border-2);
    color: var(--crm-text-2);
    background: var(--crm-white);
    vertical-align: middle;
    margin-left: 0.4rem;
}

.dues-dot[b-vvt1cfwnhw] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    flex: 0 0 auto;
}

.dues-status--draft[b-vvt1cfwnhw] { color: var(--crm-text-3); border-color: var(--crm-border); }
.dues-status--open[b-vvt1cfwnhw] { color: var(--crm-navy-600); border-color: rgba(var(--crm-navy-rgb), 0.25); }
.dues-status--closed[b-vvt1cfwnhw] { color: var(--crm-teal-600); border-color: rgba(var(--crm-teal-rgb), 0.35); background: var(--crm-teal-50); }

/* ── Loading skeleton ──────────────────────────────────────────────────── */

.dues-skel-row[b-vvt1cfwnhw] {
    height: 52px;
    border-bottom: 1px solid var(--crm-border);
    background: linear-gradient(
        90deg,
        var(--crm-white) 0%,
        var(--crm-bg) 40%,
        var(--crm-white) 80%);
    background-size: 300% 100%;
    animation: dues-shimmer-b-vvt1cfwnhw 1.4s var(--crm-ease) infinite;
    animation-delay: calc(var(--i, 0) * 90ms);
}

.dues-skel-row:last-child[b-vvt1cfwnhw] { border-bottom: 0; }

@keyframes dues-shimmer-b-vvt1cfwnhw {
    from { background-position: 100% 0; }
    to { background-position: -100% 0; }
}

@media (prefers-reduced-motion: reduce) {
    .dues-skel-row[b-vvt1cfwnhw] { animation: none; background: var(--crm-bg); }
    .dues-tab[b-vvt1cfwnhw], .dues-chip[b-vvt1cfwnhw] { transition: none; }
}
/* /Pages/Invoicing/DuesCycleList.razor.rz.scp.css */
/* Dues runs — the same card/table system as the receivables list, because they are
   read together. The two columns that decide whether a run can go out (unpriced, and
   how much is still to issue) are the only ones that take colour. */

.dues-card[b-cmzyygva6d] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-lg);
    box-shadow: var(--crm-shadow-sm);
    overflow: hidden;
}

.dues-table[b-cmzyygva6d] {
    width: 100%;
    min-width: 820px;
    border-collapse: collapse;
    font-size: 0.85rem;
}

@media (max-width: 860px) {
    .dues-card[b-cmzyygva6d] { overflow-x: auto; }
}

.dues-table thead th[b-cmzyygva6d] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-3);
    text-align: left;
    padding: 0.7rem 0.85rem;
    border-bottom: 1px solid var(--crm-border);
    background: var(--crm-bg);
    white-space: nowrap;
}

.dues-table tbody td[b-cmzyygva6d] {
    padding: 0.65rem 0.85rem;
    border-bottom: 1px solid var(--crm-border);
    vertical-align: middle;
}

.dues-table tbody tr:last-child td[b-cmzyygva6d] { border-bottom: 0; }

.dues-table tbody tr[b-cmzyygva6d] {
    cursor: pointer;
    transition: background var(--crm-fast) var(--crm-ease);
}

.dues-table tbody tr:hover[b-cmzyygva6d] { background: var(--crm-bg); }

.dues-table tbody tr:focus-visible[b-cmzyygva6d] {
    outline: 2px solid var(--crm-teal);
    outline-offset: -2px;
}

.dues-cell-main[b-cmzyygva6d] { min-width: 220px; }

.dues-name[b-cmzyygva6d] {
    font-weight: 600;
    color: var(--crm-navy);
}

.dues-sub[b-cmzyygva6d] {
    font-size: 0.72rem;
    color: var(--crm-text-3);
    margin-top: 0.1rem;
}

.dues-entity[b-cmzyygva6d] {
    margin-left: 0.45rem;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--crm-text-3);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

/* ── Money and counts ──────────────────────────────────────────────────── */

.dues-num[b-cmzyygva6d] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.dues-table tbody td.dues-num[b-cmzyygva6d] {
    font-weight: 600;
    color: var(--crm-text-2);
}

/* Unpriced is the only blocker on issuing, so it is the only count that shouts. */
.dues-table tbody td.dues-num--warn[b-cmzyygva6d] { color: #8A6100; }
.dues-table tbody td.dues-num--clear[b-cmzyygva6d] { color: var(--crm-text-3); font-weight: 500; }

/* ── Status ────────────────────────────────────────────────────────────── */

.dues-status[b-cmzyygva6d] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.15rem 0.5rem 0.15rem 0.4rem;
    border-radius: 999px;
    border: 1px solid var(--crm-border-2);
    color: var(--crm-text-2);
    background: var(--crm-white);
    white-space: nowrap;
}

.dues-dot[b-cmzyygva6d] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    flex: 0 0 auto;
}

.dues-status--draft[b-cmzyygva6d] { color: var(--crm-text-3); border-color: var(--crm-border); }
.dues-status--open[b-cmzyygva6d] { color: var(--crm-navy-600); border-color: rgba(var(--crm-navy-rgb), 0.25); }
.dues-status--closed[b-cmzyygva6d] { color: var(--crm-teal-600); border-color: rgba(var(--crm-teal-rgb), 0.35); background: var(--crm-teal-50); }

/* ── Loading skeleton ──────────────────────────────────────────────────── */

.dues-skel-row[b-cmzyygva6d] {
    height: 54px;
    border-bottom: 1px solid var(--crm-border);
    background: linear-gradient(
        90deg,
        var(--crm-white) 0%,
        var(--crm-bg) 40%,
        var(--crm-white) 80%);
    background-size: 300% 100%;
    animation: dues-shimmer-b-cmzyygva6d 1.4s var(--crm-ease) infinite;
    animation-delay: calc(var(--i, 0) * 90ms);
}

.dues-skel-row:last-child[b-cmzyygva6d] { border-bottom: 0; }

@keyframes dues-shimmer-b-cmzyygva6d {
    from { background-position: 100% 0; }
    to { background-position: -100% 0; }
}

@media (prefers-reduced-motion: reduce) {
    .dues-skel-row[b-cmzyygva6d] { animation: none; background: var(--crm-bg); }
}

/* ── First-run state ───────────────────────────────────────────────────── */

.dues-empty-setup[b-cmzyygva6d] {
    max-width: 520px;
    margin: 3rem auto;
    text-align: center;
    padding: 2.5rem 2rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-lg);
    box-shadow: var(--crm-shadow-sm);
}

.dues-empty-setup i[b-cmzyygva6d] {
    font-size: 2.2rem;
    color: var(--crm-text-3);
}

.dues-empty-setup h5[b-cmzyygva6d] {
    margin: 0.85rem 0 0.5rem;
    color: var(--crm-navy);
}

.dues-empty-setup p[b-cmzyygva6d] {
    color: var(--crm-text-2);
    font-size: 0.875rem;
    margin-bottom: 1.25rem;
}
/* /Pages/Invoicing/InvoiceDetail.razor.rz.scp.css */
/* Invoice detail. Two faces of the same record: a draft is a form, an issued
   invoice is a document. The layout deliberately changes shape between them so
   nobody mistakes one for the other and expects to be able to type into a
   financial record. */

.inv-back[b-j4ouzu42ln] {
    font-size: 0.78rem;
    color: var(--crm-text-3);
    text-decoration: none;
}

.inv-back:hover[b-j4ouzu42ln] { color: var(--crm-teal-600); }

/* ── Draft form panels ─────────────────────────────────────────────────── */

.inv-panel[b-j4ouzu42ln] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-lg);
    box-shadow: var(--crm-shadow-sm);
    padding: 1.15rem 1.25rem;
}

.inv-panel h6[b-j4ouzu42ln] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
}

/* The line grid is wide; let it scroll inside the panel rather than pushing the
   page body sideways. It only reaches that width on a narrow viewport — the
   editor gives the grid the full column so the Amount cell, the number being
   watched while lines are typed, is never the one that scrolls out of sight. */
.inv-editor-scroll[b-j4ouzu42ln] { overflow-x: auto; }

.inv-editor[b-j4ouzu42ln] {
    width: 100%;
    min-width: 820px;
    border-collapse: collapse;
    font-size: 0.85rem;
}

/* Totals under the lines, right-aligned so they land beneath the Amount column. */
.inv-totals-foot[b-j4ouzu42ln] {
    margin-left: auto;
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--crm-border);
    max-width: 340px;
}

.inv-editor thead th[b-j4ouzu42ln] {
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-3);
    text-align: left;
    padding: 0 0.35rem 0.4rem;
    white-space: nowrap;
}

.inv-editor tbody td[b-j4ouzu42ln] {
    padding: 0.2rem 0.35rem;
    vertical-align: middle;
}

.inv-lines-empty[b-j4ouzu42ln] {
    text-align: center;
    padding: 2rem 1rem;
    color: var(--crm-text-3);
    border: 1px dashed var(--crm-border-2);
    border-radius: var(--crm-r);
    font-size: 0.85rem;
}

.inv-lines-empty i[b-j4ouzu42ln] {
    font-size: 1.6rem;
    display: block;
    margin-bottom: 0.4rem;
}

/* ── Numbers ───────────────────────────────────────────────────────────── */

.inv-num[b-j4ouzu42ln] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.inv-num--strong[b-j4ouzu42ln] {
    font-weight: 600;
    color: var(--crm-navy);
}

/* Right-align the money inputs too, so typed figures line up with computed ones
   instead of jumping left as you enter them. */
.inv-num-input[b-j4ouzu42ln] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* ── Totals panel ──────────────────────────────────────────────────────── */

.inv-summary[b-j4ouzu42ln] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-lg);
    box-shadow: var(--crm-shadow-sm);
    padding: 1.1rem 1.25rem;
}

.inv-summary--sticky[b-j4ouzu42ln] {
    position: sticky;
    /* Keeps the running total in view while a long line list is edited. Binds to
       the page scroller, so it needs an ancestor that actually scrolls. */
    top: 1rem;
}

.inv-summary-row[b-j4ouzu42ln] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    padding: 0.35rem 0;
    font-size: 0.85rem;
    color: var(--crm-text-2);
}

.inv-summary-row--total[b-j4ouzu42ln] {
    border-top: 1px solid var(--crm-border);
    margin-top: 0.35rem;
    padding-top: 0.6rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--crm-navy);
}

.inv-summary-row--balance[b-j4ouzu42ln] {
    border-top: 2px solid var(--crm-navy);
    margin-top: 0.35rem;
    padding-top: 0.6rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--crm-navy);
}

.inv-summary-note[b-j4ouzu42ln] {
    margin: 0.9rem 0 0;
    font-size: 0.74rem;
    line-height: 1.45;
    color: var(--crm-text-3);
}

/* ── Issued document ───────────────────────────────────────────────────── */

.inv-doc[b-j4ouzu42ln] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-lg);
    box-shadow: var(--crm-shadow-sm);
    padding: 1.5rem 1.6rem;
}

.inv-doc-head[b-j4ouzu42ln] {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    flex-wrap: wrap;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--crm-border);
}

.inv-doc-label[b-j4ouzu42ln] {
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-3);
    margin-bottom: 0.3rem;
}

.inv-doc-org[b-j4ouzu42ln] {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--crm-navy);
}

.inv-doc-line[b-j4ouzu42ln] {
    font-size: 0.85rem;
    color: var(--crm-text-2);
    line-height: 1.5;
}

.inv-doc-meta[b-j4ouzu42ln] {
    display: grid;
    grid-template-columns: auto auto;
    gap: 0.2rem 0.9rem;
    margin: 0;
    font-size: 0.82rem;
}

.inv-doc-meta dt[b-j4ouzu42ln] {
    color: var(--crm-text-3);
    font-weight: 600;
    text-align: right;
}

.inv-doc-meta dd[b-j4ouzu42ln] {
    margin: 0;
    color: var(--crm-text);
    font-variant-numeric: tabular-nums;
}

.inv-lines[b-j4ouzu42ln] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
    margin-top: 1rem;
}

.inv-lines thead th[b-j4ouzu42ln] {
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-3);
    text-align: left;
    padding: 0.4rem 0.5rem;
    border-bottom: 1px solid var(--crm-border);
}

.inv-lines tbody td[b-j4ouzu42ln] {
    padding: 0.6rem 0.5rem;
    border-bottom: 1px solid var(--crm-border);
    color: var(--crm-text-2);
    vertical-align: top;
}

.inv-lines tbody tr:last-child td[b-j4ouzu42ln] { border-bottom: 0; }

.inv-line-sub[b-j4ouzu42ln] {
    font-size: 0.74rem;
    color: var(--crm-text-3);
    margin-top: 0.1rem;
}

.inv-doc-notes[b-j4ouzu42ln] {
    margin-top: 1.1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--crm-border);
    font-size: 0.84rem;
    color: var(--crm-text-2);
}

.inv-doc-notes p:last-child[b-j4ouzu42ln] { margin-bottom: 0; }

/* The IRC 6033(e) lobbying notice. Set apart because it is a required statement,
   not commentary — and because it is frozen at issue, so it may disagree with the
   entity's current figure. */
.inv-doc-disclosure[b-j4ouzu42ln] {
    margin-top: 1.1rem;
    padding: 0.8rem 0.9rem;
    background: var(--crm-bg);
    border-left: 3px solid var(--crm-navy-400);
    border-radius: 0 var(--crm-r-sm) var(--crm-r-sm) 0;
    font-size: 0.78rem;
    line-height: 1.5;
    color: var(--crm-text-2);
}

.inv-internal[b-j4ouzu42ln] {
    background: var(--crm-surface-2);
    border-radius: var(--crm-r);
    padding: 0.85rem 1rem;
    font-size: 0.82rem;
    color: var(--crm-text-2);
}

/* ── Status chip (shared shape with the list) ──────────────────────────── */

.inv-status[b-j4ouzu42ln] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.15rem 0.5rem 0.15rem 0.4rem;
    border-radius: 999px;
    border: 1px solid var(--crm-border-2);
    color: var(--crm-text-2);
    background: var(--crm-white);
    vertical-align: middle;
}

.inv-dot[b-j4ouzu42ln] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    flex: 0 0 auto;
}

.inv-status--draft[b-j4ouzu42ln] { color: var(--crm-text-3); border-color: var(--crm-border); }
.inv-status--issued[b-j4ouzu42ln] { color: var(--crm-navy-600); border-color: rgba(var(--crm-navy-rgb), 0.25); }
.inv-status--partiallypaid[b-j4ouzu42ln] { color: #8A6100; border-color: rgba(138, 97, 0, 0.28); background: rgba(255, 193, 7, 0.06); }
.inv-status--paid[b-j4ouzu42ln] { color: var(--crm-teal-600); border-color: rgba(var(--crm-teal-rgb), 0.35); background: var(--crm-teal-50); }
.inv-status--overdue[b-j4ouzu42ln] { color: #B4232A; border-color: rgba(180, 35, 42, 0.3); background: rgba(180, 35, 42, 0.05); }
.inv-status--void[b-j4ouzu42ln] { color: var(--crm-text-3); border-color: var(--crm-border); text-decoration: line-through; }
.inv-status--writtenoff[b-j4ouzu42ln] { color: var(--crm-text-3); border-color: var(--crm-border); }
/* /Pages/Invoicing/InvoiceList.razor.rz.scp.css */
/* Receivables list — same navy/teal system as the Service Desk queue, but the
   money column is the thing being read. Amounts are tabular monospace and right
   aligned so a column of figures scans as a column, and an outstanding balance
   is the only value that gets colour. */

.inv-tabs[b-bj3lk626cc] {
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    background: var(--crm-surface-2);
    border-radius: var(--crm-r);
}

.inv-tab[b-bj3lk626cc] {
    border: 0;
    background: transparent;
    color: var(--crm-text-2);
    font-size: 0.8rem;
    font-weight: 600;
    padding: 0.35rem 0.85rem;
    border-radius: var(--crm-r-sm);
    transition: background var(--crm-fast) var(--crm-ease),
                color var(--crm-fast) var(--crm-ease),
                transform var(--crm-fast) var(--crm-ease);
}

.inv-tab:hover[b-bj3lk626cc] { color: var(--crm-text); }

/* Physical push on press — the click registers before the data comes back. */
.inv-tab:active[b-bj3lk626cc] { transform: translateY(1px); }

.inv-tab--on[b-bj3lk626cc] {
    background: var(--crm-white);
    color: var(--crm-navy);
    box-shadow: var(--crm-shadow-xs);
}

.inv-total[b-bj3lk626cc] {
    font-size: 0.8rem;
    color: var(--crm-text-3);
}

.inv-total-sep[b-bj3lk626cc] { margin: 0 0.4rem; }

.inv-total-money[b-bj3lk626cc] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--crm-text-2);
}

.inv-card[b-bj3lk626cc] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-lg);
    box-shadow: var(--crm-shadow-sm);
    overflow: hidden;
}

.inv-table[b-bj3lk626cc] {
    width: 100%;
    /* Below this the card scrolls on its own rather than crushing the money
       columns or pushing the page body sideways. */
    min-width: 820px;
    border-collapse: collapse;
    font-size: 0.85rem;
}

@media (max-width: 860px) {
    .inv-card[b-bj3lk626cc] { overflow-x: auto; }
}

.inv-table thead th[b-bj3lk626cc] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-3);
    text-align: left;
    padding: 0.7rem 0.85rem;
    border-bottom: 1px solid var(--crm-border);
    background: var(--crm-bg);
    white-space: nowrap;
}

.inv-table tbody td[b-bj3lk626cc] {
    padding: 0.65rem 0.85rem;
    border-bottom: 1px solid var(--crm-border);
    vertical-align: middle;
}

.inv-table tbody tr:last-child td[b-bj3lk626cc] { border-bottom: 0; }

.inv-table tbody tr[b-bj3lk626cc] {
    cursor: pointer;
    transition: background var(--crm-fast) var(--crm-ease);
}

.inv-table tbody tr:hover[b-bj3lk626cc] { background: var(--crm-bg); }

.inv-table tbody tr:focus-visible[b-bj3lk626cc] {
    outline: 2px solid var(--crm-teal);
    outline-offset: -2px;
}

.inv-cell-main[b-bj3lk626cc] { min-width: 180px; }

.inv-number[b-bj3lk626cc] {
    font-weight: 600;
    color: var(--crm-navy);
    font-variant-numeric: tabular-nums;
}

.inv-sub[b-bj3lk626cc] {
    font-size: 0.72rem;
    color: var(--crm-text-3);
    margin-top: 0.1rem;
}

.inv-po[b-bj3lk626cc] {
    margin-left: 0.45rem;
    padding: 0.05rem 0.35rem;
    border: 1px solid var(--crm-border-2);
    border-radius: var(--crm-r-sm);
    font-variant-numeric: tabular-nums;
}

.inv-org[b-bj3lk626cc] { color: var(--crm-text); }

.inv-entity[b-bj3lk626cc] {
    margin-left: 0.45rem;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--crm-text-3);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.inv-date[b-bj3lk626cc] {
    color: var(--crm-text-2);
    font-size: 0.8rem;
    white-space: nowrap;
}

.inv-late[b-bj3lk626cc] {
    display: inline-block;
    margin-left: 0.4rem;
    font-size: 0.68rem;
    font-weight: 700;
    color: #B4232A;
}

/* ── Money ─────────────────────────────────────────────────────────────── */

.inv-num[b-bj3lk626cc] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.inv-table tbody td.inv-num[b-bj3lk626cc] {
    font-weight: 600;
    color: var(--crm-text-2);
}

/* Only an outstanding balance is coloured. A settled one recedes, so the eye
   lands on what still needs chasing. */
.inv-table tbody td.inv-num--open[b-bj3lk626cc] { color: var(--crm-navy); }
.inv-table tbody td.inv-num--clear[b-bj3lk626cc] { color: var(--crm-text-3); font-weight: 500; }

/* ── Status ────────────────────────────────────────────────────────────── */

.inv-status[b-bj3lk626cc] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.15rem 0.5rem 0.15rem 0.4rem;
    border-radius: 999px;
    border: 1px solid var(--crm-border-2);
    color: var(--crm-text-2);
    background: var(--crm-white);
    white-space: nowrap;
}

.inv-dot[b-bj3lk626cc] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    flex: 0 0 auto;
}

.inv-status--draft[b-bj3lk626cc] { color: var(--crm-text-3); border-color: var(--crm-border); }
.inv-status--issued[b-bj3lk626cc] { color: var(--crm-navy-600); border-color: rgba(var(--crm-navy-rgb), 0.25); }
.inv-status--partiallypaid[b-bj3lk626cc] { color: #8A6100; border-color: rgba(138, 97, 0, 0.28); background: rgba(255, 193, 7, 0.06); }
.inv-status--paid[b-bj3lk626cc] { color: var(--crm-teal-600); border-color: rgba(var(--crm-teal-rgb), 0.35); background: var(--crm-teal-50); }
.inv-status--overdue[b-bj3lk626cc] { color: #B4232A; border-color: rgba(180, 35, 42, 0.3); background: rgba(180, 35, 42, 0.05); }
.inv-status--void[b-bj3lk626cc] { color: var(--crm-text-3); border-color: var(--crm-border); text-decoration: line-through; }
.inv-status--writtenoff[b-bj3lk626cc] { color: var(--crm-text-3); border-color: var(--crm-border); }

/* ── Loading skeleton ──────────────────────────────────────────────────── */

.inv-skel-row[b-bj3lk626cc] {
    height: 54px;
    border-bottom: 1px solid var(--crm-border);
    background: linear-gradient(
        90deg,
        var(--crm-white) 0%,
        var(--crm-bg) 40%,
        var(--crm-white) 80%);
    background-size: 300% 100%;
    animation: inv-shimmer-b-bj3lk626cc 1.4s var(--crm-ease) infinite;
    /* Cascade the rows so the placeholder reads as a list arriving, not a flat block. */
    animation-delay: calc(var(--i, 0) * 90ms);
}

.inv-skel-row:last-child[b-bj3lk626cc] { border-bottom: 0; }

@keyframes inv-shimmer-b-bj3lk626cc {
    from { background-position: 100% 0; }
    to { background-position: -100% 0; }
}

@media (prefers-reduced-motion: reduce) {
    .inv-skel-row[b-bj3lk626cc] { animation: none; background: var(--crm-bg); }
    .inv-tab[b-bj3lk626cc] { transition: none; }
}

/* ── First-run state ───────────────────────────────────────────────────── */

.inv-empty-setup[b-bj3lk626cc] {
    max-width: 520px;
    margin: 3rem auto;
    text-align: center;
    padding: 2.5rem 2rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-lg);
    box-shadow: var(--crm-shadow-sm);
}

.inv-empty-setup i[b-bj3lk626cc] {
    font-size: 2.2rem;
    color: var(--crm-text-3);
}

.inv-empty-setup h5[b-bj3lk626cc] {
    margin: 0.85rem 0 0.5rem;
    color: var(--crm-navy);
}

.inv-empty-setup p[b-bj3lk626cc] {
    color: var(--crm-text-2);
    font-size: 0.875rem;
    margin-bottom: 1.25rem;
}
/* /Pages/Leads/LeadDetail.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════
   LeadDetail · Scoped Styles
   ═══════════════════════════════════════════════════════════ */

/* ── Entrance animation ──────────────────────── */
.ld-anim[b-j16o3976hm] {
    animation: ld-fade-up-b-j16o3976hm 0.38s var(--crm-ease) both;
}

@keyframes ld-fade-up-b-j16o3976hm {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Header ──────────────────────────────────── */
.ld-header[b-j16o3976hm] {
    position: relative;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    box-shadow: var(--crm-shadow-sm);
    margin-bottom: 1.5rem;
    overflow: hidden;
}

.ld-header-accent[b-j16o3976hm] {
    height: 4px;
    background: linear-gradient(90deg, var(--crm-teal), var(--crm-navy-400));
    transition: background var(--crm-mid) ease;
}

.ld-header-won .ld-header-accent[b-j16o3976hm] {
    background: linear-gradient(90deg, #059669, #34D399);
}

.ld-header-lost .ld-header-accent[b-j16o3976hm] {
    background: linear-gradient(90deg, #DC2626, #F87171);
}

.ld-header-content[b-j16o3976hm] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1.5rem;
    padding: 1.25rem 1.5rem;
}

.ld-header-left[b-j16o3976hm] {
    min-width: 0;
    flex: 1;
}

.ld-title-row[b-j16o3976hm] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.ld-title-row h1[b-j16o3976hm] {
    margin: 0;
    font-size: 1.6rem;
}

.ld-header-right[b-j16o3976hm] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.75rem;
    flex-shrink: 0;
}

.ld-deal-value[b-j16o3976hm] {
    font-family: 'Outfit', sans-serif;
    font-size: 1.65rem;
    font-weight: 700;
    color: var(--crm-navy);
    letter-spacing: -0.02em;
    line-height: 1;
}

.ld-actions[b-j16o3976hm] {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

/* ── Badges ──────────────────────────────────── */
.ld-badges[b-j16o3976hm] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.ld-badge[b-j16o3976hm] {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.6rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    border-radius: 100px;
    white-space: nowrap;
}

.ld-badge-stage[b-j16o3976hm] {
    background: var(--crm-surface-2);
    color: var(--crm-navy);
    border: 1px solid var(--crm-border-2);
}

.ld-badge-temp-cold[b-j16o3976hm] {
    background: #E8F4FD;
    color: #1565C0;
    border: 1px solid #BBDEFB;
}

.ld-badge-temp-warm[b-j16o3976hm] {
    background: #FFF3E0;
    color: #E65100;
    border: 1px solid #FFCC80;
}

.ld-badge-temp-hot[b-j16o3976hm] {
    background: #FFEBEE;
    color: #C62828;
    border: 1px solid #FFCDD2;
}

.ld-badge-won[b-j16o3976hm] {
    background: #D1FAE5;
    color: #065F46;
    border: 1px solid #A7F3D0;
}

.ld-badge-lost[b-j16o3976hm] {
    background: #FEE2E2;
    color: #991B1B;
    border: 1px solid #FECACA;
}

.ld-badge-open[b-j16o3976hm] {
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
    border: 1px solid rgba(0, 197, 168, 0.2);
}

.ld-badge-activity[b-j16o3976hm] {
    background: var(--crm-surface-2);
    color: var(--crm-text-2);
    border: 1px solid var(--crm-border);
    text-transform: uppercase;
    font-size: 0.65rem;
    letter-spacing: 0.04em;
}

.ld-badge-urgent[b-j16o3976hm] { background: #FEE2E2; color: #991B1B; border: 1px solid #FECACA; }
.ld-badge-high[b-j16o3976hm]   { background: #FFF3E0; color: #E65100; border: 1px solid #FFCC80; }
.ld-badge-medium[b-j16o3976hm] { background: #E8F4FD; color: #1565C0; border: 1px solid #BBDEFB; }
.ld-badge-low[b-j16o3976hm]    { background: var(--crm-surface-2); color: var(--crm-text-3); border: 1px solid var(--crm-border); }

.ld-assigned[b-j16o3976hm] {
    font-size: 0.8rem;
    color: var(--crm-text-3);
    padding-left: 0.4rem;
    border-left: 1px solid var(--crm-border);
}

/* ── Outcome action buttons ─────────────────── */
.ld-btn-won[b-j16o3976hm] {
    background: #059669;
    border-color: #059669;
    color: white;
}
.ld-btn-won:hover[b-j16o3976hm] {
    background: #047857;
    border-color: #047857;
    color: white;
    transform: translateY(-1px);
    box-shadow: var(--crm-shadow-sm);
}

.ld-btn-lost[b-j16o3976hm] {
    background: transparent;
    border: 1px solid #DC2626;
    color: #DC2626;
}
.ld-btn-lost:hover[b-j16o3976hm] {
    background: #DC2626;
    color: white;
    transform: translateY(-1px);
    box-shadow: var(--crm-shadow-sm);
}

/* ── Inline badges (inside content) ──────────── */
.ld-inline-badge[b-j16o3976hm] {
    display: inline-flex;
    padding: 0.1rem 0.5rem;
    font-size: 0.7rem;
    font-weight: 600;
    border-radius: 100px;
    margin-right: 0.4rem;
    vertical-align: middle;
}

.ld-inline-badge-ok[b-j16o3976hm] {
    background: #D1FAE5;
    color: #065F46;
}

/* ── Info Layout (sidebar + main) ────────────── */
.ld-info-layout[b-j16o3976hm] {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 1.25rem;
    align-items: start;
}

@media (max-width: 900px) {
    .ld-info-layout[b-j16o3976hm] {
        grid-template-columns: 1fr;
    }
}

/* ── Sidebar ─────────────────────────────────── */
.ld-sidebar[b-j16o3976hm] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ld-stat-card[b-j16o3976hm] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    padding: 0.85rem 1rem;
    transition: background var(--crm-fast) ease;
}

.ld-stat-card:first-child[b-j16o3976hm] {
    border-radius: var(--crm-r) var(--crm-r) 0 0;
}

.ld-stat-card:last-child[b-j16o3976hm] {
    border-radius: 0 0 var(--crm-r) var(--crm-r);
}

.ld-stat-card:only-child[b-j16o3976hm] {
    border-radius: var(--crm-r);
}

/* Collapse shared borders */
.ld-stat-card + .ld-stat-card[b-j16o3976hm] {
    border-top: none;
}

.ld-stat-card:hover[b-j16o3976hm] {
    background: var(--crm-bg);
}

.ld-stat-label[b-j16o3976hm] {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-3);
    margin-bottom: 0.15rem;
}

.ld-stat-value[b-j16o3976hm] {
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--crm-navy);
    line-height: 1.3;
}

.ld-stat-money[b-j16o3976hm] {
    font-size: 1rem;
    letter-spacing: -0.01em;
}

.ld-stat-sub[b-j16o3976hm] {
    font-size: 0.72rem;
    color: var(--crm-text-3);
    margin-top: 0.1rem;
}

.ld-stat-overdue[b-j16o3976hm] {
    border-left: 3px solid #DC2626;
}

.ld-overdue-text[b-j16o3976hm] {
    color: #DC2626;
    font-weight: 600;
}

/* ── Main Content Sections ───────────────────── */
.ld-main[b-j16o3976hm] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.ld-section[b-j16o3976hm] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: 1.25rem 1.5rem;
    box-shadow: var(--crm-shadow-xs);
}

.ld-section-title[b-j16o3976hm] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--crm-text-3);
    margin: 0 0 1rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid var(--crm-border);
}

/* Outcome section accents */
.ld-section-won[b-j16o3976hm] {
    border-left: 3px solid #059669;
}

.ld-section-lost[b-j16o3976hm] {
    border-left: 3px solid #DC2626;
}

/* ── Field Grid ──────────────────────────────── */
.ld-field-grid[b-j16o3976hm] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem 2rem;
}

.ld-field-wide[b-j16o3976hm] {
    grid-column: 1 / -1;
}

@media (max-width: 600px) {
    .ld-field-grid[b-j16o3976hm] {
        grid-template-columns: 1fr;
    }
}

.ld-field[b-j16o3976hm] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.ld-field-label[b-j16o3976hm] {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
}

.ld-field-value[b-j16o3976hm] {
    font-size: 0.92rem;
    color: var(--crm-text);
    line-height: 1.4;
}

.ld-link-value[b-j16o3976hm] {
    color: var(--crm-navy-600);
    font-weight: 500;
}

.ld-field-empty[b-j16o3976hm] {
    font-size: 0.88rem;
    color: var(--crm-text-3);
    font-style: italic;
}

.ld-description[b-j16o3976hm] {
    font-size: 0.92rem;
    line-height: 1.65;
    color: var(--crm-text-2);
    white-space: pre-line;
    margin: 0;
}

/* ── Tags ────────────────────────────────────── */
.ld-tags[b-j16o3976hm] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.ld-tag[b-j16o3976hm] {
    display: inline-flex;
    padding: 0.2rem 0.65rem;
    font-size: 0.78rem;
    font-weight: 500;
    background: var(--crm-bg);
    color: var(--crm-text-2);
    border: 1px solid var(--crm-border);
    border-radius: 100px;
}

/* ── Metadata footer ─────────────────────────── */
.ld-meta-footer[b-j16o3976hm] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
    padding: 0.75rem 0 0;
    font-size: 0.75rem;
    color: var(--crm-text-3);
    border-top: 1px solid var(--crm-border);
}

/* ── Timeline (Activities + History) ─────────── */
.ld-timeline[b-j16o3976hm] {
    display: flex;
    flex-direction: column;
    gap: 0;
    position: relative;
    padding-left: 1.5rem;
}

.ld-timeline[b-j16o3976hm]::before {
    content: '';
    position: absolute;
    left: 7px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    background: var(--crm-border);
    border-radius: 1px;
}

.ld-timeline-item[b-j16o3976hm] {
    position: relative;
    padding: 0.75rem 0 0.75rem 1.25rem;
}

.ld-timeline-item + .ld-timeline-item[b-j16o3976hm] {
    border-top: 1px solid var(--crm-bg);
}

.ld-timeline-dot[b-j16o3976hm] {
    position: absolute;
    left: -1.5rem;
    top: 1rem;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--crm-border-2);
    border: 2px solid var(--crm-white);
    box-shadow: 0 0 0 2px var(--crm-border);
    z-index: 1;
}

.ld-timeline-content[b-j16o3976hm] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    padding: 0.75rem 1rem;
    transition: box-shadow var(--crm-fast) ease;
}

.ld-timeline-content:hover[b-j16o3976hm] {
    box-shadow: var(--crm-shadow-xs);
}

.ld-timeline-header[b-j16o3976hm] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.ld-timeline-meta[b-j16o3976hm] {
    display: flex;
    gap: 1rem;
    margin-top: 0.3rem;
    font-size: 0.78rem;
    color: var(--crm-text-3);
}

/* History arrow styling */
.ld-history-from[b-j16o3976hm] {
    font-weight: 600;
    color: var(--crm-text-2);
}

.ld-history-arrow[b-j16o3976hm] {
    color: var(--crm-teal);
    font-weight: 700;
}

.ld-history-to[b-j16o3976hm] {
    font-weight: 700;
    color: var(--crm-navy);
}

/* ── Task List ───────────────────────────────── */
.ld-task-form[b-j16o3976hm] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
    box-shadow: var(--crm-shadow-xs);
}

.ld-form-label[b-j16o3976hm] {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
}

.ld-task-list[b-j16o3976hm] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ld-task-item[b-j16o3976hm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    padding: 0.7rem 1rem;
    transition: background var(--crm-fast) ease;
}

.ld-task-item:first-child[b-j16o3976hm] { border-radius: var(--crm-r) var(--crm-r) 0 0; }
.ld-task-item:last-child[b-j16o3976hm]  { border-radius: 0 0 var(--crm-r) var(--crm-r); }
.ld-task-item:only-child[b-j16o3976hm]  { border-radius: var(--crm-r); }
.ld-task-item + .ld-task-item[b-j16o3976hm] { border-top: none; }

.ld-task-item:hover[b-j16o3976hm] {
    background: var(--crm-bg);
}

.ld-task-done[b-j16o3976hm] {
    opacity: 0.6;
}

.ld-task-overdue[b-j16o3976hm] {
    border-left: 3px solid #DC2626;
}

.ld-task-left[b-j16o3976hm] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.ld-task-check[b-j16o3976hm] {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 2px solid var(--crm-border-2);
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--crm-fast) ease;
    flex-shrink: 0;
    color: transparent;
    font-size: 0.75rem;
    padding: 0;
}

.ld-task-check:hover[b-j16o3976hm] {
    border-color: var(--crm-teal);
    color: var(--crm-teal);
    background: var(--crm-teal-50);
}

.ld-task-checked[b-j16o3976hm] {
    border-color: var(--crm-teal);
    background: var(--crm-teal);
    color: white;
    cursor: default;
}

.ld-task-title[b-j16o3976hm] {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--crm-text);
}

.ld-task-title-done[b-j16o3976hm] {
    text-decoration: line-through;
    color: var(--crm-text-3);
}

.ld-task-due[b-j16o3976hm] {
    font-size: 0.75rem;
    color: var(--crm-text-3);
}

/* ── Empty State ─────────────────────────────── */
.ld-empty-state[b-j16o3976hm] {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--crm-text-3);
}

.ld-empty-icon[b-j16o3976hm] {
    font-size: 2.5rem;
    margin-bottom: 0.5rem;
    opacity: 0.4;
}

.ld-empty-state p[b-j16o3976hm] {
    margin: 0;
    font-size: 0.92rem;
}

/* ── Responsive ──────────────────────────────── */
@media (max-width: 575.98px) {
    .ld-header-content[b-j16o3976hm] {
        flex-direction: column;
        gap: 0.75rem;
    }

    .ld-header-right[b-j16o3976hm] {
        align-items: flex-start;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .ld-deal-value[b-j16o3976hm] {
        font-size: 1.3rem;
    }

    .ld-actions[b-j16o3976hm] {
        justify-content: flex-start;
    }
}
/* /Pages/Leads/LeadForm.razor.rz.scp.css */
/* ── Header ────────────────────────────────── */
.lf-header[b-ditxtzyahx] {
    margin-bottom: 24px;
}

.lf-header h1[b-ditxtzyahx] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--crm-navy);
    margin: 0;
}

/* ── Sections ──────────────────────────────── */
.lf-section[b-ditxtzyahx] {
    background: white;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: 20px 24px;
    margin-bottom: 16px;
    box-shadow: var(--crm-shadow-xs);
}

.lf-section-title[b-ditxtzyahx] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--crm-navy);
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--crm-border);
}

/* ── Labels ────────────────────────────────── */
.lf-label[b-ditxtzyahx] {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--crm-text-2);
    margin-bottom: 4px;
}

.lf-label-sm[b-ditxtzyahx] {
    font-size: 0.72rem;
    font-weight: 500;
    color: var(--crm-text-3);
    margin-bottom: 2px;
}

.lf-req[b-ditxtzyahx] {
    color: #E34850;
}


/* ── Temperature toggles ──────────────────── */
.lf-temp-group[b-ditxtzyahx] {
    display: flex;
    gap: 4px;
    border-radius: var(--crm-r-sm);
}

.lf-temp-btn[b-ditxtzyahx] {
    flex: 1;
    padding: 6px 8px;
    border: 1px solid var(--crm-border);
    background: white;
    font-size: 0.8rem;
    font-weight: 500;
    border-radius: var(--crm-r-sm);
    cursor: pointer;
    transition: all var(--crm-fast) ease;
    color: var(--crm-text-3);
    text-align: center;
}

.lf-temp-btn:hover[b-ditxtzyahx] {
    background: var(--crm-bg);
}

.lf-temp-cold.active[b-ditxtzyahx] {
    background: #E8F4FD;
    border-color: #5BA4CF;
    color: #1A6FAC;
}

.lf-temp-warm.active[b-ditxtzyahx] {
    background: #FFF3E0;
    border-color: #F5A623;
    color: #B87514;
}

.lf-temp-hot.active[b-ditxtzyahx] {
    background: #FDECEA;
    border-color: #E34850;
    color: #C62828;
}

/* ── Two-column layout ────────────────────── */
.lf-two-col[b-ditxtzyahx] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 16px;
}

@media (max-width: 768px) {
    .lf-two-col[b-ditxtzyahx] {
        grid-template-columns: 1fr;
    }
}

/* ── Cards grid ───────────────────────────── */
.lf-cards-grid[b-ditxtzyahx] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 0;
}

@media (max-width: 900px) {
    .lf-cards-grid[b-ditxtzyahx] {
        grid-template-columns: 1fr;
    }
}

/* ── Collapsible cards ────────────────────── */
.lf-card[b-ditxtzyahx] {
    background: white;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    box-shadow: var(--crm-shadow-xs);
    overflow: hidden;
}

.lf-card-header[b-ditxtzyahx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 14px 24px;
    background: none;
    border: none;
    cursor: pointer;
    transition: background var(--crm-fast) ease;
}

.lf-card-header:hover[b-ditxtzyahx] {
    background: var(--crm-bg);
}

.lf-card-title[b-ditxtzyahx] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--crm-navy);
}

.lf-chevron[b-ditxtzyahx] {
    font-size: 0.65rem;
    color: var(--crm-text-3);
    transition: transform var(--crm-mid) var(--crm-ease);
    transform: rotate(-90deg);
}

.lf-chevron.open[b-ditxtzyahx] {
    transform: rotate(0deg);
}

.lf-card-body[b-ditxtzyahx] {
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--crm-mid) var(--crm-ease);
}

.lf-card-body.expanded[b-ditxtzyahx] {
    max-height: 500px;
}

.lf-card-inner[b-ditxtzyahx] {
    padding: 0 24px 20px;
    border-top: 1px solid var(--crm-border);
    padding-top: 16px;
}

/* ── Toggle check ─────────────────────────── */
.lf-toggle-check .form-check-input:checked[b-ditxtzyahx] {
    background-color: var(--crm-teal);
    border-color: var(--crm-teal);
}

.lf-toggle-check .form-check-label[b-ditxtzyahx] {
    font-size: 0.875rem;
    color: var(--crm-text-2);
}

/* ── Validation ───────────────────────────── */
.lf-validation-msg[b-ditxtzyahx] {
    font-size: 0.78rem;
    color: #E34850;
    margin-top: 4px;
}

/* ── Actions ──────────────────────────────── */
.lf-actions[b-ditxtzyahx] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 16px 0 32px;
}
/* /Pages/Leads/LeadKanban.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   LeadKanban — pipeline board page styles
   ═══════════════════════════════════════════════════════ */

.lk-summary[b-c5i4jemb8l] {
    display: flex;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}

.lk-pill[b-c5i4jemb8l] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.75rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: 99px;
    font-size: 0.78rem;
}

.lk-pill-label[b-c5i4jemb8l] {
    color: var(--crm-text-3);
    font-weight: 500;
}

.lk-pill-value[b-c5i4jemb8l] {
    font-family: 'Outfit', sans-serif;
    font-weight: 700;
    color: var(--crm-navy);
    font-variant-numeric: tabular-nums;
}
/* /Pages/Leads/LeadMetrics.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   LeadMetrics — pipeline analytics dashboard
   ═══════════════════════════════════════════════════════ */

/* ── Filter Bar ── */

.lm-filters[b-e7ylamtjah] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.lm-filter-select[b-e7ylamtjah] {
    max-width: 200px;
}

.lm-date-presets[b-e7ylamtjah] {
    display: flex;
    gap: 0.25rem;
}

/* ── Hero KPI Cards ── */

.lm-kpi-row[b-e7ylamtjah] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 0.875rem;
    margin-bottom: 1.25rem;
}

.lm-kpi[b-e7ylamtjah] {
    position: relative;
    overflow: hidden;
    border-radius: var(--crm-r);
    padding: 1.1rem 1.25rem;
    color: #fff;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    transition: transform var(--crm-mid) var(--crm-ease),
                box-shadow var(--crm-mid) var(--crm-ease);
}

.lm-kpi:hover[b-e7ylamtjah] {
    transform: translateY(-3px);
    box-shadow: var(--crm-shadow-lift);
}

.lm-kpi[b-e7ylamtjah]::after {
    content: '';
    position: absolute;
    top: -20px;
    right: -20px;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: rgba(255,255,255,0.09);
    pointer-events: none;
}

.lm-kpi-navy[b-e7ylamtjah] { background: var(--crm-navy); }
.lm-kpi-teal[b-e7ylamtjah] { background: #009E88; }
.lm-kpi-green[b-e7ylamtjah] { background: #16a34a; }
.lm-kpi-amber[b-e7ylamtjah] { background: #d97706; }

.lm-kpi-label[b-e7ylamtjah] {
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    opacity: 0.75;
}

.lm-kpi-value[b-e7ylamtjah] {
    font-family: 'Outfit', sans-serif;
    font-weight: 700;
    font-size: 1.75rem;
    letter-spacing: -0.02em;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
}

.lm-kpi-sub[b-e7ylamtjah] {
    font-size: 0.72rem;
    opacity: 0.65;
}

/* ── Dashboard Grid ── */

.lm-row[b-e7ylamtjah] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.875rem;
    margin-bottom: 0.875rem;
}

.lm-card[b-e7ylamtjah] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: 1rem 1.25rem;
    box-shadow: var(--crm-shadow-xs);
}

.lm-card-wide[b-e7ylamtjah] {
    grid-column: span 1;
}

.lm-card-full[b-e7ylamtjah] {
    grid-column: 1 / -1;
}

.lm-card-title[b-e7ylamtjah] {
    font-family: 'Outfit', sans-serif;
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--crm-navy);
    margin: 0 0 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--crm-border);
}

.lm-card-subtitle[b-e7ylamtjah] {
    font-family: 'Outfit', sans-serif;
    font-weight: 600;
    font-size: 0.78rem;
    color: var(--crm-text-2);
    margin: 1rem 0 0.5rem;
}

/* ── Conversion Funnel ── */

.lm-funnel[b-e7ylamtjah] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    align-items: center;
}

.lm-funnel-tier[b-e7ylamtjah] {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
}

.lm-funnel-bar[b-e7ylamtjah] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.4rem 0.75rem;
    background: linear-gradient(90deg, var(--crm-navy), var(--crm-navy-600));
    color: #fff;
    border-radius: var(--crm-r-sm);
    min-height: 32px;
    transition: width var(--crm-slow) var(--crm-ease);
}

.lm-funnel-name[b-e7ylamtjah] {
    font-size: 0.74rem;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lm-funnel-count[b-e7ylamtjah] {
    font-size: 0.72rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    opacity: 0.85;
}

.lm-funnel-rate[b-e7ylamtjah] {
    font-size: 0.65rem;
    color: var(--crm-text-3);
    font-weight: 500;
}

/* ── Velocity summary ── */

.lm-velocity-summary[b-e7ylamtjah] {
    text-align: center;
    font-size: 0.78rem;
    color: var(--crm-text-2);
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--crm-border);
}

/* ── Tables ── */

.lm-table-wrap[b-e7ylamtjah] {
    overflow-x: auto;
}

.lm-table[b-e7ylamtjah] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.78rem;
}

.lm-table th[b-e7ylamtjah] {
    font-weight: 600;
    color: var(--crm-text-2);
    text-transform: uppercase;
    font-size: 0.68rem;
    letter-spacing: 0.04em;
    padding: 0.45rem 0.5rem;
    border-bottom: 2px solid var(--crm-border);
    text-align: left;
    white-space: nowrap;
}

.lm-table td[b-e7ylamtjah] {
    padding: 0.45rem 0.5rem;
    border-bottom: 1px solid var(--crm-border);
    color: var(--crm-text);
    font-variant-numeric: tabular-nums;
}

.lm-table-sm td[b-e7ylamtjah],
.lm-table-sm th[b-e7ylamtjah] {
    padding: 0.3rem 0.4rem;
    font-size: 0.72rem;
}

.lm-owner-cell[b-e7ylamtjah] {
    font-weight: 600;
    color: var(--crm-navy);
}

.lm-clickable[b-e7ylamtjah] {
    cursor: pointer;
}

.lm-clickable:hover td[b-e7ylamtjah] {
    background: var(--crm-bg);
}

.lm-days-warn[b-e7ylamtjah] {
    display: inline-block;
    padding: 0.1rem 0.35rem;
    border-radius: 99px;
    background: #fef2f2;
    color: #dc2626;
    font-weight: 600;
    font-size: 0.68rem;
}

/* ── Empty state ── */

.lm-empty[b-e7ylamtjah] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 120px;
    color: var(--crm-text-3);
    font-size: 0.82rem;
    font-style: italic;
}

/* ── Responsive ── */

@media (max-width: 768px) {
    .lm-row[b-e7ylamtjah] {
        grid-template-columns: 1fr;
    }

    .lm-kpi-row[b-e7ylamtjah] {
        grid-template-columns: repeat(2, 1fr);
    }

    .lm-filters[b-e7ylamtjah] {
        flex-direction: column;
        align-items: stretch;
    }

    .lm-filter-select[b-e7ylamtjah] {
        max-width: none;
    }
}
/* /Pages/Login.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════
   Login · Glassmorphism + Orchestrated Entrance
   The form internals are rendered by the shared <LoginForm/> child,
   so form rules are written as `.login-card-body ::deep …` to pierce
   the component boundary. Outer chrome (.login-stage/.login-card/
   .login-title) is owned directly by this page.
   ═══════════════════════════════════════════════════════════ */

.login-stage[b-rrpov3h6zh] {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 420px;
  width: 100%;
  margin: 0 auto;
  animation: crm-fade-in 0.5s var(--crm-ease) both;
}

/* ── Glass Card ── */

.login-card[b-rrpov3h6zh] {
  width: 100%;
  position: relative;
  background: var(--crm-glass-bg);
  backdrop-filter: blur(var(--crm-glass-blur));
  -webkit-backdrop-filter: blur(var(--crm-glass-blur));
  border: 1px solid transparent;
  border-radius: var(--crm-r-xl);
  box-shadow: 0 0 40px rgba(var(--crm-teal-rgb), 0.06),
              0 8px 32px rgba(0, 0, 0, 0.2);
  padding: 2.25rem 2rem 2rem;
  animation: crm-scale-up 0.6s var(--crm-ease) both 0.2s;
}

/* Animated gradient border sweep — single ambient loop */
.login-card[b-rrpov3h6zh]::after {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: var(--crm-r-xl);
  padding: 1px;
  background: linear-gradient(
    90deg,
    rgba(var(--crm-teal-rgb), 0.0) 0%,
    rgba(var(--crm-teal-rgb), 0.3) 25%,
    rgba(255, 255, 255, 0.15) 50%,
    rgba(var(--crm-teal-rgb), 0.3) 75%,
    rgba(var(--crm-teal-rgb), 0.0) 100%
  );
  background-size: 200% 100%;
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  mask-composite: exclude;
  animation: crm-border-sweep 4s linear infinite 1s;
  pointer-events: none;
  z-index: 1;
}

.login-title[b-rrpov3h6zh] {
  font-family: 'Instrument Serif', serif;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 400;
  text-align: center;
  margin-bottom: 1.75rem;
  letter-spacing: -0.01em;
  animation: crm-fade-in 0.4s var(--crm-ease) both 0.35s;
}

/* ── Form Controls (dark bg overrides) ── */

.login-card-body[b-rrpov3h6zh]  .form-label {
  color: rgba(255, 255, 255, 0.55);
}

.login-card-body[b-rrpov3h6zh]  .form-control {
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #fff;
  border-radius: 8px;
  transition: border-color var(--crm-fast) ease,
              box-shadow var(--crm-mid) var(--crm-ease),
              background var(--crm-fast) ease;
}

.login-card-body[b-rrpov3h6zh]  .form-control::placeholder {
  color: rgba(255, 255, 255, 0.3);
}

.login-card-body[b-rrpov3h6zh]  .form-control:focus {
  background: rgba(255, 255, 255, 0.09);
  border-color: var(--crm-teal);
  box-shadow: 0 0 0 3px var(--crm-teal-glow), 0 0 20px rgba(var(--crm-teal-rgb), 0.08);
  color: #fff;
}

/* ── Staggered Field Entrance ── */

.login-card-body[b-rrpov3h6zh]  .login-field:nth-child(1) { animation: crm-slide-up 0.4s var(--crm-ease) both 0.40s; }
.login-card-body[b-rrpov3h6zh]  .login-field:nth-child(2) { animation: crm-slide-up 0.4s var(--crm-ease) both 0.50s; }
.login-card-body[b-rrpov3h6zh]  .login-field:nth-child(3) { animation: crm-slide-up 0.4s var(--crm-ease) both 0.60s; }
.login-card-body[b-rrpov3h6zh]  .login-field:nth-child(4) { animation: crm-slide-up 0.4s var(--crm-ease) both 0.70s; }

/* ── Primary Button (gradient + hover glow) ── */

.login-card-body[b-rrpov3h6zh]  .login-btn-primary {
  background: linear-gradient(135deg, var(--crm-navy-600), var(--crm-teal-600)) !important;
  border: none !important;
  color: #fff !important;
  font-weight: 600;
  border-radius: 8px;
  transition: transform var(--crm-fast) var(--crm-ease),
              box-shadow var(--crm-mid) var(--crm-ease),
              opacity var(--crm-fast) ease;
}

.login-card-body[b-rrpov3h6zh]  .login-btn-primary:hover:not(:disabled) {
  transform: scale(1.01);
  box-shadow: 0 0 32px rgba(var(--crm-teal-rgb), 0.3),
              0 0 8px rgba(var(--crm-teal-rgb), 0.2);
}

.login-card-body[b-rrpov3h6zh]  .login-btn-primary:active:not(:disabled) {
  transform: scale(0.99);
}

.login-card-body[b-rrpov3h6zh]  .login-btn-primary:disabled {
  opacity: 0.6;
}

/* ── SSO Button (dark bg variant) ── */

.login-card-body[b-rrpov3h6zh]  .login-btn-sso {
  border-color: rgba(255, 255, 255, 0.25) !important;
  color: #fff !important;
  background: rgba(255, 255, 255, 0.05) !important;
  border-radius: 8px;
  transition: background var(--crm-fast) ease,
              border-color var(--crm-fast) ease;
}

.login-card-body[b-rrpov3h6zh]  .login-btn-sso:hover {
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
  color: #fff !important;
}

/* ── Error Alert (dark bg) ── */

.login-card-body[b-rrpov3h6zh]  .login-alert {
  background: rgba(220, 38, 38, 0.12) !important;
  border-color: rgba(220, 38, 38, 0.3) !important;
  color: #FCA5A5 !important;
  border-radius: 8px;
  animation: crm-slide-up 0.3s var(--crm-ease) both;
}

/* ── Forgot Password ── */

.login-card-body[b-rrpov3h6zh]  .login-forgot {
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.45);
  text-decoration: none;
  transition: color var(--crm-fast) ease;
}

.login-card-body[b-rrpov3h6zh]  .login-forgot:hover {
  color: var(--crm-teal);
}

/* ── MFA Section ── */

.login-card-body[b-rrpov3h6zh]  .login-mfa-section {
  animation: crm-scale-up 0.4s var(--crm-ease) both;
}

.login-card-body[b-rrpov3h6zh]  .login-mfa-section .text-muted {
  color: rgba(255, 255, 255, 0.5) !important;
}

.login-card-body[b-rrpov3h6zh]  .login-mfa-code {
  letter-spacing: 0.3em;
  font-size: 1.25rem;
  text-align: center;
}

/* ── Link Buttons (dark bg) ── */

.login-card-body[b-rrpov3h6zh]  .login-link {
  color: var(--crm-teal) !important;
  text-decoration: none !important;
  transition: opacity var(--crm-fast) ease;
}

.login-card-body[b-rrpov3h6zh]  .login-link:hover {
  opacity: 0.8;
}

/* ── "Wrong door" cross-link to the member portal ── */

.login-card-body[b-rrpov3h6zh]  .login-form-footer {
  margin-top: 1.5rem;
}

.login-card-body[b-rrpov3h6zh]  .login-door-switch {
  text-align: center;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.45);
  margin: 0;
}

.login-card-body[b-rrpov3h6zh]  .login-door-switch a {
  margin-left: 0.4rem;
  white-space: nowrap;
}

/* ── Validation Messages ── */

.login-card-body[b-rrpov3h6zh]  .validation-message {
  color: #FCA5A5;
}

/* ── Responsive ── */

@media (max-width: 640.98px) {
  .login-card[b-rrpov3h6zh] {
    padding: 1.5rem 1.25rem;
    margin: 0 0.75rem;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .login-card[b-rrpov3h6zh]::after {
    animation: none;
  }
}
/* /Pages/Member/Events/EventRegister.razor.rz.scp.css */
/* Member EventRegister — page-scoped extensions to the shared form system in
   wwwroot/css/registration.css. The band above it and the outcome hero are event-pages.css. */

/* Free booking: shown on the payment step when the price is nothing. */
[b-yvfyxgpur7] .reg-free-note {
    display: grid;
    gap: 0.3rem;
    padding: 1rem 1.1rem;
    border-radius: 12px;
    background: color-mix(in srgb, var(--crm-teal, #00C5A8) 9%, white);
}

[b-yvfyxgpur7] .reg-free-note-eyebrow {
    font-family: var(--reg-ui);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: color-mix(in oklab, var(--crm-teal, #00C5A8) 55%, #06131F);
}

[b-yvfyxgpur7] .reg-free-note-body {
    font-family: var(--reg-ui);
    font-size: 0.95rem;
    line-height: 1.5;
    color: var(--reg-ink);
    margin: 0;
}

[b-yvfyxgpur7] .reg-free-note-body em {
    font-style: normal;
    font-weight: 600;
}
/* /Pages/Member/MemberAnnouncements.razor.rz.scp.css */
.member-news-item[b-d9ov5ggdtq] {
    margin-bottom: 1rem;
}

.member-news-head[b-d9ov5ggdtq] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.member-news-pin[b-d9ov5ggdtq] {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-teal-600);
    background: var(--crm-teal-50);
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
}

.member-news-date[b-d9ov5ggdtq] {
    font-size: 0.82rem;
    color: var(--crm-text-3);
    margin: 0.3rem 0 0.75rem;
}

.member-news-body[b-d9ov5ggdtq] {
    color: var(--crm-text);
    line-height: 1.7;
}

.member-news-body[b-d9ov5ggdtq]  p:last-child {
    margin-bottom: 0;
}
/* /Pages/Member/MemberBilling.razor.rz.scp.css */
/* Portal billing. Uses the member card surface so it sits with the rest of the portal,
   but the amounts are tabular and right-aligned — a member scanning three invoices is
   reading a column of figures, not prose. */

.mb-card[b-dx19thznit] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: 1.25rem;
    margin-bottom: 1.5rem;
}

.mb-figures[b-dx19thznit] {
    display: flex;
    gap: 2.5rem;
    padding-bottom: 1rem;
    margin-bottom: 0.25rem;
    border-bottom: 1px solid var(--crm-border);
}

.mb-figure[b-dx19thznit] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.mb-figure__label[b-dx19thznit] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--crm-text-3);
}

.mb-figure__value[b-dx19thznit] {
    font-family: var(--bs-font-monospace, ui-monospace, monospace);
    font-size: 1.45rem;
    font-weight: 600;
    color: var(--crm-text-2);
    font-variant-numeric: tabular-nums;
}

.mb-figure__value--owed[b-dx19thznit] { color: var(--crm-navy); }
.mb-figure__value--credit[b-dx19thznit] { color: var(--crm-teal-600); }

.mb-row[b-dx19thznit] {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 1rem;
    align-items: center;
    padding: 0.85rem 0;
    border-bottom: 1px solid var(--crm-border);
}

.mb-list .mb-row:last-child[b-dx19thznit] { border-bottom: 0; }

@media (max-width: 640px) {
    .mb-row[b-dx19thznit] {
        grid-template-columns: 1fr auto;
        row-gap: 0.5rem;
    }
    .mb-row__actions[b-dx19thznit] { grid-column: 1 / -1; justify-content: flex-end; }
}

.mb-row__ref[b-dx19thznit] {
    font-weight: 600;
    color: var(--crm-navy);
}

.mb-row__meta[b-dx19thznit] {
    font-size: 0.78rem;
    color: var(--crm-text-3);
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.mb-row__amount[b-dx19thznit] {
    font-family: var(--bs-font-monospace, ui-monospace, monospace);
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    font-size: 1.05rem;
    color: var(--crm-navy);
    text-align: right;
}

.mb-row__actions[b-dx19thznit] {
    display: flex;
    gap: 0.4rem;
}

.mb-row__actions .btn:active[b-dx19thznit] { transform: translateY(1px); }

/* Late is the one thing worth colouring on a member's own bill. A red row for
   everything outstanding would read as a dunning notice. */
.mb-row--late .mb-row__amount[b-dx19thznit] { color: var(--crm-danger, #b42318); }
.mb-late[b-dx19thznit] { color: var(--crm-danger, #b42318); font-weight: 500; }

.mb-list--muted .mb-row__ref[b-dx19thznit],
.mb-list--muted .mb-row__amount[b-dx19thznit] { color: var(--crm-text-3); font-weight: 500; }

.mb-history[b-dx19thznit] {
    margin-bottom: 2rem;
}

.mb-history > summary[b-dx19thznit] {
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--crm-text-2);
    padding: 0.4rem 0;
}

.mb-history > summary:hover[b-dx19thznit] { color: var(--crm-navy); }
/* /Pages/Member/MemberDocuments.razor.rz.scp.css */
.member-doc-list[b-daes0run4g] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin-bottom: 1.5rem;
}

.member-doc-row[b-daes0run4g] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.9rem 1.1rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    box-shadow: var(--crm-shadow-sm);
    transition: box-shadow var(--crm-fast) ease, transform var(--crm-fast) ease;
}

.member-doc-row:hover[b-daes0run4g] {
    box-shadow: var(--crm-shadow-lg);
    transform: translateY(-1px);
}

.member-doc-icon[b-daes0run4g] {
    font-size: 1.4rem;
    color: var(--crm-teal-600);
    flex: 0 0 auto;
}

.member-doc-main[b-daes0run4g] {
    flex: 1 1 auto;
    min-width: 0;
}

.member-doc-title[b-daes0run4g] {
    font-weight: 600;
    color: var(--crm-text);
}

.member-doc-desc[b-daes0run4g] {
    font-size: 0.875rem;
    color: var(--crm-text-2);
    margin-top: 0.1rem;
}

.member-doc-meta[b-daes0run4g] {
    font-size: 0.78rem;
    color: var(--crm-text-3);
    margin-top: 0.25rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}
/* /Pages/Member/MemberHome.razor.rz.scp.css */
/* Member home. The hero is full-bleed (app.css lifts the container's width and padding for
   .mh-page); everything below sits in the 1280 wrap. Entrance choreography plays once a session
   (.mh-intro); motion is gated on prefers-reduced-motion throughout. */

@property --mh-ang { syntax: '<angle>'; inherits: false; initial-value: 0deg; }

.mh-page[b-e9t608n4f8] {
    --mh-ease: cubic-bezier(.2, .8, .2, 1);
    --mh-spring: cubic-bezier(.34, 1.5, .64, 1);
    --mh-soft: rgba(var(--crm-teal-rgb, 0, 197, 168), .14);
    --mh-ink: color-mix(in oklab, var(--crm-teal, #00C5A8) 55%, #06131F);
    --mh-lift: 0 22px 50px -12px rgba(13, 36, 71, .22);
    color: var(--crm-text, #0D2447);
}

.mh-wrap[b-e9t608n4f8] { max-width: 1280px; margin: 0 auto; width: 100%; padding: 0 2rem; }

/* ── Hero ──────────────────────────────────────────── */
.mh-hero[b-e9t608n4f8] {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--crm-navy, #0D2447);
    color: #fff;
    min-height: 532px;
    padding: 4rem 0 9.5rem;
}

.mh-hero-grid[b-e9t608n4f8] { display: grid; grid-template-columns: minmax(0, 1fr) 480px; gap: 3.5rem; align-items: center; }
.mh-hero-solo[b-e9t608n4f8] { grid-template-columns: minmax(0, 1fr); }

.mh-eyebrow[b-e9t608n4f8] { font-size: .88rem; font-weight: 500; color: rgba(255, 255, 255, .72); margin-bottom: .75rem; }

.mh-title[b-e9t608n4f8] {
    margin: 0;
    font-family: 'Instrument Serif', Georgia, serif;
    font-weight: 400;
    letter-spacing: -.01em;
    font-size: clamp(2.5rem, 5vw, 4.25rem);
    line-height: 1;
    color: #fff;
}

.mh-w[b-e9t608n4f8] { display: inline-block; }
.mh-lede[b-e9t608n4f8] { font-size: 1.06rem; color: rgba(255, 255, 255, .8); margin: .9rem 0 0; max-width: 520px; }

.mh-year[b-e9t608n4f8] { display: flex; flex-wrap: wrap; align-items: center; gap: 1.75rem; margin-top: 1.9rem; }
.mh-stat[b-e9t608n4f8] { display: flex; align-items: center; gap: .75rem; }
.mh-num[b-e9t608n4f8] { font-family: 'Instrument Serif', Georgia, serif; font-size: 2.25rem; line-height: 1; font-variant-numeric: tabular-nums; }
.mh-lab[b-e9t608n4f8] { font-size: .8rem; color: rgba(255, 255, 255, .72); line-height: 1.25; }
.mh-div[b-e9t608n4f8] { width: 1px; height: 40px; background: rgba(255, 255, 255, .18); }

.mh-ring[b-e9t608n4f8] { transform: rotate(-90deg); flex: none; }
.mh-ring-track[b-e9t608n4f8] { stroke: rgba(255, 255, 255, .14); }
.mh-ring-value[b-e9t608n4f8] { stroke: var(--crm-teal, #00C5A8); stroke-dashoffset: var(--o); }

/* ── Next-up card ──────────────────────────────────── */
.mh-glass[b-e9t608n4f8] {
    position: relative;
    overflow: hidden;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 22px;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .55);
    transform: perspective(1000px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
    transition: transform .6s var(--mh-ease);
}

.mh-glass.is-hot[b-e9t608n4f8] { transition: transform .1s linear; }
.mh-glass > *[b-e9t608n4f8] { position: relative; }

/* A light sweeps across the card once as the page arrives. */
.mh-glass[b-e9t608n4f8]::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 45%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .13), transparent);
    transform: translateX(-130%) skewX(-18deg);
    pointer-events: none;
}

.mh-glare[b-e9t608n4f8] {
    position: absolute !important;
    inset: 0;
    border-radius: inherit;
    background: radial-gradient(420px circle at var(--gx, 50%) var(--gy, 50%), rgba(255, 255, 255, .16), transparent 45%);
    opacity: 0;
    transition: opacity .35s;
    pointer-events: none;
}

.mh-glass.is-hot .mh-glare[b-e9t608n4f8] { opacity: 1; }

/* The border light the pulse "feeds". Its bright head sits at 71% of the conic sweep with the
   trail behind it, travelling counter-clockwise; --mh-ang is (where the head starts) − 255.6deg.
   Desktop starts at the card's lower-right corner (≈122deg), nearest where the pulse leaves the
   screen; phone at the right edge (90deg), where the trace crosses behind the card. */
.mh-beam[b-e9t608n4f8] {
    position: absolute !important;
    inset: 0;
    border-radius: inherit;
    padding: 2px;
    pointer-events: none;
    background: conic-gradient(from var(--mh-ang), transparent 0 64%, #fff 71%,
        rgba(var(--crm-teal-rgb, 0, 197, 168), .8) 75%, transparent 90%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: 0;
}

.mh-glass-top[b-e9t608n4f8] { display: flex; align-items: center; justify-content: space-between; }
.mh-glass-eb[b-e9t608n4f8] { font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--crm-teal, #00C5A8); }

.mh-chip-glass[b-e9t608n4f8] {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    height: 22px;
    padding: 0 .6rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .12);
    font-size: .72rem;
    font-weight: 600;
}

.mh-glass-main[b-e9t608n4f8] { display: flex; align-items: center; gap: 1rem; }

.mh-cd[b-e9t608n4f8] { position: relative; width: 64px; height: 64px; flex: none; }
.mh-cd-in[b-e9t608n4f8] { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; }
.mh-cd-in b[b-e9t608n4f8] { font-size: 1.35rem; font-weight: 600; }
.mh-cd-in .mh-cd-now[b-e9t608n4f8] { font-size: .85rem; }
.mh-cd-in span[b-e9t608n4f8] { font-size: .62rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: rgba(255, 255, 255, .7); margin-top: 2px; }

.mh-glass-title[b-e9t608n4f8] { font-size: 1.25rem; font-weight: 600; line-height: 1.25; }
.mh-glass-meta[b-e9t608n4f8] { font-size: .85rem; color: rgba(255, 255, 255, .76); margin-top: .15rem; }

.mh-going[b-e9t608n4f8] { display: flex; align-items: center; gap: .6rem; font-size: .82rem; color: rgba(255, 255, 255, .8); }
.mh-going-dots[b-e9t608n4f8] { display: flex; }

.mh-going-dots span[b-e9t608n4f8] {
    width: 26px;
    height: 26px;
    margin-left: -8px;
    border-radius: 50%;
    border: 2px solid var(--crm-navy, #0D2447);
    background: rgba(255, 255, 255, .18);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .75rem;
}

.mh-going-dots span:first-child[b-e9t608n4f8] { margin-left: 0; }

.mh-glass-actions[b-e9t608n4f8] { display: flex; flex-wrap: wrap; gap: .5rem; }

.mh-btn[b-e9t608n4f8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    height: 42px;
    padding: 0 1.1rem;
    border-radius: 11px;
    border: 0;
    font: inherit;
    font-size: .9rem;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: transform .25s var(--mh-ease), filter .2s, background-color .2s;
}

.mh-btn:active[b-e9t608n4f8] { transform: scale(.97); }
.mh-btn-accent[b-e9t608n4f8] { background: var(--crm-teal, #00C5A8); color: #081627; }
.mh-btn-accent:hover[b-e9t608n4f8] { filter: brightness(1.07); color: #081627; }
.mh-btn-ghost[b-e9t608n4f8] { background: none; border: 1px solid rgba(255, 255, 255, .28); color: #fff; }
.mh-btn-ghost:hover[b-e9t608n4f8] { background: rgba(255, 255, 255, .1); color: #fff; }

/* ── Body ──────────────────────────────────────────── */
.mh-body[b-e9t608n4f8] { display: flex; flex-direction: column; gap: 3rem; padding-top: 2.75rem; padding-bottom: 4rem; }

.mh-sec[b-e9t608n4f8] { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .9rem; }
.mh-sec h2[b-e9t608n4f8] { margin: 0; font-size: 1.2rem; font-weight: 600; color: var(--crm-text, #0D2447); }
.mh-meta[b-e9t608n4f8] { font-size: .8rem; color: var(--crm-text-2, #4A5B78); }

.mh-card[b-e9t608n4f8] {
    background: #fff;
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: 16px;
    box-shadow: 0 1px 2px rgba(13, 36, 71, .05), 0 6px 20px rgba(13, 36, 71, .05);
    color: var(--crm-text, #0D2447);
    text-decoration: none;
}

.mh-tile[b-e9t608n4f8] {
    width: 38px;
    height: 38px;
    flex: none;
    border-radius: 10px;
    background: var(--mh-soft);
    color: var(--mh-ink);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
}

.mh-attn[b-e9t608n4f8] { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; }

.mh-ac[b-e9t608n4f8] {
    padding: 1.1rem;
    display: flex;
    flex-direction: column;
    gap: .55rem;
    transition: transform .35s var(--mh-ease), box-shadow .35s, border-color .35s;
}

.mh-ac:hover[b-e9t608n4f8] { transform: translateY(-3px); box-shadow: var(--mh-lift); border-color: transparent; color: var(--crm-text, #0D2447); }
.mh-ac .mh-tile[b-e9t608n4f8] { transition: transform .45s var(--mh-spring); }
.mh-ac:hover .mh-tile[b-e9t608n4f8] { transform: rotate(-8deg) scale(1.06); }
.mh-ac-title[b-e9t608n4f8] { font-weight: 600; font-size: .98rem; line-height: 1.3; }
.mh-go[b-e9t608n4f8] { margin-top: auto; padding-top: .2rem; font-size: .84rem; font-weight: 600; color: var(--mh-ink); display: inline-flex; align-items: center; gap: .3rem; }
.mh-go .bi[b-e9t608n4f8] { transition: transform .3s var(--mh-ease); }
.mh-ac:hover .mh-go .bi[b-e9t608n4f8] { transform: translateX(4px); }

.mh-caught[b-e9t608n4f8] { margin: 0; color: var(--crm-text-2, #4A5B78); }
.mh-caught .bi[b-e9t608n4f8] { color: var(--mh-ink); margin-right: .35rem; }

/* Section and app tiles: hovering floods the tile from its icon and tips the icon to accent. */
.mh-launch[b-e9t608n4f8] { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: .9rem; }

.mh-lt[b-e9t608n4f8] {
    position: relative;
    overflow: hidden;
    padding: 1.1rem;
    min-height: 136px;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    transition: transform .4s var(--mh-ease), box-shadow .4s, border-color .4s;
}

.mh-lt[b-e9t608n4f8]::before {
    content: "";
    position: absolute;
    left: 1.1rem;
    top: 1.1rem;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--mh-soft);
    transform: scale(0);
    transition: transform .7s var(--mh-ease);
}

.mh-lt:hover[b-e9t608n4f8]::before { transform: scale(10); }
.mh-lt:hover[b-e9t608n4f8] { transform: translateY(-3px); box-shadow: var(--mh-lift); border-color: transparent; color: var(--crm-text, #0D2447); }

.mh-lt-ico[b-e9t608n4f8] {
    position: relative;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    background: var(--mh-soft);
    color: var(--mh-ink);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    transition: transform .45s var(--mh-spring), background-color .3s, color .3s;
}

.mh-lt:hover .mh-lt-ico[b-e9t608n4f8] { transform: scale(1.08) rotate(-6deg); background: var(--crm-teal, #00C5A8); color: #081627; }
.mh-lt-app .mh-lt-ico[b-e9t608n4f8] { background: var(--crm-bg, #F2F6FC); color: var(--crm-text-2, #4A5B78); }
.mh-lt-lab[b-e9t608n4f8] { position: relative; display: flex; flex-direction: column; gap: .1rem; }
.mh-lt-lab b[b-e9t608n4f8] { font-size: .98rem; font-weight: 600; }

.mh-badge[b-e9t608n4f8] {
    position: absolute;
    top: .9rem;
    right: .9rem;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--crm-teal, #00C5A8);
    color: #081627;
    font-size: .7rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.mh-ext[b-e9t608n4f8] { position: absolute; top: 1rem; right: 1rem; color: var(--crm-text-2, #4A5B78); font-size: .85rem; transition: transform .3s var(--mh-ease); }
.mh-lt:hover .mh-ext[b-e9t608n4f8] { transform: translate(2px, -2px); }

.mh-two[b-e9t608n4f8] { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.mh-two-solo[b-e9t608n4f8] { grid-template-columns: minmax(0, 1fr); max-width: 560px; }
.mh-side[b-e9t608n4f8] { display: flex; flex-direction: column; gap: 1.25rem; }

.mh-card-h[b-e9t608n4f8] { display: flex; align-items: center; justify-content: space-between; padding: 1.1rem 1.25rem .75rem; }
.mh-card-h h2[b-e9t608n4f8] { margin: 0; font-size: 1rem; font-weight: 600; }
.mh-more[b-e9t608n4f8] { font-size: .84rem; font-weight: 500; color: var(--mh-ink); text-decoration: none; }

.mh-row[b-e9t608n4f8] {
    display: flex;
    align-items: center;
    gap: .9rem;
    padding: .8rem 1.25rem;
    border-top: 1px solid var(--crm-border, #DCE5F0);
    color: var(--crm-text, #0D2447);
    text-decoration: none;
    transition: background-color .25s;
}

.mh-row:hover[b-e9t608n4f8] { background: var(--crm-bg, #F2F6FC); color: var(--crm-text, #0D2447); }
.mh-row:last-child[b-e9t608n4f8] { border-radius: 0 0 16px 16px; }
.mh-kind[b-e9t608n4f8] { width: 88px; flex: none; }
.mh-grow[b-e9t608n4f8] { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.mh-ttl[b-e9t608n4f8] { font-weight: 500; font-size: .92rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.mh-chip[b-e9t608n4f8] {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 .6rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 600;
    background: var(--mh-soft);
    color: var(--mh-ink);
}

.mh-chip-n[b-e9t608n4f8] { background: var(--crm-bg, #F2F6FC); color: var(--crm-text-2, #4A5B78); }

.mh-org[b-e9t608n4f8] { display: flex; align-items: center; gap: .9rem; padding: 1.1rem 1.25rem; transition: transform .35s var(--mh-ease), box-shadow .35s; }
.mh-org:hover[b-e9t608n4f8] { transform: translateY(-2px); box-shadow: var(--mh-lift); color: var(--crm-text, #0D2447); }
.mh-org-ico[b-e9t608n4f8] { width: 46px; height: 46px; flex: none; border-radius: 12px; background: var(--crm-bg, #F2F6FC); color: var(--crm-text-2, #4A5B78); display: inline-flex; align-items: center; justify-content: center; font-size: 1.2rem; }
.mh-org-name[b-e9t608n4f8] { font-weight: 600; }
.mh-org-go[b-e9t608n4f8] { color: var(--crm-text-2, #4A5B78); }

.mh-missing[b-e9t608n4f8] { padding-top: 2.5rem; }

/* Loading: the hero band and its pulse appear at once; two soft bars stand in for the text. */
.mh-skel[b-e9t608n4f8] { height: 18px; border-radius: 9px; background: rgba(255, 255, 255, .1); margin-bottom: 1rem; }
.mh-skel-a[b-e9t608n4f8] { width: 220px; }
.mh-skel-b[b-e9t608n4f8] { width: min(520px, 80%); height: 56px; border-radius: 14px; }

/* ── Motion ────────────────────────────────────────── */
@keyframes mh-rise-b-e9t608n4f8 { from { opacity: 0; transform: translateY(16px); } }
@keyframes mh-fade-b-e9t608n4f8 { from { opacity: 0; } }
@keyframes mh-word-b-e9t608n4f8 { from { opacity: 0; transform: translateY(.4em); filter: blur(10px); } }
@keyframes mh-draw-b-e9t608n4f8 { from { stroke-dashoffset: var(--c); } }
@keyframes mh-sheen-b-e9t608n4f8 { to { transform: translateX(260%) skewX(-18deg); } }
@keyframes mh-ping-b-e9t608n4f8 { from { transform: scale(1); opacity: .6; } to { transform: scale(2.4); opacity: 0; } }
@keyframes mh-pulse-skel-b-e9t608n4f8 { 50% { opacity: .5; } }

/* Desktop 6.4s / phone 5.4s — the same loops as PulseBackdrop.razor.css; see the timing note there. */
@keyframes mh-beam-d-b-e9t608n4f8 {
    0%, 46.5% { --mh-ang: -133.6deg; opacity: 0; }
    47.5% { --mh-ang: -145.6deg; opacity: 1; animation-timing-function: cubic-bezier(.45, .05, .25, 1); }
    65% { --mh-ang: -493.6deg; opacity: 1; }
    68%, 100% { --mh-ang: -493.6deg; opacity: 0; }
}

@keyframes mh-beam-p-b-e9t608n4f8 {
    0%, 38.9% { --mh-ang: -165.6deg; opacity: 0; }
    39.9% { --mh-ang: -177.6deg; opacity: 1; animation-timing-function: cubic-bezier(.45, .05, .25, 1); }
    57% { --mh-ang: -525.6deg; opacity: 1; }
    60%, 100% { --mh-ang: -525.6deg; opacity: 0; }
}

@media (prefers-reduced-motion: no-preference) {
    /* Every visit: the loop, and a quick settle-in. */
    .mh-beam[b-e9t608n4f8] { animation: mh-beam-d-b-e9t608n4f8 6.4s linear 1.2s infinite; }
    .mh-up[b-e9t608n4f8] { animation: mh-fade-b-e9t608n4f8 .35s ease backwards; }
    .mh-hero-loading .mh-skel[b-e9t608n4f8] { animation: mh-pulse-skel-b-e9t608n4f8 1.4s ease-in-out infinite; }

    /* First visit of the session: the full entrance. Fill mode is `backwards`, never `both` —
       a held transform makes every card a stacking context (see the card-animation note in app.css). */
    .mh-intro .mh-up[b-e9t608n4f8] { animation: mh-rise-b-e9t608n4f8 .8s var(--mh-ease) backwards; animation-delay: calc(var(--d, 0) * 70ms + 200ms); }
    .mh-intro .mh-w[b-e9t608n4f8] { animation: mh-word-b-e9t608n4f8 .9s var(--mh-ease) backwards; animation-delay: calc(var(--d, 0) * 110ms + 150ms); }
    .mh-intro .mh-ring-value[b-e9t608n4f8] { animation: mh-draw-b-e9t608n4f8 1.6s var(--mh-ease) .7s backwards; }
    .mh-intro .mh-glass[b-e9t608n4f8]::after { animation: mh-sheen-b-e9t608n4f8 1.5s var(--mh-ease) 1.3s backwards; }
    .mh-intro .mh-badge.mh-ping[b-e9t608n4f8]::after {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: inherit;
        background: inherit;
        opacity: 0;
        animation: mh-ping-b-e9t608n4f8 1.4s ease-out 1.8s 2 backwards;
    }
}

/* ── Responsive ────────────────────────────────────── */
@media (max-width: 1060px) {
    .mh-hero-grid[b-e9t608n4f8] { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
    .mh-hero-grid > :last-child[b-e9t608n4f8] { max-width: 560px; }
    .mh-two[b-e9t608n4f8] { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 720px) {
    .mh-wrap[b-e9t608n4f8] { padding: 0 1rem; }
    .mh-hero[b-e9t608n4f8] { min-height: 0; padding: 1.75rem 0 2.5rem; }
    .mh-year[b-e9t608n4f8] { gap: 1rem; margin-top: 1.25rem; }
    .mh-div[b-e9t608n4f8] { display: none; }
    .mh-glass[b-e9t608n4f8] { padding: 1rem; backdrop-filter: blur(8px); }
    .mh-glass-actions .mh-btn[b-e9t608n4f8] { flex: 1; }
    .mh-body[b-e9t608n4f8] { gap: 2.25rem; padding-top: 1.75rem; }
    .mh-launch[b-e9t608n4f8] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mh-lt[b-e9t608n4f8] { min-height: 120px; }
    .mh-kind[b-e9t608n4f8] { width: auto; }
    .mh-row[b-e9t608n4f8] { flex-wrap: wrap; gap: .4rem .9rem; }
}

@media (max-width: 720px) and (prefers-reduced-motion: no-preference) {
    .mh-beam[b-e9t608n4f8] { animation-name: mh-beam-p-b-e9t608n4f8; animation-duration: 5.4s; }
}
/* /Pages/Member/PulseBackdrop.razor.rz.scp.css */
/* Loop timing — shared with .mh-beam in MemberHome.razor.css and .evt-beam in
   Shared/Events/EventLanding.razor.css. Change them together.

   Desktop, 6.4s: the pulse crosses in 0–3.4s (53.1%) at a constant speed; its head leaves the
   right edge at ~2.98s (46.6%), which is when the card's border light starts; then ~2s of rest.
   Phone, 5.4s: crossing 0–2.4s (44.4%), head exits ~2.1s (38.9%).

   Each moving layer is one dash with a 3000-unit gap (the path is normalised to 1000), so only
   one copy is ever on the trace. The head sits at the trail's front. */

.pb[b-bgzbsuhgan] { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }

.pb-grid[b-bgzbsuhgan] {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
    background-size: 44px 44px;
    -webkit-mask: radial-gradient(120% 90% at 60% 70%, #000 20%, transparent 75%);
    mask: radial-gradient(120% 90% at 60% 70%, #000 20%, transparent 75%);
}

.pb-ecg[b-bgzbsuhgan] { position: absolute; left: 0; bottom: 0; width: 100%; }
.pb-desk[b-bgzbsuhgan] { height: 532px; }
.pb-phone[b-bgzbsuhgan] { height: 300px; display: none; }

.pb-base[b-bgzbsuhgan] { stroke: rgba(255, 255, 255, .1); }
.pb-trail[b-bgzbsuhgan] { stroke: var(--crm-teal, #00C5A8); stroke-dasharray: 140 3000; stroke-dashoffset: 140; opacity: 0; filter: blur(1px); }
.pb-trail2[b-bgzbsuhgan] { stroke: var(--crm-teal, #00C5A8); stroke-dasharray: 40 3000; stroke-dashoffset: 40; opacity: 0; filter: drop-shadow(0 0 8px var(--crm-teal, #00C5A8)); }
.pb-head[b-bgzbsuhgan] { stroke: #fff; stroke-dasharray: 14 3000; stroke-dashoffset: 14; opacity: 0; filter: drop-shadow(0 0 6px var(--crm-teal, #00C5A8)) drop-shadow(0 0 14px var(--crm-teal, #00C5A8)); }

@keyframes pb-draw-b-bgzbsuhgan { from { stroke-dasharray: 0 1000; } to { stroke-dasharray: 1000 0; } }

@keyframes pb-trail-d-b-bgzbsuhgan { 0% { stroke-dashoffset: 140; } 53.1%, 100% { stroke-dashoffset: -1000; } }
@keyframes pb-trail2-d-b-bgzbsuhgan { 0% { stroke-dashoffset: 40; } 53.1%, 100% { stroke-dashoffset: -1100; } }
@keyframes pb-head-d-b-bgzbsuhgan { 0% { stroke-dashoffset: 14; } 53.1%, 100% { stroke-dashoffset: -1126; } }

@keyframes pb-trail-p-b-bgzbsuhgan { 0% { stroke-dashoffset: 140; } 44.4%, 100% { stroke-dashoffset: -1000; } }
@keyframes pb-trail2-p-b-bgzbsuhgan { 0% { stroke-dashoffset: 40; } 44.4%, 100% { stroke-dashoffset: -1100; } }
@keyframes pb-head-p-b-bgzbsuhgan { 0% { stroke-dashoffset: 14; } 44.4%, 100% { stroke-dashoffset: -1126; } }

@media (prefers-reduced-motion: no-preference) {
    .pb-base[b-bgzbsuhgan] { animation: pb-draw-b-bgzbsuhgan 1.8s cubic-bezier(.2, .8, .2, 1) .2s backwards; }
    .pb-desk .pb-trail[b-bgzbsuhgan] { opacity: .55; animation: pb-trail-d-b-bgzbsuhgan 6.4s linear 1.2s infinite; }
    .pb-desk .pb-trail2[b-bgzbsuhgan] { opacity: 1; animation: pb-trail2-d-b-bgzbsuhgan 6.4s linear 1.2s infinite; }
    .pb-desk .pb-head[b-bgzbsuhgan] { opacity: 1; animation: pb-head-d-b-bgzbsuhgan 6.4s linear 1.2s infinite; }
    .pb-phone .pb-trail[b-bgzbsuhgan] { opacity: .55; animation: pb-trail-p-b-bgzbsuhgan 5.4s linear 1.2s infinite; }
    .pb-phone .pb-trail2[b-bgzbsuhgan] { opacity: 1; animation: pb-trail2-p-b-bgzbsuhgan 5.4s linear 1.2s infinite; }
    .pb-phone .pb-head[b-bgzbsuhgan] { opacity: 1; animation: pb-head-p-b-bgzbsuhgan 5.4s linear 1.2s infinite; }
}

@media (max-width: 720px) {
    .pb-desk[b-bgzbsuhgan] { display: none; }
    .pb-phone[b-bgzbsuhgan] { display: block; }
}
/* /Pages/Newsletters/NewsletterIndex.razor.rz.scp.css */
.nl-index[b-dr6j0ojai1] { max-width: 72rem; }
.nl-index__head[b-dr6j0ojai1] { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.nl-index__head h1[b-dr6j0ojai1] { margin-bottom: 0.15rem; }

.nl-filters[b-dr6j0ojai1] { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.nl-chips[b-dr6j0ojai1] { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.nl-chip[b-dr6j0ojai1] {
  --chip: var(--crm-navy, #0d2447);
  display: inline-flex; align-items: center; gap: 0.45rem;
  border: 1px solid var(--crm-border, #dce5f0);
  background: #fff;
  border-radius: 999px;
  padding: 0.3rem 0.85rem;
  font-size: 0.875rem; font-weight: 500;
  color: var(--crm-text, #0d2447);
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.nl-chip:hover[b-dr6j0ojai1] { border-color: var(--chip); }
.nl-chip.is-on[b-dr6j0ojai1] { background: var(--chip); border-color: var(--chip); color: #fff; }
.nl-chip__dot[b-dr6j0ojai1] { width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--chip); }
.nl-chip.is-on .nl-chip__dot[b-dr6j0ojai1] { background: #fff; }

.nl-issues[b-dr6j0ojai1] { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.nl-issue[b-dr6j0ojai1] {
  --accent: #0f6ab4;
  display: grid;
  gap: 0.2rem;
  padding: 1rem 1.25rem 1rem 1.4rem;
  background: #fff;
  border: 1px solid var(--crm-border, #dce5f0);
  border-left: 4px solid var(--accent);
  border-radius: var(--crm-r, 10px);
  color: inherit;
  text-decoration: none;
  transition: box-shadow 0.2s, transform 0.2s;
}
.nl-issue:hover[b-dr6j0ojai1] { box-shadow: var(--crm-shadow, 0 4px 16px rgba(13,36,71,.09)); transform: translateY(-1px); }
.nl-issue:focus-visible[b-dr6j0ojai1] { outline: 2px solid var(--accent); outline-offset: 2px; }
.nl-issue__pub[b-dr6j0ojai1] { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent); }
.nl-issue__title[b-dr6j0ojai1] { font-family: 'Fraunces', Georgia, serif; font-size: 1.2rem; font-weight: 600; line-height: 1.3; }
.nl-issue__sub[b-dr6j0ojai1] { color: #4a5a73; font-size: 0.92rem; }
.nl-issue__meta[b-dr6j0ojai1] { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.9rem; margin-top: 0.35rem; font-size: 0.8rem; color: #6b7a92; }

.nl-status[b-dr6j0ojai1] { display: inline-block; padding: 0.1rem 0.55rem; border-radius: 999px; font-weight: 600; font-size: 0.74rem; background: #eef2f8; color: #4a5a73; }
.nl-status--inreview[b-dr6j0ojai1] { background: #fff4d6; color: #8a5a00; }
.nl-status--approved[b-dr6j0ojai1] { background: #dcf5ea; color: #0b6b47; }
.nl-status--published[b-dr6j0ojai1] { background: #dbeafe; color: #1d4ed8; }
.nl-status--archived[b-dr6j0ojai1] { background: #f1f1f4; color: #6b7280; }
.nl-status--changes[b-dr6j0ojai1] { background: #fde8e8; color: #9b1c1c; }

.nl-empty[b-dr6j0ojai1] { text-align: center; padding: 3.5rem 1rem; background: #fff; border: 1px dashed var(--crm-border, #dce5f0); border-radius: var(--crm-r-lg, 16px); }
.nl-empty > i[b-dr6j0ojai1] { font-size: 2.4rem; color: #0f6ab4; }
.nl-empty h2[b-dr6j0ojai1] { font-family: 'Fraunces', Georgia, serif; font-size: 1.4rem; margin: 0.6rem 0 0.3rem; }
.nl-empty p[b-dr6j0ojai1] { max-width: 34rem; margin: 0 auto 1rem; color: #4a5a73; }
.nl-empty--small[b-dr6j0ojai1] { padding: 2rem 1rem; }
/* /Pages/Newsletters/NewsletterWorkspace.razor.rz.scp.css */
.nlw[b-nd7fa7ya95] {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 7rem);
  margin: -1rem -1.5rem;
  background: #f2f6fc;
}

.nlw-top[b-nd7fa7ya95] { padding: 1rem 1.5rem 0.9rem; background: #fff; border-bottom: 1px solid var(--crm-border, #dce5f0); }
.nlw-crumbs[b-nd7fa7ya95] { display: flex; align-items: center; flex-wrap: wrap; gap: 0.35rem 0.9rem; font-size: 0.82rem; color: #6b7a92; margin-bottom: 0.5rem; }
.nlw-crumbs a[b-nd7fa7ya95] { color: #4a5a73; text-decoration: none; font-weight: 500; }
.nlw-crumbs a:hover[b-nd7fa7ya95] { color: var(--crm-navy, #0d2447); }
.nlw-pub[b-nd7fa7ya95] { font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; font-size: 0.72rem; color: var(--nl-publication-accent); }
.nlw-id[b-nd7fa7ya95] { font-variant-numeric: tabular-nums; }

.nlw-headline[b-nd7fa7ya95] { display: flex; align-items: flex-start; gap: 1rem; }
.nlw-titles[b-nd7fa7ya95] { flex: 1 1 auto; min-width: 0; display: grid; gap: 0.15rem; }
.nlw-title[b-nd7fa7ya95], .nlw-subtitle[b-nd7fa7ya95] {
  width: 100%;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--crm-navy, #0d2447);
  padding: 0.1rem 0.4rem;
  margin-left: -0.4rem;
  transition: border-color 0.15s, background 0.15s;
}
.nlw-title[b-nd7fa7ya95] { font-family: 'Fraunces', Georgia, serif; font-size: 1.75rem; font-weight: 600; line-height: 1.25; letter-spacing: -0.01em; }
.nlw-subtitle[b-nd7fa7ya95] { font-size: 1rem; color: #4a5a73; }
.nlw-title:hover:not([readonly])[b-nd7fa7ya95], .nlw-subtitle:hover:not([readonly])[b-nd7fa7ya95] { background: #f5f8fc; }
.nlw-title:focus[b-nd7fa7ya95], .nlw-subtitle:focus[b-nd7fa7ya95] { outline: none; border-color: #c3cfdf; background: #fff; }
.nlw-subtitle[b-nd7fa7ya95]::placeholder { color: #a7b3c5; }

.nlw-actions[b-nd7fa7ya95] { display: flex; align-items: center; gap: 0.5rem; flex: 0 0 auto; padding-top: 0.35rem; }
.nlw-date[b-nd7fa7ya95] { display: inline-flex; align-items: center; gap: 0.4rem; border: 1px solid var(--crm-border, #dce5f0); border-radius: 8px; padding: 0.15rem 0.5rem; font-size: 0.85rem; color: #4a5a73; }
.nlw-date input[b-nd7fa7ya95] { border: 0; background: transparent; color: inherit; font: inherit; }
.nlw-date input:focus[b-nd7fa7ya95] { outline: none; }

.nlw-body[b-nd7fa7ya95] { flex: 1 1 auto; display: grid; grid-template-columns: minmax(0, 1fr); }
.nlw-body.has-panel[b-nd7fa7ya95] { grid-template-columns: minmax(0, 1fr) 23rem; }
.nlw-body.has-panel.is-wide[b-nd7fa7ya95] { grid-template-columns: minmax(0, 1fr) minmax(22rem, 42%); }

.nlw-tabs[b-nd7fa7ya95] { display: inline-flex; padding: 0.15rem; border-radius: 9px; background: #eef2f8; gap: 0.1rem; }
.nlw-tab[b-nd7fa7ya95] { border: 0; background: transparent; border-radius: 7px; padding: 0.3rem 0.7rem; font-size: 0.84rem; font-weight: 500; color: #4a5a73; }
.nlw-tab:hover[b-nd7fa7ya95] { color: var(--crm-navy, #0d2447); }
.nlw-tab.is-on[b-nd7fa7ya95] { background: #fff; color: var(--crm-navy, #0d2447); box-shadow: 0 1px 2px rgba(13,36,71,.12); }

.nlw-side[b-nd7fa7ya95] { position: sticky; top: 0; height: calc(100vh - 7rem); display: flex; flex-direction: column; border-left: 1px solid var(--crm-border, #dce5f0); background: #fff; }
.nlw-side__bar[b-nd7fa7ya95] { display: flex; align-items: center; gap: 0.5rem; padding: 0.55rem 0.5rem 0.55rem 1rem; border-bottom: 1px solid var(--crm-border, #dce5f0); }
.nlw-side__scroll[b-nd7fa7ya95] { flex: 1 1 auto; overflow-y: auto; }
.nlw-editor[b-nd7fa7ya95] { min-width: 0; }
.nlw-editor[b-nd7fa7ya95]  .nle { min-height: 100%; }

.nlw-preview[b-nd7fa7ya95] { position: sticky; top: 0; height: calc(100vh - 7rem); display: flex; flex-direction: column; border-left: 1px solid var(--crm-border, #dce5f0); background: #e9eef6; }
.nlw-preview__bar[b-nd7fa7ya95] { display: flex; align-items: center; gap: 0.6rem; padding: 0.5rem 0.75rem; background: #fff; border-bottom: 1px solid var(--crm-border, #dce5f0); }
.nlw-preview__scroll[b-nd7fa7ya95] { flex: 1 1 auto; overflow: auto; padding: 1.5rem; }
.nlw-preview__page[b-nd7fa7ya95] { background: #fff; border-radius: 10px; padding: 2.5rem clamp(1rem, 4vw, 3rem); box-shadow: 0 1px 2px rgba(13,36,71,.06); margin: 0 auto; max-width: 52rem; transition: max-width 0.25s; }
.nlw-preview__page.is-mobile[b-nd7fa7ya95] { max-width: 24rem; padding: 1.5rem 1rem; }
.nlw-preview__kicker[b-nd7fa7ya95] { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--nl-publication-accent); margin-bottom: 0.4rem; text-align: center; }
.nlw-preview__title[b-nd7fa7ya95] { font-family: 'Fraunces', Georgia, serif; font-size: 2.1rem; line-height: 1.15; font-weight: 600; text-align: center; color: #14213d; margin-bottom: 0.6rem; text-wrap: balance; }
.nlw-preview__page.is-mobile .nlw-preview__title[b-nd7fa7ya95] { font-size: 1.6rem; }
.nlw-preview__dek[b-nd7fa7ya95] { text-align: center; color: #3c4a63; font-size: 1.1rem; max-width: 36rem; margin: 0 auto 2rem; }

@media (max-width: 1100px) {
  .nlw-body.has-panel[b-nd7fa7ya95], .nlw-body.has-panel.is-wide[b-nd7fa7ya95] { grid-template-columns: minmax(0, 1fr); }
  .nlw-preview[b-nd7fa7ya95], .nlw-side[b-nd7fa7ya95] { position: fixed; inset: 0 0 0 auto; width: min(100vw, 34rem); z-index: 1050; height: 100vh; box-shadow: -8px 0 30px rgba(13,36,71,.2); }
}
@media (max-width: 720px) {
  .nlw[b-nd7fa7ya95] { margin: -0.5rem -0.75rem; }
  .nlw-headline[b-nd7fa7ya95] { flex-direction: column; }
  .nlw-title[b-nd7fa7ya95] { font-size: 1.4rem; }
}
.nl-status[b-nd7fa7ya95] { display: inline-block; padding: 0.1rem 0.55rem; border-radius: 999px; font-weight: 600; font-size: 0.74rem; background: #eef2f8; color: #4a5a73; }
.nl-status--inreview[b-nd7fa7ya95] { background: #fff4d6; color: #8a5a00; }
.nl-status--approved[b-nd7fa7ya95] { background: #dcf5ea; color: #0b6b47; }
.nl-status--published[b-nd7fa7ya95] { background: #dbeafe; color: #1d4ed8; }
.nl-status--archived[b-nd7fa7ya95] { background: #f1f1f4; color: #6b7280; }
.nl-status--changes[b-nd7fa7ya95] { background: #fde8e8; color: #9b1c1c; }
/* /Pages/Partners/PartnerList.razor.rz.scp.css */
.pl-header[b-gugbay8930] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1rem;
}

.pl-header-actions[b-gugbay8930] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pl-year[b-gugbay8930] { width: 7rem; }

.pl-summary[b-gugbay8930] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-bottom: 0.75rem;
    font-size: 0.85rem;
    color: var(--crm-text-2, #495057);
}

/* Import / recovery work in a panel above the list rather than a modal — the
   preview tables are wide, and staff cross-check them against the sheet. */
.pl-panel[b-gugbay8930] {
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 8px;
    background: var(--crm-white, #fff);
    padding: 14px 16px;
    margin-bottom: 1rem;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.pl-panel-head[b-gugbay8930] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.pl-panel-note[b-gugbay8930] {
    font-size: 0.82rem;
    color: var(--crm-text-2, #495057);
    margin: 0;
    max-width: 70ch;
}

.pl-panel-actions[b-gugbay8930] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.pl-import-row[b-gugbay8930] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
}

.pl-import-file[b-gugbay8930] { flex: 1 1 20rem; }

.pl-preview-summary[b-gugbay8930] {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 0.85rem;
}

.pl-stat[b-gugbay8930] {
    font-weight: 600;
    border-radius: 4px;
    padding: 1px 8px;
}

.pl-stat--ok[b-gugbay8930]   { color: #1E7A4B; background: #E7F4ED; }
.pl-stat--warn[b-gugbay8930] { color: #A6551A; background: #FBF0E4; }

.pl-preview-table[b-gugbay8930] {
    max-height: 26rem;
    overflow-y: auto;
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 6px;
}

/* Rows that won't be applied — visible without shouting, since on a first
   import a lot of rows legitimately need a look. */
.pl-row-warn[b-gugbay8930] { background: #FDF7EF; }

.pl-problems[b-gugbay8930] {
    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.82rem;
    color: #A6551A;
}

.pl-source[b-gugbay8930] {
    font-size: 0.78rem;
    color: var(--crm-text-3, #6c757d);
    max-width: 28rem;
}

.pl-num[b-gugbay8930] { font-variant-numeric: tabular-nums; }

/* The right-aligned Total sat flush against the next heading. Give the numeric
   column its own breathing room rather than nudging the whole table. */
.bd-list-table th.text-end[b-gugbay8930],
.bd-list-table td.text-end[b-gugbay8930] {
    padding-right: 1.25rem;
}

.pl-tag[b-gugbay8930] {
    display: inline-block;
    margin-left: 6px;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    border-radius: 3px;
    padding: 0 5px;
    color: var(--crm-text-3, #6c757d);
    background: var(--crm-bg, #f5f7fa);
    border: 1px solid var(--crm-border, #dee2e6);
}

.pl-tag--warn[b-gugbay8930] { color: #A6551A; background: #FBF0E4; border-color: #E3C79E; }
.pl-tag--pref[b-gugbay8930] { color: #04a58c; background: #e8f7f4; border-color: #04cdaf; }

.pl-level[b-gugbay8930] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 1px 9px;
    border: 1px solid var(--crm-border, #dee2e6);
    color: var(--crm-text-2, #495057);
    background: var(--crm-bg, #f5f7fa);
}

.pl-level--platinum[b-gugbay8930] { background: #EEF0F4; border-color: #C6CCD6; color: #3E4756; }
.pl-level--gold[b-gugbay8930]     { background: #FBF2DC; border-color: #E3C77E; color: #7A5B12; }
.pl-level--silver[b-gugbay8930]   { background: #F1F3F5; border-color: #CBD2D9; color: #4B5563; }
.pl-level--bronze[b-gugbay8930]   { background: #F7EDE4; border-color: #DDBB9B; color: #7A5030; }

.pl-pay[b-gugbay8930] { font-size: 0.8rem; font-weight: 500; }
.pl-pay--paid[b-gugbay8930]          { color: #1E7A4B; }
.pl-pay--outstanding[b-gugbay8930]   { color: #A6551A; }
.pl-pay--partiallypaid[b-gugbay8930] { color: #A6551A; }
/* /Pages/Portal/PortalLogin.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════
   Member Portal · Sign In
   Editorial split-screen — aurora navy/teal hero + calm light form.
   Deliberately distinct from the staff login's dark glassmorphism.
   ═══════════════════════════════════════════════════════════════════ */

.portal-login[b-61oackk1sj] {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    min-height: 100vh;
    min-height: 100dvh;
    background: var(--crm-bg);
}

/* ─────────────────────────  HERO  ───────────────────────── */

.portal-hero[b-61oackk1sj] {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    color: #fff;
    isolation: isolate;
    background: var(--crm-navy-dark, #091A36);
}

.portal-hero-bg[b-61oackk1sj] {
    position: absolute;
    inset: 0;
    z-index: -1;
}

/* Drifting aurora blobs built from the brand palette */
.portal-aurora[b-61oackk1sj] {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    opacity: 0.55;
    will-change: transform;
}

.portal-aurora-1[b-61oackk1sj] {
    width: 60%;
    height: 60%;
    top: -10%;
    left: -8%;
    background: radial-gradient(circle at center, var(--crm-teal, #00C5A8), transparent 68%);
    animation: portal-drift-1-b-61oackk1sj 18s var(--crm-ease) infinite alternate;
}

.portal-aurora-2[b-61oackk1sj] {
    width: 70%;
    height: 70%;
    bottom: -18%;
    right: -12%;
    background: radial-gradient(circle at center, var(--crm-navy-600, #1E3D70), transparent 66%);
    opacity: 0.85;
    animation: portal-drift-2-b-61oackk1sj 22s var(--crm-ease) infinite alternate;
}

.portal-aurora-3[b-61oackk1sj] {
    width: 45%;
    height: 45%;
    top: 38%;
    left: 36%;
    background: radial-gradient(circle at center, rgba(0, 197, 168, 0.5), transparent 70%);
    animation: portal-drift-3-b-61oackk1sj 16s var(--crm-ease) infinite alternate;
}

/* Faint engraved grid for depth/texture */
.portal-grid[b-61oackk1sj] {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
    background-size: 54px 54px;
    mask-image: radial-gradient(circle at 30% 30%, #000 0%, transparent 75%);
    -webkit-mask-image: radial-gradient(circle at 30% 30%, #000 0%, transparent 75%);
}

/* Film grain overlay */
.portal-grain[b-61oackk1sj] {
    position: absolute;
    inset: 0;
    opacity: 0.4;
    mix-blend-mode: overlay;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.portal-hero-content[b-61oackk1sj] {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: clamp(2rem, 4vw, 4rem);
    gap: 2rem;
}

.portal-hero-brand[b-61oackk1sj] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    animation: crm-fade-in 0.6s var(--crm-ease) both 0.1s;
}

.portal-hero-logo[b-61oackk1sj] {
    height: 40px;
    width: auto;
    /* White plate is opt-in via the branding "Logo backdrop" toggle (.logo-plate). */
}

.portal-hero-appname[b-61oackk1sj] {
    font-weight: 600;
    font-size: 1.05rem;
    letter-spacing: -0.01em;
    color: rgba(255, 255, 255, 0.92);
}

.portal-hero-copy[b-61oackk1sj] {
    margin-top: auto;
    margin-bottom: auto;
    max-width: 30ch;
}

.portal-hero-eyebrow[b-61oackk1sj] {
    text-transform: uppercase;
    letter-spacing: 0.22em;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--crm-teal, #00C5A8);
    margin: 0 0 1.1rem 0;
    animation: crm-slide-up 0.6s var(--crm-ease) both 0.2s;
}

.portal-hero-headline[b-61oackk1sj] {
    font-family: 'Instrument Serif', Georgia, serif;
    font-weight: 400;
    font-size: clamp(2.4rem, 4vw, 3.6rem);
    line-height: 1.04;
    letter-spacing: -0.015em;
    margin: 0 0 1.4rem 0;
    color: #fff;
    animation: crm-slide-up 0.7s var(--crm-ease) both 0.3s;
}

.portal-hero-tagline[b-61oackk1sj] {
    font-size: 1.02rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.72);
    margin: 0 0 1.8rem 0;
    animation: crm-slide-up 0.7s var(--crm-ease) both 0.42s;
}

.portal-hero-points[b-61oackk1sj] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    animation: crm-slide-up 0.7s var(--crm-ease) both 0.54s;
}

.portal-hero-points li[b-61oackk1sj] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    font-size: 0.92rem;
    color: rgba(255, 255, 255, 0.8);
}

.portal-point-dot[b-61oackk1sj] {
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--crm-teal, #00C5A8);
    box-shadow: 0 0 0 4px rgba(0, 197, 168, 0.16);
}

.portal-hero-foot[b-61oackk1sj] {
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.45);
    animation: crm-fade-in 0.8s var(--crm-ease) both 0.7s;
}

/* ─────────────────────────  FORM PANEL  ───────────────────────── */

.portal-form-panel[b-61oackk1sj] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1.5rem, 4vw, 3rem);
}

.portal-form-card[b-61oackk1sj] {
    width: 100%;
    max-width: 400px;
    animation: crm-fade-in 0.6s var(--crm-ease) both 0.25s;
}

.portal-form-brand[b-61oackk1sj] {
    display: none; /* shown only on mobile where the hero collapses */
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 2rem;
}

.portal-form-logo[b-61oackk1sj] {
    height: 36px;
    width: auto;
    border-radius: 8px;
}

.portal-form-appname[b-61oackk1sj] {
    font-weight: 600;
    color: var(--crm-text, #0D2447);
}

.portal-eyebrow[b-61oackk1sj] {
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--crm-teal-600, #009E88);
    margin: 0 0 0.5rem 0;
}

.portal-form-title[b-61oackk1sj] {
    font-family: 'Instrument Serif', Georgia, serif;
    font-weight: 400;
    font-size: 2.1rem;
    line-height: 1.1;
    letter-spacing: -0.015em;
    color: var(--crm-text, #0D2447);
    margin: 0 0 0.4rem 0;
}

.portal-form-sub[b-61oackk1sj] {
    color: var(--crm-text-2, #4A5B78);
    font-size: 0.95rem;
    margin: 0 0 1.75rem 0;
}

/* ── Shared <LoginForm/> styled for a light surface (pierce the child) ── */

.portal-form-card[b-61oackk1sj]  .login-field { margin-bottom: 1.1rem; }

.portal-form-card[b-61oackk1sj]  .form-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--crm-text-2, #4A5B78);
    margin-bottom: 0.35rem;
}

.portal-form-card[b-61oackk1sj]  .form-control {
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: var(--crm-r, 10px);
    color: var(--crm-text, #0D2447);
    padding: 0.7rem 0.85rem;
    transition: border-color var(--crm-fast) ease, box-shadow var(--crm-mid) var(--crm-ease);
}

.portal-form-card[b-61oackk1sj]  .form-control::placeholder {
    color: var(--crm-text-3, #8A9BB5);
}

.portal-form-card[b-61oackk1sj]  .form-control:focus {
    border-color: var(--crm-teal, #00C5A8);
    box-shadow: 0 0 0 4px var(--crm-teal-glow, rgba(0, 197, 168, 0.18));
    outline: none;
}

.portal-form-card[b-61oackk1sj]  .login-btn-primary {
    background: linear-gradient(135deg, var(--crm-navy-600, #1E3D70), var(--crm-teal-600, #009E88)) !important;
    border: none !important;
    color: #fff !important;
    font-weight: 600;
    border-radius: var(--crm-r, 10px);
    padding: 0.72rem 1rem;
    margin-top: 0.4rem;
    transition: transform var(--crm-fast) var(--crm-ease), box-shadow var(--crm-mid) var(--crm-ease), opacity var(--crm-fast) ease;
}

.portal-form-card[b-61oackk1sj]  .login-btn-primary:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: var(--crm-shadow-lg);
}

.portal-form-card[b-61oackk1sj]  .login-btn-primary:active:not(:disabled) {
    transform: translateY(0);
}

.portal-form-card[b-61oackk1sj]  .login-btn-primary:disabled { opacity: 0.6; }

.portal-form-card[b-61oackk1sj]  .login-btn-sso {
    border: 1px solid var(--crm-border, #DCE5F0) !important;
    background: var(--crm-white, #fff) !important;
    color: var(--crm-text, #0D2447) !important;
    border-radius: var(--crm-r, 10px);
    padding: 0.65rem 1rem;
    font-weight: 600;
    transition: border-color var(--crm-fast) ease, background var(--crm-fast) ease;
}

.portal-form-card[b-61oackk1sj]  .login-btn-sso:hover {
    border-color: var(--crm-teal, #00C5A8) !important;
    background: var(--crm-teal-50, rgba(0, 197, 168, 0.08)) !important;
}

.portal-form-card[b-61oackk1sj]  .login-alert {
    border-radius: var(--crm-r, 10px);
    font-size: 0.9rem;
}

.portal-form-card[b-61oackk1sj]  .login-forgot {
    font-size: 0.82rem;
    color: var(--crm-teal-600, #009E88);
    text-decoration: none;
}

.portal-form-card[b-61oackk1sj]  .login-forgot:hover { text-decoration: underline; }

.portal-form-card[b-61oackk1sj]  .login-link {
    color: var(--crm-teal-600, #009E88) !important;
    text-decoration: none !important;
}

.portal-form-card[b-61oackk1sj]  .login-mfa-code {
    letter-spacing: 0.3em;
    font-size: 1.25rem;
    text-align: center;
}

.portal-form-card[b-61oackk1sj]  .validation-message {
    color: #DC2626;
    font-size: 0.82rem;
}

.portal-form-card[b-61oackk1sj]  .login-form-footer { margin-top: 1.5rem; }

.portal-form-card[b-61oackk1sj]  .login-door-switch {
    text-align: center;
    font-size: 0.85rem;
    color: var(--crm-text-3, #8A9BB5);
    margin: 0 0 1.1rem 0;
}

.portal-form-card[b-61oackk1sj]  .login-door-switch a {
    margin-left: 0.4rem;
    white-space: nowrap;
}

.portal-form-card[b-61oackk1sj]  .portal-help {
    text-align: center;
    font-size: 0.85rem;
    color: var(--crm-text-3, #8A9BB5);
    margin: 0;
    padding-top: 1.25rem;
    border-top: 1px solid var(--crm-border, #DCE5F0);
}

/* ─────────────────────────  MOTION  ───────────────────────── */

@keyframes portal-drift-1-b-61oackk1sj {
    from { transform: translate(0, 0) scale(1); }
    to   { transform: translate(8%, 6%) scale(1.12); }
}

@keyframes portal-drift-2-b-61oackk1sj {
    from { transform: translate(0, 0) scale(1); }
    to   { transform: translate(-6%, -8%) scale(1.1); }
}

@keyframes portal-drift-3-b-61oackk1sj {
    from { transform: translate(0, 0) scale(1); }
    to   { transform: translate(-10%, 8%) scale(1.18); }
}

/* ─────────────────────────  RESPONSIVE  ───────────────────────── */

@media (max-width: 980px) {
    .portal-login[b-61oackk1sj] {
        grid-template-columns: 1fr;
        grid-template-rows: auto 1fr;
    }

    .portal-hero[b-61oackk1sj] {
        min-height: 240px;
    }

    .portal-hero-content[b-61oackk1sj] {
        padding: clamp(1.5rem, 5vw, 2.5rem);
        gap: 1.25rem;
    }

    .portal-hero-copy[b-61oackk1sj] { max-width: none; }

    .portal-hero-headline[b-61oackk1sj] { font-size: clamp(1.9rem, 6vw, 2.6rem); }

    .portal-hero-tagline[b-61oackk1sj],
    .portal-hero-points[b-61oackk1sj],
    .portal-hero-foot[b-61oackk1sj] { display: none; }

    .portal-form-brand[b-61oackk1sj] { display: flex; }
}

@media (max-width: 980px) and (min-width: 561px) {
    /* On tablets keep a one-line tagline for a touch more warmth */
    .portal-hero-tagline[b-61oackk1sj] { display: block; margin-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .portal-aurora[b-61oackk1sj] { animation: none; }
    .portal-form-card[b-61oackk1sj],
    .portal-hero-brand[b-61oackk1sj],
    .portal-hero-eyebrow[b-61oackk1sj],
    .portal-hero-headline[b-61oackk1sj],
    .portal-hero-tagline[b-61oackk1sj],
    .portal-hero-points[b-61oackk1sj],
    .portal-hero-foot[b-61oackk1sj] { animation: none; }
}
/* /Pages/Profile.razor.rz.scp.css */
/* ── Profile avatar ─────────────────────────────────── */

.profile-avatar-row[b-v67opqz45u] {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1rem 1.25rem;
    background: linear-gradient(135deg, var(--crm-navy) 0%, var(--crm-navy-600, #1a3d6e) 100%);
    border-radius: var(--crm-r-sm);
    margin-bottom: 0.5rem;
    color: #fff;
}

.profile-avatar-lg[b-v67opqz45u] {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    background: rgba(255,255,255,0.2);
    border: 2px solid rgba(255,255,255,0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    font-weight: 700;
    flex-shrink: 0;
    color: #fff;
}

.profile-full-name[b-v67opqz45u]  { font-size: 1.05rem; font-weight: 600; }
.profile-email[b-v67opqz45u]      { font-size: 0.82rem; opacity: 0.8; }
.profile-title-display[b-v67opqz45u] { font-size: 0.82rem; opacity: 0.7; font-style: italic; margin-top: 0.1rem; }

/* ── Email field (disabled) ─────────────────────────── */

.profile-email-input[b-v67opqz45u] {
    background: var(--crm-bg) !important;
    color: var(--crm-text-2) !important;
    cursor: not-allowed;
}

/* ── Notifications placeholder ──────────────────────── */

.notifications-placeholder[b-v67opqz45u] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 2rem;
    text-align: center;
    gap: 0.75rem;
}

.notif-icon[b-v67opqz45u] {
    font-size: 2.5rem;
    opacity: 0.35;
    margin-bottom: 0.5rem;
}

/* ── Notification preference groups ──────────────── */

.em-notif-groups[b-v67opqz45u] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1rem;
}

.em-notif-group[b-v67opqz45u] {
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    overflow: hidden;
    background: var(--crm-white);
}

.em-notif-group-header[b-v67opqz45u] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 0.9rem;
    background: var(--crm-bg);
    border-bottom: 1px solid var(--crm-border);
    font-family: 'Outfit', sans-serif;
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--crm-text-3);
}

.em-notif-group-header i[b-v67opqz45u] {
    font-size: 0.85rem;
    color: var(--crm-navy-400);
}

.em-notif-group-body[b-v67opqz45u] {
    display: flex;
    flex-direction: column;
}

.em-notif-toggle[b-v67opqz45u] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 0.9rem;
    cursor: pointer;
    transition: background-color var(--crm-fast) ease;
    font-size: 0.85rem;
    color: var(--crm-text);
    border-bottom: 1px solid var(--crm-border);
    margin: 0;
}

.em-notif-toggle:last-child[b-v67opqz45u] { border-bottom: none; }

.em-notif-toggle:hover[b-v67opqz45u] { background: var(--crm-bg); }

/* ── Notification label with hint ──────────────────── */

.notif-label[b-v67opqz45u] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.notif-hint[b-v67opqz45u] {
    font-size: 0.74rem;
    color: var(--crm-text-3);
    line-height: 1.3;
    opacity: 0.8;
}

/* ── Notification section description ──────────────── */

.notif-desc[b-v67opqz45u] {
    font-size: 0.82rem;
    color: var(--crm-text-3);
    margin-bottom: 1.25rem;
    line-height: 1.5;
}

/* ── Save button row ───────────────────────────────── */

.notif-actions[b-v67opqz45u] {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding-top: 1.75rem;
    margin-top: 1.75rem;
    border-top: 1px solid var(--crm-border);
}
/* /Pages/Public/InvoicePay.razor.rz.scp.css */
/* Anonymous payment page. One thing to read and one thing to do — the amount is the
   largest element on the screen and the button is the only affordance. */

.pay-shell[b-99o9genqph] {
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
    background: var(--crm-bg);
}

.pay-card[b-99o9genqph] {
    width: 100%;
    max-width: 460px;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-xl);
    box-shadow: var(--crm-shadow);
    padding: 2.25rem 2rem;
}

.pay-head[b-99o9genqph] {
    text-align: center;
    margin-bottom: 1.75rem;
}

.pay-from[b-99o9genqph] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--crm-text-3);
    margin-bottom: 0.75rem;
}

.pay-amount[b-99o9genqph] {
    font-family: 'Outfit', sans-serif;
    font-size: 2.75rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--crm-navy);
    font-variant-numeric: tabular-nums;
    margin: 0 0 0.4rem;
}

.pay-meta[b-99o9genqph] {
    font-size: 0.84rem;
    color: var(--crm-text-2);
    font-variant-numeric: tabular-nums;
}

.pay-billed[b-99o9genqph] {
    font-size: 0.8rem;
    color: var(--crm-text-3);
    margin-top: 0.35rem;
}

.pay-button[b-99o9genqph] {
    display: block;
    width: 100%;
    border: 0;
    border-radius: var(--crm-r);
    padding: 0.85rem 1rem;
    background: var(--crm-navy);
    color: #fff;
    font-weight: 600;
    font-size: 0.95rem;
    transition: background var(--crm-fast) var(--crm-ease),
                transform var(--crm-fast) var(--crm-ease);
}

.pay-button:hover:not(:disabled)[b-99o9genqph] { background: var(--crm-navy-700); }

/* A physical push, so the click registers before the redirect happens. */
.pay-button:active:not(:disabled)[b-99o9genqph] { transform: translateY(1px); }

.pay-button:disabled[b-99o9genqph] { opacity: 0.7; }

.pay-secure[b-99o9genqph] {
    margin: 0.9rem 0 0;
    text-align: center;
    font-size: 0.74rem;
    line-height: 1.5;
    color: var(--crm-text-3);
}

.pay-secure i[b-99o9genqph] { margin-right: 0.25rem; }

.pay-alt[b-99o9genqph] {
    margin-top: 1.75rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--crm-border);
}

.pay-alt-label[b-99o9genqph] {
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-3);
    margin-bottom: 0.4rem;
}

.pay-alt-body[b-99o9genqph] {
    font-size: 0.82rem;
    line-height: 1.55;
    color: var(--crm-text-2);
}

.pay-alt-body :last-child[b-99o9genqph] { margin-bottom: 0; }

/* ── Terminal states ───────────────────────────────────────────────────── */

.pay-empty[b-99o9genqph] {
    text-align: center;
    padding: 1rem 0;
}

.pay-empty i[b-99o9genqph] {
    font-size: 2.4rem;
    color: var(--crm-text-3);
}

.pay-empty h5[b-99o9genqph] {
    margin: 0.9rem 0 0.5rem;
    color: var(--crm-navy);
}

.pay-empty p[b-99o9genqph] {
    color: var(--crm-text-2);
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
}

/* ── Loading ───────────────────────────────────────────────────────────── */

.pay-skeleton[b-99o9genqph] {
    height: 20px;
    border-radius: var(--crm-r-sm);
    margin: 0 auto 0.9rem;
    width: 60%;
    background: linear-gradient(90deg, var(--crm-bg) 0%, var(--crm-surface-2) 40%, var(--crm-bg) 80%);
    background-size: 300% 100%;
    animation: pay-shimmer-b-99o9genqph 1.4s var(--crm-ease) infinite;
}

.pay-skeleton--short[b-99o9genqph] { width: 35%; height: 40px; }
.pay-skeleton--tall[b-99o9genqph] { width: 100%; height: 48px; margin-top: 1.75rem; }

@keyframes pay-shimmer-b-99o9genqph {
    from { background-position: 100% 0; }
    to { background-position: -100% 0; }
}

@media (prefers-reduced-motion: reduce) {
    .pay-skeleton[b-99o9genqph] { animation: none; background: var(--crm-surface-2); }
    .pay-button[b-99o9genqph] { transition: none; }
}
/* /Pages/Public/InvoicePayThanks.razor.rz.scp.css */
/* Anonymous payment page. One thing to read and one thing to do — the amount is the
   largest element on the screen and the button is the only affordance. */

.pay-shell[b-9gqhctr4pg] {
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
    background: var(--crm-bg);
}

.pay-card[b-9gqhctr4pg] {
    width: 100%;
    max-width: 460px;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-xl);
    box-shadow: var(--crm-shadow);
    padding: 2.25rem 2rem;
}

.pay-head[b-9gqhctr4pg] {
    text-align: center;
    margin-bottom: 1.75rem;
}

.pay-from[b-9gqhctr4pg] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--crm-text-3);
    margin-bottom: 0.75rem;
}

.pay-amount[b-9gqhctr4pg] {
    font-family: 'Outfit', sans-serif;
    font-size: 2.75rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--crm-navy);
    font-variant-numeric: tabular-nums;
    margin: 0 0 0.4rem;
}

.pay-meta[b-9gqhctr4pg] {
    font-size: 0.84rem;
    color: var(--crm-text-2);
    font-variant-numeric: tabular-nums;
}

.pay-billed[b-9gqhctr4pg] {
    font-size: 0.8rem;
    color: var(--crm-text-3);
    margin-top: 0.35rem;
}

.pay-button[b-9gqhctr4pg] {
    display: block;
    width: 100%;
    border: 0;
    border-radius: var(--crm-r);
    padding: 0.85rem 1rem;
    background: var(--crm-navy);
    color: #fff;
    font-weight: 600;
    font-size: 0.95rem;
    transition: background var(--crm-fast) var(--crm-ease),
                transform var(--crm-fast) var(--crm-ease);
}

.pay-button:hover:not(:disabled)[b-9gqhctr4pg] { background: var(--crm-navy-700); }

/* A physical push, so the click registers before the redirect happens. */
.pay-button:active:not(:disabled)[b-9gqhctr4pg] { transform: translateY(1px); }

.pay-button:disabled[b-9gqhctr4pg] { opacity: 0.7; }

.pay-secure[b-9gqhctr4pg] {
    margin: 0.9rem 0 0;
    text-align: center;
    font-size: 0.74rem;
    line-height: 1.5;
    color: var(--crm-text-3);
}

.pay-secure i[b-9gqhctr4pg] { margin-right: 0.25rem; }

.pay-alt[b-9gqhctr4pg] {
    margin-top: 1.75rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--crm-border);
}

.pay-alt-label[b-9gqhctr4pg] {
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-3);
    margin-bottom: 0.4rem;
}

.pay-alt-body[b-9gqhctr4pg] {
    font-size: 0.82rem;
    line-height: 1.55;
    color: var(--crm-text-2);
}

.pay-alt-body :last-child[b-9gqhctr4pg] { margin-bottom: 0; }

/* ── Terminal states ───────────────────────────────────────────────────── */

.pay-empty[b-9gqhctr4pg] {
    text-align: center;
    padding: 1rem 0;
}

.pay-empty i[b-9gqhctr4pg] {
    font-size: 2.4rem;
    color: var(--crm-text-3);
}

.pay-empty h5[b-9gqhctr4pg] {
    margin: 0.9rem 0 0.5rem;
    color: var(--crm-navy);
}

.pay-empty p[b-9gqhctr4pg] {
    color: var(--crm-text-2);
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
}

/* ── Loading ───────────────────────────────────────────────────────────── */

.pay-skeleton[b-9gqhctr4pg] {
    height: 20px;
    border-radius: var(--crm-r-sm);
    margin: 0 auto 0.9rem;
    width: 60%;
    background: linear-gradient(90deg, var(--crm-bg) 0%, var(--crm-surface-2) 40%, var(--crm-bg) 80%);
    background-size: 300% 100%;
    animation: pay-shimmer-b-9gqhctr4pg 1.4s var(--crm-ease) infinite;
}

.pay-skeleton--short[b-9gqhctr4pg] { width: 35%; height: 40px; }
.pay-skeleton--tall[b-9gqhctr4pg] { width: 100%; height: 48px; margin-top: 1.75rem; }

@keyframes pay-shimmer-b-9gqhctr4pg {
    from { background-position: 100% 0; }
    to { background-position: -100% 0; }
}

@media (prefers-reduced-motion: reduce) {
    .pay-skeleton[b-9gqhctr4pg] { animation: none; background: var(--crm-surface-2); }
    .pay-button[b-9gqhctr4pg] { transition: none; }
}
/* /Pages/Public/PacHosting.razor.rz.scp.css */
/* HHFPAC information page — a single centred card, no chrome.
   Self-contained: this page renders in EmptyLayout, outside the app shell, so it
   doesn't inherit the --crm-* branding variables. */

.pac-page[b-b7241tr1gf] {
    --pac-ink: #0d2447;
    --pac-ink-soft: #4a5b76;
    --pac-line: #dfe5ee;
    --pac-accent: #b3202e;
    --pac-wash: #f5f7fa;

    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    padding: 2.5rem 1.25rem;
    background: var(--pac-wash);
    color: var(--pac-ink);
    font-family: 'Outfit', system-ui, sans-serif;
}

.pac-card[b-b7241tr1gf] {
    width: 100%;
    max-width: 46rem;
    background: #fff;
    border: 1px solid var(--pac-line);
    border-radius: 14px;
    padding: 2.5rem;
    box-shadow: 0 1px 2px rgba(13, 36, 71, 0.04), 0 12px 32px rgba(13, 36, 71, 0.06);
}

.pac-logo[b-b7241tr1gf] {
    height: 56px;
    width: auto;
    margin-bottom: 1.75rem;
}

.pac-title[b-b7241tr1gf] {
    font-size: clamp(1.5rem, 4vw, 2rem);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.01em;
    margin: 0 0 0.85rem;
}

.pac-lede[b-b7241tr1gf] {
    font-size: 1.02rem;
    line-height: 1.6;
    color: var(--pac-ink-soft);
    margin: 0 0 2rem;
}

/* The one thing a visitor most needs to know. */
.pac-notice[b-b7241tr1gf] {
    border-left: 3px solid var(--pac-accent);
    background: #fbf6f7;
    border-radius: 0 8px 8px 0;
    padding: 1.1rem 1.25rem;
    margin-bottom: 2rem;
}

.pac-notice-title[b-b7241tr1gf] {
    font-size: 1rem;
    font-weight: 600;
    margin: 0 0 0.35rem;
}

.pac-notice-body[b-b7241tr1gf] {
    font-size: 0.94rem;
    line-height: 1.55;
    color: var(--pac-ink-soft);
    margin: 0;
}

/* Confirmation after a pledge we recorded but did not charge. */
.pac-notice-ok[b-b7241tr1gf] {
    border-left-color: #1a7f4b;
    background: #f3faf6;
}

/* Test mode has to be impossible to miss — a donor must never think a live
   contribution was taken when it wasn't. */
.pac-testmode[b-b7241tr1gf] {
    background: #fff8e5;
    border: 1px solid #f0d493;
    border-radius: 8px;
    padding: 0.7rem 0.9rem;
    font-size: 0.88rem;
    margin-bottom: 1.5rem;
}

/* ── Contribution form ─────────────────────────────────────────────── */

.pac-form[b-b7241tr1gf] {
    padding-top: 1.75rem;
    margin-bottom: 2rem;
    border-top: 1px solid var(--pac-line);
}

.pac-form-title[b-b7241tr1gf] {
    font-size: 1.1rem;
    font-weight: 600;
    margin: 0 0 1.25rem;
}

.pac-field[b-b7241tr1gf] {
    margin-bottom: 1rem;
    min-width: 0; /* lets a grid child shrink instead of overflowing the card */
}

.pac-row[b-b7241tr1gf] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.pac-row-3[b-b7241tr1gf] {
    grid-template-columns: 2fr 1fr 1fr;
}

.pac-label[b-b7241tr1gf] {
    display: block;
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--pac-ink-soft);
    margin-bottom: 0.35rem;
}

/* ::deep because every one of these is an <InputText>/<InputNumber>: the <input> is
   rendered by the child component, so it never carries this page's scope attribute and
   a plain `.pac-input` rule silently matches nothing. Left unstyled they fell back to the
   UA width and ran past the form — which used to be reachable by scrolling and is now
   simply clipped (MainLayout main is overflow:clip). */
[b-b7241tr1gf] .pac-input {
    width: 100%;
    padding: 0.6rem 0.75rem;
    font: inherit;
    font-size: 0.95rem;
    color: var(--pac-ink);
    background: #fff;
    border: 1px solid var(--pac-line);
    border-radius: 8px;
}

[b-b7241tr1gf] .pac-input:focus-visible {
    outline: 2px solid var(--pac-accent);
    outline-offset: 1px;
    border-color: var(--pac-accent);
}

.pac-check[b-b7241tr1gf] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--pac-ink-soft);
    margin-bottom: 1rem;
}

.pac-check input[b-b7241tr1gf] {
    margin-top: 0.2rem;
    flex-shrink: 0;
}

.pac-captcha[b-b7241tr1gf] {
    margin: 1rem 0;
}

.pac-error[b-b7241tr1gf] {
    background: #fdf2f3;
    border: 1px solid #efc4c8;
    border-radius: 8px;
    padding: 0.7rem 0.9rem;
    font-size: 0.9rem;
    color: #8a1721;
    margin-bottom: 1rem;
}

.pac-submit[b-b7241tr1gf] {
    width: 100%;
    padding: 0.8rem 1rem;
    font: inherit;
    font-size: 0.98rem;
    font-weight: 600;
    color: #fff;
    background: var(--pac-accent);
    border: none;
    border-radius: 8px;
    cursor: pointer;
}

.pac-submit:hover:not(:disabled)[b-b7241tr1gf] { background: #971a26; }

.pac-submit:disabled[b-b7241tr1gf] {
    opacity: 0.55;
    cursor: not-allowed;
}

.pac-muted[b-b7241tr1gf] {
    font-size: 0.84rem;
    color: var(--pac-ink-soft);
}

.pac-centered[b-b7241tr1gf] {
    text-align: center;
    margin: 0.75rem 0 0;
}

.pac-ways[b-b7241tr1gf] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: 1.5rem;
    padding-top: 1.75rem;
    border-top: 1px solid var(--pac-line);
}

.pac-way h3[b-b7241tr1gf] {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--pac-ink-soft);
    margin: 0 0 0.5rem;
}

.pac-way p[b-b7241tr1gf] {
    font-size: 0.94rem;
    line-height: 1.6;
    margin: 0;
}

.pac-way a[b-b7241tr1gf] {
    color: var(--pac-accent);
    text-decoration: none;
}

.pac-way a:hover[b-b7241tr1gf],
.pac-way a:focus-visible[b-b7241tr1gf] {
    text-decoration: underline;
}

.pac-legal[b-b7241tr1gf] {
    font-size: 0.78rem;
    line-height: 1.55;
    color: var(--pac-ink-soft);
    margin: 2rem 0 0;
    padding-top: 1.25rem;
    border-top: 1px solid var(--pac-line);
}

.pac-foot[b-b7241tr1gf] {
    font-size: 0.78rem;
    color: var(--pac-ink-soft);
}

@media (max-width: 560px) {
    /* Two- and three-up fields stack rather than squeezing a ZIP box to nothing. */
    .pac-row[b-b7241tr1gf],
    .pac-row-3[b-b7241tr1gf] { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .pac-card[b-b7241tr1gf] { padding: 1.75rem 1.35rem; }
}
/* /Pages/Public/PacThanks.razor.rz.scp.css */
/* Stripe's return page. Blazor CSS isolation is per-component, so this repeats the
   subset of PacHosting's card styling that this page actually uses rather than
   reaching across to it. Renders in EmptyLayout, outside the app shell, so it does
   not inherit the --crm-* branding variables. */

.pac-page[b-y47bqdyx7j] {
    --pac-ink: #0d2447;
    --pac-ink-soft: #4a5b76;
    --pac-line: #dfe5ee;
    --pac-accent: #b3202e;
    --pac-wash: #f5f7fa;

    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    padding: 2.5rem 1.25rem;
    background: var(--pac-wash);
    color: var(--pac-ink);
    font-family: 'Outfit', system-ui, sans-serif;
}

.pac-card[b-y47bqdyx7j] {
    width: 100%;
    max-width: 46rem;
    background: #fff;
    border: 1px solid var(--pac-line);
    border-radius: 14px;
    padding: 2.5rem;
    box-shadow: 0 1px 2px rgba(13, 36, 71, 0.04), 0 12px 32px rgba(13, 36, 71, 0.06);
}

.pac-logo[b-y47bqdyx7j] {
    height: 56px;
    width: auto;
    margin-bottom: 1.75rem;
}

.pac-title[b-y47bqdyx7j] {
    font-size: clamp(1.5rem, 4vw, 2rem);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.01em;
    margin: 0 0 0.85rem;
}

.pac-lede[b-y47bqdyx7j] {
    font-size: 1.02rem;
    line-height: 1.6;
    color: var(--pac-ink-soft);
    margin: 0 0 2rem;
}

.pac-notice[b-y47bqdyx7j] {
    border-left: 3px solid #1a7f4b;
    background: #f3faf6;
    border-radius: 0 8px 8px 0;
    padding: 1.1rem 1.25rem;
    margin-bottom: 2rem;
}

.pac-notice-body[b-y47bqdyx7j] {
    font-size: 0.94rem;
    line-height: 1.55;
    color: var(--pac-ink-soft);
    margin: 0;
}

.pac-ways[b-y47bqdyx7j] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: 1.5rem;
    padding-top: 1.75rem;
    border-top: 1px solid var(--pac-line);
}

.pac-way h3[b-y47bqdyx7j] {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--pac-ink-soft);
    margin: 0 0 0.5rem;
}

.pac-way p[b-y47bqdyx7j] {
    font-size: 0.94rem;
    line-height: 1.6;
    margin: 0;
}

.pac-way a[b-y47bqdyx7j] {
    color: var(--pac-accent);
    text-decoration: none;
}

.pac-way a:hover[b-y47bqdyx7j],
.pac-way a:focus-visible[b-y47bqdyx7j] {
    text-decoration: underline;
}

.pac-legal[b-y47bqdyx7j] {
    font-size: 0.78rem;
    line-height: 1.55;
    color: var(--pac-ink-soft);
    margin: 2rem 0 0;
    padding-top: 1.25rem;
    border-top: 1px solid var(--pac-line);
}

.pac-foot[b-y47bqdyx7j] {
    font-size: 0.78rem;
    color: var(--pac-ink-soft);
}

@media (max-width: 480px) {
    .pac-card[b-y47bqdyx7j] { padding: 1.75rem 1.35rem; }
}
/* /Pages/Reports/FieldHistoryReport.razor.rz.scp.css */
.fhr-page[b-cfbdb1px71] {
    max-width: 1200px;
    margin: 0 auto;
    padding: 1.5rem 0;
    animation: crm-fade-in var(--crm-fast) var(--crm-ease) both;
}

.fhr-back[b-cfbdb1px71] {
    font-size: 0.78rem;
    color: var(--crm-text-3);
    text-decoration: none;
}

.fhr-back:hover[b-cfbdb1px71] { color: var(--crm-teal-600); }

.fhr-title[b-cfbdb1px71] {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--crm-navy);
    margin: 0.4rem 0 0.3rem;
}

.fhr-sub[b-cfbdb1px71] {
    color: var(--crm-text-2);
    font-size: 0.85rem;
    margin: 0;
    max-width: 60ch;
}

.fhr-filters[b-cfbdb1px71] {
    display: flex;
    gap: 0.85rem;
    align-items: flex-end;
    flex-wrap: wrap;
    margin: 1.25rem 0 0.85rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-bg);
}

.fhr-filter[b-cfbdb1px71] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 140px;
}

.fhr-filter label[b-cfbdb1px71] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-3);
    font-weight: 600;
}

.fhr-filter select[b-cfbdb1px71],
.fhr-filter input[b-cfbdb1px71] {
    padding: 0.3rem 0.5rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    background: var(--crm-white);
    font-size: 0.85rem;
}

.fhr-filter-actions[b-cfbdb1px71] {
    flex-direction: row;
    gap: 0.4rem;
    min-width: auto;
}

.fhr-empty[b-cfbdb1px71] {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--crm-text-2);
    background: var(--crm-bg);
    border-radius: var(--crm-r);
}

.fhr-empty-hint[b-cfbdb1px71] {
    font-size: 0.85rem;
    color: var(--crm-text-3);
    margin-top: 0.4rem;
}

.fhr-table-wrap[b-cfbdb1px71] {
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    overflow: hidden;
    background: var(--crm-white);
}

.fhr-table[b-cfbdb1px71] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.fhr-table thead th[b-cfbdb1px71] {
    text-align: left;
    padding: 0.6rem 0.85rem;
    background: var(--crm-bg);
    color: var(--crm-text-3);
    font-weight: 600;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-bottom: 1px solid var(--crm-border);
}

.fhr-table tbody td[b-cfbdb1px71] {
    padding: 0.55rem 0.85rem;
    border-bottom: 1px solid var(--crm-border-2, #e9ecef);
    vertical-align: top;
    animation: crm-slide-in-row var(--crm-fast) var(--crm-ease) both;
    animation-delay: var(--fhr-row-delay, 0ms);
}

.fhr-when[b-cfbdb1px71] {
    display: block;
    color: var(--crm-text);
    font-weight: 500;
}

.fhr-when-sub[b-cfbdb1px71] {
    display: block;
    color: var(--crm-text-3);
    font-size: 0.75rem;
}

.fhr-backdated[b-cfbdb1px71] {
    display: block;
    color: var(--crm-teal-600);
    font-weight: 500;
}

.fhr-entity[b-cfbdb1px71] { color: var(--crm-text-2); }
.fhr-id[b-cfbdb1px71]     { font-family: 'JetBrains Mono', 'Fira Code', monospace; font-size: 0.78rem; color: var(--crm-text-3); }
.fhr-source[b-cfbdb1px71] { color: var(--crm-text-3); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; }

.fhr-added[b-cfbdb1px71]   { color: var(--crm-teal-600); font-weight: 500; }
.fhr-removed[b-cfbdb1px71] { color: #c0392b; font-weight: 500; }
.fhr-was[b-cfbdb1px71]     { color: var(--crm-text-3); font-size: 0.85em; }

.fhr-loadmore[b-cfbdb1px71] {
    margin-top: 0.85rem;
    width: 100%;
}

@media (prefers-reduced-motion: reduce) {
    .fhr-page[b-cfbdb1px71],
    .fhr-table tbody td[b-cfbdb1px71] { animation: none; }
}
/* /Pages/Reports/LegislativeAffairs.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════
   Legislative Affairs — Scoped Styles
   ═══════════════════════════════════════════════════════════ */

/* ── Page header ── */

.la-header[b-rav560ndno] {
    padding-bottom: 1.25rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid var(--crm-border);
}

.la-header-icon[b-rav560ndno] {
    width: 48px;
    height: 48px;
    border-radius: var(--crm-r-sm);
    background: var(--crm-teal-50);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.la-subtitle[b-rav560ndno] {
    font-size: 0.875rem;
    color: var(--crm-text-2);
    margin: 0.25rem 0 0;
    max-width: 540px;
}

/* ── Selector panel ── */

.la-selector-panel[b-rav560ndno] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: 1rem 1.25rem;
    margin-bottom: 1.25rem;
    animation: crm-fade-in var(--crm-mid) var(--crm-ease) both;
}

.la-selector-label[b-rav560ndno] {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--crm-text-3);
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

/* ── Result count pill ── */

.la-result-count[b-rav560ndno] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--crm-text-2);
    background: var(--crm-surface-2);
    border-radius: 20px;
    padding: 0.3rem 0.85rem;
    margin-bottom: 1rem;
}

.la-result-count strong[b-rav560ndno] {
    color: var(--crm-navy);
}

/* ── Legislator cards ── */

.la-leg-card[b-rav560ndno] {
    margin-bottom: 1rem;
    animation: crm-slide-up var(--crm-slow) var(--crm-ease) both;
}

.la-leg-card:nth-child(1)[b-rav560ndno] { animation-delay: 0.00s; }
.la-leg-card:nth-child(2)[b-rav560ndno] { animation-delay: 0.06s; }
.la-leg-card:nth-child(3)[b-rav560ndno] { animation-delay: 0.12s; }
.la-leg-card:nth-child(4)[b-rav560ndno] { animation-delay: 0.18s; }
.la-leg-card:nth-child(5)[b-rav560ndno] { animation-delay: 0.24s; }
.la-leg-card:nth-child(n+6)[b-rav560ndno] { animation-delay: 0.30s; }

.la-leg-header[b-rav560ndno] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.la-leg-identity[b-rav560ndno] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.la-leg-avatar[b-rav560ndno] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--crm-navy);
    color: rgba(255, 255, 255, 0.85);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    flex-shrink: 0;
}

[b-rav560ndno] .la-leg-name {
    font-weight: 600;
    font-size: 0.95rem;
    text-decoration: none;
    color: var(--crm-navy);
    transition: color var(--crm-fast) ease;
}

[b-rav560ndno] .la-leg-name:hover {
    color: var(--crm-teal-600);
}

.la-district-tag[b-rav560ndno] {
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--crm-text-2);
    background: var(--crm-surface-2);
    border-radius: 4px;
    padding: 0.2rem 0.55rem;
}

/* ── Hospital card (result) ── */

.la-hospital-card[b-rav560ndno] {
    animation: crm-slide-up var(--crm-slow) var(--crm-ease) both;
}

.la-hospital-header[b-rav560ndno] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* ── Skeleton loading ── */

.la-skel-block[b-rav560ndno] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    animation: crm-fade-in var(--crm-mid) var(--crm-ease) both;
}

.la-skel-card[b-rav560ndno] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: 1.25rem;
}

.la-skel-bar[b-rav560ndno] {
    height: 14px;
    border-radius: var(--crm-r-sm);
}

.la-skel-bar-lg[b-rav560ndno] {
    height: 18px;
    border-radius: var(--crm-r-sm);
}

/* ── Empty states ── */

.la-empty[b-rav560ndno] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 3rem 1rem;
    color: var(--crm-text-3);
    animation: crm-fade-in var(--crm-mid) var(--crm-ease) both;
}

.la-empty-icon[b-rav560ndno] {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--crm-surface-2);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.25rem;
    opacity: 0.7;
}

.la-empty p[b-rav560ndno] {
    margin: 0;
    font-size: 0.875rem;
}

/* ── Committee badge in hospital table ── */

[b-rav560ndno] .la-committee-badge {
    display: inline-block;
    background: var(--crm-surface-2);
    color: var(--crm-text-2);
    border: 1px solid var(--crm-border);
    border-radius: 20px;
    padding: 0.15rem 0.55rem;
    font-size: 0.72rem;
    font-weight: 500;
    margin: 0.1rem 0.15rem;
    white-space: nowrap;
}
/* /Pages/Reports/ScheduledReportEditor.razor.rz.scp.css */
/* The scheduled report editor: the form on the left in the CRM's card language, the email itself on the
   right, so every choice can be checked against what will actually arrive. */

.se-back[b-rhtdpjgk96] { font-size: .8rem; font-weight: 500; color: var(--crm-text-3); text-decoration: none; }

.se-head[b-rhtdpjgk96] { display: flex; flex-wrap: wrap; align-items: baseline; gap: .6rem; margin-bottom: 1rem; }
.se-head h1[b-rhtdpjgk96] { margin: 0; }
.se-ref[b-rhtdpjgk96] { font-size: .8rem; color: var(--crm-text-3); font-variant-numeric: tabular-nums; }

.se-chip[b-rhtdpjgk96] {
    padding: 0 .5rem;
    border-radius: 999px;
    background: var(--crm-surface-2);
    font-size: .72rem;
    font-weight: 600;
    color: var(--crm-text-2);
}

.se-chip-warn[b-rhtdpjgk96] { background: #FFF4E5; color: #92400E; }

.se-layout[b-rhtdpjgk96] {
    display: grid;
    grid-template-columns: minmax(0, 40rem) minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
}

.se-form[b-rhtdpjgk96] { display: grid; gap: 1rem; }

.se-step[b-rhtdpjgk96] {
    margin: 0;
    padding: 1rem 1.15rem 1.1rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
}

.se-step legend[b-rhtdpjgk96] {
    float: left;
    width: 100%;
    margin: 0 0 .7rem;
    font-size: .95rem;
    font-weight: 600;
    color: var(--crm-text);
}

.se-step legend + *[b-rhtdpjgk96] { clear: both; }

.se-row[b-rhtdpjgk96] { margin-top: .8rem; }
.se-hint[b-rhtdpjgk96] { margin: .35rem 0 0; font-size: .78rem; color: var(--crm-text-2); }
.se-count[b-rhtdpjgk96] { margin: .6rem 0 0; font-size: .82rem; font-weight: 600; color: var(--crm-teal-600); font-variant-numeric: tabular-nums; }
.se-error[b-rhtdpjgk96] { margin: .4rem 0 0; font-size: .85rem; color: #B42318; }
.se-note[b-rhtdpjgk96] { font-size: .85rem; color: var(--crm-teal-600); }

/* ── Report type ── */
.se-types[b-rhtdpjgk96] { display: grid; gap: .5rem; margin-bottom: .9rem; }

.se-type[b-rhtdpjgk96] {
    display: grid;
    gap: .15rem;
    padding: .7rem .85rem;
    border: 1px solid var(--crm-border-2);
    border-radius: var(--crm-r-sm);
    background: var(--crm-white);
    text-align: left;
    cursor: pointer;
}

.se-type-on[b-rhtdpjgk96] { border-color: var(--crm-teal-600); background: var(--crm-teal-50); box-shadow: inset 0 0 0 1px var(--crm-teal-600); }
.se-type:disabled[b-rhtdpjgk96] { cursor: not-allowed; opacity: .6; }
.se-type-name[b-rhtdpjgk96] { font-weight: 600; color: var(--crm-navy); }
.se-type-desc[b-rhtdpjgk96] { font-size: .8rem; color: var(--crm-text-2); }

/* ── Segmented choices and chips ── */
.se-seg[b-rhtdpjgk96] { display: inline-flex; flex-wrap: wrap; }

.se-seg-btn[b-rhtdpjgk96], .se-day[b-rhtdpjgk96] {
    padding: .32rem .75rem;
    border: 1px solid var(--crm-border-2);
    background: var(--crm-white);
    font-size: .82rem;
    font-weight: 500;
    color: var(--crm-text-2);
    cursor: pointer;
}

.se-seg-btn + .se-seg-btn[b-rhtdpjgk96], .se-day + .se-day[b-rhtdpjgk96] { margin-left: -1px; }
.se-seg-btn:first-child[b-rhtdpjgk96], .se-day:first-child[b-rhtdpjgk96] { border-radius: var(--crm-r-sm) 0 0 var(--crm-r-sm); }
.se-seg-btn:last-child[b-rhtdpjgk96], .se-day:last-child[b-rhtdpjgk96] { border-radius: 0 var(--crm-r-sm) var(--crm-r-sm) 0; }
.se-day[b-rhtdpjgk96] { min-width: 2.7rem; padding-inline: .45rem; }

.se-chips[b-rhtdpjgk96] { display: flex; flex-wrap: wrap; gap: .35rem; }

.se-chip-btn[b-rhtdpjgk96] {
    padding: .22rem .65rem;
    border: 1px solid var(--crm-border-2);
    border-radius: 999px;
    background: var(--crm-white);
    font-size: .8rem;
    color: var(--crm-text-2);
    cursor: pointer;
}

.se-on[b-rhtdpjgk96], .se-on:hover[b-rhtdpjgk96] {
    position: relative;
    border-color: var(--crm-teal-600);
    background: var(--crm-teal-50);
    color: var(--crm-navy);
}

.se-seg-btn:focus-visible[b-rhtdpjgk96], .se-day:focus-visible[b-rhtdpjgk96], .se-chip-btn:focus-visible[b-rhtdpjgk96], .se-type:focus-visible[b-rhtdpjgk96] {
    outline: 2px solid var(--crm-teal);
    outline-offset: 1px;
    position: relative;
    z-index: 1;
}

.se-when[b-rhtdpjgk96] { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; margin-top: .8rem; }
.se-days[b-rhtdpjgk96] { display: inline-flex; }
.se-inline[b-rhtdpjgk96] { display: inline-flex; align-items: center; gap: .4rem; margin: 0; font-size: .85rem; color: var(--crm-text-2); }
.se-inline select[b-rhtdpjgk96] { width: auto; }

.se-radio[b-rhtdpjgk96] { display: flex; gap: .6rem; align-items: flex-start; margin: 0 0 .55rem; font-size: .87rem; color: var(--crm-text); cursor: pointer; }
.se-radio input[b-rhtdpjgk96] { margin-top: .3rem; }

/* ── Picked accounts and people ── */
.se-picked[b-rhtdpjgk96], .se-people[b-rhtdpjgk96] { list-style: none; margin: .6rem 0 0; padding: 0; }

.se-picked li[b-rhtdpjgk96], .se-people li[b-rhtdpjgk96] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .2rem .6rem;
    padding: .4rem 0;
    font-size: .88rem;
}

.se-picked li + li[b-rhtdpjgk96], .se-people li + li[b-rhtdpjgk96] { border-top: 1px solid var(--crm-border); }
.se-people[b-rhtdpjgk96] { margin: 0 0 .7rem; }
.se-quiet[b-rhtdpjgk96] { color: var(--crm-text-3); }
.se-warn[b-rhtdpjgk96] { font-size: .78rem; color: #92400E; }

.se-x[b-rhtdpjgk96] {
    margin-left: auto;
    padding: 0 .3rem;
    border: 0;
    background: none;
    color: var(--crm-text-3);
    cursor: pointer;
}

.se-x:hover[b-rhtdpjgk96] { color: #B42318; }

/* ── Buttons, confirm, history ── */
.se-buttons[b-rhtdpjgk96] { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.se-spacer[b-rhtdpjgk96] { flex: 1; }

.se-confirm[b-rhtdpjgk96] {
    padding: .8rem 1rem;
    border: 1px solid #F4C7C3;
    border-radius: var(--crm-r-sm);
    background: #FFFBFA;
}

.se-confirm p[b-rhtdpjgk96] { margin: 0 0 .5rem; font-size: .88rem; }

.se-runs h2[b-rhtdpjgk96] { font-size: .95rem; font-weight: 600; margin: .5rem 0; }
.se-runs ul[b-rhtdpjgk96] { list-style: none; margin: 0; padding: 0; }
.se-runs li[b-rhtdpjgk96] { display: flex; flex-wrap: wrap; gap: .2rem 1rem; padding: .45rem 0; border-top: 1px solid var(--crm-border); font-size: .84rem; }
.se-run-when[b-rhtdpjgk96] { font-weight: 600; color: var(--crm-text); font-variant-numeric: tabular-nums; }

/* ── The email itself ── */
.se-preview[b-rhtdpjgk96] {
    position: sticky;
    top: 1rem;
    display: grid;
    gap: .5rem;
    padding: .9rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-bg);
}

.se-preview-head[b-rhtdpjgk96] { display: flex; justify-content: space-between; align-items: center; gap: .5rem; font-size: .82rem; font-weight: 600; color: var(--crm-text-2); }
.se-preview-subject[b-rhtdpjgk96] { margin: 0; font-size: .9rem; font-weight: 600; color: var(--crm-navy); }

.se-frame[b-rhtdpjgk96] {
    width: 100%;
    height: min(78vh, 900px);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    background: #fff;
}

.se-readonly[b-rhtdpjgk96] { max-width: 44rem; padding: 1.1rem 1.25rem; border: 1px solid var(--crm-border); border-radius: var(--crm-r); background: var(--crm-white); }
.se-readonly p[b-rhtdpjgk96] { font-size: .9rem; }

.se-state[b-rhtdpjgk96] { display: flex; gap: .9rem; padding: 1.2rem 1.25rem; border: 1px solid #F4C7C3; border-radius: var(--crm-r); background: #FFFBFA; }
.se-state > i[b-rhtdpjgk96] { font-size: 1.4rem; color: #B42318; }
.se-state-title[b-rhtdpjgk96] { margin: 0; font-weight: 600; }
.se-state-body[b-rhtdpjgk96] { margin: .25rem 0 .7rem; font-size: .88rem; color: var(--crm-text-2); }

.se-skeleton[b-rhtdpjgk96] { display: grid; grid-template-columns: minmax(0, 40rem) minmax(0, 1fr); gap: 1.5rem; }
.se-skeleton span[b-rhtdpjgk96] { height: 24rem; border-radius: var(--crm-r); background: var(--crm-surface-2); }

@media (max-width: 1100px) {
    .se-layout[b-rhtdpjgk96], .se-skeleton[b-rhtdpjgk96] { grid-template-columns: minmax(0, 1fr); }
    .se-preview[b-rhtdpjgk96] { position: static; }
}

.se-facts[b-rhtdpjgk96] { display: grid; grid-template-columns: auto 1fr; gap: .3rem 1rem; margin: 0 0 1rem; font-size: .9rem; }
.se-facts dt[b-rhtdpjgk96] { font-weight: 600; color: var(--crm-text-2); }
.se-facts dd[b-rhtdpjgk96] { margin: 0; }
/* /Pages/Reports/ScheduledReports.razor.rz.scp.css */
/* Scheduled reports. Quiet rows in the CRM's card language; the one accent is the calendar tile that says
   when each report next lands. */

.sr-back[b-5pfflztlmo] { font-size: .8rem; font-weight: 500; color: var(--crm-text-3); text-decoration: none; }

.sr-head[b-5pfflztlmo] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.sr-head h1[b-5pfflztlmo] { margin-bottom: .25rem; }
.sr-lede[b-5pfflztlmo] { margin: 0; max-width: 62ch; font-size: .9rem; color: var(--crm-text-2); }

.sr-section[b-5pfflztlmo] { margin-bottom: 1.75rem; }
.sr-section h2[b-5pfflztlmo] { font-size: 1rem; font-weight: 600; color: var(--crm-text); margin: 0 0 .6rem; }

.sr-list[b-5pfflztlmo] {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
    overflow: hidden;
}

.sr-row[b-5pfflztlmo] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    padding: .9rem 1.1rem;
}

.sr-row + .sr-row[b-5pfflztlmo] { border-top: 1px solid var(--crm-border); }
.sr-row-quiet .sr-name[b-5pfflztlmo] { color: var(--crm-text-2); }

/* ── The next-send tile ── */
.sr-tile[b-5pfflztlmo] {
    display: grid;
    justify-items: center;
    width: 3.4rem;
    padding: .3rem 0 .35rem;
    border: 1px solid var(--crm-teal-600);
    border-radius: var(--crm-r-sm);
    background: var(--crm-teal-50);
    color: var(--crm-navy);
    line-height: 1.05;
    font-variant-numeric: tabular-nums;
}

.sr-tile-dow[b-5pfflztlmo] { font-size: .66rem; font-weight: 600; color: var(--crm-teal-600); }
.sr-tile-day[b-5pfflztlmo] { font-size: 1.25rem; font-weight: 700; }
.sr-tile-mon[b-5pfflztlmo] { font-size: .66rem; color: var(--crm-text-2); }

.sr-tile-off[b-5pfflztlmo] {
    height: 3.35rem;
    align-content: center;
    border-color: var(--crm-border-2);
    background: var(--crm-bg);
    color: var(--crm-text-3);
    font-size: 1.1rem;
}

.sr-main[b-5pfflztlmo] { min-width: 0; }
.sr-name[b-5pfflztlmo] { font-weight: 600; color: var(--crm-navy); text-decoration: none; }
.sr-name:hover[b-5pfflztlmo] { text-decoration: underline; text-underline-offset: 2px; }

.sr-meta[b-5pfflztlmo] {
    display: flex;
    flex-wrap: wrap;
    gap: .2rem 1rem;
    margin-top: .2rem;
    font-size: .8rem;
    color: var(--crm-text-2);
}

.sr-chip[b-5pfflztlmo] {
    display: inline-flex;
    align-items: center;
    padding: 0 .5rem;
    border-radius: 999px;
    background: var(--crm-surface-2);
    font-size: .72rem;
    font-weight: 600;
    color: var(--crm-text-2);
}

.sr-chip-warn[b-5pfflztlmo] { background: #FFF4E5; color: #92400E; }

.sr-actions[b-5pfflztlmo] { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: .35rem; }

.sr-reassign[b-5pfflztlmo] { display: flex; align-items: center; gap: .5rem; margin-top: .5rem; max-width: 28rem; }

.sr-empty[b-5pfflztlmo] {
    padding: 1.2rem 1.25rem;
    border: 1px dashed var(--crm-border-2);
    border-radius: var(--crm-r);
    background: var(--crm-white);
}

.sr-empty p[b-5pfflztlmo] { margin: 0 0 .7rem; max-width: 60ch; font-size: .9rem; color: var(--crm-text-2); }
.sr-note[b-5pfflztlmo] { font-size: .85rem; color: var(--crm-text-2); }

.sr-flash[b-5pfflztlmo] {
    margin-bottom: 1rem;
    padding: .6rem .9rem;
    border-left: 3px solid var(--crm-teal-600);
    border-radius: var(--crm-r-sm);
    background: var(--crm-teal-50);
    font-size: .88rem;
    color: var(--crm-navy);
}

.sr-flash-error[b-5pfflztlmo] { border-left-color: #B42318; background: #FFFBFA; color: #B42318; }

.sr-state[b-5pfflztlmo] {
    display: flex;
    gap: .9rem;
    align-items: flex-start;
    padding: 1.2rem 1.25rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
}

.sr-state > i[b-5pfflztlmo] { font-size: 1.4rem; color: var(--crm-text-3); }
.sr-state-error[b-5pfflztlmo] { border-color: #F4C7C3; background: #FFFBFA; }
.sr-state-error > i[b-5pfflztlmo] { color: #B42318; }
.sr-state-title[b-5pfflztlmo] { margin: 0; font-weight: 600; color: var(--crm-text); }
.sr-state-body[b-5pfflztlmo] { margin: .25rem 0 .7rem; font-size: .88rem; color: var(--crm-text-2); }

.sr-skeleton[b-5pfflztlmo] { display: grid; gap: .6rem; }
.sr-skeleton span[b-5pfflztlmo] { height: 4.2rem; border-radius: var(--crm-r); background: var(--crm-surface-2); }

@media (prefers-reduced-motion: no-preference) {
    .sr-skeleton span[b-5pfflztlmo] { animation: sr-pulse-b-5pfflztlmo 1.4s ease-in-out infinite; }
}

@keyframes sr-pulse-b-5pfflztlmo { 50% { opacity: .55; } }

@media (max-width: 640px) {
    .sr-row[b-5pfflztlmo] { grid-template-columns: auto minmax(0, 1fr); }
    .sr-actions[b-5pfflztlmo] { grid-column: 1 / -1; justify-content: flex-start; }
}
/* /Pages/Reports/ScheduledReportUnsubscribe.razor.rz.scp.css */
.su[b-4v7179wxxk] {
    max-width: 36rem;
    margin: 2.5rem auto;
    padding: 1.6rem 1.75rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
}

.su h1[b-4v7179wxxk] { font-size: 1.35rem; margin: 0 0 .6rem; }
.su-body[b-4v7179wxxk] { font-size: .92rem; color: var(--crm-text-2); line-height: 1.6; }
.su-buttons[b-4v7179wxxk] { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.su-error[b-4v7179wxxk] { margin: .8rem 0 0; font-size: .85rem; color: #B42318; }
/* /Pages/RoleChanges/RoleChangesInbox.razor.rz.scp.css */
.rci-head[b-0jo0q6vanv] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.rci-head p[b-0jo0q6vanv] {
    max-width: 68ch;
}

.rci-tabs[b-0jo0q6vanv] {
    margin-bottom: 1rem;
}

.rci-filter[b-0jo0q6vanv] {
    display: flex;
    justify-content: flex-end;
    margin-bottom: .75rem;
}

.rci-empty[b-0jo0q6vanv] {
    text-align: center;
    padding: 2.5rem 1rem;
    border: 1px dashed var(--crm-border-2);
    border-radius: var(--crm-r);
    color: var(--crm-text-2);
}

.rci-empty > .bi[b-0jo0q6vanv] {
    font-size: 1.75rem;
    color: var(--crm-text-3);
}

.rci-empty .text-muted[b-0jo0q6vanv] {
    max-width: 52ch;
    margin: .25rem auto 0;
}

.rci-list[b-0jo0q6vanv] {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
}

/* A change reads date-first: the day it lands is the fact the queue is sorted and scanned by. */
.rci-set[b-0jo0q6vanv] {
    display: grid;
    grid-template-columns: 4.25rem 1fr;
    gap: 1rem;
    padding: .9rem 1rem;
}

.rci-set + .rci-set[b-0jo0q6vanv] {
    border-top: 1px solid var(--crm-border);
}

.rci-set-focus[b-0jo0q6vanv] {
    background: var(--crm-teal-50);
}

.rci-date[b-0jo0q6vanv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--crm-border);
    border-top: 4px solid var(--crm-navy-400);
    border-radius: var(--crm-r-sm);
    padding: .3rem 0 .35rem;
    line-height: 1.05;
    align-self: start;
    background: var(--crm-white);
}

.rci-set-scheduled .rci-date[b-0jo0q6vanv] {
    border-top-color: var(--crm-teal);
}

.rci-set-failed .rci-date[b-0jo0q6vanv] {
    border-top-color: var(--bs-danger);
}

.rci-set-cancelled .rci-date[b-0jo0q6vanv] {
    border-top-color: var(--crm-border-2);
    opacity: .7;
}

.rci-date-month[b-0jo0q6vanv] {
    font-size: .72rem;
    color: var(--crm-text-2);
}

.rci-date-day[b-0jo0q6vanv] {
    font-size: 1.45rem;
    font-weight: 700;
    color: var(--crm-navy);
    font-variant-numeric: tabular-nums;
}

.rci-date-year[b-0jo0q6vanv] {
    font-size: .68rem;
    color: var(--crm-text-3);
}

.rci-set-body[b-0jo0q6vanv] {
    min-width: 0;
}

.rci-summary[b-0jo0q6vanv] {
    all: unset;
    cursor: pointer;
    font-weight: 600;
    color: var(--crm-navy);
    line-height: 1.35;
}

.rci-summary:hover[b-0jo0q6vanv] {
    text-decoration: underline;
}

.rci-summary:focus-visible[b-0jo0q6vanv] {
    outline: 2px solid var(--crm-teal);
    outline-offset: 2px;
    border-radius: 2px;
}

.rci-meta[b-0jo0q6vanv] {
    display: flex;
    flex-wrap: wrap;
    gap: .15rem 1rem;
    font-size: .8rem;
    color: var(--crm-text-3);
    margin-top: .2rem;
}

.rci-status[b-0jo0q6vanv] {
    color: var(--crm-text-2);
    font-weight: 500;
}

.rci-set-failed .rci-status[b-0jo0q6vanv] {
    color: var(--bs-danger);
}

.rci-failure[b-0jo0q6vanv] {
    margin-top: .5rem;
    font-size: .82rem;
    color: #842029;
    background: #f8d7da;
    border-radius: var(--crm-r-sm);
    padding: .4rem .6rem;
}

.rci-cancel-note[b-0jo0q6vanv] {
    margin-top: .35rem;
    font-size: .82rem;
    color: var(--crm-text-2);
}

.rci-items[b-0jo0q6vanv] {
    list-style: none;
    padding: 0;
    margin: .6rem 0 0;
    font-size: .85rem;
}

.rci-items li[b-0jo0q6vanv] {
    padding: .2rem 0;
}

.rci-item-note[b-0jo0q6vanv] {
    display: block;
    margin-left: 1.3rem;
    font-size: .78rem;
    color: var(--crm-text-3);
}

.rci-reason[b-0jo0q6vanv] {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem 1rem;
    margin-top: .4rem;
    font-size: .8rem;
    color: var(--crm-text-2);
}

.rci-actions[b-0jo0q6vanv],
.rci-confirm[b-0jo0q6vanv] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin-top: .65rem;
}

.rci-confirm span[b-0jo0q6vanv] {
    font-size: .85rem;
    color: var(--crm-text);
}

.rci-confirm input.form-control[b-0jo0q6vanv] {
    max-width: 16rem;
}

.rci-date-input[b-0jo0q6vanv] {
    max-width: 11rem;
}

.rci-wg[b-0jo0q6vanv] {
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: .8rem 1rem;
    margin-bottom: .75rem;
    background: var(--crm-white);
}

.rci-wg-head[b-0jo0q6vanv] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .25rem .9rem;
}

.rci-wg-name[b-0jo0q6vanv] {
    font-weight: 600;
    color: var(--crm-navy);
}

.rci-wg-rule[b-0jo0q6vanv] {
    font-size: .8rem;
    color: var(--crm-text-3);
}

.rci-wg-count[b-0jo0q6vanv] {
    margin-left: auto;
    font-size: .8rem;
    color: var(--crm-text-2);
}

.rci-wg-lapses[b-0jo0q6vanv] {
    list-style: none;
    padding: 0;
    margin: .5rem 0 .25rem;
    font-size: .85rem;
}

.rci-wg-lapses li[b-0jo0q6vanv] {
    display: flex;
    flex-wrap: wrap;
    gap: .15rem .75rem;
    padding: .15rem 0;
}

.rci-lapse-who[b-0jo0q6vanv] {
    font-weight: 500;
    color: var(--crm-text);
}

.rci-lapse-detail[b-0jo0q6vanv] {
    color: var(--crm-text-2);
}

.rci-lapse-scheduled[b-0jo0q6vanv] {
    color: var(--crm-teal-600);
}

@media (max-width: 575.98px) {
    .rci-head[b-0jo0q6vanv] {
        flex-direction: column;
    }

    .rci-set[b-0jo0q6vanv] {
        grid-template-columns: 3.4rem 1fr;
        gap: .75rem;
    }
}
/* /Pages/Service/ServiceTicketDetail.razor.rz.scp.css */
/* Ticket detail header — a confident, scannable masthead: eyebrow (id + source),
   subject as the hero, a requester identity strip, and a status pill that carries
   the same color language as the queue. */

.sd-detail-head[b-g5hm9tig8g] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.sd-detail-eyebrow[b-g5hm9tig8g] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    font-size: 0.75rem;
    color: var(--crm-text-3);
    margin-bottom: 0.2rem;
}

.sd-detail-id[b-g5hm9tig8g] { font-weight: 600; color: var(--crm-text-2); }

.sd-detail-chip[b-g5hm9tig8g] {
    font-size: 0.58rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.05rem 0.35rem;
    border-radius: 3px;
    background: rgba(var(--crm-navy-rgb, 13,36,71), 0.06);
    color: var(--crm-navy-600, #1E3D70);
}

.sd-detail-source[b-g5hm9tig8g] { display: inline-flex; align-items: center; gap: 0.25rem; }

.sd-detail-title[b-g5hm9tig8g] {
    font-family: 'Outfit', sans-serif;
    font-size: 1.55rem;
    font-weight: 700;
    color: var(--crm-navy);
    line-height: 1.2;
    margin: 0 0 0.45rem;
}

.sd-detail-meta[b-g5hm9tig8g] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    font-size: 0.85rem;
    color: var(--crm-text);
}

.sd-detail-avatar[b-g5hm9tig8g] {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--crm-navy-400, #3A5A96);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'Outfit', sans-serif;
    font-size: 0.6rem;
    font-weight: 700;
    flex: 0 0 auto;
}

.sd-detail-dim[b-g5hm9tig8g] { color: var(--crm-text-3); }

.sd-detail-status[b-g5hm9tig8g] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-family: 'Outfit', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    padding: 0.35rem 0.85rem;
    border-radius: 999px;
    border: 1px solid var(--crm-border);
    background: var(--crm-white);
    color: var(--crm-text);
    box-shadow: var(--crm-shadow-xs);
    white-space: nowrap;
}

.sd-detail-status .sd-dot[b-g5hm9tig8g] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--crm-text-3);
}

.sd-detail-status--new .sd-dot[b-g5hm9tig8g]     { background: var(--crm-navy-400, #3A5A96); }
.sd-detail-status--open .sd-dot[b-g5hm9tig8g]    { background: var(--crm-teal, #00C5A8); }
.sd-detail-status--pending .sd-dot[b-g5hm9tig8g] { background: #E0A106; }
.sd-detail-status--onhold .sd-dot[b-g5hm9tig8g]  { background: var(--crm-text-3); }
.sd-detail-status--resolved[b-g5hm9tig8g] { border-color: #BBF7D0; background: #F0FDF4; color: #15803D; }
.sd-detail-status--resolved .sd-dot[b-g5hm9tig8g] { background: #16A34A; }
.sd-detail-status--closed[b-g5hm9tig8g] { color: var(--crm-text-3); }
.sd-detail-status--closed .sd-dot[b-g5hm9tig8g] { background: var(--crm-text-3); opacity: 0.6; }

/* AI assist card — a subtle teal identity so it reads as "assistive", not chrome. */
.sd-ai-card[b-g5hm9tig8g] {
    border: 1px solid var(--crm-teal-glow, rgba(0,197,168,0.18));
    background:
        linear-gradient(180deg, var(--crm-teal-50, rgba(0,197,168,0.06)) 0%, transparent 60%),
        var(--crm-white);
}
/* /Pages/Service/ServiceTickets.razor.rz.scp.css */
/* Service Desk queue — a calm, scannable helpdesk list in the app's navy/teal
   system. Status + priority carry a consistent color language so an agent reads
   state at a glance; breached rows get a red edge to pull the eye. */

.sd-count[b-enz310d2y1] {
    font-size: 0.8rem;
    color: var(--crm-text-3);
    margin-bottom: 0.5rem;
}

.sd-queue-card[b-enz310d2y1] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-lg);
    box-shadow: var(--crm-shadow-sm);
    overflow: hidden;
}

.sd-table[b-enz310d2y1] {
    width: 100%;
    /* Keep columns readable; the card scrolls horizontally below this width rather than
       crushing cells or overflowing the page body. */
    min-width: 680px;
    border-collapse: collapse;
    font-size: 0.85rem;
}

/* On narrow screens let the wide queue table scroll inside its own card. */
@media (max-width: 720px) {
    .sd-queue-card[b-enz310d2y1] { overflow-x: auto; }
}

.sd-table thead th[b-enz310d2y1] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-3);
    text-align: left;
    padding: 0.6rem 0.8rem;
    background: var(--crm-bg);
    border-bottom: 1px solid var(--crm-border);
    white-space: nowrap;
}

.sd-table tbody td[b-enz310d2y1] {
    padding: 0.7rem 0.8rem;
    border-bottom: 1px solid var(--crm-border);
    vertical-align: middle;
}

.sd-table tbody tr[b-enz310d2y1] {
    cursor: pointer;
    transition: background var(--crm-fast) var(--crm-ease);
}

.sd-table tbody tr:hover[b-enz310d2y1] { background: var(--crm-bg); }
.sd-table tbody tr:last-child td[b-enz310d2y1] { border-bottom: none; }

/* Breached SLA → red left edge. */
.sd-row--breached td:first-child[b-enz310d2y1] { box-shadow: inset 3px 0 0 var(--bs-danger, #dc3545); }

.sd-cell-main[b-enz310d2y1] { min-width: 240px; }

.sd-subject[b-enz310d2y1] {
    font-weight: 600;
    color: var(--crm-navy);
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.sd-sub[b-enz310d2y1] {
    margin-top: 0.1rem;
    font-size: 0.75rem;
    color: var(--crm-text-3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 340px;
}

.sd-id[b-enz310d2y1] { color: var(--crm-text-2); font-weight: 500; }

.sd-internal[b-enz310d2y1] {
    font-size: 0.58rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.05rem 0.35rem;
    border-radius: 3px;
    background: rgba(var(--crm-navy-rgb, 13,36,71), 0.06);
    color: var(--crm-navy-600, #1E3D70);
}

/* Status + priority: dot + label */
.sd-status[b-enz310d2y1], .sd-prio[b-enz310d2y1] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--crm-text-2);
    white-space: nowrap;
}

.sd-dot[b-enz310d2y1] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--crm-text-3);
    flex: 0 0 auto;
}

.sd-status--new .sd-dot[b-enz310d2y1]      { background: var(--crm-navy-400, #3A5A96); }
.sd-status--open .sd-dot[b-enz310d2y1]     { background: var(--crm-teal, #00C5A8); }
.sd-status--pending .sd-dot[b-enz310d2y1]  { background: #E0A106; }
.sd-status--onhold .sd-dot[b-enz310d2y1]   { background: var(--crm-text-3); }
.sd-status--resolved .sd-dot[b-enz310d2y1] { background: #16A34A; }
.sd-status--closed .sd-dot[b-enz310d2y1]   { background: var(--crm-text-3); opacity: 0.6; }

.sd-status--resolved[b-enz310d2y1], .sd-status--closed[b-enz310d2y1] { color: var(--crm-text-3); }

/* Priority: only High/Urgent get weight + color; Low/Normal stay quiet. */
.sd-prio--low[b-enz310d2y1], .sd-prio--normal[b-enz310d2y1] { color: var(--crm-text-3); }
.sd-prio--high .sd-dot[b-enz310d2y1]   { background: #EA580C; }
.sd-prio--urgent .sd-dot[b-enz310d2y1] { background: var(--bs-danger, #dc3545); }
.sd-prio--high[b-enz310d2y1], .sd-prio--urgent[b-enz310d2y1] { color: var(--crm-text); font-weight: 600; }

.sd-team[b-enz310d2y1] { color: var(--crm-text-2); }
.sd-triage[b-enz310d2y1] { color: var(--crm-text-3); font-style: italic; }

.sd-assignee[b-enz310d2y1] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--crm-text);
}

.sd-avatar[b-enz310d2y1] {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--crm-teal-600, #009E88);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'Outfit', sans-serif;
    font-size: 0.62rem;
    font-weight: 700;
    flex: 0 0 auto;
}

.sd-unassigned[b-enz310d2y1] { color: var(--crm-text-3); }

.sd-updated[b-enz310d2y1] { color: var(--crm-text-3); font-size: 0.78rem; white-space: nowrap; }

/* Selected row tint. */
.sd-table tbody tr.sd-row--selected[b-enz310d2y1] { background: var(--crm-teal-50, rgba(0, 197, 168, 0.08)); }

/* Bulk action bar — floats above the queue when rows are selected. */
.sd-bulkbar[b-enz310d2y1] {
    position: fixed;
    left: 50%;
    bottom: 1.25rem;
    transform: translateX(-50%);
    z-index: 1040;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1rem;
    background: var(--crm-navy, #0D2447);
    color: #fff;
    border-radius: var(--crm-r-lg, 12px);
    box-shadow: var(--crm-shadow-lg, 0 8px 30px rgba(0, 0, 0, 0.25));
    max-width: min(94vw, 820px);
    flex-wrap: wrap;
}

.sd-bulkbar .form-select-sm[b-enz310d2y1] { min-width: 130px; }
/* /Pages/Sheets/SheetWorkspace.razor.rz.scp.css */
/* Full-bleed sheet workspace. Reclaims MainLayout's article.content padding (2rem top/bottom,
   2.25rem sides — see MainLayout.razor.css) so the grid runs nearly edge-to-edge, and lays out a
   slim single-row header above a scrolling body. Scoped to this page only. */

.sheet-workspace[b-zdtky07ned] {
    margin: -2rem -2.25rem;
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 58px); /* MainLayout top-row is 58px tall */
}

/* ── Slim consolidated header ─────────────────────────────────────────────── */
.sheet-workspace__header[b-zdtky07ned] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .6rem;
    padding: .4rem .9rem;
    background: var(--crm-white, #fff);
    border-bottom: 1px solid var(--crm-border, #dee2e6);
}

.sheet-workspace__back[b-zdtky07ned] {
    color: var(--crm-text-3, #6c757d);
    text-decoration: none;
    font-size: .82rem;
    white-space: nowrap;
}
.sheet-workspace__back:hover[b-zdtky07ned] { text-decoration: underline; }

.sheet-workspace__title[b-zdtky07ned] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: 600;
    font-size: 1rem;
    color: var(--crm-text, #0D2447);
    white-space: nowrap;
    max-width: 40ch;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Compact segmented tabs (no Bootstrap nav-tabs chrome). */
.sheet-workspace__tabs[b-zdtky07ned] {
    display: inline-flex;
    gap: .15rem;
    margin-left: .35rem;
}
.sheet-workspace__tab[b-zdtky07ned] {
    border: 0;
    background: transparent;
    border-radius: var(--crm-r-sm, 6px);
    padding: .3rem .7rem;
    font-size: .85rem;
    color: var(--crm-text-2, #4A5B78);
    cursor: pointer;
    white-space: nowrap;
}
.sheet-workspace__tab:hover[b-zdtky07ned] { background: var(--crm-bg, #F2F6FC); }
.sheet-workspace__tab.active[b-zdtky07ned] {
    background: var(--crm-surface-2, #E6EEF8);
    color: var(--crm-text, #0D2447);
    font-weight: 600;
}

.sheet-workspace__spacer[b-zdtky07ned] { flex: 1 1 auto; }

/* ── Body: holds the grid / forms / automation panels ─────────────────────── */
.sheet-workspace__body[b-zdtky07ned] {
    flex: 1 1 auto;
    padding: .55rem .9rem 1rem;
    min-width: 0; /* let the grid's own horizontal scroll contain wide tables */
}

/* ── Grid tab: bounded shell so the grid owns the viewport ─────────────────── */
/* Only when a grid is on screen — the Forms and Automation tabs keep the content-height layout
   above. Pairs with the .page / article.content rules in app.css; see the comment there. */
@media (min-width: 641px) {
    .sheet-workspace:has(.sheet-grid)[b-zdtky07ned] {
        flex: 1 1 auto;
        /* Replaces the calc(100vh - 58px) above, which was always slightly wrong: `main` also holds
           the alpha banner and the MFA enrollment banner, so the sheet overshot by their height
           whenever one rendered. Flex measures the real leftover instead. */
        min-height: 0;
        overflow: hidden;
    }

    .sheet-workspace__body:has(.sheet-grid)[b-zdtky07ned] {
        display: flex;
        flex-direction: column;
        min-height: 0;
        /* Deliberately no overflow: the grid child is bounded so nothing escapes, and leaving this
           visible keeps the column-menu popover from being clipped by its own container. */
    }

    /* The grid caps itself for hosts that don't bound it (the portal). This one does. */
    .sheet-workspace__body:has(.sheet-grid)[b-zdtky07ned]  .sheet-grid__scroll {
        max-height: none;
    }
}

/* On small screens the layout uses a hamburger and the content padding is tighter; don't yank the
   sheet outside the viewport there. */
@media (max-width: 640.98px) {
    .sheet-workspace[b-zdtky07ned] { margin: 0; min-height: 0; }
    .sheet-workspace__header[b-zdtky07ned] { position: static; }
}
/* /Pages/Staff/StaffDetail.razor.rz.scp.css */
/* ── Header ─────────────────────────────────────────── */

.cd-header[b-61dus1e0hs] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1.5rem;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    box-shadow: var(--crm-shadow-xs);
}

.cd-header-left[b-61dus1e0hs] {
    min-width: 0;
    flex: 1;
}

.cd-header[b-61dus1e0hs]  h1 {
    margin: 0 0 0.4rem;
    font-size: 1.6rem;
}

.cd-meta[b-61dus1e0hs] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.75rem;
    margin-top: 4px;
}

.cd-meta-item[b-61dus1e0hs] {
    font-size: 0.85rem;
    color: var(--crm-text-2);
}

/* Type / role chips — same palette family as other detail pages.
   Roles get a distinctive accent so they read separately from
   the department chip. */
.cd-types[b-61dus1e0hs] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
}

.cd-type-chip[b-61dus1e0hs] {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 10px;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 999px;
    border: 1px solid transparent;
}

.cd-type-default[b-61dus1e0hs] {
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-text-2);
    border-color: var(--crm-border, #d8dee7);
}

.cd-type-role[b-61dus1e0hs] {
    background: rgba(99, 102, 241, 0.10);
    color: #4338ca;
    border-color: rgba(99, 102, 241, 0.25);
}

.cd-actions[b-61dus1e0hs] {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
    padding-top: 0.15rem;
    align-items: center;
}

/* ── Tab transitions ────────────────────────────────── */

.cd-tab-content[b-61dus1e0hs] {
    animation: cd-tab-fade-in-b-61dus1e0hs 180ms cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes cd-tab-fade-in-b-61dus1e0hs {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0);   }
}

@media (prefers-reduced-motion: reduce) {
    .cd-tab-content[b-61dus1e0hs] {
        animation: none;
    }
}

/* ── Info-tab utility row (show-all-fields toggle) ──── */

.cd-info-utility-row[b-61dus1e0hs] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.cd-info-utility-left[b-61dus1e0hs] {
    flex: 1 1 auto;
    min-width: 0;
}

.cd-info-utility-right[b-61dus1e0hs] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    margin-left: auto;
}

.cd-show-all-toggle[b-61dus1e0hs] {
    background: none;
    border: 1px solid transparent;
    color: var(--crm-text-3, #9ca3af);
    width: 32px;
    height: 32px;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
}

.cd-show-all-toggle:hover[b-61dus1e0hs] {
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-navy, #0f172a);
    border-color: var(--crm-border, #d8dee7);
}

/* ── Info panel & sections ─────────────────────────── */

.cd-info-panel[b-61dus1e0hs] {
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: var(--crm-r, 10px);
    padding: 22px 26px;
    box-shadow: var(--crm-shadow-xs);
}

.cd-prop-section-title[b-61dus1e0hs] {
    margin: 0 0 10px 0;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--crm-navy, #0f172a);
    display: flex;
    align-items: center;
    gap: 8px;
}

.cd-prop-section-title[b-61dus1e0hs]::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
    flex-shrink: 0;
}

.cd-prop-empty[b-61dus1e0hs] {
    color: var(--crm-text-3, #9ca3af);
}

/* Inline chip cluster (used in the Roles property value). */
.cd-inline-chips[b-61dus1e0hs] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
}

/* ── Animatable property rows ───────────────────────── */

.cd-anim-dl[b-61dus1e0hs] {
    display: flex;
    flex-direction: column;
}

.cd-anim-row[b-61dus1e0hs] {
    display: grid;
    grid-template-rows: 1fr;
    opacity: 1;
    transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1),
                opacity 160ms ease,
                margin 220ms ease;
}

.cd-anim-row.is-hidden[b-61dus1e0hs] {
    grid-template-rows: 0fr;
    opacity: 0;
    margin-top: 0;
    margin-bottom: 0;
    pointer-events: none;
}

.cd-anim-row-inner[b-61dus1e0hs] {
    min-height: 0;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(140px, max-content) 1fr;
    align-items: baseline;
    column-gap: 24px;
    padding: 5px 0;
    font-size: 0.85rem;
}

.cd-anim-row-inner > dt[b-61dus1e0hs] {
    margin: 0;
    font-weight: 500;
    color: var(--crm-text-3, #9ca3af);
    white-space: nowrap;
}

.cd-anim-row-inner > dd[b-61dus1e0hs] {
    margin: 0;
    color: var(--crm-text-1, #1f2937);
    line-height: 1.45;
}

.cd-anim-row-inner > dd a[b-61dus1e0hs] {
    color: var(--crm-teal-700, #00735f);
    text-decoration: none;
}

.cd-anim-row-inner > dd a:hover[b-61dus1e0hs] {
    color: var(--crm-teal, #00C5A8);
    text-decoration: underline;
}

.cd-anim-row.is-hidden .cd-anim-row-inner[b-61dus1e0hs] {
    padding-top: 0;
    padding-bottom: 0;
}

/* ── Tab head with title + search ──────────────────── */

.cd-tab-head[b-61dus1e0hs] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 10px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    gap: 12px;
    flex-wrap: wrap;
}

.cd-tab-title[b-61dus1e0hs] {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--crm-navy, #0f172a);
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.cd-tab-title[b-61dus1e0hs]::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
    flex-shrink: 0;
}

.cd-tab-count[b-61dus1e0hs] {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--crm-text-2, #4b5563);
    background: var(--crm-bg, #f5f7fa);
    padding: 2px 8px;
    border-radius: 999px;
    letter-spacing: 0;
}

.cd-tab-search[b-61dus1e0hs] {
    flex: 1 1 auto;
    max-width: 320px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: var(--crm-bg, #f5f7fa);
    border: 1px solid transparent;
    border-radius: 6px;
    transition: background 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

.cd-tab-search:focus-within[b-61dus1e0hs] {
    background: var(--crm-white, #fff);
    border-color: var(--crm-border-2, #c5d3e8);
    box-shadow: 0 0 0 3px rgba(0, 197, 168, 0.12);
}

.cd-tab-search i[b-61dus1e0hs] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.85rem;
}

.cd-tab-search input[b-61dus1e0hs] {
    border: none;
    background: transparent;
    outline: none;
    width: 100%;
    font-size: 0.85rem;
    color: var(--crm-text-1, #1f2937);
}

.cd-tab-search input[b-61dus1e0hs]::placeholder {
    color: var(--crm-text-3, #9ca3af);
}

.cd-empty[b-61dus1e0hs] {
    text-align: center;
    padding: 36px 16px;
    color: var(--crm-text-3, #9ca3af);
}

.cd-empty i[b-61dus1e0hs] {
    font-size: 1.75rem;
    display: block;
    margin-bottom: 8px;
    color: var(--crm-border-2, #c5d3e8);
}

.cd-empty p[b-61dus1e0hs] {
    margin: 0;
    font-size: 0.85rem;
}

/* ── Activity rows (Activities tab) ─────────────────── */

.cd-activity-rows[b-61dus1e0hs] {
    display: flex;
    flex-direction: column;
}

.cd-activity-row[b-61dus1e0hs] {
    display: grid;
    grid-template-columns: 50px 1fr;
    align-items: center;
    gap: 14px;
    padding: 10px 4px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
}

.cd-activity-row:last-child[b-61dus1e0hs] {
    border-bottom: none;
}

.cd-activity-row.is-done .cd-activity-subject[b-61dus1e0hs] {
    color: var(--crm-text-3, #9ca3af);
    text-decoration: line-through;
}

.cd-activity-date[b-61dus1e0hs] {
    text-align: center;
    color: var(--crm-text-2, #4b5563);
    padding: 6px 8px;
    background: var(--crm-bg, #f5f7fa);
    border-radius: 8px;
    line-height: 1;
}

.cd-activity-date-day[b-61dus1e0hs] {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--crm-navy, #0f172a);
}

.cd-activity-date-mon[b-61dus1e0hs] {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 2px;
}

.cd-activity-main[b-61dus1e0hs] {
    min-width: 0;
}

.cd-activity-head[b-61dus1e0hs] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.cd-activity-subject[b-61dus1e0hs] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
}

.cd-activity-sub[b-61dus1e0hs] {
    font-size: 0.75rem;
    color: var(--crm-text-3, #9ca3af);
    margin-top: 2px;
}

.cd-activity-sub-sep[b-61dus1e0hs] {
    margin: 0 6px;
    color: var(--crm-border-2, #c5d3e8);
}

/* Activity type chips — soft pill colors per type. Defaults to neutral
   for unknown ActivityType values. */

.cd-activity-type-chip[b-61dus1e0hs] {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 8px;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: 999px;
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-text-2, #4b5563);
    border: 1px solid var(--crm-border, #d8dee7);
}

.cd-activity-type-call[b-61dus1e0hs] {
    background: rgba(0, 197, 168, 0.10);
    color: var(--crm-teal-700, #00735f);
    border-color: rgba(0, 197, 168, 0.25);
}

.cd-activity-type-email[b-61dus1e0hs] {
    background: rgba(99, 102, 241, 0.10);
    color: #4338ca;
    border-color: rgba(99, 102, 241, 0.25);
}

.cd-activity-type-meeting[b-61dus1e0hs] {
    background: rgba(217, 119, 6, 0.10);
    color: #b45309;
    border-color: rgba(217, 119, 6, 0.25);
}

.cd-activity-type-task[b-61dus1e0hs] {
    background: rgba(14, 116, 144, 0.10);
    color: #0e7490;
    border-color: rgba(14, 116, 144, 0.25);
}

.cd-activity-type-note[b-61dus1e0hs] {
    background: rgba(31, 41, 55, 0.06);
    color: var(--crm-navy, #0f172a);
    border-color: rgba(31, 41, 55, 0.16);
}

/* Status chips (Done badge inside activity head) */
.cd-chip[b-61dus1e0hs] {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 8px;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: 999px;
    border: 1px solid transparent;
}

.cd-chip-success[b-61dus1e0hs] {
    background: rgba(0, 197, 168, 0.12);
    color: var(--crm-teal-700, #00735f);
    border-color: rgba(0, 197, 168, 0.32);
}

/* ── Embedded RelatedObjectsPanel ─────────────────────
   Strip the navy header, adopt the section-title style with teal
   accent bar. */

.cd-panel-section[b-61dus1e0hs] {
    min-width: 0;
}

.cd-panel-section[b-61dus1e0hs]  .rop-container {
    background: transparent;
    border: none;
    box-shadow: none;
    border-radius: 0;
}

.cd-panel-section[b-61dus1e0hs]  .rop-header {
    background: transparent;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    border-radius: 0;
    padding: 0 0 10px 0;
    margin-bottom: 14px;
}

.cd-panel-section[b-61dus1e0hs]  .rop-title {
    color: var(--crm-navy, #0f172a);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    font-weight: 600;
    text-transform: none;
    display: flex;
    align-items: center;
    gap: 8px;
}

.cd-panel-section[b-61dus1e0hs]  .rop-title::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
    flex-shrink: 0;
    display: inline-block;
}

.cd-panel-section[b-61dus1e0hs]  .rop-header .btn-primary {
    background: var(--crm-teal, #00C5A8);
    border-color: var(--crm-teal, #00C5A8);
    color: var(--crm-white, #fff);
    font-weight: 600;
    font-size: 0.78rem;
}

.cd-panel-section[b-61dus1e0hs]  .rop-header .btn-primary:hover {
    background: var(--crm-teal-600, #009E88);
    border-color: var(--crm-teal-600, #009E88);
}

.cd-panel-section[b-61dus1e0hs]  .rop-item {
    border-bottom-color: var(--crm-border);
    padding: 10px 14px;
}

.cd-panel-section[b-61dus1e0hs]  .rop-item:hover {
    background: var(--crm-teal-50);
}

.cd-panel-section[b-61dus1e0hs]  .rop-item-name {
    color: var(--crm-navy);
    font-weight: 600;
}

.cd-panel-section[b-61dus1e0hs]  .rop-empty {
    padding: 20px 14px;
    text-align: center;
    color: var(--crm-text-3);
}

/* ── Responsive ─────────────────────────────────────── */

@media (max-width: 575.98px) {
    .cd-header[b-61dus1e0hs] {
        flex-direction: column;
        gap: 0.75rem;
    }
}
/* /Pages/Visits/VisitDetail.razor.rz.scp.css */
/* ── Header ─────────────────────────────────────────── */

.vd-header[b-iapgeczbuc] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1.5rem;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    box-shadow: var(--crm-shadow-xs);
}

.vd-header-left[b-iapgeczbuc] {
    min-width: 0;
    flex: 1;
}

.vd-header[b-iapgeczbuc]  h1 {
    margin: 0.15rem 0 0.5rem;
    font-size: 1.6rem;
}

.vd-meta[b-iapgeczbuc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1.25rem;
    margin-top: 4px;
}

.vd-meta-item[b-iapgeczbuc] {
    font-size: 0.85rem;
    color: var(--crm-text-2);
}

.vd-meta-muted[b-iapgeczbuc] {
    color: var(--crm-text-3, #9ca3af);
}

/* ── Labeled fact rows (header narrative grid) ───────────
   Two-column layout: small uppercase label, value. Reads
   cleanly even when a viewer hasn't seen the tool before.
   Single column under 480px so labels don't crowd values
   into 30-char ribbons on phones. */

.vd-facts[b-iapgeczbuc] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.35rem 1rem;
    margin: 0.4rem 0 0;
    max-width: 760px;
}

.vd-fact-row[b-iapgeczbuc] {
    display: contents;
}

.vd-facts dt[b-iapgeczbuc] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--crm-text-3, #6b7280);
    margin: 0;
    padding-top: 2px;
    white-space: nowrap;
}

.vd-facts dd[b-iapgeczbuc] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--crm-text);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.vd-fact-chips[b-iapgeczbuc] {
    gap: 0.3rem;
}

.vd-audience-chip[b-iapgeczbuc] {
    font-size: 0.78rem;
    font-weight: 500;
    padding: 0.3rem 0.5rem;
}

@media (max-width: 480px) {
    .vd-facts[b-iapgeczbuc] {
        grid-template-columns: 1fr;
        gap: 0.15rem 0;
    }

    .vd-fact-row[b-iapgeczbuc] {
        margin-bottom: 0.5rem;
    }
}

/* Destructive item inside the header's kebab menu. */
.vd-action-danger[b-iapgeczbuc] {
    color: var(--bs-danger, #dc3545) !important;
}

.vd-action-danger:hover[b-iapgeczbuc] {
    color: var(--bs-danger, #dc3545) !important;
    background: rgba(220, 53, 69, 0.08) !important;
}

.vd-action-danger i[b-iapgeczbuc] {
    color: inherit !important;
}

.vd-actions[b-iapgeczbuc] {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
    padding-top: 0.15rem;
    align-items: center;
}

/* ── Show-all-fields toggle ─────────────────────────── */

.vd-utility-row[b-iapgeczbuc] {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 10px;
}

.vd-show-all-toggle[b-iapgeczbuc] {
    background: none;
    border: 1px solid transparent;
    color: var(--crm-text-3, #9ca3af);
    width: 32px;
    height: 32px;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
}

.vd-show-all-toggle:hover[b-iapgeczbuc] {
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-navy, #0f172a);
    border-color: var(--crm-border, #d8dee7);
}

/* ── Info panel & sections ─────────────────────────── */

.vd-info-panel[b-iapgeczbuc] {
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: var(--crm-r, 10px);
    padding: 22px 26px;
    box-shadow: var(--crm-shadow-xs);
}

.vd-prop-section-spaced[b-iapgeczbuc] {
    margin-top: 22px;
}

.vd-prop-section-head[b-iapgeczbuc] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
}

.vd-prop-section-head .vd-prop-section-title[b-iapgeczbuc] {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
    flex: 1 1 auto;
}

.vd-prop-section-title[b-iapgeczbuc],
.vd-section-title[b-iapgeczbuc] {
    margin: 0 0 10px 0;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--crm-navy, #0f172a);
    display: flex;
    align-items: center;
    gap: 8px;
}

.vd-prop-section-title[b-iapgeczbuc]::before,
.vd-section-title[b-iapgeczbuc]::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
    flex-shrink: 0;
}

.vd-prop-notes[b-iapgeczbuc] {
    margin: 0;
    color: var(--crm-text-1, #1f2937);
    font-size: 0.85rem;
    line-height: 1.5;
    white-space: pre-wrap;
}

/* Status chips (Follow-up section head) */
.vd-chip[b-iapgeczbuc] {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 10px;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 999px;
    border: 1px solid transparent;
}

.vd-chip-success[b-iapgeczbuc] {
    background: rgba(0, 197, 168, 0.12);
    color: var(--crm-teal-700, #00735f);
    border-color: rgba(0, 197, 168, 0.32);
}

.vd-chip-danger[b-iapgeczbuc] {
    background: rgba(220, 53, 69, 0.10);
    color: #b91c1c;
    border-color: rgba(220, 53, 69, 0.25);
}

/* ── Bills discussed (ga.VisitBillLink) ────────── */

.vd-bill-chips[b-iapgeczbuc] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.vd-bill-chip[b-iapgeczbuc] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    padding: 3px 4px 3px 10px;
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 999px;
    background: var(--crm-surface-muted, #f8f9fa);
    font-size: 0.8rem;
}

.vd-bill-chip a[b-iapgeczbuc] {
    font-weight: 600;
    white-space: nowrap;
}

.vd-bill-chip-title[b-iapgeczbuc] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
    color: var(--crm-text-muted, #6c757d);
}

.vd-bill-chip-remove[b-iapgeczbuc] {
    border: 0;
    background: transparent;
    color: var(--crm-text-muted, #6c757d);
    padding: 0 4px;
    line-height: 1;
    border-radius: 999px;
}

.vd-bill-chip-remove:hover[b-iapgeczbuc] {
    color: #b91c1c;
    background: rgba(220, 53, 69, 0.10);
}

/* ── Section head with title + search input ────────── */

.vd-section-head[b-iapgeczbuc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 8px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    gap: 12px;
    flex-wrap: wrap;
}

.vd-section-head .vd-section-title[b-iapgeczbuc] {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.vd-section-search[b-iapgeczbuc] {
    flex: 1 1 auto;
    max-width: 320px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: var(--crm-bg, #f5f7fa);
    border: 1px solid transparent;
    border-radius: 6px;
    transition: background 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

.vd-section-search:focus-within[b-iapgeczbuc] {
    background: var(--crm-white, #fff);
    border-color: var(--crm-border-2, #c5d3e8);
    box-shadow: 0 0 0 3px rgba(0, 197, 168, 0.12);
}

.vd-section-search i[b-iapgeczbuc] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.85rem;
}

.vd-section-search input[b-iapgeczbuc] {
    border: none;
    background: transparent;
    outline: none;
    width: 100%;
    font-size: 0.85rem;
    color: var(--crm-text-1, #1f2937);
}

.vd-section-search input[b-iapgeczbuc]::placeholder {
    color: var(--crm-text-3, #9ca3af);
}

/* ── Animatable property rows ───────────────────────── */

.vd-anim-dl[b-iapgeczbuc] {
    display: flex;
    flex-direction: column;
}

.vd-anim-row[b-iapgeczbuc] {
    display: grid;
    grid-template-rows: 1fr;
    opacity: 1;
    transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1),
                opacity 160ms ease,
                margin 220ms ease;
}

.vd-anim-row.is-hidden[b-iapgeczbuc] {
    grid-template-rows: 0fr;
    opacity: 0;
    margin-top: 0;
    margin-bottom: 0;
    pointer-events: none;
}

.vd-anim-row-inner[b-iapgeczbuc] {
    min-height: 0;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(140px, max-content) 1fr;
    align-items: baseline;
    column-gap: 24px;
    padding: 5px 0;
    font-size: 0.85rem;
}

.vd-anim-row-inner > dt[b-iapgeczbuc],
.vd-anim-row-inner[b-iapgeczbuc]  dt {
    margin: 0;
    font-weight: 500;
    color: var(--crm-text-3, #9ca3af);
    white-space: nowrap;
}

.vd-anim-row-inner > dd[b-iapgeczbuc],
.vd-anim-row-inner[b-iapgeczbuc]  dd {
    margin: 0;
    color: var(--crm-text-1, #1f2937);
    line-height: 1.45;
}

.vd-anim-row-inner > dd a[b-iapgeczbuc],
.vd-anim-row-inner[b-iapgeczbuc]  dd a {
    color: var(--crm-teal-700, #00735f);
    text-decoration: none;
}

.vd-anim-row-inner > dd a:hover[b-iapgeczbuc],
.vd-anim-row-inner[b-iapgeczbuc]  dd a:hover {
    color: var(--crm-teal, #00C5A8);
    text-decoration: underline;
}

.vd-anim-row.is-hidden .vd-anim-row-inner[b-iapgeczbuc] {
    padding-top: 0;
    padding-bottom: 0;
}

.vd-anim-row-inner > dt[class*="col-"][b-iapgeczbuc],
.vd-anim-row-inner > dd[class*="col-"][b-iapgeczbuc],
.vd-anim-row-inner[b-iapgeczbuc]  dt[class*="col-"],
.vd-anim-row-inner[b-iapgeczbuc]  dd[class*="col-"] {
    flex: unset;
    max-width: unset;
    padding: 0;
}

/* ── Attendees / Staff grid ─────────────────────────── */

.vd-panels-grid[b-iapgeczbuc] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    align-items: start;
}

.vd-panel-section[b-iapgeczbuc] {
    min-width: 0;
}

/* Embedded RelatedObjectsPanel — strip its navy header, adopt the
   new section-header pattern with teal accent bar. */

.vd-panel-section[b-iapgeczbuc]  .rop-container {
    background: transparent;
    border: none;
    box-shadow: none;
    border-radius: 0;
}

.vd-panel-section[b-iapgeczbuc]  .rop-header {
    background: transparent;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    border-radius: 0;
    padding: 0 0 10px 0;
    margin-bottom: 14px;
}

.vd-panel-section[b-iapgeczbuc]  .rop-title {
    color: var(--crm-navy, #0f172a);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    font-weight: 600;
    text-transform: none;
    display: flex;
    align-items: center;
    gap: 8px;
}

.vd-panel-section[b-iapgeczbuc]  .rop-title::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
    flex-shrink: 0;
    display: inline-block;
}

.vd-panel-section[b-iapgeczbuc]  .rop-header .btn-primary {
    background: var(--crm-teal, #00C5A8);
    border-color: var(--crm-teal, #00C5A8);
    color: var(--crm-white, #fff);
    font-weight: 600;
    font-size: 0.78rem;
}

.vd-panel-section[b-iapgeczbuc]  .rop-header .btn-primary:hover {
    background: var(--crm-teal-600, #009E88);
    border-color: var(--crm-teal-600, #009E88);
}

.vd-panel-section[b-iapgeczbuc]  .rop-item {
    border-bottom-color: var(--crm-border);
    padding: 10px 14px;
}

.vd-panel-section[b-iapgeczbuc]  .rop-item:hover {
    background: var(--crm-teal-50);
}

.vd-panel-section[b-iapgeczbuc]  .rop-item-name {
    color: var(--crm-navy);
    font-weight: 600;
}

.vd-panel-section[b-iapgeczbuc]  .rop-empty {
    padding: 20px 14px;
    text-align: center;
    color: var(--crm-text-3);
}

/* ── Responsive ─────────────────────────────────────── */

@media (max-width: 767.98px) {
    .vd-panels-grid[b-iapgeczbuc] {
        grid-template-columns: 1fr;
    }

    .vd-header[b-iapgeczbuc] {
        flex-direction: column;
        gap: 0.75rem;
    }

    .vd-actions[b-iapgeczbuc] {
        align-self: flex-end;
    }
}
/* /Pages/Visits/VisitList.razor.rz.scp.css */
/* People cells (member contacts, WSHA staff). Names are the point of the row,
   but they shouldn't crowd out Purpose — cap the width and ellipsize. */
.vl-people[b-brd0ro2hkf] {
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vl-people-more[b-brd0ro2hkf] {
    margin-left: 4px;
    font-size: 0.75rem;
    color: var(--crm-text-3, #6c757d);
    cursor: default;
}
/* /Pages/Workgroups/WorkgroupDetail.razor.rz.scp.css */
/* ── Header ─────────────────────────────────────────── */

.wg-header[b-cs0ifkrguu] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1.5rem;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    box-shadow: var(--crm-shadow-xs);
}

.wg-header-left[b-cs0ifkrguu] {
    min-width: 0;
    flex: 1;
}

.wg-header[b-cs0ifkrguu]  h1 {
    margin: 0.15rem 0 0.5rem;
    font-size: 1.6rem;
}

.wg-meta[b-cs0ifkrguu] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1.25rem;
    margin-top: 4px;
}

.wg-meta-item[b-cs0ifkrguu] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
    color: var(--crm-text-2);
    text-decoration: none;
}

.wg-meta-link[b-cs0ifkrguu] {
    color: var(--crm-teal-700, #00735f);
    transition: color var(--crm-fast, 140ms) ease;
}

.wg-meta-link:hover[b-cs0ifkrguu] {
    color: var(--crm-teal, #00C5A8);
    text-decoration: underline;
}

.wg-meta-link .bi[b-cs0ifkrguu] {
    color: var(--crm-teal-600, #009E88);
    font-size: 0.95rem;
}

.wg-description[b-cs0ifkrguu] {
    flex-basis: 100%;
    color: var(--crm-text-2);
    line-height: 1.5;
}

/* Destructive item inside the header's kebab menu. */
.wg-action-danger[b-cs0ifkrguu] {
    color: var(--bs-danger, #dc3545) !important;
}

.wg-action-danger:hover[b-cs0ifkrguu] {
    color: var(--bs-danger, #dc3545) !important;
    background: rgba(220, 53, 69, 0.08) !important;
}

.wg-action-danger i[b-cs0ifkrguu] {
    color: inherit !important;
}

.wg-actions[b-cs0ifkrguu] {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
    padding-top: 0.15rem;
    align-items: center;
}

/* ── Utility row (show-all-fields toggle) ─────────────
   Only renders when there's at least one empty custom field to hide. */

.wg-utility-row[b-cs0ifkrguu] {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 10px;
}

.wg-show-all-toggle[b-cs0ifkrguu] {
    background: none;
    border: 1px solid transparent;
    color: var(--crm-text-3, #9ca3af);
    width: 32px;
    height: 32px;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
}

.wg-show-all-toggle:hover[b-cs0ifkrguu] {
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-navy, #0f172a);
    border-color: var(--crm-border, #d8dee7);
}

/* ── Info panel ───────────────────────────────────────
   Single white surface that wraps a section. Sections inside use the
   same header treatment as detail pages: small navy title with a 3px
   teal accent bar, hairline rule below. */

.wg-info-panel[b-cs0ifkrguu] {
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: var(--crm-r, 10px);
    padding: 22px 26px;
    box-shadow: var(--crm-shadow-xs);
}

.wg-prop-section-title[b-cs0ifkrguu],
.wg-section-title[b-cs0ifkrguu] {
    margin: 0 0 10px 0;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--crm-navy, #0f172a);
    display: flex;
    align-items: center;
    gap: 8px;
}

.wg-prop-section-title[b-cs0ifkrguu]::before,
.wg-section-title[b-cs0ifkrguu]::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
    flex-shrink: 0;
}

/* Section head wrapper for sections that need a row layout (title +
   search input, etc.) similar to the detail-page `cd-tab-head`. */

.wg-section-head[b-cs0ifkrguu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 8px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    gap: 12px;
    flex-wrap: wrap;
}

.wg-section-head .wg-section-title[b-cs0ifkrguu] {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.wg-section-search[b-cs0ifkrguu] {
    flex: 1 1 auto;
    max-width: 320px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: var(--crm-bg, #f5f7fa);
    border: 1px solid transparent;
    border-radius: 6px;
    transition: background 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

.wg-section-search:focus-within[b-cs0ifkrguu] {
    background: var(--crm-white, #fff);
    border-color: var(--crm-border-2, #c5d3e8);
    box-shadow: 0 0 0 3px rgba(0, 197, 168, 0.12);
}

.wg-section-search i[b-cs0ifkrguu] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.85rem;
}

.wg-section-search input[b-cs0ifkrguu] {
    border: none;
    background: transparent;
    outline: none;
    width: 100%;
    font-size: 0.85rem;
    color: var(--crm-text-1, #1f2937);
}

.wg-section-search input[b-cs0ifkrguu]::placeholder {
    color: var(--crm-text-3, #9ca3af);
}

/* ── Animatable property rows ─────────────────────────
   grid-template-rows 1fr → 0fr for height collapse, coupled with
   opacity fade. Same engine as AccountDetail / ContactDetail. */

.wg-anim-dl[b-cs0ifkrguu] {
    display: flex;
    flex-direction: column;
}

.wg-anim-row[b-cs0ifkrguu] {
    display: grid;
    grid-template-rows: 1fr;
    opacity: 1;
    transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1),
                opacity 160ms ease,
                margin 220ms ease;
}

.wg-anim-row.is-hidden[b-cs0ifkrguu] {
    grid-template-rows: 0fr;
    opacity: 0;
    margin-top: 0;
    margin-bottom: 0;
    pointer-events: none;
}

.wg-anim-row-inner[b-cs0ifkrguu] {
    min-height: 0;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(140px, max-content) 1fr;
    align-items: baseline;
    column-gap: 24px;
    padding: 5px 0;
    font-size: 0.85rem;
}

.wg-anim-row-inner > dt[b-cs0ifkrguu],
.wg-anim-row-inner[b-cs0ifkrguu]  dt {
    margin: 0;
    font-weight: 500;
    color: var(--crm-text-3, #9ca3af);
    white-space: nowrap;
}

.wg-anim-row-inner > dd[b-cs0ifkrguu],
.wg-anim-row-inner[b-cs0ifkrguu]  dd {
    margin: 0;
    color: var(--crm-text-1, #1f2937);
    line-height: 1.45;
}

.wg-anim-row-inner > dd a[b-cs0ifkrguu],
.wg-anim-row-inner[b-cs0ifkrguu]  dd a {
    color: var(--crm-teal-700, #00735f);
    text-decoration: none;
}

.wg-anim-row-inner > dd a:hover[b-cs0ifkrguu],
.wg-anim-row-inner[b-cs0ifkrguu]  dd a:hover {
    color: var(--crm-teal, #00C5A8);
    text-decoration: underline;
}

.wg-anim-row.is-hidden .wg-anim-row-inner[b-cs0ifkrguu] {
    padding-top: 0;
    padding-bottom: 0;
}

.wg-anim-row-inner > dt[class*="col-"][b-cs0ifkrguu],
.wg-anim-row-inner > dd[class*="col-"][b-cs0ifkrguu],
.wg-anim-row-inner[b-cs0ifkrguu]  dt[class*="col-"],
.wg-anim-row-inner[b-cs0ifkrguu]  dd[class*="col-"] {
    flex: unset;
    max-width: unset;
    padding: 0;
}

/* ── Members grid: side-by-side, stack on narrow ────── */

.wg-panels-grid[b-cs0ifkrguu] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    align-items: start;
}

.wg-panel-section[b-cs0ifkrguu] {
    min-width: 0;
}

/* Embedded RelatedObjectsPanel — strip its navy header, adopt the
   new section-header pattern with teal accent bar. */

.wg-panel-section[b-cs0ifkrguu]  .rop-container {
    background: transparent;
    border: none;
    box-shadow: none;
    border-radius: 0;
}

.wg-panel-section[b-cs0ifkrguu]  .rop-header {
    background: transparent;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    border-radius: 0;
    padding: 0 0 10px 0;
    margin-bottom: 14px;
}

.wg-panel-section[b-cs0ifkrguu]  .rop-title {
    color: var(--crm-navy, #0f172a);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    font-weight: 600;
    text-transform: none;
    display: flex;
    align-items: center;
    gap: 8px;
}

.wg-panel-section[b-cs0ifkrguu]  .rop-title::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--crm-teal, #00C5A8);
    border-radius: 2px;
    flex-shrink: 0;
    display: inline-block;
}

.wg-panel-section[b-cs0ifkrguu]  .rop-header .btn-primary {
    background: var(--crm-teal, #00C5A8);
    border-color: var(--crm-teal, #00C5A8);
    color: var(--crm-white, #fff);
    font-weight: 600;
    font-size: 0.78rem;
}

.wg-panel-section[b-cs0ifkrguu]  .rop-header .btn-primary:hover {
    background: var(--crm-teal-600, #009E88);
    border-color: var(--crm-teal-600, #009E88);
}

.wg-panel-section[b-cs0ifkrguu]  .rop-item {
    border-bottom-color: var(--crm-border);
    padding: 10px 14px;
}

.wg-panel-section[b-cs0ifkrguu]  .rop-item:hover {
    background: var(--crm-teal-50);
}

.wg-panel-section[b-cs0ifkrguu]  .rop-item-name {
    color: var(--crm-navy);
    font-weight: 600;
}

.wg-panel-section[b-cs0ifkrguu]  .rop-empty {
    padding: 20px 14px;
    text-align: center;
    color: var(--crm-text-3);
}

/* Embedded form (SendEmailForm) — flatten its card chrome to a
   borderless inline section that fits the panel. */

.wg-embedded-form[b-cs0ifkrguu]  .card {
    border: none;
    box-shadow: none;
    background: var(--crm-bg, #f5f7fa);
    border-radius: 8px;
    margin-top: 0;
    margin-bottom: 0;
}

.wg-embedded-form[b-cs0ifkrguu]  .card-header {
    background: transparent;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    padding: 8px 14px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--crm-text-3, #9ca3af);
}

.wg-embedded-form[b-cs0ifkrguu]  .card-body {
    padding: 14px;
}

/* ── Responsive: stack on narrow screens ────────────── */

@media (max-width: 767.98px) {
    .wg-panels-grid[b-cs0ifkrguu] {
        grid-template-columns: 1fr;
    }

    .wg-header[b-cs0ifkrguu] {
        flex-direction: column;
        gap: 0.75rem;
    }

    .wg-actions[b-cs0ifkrguu] {
        align-self: flex-end;
    }
}
/* /Shared/Access/AccessLevelDetails.razor.rz.scp.css */
.ald[b-8h13g6smxa] {
    margin: 2px 0 6px;
    font-size: 0.8rem;
    color: var(--crm-text-2);
}

.ald > summary[b-8h13g6smxa] {
    display: inline-block;
    cursor: pointer;
    color: var(--crm-teal-600);
    font-weight: 600;
    list-style: none;
}

.ald > summary[b-8h13g6smxa]::-webkit-details-marker {
    display: none;
}

.ald > summary[b-8h13g6smxa]::before {
    content: "▸ ";
}

.ald[open] > summary[b-8h13g6smxa]::before {
    content: "▾ ";
}

.ald-list[b-8h13g6smxa] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 2px 10px;
    margin: 6px 0 0;
    padding: 8px 10px;
    border-radius: var(--crm-r-sm);
    background: var(--crm-surface-2);
}

.ald-list dt[b-8h13g6smxa] {
    font-weight: 600;
    color: var(--crm-text);
}

.ald-list dd[b-8h13g6smxa] {
    margin: 0;
}

.ald-list ul[b-8h13g6smxa] {
    margin: 0;
    padding-left: 1rem;
}

.ald-not[b-8h13g6smxa] {
    color: var(--crm-text-2);
}
/* /Shared/AccountContactsPanel.razor.rz.scp.css */
.acp-cardinality-hint[b-7p7jb7x6u3] {
    font-size: 0.72rem;
    color: var(--crm-text-3);
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
}

.acp-other-header[b-7p7jb7x6u3] {
    border-left-color: var(--crm-border) !important;
    opacity: 0.85;
}

.acp-empty[b-7p7jb7x6u3] {
    padding: 12px 16px;
    margin: 0;
    font-size: 0.8rem;
    color: var(--crm-text-3);
}

.acp-list[b-7p7jb7x6u3] {
    padding: 4px 0;
}

.acp-item[b-7p7jb7x6u3] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--crm-border);
    transition: background var(--crm-fast) ease;
}

.acp-item:last-child[b-7p7jb7x6u3] {
    border-bottom: none;
}

.acp-item:hover[b-7p7jb7x6u3] {
    background: var(--crm-bg);
}

.acp-item-editing[b-7p7jb7x6u3] {
    background: color-mix(in srgb, var(--crm-teal) 6%, transparent);
}

.acp-item-main[b-7p7jb7x6u3] {
    flex: 1;
    min-width: 0;
}

.acp-item-name[b-7p7jb7x6u3] {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--crm-navy);
    text-decoration: none;
}

.acp-item-name:hover[b-7p7jb7x6u3] {
    text-decoration: underline;
}

.acp-item-subtitle[b-7p7jb7x6u3] {
    font-size: 0.75rem;
    color: var(--crm-text-3);
    margin-left: 6px;
}

.acp-item-labels[b-7p7jb7x6u3] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    flex: 1;
}

.acp-label-check[b-7p7jb7x6u3] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.8rem;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 4px;
    border: 1px solid var(--crm-border);
    background: white;
    margin: 2px;
}

.acp-label-check:hover[b-7p7jb7x6u3] {
    background: var(--crm-bg);
}

.acp-edit-labels-btn[b-7p7jb7x6u3] {
    color: var(--crm-border);
    padding: 0 2px;
    line-height: 1;
    font-size: 0.75rem;
}

.acp-edit-labels-btn:hover[b-7p7jb7x6u3] {
    color: var(--crm-navy);
}

.acp-done-btn[b-7p7jb7x6u3] {
    font-size: 0.75rem;
    padding: 0 4px;
    color: var(--crm-navy);
}

.acp-remove-btn[b-7p7jb7x6u3] {
    flex-shrink: 0;
    padding: 0 6px;
    line-height: 1.4;
    font-size: 1rem;
}

.acp-add-form-wrapper[b-7p7jb7x6u3] {
    border-top: 1px solid var(--crm-border);
    background: var(--crm-bg);
}

/* ── Section shells (Executive / Board / Other) ────────────────── */

.acp-section[b-7p7jb7x6u3] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: 14px 16px 12px;
    box-shadow: var(--crm-shadow-xs);
}

.acp-section-head[b-7p7jb7x6u3] {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding-bottom: 10px;
    margin-bottom: 10px;
    border-bottom: 1px solid var(--crm-border);
}

.acp-section-title[b-7p7jb7x6u3] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--crm-navy);
    letter-spacing: 0.01em;
}

.acp-section-title-muted[b-7p7jb7x6u3] {
    color: var(--crm-text-2);
    font-weight: 500;
}

.acp-section-count[b-7p7jb7x6u3] {
    font-size: 0.72rem;
    color: var(--crm-text-3);
    font-weight: 500;
}

/* ── Executive Team — dense 2-column role/person rows ──────────── */

.acp-exec-grid[b-7p7jb7x6u3] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2px;
}

@media (min-width: 900px) {
    .acp-exec-grid[b-7p7jb7x6u3] {
        grid-template-columns: 1fr 1fr;
        column-gap: 24px;
    }
}

.acp-exec-row[b-7p7jb7x6u3] {
    display: grid;
    grid-template-columns: 88px 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 7px 2px;
    border-bottom: 1px solid var(--crm-border);
    min-height: 36px;
}

.acp-exec-row:last-child[b-7p7jb7x6u3],
.acp-exec-grid > .acp-exec-row:nth-last-child(-n+2)[b-7p7jb7x6u3] {
    border-bottom: none;
}

.acp-exec-row-vacant .acp-exec-role[b-7p7jb7x6u3] {
    color: var(--crm-text-3);
}

.acp-exec-role[b-7p7jb7x6u3] {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--crm-text-2);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.acp-exec-holder[b-7p7jb7x6u3] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.acp-exec-person[b-7p7jb7x6u3] {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.acp-exec-person-name[b-7p7jb7x6u3] {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--crm-navy);
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.acp-exec-person-name:hover[b-7p7jb7x6u3] {
    text-decoration: underline;
}

.acp-exec-person-sub[b-7p7jb7x6u3] {
    font-size: 0.72rem;
    color: var(--crm-text-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.acp-exec-assign[b-7p7jb7x6u3] {
    background: none;
    border: none;
    padding: 0;
    font-size: 0.78rem;
    color: var(--crm-text-3);
    font-style: italic;
    cursor: pointer;
    text-align: left;
}

.acp-exec-assign:hover[b-7p7jb7x6u3] {
    color: var(--crm-teal);
    text-decoration: underline;
}

.acp-exec-vacant-label[b-7p7jb7x6u3] {
    font-size: 0.78rem;
    color: var(--crm-text-3);
    font-style: italic;
}

.acp-exec-actions[b-7p7jb7x6u3] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.acp-exec-action[b-7p7jb7x6u3] {
    background: none;
    border: 1px solid transparent;
    padding: 2px 8px;
    font-size: 0.7rem;
    color: var(--crm-text-2);
    border-radius: var(--crm-r-sm);
    cursor: pointer;
    opacity: 0;
    transition: opacity var(--crm-fast) ease, border-color var(--crm-fast) ease, background var(--crm-fast) ease;
}

.acp-exec-row:hover .acp-exec-action[b-7p7jb7x6u3] {
    opacity: 1;
    border-color: var(--crm-border);
}

.acp-exec-action:hover[b-7p7jb7x6u3] {
    background: var(--crm-bg);
    color: var(--crm-navy);
}

.acp-exec-action-ea[b-7p7jb7x6u3] {
    color: var(--crm-teal-600, #009E88);
}

.acp-exec-action-ea:hover[b-7p7jb7x6u3] {
    color: var(--crm-teal, #00C5A8);
    border-color: var(--crm-teal, #00C5A8);
}

.acp-exec-remove[b-7p7jb7x6u3] {
    background: none;
    border: none;
    color: var(--crm-text-3);
    padding: 0 4px;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    opacity: 0;
    transition: opacity var(--crm-fast) ease, color var(--crm-fast) ease;
}

/* Executive Assistant sub-row — indented under each exec's name in the
   holder column. Smaller type so the grid still reads as 10 exec seats
   at a glance even when assistants are filled. */
.acp-exec-ea[b-7p7jb7x6u3] {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    font-size: 0.78rem;
    color: var(--crm-text-2);
    margin-top: 1px;
}

.acp-exec-ea-arrow[b-7p7jb7x6u3] {
    color: var(--crm-text-3);
    font-size: 0.85rem;
    line-height: 1;
}

.acp-exec-ea-tag[b-7p7jb7x6u3] {
    font-size: 0.66rem;
    font-weight: 600;
    color: var(--crm-text-3);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 1px 5px;
    background: var(--crm-bg);
    border-radius: var(--crm-r-sm);
}

.acp-exec-ea-name[b-7p7jb7x6u3] {
    font-size: 0.82rem;
    color: var(--crm-navy);
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.acp-exec-ea-name:hover[b-7p7jb7x6u3] {
    text-decoration: underline;
}

.acp-exec-row:hover .acp-exec-remove[b-7p7jb7x6u3] {
    opacity: 1;
}

.acp-exec-remove:hover[b-7p7jb7x6u3] {
    color: #c0392b;
}

/* ── Board — officer strip + member roster ─────────────────────── */

.acp-board-officers[b-7p7jb7x6u3] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-bottom: 14px;
}

@media (min-width: 720px) {
    .acp-board-officers[b-7p7jb7x6u3] {
        grid-template-columns: repeat(4, 1fr);
    }
}

.acp-officer[b-7p7jb7x6u3] {
    background: var(--crm-bg);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-height: 78px;
    position: relative;
    transition: border-color var(--crm-fast) ease, background var(--crm-fast) ease;
}

.acp-officer:hover[b-7p7jb7x6u3] {
    border-color: var(--crm-border-2);
}

.acp-officer-vacant[b-7p7jb7x6u3] {
    background: transparent;
    border-style: dashed;
}

.acp-officer-role[b-7p7jb7x6u3] {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--crm-text-2);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.acp-officer-name[b-7p7jb7x6u3] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--crm-navy);
    text-decoration: none;
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.acp-officer-name:hover[b-7p7jb7x6u3] {
    text-decoration: underline;
}

.acp-officer-sub[b-7p7jb7x6u3] {
    font-size: 0.72rem;
    color: var(--crm-text-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.acp-officer-actions[b-7p7jb7x6u3] {
    position: absolute;
    top: 6px;
    right: 6px;
    display: flex;
    gap: 2px;
    opacity: 0;
    transition: opacity var(--crm-fast) ease;
}

.acp-officer:hover .acp-officer-actions[b-7p7jb7x6u3] {
    opacity: 1;
}

.acp-officer-replace[b-7p7jb7x6u3] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    padding: 1px 6px;
    font-size: 0.68rem;
    color: var(--crm-text-2);
    border-radius: var(--crm-r-sm);
    cursor: pointer;
}

.acp-officer-replace:hover[b-7p7jb7x6u3] {
    background: var(--crm-bg);
    color: var(--crm-navy);
}

.acp-officer-remove[b-7p7jb7x6u3] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    padding: 0 6px;
    font-size: 0.8rem;
    color: var(--crm-text-3);
    line-height: 1.3;
    border-radius: var(--crm-r-sm);
    cursor: pointer;
}

.acp-officer-remove:hover[b-7p7jb7x6u3] {
    color: #c0392b;
    border-color: #c0392b;
}

.acp-officer-assign[b-7p7jb7x6u3] {
    background: none;
    border: none;
    padding: 0;
    font-size: 0.8rem;
    color: var(--crm-text-3);
    font-style: italic;
    cursor: pointer;
    text-align: left;
    margin-top: 4px;
}

.acp-officer-assign:hover[b-7p7jb7x6u3] {
    color: var(--crm-teal);
    text-decoration: underline;
}

.acp-officer-vacant-label[b-7p7jb7x6u3] {
    font-size: 0.8rem;
    color: var(--crm-text-3);
    font-style: italic;
    margin-top: 4px;
}

/* Board member roster */
.acp-board-members-head[b-7p7jb7x6u3] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 6px;
    margin-bottom: 6px;
}

.acp-board-members-title[b-7p7jb7x6u3] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-2);
}

.acp-member-grid[b-7p7jb7x6u3] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 8px;
}

.acp-member-tile[b-7p7jb7x6u3] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    min-width: 0;
    transition: border-color var(--crm-fast) ease, background var(--crm-fast) ease;
}

.acp-member-tile:hover[b-7p7jb7x6u3] {
    border-color: var(--crm-border-2);
    background: var(--crm-bg);
}

.acp-member-avatar[b-7p7jb7x6u3] {
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--crm-surface-2);
    color: var(--crm-text-2);
    font-size: 0.7rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.02em;
}

.acp-member-body[b-7p7jb7x6u3] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.acp-member-name[b-7p7jb7x6u3] {
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--crm-navy);
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.acp-member-name:hover[b-7p7jb7x6u3] {
    text-decoration: underline;
}

.acp-member-sub[b-7p7jb7x6u3] {
    font-size: 0.7rem;
    color: var(--crm-text-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.acp-member-remove[b-7p7jb7x6u3] {
    background: none;
    border: none;
    color: var(--crm-text-3);
    padding: 0 4px;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    opacity: 0;
    transition: opacity var(--crm-fast) ease, color var(--crm-fast) ease;
}

.acp-member-tile:hover .acp-member-remove[b-7p7jb7x6u3] {
    opacity: 1;
}

.acp-member-remove:hover[b-7p7jb7x6u3] {
    color: #c0392b;
}

/* Inline add forms shown under the purpose-built sections */
.acp-inline-form[b-7p7jb7x6u3] {
    margin-top: 12px;
    padding: 12px;
    background: var(--crm-bg);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
}

.acp-inline-form-title[b-7p7jb7x6u3] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-2);
    margin-bottom: 8px;
}

.acp-empty-inline[b-7p7jb7x6u3] {
    padding: 8px 0;
}

/* Other Contacts section body (formerly an unstyled card) */
.acp-other-body[b-7p7jb7x6u3] {
    padding: 0;
}

.acp-section-other[b-7p7jb7x6u3] {
    opacity: 0.92;
}

/* ── Other Roles — flat exec-grid styling + section search ──────── */

/* Inline capacity chip sitting next to the role label in the left
   cell, e.g. "TRUSTEES 9/10". Mirrors the muted typographic tone of
   .acp-exec-role so it reads as part of the same chip, not a badge. */
.acp-exec-role-cap[b-7p7jb7x6u3] {
    margin-left: 6px;
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--crm-text-3);
    letter-spacing: 0;
    text-transform: none;
}

.acp-exec-role-cap-full[b-7p7jb7x6u3] {
    color: #92400E;
}

/* Section-level search field — only shown when the role list is long
   enough to need it. Inlines into .acp-section-head, either inside
   .acp-section-controls or standalone (in which case margin-left:auto
   pushes it to the right edge). */
.acp-section-search[b-7p7jb7x6u3] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 8px;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    transition: border-color var(--crm-fast) ease, box-shadow var(--crm-fast) ease;
}

.acp-section-head > .acp-section-search[b-7p7jb7x6u3] {
    margin-left: auto;
}

.acp-section-search:focus-within[b-7p7jb7x6u3] {
    border-color: var(--crm-teal);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--crm-teal) 18%, transparent);
}

.acp-section-search > i[b-7p7jb7x6u3] {
    color: var(--crm-text-3);
    font-size: 0.8rem;
}

.acp-section-search-input[b-7p7jb7x6u3] {
    border: none;
    outline: none;
    background: transparent;
    font-size: 0.78rem;
    color: var(--crm-text);
    padding: 1px 0;
    min-width: 180px;
    font-family: inherit;
}

.acp-section-search-input[b-7p7jb7x6u3]::placeholder {
    color: var(--crm-text-3);
    font-style: italic;
}

.acp-section-search-clear[b-7p7jb7x6u3] {
    background: none;
    border: none;
    color: var(--crm-text-3);
    font-size: 1rem;
    line-height: 1;
    padding: 0 2px;
    cursor: pointer;
}

.acp-section-search-clear:hover[b-7p7jb7x6u3] {
    color: var(--crm-navy);
}

/* Inline add-contact form when launched from an Other Roles row. Spans
   the full grid width and pushes following rows down. */
.acp-add-form-other[b-7p7jb7x6u3] {
    grid-column: 1 / -1;
    padding: 8px 2px;
    border-bottom: 1px solid var(--crm-border);
}

/* ── Other Roles row overrides ──────────────────────────────────────
   Exec Team's 88px role column suits short canonical names ("CEO",
   "CFO"). Customer-defined Other Roles can be 30–40 characters and
   wrap to 4 lines at 88px — widen to 180px and clamp to 2 lines with
   ellipsis. The grid is reused; only the row template changes. */
.acp-other-grid[b-7p7jb7x6u3] {
    /* On wide screens the exec grid is 2-col. Bump the column-gap a
       little so the two role groups don't read as one wide row. */
    column-gap: 28px;
}

.acp-other-row[b-7p7jb7x6u3] {
    grid-template-columns: 180px 1fr auto;
}

.acp-other-role[b-7p7jb7x6u3] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 6px;
    /* override Exec's nowrap; long admin labels need to wrap */
    white-space: normal;
}

.acp-other-role-name[b-7p7jb7x6u3] {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
    line-height: 1.2;
}

/* Inline "+" affordance on the role label — hover-revealed so it doesn't
   clutter the chip at rest. Replaces the v1 trailing "+ Add another" row,
   which ate 30+px of vertical space per uncapped role. */
.acp-other-add-inline[b-7p7jb7x6u3] {
    margin-left: 2px;
    background: none;
    border: 1px solid transparent;
    color: var(--crm-text-3);
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1;
    padding: 0 5px;
    border-radius: var(--crm-r-sm);
    cursor: pointer;
    opacity: 0;
    transition: opacity var(--crm-fast) ease, color var(--crm-fast) ease,
                border-color var(--crm-fast) ease, background var(--crm-fast) ease;
}

.acp-other-row:hover .acp-other-add-inline[b-7p7jb7x6u3],
.acp-other-add-inline:focus-visible[b-7p7jb7x6u3] {
    opacity: 1;
}

.acp-other-add-inline:hover[b-7p7jb7x6u3] {
    color: var(--crm-teal);
    border-color: var(--crm-teal);
    background: color-mix(in srgb, var(--crm-teal) 8%, transparent);
}

/* Right-aligned controls cluster in the section header (search field +
   eye-icon vacant toggle). Replaces the older standalone search and the
   under-grid "Show N vacant roles" button. */
.acp-section-controls[b-7p7jb7x6u3] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* Eye-icon toggle that expands/collapses the vacant-role rows. Mirrors
   the empty-fields toggle on the Info tab so users see the same visual
   affordance in both places. */
.acp-section-toggle[b-7p7jb7x6u3] {
    background: none;
    border: 1px solid transparent;
    color: var(--crm-text-3);
    width: 28px;
    height: 28px;
    border-radius: var(--crm-r-sm);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color var(--crm-fast) ease, background var(--crm-fast) ease,
                border-color var(--crm-fast) ease;
}

.acp-section-toggle i[b-7p7jb7x6u3] {
    font-size: 0.95rem;
}

.acp-section-toggle:hover[b-7p7jb7x6u3] {
    color: var(--crm-teal);
    border-color: var(--crm-border);
    background: var(--crm-bg);
}

.acp-section-toggle.is-active[b-7p7jb7x6u3] {
    color: var(--crm-teal);
}

/* Collapse animation for vacant rows. Same recipe as the Info tab's
   .cd-anim-row: animate grid-template-rows from 1fr → 0fr so the row
   smoothly heights out without measuring its content, with opacity and
   margin fading in lockstep. The inner wrapper carries min-height:0 +
   overflow:hidden so the content clips cleanly during the collapse. */
.acp-anim-row[b-7p7jb7x6u3] {
    display: grid;
    grid-template-rows: 1fr;
    opacity: 1;
    transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1),
                opacity 160ms ease,
                margin 220ms ease;
}

.acp-anim-row.is-hidden[b-7p7jb7x6u3] {
    grid-template-rows: 0fr;
    opacity: 0;
    margin-top: 0;
    margin-bottom: 0;
    pointer-events: none;
}

.acp-anim-row-inner[b-7p7jb7x6u3] {
    min-height: 0;
    overflow: hidden;
}

/* ── Other Contacts — responsive multi-column card grid ─────────── */

.acp-other-grid-list[b-7p7jb7x6u3] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4px 16px;
    padding: 2px 0;
}

@media (min-width: 720px) {
    .acp-other-grid-list[b-7p7jb7x6u3] { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1180px) {
    .acp-other-grid-list[b-7p7jb7x6u3] { grid-template-columns: 1fr 1fr 1fr; }
}

.acp-other-card[b-7p7jb7x6u3] {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: baseline;
    column-gap: 10px;
    padding: 6px 2px;
    border-bottom: 1px solid var(--crm-border);
    min-width: 0;
}

.acp-other-card:last-child[b-7p7jb7x6u3] {
    border-bottom: none;
}

.acp-other-name[b-7p7jb7x6u3] {
    grid-column: 1;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--crm-navy);
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.acp-other-name:hover[b-7p7jb7x6u3] {
    text-decoration: underline;
}

.acp-other-title[b-7p7jb7x6u3] {
    grid-column: 1;
    font-size: 0.72rem;
    color: var(--crm-text-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
    margin-top: 1px;
}

.acp-other-remove[b-7p7jb7x6u3] {
    grid-column: 2;
    grid-row: 1 / span 2;
    background: none;
    border: 1px solid transparent;
    color: var(--crm-text-3);
    font-size: 1rem;
    line-height: 1;
    padding: 0 6px;
    border-radius: var(--crm-r-sm);
    cursor: pointer;
    opacity: 0;
    align-self: center;
    transition: opacity var(--crm-fast) ease, color var(--crm-fast) ease,
                border-color var(--crm-fast) ease, background var(--crm-fast) ease;
}

.acp-other-card:hover .acp-other-remove[b-7p7jb7x6u3],
.acp-other-remove:focus-visible[b-7p7jb7x6u3] {
    opacity: 1;
}

.acp-other-remove:hover[b-7p7jb7x6u3] {
    color: #991B1B;
    border-color: #FCA5A5;
    background: #FEF2F2;
}

/* Header "+ Add" button for Other Contacts — sits next to search and
   count, low-weight to match the section's de-emphasized treatment. */
.acp-other-add[b-7p7jb7x6u3] {
    background: none;
    border: 1px solid var(--crm-border);
    color: var(--crm-text-2);
    font-size: 0.78rem;
    font-weight: 500;
    padding: 3px 10px;
    border-radius: var(--crm-r-sm);
    cursor: pointer;
    transition: color var(--crm-fast) ease, border-color var(--crm-fast) ease;
}

.acp-other-add:hover[b-7p7jb7x6u3] {
    color: var(--crm-teal);
    border-color: var(--crm-teal);
}

/* ── Scheduled role changes ─────────────────────────────────────────────
   Changes waiting for their effective date. The seats keep showing who
   holds them today; this says what is coming and links to the queue. */
.acp-scheduled[b-7p7jb7x6u3] {
    display: flex;
    gap: .625rem;
    align-items: flex-start;
    background: var(--crm-teal-50);
    border: 1px solid var(--crm-border);
    border-left: 3px solid var(--crm-teal);
    border-radius: var(--crm-r-sm);
    padding: .55rem .8rem;
    margin-bottom: 1rem;
}

.acp-scheduled-icon[b-7p7jb7x6u3] {
    color: var(--crm-teal-600);
    margin-top: .1rem;
}

.acp-scheduled-list[b-7p7jb7x6u3] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}

.acp-scheduled-item[b-7p7jb7x6u3] {
    display: flex;
    gap: .6rem;
    font-size: .84rem;
    color: var(--crm-text);
    text-decoration: none;
}

.acp-scheduled-item:hover span:last-child[b-7p7jb7x6u3] {
    text-decoration: underline;
}

.acp-scheduled-date[b-7p7jb7x6u3] {
    font-weight: 600;
    color: var(--crm-teal-600);
    font-variant-numeric: tabular-nums;
    min-width: 3.4rem;
}

.acp-exec-scheduled[b-7p7jb7x6u3] {
    display: block;
    font-size: .74rem;
    color: var(--crm-teal-600);
    text-decoration: none;
    margin-bottom: .1rem;
}

.acp-exec-scheduled:hover[b-7p7jb7x6u3] {
    text-decoration: underline;
}
/* /Shared/AccountCustomObjectPanel.razor.rz.scp.css */
.acp-other-header[b-g7tnvp3do5] {
    border-left-color: var(--crm-border) !important;
    opacity: 0.85;
}

.acp-empty[b-g7tnvp3do5] {
    padding: 12px 16px;
    margin: 0;
    font-size: 0.8rem;
    color: var(--crm-text-3);
}

.acp-list[b-g7tnvp3do5] {
    padding: 4px 0;
}

.acp-item[b-g7tnvp3do5] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--crm-border);
    transition: background var(--crm-fast) ease;
}

.acp-item:last-child[b-g7tnvp3do5] {
    border-bottom: none;
}

.acp-item:hover[b-g7tnvp3do5] {
    background: var(--crm-bg);
}

.acp-item-editing[b-g7tnvp3do5] {
    background: color-mix(in srgb, var(--crm-teal) 6%, transparent);
}

.acp-item-main[b-g7tnvp3do5] {
    flex: 1;
    min-width: 0;
}

.acp-item-name[b-g7tnvp3do5] {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--crm-navy);
    text-decoration: none;
}

.acp-item-name:hover[b-g7tnvp3do5] {
    text-decoration: underline;
}

.acp-item-subtitle[b-g7tnvp3do5] {
    font-size: 0.75rem;
    color: var(--crm-text-3);
    margin-left: 6px;
}

.acp-item-labels[b-g7tnvp3do5] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    flex: 1;
}

.acp-label-check[b-g7tnvp3do5] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.8rem;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 4px;
    border: 1px solid var(--crm-border);
    background: white;
    margin: 2px;
}

.acp-label-check:hover[b-g7tnvp3do5] {
    background: var(--crm-bg);
}

.acp-edit-labels-btn[b-g7tnvp3do5] {
    color: var(--crm-border);
    padding: 0 2px;
    line-height: 1;
    font-size: 0.75rem;
}

.acp-edit-labels-btn:hover[b-g7tnvp3do5] {
    color: var(--crm-navy);
}

.acp-done-btn[b-g7tnvp3do5] {
    font-size: 0.75rem;
    padding: 0 4px;
    color: var(--crm-navy);
}

.acp-remove-btn[b-g7tnvp3do5] {
    flex-shrink: 0;
    padding: 0 6px;
    line-height: 1.4;
    font-size: 1rem;
}

.acp-add-form-wrapper[b-g7tnvp3do5] {
    border-top: 1px solid var(--crm-border);
    background: var(--crm-bg);
}
/* /Shared/AccountEmailDomainsPanel.razor.rz.scp.css */
/* Email-domains pill — compact summary that expands into a popover overlaying the
   content below, matching the engagement / hierarchy pills in the same column. */

.aed-anchor[b-3ybs9b8zvy] {
    position: relative;
    display: inline-flex;
}

.aed-summary[b-3ybs9b8zvy] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: 999px;
    text-align: left;
    cursor: pointer;
    font-size: 0.8rem;
    color: var(--crm-text-2, #4b5563);
    transition: background 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
    white-space: nowrap;
}

.aed-summary:hover[b-3ybs9b8zvy],
.aed-summary.is-active[b-3ybs9b8zvy] {
    background: var(--crm-bg, #f5f7fa);
    border-color: var(--crm-border-2, #c5d3e8);
}

.aed-summary.is-active[b-3ybs9b8zvy] {
    box-shadow: 0 0 0 3px rgba(0, 197, 168, 0.12);
}

.aed-summary-label[b-3ybs9b8zvy] {
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.aed-summary-label .bi[b-3ybs9b8zvy] {
    color: var(--crm-teal-600, #009E88);
}

.aed-summary-count[b-3ybs9b8zvy] {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--crm-navy, #0f172a);
    font-variant-numeric: tabular-nums;
}

.aed-summary-chev[b-3ybs9b8zvy] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.85rem;
    transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1), color 140ms ease;
}

.aed-summary.is-active .aed-summary-chev[b-3ybs9b8zvy] {
    transform: rotate(180deg);
    color: var(--crm-navy);
}

/* ── Popover ────────────────────────────────────────── */

.aed-backdrop[b-3ybs9b8zvy] {
    position: fixed;
    inset: 0;
    z-index: 1040;
}

.aed-popover[b-3ybs9b8zvy] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 380px;
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 120px);
    display: flex;
    flex-direction: column;
    z-index: 1050;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: saturate(140%) blur(8px);
    -webkit-backdrop-filter: saturate(140%) blur(8px);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 12px;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.06),
        0 16px 32px -10px rgba(15, 23, 42, 0.22);
    transform-origin: top right;
    animation: aed-popover-in-b-3ybs9b8zvy 180ms cubic-bezier(0.16, 1, 0.3, 1);
    overflow: hidden;
}

@keyframes aed-popover-in-b-3ybs9b8zvy {
    from { opacity: 0; transform: translateY(-6px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0)   scale(1);    }
}

/* ── Narrow viewports ─────────────────────────────────
   Below ~1,600px the AccountDetail utility row wraps, so the popover
   anchors to the row (which is `position: relative`) instead of the
   pill and caps at the row width. It can then never leave the content
   column, which the layout shell clips with no scrollbar. */
@media (max-width: 1599.98px) {
    .aed-anchor[b-3ybs9b8zvy] { position: static; }
    .aed-popover[b-3ybs9b8zvy] { max-width: 100%; }
}

/* Phone: a fixed sheet over a tinted backdrop. */
@media (max-width: 640.98px) {
    .aed-popover[b-3ybs9b8zvy] {
        position: fixed;
        inset: auto 12px 12px 12px;
        width: auto;
        max-width: none;
        max-height: 80vh;
        border-radius: 14px;
        transform-origin: bottom center;
    }
    .aed-backdrop[b-3ybs9b8zvy] { background: rgba(15, 23, 42, 0.35); }
}

.aed-popover-head[b-3ybs9b8zvy] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    background: var(--crm-bg, #f5f7fa);
}

.aed-popover-title[b-3ybs9b8zvy] {
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    font-size: 0.9rem;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.aed-popover-title .bi[b-3ybs9b8zvy] {
    color: var(--crm-teal-600, #009E88);
}

.aed-popover-body[b-3ybs9b8zvy] {
    padding: 14px 16px;
    overflow-y: auto;
}

.aed-help[b-3ybs9b8zvy] {
    font-size: 0.78rem;
    color: var(--crm-text-3, #9ca3af);
    margin-bottom: 10px;
}

.aed-list[b-3ybs9b8zvy] {
    list-style: none;
    margin: 0 0 10px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.aed-item[b-3ybs9b8zvy] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 8px;
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: 8px;
}

.aed-item-main[b-3ybs9b8zvy] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.aed-domain[b-3ybs9b8zvy] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.82rem;
    color: var(--crm-navy, #0f172a);
    overflow-wrap: anywhere;
}

/* Shared domains are legitimate (a health system whose hospitals all use one), so this
   is a neutral cue rather than a warning — it just makes a typo easy to spot. */
.aed-shared[b-3ybs9b8zvy] {
    font-size: 0.72rem;
    color: var(--crm-text-3, #9ca3af);
}

.aed-add[b-3ybs9b8zvy] {
    display: flex;
    gap: 6px;
}

.aed-add input[b-3ybs9b8zvy] {
    flex: 1 1 auto;
    min-width: 0;
}
/* /Shared/AccountEngagementPanel.razor.rz.scp.css */
/* Engagement pill — compact inline summary; expands into a popover
   that overlays content below rather than pushing layout. */

.aep-anchor[b-hnt38m6r0t] {
    position: relative;
    display: inline-flex;
}

.aep-summary[b-hnt38m6r0t] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: 999px;
    text-align: left;
    cursor: pointer;
    font-size: 0.8rem;
    color: var(--crm-text-2, #4b5563);
    transition: background 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
    white-space: nowrap;
}

.aep-summary:hover[b-hnt38m6r0t],
.aep-summary.is-active[b-hnt38m6r0t] {
    background: var(--crm-bg, #f5f7fa);
    border-color: var(--crm-border-2, #c5d3e8);
}

.aep-summary.is-active[b-hnt38m6r0t] {
    box-shadow: 0 0 0 3px rgba(0, 197, 168, 0.12);
}

.aep-summary-label[b-hnt38m6r0t] {
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.aep-summary-label .bi[b-hnt38m6r0t] {
    color: var(--crm-teal-600, #009E88);
}

.aep-summary-score[b-hnt38m6r0t] {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--crm-navy, #0f172a);
    font-variant-numeric: tabular-nums;
}

.aep-summary-breakdown[b-hnt38m6r0t] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.8rem;
}

.aep-dot[b-hnt38m6r0t] {
    color: var(--crm-border-2, #c5d3e8);
}

.aep-summary-when[b-hnt38m6r0t] {
    font-size: 0.75rem;
    color: var(--crm-text-3, #9ca3af);
}

.aep-summary-chev[b-hnt38m6r0t] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.85rem;
    transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1), color 140ms ease;
}

.aep-summary.is-active .aep-summary-chev[b-hnt38m6r0t] {
    transform: rotate(180deg);
    color: var(--crm-navy);
}

/* ── Popover ──────────────────────────────────────────
   Anchored below-right of the pill so it sits over the page content
   instead of moving it. Two-layer shadow, off-white surface with
   backdrop blur to match the DataActionsMenu treatment. */

.aep-popover[b-hnt38m6r0t] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 420px;
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 120px);
    display: flex;
    flex-direction: column;
    z-index: 1050;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: saturate(140%) blur(8px);
    -webkit-backdrop-filter: saturate(140%) blur(8px);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 12px;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.06),
        0 16px 32px -10px rgba(15, 23, 42, 0.22);
    transform-origin: top right;
    animation: aep-popover-in-b-hnt38m6r0t 180ms cubic-bezier(0.16, 1, 0.3, 1);
    overflow: hidden;
}

@keyframes aep-popover-in-b-hnt38m6r0t {
    from { opacity: 0; transform: translateY(-6px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0)   scale(1);    }
}

.aep-popover-head[b-hnt38m6r0t] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    background: var(--crm-bg, #f5f7fa);
}

.aep-popover-title[b-hnt38m6r0t] {
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    font-size: 0.9rem;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.aep-popover-title .bi[b-hnt38m6r0t] {
    color: var(--crm-teal-600, #009E88);
}

.aep-popover-actions[b-hnt38m6r0t] {
    display: flex;
    gap: 6px;
    align-items: center;
}

.aep-popover-body[b-hnt38m6r0t] {
    padding: 14px 16px;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

.aep-backdrop[b-hnt38m6r0t] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

/* ── Narrow viewports ─────────────────────────────────
   Below ~1,600px the AccountDetail utility row wraps. The inline
   four-way breakdown and the computed-at stamp are ~300px of this pill
   and the popover shows both, so they go first. The popover then
   anchors to the row (which is `position: relative`) instead of the
   pill and caps at the row width, so it can never leave the content
   column, which the layout shell clips with no scrollbar. */
@media (max-width: 1599.98px) {
    .aep-summary-breakdown[b-hnt38m6r0t],
    .aep-summary-when[b-hnt38m6r0t] { display: none; }
    .aep-anchor[b-hnt38m6r0t] { position: static; }
    .aep-popover[b-hnt38m6r0t] { max-width: 100%; }
}

/* Phone: a fixed sheet over a tinted backdrop. */
@media (max-width: 640.98px) {
    .aep-popover[b-hnt38m6r0t] {
        position: fixed;
        inset: auto 12px 12px 12px;
        width: auto;
        max-width: none;
        max-height: 80vh;
        border-radius: 14px;
        transform-origin: bottom center;
    }
    .aep-backdrop[b-hnt38m6r0t] { background: rgba(15, 23, 42, 0.35); }
}
/* /Shared/AccountHierarchyPanel.razor.rz.scp.css */
/* Pill — sits in the AccountDetail utility row next to Engagement.
   Same shape language: rounded inline-flex pill, muted defaults,
   active state when the popover is open. */

.ahp-anchor[b-47270rf115] {
    position: relative;
    display: inline-flex;
}

.ahp-pill[b-47270rf115] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: 999px;
    text-align: left;
    cursor: pointer;
    font-size: 0.8rem;
    color: var(--crm-text-2, #4b5563);
    transition: background 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
    white-space: nowrap;
}

.ahp-pill:hover[b-47270rf115],
.ahp-pill.is-active[b-47270rf115] {
    background: var(--crm-bg, #f5f7fa);
    border-color: var(--crm-border-2, #c5d3e8);
}

.ahp-pill.is-active[b-47270rf115] {
    box-shadow: 0 0 0 3px rgba(0, 197, 168, 0.12);
}

.ahp-pill-label[b-47270rf115] {
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ahp-pill-label .bi[b-47270rf115] {
    color: var(--crm-teal-600, #009E88);
}

.ahp-pill-count[b-47270rf115] {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--crm-navy, #0f172a);
    background: var(--crm-bg, #f5f7fa);
    padding: 2px 8px;
    border-radius: 999px;
    font-variant-numeric: tabular-nums;
}

.ahp-pill-hint[b-47270rf115] {
    font-size: 0.75rem;
    color: var(--crm-text-3, #9ca3af);
    font-style: italic;
}

.ahp-pill-chev[b-47270rf115] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.85rem;
    transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1), color 140ms ease;
}

.ahp-pill.is-active .ahp-pill-chev[b-47270rf115] {
    transform: rotate(180deg);
    color: var(--crm-navy);
}

/* ── Popover ──────────────────────────────────────────
   Larger than the engagement popover since the hierarchy tree can be
   wide. Right-anchored to the pill; overlays content below. */

.ahp-popover[b-47270rf115] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 480px;
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 120px);
    display: flex;
    flex-direction: column;
    z-index: 1050;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: saturate(140%) blur(8px);
    -webkit-backdrop-filter: saturate(140%) blur(8px);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 12px;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.06),
        0 16px 32px -10px rgba(15, 23, 42, 0.22);
    transform-origin: top right;
    animation: ahp-popover-in-b-47270rf115 180ms cubic-bezier(0.16, 1, 0.3, 1);
    overflow: hidden;
}

@keyframes ahp-popover-in-b-47270rf115 {
    from { opacity: 0; transform: translateY(-6px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0)   scale(1);    }
}

.ahp-popover-head[b-47270rf115] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    background: var(--crm-bg, #f5f7fa);
}

.ahp-popover-title[b-47270rf115] {
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    font-size: 0.9rem;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ahp-popover-title .bi[b-47270rf115] {
    color: var(--crm-teal-600, #009E88);
}

.ahp-popover-actions[b-47270rf115] {
    display: flex;
    gap: 6px;
    align-items: center;
}

.ahp-popover-body[b-47270rf115] {
    padding: 14px 16px;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

/* ── Tree ─────────────────────────────────────────────
   A list, not a stack of cards: rows are flat until hovered, the city sits quietly on
   the right, and "this account" is a teal bar rather than a badge. */

.ahp-root[b-47270rf115] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 10px;
    padding-bottom: 12px;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
}

.ahp-root-type[b-47270rf115] {
    flex-basis: 100%;
    font-size: 0.75rem;
    color: var(--crm-text-3, #6c757d);
}

.ahp-root-name[b-47270rf115] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    text-decoration: none;
}

a.ahp-root-name:hover[b-47270rf115] { text-decoration: underline; }

.ahp-group[b-47270rf115] { margin-top: 12px; }

.ahp-group-head[b-47270rf115] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin: 0 0 4px;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--crm-text-2, #4b5563);
}

.ahp-group-count[b-47270rf115] {
    font-weight: 500;
    color: var(--crm-text-3, #9ca3af);
    font-variant-numeric: tabular-nums;
}

.ahp-list[b-47270rf115] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ahp-row[b-47270rf115] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 5px 8px 5px 10px;
    border-left: 3px solid transparent;
    border-radius: 0 var(--crm-r-sm, 4px) var(--crm-r-sm, 4px) 0;
    font-size: 0.85rem;
    line-height: 1.3;
}

.ahp-row:hover[b-47270rf115] { background: var(--crm-bg, #f5f7fa); }

.ahp-row.is-current[b-47270rf115] {
    border-left-color: var(--crm-teal, #00C5A8);
    background: var(--crm-teal-50, #e6fbf7);
}

/* Campuses of one CCN hang off a single rule, so the grouping reads without more chrome. */
.ahp-row.is-in-ccn[b-47270rf115] {
    margin-left: 12px;
    border-left-color: var(--crm-border-2, #c5d3e8);
}

.ahp-row.is-in-ccn.is-current[b-47270rf115] { border-left-color: var(--crm-teal, #00C5A8); }

.ahp-row.is-facility[b-47270rf115] {
    margin-left: 20px;
    font-size: 0.8rem;
}

.ahp-name[b-47270rf115] {
    min-width: 0;
    color: var(--crm-navy, #0f172a);
    font-weight: 500;
    text-decoration: none;
    overflow-wrap: anywhere;
}

a.ahp-name:hover[b-47270rf115] { text-decoration: underline; }
.ahp-row.is-current .ahp-name[b-47270rf115] { font-weight: 600; }

.ahp-here[b-47270rf115] {
    flex-shrink: 0;
    font-size: 0.72rem;
    color: var(--crm-teal-600, #009E88);
}

.ahp-city[b-47270rf115] {
    margin-left: auto;
    padding-left: 8px;
    flex-shrink: 0;
    max-width: 40%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.75rem;
    color: var(--crm-text-3, #9ca3af);
}

.ahp-ccn[b-47270rf115] { margin: 8px 0 2px 12px; }

.ahp-ccn a[b-47270rf115] {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
    text-decoration: none;
    font-size: 0.78rem;
    color: var(--crm-text-2, #4b5563);
}

.ahp-ccn a:hover .ahp-ccn-name[b-47270rf115] { text-decoration: underline; }

.ahp-ccn-number[b-47270rf115],
.ahp-ccn-badge[b-47270rf115] {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    font-variant-numeric: tabular-nums;
    color: var(--crm-navy, #0f172a);
}

.ahp-ccn-name[b-47270rf115] { font-weight: 600; }

.ahp-ccn-badge[b-47270rf115] {
    flex-shrink: 0;
    text-decoration: none;
    opacity: 0.7;
}

.ahp-ccn-badge:hover[b-47270rf115] { opacity: 1; text-decoration: underline; }

.ahp-more[b-47270rf115] {
    margin: 4px 0 0 10px;
    padding: 0;
    border: 0;
    background: none;
    font-size: 0.78rem;
    color: var(--crm-teal-600, #009E88);
}

.ahp-more:hover[b-47270rf115] { text-decoration: underline; }
.ahp-more:focus-visible[b-47270rf115] { outline: 2px solid var(--crm-teal, #00C5A8); outline-offset: 2px; }

.ahp-backdrop[b-47270rf115] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

/* ── Narrow viewports ─────────────────────────────────
   Below ~1,600px the AccountDetail utility row wraps, so the popover
   anchors to the row (which is `position: relative`) instead of the
   pill and caps at the row width. It can then never leave the content
   column, which the layout shell clips with no scrollbar. */
@media (max-width: 1599.98px) {
    .ahp-anchor[b-47270rf115] { position: static; }
    /* Left-anchored: the row can run wider than the visible column (its right end is off
       screen at narrow widths), and a right-anchored popover then slid under the sidebar. */
    .ahp-popover[b-47270rf115] {
        left: 0;
        right: auto;
        width: min(480px, 100%);
        max-width: 100%;
        transform-origin: top left;
    }
}

/* Phone: a fixed sheet over a tinted backdrop. */
@media (max-width: 640.98px) {
    .ahp-popover[b-47270rf115] {
        position: fixed;
        inset: auto 12px 12px 12px;
        width: auto;
        max-width: none;
        max-height: 80vh;
        border-radius: 14px;
        transform-origin: bottom center;
    }
    .ahp-backdrop[b-47270rf115] { background: rgba(15, 23, 42, 0.35); }
}
/* /Shared/AccountLeadershipStrip.razor.rz.scp.css */
/* Pill — matches the visual shape of Engagement / Hierarchy pills in
   the AccountDetail utility row. */

.als-anchor[b-dg7znuyun5] {
    position: relative;
    display: inline-flex;
}

.als-pill[b-dg7znuyun5] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: 999px;
    text-align: left;
    cursor: pointer;
    font-size: 0.8rem;
    color: var(--crm-text-2, #4b5563);
    transition: background 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
    white-space: nowrap;
}

.als-pill:hover[b-dg7znuyun5],
.als-pill.is-active[b-dg7znuyun5] {
    background: var(--crm-bg, #f5f7fa);
    border-color: var(--crm-border-2, #c5d3e8);
}

.als-pill.is-active[b-dg7znuyun5] {
    box-shadow: 0 0 0 3px rgba(0, 197, 168, 0.12);
}

.als-pill-label[b-dg7znuyun5] {
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.als-pill-label .bi[b-dg7znuyun5] {
    color: var(--crm-teal-600, #009E88);
}

.als-pill-count[b-dg7znuyun5] {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--crm-navy, #0f172a);
    background: var(--crm-bg, #f5f7fa);
    padding: 2px 8px;
    border-radius: 999px;
    font-variant-numeric: tabular-nums;
}

.als-pill-chev[b-dg7znuyun5] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.85rem;
    transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1), color 140ms ease;
}

.als-pill.is-active .als-pill-chev[b-dg7znuyun5] {
    transform: rotate(180deg);
    color: var(--crm-navy);
}

/* ── Popover ──────────────────────────────────────────
   Anchored below-LEFT of the pill since leadership sits at the left
   end of the utility row (or wherever placed). */

.als-popover[b-dg7znuyun5] {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    width: 320px;
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 120px);
    display: flex;
    flex-direction: column;
    z-index: 1050;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: saturate(140%) blur(8px);
    -webkit-backdrop-filter: saturate(140%) blur(8px);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 12px;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.06),
        0 16px 32px -10px rgba(15, 23, 42, 0.22);
    transform-origin: top left;
    animation: als-popover-in-b-dg7znuyun5 180ms cubic-bezier(0.16, 1, 0.3, 1);
    overflow: hidden;
}

@keyframes als-popover-in-b-dg7znuyun5 {
    from { opacity: 0; transform: translateY(-6px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0)   scale(1);    }
}

.als-popover-head[b-dg7znuyun5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    background: var(--crm-bg, #f5f7fa);
}

.als-popover-title[b-dg7znuyun5] {
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    font-size: 0.9rem;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.als-popover-title .bi[b-dg7znuyun5] {
    color: var(--crm-teal-600, #009E88);
}

.als-popover-body[b-dg7znuyun5] {
    padding: 8px 12px;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

.als-backdrop[b-dg7znuyun5] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

/* ── Narrow viewports ─────────────────────────────────
   Below ~1,600px the AccountDetail utility row wraps, so the popover
   anchors to the row (which is `position: relative`) instead of the
   pill and caps at the row width. It can then never leave the content
   column, which the layout shell clips with no scrollbar. */
@media (max-width: 1599.98px) {
    .als-anchor[b-dg7znuyun5] { position: static; }
    .als-popover[b-dg7znuyun5] { max-width: 100%; }
}

/* Phone: a fixed sheet over a tinted backdrop. */
@media (max-width: 640.98px) {
    .als-popover[b-dg7znuyun5] {
        position: fixed;
        inset: auto 12px 12px 12px;
        width: auto;
        max-width: none;
        max-height: 80vh;
        border-radius: 14px;
        transform-origin: bottom center;
    }
    .als-backdrop[b-dg7znuyun5] { background: rgba(15, 23, 42, 0.35); }
}

/* Seat rows inside the popover */
.als-seat-row[b-dg7znuyun5] {
    display: grid;
    grid-template-columns: 96px 1fr;
    align-items: baseline;
    gap: 12px;
    padding: 8px 4px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
}

.als-seat-row:last-child[b-dg7znuyun5] {
    border-bottom: none;
}

.als-seat-role[b-dg7znuyun5] {
    font-size: 0.66rem;
    font-weight: 700;
    color: var(--crm-text-3, #9ca3af);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.als-seat-name[b-dg7znuyun5] {
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--crm-navy, #0f172a);
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.als-seat-name:hover[b-dg7znuyun5] {
    color: var(--crm-teal-600, #009E88);
    text-decoration: underline;
}

/* Empty-state CTA — adopts the pill silhouette but with a dashed
   border so it reads as "fill this in." */
.als-empty-cta[b-dg7znuyun5] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--crm-teal-700, #00735f);
    background: var(--crm-white, #fff);
    border: 1px dashed var(--crm-border-2, #c5d3e8);
    border-radius: 999px;
    cursor: pointer;
    transition: background 140ms ease, border-color 140ms ease, color 140ms ease;
}

.als-empty-cta:hover[b-dg7znuyun5] {
    background: var(--crm-teal-50, #e6f9f5);
    border-color: var(--crm-teal, #00C5A8);
    border-style: solid;
    color: var(--crm-teal-600, #009E88);
}

.als-empty-cta .bi[b-dg7znuyun5] {
    font-size: 0.95rem;
}
/* /Shared/AccountLegislatorsPanel.razor.rz.scp.css */
/* The primary district is the fact people open this panel for, so it gets the one strong
   element: the district number as a navy tile. Everything else stays small and quiet. */
.lp-primary[b-uc6xp58ozc] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.lp-numeral[b-uc6xp58ozc] {
    flex: 0 0 auto;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: var(--crm-r-sm, 6px);
    background: var(--crm-navy);
    color: var(--crm-white, #fff);
    font-size: 1.35rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lp-primary-text[b-uc6xp58ozc] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.lp-review[b-uc6xp58ozc] {
    background: #fff8e6;
    border: 1px solid #f0d68a;
    border-radius: var(--crm-r-sm, 6px);
    color: #6b4e00;
    padding: 0.4rem 0.55rem;
    margin-bottom: 0.6rem;
}

.lp-row[b-uc6xp58ozc] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    margin-bottom: 0.5rem;
}

.lp-row-label[b-uc6xp58ozc] {
    flex: 0 0 5.25rem;
    font-size: 0.8rem;
    color: var(--crm-text-3, #6b7280);
}

.lp-chips[b-uc6xp58ozc] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    min-width: 0;
}

.lp-chip[b-uc6xp58ozc] {
    display: inline-flex;
    align-items: center;
    gap: 0.1rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--crm-teal-700, #0f766e);
    border: 1px solid var(--crm-teal, #14b8a6);
    background: var(--crm-teal-50, #f0fdfa);
    border-radius: 999px;
    padding: 0.1rem 0.55rem;
}

/* A suggestion is provisional until someone decides — dashed, and not yet tinted. */
.lp-chip-suggested[b-uc6xp58ozc] {
    border-style: dashed;
    background: transparent;
    color: var(--crm-text-2, #4b5563);
    border-color: var(--crm-border-2, #cbd5e1);
}

.lp-chip-x[b-uc6xp58ozc] {
    border: 0;
    background: none;
    padding: 0 0.1rem;
    line-height: 1;
    color: inherit;
    cursor: pointer;
    border-radius: 4px;
}

.lp-chip-x:hover[b-uc6xp58ozc] {
    background: rgba(var(--crm-navy-rgb, 13, 36, 71), 0.08);
}

.lp-chip-x:focus-visible[b-uc6xp58ozc],
.lp-link:focus-visible[b-uc6xp58ozc] {
    outline: 2px solid var(--crm-teal, #14b8a6);
    outline-offset: 1px;
}

.lp-link[b-uc6xp58ozc] {
    border: 0;
    background: none;
    padding: 0;
    font-size: 0.8rem;
    color: var(--crm-teal-700, #0f766e);
    text-decoration: underline;
    cursor: pointer;
}

.lp-link:disabled[b-uc6xp58ozc] {
    opacity: 0.5;
    cursor: default;
}

.lp-edit[b-uc6xp58ozc] {
    border-top: 1px dashed var(--crm-border, #e5e7eb);
    padding-top: 0.6rem;
    margin-bottom: 0.25rem;
}
/* /Shared/AccountLogoPanel.razor.rz.scp.css */
.alp[b-6ym3u8d0pf] {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

/* Fixed frame so a wordmark and a square badge both sit sensibly, and the form
   doesn't reflow as different logos load. */
.alp-preview[b-6ym3u8d0pf] {
    flex: 0 0 auto;
    width: 132px;
    height: 88px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 6px;
    background: var(--crm-white, #fff);
    overflow: hidden;
    padding: 8px;
}

.alp-preview img[b-6ym3u8d0pf] {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.alp-empty[b-6ym3u8d0pf] {
    color: var(--crm-text-3, #adb5bd);
    font-size: 1.6rem;
    line-height: 1;
}

.alp-controls[b-6ym3u8d0pf] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.alp-hint[b-6ym3u8d0pf] {
    font-size: 0.75rem;
    color: var(--crm-text-3, #6c757d);
}

.alp-error[b-6ym3u8d0pf] {
    font-size: 0.8rem;
    color: #B3261E;
}

.alp-remove[b-6ym3u8d0pf] {
    align-self: flex-start;
    font-size: 0.8rem;
    color: #B3261E;
}
/* /Shared/AccountPartnershipsPanel.razor.rz.scp.css */
.apn[b-cjwy398m90] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.apn-head[b-cjwy398m90] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.apn-title[b-cjwy398m90] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-weight: 600;
    color: var(--crm-navy, #0d2447);
}

.apn-count[b-cjwy398m90] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--crm-text-3, #6c757d);
}

/* One block per program year. The year and level lead because that's what
   staff scan for; payment detail sits underneath in a quieter row. */
.apn-row[b-cjwy398m90] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 12px;
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 6px;
    background: var(--crm-white, #fff);
}

.apn-row.is-editing[b-cjwy398m90] {
    border-color: var(--crm-teal, #04cdaf);
}

.apn-row-main[b-cjwy398m90] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px;
}

.apn-year[b-cjwy398m90] {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--crm-navy, #0d2447);
    font-variant-numeric: tabular-nums;
}

.apn-level[b-cjwy398m90] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 1px 9px;
    border: 1px solid var(--crm-border, #dee2e6);
    color: var(--crm-text-2, #495057);
    background: var(--crm-bg, #f5f7fa);
}

/* Level is a commercial rank, so it earns a little colour — muted enough not to
   compete with the record itself. */
.apn-level--platinum[b-cjwy398m90] { background: #EEF0F4; border-color: #C6CCD6; color: #3E4756; }
.apn-level--gold[b-cjwy398m90]     { background: #FBF2DC; border-color: #E3C77E; color: #7A5B12; }
.apn-level--silver[b-cjwy398m90]   { background: #F1F3F5; border-color: #CBD2D9; color: #4B5563; }
.apn-level--bronze[b-cjwy398m90]   { background: #F7EDE4; border-color: #DDBB9B; color: #7A5030; }
.apn-level--custom[b-cjwy398m90]   { background: var(--crm-bg, #f5f7fa); }

.apn-total[b-cjwy398m90] {
    font-size: 0.9rem;
    font-variant-numeric: tabular-nums;
    color: var(--crm-text, #212529);
}

.apn-flag[b-cjwy398m90] {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--crm-teal-600, #04a58c);
    background: var(--crm-teal-50, #e8f7f4);
    border: 1px solid var(--crm-teal, #04cdaf);
    border-radius: 4px;
    padding: 0 6px;
}

.apn-row-meta[b-cjwy398m90] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    font-size: 0.78rem;
    color: var(--crm-text-3, #6c757d);
}

.apn-pay[b-cjwy398m90] { font-weight: 500; }
.apn-pay--paid[b-cjwy398m90]          { color: #1E7A4B; }
.apn-pay--outstanding[b-cjwy398m90]   { color: #A6551A; }
.apn-pay--partiallypaid[b-cjwy398m90] { color: #A6551A; }

.apn-note[b-cjwy398m90] {
    font-size: 0.78rem;
    color: var(--crm-text-2, #495057);
}

/* Shown only on records recovered from the old free-text field. */
.apn-source[b-cjwy398m90] {
    font-size: 0.75rem;
    color: var(--crm-text-3, #6c757d);
    background: var(--crm-bg, #f5f7fa);
    border-radius: 4px;
    padding: 4px 8px;
}

.apn-row-actions[b-cjwy398m90] {
    display: flex;
    gap: 12px;
    font-size: 0.78rem;
}

.apn-danger[b-cjwy398m90] { color: #B3261E; }

.apn-form[b-cjwy398m90] {
    border: 1px solid var(--crm-teal, #04cdaf);
    border-radius: 6px;
    padding: 12px;
    background: var(--crm-white, #fff);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.apn-form-actions[b-cjwy398m90] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}
/* /Shared/ActivityCommentThread.razor.rz.scp.css */
/* ── Toggle button ────────────────────────────── */
.act-toggle[b-2mq6b2jh76] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.5rem;
    padding: 0.2rem 0;
    background: none;
    border: none;
    font-family: 'Outfit', sans-serif;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--crm-text-3);
    cursor: pointer;
    transition: color var(--crm-fast) ease;
}

.act-toggle:hover[b-2mq6b2jh76] {
    color: var(--crm-navy);
}

/* ── Thread container ────────────────────────── */
.act-thread[b-2mq6b2jh76] {
    margin-top: 0.6rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    background: var(--crm-bg);
}

.act-thread-header[b-2mq6b2jh76] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.4rem 0.7rem;
    border-bottom: 1px solid var(--crm-border);
}

.act-thread-title[b-2mq6b2jh76] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
}

.act-collapse-btn[b-2mq6b2jh76] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    background: none;
    border: 1px solid transparent;
    border-radius: var(--crm-r-sm);
    color: var(--crm-text-3);
    cursor: pointer;
    transition: all var(--crm-fast) ease;
}

.act-collapse-btn:hover[b-2mq6b2jh76] {
    background: var(--crm-white);
    border-color: var(--crm-border);
    color: var(--crm-text);
}

/* ── Comment list ────────────────────────────── */
.act-comment-list[b-2mq6b2jh76] {
    padding: 0.5rem 0.7rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.act-comment[b-2mq6b2jh76] {
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--crm-border);
}

.act-comment:last-child[b-2mq6b2jh76] {
    border-bottom: none;
    padding-bottom: 0;
}

/* ── Comment header ──────────────────────────── */
.act-comment-header[b-2mq6b2jh76] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.act-comment-author[b-2mq6b2jh76] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--crm-text);
}

.act-comment-time[b-2mq6b2jh76] {
    font-size: 0.7rem;
    color: var(--crm-text-3);
}

.act-comment-edited[b-2mq6b2jh76] {
    font-size: 0.65rem;
    font-style: italic;
    color: var(--crm-text-3);
    opacity: 0.7;
}

.act-comment-edit-btn[b-2mq6b2jh76] {
    background: none;
    border: none;
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--crm-text-3);
    cursor: pointer;
    padding: 0;
    margin-left: auto;
    transition: color var(--crm-fast) ease;
}

.act-comment-edit-btn:hover[b-2mq6b2jh76] {
    color: var(--crm-navy);
}

/* ── Comment body ────────────────────────────── */
.act-comment-body[b-2mq6b2jh76] {
    margin: 0.2rem 0 0;
    font-size: 0.82rem;
    line-height: 1.5;
    color: var(--crm-text-2);
    white-space: pre-line;
}

/* ── Comment edit ────────────────────────────── */
.act-comment-edit[b-2mq6b2jh76] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.act-comment-edit-actions[b-2mq6b2jh76] {
    display: flex;
    gap: 0.3rem;
    justify-content: flex-end;
}

/* ── Comment type badges ─────────────────────── */
.act-type-badge[b-2mq6b2jh76] {
    display: inline-block;
    font-family: 'Outfit', sans-serif;
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
    line-height: 1.4;
}

.act-type-followupneeded[b-2mq6b2jh76] {
    background: #FFF7ED;
    color: #C2410C;
    border: 1px solid #FDBA74;
}

.act-type-keyinsight[b-2mq6b2jh76] {
    background: #EFF6FF;
    color: #1D4ED8;
    border: 1px solid #93C5FD;
}

.act-type-actionitem[b-2mq6b2jh76] {
    background: #FEF2F2;
    color: #B91C1C;
    border: 1px solid #FCA5A5;
}

/* ── Reactions row ───────────────────────────── */
.act-reactions[b-2mq6b2jh76] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-top: 0.3rem;
    min-height: 22px;
}

.act-reaction-pill[b-2mq6b2jh76] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.1rem 0.4rem;
    border: 1px solid var(--crm-border);
    border-radius: 999px;
    background: var(--crm-white);
    cursor: pointer;
    transition: all var(--crm-fast) ease;
    font-size: 0.72rem;
    line-height: 1;
}

.act-reaction-pill:hover[b-2mq6b2jh76] {
    border-color: var(--crm-navy);
    background: #F0F4F8;
}

.act-reaction-pill--active[b-2mq6b2jh76] {
    border-color: var(--crm-teal);
    background: #ECFDF5;
}

.act-reaction-pill--active:hover[b-2mq6b2jh76] {
    border-color: var(--crm-teal);
    background: #D1FAE5;
}

/* Read-only viewers see the tally but can't toggle it — no hover, no pointer. */
.act-reaction-pill:disabled[b-2mq6b2jh76] {
    cursor: default;
    color: inherit;
}

.act-reaction-pill:disabled:hover[b-2mq6b2jh76] {
    border-color: var(--crm-border);
    background: var(--crm-white);
}

.act-reaction-pill--active:disabled:hover[b-2mq6b2jh76] {
    border-color: var(--crm-teal);
    background: #ECFDF5;
}

.act-reaction-emoji[b-2mq6b2jh76] {
    font-size: 0.78rem;
    line-height: 1;
}

.act-reaction-count[b-2mq6b2jh76] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--crm-text-2);
}

/* ── Reaction add button + picker ────────────── */
.act-reaction-add-wrap[b-2mq6b2jh76] {
    position: relative;
    display: inline-flex;
}

.act-reaction-add[b-2mq6b2jh76] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 1px dashed var(--crm-border);
    border-radius: 999px;
    background: none;
    color: var(--crm-text-3);
    font-size: 0.78rem;
    font-weight: 500;
    cursor: pointer;
    transition: all var(--crm-fast) ease;
}

.act-reaction-add:hover[b-2mq6b2jh76] {
    border-color: var(--crm-navy);
    color: var(--crm-navy);
    background: var(--crm-white);
}

.act-reaction-picker[b-2mq6b2jh76] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    display: flex;
    gap: 0.15rem;
    padding: 0.3rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    box-shadow: var(--crm-shadow-xs);
    z-index: 10;
    white-space: nowrap;
}

.act-reaction-picker-btn[b-2mq6b2jh76] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: none;
    border-radius: var(--crm-r-sm);
    background: none;
    font-size: 0.9rem;
    cursor: pointer;
    transition: background var(--crm-fast) ease;
}

.act-reaction-picker-btn:hover[b-2mq6b2jh76] {
    background: var(--crm-bg);
}

/* ── Compose area ────────────────────────────── */
.act-compose[b-2mq6b2jh76] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.5rem 0.7rem;
    border-top: 1px solid var(--crm-border);
    background: var(--crm-white);
}

.act-compose-types[b-2mq6b2jh76] {
    display: flex;
    gap: 0.3rem;
}

.act-compose-type-btn[b-2mq6b2jh76] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.6rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    padding: 0.12rem 0.45rem;
    border-radius: 3px;
    cursor: pointer;
    transition: all var(--crm-fast) ease;
    opacity: 0.55;
}

.act-compose-type-btn:hover[b-2mq6b2jh76] {
    opacity: 0.85;
}

.act-compose-type-btn--active[b-2mq6b2jh76] {
    opacity: 1;
}

.act-compose-row[b-2mq6b2jh76] {
    display: flex;
    gap: 0.4rem;
}

.act-compose-input[b-2mq6b2jh76] {
    flex: 1;
    font-size: 0.82rem;
    resize: none;
    min-height: 32px;
}

.act-compose-btn[b-2mq6b2jh76] {
    align-self: flex-end;
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.25rem 0.7rem;
}
/* /Shared/ActivityForm.razor.rz.scp.css */
.af-pickers[b-rj4f2xgrmf] {
    display: flex;
    flex-direction: column;
    gap: .65rem;
    padding-left: .5rem;
    border-left: 1px solid var(--crm-border);
}

@media (max-width: 991.98px) {
    /* Below lg breakpoint the right column wraps under the left column.
       Drop the divider so the pickers don't look stranded. */
    .af-pickers[b-rj4f2xgrmf] {
        padding-left: 0;
        border-left: 0;
        padding-top: .5rem;
        border-top: 1px solid var(--crm-border);
    }
}

.af-picker-block[b-rj4f2xgrmf] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.af-picker-block .form-label[b-rj4f2xgrmf] {
    margin-bottom: 0;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--crm-text-3);
    font-weight: 600;
}
/* /Shared/ActivityListItem.razor.rz.scp.css */
.ali-row[b-88avo4585s] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
}

.ali-content[b-88avo4585s] {
    flex: 1;
    min-width: 0;
}

.ali-header[b-88avo4585s] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.ali-subject[b-88avo4585s] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.9rem;
    color: var(--crm-text);
}

.ali-rollup-badge[b-88avo4585s] {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    font-size: .68rem;
    font-weight: 500;
    color: var(--crm-navy);
    background: var(--crm-teal-50, color-mix(in srgb, var(--crm-teal) 8%, transparent));
    border: 1px solid color-mix(in srgb, var(--crm-teal) 25%, transparent);
    border-radius: 999px;
    padding: .1rem .5rem;
    text-decoration: none;
    line-height: 1.4;
}

.ali-rollup-badge:hover[b-88avo4585s] {
    background: color-mix(in srgb, var(--crm-teal) 16%, transparent);
    color: var(--crm-navy);
}

.ali-rollup-badge i[b-88avo4585s] {
    font-size: .65rem;
}

.ali-type-badge[b-88avo4585s] {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    padding: 0.15rem 0.45rem;
    border-radius: var(--crm-r-sm);
}

.ali-type-call[b-88avo4585s]    { background: var(--crm-navy-400); color: #fff; }
.ali-type-email[b-88avo4585s]   { background: #6366F1; color: #fff; }
.ali-type-meeting[b-88avo4585s] { background: var(--crm-teal); color: #fff; }
.ali-type-note[b-88avo4585s]    { background: var(--crm-border-2); color: var(--crm-text-2); }

.ali-done-badge[b-88avo4585s] {
    background: #059669;
    color: #fff;
    font-size: 0.65rem;
    font-weight: 600;
    padding: 0.1rem 0.35rem;
    border-radius: var(--crm-r-sm);
}

.ali-notes[b-88avo4585s] {
    margin: 0.35rem 0 0;
    font-size: 0.82rem;
    color: var(--crm-text-3);
    line-height: 1.45;
    white-space: pre-line;
}

.ali-meta[b-88avo4585s] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
    margin-top: 0.3rem;
    font-size: 0.75rem;
    color: var(--crm-text-3);
}

.ali-meta-item[b-88avo4585s] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.ali-meta-link[b-88avo4585s] {
    color: var(--crm-navy);
    text-decoration: none;
    font-weight: 500;
}

.ali-meta-link:hover[b-88avo4585s] {
    text-decoration: underline;
}

.ali-created[b-88avo4585s] {
    opacity: 0.7;
}

.ali-actions[b-88avo4585s] {
    display: flex;
    align-items: center;
    gap: 0.2rem;
    flex-shrink: 0;
    opacity: 0;
    transition: opacity var(--crm-fast) ease;
}

:hover > .ali-row > .ali-actions[b-88avo4585s],
.ali-actions:focus-within[b-88avo4585s] {
    opacity: 1;
}

.ali-action-btn[b-88avo4585s] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border-radius: var(--crm-r-sm);
    color: var(--crm-text-3);
    background: transparent;
    border: 1px solid transparent;
    transition: all var(--crm-fast) ease;
}

.ali-action-btn:hover[b-88avo4585s] {
    background: var(--crm-bg);
    border-color: var(--crm-border);
    color: var(--crm-text);
}

.ali-done-btn:hover[b-88avo4585s] {
    color: #059669;
    border-color: #059669;
    background: #ecfdf5;
}

.ali-delete-btn:hover[b-88avo4585s] {
    color: #DC2626;
    border-color: #DC2626;
    background: #fef2f2;
}
/* /Shared/AiAssistantDock.razor.rz.scp.css */
/* ─────────────────────────────────────────────────────────
   AI Assistant Dock — everpresent, draggable, resizable.
   Anchored bottom-right of the viewport. Uses existing
   --crm-* tokens from app.css so it matches the app theme.
   ───────────────────────────────────────────────────────── */

.ai-dock[b-zomap9ng16] {
    position: fixed;
    right: var(--dock-x, 24px);
    bottom: var(--dock-y, 24px);
    z-index: 1050;
    font-family: inherit;
    user-select: text;
    /* Animate the pill ↔ panel transition. Only the size + border-radius
       need transitioning; content children fade in separately. Skipping
       `right`/`bottom` so live drag stays pixel-exact. */
    transition:
        width 0.22s cubic-bezier(0.16, 1, 0.3, 1),
        height 0.22s cubic-bezier(0.16, 1, 0.3, 1),
        border-radius 0.18s ease;
    will-change: width, height;
}

/* Suppress transitions while the user is dragging/resizing — JS sets this
   class via the pointer handlers so the dock tracks the pointer exactly
   without easing lag. */
.ai-dock--interacting[b-zomap9ng16] {
    transition: none !important;
}

/* ── Collapsed state: round teal pill ────────────────────────────── */
.ai-dock--pill[b-zomap9ng16] {
    width: 56px;
    height: 56px;
    /* No overflow: hidden here — the pill has nothing to clip, and the
       drop-shadow (6px offset + 18px blur + hover bump) needs to render
       outside the 56×56 box. */
}

.ai-dock-pill[b-zomap9ng16] {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    animation: ai-dock-fade-in-b-zomap9ng16 0.2s ease-out;
    border: none;
    cursor: pointer;
    color: #fff;
    background: linear-gradient(135deg, #00C5A8 0%, #0D2447 100%);
    box-shadow: 0 6px 18px rgba(0, 197, 168, 0.35), 0 2px 6px rgba(0, 0, 0, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.ai-dock-pill:hover[b-zomap9ng16] {
    transform: translateY(-2px) scale(1.04);
    box-shadow: 0 10px 22px rgba(0, 197, 168, 0.45), 0 3px 8px rgba(0, 0, 0, 0.25);
}

/* ── Expanded state: the panel ───────────────────────────────────── */
.ai-dock--open[b-zomap9ng16] {
    width: var(--dock-w, 380px);
    height: var(--dock-h, 560px);
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color);
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.18), 0 6px 20px rgba(0, 0, 0, 0.08);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ai-dock-header[b-zomap9ng16] {
    padding: 0.65rem 0.9rem;
    background: linear-gradient(135deg, #0D2447, #143a6b);
    color: #fff;
    cursor: grab;
    display: flex;
    align-items: center;
    justify-content: space-between;
    user-select: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    animation: ai-dock-fade-in-b-zomap9ng16 0.2s ease-out 0.05s backwards;
}

@keyframes ai-dock-fade-in-b-zomap9ng16 {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.ai-dock-header:active[b-zomap9ng16] {
    cursor: grabbing;
}

.ai-dock-title[b-zomap9ng16] {
    display: flex;
    align-items: center;
    min-width: 0;
}

.ai-dock-context[b-zomap9ng16] {
    font-size: 0.72rem;
    padding: 0.1rem 0.45rem;
    background: rgba(0, 197, 168, 0.15);
    color: #7df0d9;
    border-radius: 999px;
    border: 1px solid rgba(0, 197, 168, 0.25);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 180px;
}

.ai-dock-header-actions[b-zomap9ng16] {
    display: flex;
    gap: 0.25rem;
}

.ai-dock-iconbtn[b-zomap9ng16] {
    background: transparent;
    border: none;
    color: rgba(255, 255, 255, 0.75);
    width: 28px;
    height: 28px;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, color 0.15s;
}

.ai-dock-iconbtn:hover[b-zomap9ng16] {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}

/* ── Turn list ───────────────────────────────────────────────────── */
.ai-dock-turns[b-zomap9ng16] {
    flex: 1;
    overflow-y: auto;
    padding: 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    background: var(--bs-tertiary-bg, #f7f8fa);
}

.ai-turn[b-zomap9ng16] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.ai-turn--user[b-zomap9ng16] { align-items: flex-end; }
.ai-turn--assistant[b-zomap9ng16] { align-items: flex-start; }

.ai-bubble[b-zomap9ng16] {
    max-width: 88%;
    padding: 0.55rem 0.8rem;
    border-radius: 12px;
    font-size: 0.9rem;
    line-height: 1.45;
    white-space: pre-wrap;
    word-wrap: break-word;
}

.ai-bubble--user[b-zomap9ng16] {
    background: #0D2447;
    color: #fff;
    border-bottom-right-radius: 4px;
}

.ai-bubble--assistant[b-zomap9ng16] {
    background: #fff;
    color: var(--bs-body-color);
    border: 1px solid var(--bs-border-color-translucent, #e5e7eb);
    border-bottom-left-radius: 4px;
}

.ai-bubble--error[b-zomap9ng16] {
    background: rgba(220, 53, 69, 0.08);
    color: #a32a37;
    border: 1px solid rgba(220, 53, 69, 0.25);
}

/* ── Tool invocation card (read tools) ───────────────────────────── */
.ai-tool-card[b-zomap9ng16] {
    width: 88%;
    background: rgba(13, 36, 71, 0.03);
    border: 1px solid var(--bs-border-color-translucent);
    border-left: 3px solid #00C5A8;
    border-radius: 8px;
    padding: 0.45rem 0.7rem;
    font-size: 0.8rem;
}

.ai-tool-card--write[b-zomap9ng16] {
    border-left-color: #ffb020;
    background: rgba(255, 176, 32, 0.06);
}

.ai-tool-card-head[b-zomap9ng16] {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    color: var(--bs-body-color);
}

.ai-tool-card-summary[b-zomap9ng16] {
    color: var(--bs-secondary-color, #6b7280);
}

.ai-tool-card-details[b-zomap9ng16] {
    margin-top: 0.35rem;
    font-size: 0.72rem;
}

.ai-tool-card-details > summary[b-zomap9ng16] {
    cursor: pointer;
    color: var(--bs-secondary-color, #6b7280);
    user-select: none;
    list-style: none;
    padding: 0.1rem 0.25rem;
    border-radius: 4px;
}

.ai-tool-card-details > summary[b-zomap9ng16]::-webkit-details-marker {
    display: none;
}

.ai-tool-card-details > summary[b-zomap9ng16]::before {
    content: "▸";
    display: inline-block;
    width: 0.9rem;
    color: var(--bs-secondary-color, #6b7280);
}

.ai-tool-card-details[open] > summary[b-zomap9ng16]::before {
    content: "▾";
}

.ai-tool-card-details > summary:hover[b-zomap9ng16] {
    background: rgba(13, 36, 71, 0.04);
}

.ai-tool-card-section-label[b-zomap9ng16] {
    margin-top: 0.35rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.65rem;
    color: var(--bs-secondary-color, #6b7280);
}

.ai-tool-card-json[b-zomap9ng16] {
    margin: 0.15rem 0 0.35rem 0;
    padding: 0.4rem 0.55rem;
    background: rgba(13, 36, 71, 0.05);
    border-radius: 6px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.7rem;
    line-height: 1.35;
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 14rem;
    overflow: auto;
}

/* ── Confirmation card (write tools) ─────────────────────────────── */
.ai-confirm-card[b-zomap9ng16] {
    width: 92%;
    background: #fffbea;
    border: 1px solid #f5d67a;
    border-radius: 10px;
    padding: 0.7rem 0.85rem;
    font-size: 0.87rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Safety-check flagged a potential mismatch. Shift from amber to red accent. */
.ai-confirm-card--warned[b-zomap9ng16] {
    background: #fff0ed;
    border-color: #f0a8a0;
    box-shadow: 0 0 0 2px rgba(220, 53, 69, 0.12);
}

.ai-confirm-warning[b-zomap9ng16] {
    background: rgba(220, 53, 69, 0.08);
    border: 1px solid rgba(220, 53, 69, 0.25);
    border-radius: 6px;
    padding: 0.4rem 0.55rem;
    color: #991b1b;
    font-size: 0.8rem;
    display: flex;
    align-items: flex-start;
    gap: 0.3rem;
    line-height: 1.35;
}

.ai-confirm-head[b-zomap9ng16] {
    display: flex;
    align-items: center;
    color: #856404;
}

.ai-confirm-list[b-zomap9ng16] {
    background: #fff;
    border: 1px solid #f1e0a3;
    border-radius: 6px;
    max-height: 180px;
    overflow-y: auto;
    padding: 0.2rem 0.4rem;
}

.ai-confirm-item[b-zomap9ng16] {
    padding: 0.3rem 0.2rem;
    border-bottom: 1px solid #faf0cb;
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.8rem;
}

.ai-confirm-item:last-child[b-zomap9ng16] { border-bottom: none; }

.ai-confirm-item-title[b-zomap9ng16] {
    color: var(--bs-body-color);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1 1 auto;
    min-width: 0;
}

.ai-confirm-item-state[b-zomap9ng16] {
    color: var(--bs-secondary-color);
    white-space: nowrap;
    font-size: 0.75rem;
}

.ai-confirm-overflow[b-zomap9ng16] {
    text-align: center;
    padding: 0.3rem;
    font-size: 0.75rem;
    color: var(--bs-secondary-color);
}

/* A plan card: every write of the job, numbered in the order it runs. */
.ai-plan-steps[b-zomap9ng16] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.ai-plan-step[b-zomap9ng16] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

.ai-plan-step-head[b-zomap9ng16] {
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
    font-size: 0.82rem;
    min-width: 0;
}

.ai-plan-step-num[b-zomap9ng16] {
    flex: 0 0 auto;
    width: 1.3rem;
    height: 1.3rem;
    border-radius: 50%;
    background: #f1e0a3;
    color: #856404;
    font-size: 0.72rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ai-plan-step-desc[b-zomap9ng16] {
    color: var(--bs-body-color);
    min-width: 0;
    overflow-wrap: anywhere;
}

.ai-plan-step-note[b-zomap9ng16] {
    font-size: 0.72rem;
    color: var(--bs-secondary-color);
    padding-left: 1.75rem;
}

.ai-plan-step .ai-confirm-list[b-zomap9ng16] {
    margin-left: 1.75rem;
}

.ai-plan-more[b-zomap9ng16] {
    display: block;
    width: 100%;
    background: none;
    border: none;
    padding: 0.3rem;
    font-size: 0.75rem;
    color: var(--bs-primary, #0d2447);
    text-decoration: underline;
    cursor: pointer;
}

.ai-confirm-actions[b-zomap9ng16] {
    display: flex;
    gap: 0.4rem;
    justify-content: flex-end;
}

/* ── Thread switcher (slides over the turns area) ────────────────── */
.ai-dock-threadlist[b-zomap9ng16] {
    position: absolute;
    top: 54px; /* sits under the header */
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--bs-body-bg, #fff);
    border-top: 1px solid var(--bs-border-color);
    display: flex;
    flex-direction: column;
    z-index: 2;
    animation: ai-dock-slide-in-b-zomap9ng16 0.15s ease;
}

@keyframes ai-dock-slide-in-b-zomap9ng16 {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.ai-dock-threadlist-head[b-zomap9ng16] {
    padding: 0.65rem 0.9rem;
    background: linear-gradient(135deg, #0D2447, #143a6b);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.ai-dock-iconbtn--dark[b-zomap9ng16] {
    color: rgba(255, 255, 255, 0.75);
}

.ai-dock-threadlist-items[b-zomap9ng16] {
    list-style: none;
    margin: 0;
    padding: 0;
    overflow-y: auto;
    flex: 1;
}

.ai-dock-threadlist-item[b-zomap9ng16] {
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--bs-border-color-translucent);
    transition: background 0.15s;
}

.ai-dock-threadlist-item:hover[b-zomap9ng16] {
    background: var(--bs-tertiary-bg, #f7f8fa);
}

.ai-dock-threadlist-item--active[b-zomap9ng16] {
    background: rgba(0, 197, 168, 0.08);
    border-left: 3px solid var(--crm-teal, #00C5A8);
}

.ai-dock-threadlist-pick[b-zomap9ng16] {
    flex: 1;
    background: none;
    border: none;
    text-align: left;
    padding: 0.55rem 0.85rem;
    cursor: pointer;
    min-width: 0;
}

.ai-dock-threadlist-pick:disabled[b-zomap9ng16] { cursor: wait; opacity: 0.6; }

.ai-dock-threadlist-title[b-zomap9ng16] {
    font-size: 0.87rem;
    font-weight: 500;
    color: var(--bs-body-color);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ai-dock-threadlist-meta[b-zomap9ng16] {
    font-size: 0.72rem;
    color: var(--bs-secondary-color, #6b7280);
    margin-top: 0.12rem;
}

.ai-dock-threadlist-del[b-zomap9ng16] {
    background: none;
    border: none;
    color: var(--bs-secondary-color, #6b7280);
    width: 32px;
    height: 32px;
    border-radius: 6px;
    cursor: pointer;
    margin-right: 0.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ai-dock-threadlist-del:hover[b-zomap9ng16] {
    background: rgba(220, 53, 69, 0.08);
    color: #a32a37;
}

.ai-dock-threadlist-empty[b-zomap9ng16] {
    padding: 1.5rem;
    text-align: center;
    color: var(--bs-secondary-color);
    font-size: 0.85rem;
}

/* ── Confirmation edit area ──────────────────────────────────────── */
.ai-confirm-edit[b-zomap9ng16] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.ai-confirm-edit-label[b-zomap9ng16] {
    font-size: 0.72rem;
    color: var(--bs-secondary-color);
}

.ai-confirm-edit-textarea[b-zomap9ng16] {
    font-family: var(--bs-font-monospace, ui-monospace, monospace);
    font-size: 0.75rem;
    resize: vertical;
}

.ai-confirm-edit-error[b-zomap9ng16] {
    font-size: 0.72rem;
    color: #a32a37;
    background: rgba(220, 53, 69, 0.08);
    border-radius: 4px;
    padding: 0.25rem 0.45rem;
}

.ai-confirm-edit-formwrap[b-zomap9ng16] {
    background: #fff;
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 6px;
    padding: 0.55rem 0.7rem;
}

.ai-confirm-edit-toggle[b-zomap9ng16] {
    background: none;
    border: none;
    color: var(--bs-primary, #0d2447);
    font-size: 0.72rem;
    padding: 0.15rem 0;
    cursor: pointer;
    text-decoration: underline;
    align-self: flex-start;
}

.ai-confirm-edit-toggle:hover[b-zomap9ng16] {
    color: var(--crm-teal, #00C5A8);
}

/* ── Schema-driven form ──────────────────────────────────────────── */
.ai-sf[b-zomap9ng16] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.ai-sf-row[b-zomap9ng16] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.ai-sf-label[b-zomap9ng16] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--bs-body-color);
    margin-bottom: 0;
    text-transform: none;
}

.ai-sf-required[b-zomap9ng16] {
    color: #a32a37;
    margin-left: 0.15rem;
}

.ai-sf-hint[b-zomap9ng16] {
    font-size: 0.7rem;
    color: var(--bs-secondary-color, #6b7280);
    line-height: 1.3;
}

.ai-sf-array[b-zomap9ng16] {
    font-family: inherit;
}

.ai-sf-empty[b-zomap9ng16] {
    font-size: 0.78rem;
    color: var(--bs-secondary-color);
    font-style: italic;
}

/* ── Input composer ──────────────────────────────────────────────── */
.ai-dock-input[b-zomap9ng16] {
    border-top: 1px solid var(--bs-border-color);
    padding: 0.7rem 0.85rem;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ai-dock-input textarea[b-zomap9ng16] {
    resize: none;
    border-radius: 8px;
}

.ai-dock-input-row[b-zomap9ng16] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.ai-dock-input-left[b-zomap9ng16] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* ── Voice (mic + listening indicator + TTS toggle) ──────────────── */
.ai-dock-iconbtn--on[b-zomap9ng16] {
    background: rgba(0, 197, 168, 0.18);
    color: #7df0d9;
}

.ai-voice-mic[b-zomap9ng16] {
    width: 36px;
    height: 36px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid var(--bs-border-color);
    background: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--bs-secondary-color, #6b7280);
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.ai-voice-mic:hover[b-zomap9ng16] {
    background: rgba(13, 36, 71, 0.05);
    color: #0D2447;
}

.ai-voice-mic--on[b-zomap9ng16] {
    background: #dc3545;
    border-color: #dc3545;
    color: #fff;
    animation: ai-voice-pulse-btn-b-zomap9ng16 1.2s ease-in-out infinite;
}

.ai-voice-mic--on:hover[b-zomap9ng16] {
    background: #b02635;
    color: #fff;
}

.ai-voice-speaker[b-zomap9ng16] {
    width: 36px;
    height: 36px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid var(--bs-border-color);
    background: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--bs-secondary-color, #6b7280);
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.ai-voice-speaker:hover[b-zomap9ng16] {
    background: rgba(13, 36, 71, 0.05);
    color: #0D2447;
}

.ai-voice-speaker--on[b-zomap9ng16] {
    background: rgba(0, 197, 168, 0.12);
    border-color: rgba(0, 197, 168, 0.45);
    color: #007a68;
}

.ai-voice-speaker--on:hover[b-zomap9ng16] {
    background: rgba(0, 197, 168, 0.22);
    color: #006455;
}

@keyframes ai-voice-pulse-btn-b-zomap9ng16 {
    0%, 100% { box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.6); }
    50%      { box-shadow: 0 0 0 7px rgba(220, 53, 69, 0); }
}

.ai-voice-autosend[b-zomap9ng16] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    user-select: none;
    cursor: pointer;
    margin: 0;
}

.ai-voice-autosend input[type="checkbox"][b-zomap9ng16] {
    margin: 0;
}

.ai-voice-listening[b-zomap9ng16] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.6rem;
    margin-bottom: 0.4rem;
    background: rgba(220, 53, 69, 0.08);
    border: 1px solid rgba(220, 53, 69, 0.25);
    border-radius: 8px;
    font-size: 0.8rem;
    color: #991b1b;
    font-weight: 500;
}

.ai-voice-hint[b-zomap9ng16] {
    font-size: 0.7rem;
    font-weight: 400;
    color: var(--bs-secondary-color, #6b7280);
    margin-left: auto;
}

.ai-voice-pulse[b-zomap9ng16] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #dc3545;
    display: inline-block;
    animation: ai-voice-pulse-dot-b-zomap9ng16 1s ease-in-out infinite;
}

@keyframes ai-voice-pulse-dot-b-zomap9ng16 {
    0%, 100% { transform: scale(1); opacity: 1; }
    50%      { transform: scale(1.3); opacity: 0.5; }
}

.ai-voice-error[b-zomap9ng16] {
    margin-bottom: 0.4rem;
    padding: 0.5rem 0.65rem;
    background: #fff3cd;
    border: 1px solid #f5d67a;
    border-left: 3px solid #d68f00;
    border-radius: 6px;
    font-size: 0.8rem;
    color: #5a4300;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.ai-voice-error-head[b-zomap9ng16] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.ai-voice-error-head strong[b-zomap9ng16] {
    color: #4a3700;
}

.ai-voice-error-body[b-zomap9ng16] {
    font-size: 0.72rem;
    line-height: 1.35;
    color: #5a4300;
}

.ai-voice-error-details[b-zomap9ng16] {
    font-size: 0.7rem;
    color: #7a5e00;
}

.ai-voice-error-details summary[b-zomap9ng16] {
    cursor: pointer;
    user-select: none;
    padding: 0.1rem 0;
}

.ai-voice-error-details code[b-zomap9ng16] {
    display: block;
    margin-top: 0.2rem;
    padding: 0.25rem 0.4rem;
    background: rgba(0, 0, 0, 0.04);
    border-radius: 3px;
    font-size: 0.68rem;
    color: #4a3700;
    word-break: break-word;
}

.ai-voice-settings-btn[b-zomap9ng16] {
    padding: 0.15rem 0.35rem;
    color: var(--bs-secondary-color, #6b7280);
}

.ai-voice-settings-btn:hover[b-zomap9ng16] {
    color: #0D2447;
}

.ai-voice-settings[b-zomap9ng16] {
    background: var(--bs-tertiary-bg, #f7f8fa);
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    padding: 0.65rem 0.8rem;
    margin-bottom: 0.45rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ai-voice-settings-head[b-zomap9ng16] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.82rem;
    color: var(--bs-body-color);
}

.ai-voice-settings-row[b-zomap9ng16] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    cursor: pointer;
    user-select: none;
    font-size: 0.82rem;
    margin: 0;
}

.ai-voice-settings-row input[type="checkbox"][b-zomap9ng16] {
    margin-top: 0.2rem;
    flex-shrink: 0;
}

.ai-voice-settings-row small[b-zomap9ng16] {
    font-size: 0.7rem;
    line-height: 1.3;
}

/* ── Resize handle (bottom-right / inside-top-left visually since we anchor BR) ── */
.ai-dock-resize[b-zomap9ng16] {
    position: absolute;
    top: 4px;
    left: 4px;
    width: 18px;
    height: 18px;
    cursor: nwse-resize;
    color: rgba(255, 255, 255, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    transform: rotate(90deg);
}

.ai-dock-resize:hover[b-zomap9ng16] {
    color: rgba(255, 255, 255, 0.9);
}

/* ── Spinner ─────────────────────────────────────────────────────── */
.ai-spin[b-zomap9ng16] {
    display: inline-block;
    animation: ai-spin-kf-b-zomap9ng16 0.9s linear infinite;
}

@keyframes ai-spin-kf-b-zomap9ng16 {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* ── Car mode ─────────────────────────────────────────────────────── */

/* Highlight the car-mode row in the voice settings popover so the
   "single-tap hands-free" affordance reads at a glance. */
.ai-voice-settings-row--carmode[b-zomap9ng16] {
    background: rgba(0, 197, 168, 0.08);
    border: 1px solid rgba(0, 197, 168, 0.25);
    border-radius: 8px;
    padding: 0.55rem 0.6rem;
    margin-bottom: 0.4rem;
}
.ai-voice-settings-row--carmode strong[b-zomap9ng16] {
    color: #007a68;
}

/* In-row chip surfacing car-mode status with one-tap exit. Doubles as a
   reminder when the user has switched away from voice for a moment. */
.ai-dock-carmode-chip[b-zomap9ng16] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    background: rgba(0, 197, 168, 0.12);
    border: 1px solid rgba(0, 197, 168, 0.4);
    color: #007a68;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.ai-dock-carmode-chip:hover[b-zomap9ng16] {
    background: rgba(0, 197, 168, 0.22);
    border-color: rgba(0, 197, 168, 0.6);
}
.ai-dock-carmode-chip-x[b-zomap9ng16] {
    font-size: 0.7rem;
    opacity: 0.7;
}

/* When car mode is on, scale the voice surface up across viewports. The
   hides keep the dock minimally chromed so the user can glance at the
   transcript and tap the mic without hunting. */
.ai-dock--carmode .ai-voice-mic[b-zomap9ng16] {
    width: 64px;
    height: 64px;
    font-size: 1.55rem;
}
.ai-dock--carmode .ai-voice-speaker[b-zomap9ng16] {
    width: 56px;
    height: 56px;
    font-size: 1.35rem;
}
.ai-dock--carmode .ai-dock-input-row .btn-primary[b-zomap9ng16],
.ai-dock--carmode .ai-dock-input-row .btn-outline-danger[b-zomap9ng16] {
    min-height: 56px;
    font-size: 1rem;
}
.ai-dock--carmode .ai-bubble[b-zomap9ng16] {
    font-size: 1.05rem;
    line-height: 1.55;
}
/* Chrome hidden in car mode: thread switcher, settings gear (the popover
   already exposes the toggle), the resize affordance. Header keeps
   minimize/close so the dock can still be backgrounded or dismissed. */
.ai-dock--carmode .ai-dock-context[b-zomap9ng16],
.ai-dock--carmode .ai-voice-settings-btn[b-zomap9ng16],
.ai-dock--carmode .ai-dock-resize[b-zomap9ng16] {
    display: none;
}
.ai-dock--carmode .ai-dock-header-actions .ai-dock-iconbtn[title="Conversation history"][b-zomap9ng16],
.ai-dock--carmode .ai-dock-header-actions .ai-dock-iconbtn[title="New chat"][b-zomap9ng16] {
    display: none;
}

/* Bigger still on mobile, where car mode is the most likely use case. */
@media (max-width: 640px) {
    .ai-dock--carmode .ai-voice-mic[b-zomap9ng16] {
        width: 76px;
        height: 76px;
        font-size: 1.75rem;
    }
    .ai-dock--carmode .ai-voice-speaker[b-zomap9ng16] {
        width: 64px;
        height: 64px;
        font-size: 1.45rem;
    }
}

/* ── Mobile: dock becomes a true bottom sheet ────────────────────── */
@media (max-width: 640px) {
    .ai-dock--open[b-zomap9ng16] {
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        top: auto;
        width: 100% !important;
        height: 90vh !important;
        border-radius: 16px 16px 0 0;
        border-bottom: none;
        box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.18);
    }
    .ai-dock-header[b-zomap9ng16] {
        cursor: default;
        position: relative;
    }
    /* Drag-handle pill at the top of the sheet */
    .ai-dock-header[b-zomap9ng16]::before {
        content: '';
        position: absolute;
        top: 6px;
        left: 50%;
        transform: translateX(-50%);
        width: 40px;
        height: 4px;
        border-radius: 2px;
        background: rgba(255, 255, 255, 0.35);
    }
    .ai-dock-resize[b-zomap9ng16] { display: none; }

    /* Mobile voice prominence: enlarge mic/speaker to ≥48px touch targets,
       give the settings gear a real 44px tap zone. */
    .ai-voice-mic[b-zomap9ng16] {
        width: 52px;
        height: 52px;
        font-size: 1.35rem;
    }
    .ai-voice-speaker[b-zomap9ng16] {
        width: 48px;
        height: 48px;
        font-size: 1.2rem;
    }
    .ai-voice-settings-btn[b-zomap9ng16] {
        width: 44px;
        height: 44px;
        padding: 0;
        font-size: 1.1rem;
    }
    .ai-dock-input-row[b-zomap9ng16] {
        gap: 0.5rem;
        align-items: center;
    }
    .ai-dock-input-left[b-zomap9ng16] {
        gap: 0.5rem;
    }
    .ai-dock-input-row .btn-primary[b-zomap9ng16],
    .ai-dock-input-row .btn-outline-danger[b-zomap9ng16] {
        min-height: 48px;
        padding: 0.5rem 1rem;
    }
}

/* ── Progress indicator ─────────────────────────────────────────────────
   Shown while a turn is in flight so the user always has visible feedback
   even when ShowToolActivity is off. Live label switches between "Thinking…"
   and tool-specific verbs as the agent loop progresses. */
.ai-progress-indicator[b-zomap9ng16] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.7rem;
    background: rgba(0, 197, 168, 0.08);
    border: 1px solid rgba(0, 197, 168, 0.25);
    border-radius: 999px;
    color: var(--bs-secondary-color, #4b5563);
    font-size: 0.78rem;
    font-style: italic;
    max-width: 88%;
}

/* ── Mailto card ────────────────────────────────────────────────────────
   Rendered when compose_mailto_link returns a result. Always visible
   (independent of ShowToolActivity) so the user can act on it. The button
   is a real anchor — the OS handles the mailto: protocol natively. */
.ai-mailto-card[b-zomap9ng16] {
    width: 88%;
    background: linear-gradient(135deg, rgba(0, 197, 168, 0.08), rgba(13, 36, 71, 0.04));
    border: 1px solid rgba(0, 197, 168, 0.35);
    border-radius: 10px;
    padding: 0.7rem 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.ai-mailto-card--empty[b-zomap9ng16] {
    background: rgba(120, 120, 120, 0.06);
    border-color: var(--bs-border-color-translucent);
    color: var(--bs-secondary-color, #6b7280);
    font-size: 0.85rem;
    flex-direction: row;
    align-items: center;
}

.ai-mailto-btn[b-zomap9ng16] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.45rem 0.85rem;
    background: #0d2447;
    color: #fff;
    font-weight: 600;
    text-decoration: none;
    border-radius: 6px;
    align-self: flex-start;
    transition: transform 80ms ease-out, box-shadow 80ms ease-out;
}

.ai-mailto-btn:hover[b-zomap9ng16] {
    color: #fff;
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: 0 3px 10px rgba(13, 36, 71, 0.25);
}

.ai-mailto-meta[b-zomap9ng16] {
    color: var(--bs-secondary-color, #6b7280);
    font-size: 0.75rem;
}

.ai-mailto-warn[b-zomap9ng16] {
    color: #b06a00;
}

/* ── Suggested answers (ask_user) ───────────────────────────────────────
   Hangs off the question bubble above it: the teal rule ties the answers to
   that question rather than reading as another free-standing card. Once the
   user replies, the choices go quiet and the one they picked stays solid. */
.ai-ask-card[b-zomap9ng16] {
    width: 88%;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.1rem 0 0.1rem 0.7rem;
    border-left: 3px solid var(--crm-teal, #00C5A8);
}

.ai-ask-question[b-zomap9ng16] {
    font-size: 0.85rem;
    color: var(--bs-body-color);
    margin-bottom: 0.1rem;
}

.ai-ask-option[b-zomap9ng16] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.05rem;
    width: 100%;
    padding: 0.45rem 0.75rem;
    background: #fff;
    border: 1px solid rgba(13, 36, 71, 0.22);
    border-radius: 10px;
    color: #0d2447;
    text-align: left;
    cursor: pointer;
    transition: background-color 80ms ease-out, border-color 80ms ease-out;
}

.ai-ask-option:hover:not(:disabled)[b-zomap9ng16] {
    background: rgba(0, 197, 168, 0.08);
    border-color: var(--crm-teal, #00C5A8);
}

.ai-ask-option:focus-visible[b-zomap9ng16] {
    outline: 2px solid var(--crm-teal, #00C5A8);
    outline-offset: 2px;
}

.ai-ask-option:disabled[b-zomap9ng16] {
    cursor: default;
}

.ai-ask-option-label[b-zomap9ng16] {
    font-size: 0.86rem;
    font-weight: 600;
    line-height: 1.3;
}

.ai-ask-option-detail[b-zomap9ng16] {
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #6b7280);
    line-height: 1.3;
}

.ai-ask-hint[b-zomap9ng16] {
    font-size: 0.72rem;
    color: var(--bs-secondary-color, #6b7280);
}

.ai-ask-card--answered .ai-ask-option[b-zomap9ng16] {
    opacity: 0.55;
    border-style: dashed;
}

.ai-ask-card--answered .ai-ask-option--chosen[b-zomap9ng16] {
    opacity: 1;
    border-style: solid;
    background: #0d2447;
    border-color: #0d2447;
    color: #fff;
}

.ai-ask-card--answered .ai-ask-option--chosen .ai-ask-option-detail[b-zomap9ng16] {
    color: rgba(255, 255, 255, 0.75);
}

@media (prefers-reduced-motion: reduce) {
    .ai-ask-option[b-zomap9ng16] { transition: none; }
}

/* Second-opinion review could not run. Distinct from ai-confirm-warning (which
   means the reviewer DID run and objected) — this is an absence of evidence, so
   it reads as informational rather than alarming, but must not be invisible. */
.ai-confirm-unreviewed[b-zomap9ng16] {
    display: flex;
    align-items: flex-start;
    gap: .35rem;
    margin-top: .4rem;
    padding: .4rem .55rem;
    border-radius: .375rem;
    border: 1px dashed var(--bs-secondary-border-subtle, #cfd4da);
    background: var(--bs-secondary-bg-subtle, #f4f5f7);
    color: var(--bs-secondary-color, #5c636a);
    font-size: .78rem;
    line-height: 1.3;
}

/* Sources behind a grounded answer. The server always emitted these; the dock
   parsed the frame and dropped it, so "[1]" markers pointed at nothing. */
.ai-citations[b-zomap9ng16] {
    margin: .3rem 0 .1rem;
    padding: .35rem .5rem;
    border-left: 2px solid var(--bs-border-color, #dee2e6);
    font-size: .74rem;
    line-height: 1.35;
}
.ai-citations-label[b-zomap9ng16] {
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 600;
    opacity: .65;
    margin-bottom: .15rem;
}
.ai-citations-list[b-zomap9ng16] { margin: 0; padding-left: 1.1rem; }
.ai-citations-list a[b-zomap9ng16] { text-decoration: none; }
.ai-citations-list a:hover[b-zomap9ng16] { text-decoration: underline; }

/* Token count — quiet by default; it is diagnostic, not the content. */
.ai-usage[b-zomap9ng16] {
    font-size: .68rem;
    opacity: .45;
    margin: .1rem 0 .2rem;
}

/* Markdown blocks inside an assistant bubble. Tight margins so a one-line reply
   still reads as one line rather than a spaced-out document. */
.ai-bubble--assistant .ai-md-p[b-zomap9ng16] { margin: 0 0 .45rem; }
.ai-bubble--assistant .ai-md-p:last-child[b-zomap9ng16] { margin-bottom: 0; }
.ai-bubble--assistant .ai-md-list[b-zomap9ng16] { margin: 0 0 .45rem; padding-left: 1.15rem; }
.ai-bubble--assistant .ai-md-list:last-child[b-zomap9ng16] { margin-bottom: 0; }
.ai-bubble--assistant .ai-md-list li[b-zomap9ng16] { margin-bottom: .12rem; }
.ai-bubble--assistant .ai-md-inline-code[b-zomap9ng16],
.ai-bubble--assistant .ai-md-code[b-zomap9ng16] {
    background: var(--bs-secondary-bg, #f1f3f5);
    border-radius: .25rem;
    font-size: .82em;
}
.ai-bubble--assistant .ai-md-inline-code[b-zomap9ng16] { padding: .05rem .25rem; }
.ai-bubble--assistant .ai-md-code[b-zomap9ng16] {
    display: block;
    padding: .4rem .55rem;
    margin: 0 0 .45rem;
    overflow-x: auto;
    white-space: pre;
}

/* Respect a reduced-motion preference. The dock animates on open, on the pill
   hover, and on the streaming spinner; none of that is load-bearing. */
@media (prefers-reduced-motion: reduce) {
    .ai-dock[b-zomap9ng16],
    .ai-dock *[b-zomap9ng16],
    .ai-dock-pill[b-zomap9ng16],
    .ai-dock-pill:hover[b-zomap9ng16] {
        animation: none !important;
        transition: none !important;
    }
    .ai-dock-pill:hover[b-zomap9ng16] { transform: none; }
}

/* Stop was pressed mid-reply. Set on the turn since the dock was written but never
   rendered, so a half-finished bubble read as the whole answer. */
.ai-interrupted[b-zomap9ng16] {
    display: flex;
    align-items: center;
    gap: .3rem;
    margin: .15rem 0 .25rem;
    font-size: .72rem;
    font-style: italic;
    opacity: .7;
}
/* /Shared/AiReplyFeedback.razor.rz.scp.css */
/* Reply feedback — deliberately quiet. The thumbs sit under the reply at low contrast and only
   come forward on hover or focus; a lit thumb stays solid so the user can see what they said.
   The report form borrows the ask-card's teal rule: it hangs off the reply it is about. */

.ai-fb[b-jzsis5vj5f] {
    margin: .05rem 0 .2rem;
}

.ai-fb-row[b-jzsis5vj5f] {
    display: flex;
    align-items: center;
    gap: .15rem;
}

.ai-fb-thumb[b-jzsis5vj5f] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.7rem;
    height: 1.7rem;
    padding: 0;
    border: 1px solid transparent;
    border-radius: .4rem;
    background: transparent;
    color: var(--bs-secondary-color, #6b7280);
    font-size: .8rem;
    opacity: .55;
    cursor: pointer;
    transition: opacity 80ms ease-out, background-color 80ms ease-out, color 80ms ease-out;
}

.ai-fb-thumb:hover:not(:disabled)[b-jzsis5vj5f],
.ai-fb-thumb:focus-visible[b-jzsis5vj5f] {
    opacity: 1;
    background: rgba(0, 197, 168, .1);
    color: #0d2447;
}

.ai-fb-thumb:focus-visible[b-jzsis5vj5f] {
    outline: 2px solid var(--crm-teal, #00C5A8);
    outline-offset: 1px;
}

.ai-fb-thumb--on[b-jzsis5vj5f] {
    opacity: 1;
    color: #0d2447;
}

.ai-fb-thumb:disabled[b-jzsis5vj5f] {
    cursor: default;
}

.ai-fb-status[b-jzsis5vj5f] {
    margin-left: .35rem;
    font-size: .7rem;
    color: var(--bs-secondary-color, #6b7280);
}

.ai-fb-form[b-jzsis5vj5f] {
    width: 92%;
    margin-top: .3rem;
    padding: .15rem 0 .15rem .7rem;
    border-left: 3px solid var(--crm-teal, #00C5A8);
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.ai-fb-title[b-jzsis5vj5f] {
    font-size: .85rem;
    font-weight: 600;
    color: var(--bs-body-color);
}

.ai-fb-reasons[b-jzsis5vj5f] {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
}

.ai-fb-reason[b-jzsis5vj5f] {
    padding: .22rem .6rem;
    border: 1px solid rgba(13, 36, 71, .22);
    border-radius: 999px;
    background: var(--bs-body-bg, #fff);
    color: #0d2447;
    font-size: .76rem;
    line-height: 1.3;
    cursor: pointer;
    transition: background-color 80ms ease-out, border-color 80ms ease-out;
}

.ai-fb-reason:hover[b-jzsis5vj5f] {
    background: rgba(0, 197, 168, .08);
    border-color: var(--crm-teal, #00C5A8);
}

.ai-fb-reason:focus-visible[b-jzsis5vj5f] {
    outline: 2px solid var(--crm-teal, #00C5A8);
    outline-offset: 2px;
}

.ai-fb-reason--on[b-jzsis5vj5f],
.ai-fb-reason--on:hover[b-jzsis5vj5f] {
    background: #0d2447;
    border-color: #0d2447;
    color: #fff;
}

.ai-fb-note-label[b-jzsis5vj5f] {
    font-size: .76rem;
    font-weight: 600;
    margin: .1rem 0 0;
}

.ai-fb-note-label span[b-jzsis5vj5f] {
    font-weight: 400;
    color: var(--bs-secondary-color, #6b7280);
}

.ai-fb-note[b-jzsis5vj5f] {
    width: 100%;
    resize: vertical;
    min-height: 2.6rem;
    padding: .35rem .5rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .4rem;
    background: var(--bs-body-bg, #fff);
    color: var(--bs-body-color);
    font-size: .8rem;
    line-height: 1.35;
}

.ai-fb-note:focus[b-jzsis5vj5f] {
    outline: none;
    border-color: var(--crm-teal, #00C5A8);
    box-shadow: 0 0 0 .15rem rgba(0, 197, 168, .2);
}

.ai-fb-count[b-jzsis5vj5f] {
    align-self: flex-end;
    margin-top: -.25rem;
    font-size: .66rem;
    color: var(--bs-secondary-color, #6b7280);
    font-variant-numeric: tabular-nums;
}

/* What sending shares. Not small print: the user is agreeing to it. */
.ai-fb-consent[b-jzsis5vj5f] {
    margin: 0;
    padding: .35rem .5rem;
    border-radius: .375rem;
    background: var(--bs-secondary-bg-subtle, #f4f5f7);
    color: var(--bs-body-color);
    font-size: .72rem;
    line-height: 1.35;
}

.ai-fb-error[b-jzsis5vj5f] {
    font-size: .75rem;
    color: var(--bs-danger-text-emphasis, #842029);
}

.ai-fb-actions[b-jzsis5vj5f] {
    display: flex;
    gap: .4rem;
}

@media (prefers-reduced-motion: reduce) {
    .ai-fb-thumb[b-jzsis5vj5f],
    .ai-fb-reason[b-jzsis5vj5f] { transition: none; }
}
/* /Shared/ArchiveCascadeModal.razor.rz.scp.css */
/* Cascade modal — one section per non-empty child-type list. Collapsible via
   the native <details> element so the user can fold sections away on records
   with sprawling cascades, and so keyboard users can navigate efficiently. */

.archive-cascade-section[b-z6bkrcac7q] {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.5rem;
    margin-bottom: 0.75rem;
    background: var(--bs-body-bg, #fff);
}

.archive-cascade-section[open][b-z6bkrcac7q] {
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}

.archive-cascade-section-head[b-z6bkrcac7q] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 0.85rem;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.archive-cascade-section-head[b-z6bkrcac7q]::-webkit-details-marker {
    display: none;
}

.archive-cascade-section-head[b-z6bkrcac7q]::before {
    content: "\F285"; /* bi-chevron-right */
    font-family: "bootstrap-icons";
    margin-right: 0.4rem;
    color: var(--bs-secondary-color, #6c757d);
    font-size: 0.85rem;
    transition: transform 0.15s ease;
    display: inline-block;
}

.archive-cascade-section[open] > .archive-cascade-section-head[b-z6bkrcac7q]::before {
    transform: rotate(90deg);
}

.archive-cascade-section-title[b-z6bkrcac7q] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 500;
    font-size: 0.95rem;
}

.archive-cascade-section-title i[b-z6bkrcac7q] {
    color: var(--bs-secondary-color, #6c757d);
}

.archive-cascade-count[b-z6bkrcac7q] {
    background: var(--bs-secondary-bg, #e9ecef);
    color: var(--bs-body-color, #212529);
    border-radius: 999px;
    padding: 0.05rem 0.5rem;
    font-size: 0.78rem;
    font-weight: 600;
    margin-left: 0.25rem;
}

.archive-cascade-toggle-all[b-z6bkrcac7q] {
    margin: 0;
}

.archive-cascade-list[b-z6bkrcac7q] {
    list-style: none;
    margin: 0;
    padding: 0.25rem 0.85rem 0.6rem;
    border-top: 1px solid var(--bs-border-color, #dee2e6);
    max-height: 18rem;
    overflow-y: auto;
}

.archive-cascade-item[b-z6bkrcac7q] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.3rem 0;
    margin: 0;
    cursor: pointer;
}

.archive-cascade-item:hover .archive-cascade-item-name[b-z6bkrcac7q] {
    color: var(--bs-primary, #0d6efd);
}

.archive-cascade-item-name[b-z6bkrcac7q] {
    transition: color 0.1s ease;
}

.archive-cascade-item-friendly[b-z6bkrcac7q] {
    color: var(--bs-secondary-color, #6c757d);
    font-size: 0.78rem;
    margin-left: 0.4rem;
    font-variant-numeric: tabular-nums;
}
/* /Shared/ArchivedBanner.razor.rz.scp.css */
/* Banner shape — distinguishable from a destructive alert (archive is
   reversible) but clearly elevated above informational notices. The slate
   palette signals "retired but preserved" rather than "danger". */

.archived-banner[b-o97fiplra8] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.65rem 1rem;
    background: linear-gradient(180deg, #f3f4f6 0%, #ebedf0 100%);
    border: 1px solid #d6d9de;
    border-left: 4px solid #6c757d;
    border-radius: 0.5rem;
    margin-bottom: 1rem;
    color: #495057;
}

.archived-banner-icon[b-o97fiplra8] {
    font-size: 1.4rem;
    color: #6c757d;
    flex: 0 0 auto;
}

.archived-banner-text[b-o97fiplra8] {
    flex: 1 1 auto;
    min-width: 0;
}

.archived-banner-title[b-o97fiplra8] {
    font-weight: 600;
    color: #343a40;
    font-size: 0.95rem;
}

.archived-banner-meta[b-o97fiplra8] {
    color: #6c757d;
    font-size: 0.85rem;
    margin-top: 0.1rem;
}

.archived-banner-meta strong[b-o97fiplra8] {
    color: #495057;
    font-weight: 600;
}

.archived-banner-actions[b-o97fiplra8] {
    flex: 0 0 auto;
}
/* /Shared/ArchivedReveal.razor.rz.scp.css */
/* Subtle bar at the bottom of a related-records section. The collapsed state
   reads like a quiet annotation — "this section has archived items, click to
   see them" — not as a primary action. */

.archived-reveal[b-1gsbrodgsh] {
    margin-top: 0.4rem;
}

.archived-reveal-body[b-1gsbrodgsh] {
    margin-bottom: 0.4rem;
}

.archived-reveal-toggle[b-1gsbrodgsh] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: transparent;
    border: 1px dashed #d6d9de;
    color: #6c757d;
    padding: 0.3rem 0.7rem;
    border-radius: 0.4rem;
    font-size: 0.85rem;
    cursor: pointer;
    transition: background-color 0.1s ease, color 0.1s ease, border-color 0.1s ease;
}

.archived-reveal-toggle:hover[b-1gsbrodgsh] {
    background: #f3f4f6;
    color: #495057;
    border-color: #b6bcc4;
}

.archived-reveal-toggle i[b-1gsbrodgsh] {
    font-size: 0.85rem;
}

.archived-reveal-action[b-1gsbrodgsh] {
    color: #0d6efd;
    font-weight: 500;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}
/* /Shared/BookingAttendeeEditor.razor.rz.scp.css */
/* Sits inside the registration system (wwwroot/css/registration.css): its tokens, its rules. */

.bk-attendees[b-11al1pn3ui] {
    display: grid;
    gap: 1rem;
}

.bk-attendee[b-11al1pn3ui] {
    padding: 1.1rem 1.1rem 1rem;
    background: var(--reg-bg, #F4F6FB);
    border: 1px solid var(--reg-rule, #DCE5F0);
    border-radius: 12px;
}

.bk-attendee-head[b-11al1pn3ui] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    margin-bottom: 0.9rem;
}

.bk-attendee-title[b-11al1pn3ui] {
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-size: .98rem;
    font-weight: 600;
    margin: 0;
    color: var(--reg-ink, #0D2447);
}

.bk-attendee-ticket[b-11al1pn3ui] {
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-size: 0.82rem;
    color: var(--reg-ink-3, #66768F);
}

.bk-who[b-11al1pn3ui] {
    display: inline-flex;
    border: 1px solid var(--reg-rule-strong, #C3CFDF);
    border-radius: 10px;
    overflow: hidden;
    background: var(--reg-surface, #fff);
    margin-bottom: 1rem;
}

.bk-who-opt[b-11al1pn3ui] {
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-size: 0.86rem;
    font-weight: 500;
    padding: 0.45rem 0.9rem;
    border: none;
    background: transparent;
    color: var(--reg-ink-2, #4A5B78);
    transition: background-color .2s ease, color .2s ease;
}

.bk-who-opt + .bk-who-opt[b-11al1pn3ui] {
    border-left: 1px solid var(--reg-rule-strong, #C3CFDF);
}

.bk-who-opt:hover:not(:disabled):not(.bk-who-opt--on)[b-11al1pn3ui] {
    background: var(--reg-soft, rgba(0, 197, 168, .14));
}

.bk-who-opt--on[b-11al1pn3ui] {
    background: var(--crm-navy, #0D2447);
    color: #fff;
}

.bk-who-opt:disabled[b-11al1pn3ui] {
    opacity: 0.4;
}

.bk-who-opt:focus-visible[b-11al1pn3ui],
.bk-result:focus-visible[b-11al1pn3ui] {
    outline: none;
    box-shadow: inset var(--reg-focus, 0 0 0 3px rgba(0, 197, 168, .22));
}

.bk-me[b-11al1pn3ui] {
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-size: 1rem;
    font-weight: 600;
    color: var(--reg-ink, #0D2447);
    margin: 0 0 1rem;
}

.bk-me span[b-11al1pn3ui] {
    font-weight: 400;
    color: var(--reg-ink-3, #66768F);
}

.bk-results[b-11al1pn3ui] {
    list-style: none;
    margin: 0.35rem 0 0;
    padding: 0;
    border: 1px solid var(--reg-rule, #DCE5F0);
    border-radius: 10px;
    overflow: hidden;
    max-height: 15rem;
    overflow-y: auto;
    background: var(--reg-surface, #fff);
    box-shadow: 0 12px 28px -14px rgba(13, 36, 71, .3);
}

.bk-result[b-11al1pn3ui] {
    display: grid;
    width: 100%;
    text-align: left;
    padding: 0.55rem 0.8rem;
    border: none;
    border-bottom: 1px solid var(--reg-rule, #DCE5F0);
    background: var(--reg-surface, #fff);
}

.bk-results li:last-child .bk-result[b-11al1pn3ui] {
    border-bottom: 0;
}

.bk-result:hover[b-11al1pn3ui] {
    background: var(--reg-soft, rgba(0, 197, 168, .14));
}

.bk-result-name[b-11al1pn3ui] {
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-weight: 600;
    font-size: 0.92rem;
}

.bk-result-sub[b-11al1pn3ui] {
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-size: 0.8rem;
    color: var(--reg-ink-3, #66768F);
}

.bk-attendee-questions[b-11al1pn3ui] {
    margin-top: 0.5rem;
}
/* /Shared/BookingOrderSummary.razor.rz.scp.css */
.bk-lines[b-adkdmkzkip] {
    display: grid;
    gap: 0.45rem;
    transition: opacity 150ms ease;
}

.bk-lines--stale[b-adkdmkzkip] {
    opacity: 0.55;
}

.bk-line[b-adkdmkzkip] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-size: 0.95rem;
    color: var(--reg-ink, #1A1A1A);
    font-variant-numeric: tabular-nums;
}

.bk-line--discount[b-adkdmkzkip] {
    color: color-mix(in srgb, var(--crm-teal, #00C5A8) 70%, black);
    font-weight: 600;
}

.bk-hint[b-adkdmkzkip] {
    display: flex;
    gap: 0.5rem;
    align-items: baseline;
    margin: 1rem 0 0;
    padding: 0.6rem 0.75rem;
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-size: 0.86rem;
    line-height: 1.4;
    color: var(--reg-ink-2, #4A4A4A);
    background: color-mix(in srgb, var(--crm-teal, #00C5A8) 9%, white);
    border-radius: 10px;
}

.bk-code[b-adkdmkzkip] {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--reg-rule, rgba(0, 0, 0, 0.08));
}

.bk-code-label[b-adkdmkzkip] {
    display: block;
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--reg-ink-3, #6B6B6B);
    margin-bottom: 0.35rem;
}

.bk-code-row[b-adkdmkzkip] {
    display: flex;
    gap: 0.5rem;
}

.bk-code-input[b-adkdmkzkip] {
    flex: 1;
    min-width: 0;
    font-family: ui-monospace, 'SFMono-Regular', Consolas, monospace;
    text-transform: uppercase;
    font-size: 0.95rem;
    padding: 0.5rem 0.7rem;
    border: 1px solid var(--reg-rule-strong, rgba(0, 0, 0, 0.18));
    border-radius: 10px;
    background: var(--reg-surface, #fff);
}

.bk-code-input:focus[b-adkdmkzkip],
.bk-code-btn:focus-visible[b-adkdmkzkip] {
    outline: none;
    border-color: var(--crm-teal, #00C5A8);
    box-shadow: var(--reg-focus, 0 0 0 3px rgba(0, 197, 168, .22));
}

.bk-code-btn[b-adkdmkzkip] {
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-size: 0.85rem;
    font-weight: 600;
    padding: 0 0.9rem;
    border: 1px solid var(--crm-navy, #0D2447);
    border-radius: 10px;
    background: transparent;
    color: var(--crm-navy, #0D2447);
}

.bk-code-btn:disabled[b-adkdmkzkip] {
    opacity: 0.4;
}

.bk-code-msg[b-adkdmkzkip] {
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-size: 0.84rem;
    margin: 0.45rem 0 0;
    color: var(--reg-ink-3, #6B6B6B);
}

.bk-code-msg--ok[b-adkdmkzkip] {
    color: color-mix(in srgb, var(--crm-teal, #00C5A8) 70%, black);
    font-weight: 600;
}

.bk-problems[b-adkdmkzkip] {
    margin: 1rem 0 0;
    padding: 0.65rem 0.8rem 0.65rem 1.6rem;
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-size: 0.86rem;
    color: #8a2c0d;
    background: #fdf1ec;
    border-radius: 10px;
}
/* /Shared/BookingTicketPicker.razor.rz.scp.css */
/* Sits inside the registration system (wwwroot/css/registration.css): its tokens, its rules.
   Inside a section card the rows run edge to edge, by the card's own padding (--reg-pad). */

.bk-tickets[b-u4ch8xqohg] {
    margin: 0 calc(-1 * var(--reg-pad, 0px));
    border-top: 1px solid var(--reg-rule, #DCE5F0);
}

.bk-ticket[b-u4ch8xqohg] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 1.25rem;
    padding: 1rem var(--reg-pad, .25rem);
    border-bottom: 1px solid var(--reg-rule, #DCE5F0);
    transition: background-color .25s ease;
}

.bk-ticket:last-child[b-u4ch8xqohg] { border-bottom: 0; }

/* Chosen: a teal rule down the left edge and a wash, as the event page marks the row in hand. */
.bk-ticket--on[b-u4ch8xqohg] {
    background: color-mix(in srgb, var(--crm-teal, #00C5A8) 6%, white);
    box-shadow: inset 3px 0 0 var(--crm-teal, #00C5A8);
}

.bk-ticket--off .bk-ticket-name[b-u4ch8xqohg],
.bk-ticket--off .bk-ticket-price[b-u4ch8xqohg] {
    color: var(--reg-ink-3, #66768F);
}

.bk-ticket-text[b-u4ch8xqohg] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    min-width: 0;
}

.bk-ticket-name[b-u4ch8xqohg] {
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-size: .98rem;
    font-weight: 600;
    color: var(--reg-ink, #0D2447);
}

.bk-ticket-desc[b-u4ch8xqohg],
.bk-ticket-note[b-u4ch8xqohg] {
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-size: 0.85rem;
    line-height: 1.45;
    color: var(--reg-ink-3, #66768F);
}

.bk-ticket-note[b-u4ch8xqohg] {
    font-weight: 600;
}

.bk-ticket-flag[b-u4ch8xqohg] {
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--reg-teal-ink, #0B6F61);
    background: var(--reg-soft, rgba(0, 197, 168, .14));
    padding: 0.12rem 0.55rem;
    border-radius: 999px;
}

.bk-ticket-price[b-u4ch8xqohg] {
    font-family: var(--reg-display, Georgia, serif);
    font-variant-numeric: tabular-nums;
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 1;
    color: var(--reg-ink, #0D2447);
    white-space: nowrap;
}

.bk-stepper[b-u4ch8xqohg] {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--reg-rule-strong, #C3CFDF);
    border-radius: 10px;
    overflow: hidden;
    background: var(--reg-surface, #fff);
}

.bk-step[b-u4ch8xqohg] {
    width: 2.5rem;
    height: 2.5rem;
    border: none;
    background: transparent;
    color: var(--crm-navy, #0D2447);
    font-size: 1.1rem;
    transition: background-color .2s ease;
}

.bk-step:hover:not(:disabled)[b-u4ch8xqohg] {
    background: var(--reg-soft, rgba(0, 197, 168, .14));
}

.bk-step:disabled[b-u4ch8xqohg] {
    color: var(--reg-ink-3, #66768F);
    opacity: 0.45;
}

.bk-step:focus-visible[b-u4ch8xqohg],
.bk-pick:focus-visible[b-u4ch8xqohg] {
    outline: none;
    box-shadow: var(--reg-focus, 0 0 0 3px rgba(0, 197, 168, .22));
}

.bk-qty[b-u4ch8xqohg] {
    min-width: 2rem;
    text-align: center;
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.bk-pick[b-u4ch8xqohg] {
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    border: 1.5px solid var(--reg-rule-strong, #C3CFDF);
    background: var(--reg-surface, #fff);
    display: grid;
    place-items: center;
    padding: 0;
}

.bk-pick-dot[b-u4ch8xqohg] {
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    background: transparent;
}

.bk-pick--on[b-u4ch8xqohg] {
    border-color: var(--crm-navy, #0D2447);
}

.bk-pick--on .bk-pick-dot[b-u4ch8xqohg] {
    background: var(--crm-navy, #0D2447);
}

.bk-limit[b-u4ch8xqohg] {
    font-family: var(--reg-ui, system-ui, sans-serif);
    font-size: 0.85rem;
    color: var(--reg-ink-3, #66768F);
    margin: 0.75rem 0 0;
}

@media (max-width: 480px) {
    .bk-ticket[b-u4ch8xqohg] {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.5rem 1rem;
    }
    .bk-ticket-price[b-u4ch8xqohg] {
        grid-column: 1;
        font-size: 1.3rem;
    }
    .bk-stepper[b-u4ch8xqohg],
    .bk-pick[b-u4ch8xqohg] {
        grid-row: 1 / span 2;
        grid-column: 2;
    }
}
/* /Shared/Breadcrumb.razor.rz.scp.css */
.app-breadcrumb[b-8g4ifqp44t] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    color: var(--crm-text-3);
    letter-spacing: 0.01em;
}

.app-breadcrumb a[b-8g4ifqp44t] {
    color: var(--crm-navy-400);
    text-decoration: none;
    transition: color var(--crm-fast) var(--crm-ease);
}

.app-breadcrumb a:hover[b-8g4ifqp44t] {
    color: var(--crm-teal-600);
}

.app-breadcrumb-sep[b-8g4ifqp44t] {
    opacity: 0.4;
}
/* /Shared/Ccn/AccountCcnEditor.razor.rz.scp.css */
.acce[b-iwgvg02yki] {
    margin-top: 8px;
    padding: 12px;
    border: 1px solid var(--crm-teal, #04cdaf);
    border-radius: 6px;
    background: var(--crm-white, #fff);
}

.acce-options[b-iwgvg02yki] {
    display: flex;
    flex-direction: column;
    margin-top: 6px;
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 6px;
    overflow: hidden;
}

.acce-option[b-iwgvg02yki] {
    display: grid;
    grid-template-columns: 5rem 1fr auto;
    gap: 8px;
    align-items: baseline;
    padding: 6px 10px;
    border: 0;
    border-top: 1px solid var(--crm-border, #dee2e6);
    background: var(--crm-white, #fff);
    text-align: left;
    font-size: 0.85rem;
}

.acce-option:first-child[b-iwgvg02yki] { border-top: 0; }
.acce-option:hover:not(:disabled)[b-iwgvg02yki] { background: var(--crm-bg, #f5f7fa); }
.acce-option:focus-visible[b-iwgvg02yki] { outline: 2px solid var(--crm-teal, #04cdaf); outline-offset: -2px; }
.acce-option.is-picked[b-iwgvg02yki] { background: var(--crm-teal-50, #e6fbf7); }
.acce-option:disabled[b-iwgvg02yki] { color: var(--crm-text-4, #9aa4b2); }

.acce-mono[b-iwgvg02yki] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--crm-navy, #0d2447);
}

.acce-option-name[b-iwgvg02yki] { overflow-wrap: anywhere; }

.acce-option-meta[b-iwgvg02yki] {
    font-size: 0.75rem;
    color: var(--crm-text-3, #6c757d);
}

.acce-hint[b-iwgvg02yki] {
    margin: 6px 0 0;
    font-size: 0.75rem;
    color: var(--crm-text-3, #6c757d);
}

.acce-actions[b-iwgvg02yki] {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
    margin-top: 10px;
}
/* /Shared/Ccn/CcnRenameDialog.razor.rz.scp.css */
.crd-lede[b-53skqwd72z] {
    max-width: 70ch;
    margin-bottom: 12px;
    color: var(--crm-text-2, #334155);
}

.crd-note[b-53skqwd72z] {
    margin-bottom: 12px;
    padding: 10px 12px;
    border-left: 3px solid #d9a300;
    background: #fffaf0;
    font-size: 0.85rem;
    max-width: 80ch;
}

.crd-table th[b-53skqwd72z] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--crm-text-3, #6c757d);
}

.crd-col-check[b-53skqwd72z] { width: 2.25rem; }

.crd-current[b-53skqwd72z] {
    color: var(--crm-text-2, #334155);
    overflow-wrap: anywhere;
}

tr.is-excluded .crd-current[b-53skqwd72z],
tr.is-excluded input.form-control[b-53skqwd72z] {
    color: var(--crm-text-4, #9aa4b2);
}

.crd-chip[b-53skqwd72z] {
    display: inline-block;
    margin-top: 2px;
    padding: 1px 8px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    white-space: nowrap;
}

/* The chips say where a proposal came from, and the colours rank how much to trust it:
   a pattern match is certain, an AI suggestion needs a look, no match means nothing changes. */
.crd-chip.is-rule[b-53skqwd72z] { background: var(--crm-teal-50, #e6fbf7); color: #045f52; }
.crd-chip.is-ai[b-53skqwd72z] { background: #efe9ff; color: #4b2a9b; }
.crd-chip.is-manual[b-53skqwd72z] { background: #e8eefc; color: var(--crm-navy, #0d2447); }
.crd-chip.is-none[b-53skqwd72z] { background: var(--crm-bg, #f5f7fa); color: var(--crm-text-3, #6c757d); }
.crd-chip.is-source[b-53skqwd72z] { background: #fff4d6; color: #7a5800; }

.crd-warnings[b-53skqwd72z] {
    margin: 8px 0 0;
    padding-left: 1.1rem;
    font-size: 0.8rem;
    color: var(--crm-text-3, #6c757d);
}

.crd-footer-left[b-53skqwd72z] {
    margin-right: auto;
    display: flex;
    align-items: center;
    gap: 8px;
}

.crd-done p[b-53skqwd72z] { max-width: 70ch; }
/* /Shared/Ccn/CcnSubunitsPanel.razor.rz.scp.css */
.csp[b-entjqh11er] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 16px;
    padding: 16px;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: var(--crm-r, 8px);
}

.csp-head[b-entjqh11er] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.csp-title[b-entjqh11er] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--crm-navy, #0d2447);
}

.csp-row[b-entjqh11er] {
    display: grid;
    grid-template-columns: 5.5rem 1fr auto auto;
    align-items: baseline;
    gap: 8px;
    padding: 6px 0;
    border-top: 1px solid var(--crm-border, #dee2e6);
    font-size: 0.875rem;
}

.csp-row.is-ended[b-entjqh11er] { color: var(--crm-text-4, #9aa4b2); }

.csp-number[b-entjqh11er] {
    font-weight: 700;
    letter-spacing: 0.06em;
    font-variant-numeric: tabular-nums;
    color: var(--crm-navy, #0d2447);
}

.csp-row.is-ended .csp-number[b-entjqh11er] { color: inherit; }

.csp-dates[b-entjqh11er] {
    font-size: 0.78rem;
    color: var(--crm-text-3, #6c757d);
}

.csp-edit[b-entjqh11er] { padding: 0 4px; }

.csp-form[b-entjqh11er] {
    padding: 12px;
    border: 1px solid var(--crm-teal, #04cdaf);
    border-radius: 6px;
}

.csp-form-actions[b-entjqh11er] {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
    margin-top: 10px;
}

.csp-cms[b-entjqh11er] {
    margin-left: 6px;
    padding: 0 6px;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-text-3, #6c757d);
}
/* /Shared/Chronicle/AccountLineagePanel.razor.rz.scp.css */
/* Lineage panel under the Chronoscope. A plain list of rules, not a stack of cards — two
   card systems in one tab fight each other. */

.lin[b-rhg7g36diz] {
    padding-top: 1.25rem;
    border-top: 1px solid var(--crm-border);
}

.lin-head[b-rhg7g36diz] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1rem;
}

.lin-title[b-rhg7g36diz] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--crm-text);
}

.lin-sub[b-rhg7g36diz] {
    margin: .25rem 0 0;
    max-width: 68ch;
    font-size: .8125rem;
    line-height: 1.55;
    color: var(--crm-text-2);
}

.lin-add[b-rhg7g36diz] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .85rem;
    border: 1px solid var(--crm-border-2);
    border-radius: var(--crm-r);
    background: var(--crm-white);
    color: var(--crm-navy);
    font-size: .8125rem;
    font-weight: 500;
    transition: transform var(--crm-fast) var(--crm-ease), box-shadow var(--crm-fast) var(--crm-ease);
}

.lin-add:hover[b-rhg7g36diz] { box-shadow: var(--crm-shadow-xs); }
.lin-add:active[b-rhg7g36diz] { transform: translateY(1px); }

/* ── Form ────────────────────────────────────────────────────────────────── */

.lin-form[b-rhg7g36diz] {
    margin-bottom: 1.5rem;
    padding: 1.15rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-lg);
    background: var(--crm-surface-2);
}

.lin-form-grid[b-rhg7g36diz] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
}

.lin-field[b-rhg7g36diz] { display: flex; flex-direction: column; gap: .35rem; }
.lin-field--wide[b-rhg7g36diz] { grid-column: 1 / -1; }

.lin-field > span[b-rhg7g36diz] {
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--crm-text-3);
}

.lin-field small[b-rhg7g36diz] { font-size: .75rem; color: var(--crm-text-3); }

.lin-note[b-rhg7g36diz] {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    margin: 0;
    padding: .6rem .75rem;
    border: 1px dashed var(--crm-border-2);
    border-radius: var(--crm-r);
    font-size: .8125rem;
    color: var(--crm-text-2);
}

.lin-form-error[b-rhg7g36diz] {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    margin: 0 0 .9rem;
    padding: .6rem .75rem;
    border: 1px solid #f0c8c8;
    border-radius: var(--crm-r);
    background: #fdf3f3;
    color: #8a2d2d;
    font-size: .8125rem;
}

.lin-form-actions[b-rhg7g36diz] { margin-top: 1rem; display: flex; justify-content: flex-end; }

/* ── Events ──────────────────────────────────────────────────────────────── */

.lin-events[b-rhg7g36diz] { margin: 0; padding: 0; list-style: none; }

.lin-event[b-rhg7g36diz] {
    padding: .8rem 0;
    border-bottom: 1px solid var(--crm-border);
    animation: lin-rise-b-rhg7g36diz var(--crm-mid) var(--crm-ease) backwards;
    animation-delay: calc(var(--chr-i, 0) * 45ms);
}

.lin-event.is-retracted[b-rhg7g36diz] { opacity: .55; }

.lin-event-main[b-rhg7g36diz] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .5rem;
}

.lin-event-kind[b-rhg7g36diz] {
    padding: .1rem .5rem;
    border-radius: 999px;
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
    font-size: .75rem;
    font-weight: 600;
}

.lin-event.is-retracted .lin-event-kind[b-rhg7g36diz] {
    background: var(--crm-surface-2);
    color: var(--crm-text-3);
    text-decoration: line-through;
}

.lin-event-what[b-rhg7g36diz] { font-size: .9375rem; color: var(--crm-text); }

.lin-event-main time[b-rhg7g36diz] {
    font-size: .8125rem;
    font-variant-numeric: tabular-nums;
    color: var(--crm-text-2);
}

.lin-event-conf[b-rhg7g36diz] {
    padding: .05rem .4rem;
    border: 1px dashed var(--crm-border-2);
    border-radius: 999px;
    font-size: .6875rem;
    color: var(--crm-text-3);
}

.lin-event-why[b-rhg7g36diz] {
    margin: .35rem 0 0;
    max-width: 68ch;
    font-size: .8125rem;
    line-height: 1.55;
    color: var(--crm-text-2);
}

.lin-event-foot[b-rhg7g36diz] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
    margin-top: .3rem;
    font-size: .75rem;
    color: var(--crm-text-3);
}

.lin-event-foot a[b-rhg7g36diz] { color: var(--crm-teal-600); }

.lin-retract[b-rhg7g36diz] {
    padding: 0;
    border: 0;
    background: none;
    color: var(--crm-text-3);
    font-size: .75rem;
    text-decoration: underline dotted;
}

.lin-retract:hover[b-rhg7g36diz] { color: var(--crm-text); }

.lin-retracted[b-rhg7g36diz] { font-style: italic; }

.lin-empty[b-rhg7g36diz] {
    display: grid;
    justify-items: center;
    gap: .3rem;
    padding: 2.5rem 1rem;
    text-align: center;
    color: var(--crm-text-2);
}

.lin-empty i[b-rhg7g36diz] { font-size: 1.4rem; color: var(--crm-text-3); }
.lin-empty p[b-rhg7g36diz] { margin: 0; }
.lin-empty-sub[b-rhg7g36diz] { font-size: .8125rem; color: var(--crm-text-3); max-width: 46ch; }

@keyframes lin-rise-b-rhg7g36diz {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: none; }
}

@media (max-width: 640px) {
    .lin-head[b-rhg7g36diz] { flex-direction: column; }
    .lin-form-grid[b-rhg7g36diz] { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
    .lin-event[b-rhg7g36diz] { animation: none; }
    .lin-add[b-rhg7g36diz] { transition: none; }
}

.lin-event-what a[b-rhg7g36diz] { color: var(--crm-navy); text-decoration: none; }
.lin-event-what a:hover[b-rhg7g36diz] { text-decoration: underline; }
/* /Shared/Chronicle/Chronoscope.razor.rz.scp.css */
/*
    Chronoscope.

    Three ideas carry the whole design:

    1. Confidence is legible without reading. Attested is solid, inferred is dashed and
       lighter, unknown is hatched. The same three treatments repeat on the ribbon bands, the
       stream dots and the rewound fields, so the vocabulary is learned once.
    2. The edge of the known is drawn. Where the record begins, bands fade out rather than
       stopping — an empty stretch must never read as a quiet one.
    3. Nothing animates that costs layout. The playhead is a transform driven by a custom
       property that JS writes during a drag, so scrubbing never touches the layout engine.

    Everything is var(--crm-*) so a rebranded tenant recolours for free.
*/

.chr[b-8bnh5qdukr] {
    --chr-cursor: 1;
    --chr-rail: 300px;

    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* ── Header ──────────────────────────────────────────────────────────────── */

.chr-head[b-8bnh5qdukr] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: end;
    gap: 1rem 1.5rem;
}

.chr-eyebrow[b-8bnh5qdukr] {
    display: block;
    font-size: .6875rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--crm-text-3);
}

.chr-title[b-8bnh5qdukr] {
    margin: .15rem 0 0;
    font-size: 1.35rem;
    font-weight: 600;
    letter-spacing: -.02em;
    color: var(--crm-text);
}

/* The date is the instrument's most-read value: tabular so digits do not jitter as the
   playhead moves. */
.chr-readout[b-8bnh5qdukr] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .1rem;
}

.chr-readout-label[b-8bnh5qdukr] {
    font-size: .6875rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--crm-text-3);
}

.chr-readout-date[b-8bnh5qdukr] {
    font-variant-numeric: tabular-nums;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--crm-navy);
}

.chr-controls[b-8bnh5qdukr] {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.chr-modes[b-8bnh5qdukr] {
    display: inline-flex;
    padding: 3px;
    gap: 2px;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-surface-2);
}

.chr-mode[b-8bnh5qdukr] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .35rem .7rem;
    border: 0;
    border-radius: calc(var(--crm-r) - 3px);
    background: transparent;
    color: var(--crm-text-2);
    font-size: .8125rem;
    font-weight: 500;
    transition: background var(--crm-fast) var(--crm-ease), color var(--crm-fast) var(--crm-ease),
                transform var(--crm-fast) var(--crm-ease);
}

.chr-mode:hover[b-8bnh5qdukr] { color: var(--crm-text); }
.chr-mode:active[b-8bnh5qdukr] { transform: translateY(1px); }

.chr-mode.is-on[b-8bnh5qdukr] {
    background: var(--crm-white);
    color: var(--crm-navy);
    box-shadow: var(--crm-shadow-xs);
}

/* ── Ribbon ──────────────────────────────────────────────────────────────── */

.chr-ribbon[b-8bnh5qdukr] {
    position: relative;
    height: var(--chr-ribbon-h, 132px);
    padding-bottom: 1.15rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-lg);
    background:
        linear-gradient(180deg, var(--crm-white) 0%, var(--crm-surface-2) 100%);
    /* Establishes the container the playhead measures itself against, so the transform
       below can be expressed in cqw and never touch layout. */
    container-type: inline-size;
    cursor: ew-resize;
    touch-action: none;      /* the drag is ours, not the browser's */
    overflow: hidden;
    user-select: none;
}

.chr-ribbon:focus-visible[b-8bnh5qdukr] {
    outline: 2px solid var(--crm-teal);
    outline-offset: 2px;
}

.chr-svg[b-8bnh5qdukr] {
    display: block;
    width: 100%;
    height: var(--chr-ribbon-h, 132px);
}

.chr-density-bar[b-8bnh5qdukr] {
    fill: var(--crm-navy-400);
    opacity: .5;
}

.chr-lane-rule[b-8bnh5qdukr] {
    stroke: var(--crm-border);
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
}

.chr-grid-line[b-8bnh5qdukr] {
    stroke: var(--crm-border);
    stroke-width: 1;
    opacity: .55;
    vector-effect: non-scaling-stroke;
}

.chr-hatch-line[b-8bnh5qdukr] {
    stroke: var(--crm-navy-400);
    stroke-width: 2;
    opacity: .45;
}

.chr-dawn-out[b-8bnh5qdukr] { stop-color: var(--crm-white); stop-opacity: 1; }
.chr-dawn-in[b-8bnh5qdukr]  { stop-color: var(--crm-white); stop-opacity: 0; }

/* The confidence vocabulary. Solid / dashed / hatched, and the same three appear again on
   the stream and the rewound fields. */
.chr-band--attested[b-8bnh5qdukr] {
    fill: var(--crm-teal);
    opacity: .85;
}

.chr-band--inferred[b-8bnh5qdukr] {
    fill: var(--crm-teal-50);
    stroke: var(--crm-teal-600);
    stroke-width: 1.25;
    stroke-dasharray: 4 3;
    vector-effect: non-scaling-stroke;
    opacity: .95;
}

.chr-band--unknown[b-8bnh5qdukr] {
    stroke: var(--crm-border-2);
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
}

.chr-band-dawn[b-8bnh5qdukr] { pointer-events: none; }

/* Year labels live in HTML: the SVG is stretched non-uniformly, which would distort text. */
.chr-ticks[b-8bnh5qdukr] {
    position: absolute;
    inset: auto 0 .3rem 0;
    height: 1rem;
    pointer-events: none;
}

.chr-tick[b-8bnh5qdukr] {
    position: absolute;
    transform: translateX(-50%);
    font-size: .6875rem;
    font-variant-numeric: tabular-nums;
    color: var(--crm-text-3);
}

/* Position by transform, never by `left`: JS writes --chr-cursor at frame rate during a
   drag, and animating a layout property here would drop frames on a long ribbon. */
.chr-playhead[b-8bnh5qdukr] {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 2px;
    background: var(--crm-navy);
    transform: translateX(calc(var(--chr-cursor) * 100cqw));
    pointer-events: none;
    will-change: transform;
}

.chr-playhead[b-8bnh5qdukr]::before {
    content: "";
    position: absolute;
    inset: 0 -6px;
    background: linear-gradient(90deg,
        rgba(var(--crm-navy-rgb), 0) 0%,
        rgba(var(--crm-navy-rgb), .12) 50%,
        rgba(var(--crm-navy-rgb), 0) 100%);
}

/* The one part of the playhead that takes the pointer. The parent is pointer-events: none so
   the 2px line and its glow never intercept a marker; re-enabling it here makes the thing
   that looks like a handle behave like one — a press on it carries the playhead from where it
   stands instead of teleporting it to the press. */
.chr-playhead-grip[b-8bnh5qdukr] {
    position: absolute;
    top: 50%;
    left: 50%;
    display: grid;
    place-items: center;
    width: 18px;
    height: 26px;
    pointer-events: auto;
    cursor: grab;
    transform: translate(-50%, -50%);
    border-radius: 5px;
    background: var(--crm-navy);
    color: var(--crm-white);
    font-size: .7rem;
    box-shadow: var(--crm-shadow-sm);
    transition: transform var(--crm-fast) var(--crm-ease);
}

.chr.is-scrubbing .chr-playhead-grip[b-8bnh5qdukr] { transform: translate(-50%, -50%) scale(1.12); }
.chr.is-scrubbing .chr-ribbon[b-8bnh5qdukr],
.chr.is-scrubbing .chr-playhead-grip[b-8bnh5qdukr] { cursor: grabbing; }

.chr-hint[b-8bnh5qdukr] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    margin: -.35rem 0 0;
    font-size: .75rem;
    color: var(--crm-text-3);
}

.chr-hint-dim[b-8bnh5qdukr] { color: var(--crm-text-3); opacity: .8; }

/* ── Body: stream + rail ─────────────────────────────────────────────────── */

.chr-body[b-8bnh5qdukr] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) var(--chr-rail);
    gap: 1.5rem;
    align-items: start;
}

.chr-main[b-8bnh5qdukr] { min-width: 0; }

.chr-rail[b-8bnh5qdukr] {
    position: sticky;
    top: 74px;                /* clears the 58px app top-row */
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.chr-rail-block[b-8bnh5qdukr] { border-top: 1px solid var(--crm-border); padding-top: .75rem; }

.chr-rail-title[b-8bnh5qdukr] {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0 0 .6rem;
    font-size: .6875rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--crm-text-3);
}

/* ── Stream ──────────────────────────────────────────────────────────────── */

.chr-stream[b-8bnh5qdukr], .chr-year-entries[b-8bnh5qdukr] { margin: 0; padding: 0; list-style: none; }

.chr-year + .chr-year[b-8bnh5qdukr] { margin-top: 1.5rem; }

.chr-year-label[b-8bnh5qdukr] {
    margin: 0 0 .6rem;
    padding-bottom: .3rem;
    border-bottom: 1px solid var(--crm-border);
    font-size: .8125rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--crm-text-2);
}

.chr-entry[b-8bnh5qdukr] {
    position: relative;
    display: flex;
    gap: .85rem;
    padding: .55rem 0 .55rem 1.15rem;
    animation: chr-rise-b-8bnh5qdukr var(--crm-mid) var(--crm-ease) backwards;
    animation-delay: calc(var(--chr-i, 0) * 45ms);
}

/* The rail the dots sit on. */
.chr-entry[b-8bnh5qdukr]::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 4px;
    width: 1px;
    background: var(--crm-border);
}

.chr-year-entries > .chr-entry:first-child[b-8bnh5qdukr]::before { top: .9rem; }
.chr-year-entries > .chr-entry:last-child[b-8bnh5qdukr]::before { bottom: calc(100% - .9rem); }

.chr-entry-dot[b-8bnh5qdukr] {
    position: absolute;
    top: .82rem;
    left: 0;
    width: 9px;
    height: 9px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--crm-teal);
    box-shadow: 0 0 0 3px var(--crm-white);
    cursor: pointer;
}

.chr-entry-dot:focus-visible[b-8bnh5qdukr] { outline: 2px solid var(--crm-teal); outline-offset: 3px; }

/* Same three treatments as the ribbon bands. */
.chr-entry--inferred .chr-entry-dot[b-8bnh5qdukr] {
    background: var(--crm-white);
    border: 1.5px dashed var(--crm-teal-600);
}

.chr-entry--unknown .chr-entry-dot[b-8bnh5qdukr] {
    background: var(--crm-border-2);
    border: 1px solid var(--crm-border-2);
}

.chr-entry-body[b-8bnh5qdukr] { min-width: 0; flex: 1; }

.chr-entry-top[b-8bnh5qdukr] {
    display: flex;
    align-items: baseline;
    gap: .5rem;
}

.chr-entry-icon[b-8bnh5qdukr] { color: var(--crm-text-3); font-size: .8125rem; }

.chr-entry-headline[b-8bnh5qdukr] {
    font-size: .9375rem;
    color: var(--crm-text);
    overflow-wrap: anywhere;
}

.chr-entry-meta[b-8bnh5qdukr] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin-top: .2rem;
    font-size: .75rem;
    color: var(--crm-text-3);
    font-variant-numeric: tabular-nums;
}

.chr-entry-detail[b-8bnh5qdukr] {
    margin: .35rem 0 0;
    font-size: .8125rem;
    line-height: 1.5;
    color: var(--crm-text-2);
    max-width: 65ch;
}

.chr-inherited[b-8bnh5qdukr] {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .05rem .4rem;
    border: 1px dashed var(--crm-border-2);
    border-radius: 999px;
    color: var(--crm-text-2);
}

/* ── Confidence chip ─────────────────────────────────────────────────────── */

.chr-conf[b-8bnh5qdukr] {
    padding: .05rem .4rem;
    border-radius: 999px;
    font-size: .6875rem;
    letter-spacing: .02em;
}

.chr-conf--attested[b-8bnh5qdukr] { background: var(--crm-teal-50); color: var(--crm-teal-600); }
.chr-conf--inferred[b-8bnh5qdukr] {
    background: transparent;
    border: 1px dashed var(--crm-border-2);
    color: var(--crm-text-3);
}
.chr-conf--unknown[b-8bnh5qdukr] { background: var(--crm-surface-2); color: var(--crm-text-3); }

/* ── Legend + sources ────────────────────────────────────────────────────── */

.chr-legend[b-8bnh5qdukr] { margin: 0; padding: 0; list-style: none; display: grid; gap: .5rem; }

.chr-legend li[b-8bnh5qdukr] {
    display: flex;
    align-items: center;
    gap: .55rem;
    font-size: .8125rem;
    color: var(--crm-text-2);
}

.chr-key[b-8bnh5qdukr] {
    flex: 0 0 auto;
    width: 26px;
    height: 10px;
    border-radius: 2px;
}

.chr-key--attested[b-8bnh5qdukr] { background: var(--crm-teal); opacity: .85; }
.chr-key--inferred[b-8bnh5qdukr] {
    background: var(--crm-teal-50);
    border: 1.25px dashed var(--crm-teal-600);
}
.chr-key--unknown[b-8bnh5qdukr] {
    border: 1px solid var(--crm-border-2);
    background: repeating-linear-gradient(45deg,
        transparent 0 3px, var(--crm-border-2) 3px 5px);
}

.chr-sources[b-8bnh5qdukr] { margin: 0; padding: 0; list-style: none; display: grid; gap: .4rem; }

.chr-source[b-8bnh5qdukr] {
    display: grid;
    grid-template-columns: 1rem minmax(0, 1fr) auto;
    align-items: center;
    gap: .5rem;
    font-size: .8125rem;
    color: var(--crm-text-2);
}

.chr-source.is-out[b-8bnh5qdukr] { color: var(--crm-text-3); }
.chr-source-name[b-8bnh5qdukr] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.chr-source-count[b-8bnh5qdukr] {
    font-variant-numeric: tabular-nums;
    color: var(--crm-text-3);
}

.chr-source-note[b-8bnh5qdukr] {
    font-size: .6875rem;
    color: var(--crm-text-3);
    border-bottom: 1px dotted var(--crm-border-2);
    cursor: help;
}

.chr-partial[b-8bnh5qdukr] {
    padding: .05rem .4rem;
    border-radius: 999px;
    background: var(--crm-surface-2);
    color: var(--crm-text-2);
    font-size: .625rem;
    letter-spacing: 0;
    text-transform: none;
}

/* ── Notices, empty, skeletons ───────────────────────────────────────────── */
/* The rewind panel's own styles live in ChronoscopeRewind.razor.css: scoped CSS does not
   cross a component boundary, and these rules never reached it. */

.chr-notice[b-8bnh5qdukr] {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    padding: .75rem .9rem;
    border-radius: var(--crm-r);
    font-size: .8125rem;
}

.chr-notice--error[b-8bnh5qdukr] {
    border: 1px solid #f0c8c8;
    background: #fdf3f3;
    color: #8a2d2d;
}

.chr-notice--error > div[b-8bnh5qdukr] { display: flex; flex-direction: column; gap: .15rem; flex: 1; }

.chr-notice--dim[b-8bnh5qdukr] {
    margin: 0 0 1rem;
    border: 1px dashed var(--crm-border-2);
    background: var(--crm-surface-2);
    color: var(--crm-text-2);
}

.chr-retry[b-8bnh5qdukr] {
    align-self: center;
    padding: .3rem .7rem;
    border: 1px solid #e0b4b4;
    border-radius: var(--crm-r-sm);
    background: var(--crm-white);
    color: #8a2d2d;
    font-size: .8125rem;
    transition: transform var(--crm-fast) var(--crm-ease);
}

.chr-retry:active[b-8bnh5qdukr] { transform: translateY(1px); }

.chr-empty[b-8bnh5qdukr] {
    display: grid;
    justify-items: center;
    gap: .35rem;
    padding: 3rem 1rem;
    text-align: center;
    color: var(--crm-text-2);
}

.chr-empty i[b-8bnh5qdukr] { font-size: 1.5rem; color: var(--crm-text-3); }
.chr-empty p[b-8bnh5qdukr] { margin: 0; }
.chr-empty-sub[b-8bnh5qdukr] { font-size: .8125rem; color: var(--crm-text-3); max-width: 42ch; }

.chr-ribbon--skeleton[b-8bnh5qdukr] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .6rem;
    padding: 1rem;
    cursor: default;
}

.chr-skel-band[b-8bnh5qdukr] { height: 34px; border-radius: var(--crm-r-sm); }
.chr-skel-lane[b-8bnh5qdukr] { height: 12px; border-radius: 3px; }
.chr-skel-lane--short[b-8bnh5qdukr] { width: 62%; }

.chr-skel-entry[b-8bnh5qdukr] {
    height: 44px;
    margin-bottom: .5rem;
    border-radius: var(--crm-r-sm);
    animation-delay: calc(var(--chr-i, 0) * 70ms);
}

@keyframes chr-rise-b-8bnh5qdukr {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: none; }
}

/* ── Responsive ──────────────────────────────────────────────────────────── */

@media (max-width: 991.98px) {
    .chr-body[b-8bnh5qdukr] { grid-template-columns: minmax(0, 1fr); }
    .chr-rail[b-8bnh5qdukr] { position: static; }
    .chr-head[b-8bnh5qdukr] { grid-template-columns: minmax(0, 1fr) auto; }
    .chr-controls[b-8bnh5qdukr] { grid-column: 1 / -1; justify-content: flex-start; }
}

@media (max-width: 640px) {
    .chr-readout[b-8bnh5qdukr] { align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
    .chr-entry[b-8bnh5qdukr] { animation: none; }
    .chr-entry.is-target[b-8bnh5qdukr] { animation: none; }
    .chr-mode[b-8bnh5qdukr], .chr-playhead-grip[b-8bnh5qdukr], .chr-retry[b-8bnh5qdukr], .chr-marker[b-8bnh5qdukr], .chr-chip[b-8bnh5qdukr], .chr-icon-btn[b-8bnh5qdukr] { transition: none; }
}

/* ── Markers ─────────────────────────────────────────────────────────────── */
/* The events that matter, drawn on the ribbon. Real buttons, so the keyboard reaches them;
   the layer itself lets pointer events through so a drag that starts between two markers
   still scrubs. */

.chr-markers[b-8bnh5qdukr] {
    position: absolute;
    left: 0;
    right: 0;
    height: 14px;
    pointer-events: none;
}

.chr-marker[b-8bnh5qdukr] {
    --chr-mk: var(--crm-teal);
    position: absolute;
    top: 7px;
    width: 10px;
    height: 10px;
    padding: 0;
    border: 0;
    border-radius: 2px;
    background: var(--chr-mk);
    transform: translate(-50%, -50%) rotate(45deg);
    pointer-events: auto;
    cursor: pointer;
    transition: transform var(--crm-fast) var(--crm-ease);
}

.chr-marker:hover[b-8bnh5qdukr], .chr-marker:focus-visible[b-8bnh5qdukr] { transform: translate(-50%, -50%) rotate(45deg) scale(1.3); z-index: 2; outline: none; }
.chr-marker:focus-visible[b-8bnh5qdukr] { box-shadow: 0 0 0 2px var(--crm-white), 0 0 0 4px var(--crm-teal); }

.chr-marker--lineage[b-8bnh5qdukr], .chr-marker--lifecycle[b-8bnh5qdukr] { --chr-mk: var(--crm-navy); }
.chr-marker--affiliation[b-8bnh5qdukr], .chr-marker--role-change[b-8bnh5qdukr], .chr-marker--transition[b-8bnh5qdukr] { --chr-mk: var(--crm-teal); }
.chr-marker--field-change[b-8bnh5qdukr] { --chr-mk: var(--crm-teal-600); }
.chr-marker--service[b-8bnh5qdukr] { --chr-mk: var(--crm-navy-400); }
.chr-marker--financial[b-8bnh5qdukr] { --chr-mk: var(--crm-navy-600); }
.chr-marker--interaction[b-8bnh5qdukr] { --chr-mk: var(--crm-text-3); }

.chr-marker--inferred[b-8bnh5qdukr] { background: var(--crm-white); border: 1.5px dashed var(--chr-mk); }
.chr-marker--unknown[b-8bnh5qdukr] {
    background: repeating-linear-gradient(45deg, transparent 0 2px, var(--crm-border-2) 2px 4px);
    border: 1px solid var(--crm-border-2);
}

.chr-marker-count[b-8bnh5qdukr] {
    position: absolute;
    top: -9px;
    right: -9px;
    min-width: 14px;
    height: 14px;
    padding: 0 3px;
    border-radius: 999px;
    background: var(--crm-navy);
    color: var(--crm-white);
    font-size: .625rem;
    line-height: 14px;
    text-align: center;
    transform: rotate(-45deg);
}

/* Opens downward over the lanes: the ribbon clips anything above the marker row. */
.chr-tip[b-8bnh5qdukr] {
    position: absolute;
    z-index: 3;
    display: flex;
    flex-direction: column;
    gap: .1rem;
    max-width: 30ch;
    padding: .35rem .55rem;
    border-radius: var(--crm-r-sm);
    background: var(--crm-navy);
    color: var(--crm-white);
    font-size: .75rem;
    line-height: 1.35;
    box-shadow: var(--crm-shadow-sm);
    transform: translateX(-50%);
    pointer-events: none;
}

.chr-tip.is-left[b-8bnh5qdukr] { transform: translateX(-8px); }
.chr-tip.is-right[b-8bnh5qdukr] { transform: translateX(calc(-100% + 8px)); }
.chr-tip-head[b-8bnh5qdukr] { font-weight: 600; }
.chr-tip-date[b-8bnh5qdukr], .chr-tip-more[b-8bnh5qdukr] { opacity: .8; font-variant-numeric: tabular-nums; }

/* ── Lane names and band labels ─────────────────────────────────────────── */

.chr-lane-labels[b-8bnh5qdukr] { position: absolute; inset: 0; pointer-events: none; }

.chr-lane-name[b-8bnh5qdukr] {
    position: absolute;
    left: 4px;
    z-index: 2;
    padding: 0;
    font-size: .5625rem;
    font-weight: 600;
    letter-spacing: .08em;
    line-height: 12px;
    text-transform: uppercase;
    color: var(--crm-text-3);
    white-space: nowrap;
}

/* Each slot is its own container: the label hides when the band cannot hold it and floats
   out beneath the band on hover. Width gating with no JS. */
.chr-band-slot[b-8bnh5qdukr] {
    position: absolute;
    height: 14px;
    container-type: inline-size;
    pointer-events: auto;
    cursor: pointer;
}

.chr-band-label[b-8bnh5qdukr] {
    position: absolute;
    inset: 0;
    padding: 0 .3rem 0 .4rem;
    font-size: .6875rem;
    line-height: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--crm-white);
}

.chr-band-label--inferred[b-8bnh5qdukr] { color: var(--crm-teal-600); }
.chr-band-label--unknown[b-8bnh5qdukr] { color: var(--crm-text-3); }

@container (max-width: 79px) {
    .chr-band-label[b-8bnh5qdukr] { visibility: hidden; }
}

.chr-band-slot:hover .chr-band-label[b-8bnh5qdukr],
.chr-band-slot:focus-within .chr-band-label[b-8bnh5qdukr] {
    visibility: visible;
    inset: auto auto -18px 0;
    width: max-content;
    padding: .1rem .45rem;
    border-radius: var(--crm-r-sm);
    background: var(--crm-navy);
    color: var(--crm-white);
    box-shadow: var(--crm-shadow-sm);
    z-index: 3;
}

.chr-lane--coverage .chr-band[b-8bnh5qdukr] { opacity: .55; }

.chr-icon-btn[b-8bnh5qdukr] {
    display: inline-grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
    color: var(--crm-text-2);
    font-size: .9rem;
    transition: color var(--crm-fast) var(--crm-ease), border-color var(--crm-fast) var(--crm-ease);
}

.chr-icon-btn:hover[b-8bnh5qdukr] { color: var(--crm-navy); border-color: var(--crm-border-2); }

.chr-link[b-8bnh5qdukr] {
    padding: 0;
    border: 0;
    background: none;
    color: var(--crm-teal-600);
    font-size: inherit;
    text-decoration: underline dotted;
}

/* ── Filters ─────────────────────────────────────────────────────────────── */

.chr-filters[b-8bnh5qdukr] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
    margin-bottom: 1rem;
}

.chr-chip[b-8bnh5qdukr] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .2rem .6rem;
    border: 1px solid var(--crm-border);
    border-radius: 999px;
    background: var(--crm-white);
    color: var(--crm-text-3);
    font-size: .75rem;
    transition: color var(--crm-fast) var(--crm-ease), border-color var(--crm-fast) var(--crm-ease), background var(--crm-fast) var(--crm-ease);
}

.chr-chip.is-on[b-8bnh5qdukr] { background: var(--crm-teal-50); border-color: var(--crm-teal-600); color: var(--crm-navy); }
.chr-chip:hover[b-8bnh5qdukr] { border-color: var(--crm-border-2); }
.chr-chip-count[b-8bnh5qdukr] { font-variant-numeric: tabular-nums; opacity: .7; }
.chr-chip--note[b-8bnh5qdukr] { border-style: dashed; cursor: default; }

.chr-switch[b-8bnh5qdukr] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-left: auto;
    font-size: .75rem;
    color: var(--crm-text-2);
}

/* ── The cursor in the stream ────────────────────────────────────────────── */

.chr-entry.is-after[b-8bnh5qdukr] { opacity: .42; }
.chr-entry.is-after .chr-entry-dot[b-8bnh5qdukr] { background: var(--crm-border-2); border-color: var(--crm-border-2); }

.chr-now[b-8bnh5qdukr] {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .6rem;
    margin: .4rem 0;
    padding-left: 1.15rem;
    list-style: none;
    scroll-margin-top: 84px;
}

.chr-now-rule[b-8bnh5qdukr] { height: 2px; background: var(--crm-navy); border-radius: 1px; }

.chr-now-label[b-8bnh5qdukr] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .1rem .55rem;
    border-radius: 999px;
    background: var(--crm-navy);
    color: var(--crm-white);
    font-size: .6875rem;
    font-variant-numeric: tabular-nums;
}

.chr-entry.is-target[b-8bnh5qdukr] { animation: chr-flash-b-8bnh5qdukr 2s var(--crm-ease); }

@keyframes chr-flash-b-8bnh5qdukr {
    0% { background: var(--crm-teal-50); }
    100% { background: transparent; }
}

.chr-entry-time[b-8bnh5qdukr] {
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    cursor: pointer;
    border-bottom: 1px dotted transparent;
}

.chr-entry-time:hover[b-8bnh5qdukr] { border-bottom-color: var(--crm-text-3); color: var(--crm-text); }

.chr-recorded[b-8bnh5qdukr] { color: var(--crm-text-3); }

/* ── Actors, related, lag ────────────────────────────────────────────────── */

.chr-entry-links[b-8bnh5qdukr] {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .35rem;
}

.chr-actor[b-8bnh5qdukr], .chr-related[b-8bnh5qdukr] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .05rem .5rem;
    border: 1px solid var(--crm-border);
    border-radius: 999px;
    font-size: .75rem;
    color: var(--crm-text-2);
    text-decoration: none;
    transition: border-color var(--crm-fast) var(--crm-ease), color var(--crm-fast) var(--crm-ease);
}

a.chr-actor:hover[b-8bnh5qdukr], a.chr-related:hover[b-8bnh5qdukr] { border-color: var(--crm-teal-600); color: var(--crm-navy); }
.chr-actor-role[b-8bnh5qdukr] { color: var(--crm-text-3); }
.chr-related[b-8bnh5qdukr] { background: var(--crm-teal-50); color: var(--crm-teal-600); border-color: transparent; }
.chr-entry--transition .chr-entry-icon[b-8bnh5qdukr] { color: var(--crm-teal-600); }

.chr-lag[b-8bnh5qdukr] {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .05rem .4rem;
    border: 1px dashed var(--crm-border-2);
    border-radius: 999px;
    color: var(--crm-navy-600);
}

/* ── Compare ─────────────────────────────────────────────────────────────── */

.chr-compare[b-8bnh5qdukr] {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: 1rem;
    font-size: .8125rem;
    color: var(--crm-text-2);
}

.chr-compare label[b-8bnh5qdukr] { display: inline-flex; align-items: center; gap: .5rem; }
.chr-compare input[b-8bnh5qdukr] { width: auto; }
/* /Shared/Chronicle/ChronoscopeRewind.razor.rz.scp.css */
/*
    Styles for the rewind panel.

    These live here rather than in Chronoscope.razor.css because Blazor's scoped CSS applies
    only to the markup its own component emits. This is a child component, so the parent's
    rules never reach it — the panel rendered as unstyled definition lists, with the
    confidence chip running into the value it qualifies. The alternative is `::deep` on every
    selector from the parent, which is worse: it makes the parent responsible for a child's
    internals.

    The confidence vocabulary is deliberately repeated from the parent rather than shared.
    Solid / dashed / hatched has to read identically in both halves of the instrument, and a
    few duplicated declarations are a smaller cost than a global class that anything could
    pick up by accident.
*/

.chr-rewind[b-6zgjw59lqr] { display: flex; flex-direction: column; }

/* ── Fields ──────────────────────────────────────────────────────────────── */

.chr-fields[b-6zgjw59lqr] { margin: 0; display: grid; gap: 0; }

/* Rows separated by rules rather than boxed as cards: this is a read-out, and a stack of
   cards would fight the ribbon above it for attention. */
.chr-field[b-6zgjw59lqr] {
    display: grid;
    grid-template-columns: minmax(120px, 200px) minmax(0, 1fr);
    gap: 1rem;
    padding: .55rem 0;
    border-bottom: 1px solid var(--crm-border);
}

.chr-field dt[b-6zgjw59lqr] {
    margin: 0;
    font-size: .8125rem;
    font-weight: 500;
    color: var(--crm-text-2);
}

.chr-field dd[b-6zgjw59lqr] {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .45rem;
    font-size: .9375rem;
    color: var(--crm-text);
}

.chr-value[b-6zgjw59lqr] { overflow-wrap: anywhere; }

.chr-unset[b-6zgjw59lqr] { color: var(--crm-text-3); font-size: .875rem; }

/* Unknown must look deliberate — the same hatch the ribbon uses for an unrecorded stretch.
   A blank cell would read as "empty", which is a different and much stronger claim. */
.chr-unknown[b-6zgjw59lqr] {
    padding: .05rem .45rem;
    border: 1px solid var(--crm-border-2);
    border-radius: var(--crm-r-sm);
    background: repeating-linear-gradient(45deg,
        transparent 0 4px, rgba(var(--crm-navy-rgb), .05) 4px 7px);
    color: var(--crm-text-3);
    font-size: .8125rem;
    cursor: help;
}

.chr-became[b-6zgjw59lqr] {
    display: inline-flex;
    align-items: center;
    gap: .15rem;
    font-size: .75rem;
    color: var(--crm-text-3);
    font-variant-numeric: tabular-nums;
}

.chr-conf[b-6zgjw59lqr] {
    padding: .05rem .4rem;
    border-radius: 999px;
    font-size: .6875rem;
    letter-spacing: .02em;
}

.chr-conf--attested[b-6zgjw59lqr] { background: var(--crm-teal-50); color: var(--crm-teal-600); }

.chr-conf--inferred[b-6zgjw59lqr] {
    background: transparent;
    border: 1px dashed var(--crm-border-2);
    color: var(--crm-text-3);
}

.chr-conf--unknown[b-6zgjw59lqr] { background: var(--crm-surface-2); color: var(--crm-text-3); }

/* ── People ──────────────────────────────────────────────────────────────── */

.chr-who[b-6zgjw59lqr] { margin-top: 1.5rem; }

.chr-who-title[b-6zgjw59lqr] {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0 0 .6rem;
    font-size: .6875rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--crm-text-3);
}

.chr-who-count[b-6zgjw59lqr] {
    padding: .05rem .4rem;
    border-radius: 999px;
    background: var(--crm-surface-2);
    color: var(--crm-text-2);
    font-size: .6875rem;
    letter-spacing: 0;
    font-variant-numeric: tabular-nums;
}

.chr-people[b-6zgjw59lqr] { margin: 0; padding: 0; list-style: none; display: grid; gap: .1rem; }

.chr-person[b-6zgjw59lqr] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: baseline;
    gap: .75rem;
    padding: .45rem 0;
    border-bottom: 1px solid var(--crm-border);
    animation: chr-rewind-rise-b-6zgjw59lqr var(--crm-mid) var(--crm-ease) backwards;
    animation-delay: calc(var(--chr-i, 0) * 40ms);
}

.chr-person-name[b-6zgjw59lqr] { font-size: .9375rem; color: var(--crm-text); }

.chr-person-role[b-6zgjw59lqr] {
    padding: .05rem .45rem;
    border-radius: 999px;
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
    font-size: .75rem;
}

.chr-person-span[b-6zgjw59lqr] {
    font-size: .75rem;
    color: var(--crm-text-3);
    font-variant-numeric: tabular-nums;
}

/* A span the system worked out rather than was told, marked the same way everywhere else. */
.chr-person--inferred .chr-person-span[b-6zgjw59lqr] { border-bottom: 1px dashed var(--crm-border-2); }

/* ── Notices, empty, skeleton ────────────────────────────────────────────── */

.chr-notice[b-6zgjw59lqr] {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    padding: .75rem .9rem;
    border-radius: var(--crm-r);
    font-size: .8125rem;
}

.chr-notice--dim[b-6zgjw59lqr] {
    margin: 0 0 1rem;
    border: 1px dashed var(--crm-border-2);
    background: var(--crm-surface-2);
    color: var(--crm-text-2);
}

.chr-empty[b-6zgjw59lqr] {
    display: grid;
    justify-items: center;
    gap: .35rem;
    padding: 3rem 1rem;
    text-align: center;
    color: var(--crm-text-2);
}

.chr-empty i[b-6zgjw59lqr] { font-size: 1.5rem; color: var(--crm-text-3); }
.chr-empty p[b-6zgjw59lqr] { margin: 0; }
.chr-empty-sub[b-6zgjw59lqr] { font-size: .8125rem; color: var(--crm-text-3); max-width: 42ch; }

.chr-skel-row[b-6zgjw59lqr] {
    height: 44px;
    margin-bottom: .5rem;
    border-radius: var(--crm-r-sm);
    animation-delay: calc(var(--chr-i, 0) * 70ms);
}

@keyframes chr-rewind-rise-b-6zgjw59lqr {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: none; }
}

@media (max-width: 640px) {
    .chr-field[b-6zgjw59lqr] { grid-template-columns: minmax(0, 1fr); gap: .2rem; }
    .chr-person[b-6zgjw59lqr] { grid-template-columns: minmax(0, 1fr); gap: .2rem; }
}

@media (prefers-reduced-motion: reduce) {
    .chr-person[b-6zgjw59lqr] { animation: none; }
}

/* ── Links ───────────────────────────────────────────────────────────────── */

a.chr-person-name[b-6zgjw59lqr] { text-decoration: none; }
a.chr-person-name:hover[b-6zgjw59lqr] { color: var(--crm-navy); text-decoration: underline; }

/* ── Compare ─────────────────────────────────────────────────────────────── */
/* A second date beside the first. Three columns: label, then, and then. A row whose value
   or knowability differs carries a teal edge on the changed cell — the change is what the
   reader came to see. */

.chr-fields--compare .chr-field[b-6zgjw59lqr] {
    grid-template-columns: minmax(120px, 180px) minmax(0, 1fr) minmax(0, 1fr);
}

.chr-fields-head[b-6zgjw59lqr] {
    position: sticky;
    top: 58px;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(120px, 180px) minmax(0, 1fr) minmax(0, 1fr);
    gap: 1rem;
    padding: .35rem 0;
    border-bottom: 2px solid var(--crm-navy);
    background: var(--crm-white);
    font-size: .75rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--crm-navy);
}

.chr-cell--b[b-6zgjw59lqr] { padding-left: .5rem; border-left: 3px solid transparent; }
.chr-cell--b.is-diff[b-6zgjw59lqr] { border-left-color: var(--crm-teal); background: var(--crm-teal-50); border-radius: 0 var(--crm-r-sm) var(--crm-r-sm) 0; }
.chr-field.is-diff dt[b-6zgjw59lqr] { color: var(--crm-navy); font-weight: 600; }

.chr-skel-cell[b-6zgjw59lqr] { display: inline-block; width: 8rem; height: 1rem; border-radius: 3px; }

.chr-person.has-tag[b-6zgjw59lqr] { grid-template-columns: minmax(0, 1fr) auto auto auto; }

.chr-person-tag[b-6zgjw59lqr] {
    padding: .05rem .45rem;
    border-radius: 999px;
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
    font-size: .6875rem;
    white-space: nowrap;
}

@media (max-width: 991.98px) {
    .chr-fields--compare .chr-field[b-6zgjw59lqr],
    .chr-fields-head[b-6zgjw59lqr] { grid-template-columns: minmax(0, 1fr); gap: .2rem; }
    .chr-fields-head[b-6zgjw59lqr] { position: static; }
    .chr-cell--b[b-6zgjw59lqr] { padding-left: 0; border-left: 0; }
    .chr-cell--b.is-diff[b-6zgjw59lqr] { padding-left: .5rem; border-left: 3px solid var(--crm-teal); }
}
/* /Shared/Chronicle/ChronoscopeStory.razor.rz.scp.css */
/* The Story. Prose first; chips are small, numbered and quiet, because the text is what is
   read and the chips are what is checked. Scoped here because the parent's rules do not
   cross the component boundary. */

.chs[b-12xw77nbug] { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 1.5rem; }

.chs-prose[b-12xw77nbug] {
    padding: 1.15rem 1.35rem;
    border: 1px solid var(--crm-border);
    border-left: 3px solid var(--crm-navy);
    border-radius: var(--crm-r-lg);
    background: var(--crm-white);
}

.chs-p[b-12xw77nbug] {
    margin: 0 0 .85rem;
    max-width: 72ch;
    font-size: .9375rem;
    line-height: 1.65;
    color: var(--crm-text);
}

.chs-p:last-child[b-12xw77nbug] { margin-bottom: 0; }

.chs-cite[b-12xw77nbug] {
    display: inline-grid;
    place-items: center;
    min-width: 1.15rem;
    height: 1.15rem;
    margin: 0 .1rem 0 .15rem;
    padding: 0 .25rem;
    border: 1px solid var(--crm-teal-600);
    border-radius: 999px;
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
    font-size: .625rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    vertical-align: super;
    cursor: pointer;
    transition: background var(--crm-fast) var(--crm-ease), color var(--crm-fast) var(--crm-ease);
}

.chs-cite:hover[b-12xw77nbug], .chs-cite.is-on[b-12xw77nbug] { background: var(--crm-navy); border-color: var(--crm-navy); color: var(--crm-white); }
.chs-cite--inferred[b-12xw77nbug] { border-style: dashed; }
.chs-cite--unknown[b-12xw77nbug] { border-color: var(--crm-border-2); background: var(--crm-surface-2); color: var(--crm-text-3); }

.chs-foot[b-12xw77nbug] { display: flex; flex-direction: column; gap: .3rem; }

.chs-foot-line[b-12xw77nbug] {
    display: flex;
    align-items: flex-start;
    gap: .45rem;
    margin: 0;
    font-size: .75rem;
    line-height: 1.5;
    color: var(--crm-text-3);
}

.chs-foot-line i[b-12xw77nbug] { flex: 0 0 auto; margin-top: .15rem; }
.chs-foot-line--warn[b-12xw77nbug] { color: var(--crm-text-2); }

.chs-foot-meta[b-12xw77nbug] { margin: 0; font-size: .6875rem; color: var(--crm-text-3); font-variant-numeric: tabular-nums; }

.chs-loading[b-12xw77nbug] { display: grid; gap: .6rem; }
.chs-skel[b-12xw77nbug] { height: 1rem; border-radius: 3px; animation-delay: calc(var(--chr-i, 0) * 70ms); }
.chs-skel--short[b-12xw77nbug] { width: 70%; }
.chs-loading-note[b-12xw77nbug] { margin: .2rem 0 0; font-size: .75rem; color: var(--crm-text-3); }

/* Shared vocabulary with the parent, repeated because scoped CSS stops at the boundary. */
.chr-notice[b-12xw77nbug] { display: flex; align-items: flex-start; gap: .65rem; padding: .75rem .9rem; border-radius: var(--crm-r); font-size: .8125rem; }
.chr-notice--error[b-12xw77nbug] { border: 1px solid #f0c8c8; background: #fdf3f3; color: #8a2d2d; }
.chr-notice--error > div[b-12xw77nbug] { display: flex; flex-direction: column; gap: .15rem; flex: 1; }
.chr-retry[b-12xw77nbug] { align-self: center; padding: .3rem .7rem; border: 1px solid #e0b4b4; border-radius: var(--crm-r-sm); background: var(--crm-white); color: #8a2d2d; font-size: .8125rem; }
.chr-empty[b-12xw77nbug] { display: grid; justify-items: center; gap: .35rem; padding: 2.5rem 1rem; text-align: center; color: var(--crm-text-2); }
.chr-empty i[b-12xw77nbug] { font-size: 1.5rem; color: var(--crm-text-3); }
.chr-empty p[b-12xw77nbug] { margin: 0; }
.chr-empty-sub[b-12xw77nbug] { font-size: .8125rem; color: var(--crm-text-3); max-width: 46ch; }

@media (prefers-reduced-motion: reduce) {
    .chs-cite[b-12xw77nbug] { transition: none; }
}
/* /Shared/CollapsibleCard.razor.rz.scp.css */
/* NOTE: deliberately no `overflow: hidden` here. Popover panels inside the
   card body (DynamicFieldInput's Dropdown/MultiSelect option lists) are
   absolutely positioned and must overflow the card downward. Clipping them
   left the search box visible but the option list unreachable — the reported
   "dropdown I can't engage with". Corner rounding is applied to the header
   and body instead so the card still clips its own backgrounds. */
.crm-cc[b-apj06r936p] {
  background: var(--crm-white);
  border: 1px solid var(--crm-border);
  border-radius: 0.5rem;
  margin-bottom: 16px;
  box-shadow: 0 1px 2px rgba(13, 36, 71, 0.04);
}

.crm-cc__header[b-apj06r936p] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  padding: 14px 22px;
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: background-color 120ms ease;
  /* Rounded here rather than clipped on .crm-cc — see the note above.
     Collapsed shows the header alone, so it owns all four corners. */
  border-radius: 0.5rem;
}

.crm-cc--expanded .crm-cc__header[b-apj06r936p] {
  border-radius: 0.5rem 0.5rem 0 0;
}

/* Left cluster: title + section-meta. Takes the available horizontal space. */
.crm-cc__header-start[b-apj06r936p] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1 1 auto;
  min-width: 0;
}

/* Right cluster: pill + chevron. Anchors to the right edge of the header,
   creating clear visual separation from the title. */
.crm-cc__header-end[b-apj06r936p] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex: 0 0 auto;
}

.crm-cc__header:hover[b-apj06r936p],
.crm-cc__header:focus-visible[b-apj06r936p] {
  background: var(--crm-surface-2);
  outline: none;
}

.crm-cc__title[b-apj06r936p] {
  flex: 0 0 auto;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--crm-text);
}

/* Static section summary (e.g. "3 selected • 2 custom fields"). Lives in the
   left cluster next to the title, fills available width, ellipses on overflow. */
.crm-cc__summary[b-apj06r936p] {
  flex: 1 1 auto;
  font-size: 0.82rem;
  font-weight: 400;
  color: var(--crm-text-3);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Inline modified-field display (1-2 fields). Lives in the RIGHT cluster
   alongside the pill, so it takes only its natural width. Field names read
   in body weight; the " · unsaved" suffix in muted weight defers to them. */
.crm-cc__inline-modified[b-apj06r936p] {
  flex: 0 0 auto;
  font-size: 0.82rem;
  font-weight: 400;
  white-space: nowrap;
}

.crm-cc__inline-modified .crm-cc__modified-fields[b-apj06r936p] {
  color: var(--crm-text);
  font-weight: 500;
}

.crm-cc__inline-modified .crm-cc__modified-suffix[b-apj06r936p] {
  color: var(--crm-text-3);
  font-weight: 400;
}

/* Required-missing dot. Sits flush right of the title, before the summary. */
.crm-cc__required-dot[b-apj06r936p] {
  flex: 0 0 auto;
  display: inline-block;
  width: 7px;
  height: 7px;
  background: #F59E0B;
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.18);
  animation: crm-cc-pulse-b-apj06r936p 1.2s ease-out 1;
}

@keyframes crm-cc-pulse-b-apj06r936p {
  0%   { box-shadow: 0 0 0 0    rgba(245, 158, 11, 0.55); }
  60%  { box-shadow: 0 0 0 8px  rgba(245, 158, 11, 0.0); }
  100% { box-shadow: 0 0 0 3px  rgba(245, 158, 11, 0.18); }
}

/* Unsaved-changes pill. Shown in collapsed (count ≥ 3) and expanded (count > 0)
   states so the user has a live counter while editing within the card. */
.crm-cc__changes-pill[b-apj06r936p] {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  height: 22px;
  padding: 0 10px 0 8px;
  font-size: 0.74rem;
  font-weight: 500;
  color: var(--crm-text);
  background: var(--crm-surface-2);
  border: 1px solid var(--crm-border);
  border-radius: 999px;
  animation: crm-fade-in 160ms ease;
}

/* Tiny status dot inside the pill — pulses gently to signal "live / unsaved". */
.crm-cc__changes-dot[b-apj06r936p] {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--crm-teal, #0fb39e);
  box-shadow: 0 0 0 0 rgba(15, 179, 158, 0.5);
  animation: crm-cc-dot-pulse-b-apj06r936p 2.4s ease-out infinite;
}

@keyframes crm-cc-dot-pulse-b-apj06r936p {
  0%   { box-shadow: 0 0 0 0    rgba(15, 179, 158, 0.45); }
  60%  { box-shadow: 0 0 0 6px  rgba(15, 179, 158, 0.0); }
  100% { box-shadow: 0 0 0 0    rgba(15, 179, 158, 0.0); }
}

@media (prefers-reduced-motion: reduce) {
  .crm-cc__changes-dot[b-apj06r936p] { animation: none; }
}

.crm-cc__chevron[b-apj06r936p] {
  flex: 0 0 auto;
  font-size: 0.85rem;
  color: var(--crm-text-3);
  transition: transform 160ms ease;
}

.crm-cc--expanded .crm-cc__chevron[b-apj06r936p] {
  transform: rotate(180deg);
}

.crm-cc--expanded .crm-cc__header[b-apj06r936p] {
  border-bottom: 1px solid var(--crm-border);
}

.crm-cc__body[b-apj06r936p] {
  padding: 18px 24px 22px;
  animation: crm-slide-up 180ms ease;
  border-radius: 0 0 0.5rem 0.5rem;
}
/* /Shared/CommandPalette.razor.rz.scp.css */
/* ─────────────────────────────────────────────────────────
   Command palette (Ctrl/Cmd+K)

   z-index 1200 sits above the AI dock (1050) and Bootstrap modals (1055), and below
   MainLayout's load curtain (9999) — during boot the curtain should still win.
   ───────────────────────────────────────────────────────── */

.cp-backdrop[b-2xu8mfwbwn] {
    position: fixed;
    inset: 0;
    z-index: 1200;
    background: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(2px);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 12vh 1rem 1rem;
    animation: cp-fade-b-2xu8mfwbwn 0.12s ease both;
}

.cp-panel[b-2xu8mfwbwn] {
    width: 100%;
    max-width: 640px;
    max-height: 70vh;
    display: flex;
    flex-direction: column;
    background: var(--crm-white, #fff);
    border-radius: 12px;
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.28), 0 2px 8px rgba(15, 23, 42, 0.12);
    overflow: hidden;
    animation: cp-rise-b-2xu8mfwbwn 0.16s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes cp-fade-b-2xu8mfwbwn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes cp-rise-b-2xu8mfwbwn {
    from { opacity: 0; transform: translateY(-8px) scale(0.985); }
    to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .cp-backdrop[b-2xu8mfwbwn],
    .cp-panel[b-2xu8mfwbwn] { animation: none; }
}

/* ── Input row ───────────────────────────────────────── */

.cp-input-row[b-2xu8mfwbwn] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    flex-shrink: 0;
}

.cp-input-icon[b-2xu8mfwbwn] {
    color: rgba(15, 23, 42, 0.4);
    font-size: 1rem;
    flex-shrink: 0;
}

.cp-input[b-2xu8mfwbwn] {
    flex: 1;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    font-size: 1rem;
    color: var(--crm-ink, #0f172a);
}

.cp-input[b-2xu8mfwbwn]::placeholder {
    color: rgba(15, 23, 42, 0.35);
}

.cp-spinner[b-2xu8mfwbwn] {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    border: 2px solid rgba(15, 23, 42, 0.15);
    border-top-color: var(--crm-teal, #0d9488);
    border-radius: 50%;
    animation: cp-spin-b-2xu8mfwbwn 0.7s linear infinite;
}

@keyframes cp-spin-b-2xu8mfwbwn {
    to { transform: rotate(360deg); }
}

.cp-close[b-2xu8mfwbwn] {
    flex-shrink: 0;
    border: none;
    background: transparent;
    color: rgba(15, 23, 42, 0.4);
    padding: 0.2rem 0.3rem;
    border-radius: 6px;
    cursor: pointer;
    line-height: 1;
}

.cp-close:hover[b-2xu8mfwbwn] {
    background: rgba(15, 23, 42, 0.06);
    color: var(--crm-ink, #0f172a);
}

/* ── Results ─────────────────────────────────────────── */

.cp-list[b-2xu8mfwbwn] {
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0.4rem 0 0.5rem;
    flex: 1 1 auto;
    min-height: 0;
}

.cp-group-header[b-2xu8mfwbwn] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.6rem 1rem 0.3rem;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(15, 23, 42, 0.42);
}

.cp-group-more[b-2xu8mfwbwn] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    color: var(--crm-teal, #0d9488);
    text-decoration: none;
    white-space: nowrap;
}

.cp-group-more:hover[b-2xu8mfwbwn] { text-decoration: underline; }

.cp-row[b-2xu8mfwbwn] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.5rem 1rem;
    cursor: pointer;
    border-left: 2px solid transparent;
}

.cp-row.is-active[b-2xu8mfwbwn] {
    background: rgba(13, 148, 136, 0.09);
    border-left-color: var(--crm-teal, #0d9488);
}

.cp-row-icon[b-2xu8mfwbwn] {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    background: rgba(15, 23, 42, 0.05);
    color: rgba(15, 23, 42, 0.6);
    font-size: 0.8rem;
}

.cp-row.is-active .cp-row-icon[b-2xu8mfwbwn] {
    background: rgba(13, 148, 136, 0.16);
    color: var(--crm-teal, #0d9488);
}

.cp-row-text[b-2xu8mfwbwn] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.cp-row-title[b-2xu8mfwbwn] {
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--crm-ink, #0f172a);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cp-row-sub[b-2xu8mfwbwn] {
    font-size: 0.72rem;
    color: rgba(15, 23, 42, 0.5);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cp-row-chip[b-2xu8mfwbwn] {
    flex-shrink: 0;
    font-size: 0.62rem;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.06);
    color: rgba(15, 23, 42, 0.45);
    white-space: nowrap;
}

/* ── Empty / loading / error ─────────────────────────── */

.cp-status[b-2xu8mfwbwn] {
    padding: 1.5rem 1rem;
    text-align: center;
    font-size: 0.85rem;
    color: rgba(15, 23, 42, 0.5);
}

.cp-status--error[b-2xu8mfwbwn] { color: #b91c1c; }

.cp-status-links[b-2xu8mfwbwn] {
    margin-top: 0.6rem;
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.cp-status-links a[b-2xu8mfwbwn] {
    font-size: 0.78rem;
    color: var(--crm-teal, #0d9488);
    text-decoration: none;
}

.cp-status-links a:hover[b-2xu8mfwbwn] { text-decoration: underline; }

.cp-shimmer[b-2xu8mfwbwn] {
    display: block;
    height: 12px;
    margin: 0.5rem auto;
    max-width: 60%;
    border-radius: 4px;
    background: linear-gradient(90deg, rgba(15,23,42,0.06) 25%, rgba(15,23,42,0.11) 37%, rgba(15,23,42,0.06) 63%);
    background-size: 400% 100%;
    animation: cp-shimmer-b-2xu8mfwbwn 1.3s ease infinite;
}

.cp-shimmer:nth-child(2)[b-2xu8mfwbwn] { max-width: 40%; }

@keyframes cp-shimmer-b-2xu8mfwbwn {
    0%   { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}

@media (prefers-reduced-motion: reduce) {
    .cp-shimmer[b-2xu8mfwbwn], .cp-spinner[b-2xu8mfwbwn] { animation: none; }
}

/* ── Footer ──────────────────────────────────────────── */

.cp-footer[b-2xu8mfwbwn] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.5rem 1rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
    font-size: 0.7rem;
    color: rgba(15, 23, 42, 0.42);
    flex-shrink: 0;
}

.cp-footer kbd[b-2xu8mfwbwn] {
    font-family: inherit;
    font-size: 0.66rem;
    padding: 0.05rem 0.3rem;
    margin-right: 0.15rem;
    border: 1px solid rgba(15, 23, 42, 0.16);
    border-bottom-width: 2px;
    border-radius: 4px;
    background: rgba(15, 23, 42, 0.03);
    color: rgba(15, 23, 42, 0.55);
}

.cp-footer-chord[b-2xu8mfwbwn] {
    margin-left: auto;
    font-weight: 600;
}

/* ── Mobile: full-screen sheet ───────────────────────── */

@media (max-width: 640.98px) {
    .cp-backdrop[b-2xu8mfwbwn] {
        padding: 0;
    }

    .cp-panel[b-2xu8mfwbwn] {
        max-width: none;
        max-height: none;
        height: 100dvh;
        border-radius: 0;
    }

    /* Comfortable touch targets. */
    .cp-row[b-2xu8mfwbwn] { padding: 0.7rem 1rem; }

    .cp-footer[b-2xu8mfwbwn] { display: none; }
}
/* /Shared/ContactAddInlineForm.razor.rz.scp.css */
.rop-add-panel[b-c0q02rpnkd] {
    padding: 12px 16px;
}

.rop-add-tabs[b-c0q02rpnkd] {
    display: flex;
    gap: 4px;
    margin-bottom: 10px;
}

.rop-add-tab[b-c0q02rpnkd] {
    background: none;
    border: 1px solid var(--crm-border);
    border-radius: 6px;
    padding: 3px 10px;
    font-size: 0.8rem;
    color: var(--crm-text-3);
    cursor: pointer;
    transition: all var(--crm-fast) ease;
}

.rop-add-tab.active[b-c0q02rpnkd] {
    background: var(--crm-navy);
    color: white;
    border-color: var(--crm-navy);
}

.rop-add-tab:hover:not(.active)[b-c0q02rpnkd] {
    background: var(--crm-bg);
}

.rop-search-row[b-c0q02rpnkd] {
    position: relative;
    margin-bottom: 8px;
}

.rop-searching-indicator[b-c0q02rpnkd] {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.75rem;
    color: var(--crm-text-3);
}

.rop-results[b-c0q02rpnkd] {
    max-height: 180px;
    overflow-y: auto;
    border: 1px solid var(--crm-border);
    border-radius: 6px;
    background: white;
    margin-bottom: 8px;
}

.rop-result-item[b-c0q02rpnkd] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    cursor: pointer;
    border-bottom: 1px solid var(--crm-border);
    transition: background var(--crm-fast) ease;
}

.rop-result-item:last-child[b-c0q02rpnkd] {
    border-bottom: none;
}

.rop-result-item:hover[b-c0q02rpnkd] {
    background: var(--crm-bg);
}

.rop-result-item.selected[b-c0q02rpnkd] {
    background: color-mix(in srgb, var(--crm-teal) 10%, white);
}

.rop-result-name[b-c0q02rpnkd] {
    font-size: 0.875rem;
    font-weight: 500;
}

.rop-result-subtitle[b-c0q02rpnkd] {
    font-size: 0.75rem;
    color: var(--crm-text-3);
}

.rop-label-section[b-c0q02rpnkd] {
    margin: 10px 0 8px;
}

.rop-label-section-title[b-c0q02rpnkd] {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--crm-text-2);
    display: block;
    margin-bottom: 6px;
}

.rop-label-options[b-c0q02rpnkd] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.rop-label-check[b-c0q02rpnkd] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.8rem;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 4px;
    border: 1px solid var(--crm-border);
    background: white;
    margin: 2px;
}

.rop-label-check:hover[b-c0q02rpnkd] {
    background: var(--crm-bg);
}

/* ── Create-new expanded form ───────────────────────── */

.rop-create-form[b-c0q02rpnkd] {
    margin-top: 2px;
}

.rop-field-label[b-c0q02rpnkd] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--crm-text-3, #9ca3af);
    text-transform: uppercase;
    margin-bottom: 3px;
}

.rop-required[b-c0q02rpnkd] {
    color: var(--crm-teal-600, #009E88);
    font-size: 0.8rem;
    margin-left: 1px;
}

.rop-field-hint[b-c0q02rpnkd] {
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--crm-teal-700, #00735f);
    background: rgba(0, 197, 168, 0.10);
    padding: 1px 6px;
    border-radius: 999px;
    text-transform: none;
}

.rop-add-actions[b-c0q02rpnkd] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 12px;
}
/* /Shared/ContextualHelpLink.razor.rz.scp.css */
/* Deliberately quiet: this sits beside page titles and must never compete with the
   page's own actions. It earns attention only on hover, when someone is looking for it. */

.chl[b-2pqlrq003k] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.875rem;
    line-height: 1;
    color: var(--crm-text-3, #8A9BB5);
    text-decoration: none;
    transition: color 0.12s ease;
}

.chl:hover[b-2pqlrq003k] { color: var(--crm-teal-600, #009E88); }

.chl:focus-visible[b-2pqlrq003k] {
    outline: 2px solid var(--crm-teal, #00C5A8);
    outline-offset: 3px;
    border-radius: 3px;
}

.chl-label[b-2pqlrq003k] {
    font-size: 0.8125rem;
    font-weight: 500;
}
/* /Shared/CsvDropZone.razor.rz.scp.css */
.csv-drop-zone[b-fr2e2ndtut] {
    position: relative;
}

.csv-drop-zone.csv-drop-zone--active[b-fr2e2ndtut] {
    outline: 2px dashed var(--crm-teal, #00C5A8);
    outline-offset: -2px;
    border-radius: var(--crm-r, 10px);
}

/* Overlay hidden by default, visible only when JS adds the active class */
.csv-drop-overlay[b-fr2e2ndtut] {
    position: absolute;
    inset: 0;
    background: rgba(0, 197, 168, 0.06);
    border-radius: var(--crm-r, 10px);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 50;
    pointer-events: none;
}

.csv-drop-zone--active .csv-drop-overlay[b-fr2e2ndtut] {
    display: flex;
}

.csv-drop-overlay-inner[b-fr2e2ndtut] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 1.5rem 2rem;
    background: var(--crm-white, #fff);
    border: 2px dashed var(--crm-teal, #00C5A8);
    border-radius: var(--crm-r, 10px);
    box-shadow: var(--crm-shadow-lift);
    color: var(--crm-teal-600, #009E88);
    font-family: 'Outfit', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
}

.csv-drop-overlay-inner i[b-fr2e2ndtut] {
    font-size: 1.75rem;
}
/* /Shared/CsvImportWizard.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   Import Wizard — Full-screen modal overlay
   Refined utilitarian: dense, clear, every control visible
   ═══════════════════════════════════════════════════════ */

/* ── Overlay & Shell ─────────────────────────────────── */

.iw-overlay[b-sot3gahefe] {
    position: fixed;
    inset: 0;
    z-index: 1060;
    background: rgba(9, 26, 54, 0.55);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: stretch;
    justify-content: center;
    animation: iwFadeIn-b-sot3gahefe 0.2s ease;
}

@keyframes iwFadeIn-b-sot3gahefe {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.iw-shell[b-sot3gahefe] {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    height: 100vh;
    background: var(--crm-bg, #F2F6FC);
    overflow: hidden;
}

/* ── Header ──────────────────────────────────────────── */

.iw-header[b-sot3gahefe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.65rem 1.5rem;
    background: var(--crm-white, #fff);
    border-bottom: 1px solid var(--crm-border, #DCE5F0);
    flex-shrink: 0;
}

.iw-header-left[b-sot3gahefe] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.iw-header-icon[b-sot3gahefe] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: var(--crm-r-sm, 6px);
    background: linear-gradient(135deg, rgba(0,197,168,0.12) 0%, rgba(0,197,168,0.04) 100%);
    color: var(--crm-teal, #00C5A8);
    font-size: 0.95rem;
}

.iw-header-title[b-sot3gahefe] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--crm-navy, #0D2447);
    letter-spacing: -0.01em;
}

.iw-close-btn[b-sot3gahefe] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border: none;
    background: transparent;
    border-radius: var(--crm-r-sm, 6px);
    color: var(--crm-text-3, #8A9BB5);
    font-size: 1.1rem;
    cursor: pointer;
    transition: all 0.15s ease;
}

.iw-close-btn:hover[b-sot3gahefe] {
    background: var(--crm-bg, #F2F6FC);
    color: var(--crm-navy, #0D2447);
}

/* ── Step Rail ───────────────────────────────────────── */

.iw-step-rail[b-sot3gahefe] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 0.6rem 1.5rem;
    background: var(--crm-white, #fff);
    border-bottom: 1px solid var(--crm-border, #DCE5F0);
    flex-shrink: 0;
}

.iw-step[b-sot3gahefe] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    white-space: nowrap;
}

.iw-step-dot[b-sot3gahefe] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    font-family: 'Outfit', sans-serif;
    font-size: 0.68rem;
    font-weight: 700;
    background: var(--crm-surface-2, #E6EEF8);
    color: var(--crm-text-3, #8A9BB5);
    transition: all 0.25s ease;
    flex-shrink: 0;
}

.iw-step.active .iw-step-dot[b-sot3gahefe] {
    background: var(--crm-navy, #0D2447);
    color: #fff;
    box-shadow: 0 0 0 3px rgba(13,36,71,0.12);
}

.iw-step.done .iw-step-dot[b-sot3gahefe] {
    background: var(--crm-teal, #00C5A8);
    color: #fff;
}

.iw-step-name[b-sot3gahefe] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--crm-text-3, #8A9BB5);
    transition: color 0.2s ease;
}

.iw-step.active .iw-step-name[b-sot3gahefe] {
    color: var(--crm-navy, #0D2447);
    font-weight: 600;
}

.iw-step.done .iw-step-name[b-sot3gahefe] {
    color: var(--crm-teal, #00C5A8);
}

.iw-step-line[b-sot3gahefe] {
    width: 2.5rem;
    height: 2px;
    background: var(--crm-border, #DCE5F0);
    margin: 0 0.5rem;
    border-radius: 1px;
    transition: background 0.25s ease;
    flex-shrink: 0;
}

.iw-step-line.done[b-sot3gahefe] {
    background: var(--crm-teal, #00C5A8);
}

/* ── Body (scrollable) ───────────────────────────────── */

.iw-body[b-sot3gahefe] {
    flex: 1;
    overflow-y: auto;
    padding: 0;
}

.iw-section[b-sot3gahefe] {
    max-width: 960px;
    margin: 0 auto;
    padding: 1.25rem 1.5rem;
}

.iw-section-wide[b-sot3gahefe] {
    max-width: 100%;
    margin: 0;
    padding: 1rem 1.5rem;
}

/* Upload step: full width so the file preview can stretch horizontally,
   and flex-column so the preview can fill the remaining vertical space.
   Height is locked to 100% of the (already-bounded) iw-body so the inner
   preview's horizontal scrollbar stays inside the visible viewport instead
   of getting pushed below the fold. */
.iw-section-upload[b-sot3gahefe] {
    max-width: 100%;
    margin: 0;
    padding: 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    height: 100%;
    box-sizing: border-box;
}

/* Keep the drop zone visually compact even when the section is wide —
   a 1600px wide drop target looks silly. */
.iw-section-upload .iw-upload-zone[b-sot3gahefe] {
    max-width: 720px;
    width: 100%;
    margin: 0 auto;
}

/* ── Footer (sticky) ─────────────────────────────────── */

.iw-footer[b-sot3gahefe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 1.5rem;
    background: var(--crm-white, #fff);
    border-top: 1px solid var(--crm-border, #DCE5F0);
    box-shadow: 0 -2px 8px rgba(13,36,71,0.04);
    flex-shrink: 0;
}

.iw-footer-actions[b-sot3gahefe] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* ── Upload Zone ─────────────────────────────────────── */

.iw-upload-zone[b-sot3gahefe] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2.5rem 2rem;
    border: 2px dashed var(--crm-border-2, #C5D3E8);
    border-radius: var(--crm-r, 10px);
    background: var(--crm-white, #fff);
    cursor: pointer;
    transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.iw-upload-zone:hover[b-sot3gahefe] {
    border-color: var(--crm-teal, #00C5A8);
    background: rgba(0, 197, 168, 0.03);
    box-shadow: 0 0 0 4px rgba(0, 197, 168, 0.06);
}

.iw-file-input[b-sot3gahefe] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
}

.iw-upload-icon[b-sot3gahefe] {
    font-size: 2.2rem;
    color: var(--crm-teal, #00C5A8);
    margin-bottom: 0.4rem;
    opacity: 0.65;
}

.iw-upload-text[b-sot3gahefe] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.88rem;
    color: var(--crm-text-2, #4A5B78);
    margin: 0;
}

.iw-upload-hint[b-sot3gahefe] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.76rem;
    color: var(--crm-text-3, #8A9BB5);
    margin: 0.2rem 0 0;
}

/* ── Cards ───────────────────────────────────────────── */

.iw-card[b-sot3gahefe] {
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: var(--crm-r, 10px);
    background: var(--crm-white, #fff);
    overflow: hidden;
    box-shadow: var(--crm-shadow-xs, 0 1px 3px rgba(13,36,71,0.05));
}

.iw-card-head[b-sot3gahefe] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 0.9rem;
    background: var(--crm-bg, #F2F6FC);
    border-bottom: 1px solid var(--crm-border, #DCE5F0);
    font-family: 'Outfit', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-navy, #0D2447);
}

.iw-card-body[b-sot3gahefe] {
    padding: 0.75rem 0.9rem;
}

/* ── Mapping export / import buttons ─────────────────── */

.iw-mapping-actions[b-sot3gahefe] {
    margin-left: auto;
    display: flex;
    gap: 0.4rem;
}

.iw-mapping-action-btn[b-sot3gahefe] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.55rem;
    border: 1px solid var(--crm-border, #DCE5F0);
    background: #FFFFFF;
    border-radius: 4px;
    font-family: 'Outfit', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: none;
    letter-spacing: normal;
    color: var(--crm-text-2, #4A5B78);
    cursor: pointer;
    transition: border-color 100ms, color 100ms, background 100ms;
}

.iw-mapping-action-btn:hover[b-sot3gahefe] {
    border-color: var(--crm-teal, #00C5A8);
    color: var(--crm-teal, #00C5A8);
}

.iw-mapping-action-import[b-sot3gahefe] {
    margin-bottom: 0;
}

/* ── Column Mapping Rows ─────────────────────────────── */

.iw-map-row[b-sot3gahefe] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.45rem 0;
    border-bottom: 1px solid var(--crm-border, #DCE5F0);
}

.iw-map-row:last-child[b-sot3gahefe] {
    border-bottom: none;
}

.iw-map-source[b-sot3gahefe] {
    flex: 0 0 160px;
    display: flex;
    align-items: center;
}

.iw-map-csv-tag[b-sot3gahefe] {
    display: inline-block;
    font-family: 'SF Mono', 'Cascadia Code', 'Fira Code', monospace;
    font-size: 0.78rem;
    color: var(--crm-text-2, #4A5B78);
    background: var(--crm-bg, #F2F6FC);
    padding: 0.15rem 0.55rem;
    border-radius: var(--crm-r-sm, 6px);
    border: 1px solid var(--crm-border, #DCE5F0);
}

.iw-map-arrow[b-sot3gahefe] {
    color: var(--crm-text-3, #8A9BB5);
    font-size: 0.75rem;
    flex-shrink: 0;
}

.iw-map-target[b-sot3gahefe] {
    flex: 1;
    max-width: 260px;
}

.iw-map-badges[b-sot3gahefe] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin-left: auto;
}

.iw-conf-badge[b-sot3gahefe] {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.5rem;
    border-radius: 20px;
    font-family: 'Outfit', sans-serif;
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.iw-conf-exact[b-sot3gahefe]  { background: #E8FBF5; color: #047857; border: 1px solid #6EE7B7; }
.iw-conf-fuzzy[b-sot3gahefe]  { background: #FFF8E1; color: #92400E; border: 1px solid #FCD34D; }
.iw-conf-low[b-sot3gahefe]    { background: var(--crm-bg, #F2F6FC); color: var(--crm-text-3); border: 1px solid var(--crm-border); }
.iw-conf-custom[b-sot3gahefe] { background: #EFF6FF; color: #1E40AF; border: 1px solid #93C5FD; }

/* ── Summary Chips ───────────────────────────────────── */

.iw-summary-bar[b-sot3gahefe] {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
    align-items: center;
}

.iw-chip[b-sot3gahefe] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.6rem;
    border-radius: 20px;
    font-family: 'Outfit', sans-serif;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.iw-chip-create[b-sot3gahefe]  { background: #E8FBF5; color: #047857; border: 1px solid #6EE7B7; }
.iw-chip-update[b-sot3gahefe]  { background: #EFF6FF; color: #1E40AF; border: 1px solid #93C5FD; }
.iw-chip-skip[b-sot3gahefe]    { background: var(--crm-bg); color: var(--crm-text-2); border: 1px solid var(--crm-border); }
.iw-chip-error[b-sot3gahefe]   { background: #FEF2F2; color: #991B1B; border: 1px solid #FCA5A5; }

/* Filterable chips — clickable summary chips above the preview table that
   toggle a row filter. The active chip gets a stronger border + ring so it
   reads as "applied" vs the inert sibling chips. */
button.iw-chip-filter[b-sot3gahefe] {
    cursor: pointer;
    transition: transform .08s ease, box-shadow .12s ease, filter .12s ease;
}

button.iw-chip-filter:hover[b-sot3gahefe] {
    filter: brightness(0.96);
    transform: translateY(-1px);
}

button.iw-chip-filter.iw-chip-active[b-sot3gahefe] {
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.08);
    border-width: 1.5px;
    font-weight: 700;
}

/* Error-row marker — replaces the row checkbox to signal "won't import". */
.iw-row-error-mark[b-sot3gahefe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    color: #991B1B;
    font-size: 0.95rem;
    cursor: not-allowed;
}

/* ── Preview Table ───────────────────────────────────── */

.iw-preview-wrap[b-sot3gahefe] {
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: var(--crm-r, 10px);
    background: var(--crm-white, #fff);
    overflow: hidden;
    box-shadow: var(--crm-shadow-xs);
}

.iw-preview-scroll[b-sot3gahefe] {
    max-height: calc(100vh - 310px);
    overflow-y: auto;
    overflow-x: auto;
}

.iw-ptable[b-sot3gahefe] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
    margin: 0;
}

.iw-ptable thead th[b-sot3gahefe] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-3, #8A9BB5);
    background: var(--crm-bg, #F2F6FC);
    padding: 0.5rem 0.6rem;
    border-bottom: 1px solid var(--crm-border, #DCE5F0);
    position: sticky;
    top: 0;
    z-index: 2;
    white-space: nowrap;
}

.iw-ptable tbody td[b-sot3gahefe] {
    padding: 0.5rem 0.6rem;
    border-bottom: 1px solid var(--crm-border, #DCE5F0);
    vertical-align: top;
    color: var(--crm-text, #0D2447);
}

.iw-ptable tbody tr:last-child td[b-sot3gahefe] {
    border-bottom: none;
}

.iw-ptable tbody tr:hover[b-sot3gahefe] {
    background: rgba(0, 197, 168, 0.025);
}

.iw-ptable tbody tr.iw-row-excluded[b-sot3gahefe] {
    opacity: 0.35;
}

.iw-ptable tbody tr.iw-row-excluded:hover[b-sot3gahefe] {
    opacity: 0.5;
}

/* ── Action Badges ───────────────────────────────────── */

.iw-action[b-sot3gahefe] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    font-family: 'Outfit', sans-serif;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.iw-action-create[b-sot3gahefe] { background: #E8FBF5; color: #047857; }
.iw-action-update[b-sot3gahefe] { background: #EFF6FF; color: #1E40AF; }
.iw-action-skip[b-sot3gahefe]   { background: var(--crm-bg); color: var(--crm-text-3); }
.iw-action-error[b-sot3gahefe]  { background: #FEF2F2; color: #991B1B; }

/* ── Org Match Cell ──────────────────────────────────── */

.iw-org-match[b-sot3gahefe] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 200px;
}

.iw-org-confidence[b-sot3gahefe] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.7rem;
    font-weight: 600;
}

.iw-org-conf-exact[b-sot3gahefe]    { color: #047857; }
.iw-org-conf-likely[b-sot3gahefe]   { color: #1E40AF; }
.iw-org-conf-possible[b-sot3gahefe] { color: #92400E; }
.iw-org-conf-none[b-sot3gahefe]     { color: #991B1B; }

.iw-org-name[b-sot3gahefe] {
    font-size: 0.8rem;
    color: var(--crm-text, #0D2447);
    font-weight: 500;
}

.iw-org-select[b-sot3gahefe] {
    font-size: 0.78rem;
    padding: 0.2rem 0.4rem;
    border: 1px solid var(--crm-border-2, #C5D3E8);
    border-radius: var(--crm-r-sm, 6px);
    background: var(--crm-white, #fff);
    color: var(--crm-text, #0D2447);
    max-width: 220px;
}

.iw-org-select:focus[b-sot3gahefe] {
    border-color: var(--crm-teal, #00C5A8);
    outline: none;
    box-shadow: 0 0 0 2px rgba(0, 197, 168, 0.15);
}

/* "Find account…" / 🔍 inline button when no auto-match was found and the
   user wants to search for the correct account by hand. */
.iw-org-search-btn[b-sot3gahefe] {
    align-self: flex-start;
    background: transparent;
    border: 1px dashed var(--crm-border-2, #C5D3E8);
    border-radius: var(--crm-r-sm, 6px);
    color: var(--crm-text-2, #4B5C7A);
    cursor: pointer;
    font-size: 0.72rem;
    padding: 0.15rem 0.45rem;
    margin-top: 0.15rem;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.iw-org-search-btn:hover[b-sot3gahefe] {
    color: var(--crm-teal, #00C5A8);
    border-color: var(--crm-teal, #00C5A8);
    background: rgba(0, 197, 168, 0.06);
}

/* Per-row search popover (OrgSearchPopover.razor). Anchored visually below
   the dropdown; for now a stacked block — overlay positioning would need a
   portal which the existing table layout doesn't have. */
.iw-org-search-pop[b-sot3gahefe] {
    margin-top: 0.35rem;
    border: 1px solid var(--crm-teal, #00C5A8);
    background: var(--crm-white, #fff);
    border-radius: var(--crm-r-sm, 6px);
    box-shadow: 0 6px 20px rgba(13, 36, 71, 0.12);
    min-width: 240px;
    max-width: 320px;
    overflow: hidden;
}

.iw-org-search-pop-head[b-sot3gahefe] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.35rem 0.45rem;
    border-bottom: 1px solid var(--crm-border-2, #E2E8F0);
    background: var(--crm-bg-2, #F8FAFC);
}

.iw-org-search-input[b-sot3gahefe] {
    flex: 1 1 auto;
    border: 1px solid var(--crm-border-2, #C5D3E8);
    border-radius: var(--crm-r-sm, 6px);
    font-size: 0.78rem;
    padding: 0.2rem 0.4rem;
    min-width: 0;
}

.iw-org-search-input:focus[b-sot3gahefe] {
    outline: none;
    border-color: var(--crm-teal, #00C5A8);
    box-shadow: 0 0 0 2px rgba(0, 197, 168, 0.15);
}

.iw-org-search-spinner[b-sot3gahefe] {
    display: inline-flex;
    align-items: center;
}

.iw-org-search-close[b-sot3gahefe] {
    background: transparent;
    border: none;
    color: var(--crm-text-3, #7088A8);
    cursor: pointer;
    font-size: 0.85rem;
    padding: 0.15rem 0.25rem;
    border-radius: 4px;
}

.iw-org-search-close:hover[b-sot3gahefe] {
    color: var(--crm-text, #0D2447);
    background: rgba(13, 36, 71, 0.06);
}

.iw-org-search-pop-body[b-sot3gahefe] {
    max-height: 240px;
    overflow-y: auto;
}

.iw-org-search-item[b-sot3gahefe] {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--crm-border-2, #EEF2F7);
    padding: 0.4rem 0.55rem;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.iw-org-search-item:last-child[b-sot3gahefe] {
    border-bottom: none;
}

.iw-org-search-item:hover[b-sot3gahefe] {
    background: rgba(0, 197, 168, 0.08);
}

.iw-org-search-item-name[b-sot3gahefe] {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--crm-text, #0D2447);
}

.iw-org-search-item-meta[b-sot3gahefe] {
    font-size: 0.72rem;
    color: var(--crm-text-3, #7088A8);
}

.iw-org-search-empty[b-sot3gahefe] {
    padding: 0.6rem;
    text-align: center;
    color: var(--crm-text-3, #7088A8);
    font-size: 0.78rem;
}

/* ── Label Cell ──────────────────────────────────────── */

.iw-label-tag[b-sot3gahefe] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.1rem 0.45rem;
    border-radius: 4px;
    font-family: 'Outfit', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    background: rgba(0, 197, 168, 0.1);
    color: var(--crm-teal-600, #009E88);
    border: 1px solid rgba(0, 197, 168, 0.25);
}

.iw-label-none[b-sot3gahefe] {
    font-size: 0.75rem;
    color: var(--crm-text-3, #8A9BB5);
    font-style: italic;
}

.iw-label-displace[b-sot3gahefe] {
    font-size: 0.7rem;
    color: #DC2626;
    margin-top: 0.15rem;
    display: flex;
    align-items: center;
    gap: 0.2rem;
}

/* ── Inline Edit Field ───────────────────────────────── */

.iw-inline-input[b-sot3gahefe] {
    font-size: 0.8rem;
    padding: 0.15rem 0.35rem;
    border: 1px solid transparent;
    border-radius: var(--crm-r-sm, 6px);
    background: transparent;
    color: var(--crm-text, #0D2447);
    width: 100%;
    transition: all 0.15s ease;
}

.iw-inline-input:hover[b-sot3gahefe] {
    background: var(--crm-bg, #F2F6FC);
    border-color: var(--crm-border, #DCE5F0);
}

.iw-inline-input:focus[b-sot3gahefe] {
    background: var(--crm-white, #fff);
    border-color: var(--crm-teal, #00C5A8);
    outline: none;
    box-shadow: 0 0 0 2px rgba(0, 197, 168, 0.12);
}

/* ── Type Tag Banner ─────────────────────────────────── */

.iw-tag-banner[b-sot3gahefe] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 0.9rem;
    border-radius: var(--crm-r-sm, 6px);
    background: linear-gradient(135deg, rgba(0,197,168,0.06) 0%, rgba(13,36,71,0.03) 100%);
    border: 1px solid rgba(0, 197, 168, 0.2);
    border-left: 3px solid var(--crm-teal, #00C5A8);
    font-size: 0.82rem;
    color: var(--crm-text-2, #4A5B78);
}

.iw-tag-banner i[b-sot3gahefe] {
    color: var(--crm-teal, #00C5A8);
}

.iw-tag-toggle[b-sot3gahefe] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    font-size: 0.72rem;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid var(--crm-border, #DCE5F0);
    background: var(--crm-white);
    color: var(--crm-text-2);
    transition: all 0.15s ease;
}

.iw-tag-toggle.on[b-sot3gahefe] {
    background: var(--crm-teal, #00C5A8);
    border-color: var(--crm-teal);
    color: #fff;
}

/* ── Label Changes (Step 3) ──────────────────────────── */

.iw-lc-card[b-sot3gahefe] {
    border: 1px solid var(--crm-border, #DCE5F0);
    border-radius: var(--crm-r, 10px);
    background: var(--crm-white, #fff);
    padding: 0.75rem 1rem;
    margin-bottom: 0.6rem;
    box-shadow: var(--crm-shadow-xs);
}

.iw-lc-header[b-sot3gahefe] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    font-size: 0.85rem;
}

.iw-lc-arrow[b-sot3gahefe] {
    color: var(--crm-text-3);
    font-size: 0.85rem;
}

.iw-lc-form[b-sot3gahefe] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: end;
}

.iw-lc-form > div[b-sot3gahefe] {
    flex: 1;
    min-width: 160px;
}

.iw-lc-label[b-sot3gahefe] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3, #8A9BB5);
    margin-bottom: 0.2rem;
}

/* ── Commit Results ──────────────────────────────────── */

.iw-results[b-sot3gahefe] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 2rem 0;
    gap: 1rem;
}

.iw-results-icon[b-sot3gahefe] {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    background: linear-gradient(135deg, rgba(0,197,168,0.15) 0%, rgba(0,197,168,0.05) 100%);
    color: var(--crm-teal, #00C5A8);
}

.iw-results-title[b-sot3gahefe] {
    font-family: 'Outfit', sans-serif;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--crm-navy, #0D2447);
}

/* ── Spinner ─────────────────────────────────────────── */

.iw-spinner-area[b-sot3gahefe] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 0;
    gap: 0.75rem;
    color: var(--crm-text-3);
    font-size: 0.85rem;
}

/* ── Unmapped hint ───────────────────────────────────── */

.iw-unmapped-hint[b-sot3gahefe] {
    margin-top: 0.6rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--crm-border, #DCE5F0);
    font-size: 0.78rem;
    color: var(--crm-text-3, #8A9BB5);
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

/* ── Match % indicator ───────────────────────────────── */

.iw-match-pct[b-sot3gahefe] {
    font-size: 0.68rem;
    color: var(--crm-text-3);
    font-weight: 500;
}

/* ── File preview card ───────────────────────────────── */

.iw-file-card[b-sot3gahefe] {
    margin-top: 0;
    /* Let the preview card grow to fill remaining vertical space in the
       flex-column section so the rows aren't squeezed into a 180px window.
       min-height: 0 lets the flex item shrink past its content size so the
       inner overflow:auto scroll container can actually scroll. */
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.iw-file-meta[b-sot3gahefe] {
    font-size: 0.78rem;
    color: var(--crm-text-3);
    margin-left: auto;
}

.iw-file-preview-scroll[b-sot3gahefe] {
    /* flex:1 1 0 + min-height:0 lets this container shrink to fit the
       parent's available height (rather than expanding to fit content),
       which keeps the horizontal scrollbar inside the visible viewport. */
    flex: 1 1 0;
    min-height: 0;
    overflow: auto;
}

.iw-file-preview-table[b-sot3gahefe] {
    font-size: 0.78rem;
    border-collapse: separate;
    border-spacing: 0;
}

.iw-file-preview-table th[b-sot3gahefe] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
    background: var(--crm-bg, #F2F6FC);
    padding: 0.5rem 0.65rem;
    /* Sticky header so column names stay visible while scrolling rows. */
    position: sticky;
    top: 0;
    z-index: 1;
    box-shadow: inset 0 -1px 0 var(--crm-border, #DCE5F0);
}

.iw-file-preview-table td[b-sot3gahefe] {
    color: var(--crm-text-2);
    padding: 0.4rem 0.65rem;
    border-bottom: 1px solid var(--crm-border, #DCE5F0);
    white-space: nowrap;
    max-width: 320px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.iw-file-preview-more[b-sot3gahefe] {
    text-align: center;
    color: var(--crm-text-3);
    font-size: 0.74rem;
    padding: 0.5rem;
    font-style: italic;
}

/* ── Error alert ─────────────────────────────────────── */

.iw-error-card[b-sot3gahefe] {
    max-width: 560px;
    margin: 0 auto;
}

.iw-error-row[b-sot3gahefe] {
    font-size: 0.8rem;
    padding: 0.3rem 0;
    border-bottom: 1px solid var(--crm-border, #DCE5F0);
}

.iw-error-row:last-child[b-sot3gahefe] {
    border-bottom: none;
}

/* ── Multi-value match chips ── */

.iw-mv-chip[b-sot3gahefe] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.15rem 0.45rem;
    border-radius: 10px;
    font-size: 0.72rem;
    margin: 0.1rem 0;
    background: var(--crm-surface-2, #F0F4FA);
    color: var(--crm-text-1, #1E293B);
    border: 1px solid var(--crm-border, #DCE5F0);
}

.iw-mv-chip.iw-mv-exact[b-sot3gahefe] {
    background: #DCFCE7;
    border-color: #86EFAC;
    color: #166534;
}

.iw-mv-chip.iw-mv-likely[b-sot3gahefe] {
    background: #DBEAFE;
    border-color: #93C5FD;
    color: #1E40AF;
}

.iw-mv-chip.iw-mv-possible[b-sot3gahefe] {
    background: #FEF9C3;
    border-color: #FDE68A;
    color: #854D0E;
}

.iw-mv-chip.iw-mv-none[b-sot3gahefe] {
    background: #FEE2E2;
    border-color: #FCA5A5;
    color: #991B1B;
    font-style: italic;
}

.iw-mv-conf[b-sot3gahefe] {
    font-size: 0.62rem;
    opacity: 0.7;
    margin-left: 0.15rem;
}

/* ── AI enhancement affordances ─────────────────────────── */

.iw-ai-card[b-sot3gahefe] {
    margin-top: 0.75rem;
    border: 1px solid rgba(0, 197, 168, 0.35);
    background: linear-gradient(180deg, rgba(0, 197, 168, 0.04), transparent);
}

.iw-ai-hint[b-sot3gahefe] {
    margin-top: 0.4rem;
    padding: 0.35rem 0.6rem;
    font-size: 0.78rem;
    background: rgba(0, 197, 168, 0.08);
    border-left: 3px solid var(--crm-teal);
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.iw-ai-badge[b-sot3gahefe] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    margin-left: 0.4rem;
    padding: 0.08rem 0.4rem;
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: var(--crm-teal);
    background: rgba(0, 197, 168, 0.12);
    border: 1px solid rgba(0, 197, 168, 0.35);
    border-radius: 9px;
    cursor: help;
}

.iw-ai-narrative[b-sot3gahefe] {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
    padding: 0.7rem 0.9rem;
    font-size: 0.82rem;
    line-height: 1.45;
    background: linear-gradient(180deg, rgba(0, 197, 168, 0.06), rgba(0, 197, 168, 0.02));
    border: 1px solid rgba(0, 197, 168, 0.3);
    border-radius: 6px;
}

.iw-ai-narrative-close[b-sot3gahefe] {
    background: none;
    border: none;
    padding: 0.1rem 0.3rem;
    color: var(--crm-text-3);
    cursor: pointer;
    border-radius: 3px;
    font-size: 0.9rem;
    line-height: 1;
    flex-shrink: 0;
}

.iw-ai-narrative-close:hover[b-sot3gahefe] {
    background: rgba(0, 0, 0, 0.05);
    color: var(--crm-text-1);
}

.iw-ai-warn-chip[b-sot3gahefe] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    margin-top: 0.25rem;
    padding: 0.08rem 0.35rem;
    font-size: 0.62rem;
    font-weight: 600;
    color: #A16207;
    background: #FEF3C7;
    border-radius: 8px;
    cursor: help;
    white-space: pre-line;
}

/* ── Migrate (schema-assist) step ───────────────────────── */

.iw-mig-card[b-sot3gahefe] {
    border: 1px solid var(--crm-border, #E4E9F1);
    border-radius: var(--crm-r-sm, 6px);
    background: #FFFFFF;
    margin-bottom: 0.85rem;
    overflow: hidden;
}

.iw-mig-card-header[b-sot3gahefe] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.55rem 0.85rem;
    background: linear-gradient(135deg, rgba(0,197,168,0.04) 0%, rgba(13,36,71,0.02) 100%);
    border-bottom: 1px solid var(--crm-border, #E4E9F1);
}

.iw-mig-kind[b-sot3gahefe] {
    display: inline-flex;
    align-items: center;
    padding: 0.12rem 0.45rem;
    font-size: 0.66rem;
    font-weight: 700;
    border-radius: 4px;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.iw-mig-kind-extend[b-sot3gahefe] {
    background: rgba(0, 197, 168, 0.12);
    color: var(--crm-teal, #00C5A8);
}

.iw-mig-kind-create[b-sot3gahefe] {
    background: rgba(108, 92, 231, 0.12);
    color: #6C5CE7;
}

.iw-mig-kind-fold[b-sot3gahefe] {
    background: rgba(245, 158, 11, 0.14);
    color: #B45309;
}

.iw-mig-kind-unsorted[b-sot3gahefe] {
    background: rgba(124, 138, 163, 0.14);
    color: #4A5B78;
}

.iw-fold-props-head[b-sot3gahefe],
.iw-fold-row[b-sot3gahefe] {
    display: grid;
    grid-template-columns: 36px 200px 1fr 110px;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0;
    font-size: 0.82rem;
}

.iw-fold-props-head[b-sot3gahefe] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3, #7C8AA3);
    border-bottom: 1px solid var(--crm-border, #E4E9F1);
    margin-bottom: 0.2rem;
}

.iw-fold-row + .iw-fold-row[b-sot3gahefe] {
    border-top: 1px dashed var(--crm-border, #E4E9F1);
}

.iw-mig-title[b-sot3gahefe] {
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--crm-text-1, #0D2447);
}

.iw-mig-title-input[b-sot3gahefe] {
    flex: 0 1 240px;
    padding: 0.2rem 0.5rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--crm-text-1, #0D2447);
    border: 1px solid var(--crm-border, #E4E9F1);
    border-radius: 4px;
    background: #FFFFFF;
}

.iw-mig-title-input:focus[b-sot3gahefe] {
    outline: none;
    border-color: var(--crm-teal, #00C5A8);
    box-shadow: 0 0 0 2px rgba(0, 197, 168, 0.12);
}

.iw-mig-source[b-sot3gahefe] {
    margin-left: auto;
    font-size: 0.72rem;
    color: var(--crm-text-3, #7C8AA3);
    cursor: help;
}

.iw-mig-reject[b-sot3gahefe] {
    margin-left: 0.4rem;
    padding: 0.12rem 0.5rem;
    font-size: 0.72rem;
}

.iw-mig-card-rejected[b-sot3gahefe] {
    opacity: 0.55;
    background: #FAFBFC;
}

.iw-mig-card-rejected .iw-mig-card-header[b-sot3gahefe] {
    background: none;
}

.iw-mig-props[b-sot3gahefe] {
    padding: 0.5rem 0.85rem 0.8rem;
}

.iw-mig-props-head[b-sot3gahefe],
.iw-mig-props[b-sot3gahefe]  .iw-prop-row {
    display: grid;
    grid-template-columns: 36px 180px 1fr 130px 1fr;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0;
    font-size: 0.82rem;
}

.iw-mig-props-head[b-sot3gahefe] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3, #7C8AA3);
    border-bottom: 1px solid var(--crm-border, #E4E9F1);
    margin-bottom: 0.2rem;
}

.iw-mig-props[b-sot3gahefe]  .iw-prop-row + .iw-prop-row {
    border-top: 1px dashed var(--crm-border, #E4E9F1);
}

.iw-mig-props[b-sot3gahefe]  .iw-prop-row-rejected {
    opacity: 0.45;
}

.iw-mig-props[b-sot3gahefe]  .iw-prop-csv-col {
    font-family: var(--crm-font-mono, monospace);
    font-size: 0.78rem;
    color: var(--crm-text-2, #4A5B78);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.iw-mig-props[b-sot3gahefe]  .iw-prop-csv-col i {
    color: var(--crm-text-3, #7C8AA3);
    margin-right: 0.3rem;
}

.iw-mig-props[b-sot3gahefe]  .iw-prop-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.74rem;
    color: var(--crm-text-3, #7C8AA3);
    overflow: hidden;
}

.iw-mig-props[b-sot3gahefe]  .iw-prop-rate {
    flex-shrink: 0;
    padding: 0.08rem 0.4rem;
    border-radius: 8px;
    background: rgba(0, 197, 168, 0.1);
    color: var(--crm-teal, #00C5A8);
    font-weight: 600;
}

.iw-mig-props[b-sot3gahefe]  .iw-prop-samples {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: help;
}

.iw-mig-props[b-sot3gahefe]  .iw-prop-options {
    grid-column: 3 / -1;
    padding-top: 0.3rem;
}

.iw-mig-props[b-sot3gahefe]  .iw-opt-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    align-items: center;
}

.iw-mig-props[b-sot3gahefe]  .iw-opt-chip {
    padding: 0.15rem 0.55rem;
    border-radius: 12px;
    border: 1px solid var(--crm-border, #E4E9F1);
    background: #FFFFFF;
    font-size: 0.74rem;
    color: var(--crm-text-2, #4A5B78);
    cursor: pointer;
    transition: background 100ms, color 100ms, border-color 100ms;
}

.iw-mig-props[b-sot3gahefe]  .iw-opt-chip:hover {
    border-color: var(--crm-teal, #00C5A8);
    color: var(--crm-text-1, #0D2447);
}

.iw-mig-props[b-sot3gahefe]  .iw-opt-chip.on {
    background: rgba(0, 197, 168, 0.14);
    border-color: var(--crm-teal, #00C5A8);
    color: var(--crm-teal, #00C5A8);
    font-weight: 600;
}

.iw-mig-props[b-sot3gahefe]  .iw-opt-add {
    border: 1px dashed var(--crm-border, #E4E9F1);
    background: transparent;
    padding: 0.15rem 0.55rem;
    border-radius: 12px;
    font-size: 0.74rem;
    color: var(--crm-text-3, #7C8AA3);
    min-width: 120px;
}

.iw-mig-props[b-sot3gahefe]  .iw-opt-add:focus {
    outline: none;
    border-color: var(--crm-teal, #00C5A8);
    color: var(--crm-text-2, #4A5B78);
}

.iw-mig-props[b-sot3gahefe]  .iw-opt-empty {
    margin-top: 0.25rem;
    font-size: 0.72rem;
    color: var(--crm-text-3, #7C8AA3);
    font-style: italic;
}

.iw-mig-props[b-sot3gahefe]  .iw-opt-delim-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem;
    margin-bottom: 0.3rem;
}

.iw-mig-props[b-sot3gahefe]  .iw-opt-delim-label {
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3, #7C8AA3);
    margin-right: 0.15rem;
}

.iw-mig-props[b-sot3gahefe]  .iw-opt-delim-chip {
    padding: 0.1rem 0.45rem;
    border-radius: 4px;
    border: 1px solid var(--crm-border, #E4E9F1);
    background: #FFFFFF;
    font-family: var(--crm-font-mono, monospace);
    font-size: 0.7rem;
    color: var(--crm-text-2, #4A5B78);
    cursor: pointer;
    transition: background 100ms, color 100ms, border-color 100ms;
}

.iw-mig-props[b-sot3gahefe]  .iw-opt-delim-chip:hover {
    border-color: var(--crm-teal, #00C5A8);
    color: var(--crm-text-1, #0D2447);
}

.iw-mig-props[b-sot3gahefe]  .iw-opt-delim-chip.on {
    background: rgba(0, 197, 168, 0.14);
    border-color: var(--crm-teal, #00C5A8);
    color: var(--crm-teal, #00C5A8);
    font-weight: 600;
}

.iw-mig-props[b-sot3gahefe]  .iw-opt-delim-custom {
    border: 1px dashed var(--crm-border, #E4E9F1);
    background: transparent;
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    font-family: var(--crm-font-mono, monospace);
    font-size: 0.7rem;
    color: var(--crm-text-3, #7C8AA3);
    width: 80px;
}

.iw-mig-props[b-sot3gahefe]  .iw-opt-delim-custom:focus {
    outline: none;
    border-color: var(--crm-teal, #00C5A8);
    color: var(--crm-text-2, #4A5B78);
}

.iw-prop-with-move[b-sot3gahefe] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.iw-prop-with-move[b-sot3gahefe] >  .iw-prop-row {
    flex: 1 1 auto;
}

.iw-prop-move-select[b-sot3gahefe] {
    flex: 0 0 auto;
    padding: 0.18rem 0.4rem;
    font-size: 0.72rem;
    border: 1px solid var(--crm-border, #E4E9F1);
    background: #FFFFFF;
    border-radius: 4px;
    color: var(--crm-text-3, #7C8AA3);
    cursor: pointer;
    transition: color 100ms, border-color 100ms;
}

.iw-prop-move-select:hover[b-sot3gahefe],
.iw-prop-move-select:focus[b-sot3gahefe] {
    color: var(--crm-text-1, #0D2447);
    border-color: var(--crm-teal, #00C5A8);
    outline: none;
}

.iw-mig-actions[b-sot3gahefe] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.iw-empty[b-sot3gahefe] {
    padding: 1rem;
    text-align: center;
    color: var(--crm-text-3, #7C8AA3);
    font-style: italic;
}

.iw-mig-handled-banner[b-sot3gahefe] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.5rem 0.75rem;
    margin-bottom: 0.65rem;
    border-radius: var(--crm-r-sm, 6px);
    background: rgba(108, 92, 231, 0.06);
    border: 1px solid rgba(108, 92, 231, 0.18);
    font-size: 0.78rem;
    color: var(--crm-text-2, #4A5B78);
}

.iw-mig-handled-banner i[b-sot3gahefe] {
    color: #6C5CE7;
}

.iw-mig-handled-toggle[b-sot3gahefe] {
    padding: 0;
    font-size: 0.78rem;
    color: #6C5CE7;
    text-decoration: none;
}

.iw-mig-handled-toggle:hover[b-sot3gahefe] {
    text-decoration: underline;
}

.iw-map-row-handled[b-sot3gahefe] {
    background: rgba(108, 92, 231, 0.03);
    border-left: 2px solid rgba(108, 92, 231, 0.4);
    padding-left: 0.5rem;
}

.iw-map-info[b-sot3gahefe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin-left: 4px;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--crm-text-3, #7C8AA3);
    border-radius: 4px;
    cursor: pointer;
    transition: color 120ms, background 120ms;
}

.iw-map-info:hover[b-sot3gahefe] {
    color: var(--crm-teal, #00C5A8);
    background: rgba(0, 197, 168, 0.1);
}

.iw-sample-col-title[b-sot3gahefe] {
    font-size: 0.74rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3, #7C8AA3);
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.iw-sample-list[b-sot3gahefe] {
    list-style: none;
    padding: 0;
    margin: 0;
    border: 1px solid var(--crm-border, #E4E9F1);
    border-radius: 6px;
    overflow: hidden;
    max-height: 280px;
    overflow-y: auto;
}

.iw-sample-list li[b-sot3gahefe] {
    padding: 0.4rem 0.65rem;
    font-size: 0.82rem;
    font-family: var(--crm-font-mono, monospace);
    color: var(--crm-text-1, #0D2447);
    border-bottom: 1px solid var(--crm-border, #E4E9F1);
}

.iw-sample-list li:last-child[b-sot3gahefe] {
    border-bottom: none;
}

.iw-sample-list li:nth-child(even)[b-sot3gahefe] {
    background: #FAFBFC;
}

.iw-val-chip[b-sot3gahefe] {
    display: inline-flex;
    align-items: center;
    padding: 0 0.35rem;
    border-radius: 4px;
    font-size: 0.74rem;
    cursor: help;
}

.iw-val-match[b-sot3gahefe] {
    color: #15803D;
    background: rgba(34, 197, 94, 0.12);
}

.iw-val-mismatch[b-sot3gahefe] {
    color: #B91C1C;
    background: rgba(239, 68, 68, 0.12);
}

.iw-val-partial[b-sot3gahefe] {
    color: #A16207;
    background: #FEF3C7;
}

.iw-map-multi-panel[b-sot3gahefe] {
    margin: -0.25rem 0 0.65rem 1.5rem;
    padding: 0.5rem 0.75rem;
    border-left: 2px solid rgba(0, 197, 168, 0.4);
    background: rgba(0, 197, 168, 0.04);
    border-radius: 0 4px 4px 0;
    font-size: 0.78rem;
}

.iw-map-multi-row[b-sot3gahefe] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin: 0.25rem 0;
}

.iw-map-multi-label[b-sot3gahefe] {
    color: var(--crm-text-3, #7C8AA3);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.66rem;
    min-width: 96px;
}

.iw-delim-chip[b-sot3gahefe] {
    padding: 0.15rem 0.55rem;
    border-radius: 4px;
    border: 1px solid var(--crm-border, #E4E9F1);
    background: #FFFFFF;
    font-size: 0.74rem;
    cursor: pointer;
    color: var(--crm-text-2, #4A5B78);
}

.iw-delim-chip.on[b-sot3gahefe],
.iw-delim-chip:hover[b-sot3gahefe] {
    border-color: var(--crm-teal, #00C5A8);
    background: rgba(0, 197, 168, 0.12);
    color: var(--crm-text-1, #0D2447);
}

.iw-delim-custom[b-sot3gahefe] {
    display: inline-block;
}

.iw-map-multi-preview[b-sot3gahefe] {
    margin-left: 0.5rem;
    font-family: var(--crm-font-mono, monospace);
    font-size: 0.72rem;
    color: var(--crm-text-3, #7C8AA3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 320px;
}

/* ── Grouped resolver panels (Preview step) ───────────────────────────── */

.iw-resolve-panel[b-sot3gahefe] {
    border: 1px solid var(--crm-border, #DCE2EB);
    border-radius: 6px;
    background: var(--crm-bg-1, #FFFFFF);
    margin-bottom: 0.75rem;
    overflow: hidden;
}

.iw-resolve-header[b-sot3gahefe] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.75rem;
    background: var(--crm-bg-2, #F5F7FA);
    cursor: pointer;
    user-select: none;
    font-size: 0.86rem;
    color: var(--crm-text-1, #1E2A3A);
}

.iw-resolve-header:hover[b-sot3gahefe] {
    background: var(--crm-bg-3, #EDF1F6);
}

.iw-resolve-header i[b-sot3gahefe] {
    color: var(--crm-text-3, #7C8AA3);
    font-size: 0.85rem;
}

.iw-resolve-summary[b-sot3gahefe] {
    margin-left: auto;
    font-size: 0.76rem;
    color: var(--crm-text-3, #7C8AA3);
    font-weight: 400;
}

.iw-resolve-table[b-sot3gahefe] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.iw-resolve-table thead th[b-sot3gahefe] {
    text-align: left;
    padding: 0.4rem 0.75rem;
    font-weight: 500;
    font-size: 0.74rem;
    color: var(--crm-text-3, #7C8AA3);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    background: var(--crm-bg-1, #FFFFFF);
    border-bottom: 1px solid var(--crm-border, #DCE2EB);
}

.iw-resolve-table tbody td[b-sot3gahefe] {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--crm-border-1, #EEF1F5);
    vertical-align: middle;
}

.iw-resolve-table tbody tr:last-child td[b-sot3gahefe] {
    border-bottom: none;
}

.iw-resolve-source[b-sot3gahefe] {
    font-family: var(--crm-font-mono, monospace);
    color: var(--crm-text-2, #4A5568);
    max-width: 320px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.iw-resolve-count[b-sot3gahefe] {
    color: var(--crm-text-1, #1E2A3A);
    font-weight: 500;
}

.iw-resolve-diverged[b-sot3gahefe] {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0.05rem 0.4rem;
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--crm-orange-2, #B45309);
    background: var(--crm-orange-bg, #FEF3C7);
    border-radius: 10px;
}

.iw-resolve-current[b-sot3gahefe] {
    color: var(--crm-text-2, #4A5568);
}

/* ── Row detail trigger + modal ───────────────────────────────────────── */

.iw-action-cell[b-sot3gahefe] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.iw-row-detail-btn[b-sot3gahefe] {
    appearance: none;
    background: transparent;
    border: 1px solid transparent;
    color: var(--crm-text-3, #7C8AA3);
    padding: 0.1rem 0.3rem;
    border-radius: 4px;
    cursor: pointer;
    line-height: 1;
    font-size: 0.82rem;
}

.iw-row-detail-btn:hover[b-sot3gahefe] {
    color: var(--crm-teal, #0D9488);
    background: var(--crm-bg-2, #F5F7FA);
    border-color: var(--crm-border, #DCE2EB);
}

.iw-detail-table[b-sot3gahefe] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.iw-detail-table th[b-sot3gahefe] {
    text-align: left;
    font-weight: 500;
    color: var(--crm-text-3, #7C8AA3);
    padding: 0.35rem 0.6rem 0.35rem 0;
    vertical-align: middle;
    width: 35%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 0;
}

.iw-detail-table td[b-sot3gahefe] {
    padding: 0.25rem 0;
    vertical-align: middle;
    color: var(--crm-text-1, #1E2A3A);
}

.iw-detail-table tbody tr[b-sot3gahefe] {
    border-bottom: 1px solid var(--crm-border-1, #EEF1F5);
}

.iw-detail-table tbody tr:last-child[b-sot3gahefe] {
    border-bottom: none;
}

.iw-detail-csv td[b-sot3gahefe] {
    word-break: break-word;
    color: var(--crm-text-2, #4A5568);
    font-family: var(--crm-font-mono, monospace);
    font-size: 0.78rem;
}

.iw-detail-empty td[b-sot3gahefe],
.iw-detail-empty th[b-sot3gahefe] {
    color: var(--crm-text-4, #A0AEC0);
}

.iw-detail-tags[b-sot3gahefe] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.4rem;
}

/* ── Batched-import progress animations ─────────────────────────────── */

/* Striped shimmer on the progress bar while auto-pilot is running so the
   user has continuous visual confirmation the system is working even when
   the percentage isn't advancing (mid-analyze, mid-commit). */
@keyframes iw-batch-progress-shimmer-b-sot3gahefe {
    0% { background-position: 200% 0; }
    100% { background-position: 0 0; }
}

.iw-batch-progress-bar[b-sot3gahefe] {
    background-image: linear-gradient(
        90deg,
        var(--crm-teal) 0%,
        rgba(255, 255, 255, 0.35) 50%,
        var(--crm-teal) 100%
    );
}

/* Pulse the pill that the auto-pilot is actively working on. Subtle so it
   reads as activity, not a notification. */
@keyframes iw-batch-pill-pulse-b-sot3gahefe {
    0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(33, 150, 160, 0.45); }
    50%      { transform: scale(1.08); box-shadow: 0 0 0 4px rgba(33, 150, 160, 0); }
}

.iw-batch-pill-pulse[b-sot3gahefe] {
    animation: iw-batch-pill-pulse-b-sot3gahefe 1.4s ease-in-out infinite;
}

/* Clickable action chip on preview rows so users can override the
   analyzer's Update suggestion. Subtle hover lifts the chip to read as
   interactive without overpowering the regular static-chip styling. */
.iw-action-toggle[b-sot3gahefe] {
    cursor: pointer;
    border: 1px dashed transparent;
    padding: .15rem .45rem;
    line-height: 1.1;
    transition: background-color 150ms ease, border-color 150ms ease, transform 100ms ease;
}

.iw-action-toggle:hover[b-sot3gahefe] {
    border-color: currentColor;
    transform: translateY(-1px);
}
/* /Shared/CustomObjectAddInlineForm.razor.rz.scp.css */
.rop-add-panel[b-agh3g56kh1] {
    padding: 12px 16px;
}

.rop-add-tabs[b-agh3g56kh1] {
    display: flex;
    gap: 4px;
    margin-bottom: 10px;
}

.rop-add-tab[b-agh3g56kh1] {
    background: none;
    border: 1px solid var(--crm-border);
    border-radius: 6px;
    padding: 3px 10px;
    font-size: 0.8rem;
    color: var(--crm-text-3);
    cursor: pointer;
    transition: all var(--crm-fast) ease;
}

.rop-add-tab.active[b-agh3g56kh1] {
    background: var(--crm-navy);
    color: white;
    border-color: var(--crm-navy);
}

.rop-add-tab:hover:not(.active)[b-agh3g56kh1] {
    background: var(--crm-bg);
}

.rop-search-row[b-agh3g56kh1] {
    position: relative;
    margin-bottom: 8px;
}

.rop-searching-indicator[b-agh3g56kh1] {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.75rem;
    color: var(--crm-text-3);
}

.rop-results[b-agh3g56kh1] {
    max-height: 180px;
    overflow-y: auto;
    border: 1px solid var(--crm-border);
    border-radius: 6px;
    background: white;
    margin-bottom: 8px;
}

.rop-result-item[b-agh3g56kh1] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    cursor: pointer;
    border-bottom: 1px solid var(--crm-border);
    transition: background var(--crm-fast) ease;
}

.rop-result-item:last-child[b-agh3g56kh1] {
    border-bottom: none;
}

.rop-result-item:hover[b-agh3g56kh1] {
    background: var(--crm-bg);
}

.rop-result-item.selected[b-agh3g56kh1] {
    background: color-mix(in srgb, var(--crm-teal) 10%, white);
}

.rop-result-name[b-agh3g56kh1] {
    font-size: 0.875rem;
    font-weight: 500;
}

.rop-result-subtitle[b-agh3g56kh1] {
    font-size: 0.75rem;
    color: var(--crm-text-3);
}

.rop-label-section[b-agh3g56kh1] {
    margin: 10px 0 8px;
}

.rop-label-section-title[b-agh3g56kh1] {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--crm-text-2);
    display: block;
    margin-bottom: 6px;
}

.rop-label-options[b-agh3g56kh1] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.rop-label-check[b-agh3g56kh1] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.8rem;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 4px;
    border: 1px solid var(--crm-border);
    background: white;
    margin: 2px;
}

.rop-label-check:hover[b-agh3g56kh1] {
    background: var(--crm-bg);
}

.rop-add-actions[b-agh3g56kh1] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 12px;
}
/* /Shared/Dashboard/DashboardCardConfig.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   DashboardCardConfig — adaptive card configuration form
   ═══════════════════════════════════════════════════════ */

.db-config[b-ygsuxyy3rj] {
    animation: db-config-in-b-ygsuxyy3rj 0.2s var(--crm-ease) both;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

@keyframes db-config-in-b-ygsuxyy3rj {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .db-config[b-ygsuxyy3rj] { animation: none; }
}

/* ── Sections ──
   The form used to be one flat stack of full-width selects, which at dialog
   width read as an undifferentiated column. Grouping gives the eye somewhere
   to rest and makes "which records" vs "how it looks" legible at a glance. */

.db-config__section[b-ygsuxyy3rj] {
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
}

.db-config__section + .db-config__section[b-ygsuxyy3rj] {
    padding-top: 1.25rem;
    border-top: 1px solid var(--crm-border);
}

.db-config__section-title[b-ygsuxyy3rj] {
    margin: 0;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--crm-text-3);
}

.db-config__field[b-ygsuxyy3rj] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.db-config__label[b-ygsuxyy3rj] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--crm-text-2);
    margin: 0;
}

.db-config__hint[b-ygsuxyy3rj] {
    font-size: 0.8125rem;
    color: var(--crm-text-3);
    line-height: 1.4;
}

/* ── Segmented control ── */

.db-config__seg[b-ygsuxyy3rj] {
    display: inline-flex;
    padding: 3px;
    gap: 3px;
    background: var(--crm-surface-2, rgba(0, 0, 0, 0.04));
    border: 1px solid var(--crm-border);
    border-radius: 10px;
    align-self: flex-start;
}

.db-config__seg-btn[b-ygsuxyy3rj] {
    border: 0;
    background: transparent;
    border-radius: 7px;
    padding: 0.375rem 0.875rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--crm-text-2);
    cursor: pointer;
    transition:
        background-color var(--crm-fast) ease,
        color var(--crm-fast) ease,
        box-shadow var(--crm-fast) ease;
}

.db-config__seg-btn:hover[b-ygsuxyy3rj] { color: var(--crm-text-1); }

.db-config__seg-btn.is-active[b-ygsuxyy3rj] {
    background: var(--crm-white, #fff);
    color: var(--crm-navy);
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}

.db-config__seg-btn:focus-visible[b-ygsuxyy3rj] {
    outline: 2px solid var(--crm-navy);
    outline-offset: 1px;
}

/* ── Color swatch picker ── */

.db-config__colors[b-ygsuxyy3rj] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.db-config__color-swatch[b-ygsuxyy3rj] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 3px solid transparent;
    cursor: pointer;
    transition:
        transform var(--crm-fast) ease,
        border-color var(--crm-fast) ease,
        box-shadow var(--crm-fast) ease;
    position: relative;
    overflow: hidden;
}

.db-config__color-swatch:hover[b-ygsuxyy3rj] {
    transform: scale(1.15);
}

.db-config__color-swatch.active[b-ygsuxyy3rj] {
    border-color: var(--crm-navy);
    box-shadow: 0 0 0 2px var(--crm-white), 0 0 0 4px var(--crm-navy);
    transform: scale(1.1);
}

.db-config__color-swatch:focus-visible[b-ygsuxyy3rj] {
    outline: 2px solid var(--crm-navy);
    outline-offset: 2px;
}

/* Extra color variants not in the default text-bg set */
.db-config__swatch-danger[b-ygsuxyy3rj] {
    background: #EF4444 !important;
}

.db-config__swatch-secondary[b-ygsuxyy3rj] {
    background: var(--crm-text-3) !important;
}

/* ── Quick links editor ── */

.db-config__links[b-ygsuxyy3rj] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.db-config__link-row[b-ygsuxyy3rj] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.db-config__link-row .form-control[b-ygsuxyy3rj] {
    flex: 1;
    min-width: 0;
}

.db-config__link-row .btn[b-ygsuxyy3rj] {
    flex-shrink: 0;
}

/* ── Footer ── */

.db-config__actions[b-ygsuxyy3rj] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--crm-border);
}
/* /Shared/Dashboard/DashboardCardPicker.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   DashboardCardPicker — card type selection modal
   ═══════════════════════════════════════════════════════ */

.db-picker__grid[b-5lpitofhv4] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.db-picker__option[b-5lpitofhv4] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.875rem 1rem;
    border: 1.5px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    background: var(--crm-white);
    cursor: pointer;
    text-align: left;
    transition:
        border-color var(--crm-fast) ease,
        background-color var(--crm-fast) ease,
        transform var(--crm-fast) ease,
        box-shadow var(--crm-fast) ease;
}

.db-picker__option:hover[b-5lpitofhv4] {
    border-color: var(--crm-teal);
    background: var(--crm-teal-50);
    transform: translateX(4px);
    box-shadow: var(--crm-shadow-xs);
}

.db-picker__icon[b-5lpitofhv4] {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: var(--crm-r-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

/* Segment leads the list, so it gets the accent treatment rather than the
   neutral navy the plain metric card uses. */
.db-picker__icon--segment[b-5lpitofhv4] {
    background: color-mix(in srgb, var(--crm-teal) 16%, white);
    color: var(--crm-teal-600);
    box-shadow: inset 0 0 0 1px rgba(0, 197, 168, 0.28);
}

.db-picker__icon--metric[b-5lpitofhv4] {
    background: color-mix(in srgb, var(--crm-navy) 10%, white);
    color: var(--crm-navy);
    box-shadow: inset 0 0 0 1px rgba(13, 36, 71, 0.12);
}

.db-picker__icon--list[b-5lpitofhv4] {
    background: color-mix(in srgb, var(--crm-teal) 12%, white);
    color: var(--crm-teal-600);
    box-shadow: inset 0 0 0 1px rgba(0, 197, 168, 0.2);
}

.db-picker__icon--tasks[b-5lpitofhv4] {
    background: color-mix(in srgb, #6366F1 10%, white);
    color: #4F46E5;
    box-shadow: inset 0 0 0 1px rgba(99, 102, 241, 0.18);
}

.db-picker__icon--links[b-5lpitofhv4] {
    background: color-mix(in srgb, #F59E0B 10%, white);
    color: #B45309;
    box-shadow: inset 0 0 0 1px rgba(245, 158, 11, 0.18);
}

.db-picker__text[b-5lpitofhv4] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.db-picker__text strong[b-5lpitofhv4] {
    font-size: 0.9rem;
    color: var(--crm-navy);
}

.db-picker__text small[b-5lpitofhv4] {
    font-size: 0.78rem;
    color: var(--crm-text-2);
    line-height: 1.3;
}

/* Concrete examples do more to explain a Segment card than the description does. */
.db-picker__examples[b-5lpitofhv4] {
    margin-top: 0.15rem;
    font-size: 0.72rem;
    color: var(--crm-text-3);
    font-style: italic;
}
/* /Shared/Dashboard/DashboardEditor.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   DashboardEditor — customize mode panel
   ═══════════════════════════════════════════════════════ */

.db-editor[b-j5peike2ie] {
    background: var(--crm-white);
    border: 2px dashed var(--crm-border-2);
    border-radius: var(--crm-r);
    padding: 1.25rem;
    animation: db-editor-in-b-j5peike2ie 0.25s var(--crm-ease) both;
}

@keyframes db-editor-in-b-j5peike2ie {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .db-editor[b-j5peike2ie] { animation: none; }
}

.db-editor__header[b-j5peike2ie] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--crm-border);
}

.db-editor__heading[b-j5peike2ie] {
    min-width: 0;
}

.db-editor__title[b-j5peike2ie] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--crm-navy);
    margin: 0;
    display: flex;
    align-items: center;
}

.db-editor__subtitle[b-j5peike2ie] {
    margin: 0.2rem 0 0;
    font-size: 0.8125rem;
    color: var(--crm-text-3);
}

/* ── Card rows ── */

.db-editor__item-content[b-j5peike2ie] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--crm-text);
    min-width: 0;
}

/* A hidden card still occupies its slot in the order, so it stays legible —
   just clearly stood down. */
.db-editor__item-content.is-hidden[b-j5peike2ie] {
    opacity: 0.55;
}

.db-editor__type-badge[b-j5peike2ie] {
    display: inline-block;
    padding: 0.15rem 0.45rem;
    border-radius: 20px;
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    background: var(--crm-surface-2);
    color: var(--crm-text-2);
    border: 1px solid var(--crm-border);
    flex-shrink: 0;
}

.db-editor__type-badge--segment[b-j5peike2ie] {
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
    border-color: color-mix(in srgb, var(--crm-teal) 35%, transparent);
}

.db-editor__item-text[b-j5peike2ie] {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    min-width: 0;
}

.db-editor__item-title[b-j5peike2ie] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* The recap is what makes the list readable without opening each card. */
.db-editor__item-summary[b-j5peike2ie] {
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--crm-text-3);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Empty state ── */

.db-editor__empty[b-j5peike2ie] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 1.25rem 1rem;
    color: var(--crm-text-3);
    font-size: 0.875rem;
}

.db-editor__empty i[b-j5peike2ie] {
    font-size: 1.125rem;
    opacity: 0.6;
}

/* ── Add ── */

.db-editor__add-btn[b-j5peike2ie] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.65rem;
    margin-top: 0.5rem;
    border: 1.5px dashed var(--crm-border-2);
    border-radius: var(--crm-r-sm);
    background: transparent;
    color: var(--crm-text-2);
    font-family: 'Outfit', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition:
        color var(--crm-fast) ease,
        border-color var(--crm-fast) ease,
        background-color var(--crm-fast) ease;
}

.db-editor__add-btn:hover[b-j5peike2ie] {
    color: var(--crm-teal-600);
    border-color: var(--crm-teal);
    background: var(--crm-teal-50);
}

.db-editor__add-btn:focus-visible[b-j5peike2ie] {
    outline: 2px solid var(--crm-navy);
    outline-offset: 2px;
}
/* /Shared/Dashboard/DashboardMetricCard.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   DashboardMetricCard — clickable stat tile
   Inherits text-bg-* theme from app.css stat card styles
   ═══════════════════════════════════════════════════════ */

.db-metric[b-l66jydv297] {
    position: relative;
    overflow: hidden;
    border-radius: var(--crm-r);
    padding: 1.25rem;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    min-height: 100px;
    /* Rendered as an <a> when it links somewhere — undo the link defaults so the
       tile keeps its own type treatment. */
    text-decoration: none;
    color: inherit;
    transition:
        transform var(--crm-mid) var(--crm-ease),
        box-shadow var(--crm-mid) var(--crm-ease);
}

a.db-metric[b-l66jydv297] {
    cursor: pointer;
}

a.db-metric:hover[b-l66jydv297],
a.db-metric:focus[b-l66jydv297] {
    text-decoration: none;
    color: inherit;
}

/* Only the linking variant reacts — a tile that goes nowhere should not
   advertise itself as pressable. */
a.db-metric:hover[b-l66jydv297] {
    transform: translateY(-4px) scale(1.015);
    box-shadow: var(--crm-shadow-lift);
}

a.db-metric:active[b-l66jydv297] {
    transform: translateY(-1px) scale(1.005);
    transition-duration: 0.08s;
}

.db-metric:focus-visible[b-l66jydv297] {
    outline: 2px solid var(--crm-teal);
    outline-offset: 2px;
}

/* Decorative circle — matches app.css stat card accent */
.db-metric[b-l66jydv297]::after {
    content: '';
    position: absolute;
    top: -24px;
    right: -24px;
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: rgba(255,255,255,0.09);
    pointer-events: none;
}

/* Second decorative element — subtle diagonal line */
.db-metric[b-l66jydv297]::before {
    content: '';
    position: absolute;
    bottom: -12px;
    left: -12px;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(255,255,255,0.045);
    pointer-events: none;
}

.db-metric__body[b-l66jydv297] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    position: relative;
    z-index: 1;
}

.db-metric__label[b-l66jydv297] {
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: 0.72;
}

.db-metric__count[b-l66jydv297] {
    font-family: 'Outfit', sans-serif;
    font-weight: 700;
    font-size: 2.4rem;
    letter-spacing: -0.03em;
    line-height: 1;
    /* Fixed-width digits so a row of tiles keeps a common baseline rhythm
       instead of shifting as counts change width. */
    font-variant-numeric: tabular-nums;
}

/* Arrow indicator */
.db-metric__arrow[b-l66jydv297] {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(255,255,255,0.15);
    font-size: 0.8rem;
    opacity: 0;
    transform: translateX(-6px);
    transition:
        opacity var(--crm-mid) var(--crm-ease),
        transform var(--crm-mid) var(--crm-ease);
}

.db-metric:hover .db-metric__arrow[b-l66jydv297] {
    opacity: 1;
    transform: translateX(0);
}

/* Loading skeleton pulse */
.db-metric__count--skeleton[b-l66jydv297] {
    display: inline-block;
    width: 60px;
    height: 2.4rem;
    background: rgba(255,255,255,0.15);
    border-radius: var(--crm-r-sm);
    animation: db-pulse-b-l66jydv297 1.2s ease-in-out infinite;
}

@keyframes db-pulse-b-l66jydv297 {
    0%, 100% { opacity: 0.4; }
    50% { opacity: 0.8; }
}

/* ── Loading state ── */
.db-metric--loading[b-l66jydv297] {
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    a.db-metric:hover[b-l66jydv297],
    a.db-metric:active[b-l66jydv297] {
        transform: none;
    }

    .db-metric__arrow[b-l66jydv297] {
        transition: none;
    }

    .db-metric__count--skeleton[b-l66jydv297] {
        animation-duration: 2.4s;
    }
}
/* /Shared/Dashboard/DashboardMyActivities.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   DashboardMyActivities — activity list card
   ═══════════════════════════════════════════════════════ */

.db-list[b-votgelamee] {
    height: 100%;
}

.db-list:hover[b-votgelamee] {
    transform: none;
    box-shadow: var(--crm-shadow-sm);
}
/* /Shared/Dashboard/DashboardQuickLinks.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   DashboardQuickLinks — curated link card
   ═══════════════════════════════════════════════════════ */

.db-list[b-87zqut91a7] {
    height: 100%;
}

.db-list:hover[b-87zqut91a7] {
    transform: none;
    box-shadow: var(--crm-shadow-sm);
}

.db-quick-link[b-87zqut91a7] {
    display: flex;
    align-items: center;
    color: var(--crm-navy-600);
    font-weight: 500;
    font-size: 0.9rem;
    text-decoration: none;
    transition: color var(--crm-fast) ease;
}

.db-quick-link:hover[b-87zqut91a7] {
    color: var(--crm-teal-600);
}

.db-quick-link__icon[b-87zqut91a7] {
    color: var(--crm-text-3);
    font-size: 0.75rem;
    transition: color var(--crm-fast) ease, transform var(--crm-fast) ease;
}

.db-quick-link:hover .db-quick-link__icon[b-87zqut91a7] {
    color: var(--crm-teal);
    transform: translate(1px, -1px);
}
/* /Shared/Dashboard/DashboardRecentList.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   DashboardRecentList — list card shell
   ═══════════════════════════════════════════════════════ */

.db-list[b-qmdfex11zd] {
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* Prevent the hover lift from the global .card:hover */
.db-list:hover[b-qmdfex11zd] {
    transform: none;
    box-shadow: var(--crm-shadow-sm);
}

.db-list[b-qmdfex11zd]  .card-header {
    background: transparent;
    border-bottom: 1px solid var(--crm-border);
    padding: 0.75rem 1rem;
}

.db-list[b-qmdfex11zd]  .card-header strong {
    font-size: 0.9375rem;
    color: var(--crm-navy);
    letter-spacing: -0.01em;
}

.db-list[b-qmdfex11zd]  .list-group {
    flex: 1;
    min-height: 0;
}

/* Tighter than Bootstrap's default so five rows read as a glanceable block
   rather than a full-height table. */
.db-list[b-qmdfex11zd]  .list-group-item {
    padding: 0.5rem 1rem;
    border-color: var(--crm-border);
    font-size: 0.875rem;
}

.db-list[b-qmdfex11zd]  .list-group-item:last-child {
    border-bottom: 0;
}
/* /Shared/Dashboard/DashboardSegmentCard.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   DashboardSegmentCard — filtered account/contact segment
   ═══════════════════════════════════════════════════════ */

.db-segment__row[b-wqwdwew2sg] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.db-segment__row a[b-wqwdwew2sg] {
    font-weight: 500;
    text-decoration: none;
}

.db-segment__row a:hover[b-wqwdwew2sg] {
    text-decoration: underline;
}

.db-segment__row small[b-wqwdwew2sg] {
    font-size: 0.8125rem;
}

.db-segment__more a[b-wqwdwew2sg] {
    font-size: 0.8125rem;
    font-weight: 500;
    text-decoration: none;
}

.db-segment__more a:hover[b-wqwdwew2sg] {
    text-decoration: underline;
}

/* ── Empty state ── */

.db-segment__empty[b-wqwdwew2sg] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--crm-text-3);
    font-size: 0.875rem;
}

.db-segment__empty i[b-wqwdwew2sg] {
    font-size: 1rem;
    opacity: 0.7;
}

/* ── Access refused ──
   Distinct from an empty result on purpose: "0" would be a claim about the
   data, when in fact the request was declined. */

.db-segment__denied[b-wqwdwew2sg] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    height: 100%;
    padding: 1rem;
    border: 1px dashed var(--crm-border);
    border-radius: var(--crm-radius, 12px);
    background: var(--crm-surface-2, rgba(0, 0, 0, 0.02));
    color: var(--crm-text-3);
}

.db-segment__denied--tall[b-wqwdwew2sg] {
    min-height: 9rem;
}

.db-segment__denied i[b-wqwdwew2sg] {
    font-size: 1.25rem;
    opacity: 0.65;
    flex-shrink: 0;
}

.db-segment__denied div[b-wqwdwew2sg] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0;
}

.db-segment__denied strong[b-wqwdwew2sg] {
    color: var(--crm-text-2);
    font-size: 0.9375rem;
}

.db-segment__denied span[b-wqwdwew2sg] {
    font-size: 0.8125rem;
}
/* /Shared/Dashboard/SegmentFilterEditor.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   SegmentFilterEditor — the Segment card's filter pane
   ═══════════════════════════════════════════════════════ */

.seg-editor[b-hzcga185d3] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.seg-editor__field[b-hzcga185d3] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.seg-editor__label[b-hzcga185d3] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--crm-text-3);
    margin: 0;
}

.seg-editor__hint[b-hzcga185d3] {
    font-size: 0.8125rem;
    color: var(--crm-text-3);
    line-height: 1.4;
}

/* ── Records segmented control ── */

.seg-editor__seg[b-hzcga185d3] {
    display: inline-flex;
    padding: 3px;
    gap: 3px;
    background: var(--crm-surface-2, rgba(0, 0, 0, 0.04));
    border: 1px solid var(--crm-border);
    border-radius: 10px;
    align-self: flex-start;
}

.seg-editor__seg-btn[b-hzcga185d3] {
    border: 0;
    background: transparent;
    border-radius: 7px;
    padding: 0.375rem 0.875rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--crm-text-2);
    cursor: pointer;
    transition:
        background-color var(--crm-fast) ease,
        color var(--crm-fast) ease,
        box-shadow var(--crm-fast) ease;
}

.seg-editor__seg-btn:hover[b-hzcga185d3] {
    color: var(--crm-text-1);
}

.seg-editor__seg-btn.is-active[b-hzcga185d3] {
    background: var(--crm-white, #fff);
    color: var(--crm-navy);
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}

.seg-editor__seg-btn:focus-visible[b-hzcga185d3] {
    outline: 2px solid var(--crm-navy);
    outline-offset: 1px;
}

/* ── Live match preview ── */

.seg-editor__preview[b-hzcga185d3] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    min-height: 2.5rem;
    padding: 0.5rem 0.75rem;
    border-radius: 8px;
    background: var(--crm-surface-2, rgba(0, 0, 0, 0.035));
    border: 1px solid var(--crm-border);
    font-size: 0.875rem;
    color: var(--crm-text-2);
}

.seg-editor__preview strong[b-hzcga185d3] {
    font-variant-numeric: tabular-nums;
    color: var(--crm-text-1);
}

.seg-editor__preview.is-error[b-hzcga185d3] {
    background: rgba(239, 68, 68, 0.08);
    border-color: rgba(239, 68, 68, 0.35);
    color: #b91c1c;
}

.seg-editor__preview-spinner[b-hzcga185d3] {
    width: 14px;
    height: 14px;
    margin-right: 0.5rem;
    border: 2px solid var(--crm-border);
    border-top-color: var(--crm-navy);
    border-radius: 50%;
    animation: seg-spin-b-hzcga185d3 0.7s linear infinite;
}

@keyframes seg-spin-b-hzcga185d3 {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .seg-editor__preview-spinner[b-hzcga185d3] { animation-duration: 2s; }
}
/* /Shared/DataActionsMenu.razor.rz.scp.css */
.data-actions-menu[b-h5xhcvz777] {
    position: relative;
    display: inline-block;
}

/* ── Toggle ─────────────────────────────────────────────────────────
   Borderless at rest so the kebab recedes into the header. Hover lifts
   it to a subtle pill; the open state inverts to filled navy so the
   user always knows the menu is theirs. */

.data-actions-toggle[b-h5xhcvz777] {
    background: transparent;
    border: 1px solid transparent;
    color: var(--crm-text-2, #4b5563);
    width: 36px;
    height: 36px;
    padding: 0;
    border-radius: var(--crm-r-sm, 6px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 160ms ease, border-color 160ms ease, color 160ms ease;
}

.data-actions-toggle:hover[b-h5xhcvz777] {
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-navy, #0f172a);
}

.data-actions-toggle:focus-visible[b-h5xhcvz777] {
    outline: 2px solid var(--crm-teal, #00C5A8);
    outline-offset: 2px;
}

.data-actions-menu.is-open .data-actions-toggle[b-h5xhcvz777] {
    background: var(--crm-navy, #1f2937);
    color: #fff;
    border-color: var(--crm-navy, #1f2937);
}

.data-actions-toggle .bi[b-h5xhcvz777] {
    font-size: 1.05rem;
    line-height: 1;
}

/* ── Panel ──────────────────────────────────────────────────────────
   Off-white surface with backdrop blur reads as a raised plate, not a
   stark card. Two-layer shadow: a tight contact + a soft ambient. */

.data-actions-panel[b-h5xhcvz777] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 1050;
    min-width: 200px;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: saturate(140%) blur(8px);
    -webkit-backdrop-filter: saturate(140%) blur(8px);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 10px;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.06),
        0 12px 24px -8px rgba(15, 23, 42, 0.18);
    padding: 6px;
    transform-origin: top right;
    animation: dam-reveal-b-h5xhcvz777 140ms cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes dam-reveal-b-h5xhcvz777 {
    from { opacity: 0; transform: translateY(-4px) scale(0.98); }
    to   { opacity: 1; transform: translateY(0)   scale(1);    }
}

.data-actions-backdrop[b-h5xhcvz777] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

/* ── Section label ──────────────────────────────────────────────────
   Tiny uppercase tag at the top of the panel; converts the surface
   from "list of buttons" into "menu with grouping intent." */

.data-actions-section-label[b-h5xhcvz777] {
    font-size: 0.62rem;
    font-weight: 600;
    color: var(--crm-text-3, #9ca3af);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 8px 10px 4px;
}

/* ── Menu items ─────────────────────────────────────────────────────
   Grid with a fixed icon column forces vertical alignment regardless
   of which Bootstrap icon is used. Lighter font weight + tighter
   padding moves the rows from "form buttons" to "menu items." */

.data-actions-panel .btn[b-h5xhcvz777],
.data-actions-panel a.btn[b-h5xhcvz777],
.data-actions-panel a[b-h5xhcvz777] {
    border: none;
    background: transparent;
    color: var(--crm-text-1, #1f2937);
    font-weight: 450;
    font-size: 0.82rem;
    letter-spacing: 0.005em;
    padding: 7px 10px;
    border-radius: 6px;
    display: grid;
    grid-template-columns: 18px 1fr;
    align-items: center;
    gap: 10px;
    text-align: left;
    width: 100%;
    cursor: pointer;
    text-decoration: none;
    transition: background 120ms ease, color 120ms ease;
}

.data-actions-panel .btn i[b-h5xhcvz777],
.data-actions-panel a i[b-h5xhcvz777] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.92rem;
    line-height: 1;
    justify-self: center;
    transition: color 120ms ease;
}

.data-actions-panel .btn:hover:not(:disabled)[b-h5xhcvz777],
.data-actions-panel a:hover[b-h5xhcvz777] {
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-navy, #0f172a);
}

.data-actions-panel .btn:hover:not(:disabled) i[b-h5xhcvz777],
.data-actions-panel a:hover i[b-h5xhcvz777] {
    color: var(--crm-teal-600, #009E88);
}

.data-actions-panel .btn:disabled[b-h5xhcvz777] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Divider — ready for grouped/destructive items as menus grow. */
.data-actions-panel hr[b-h5xhcvz777] {
    margin: 4px 2px;
    border: 0;
    border-top: 1px solid rgba(15, 23, 42, 0.06);
}
/* /Shared/DynamicFieldDisplay.razor.rz.scp.css */
/* DynamicFieldDisplay — value row + info affordance + sub-property summary */

.dfd-value-row[b-4spi8jveol] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.dfd-value[b-4spi8jveol] {
    display: inline;
    word-break: break-word;
}

.dfd-info-btn[b-4spi8jveol] {
    background: transparent;
    border: none;
    color: var(--crm-text-3);
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    transition: background-color var(--crm-fast) ease, color var(--crm-fast) ease, transform var(--crm-fast) var(--crm-ease);
}

.dfd-info-btn:hover[b-4spi8jveol],
.dfd-info-btn:focus-visible[b-4spi8jveol] {
    background: rgba(var(--crm-teal-rgb), 0.12);
    color: var(--crm-teal-600);
    outline: none;
    transform: scale(1.08);
}

.dfd-info-btn i[b-4spi8jveol] {
    font-size: 0.95rem;
}

.dfd-meta-summary[b-4spi8jveol] {
    display: block;
    margin-top: 0.18rem;
    font-size: 0.78rem;
    color: var(--crm-text-3);
    line-height: 1.35;
}

.dfd-meta-pair b[b-4spi8jveol] {
    color: var(--crm-text-2);
    font-weight: 600;
}

@media (prefers-reduced-motion: reduce) {
    .dfd-info-btn[b-4spi8jveol] { transition: none; }
    .dfd-info-btn:hover[b-4spi8jveol], .dfd-info-btn:focus-visible[b-4spi8jveol] { transform: none; }
}
/* /Shared/DynamicFieldInput.razor.rz.scp.css */
.dyn-multi-picker[b-0hhdin7xfk] {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 6px;
    padding: 8px;
    background: var(--bs-body-bg, #fff);
}

.dyn-multi-chips[b-0hhdin7xfk] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 6px;
}

.dyn-multi-chip[b-0hhdin7xfk] {
    display: inline-flex;
    align-items: center;
    padding: 4px 4px 4px 8px;
    font-weight: 500;
}

.dyn-multi-chip .btn-close[b-0hhdin7xfk] {
    width: 0.6em;
    height: 0.6em;
    padding: 0;
    opacity: 0.85;
}

.dyn-multi-results[b-0hhdin7xfk] {
    max-height: 220px;
    overflow-y: auto;
    margin-top: 6px;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 4px;
    background: var(--bs-body-bg, #fff);
}

.dyn-multi-result[b-0hhdin7xfk] {
    display: block;
    width: 100%;
    text-align: left;
    padding: 6px 10px;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--bs-border-color-translucent, #f0f0f0);
    cursor: pointer;
    font-size: 0.9rem;
}

.dyn-multi-result:last-child[b-0hhdin7xfk] {
    border-bottom: 0;
}

.dyn-multi-result:hover[b-0hhdin7xfk],
.dyn-multi-result:focus-visible[b-0hhdin7xfk] {
    background: var(--bs-secondary-bg, #f5f5f5);
}

.dyn-multi-hint[b-0hhdin7xfk] {
    background: var(--bs-light, #fafafa);
    border-top: 1px solid var(--bs-border-color-translucent, #f0f0f0);
}

/* Sub-property accordion — smooth-height via grid-template-rows trick */
.dyn-sub-accordion[b-0hhdin7xfk] {
    margin-top: 0.4rem;
    border-top: 1px dashed var(--crm-border, #e3e6eb);
    padding-top: 0.4rem;
}

.dyn-sub-toggle[b-0hhdin7xfk] {
    background: transparent;
    border: none;
    padding: 0.25rem 0;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--crm-teal-600, #097a6b);
    font-size: 0.8rem;
    cursor: pointer;
    transition: color var(--crm-fast, 120ms) ease;
}

.dyn-sub-toggle:hover[b-0hhdin7xfk],
.dyn-sub-toggle:focus-visible[b-0hhdin7xfk] {
    color: var(--crm-teal, #0fb39e);
    outline: none;
}

.dyn-sub-chevron[b-0hhdin7xfk] {
    transition: transform var(--crm-fast, 120ms) var(--crm-ease, ease);
}

.dyn-sub-open .dyn-sub-chevron[b-0hhdin7xfk] {
    transform: rotate(180deg);
}

.dyn-sub-title[b-0hhdin7xfk] { font-weight: 600; }
.dyn-sub-count[b-0hhdin7xfk] {
    color: var(--crm-text-3, #6b7280);
    font-weight: 400;
    font-size: 0.74rem;
}
.dyn-sub-count-muted[b-0hhdin7xfk] { font-style: italic; }

.dyn-sub-grid[b-0hhdin7xfk] {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows var(--crm-fast, 120ms) var(--crm-ease, ease);
}

.dyn-sub-open .dyn-sub-grid[b-0hhdin7xfk] {
    grid-template-rows: 1fr;
}

.dyn-sub-body[b-0hhdin7xfk] {
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding-top: 0.5rem;
}

.dyn-sub-field[b-0hhdin7xfk] {
    display: grid;
    grid-template-columns: minmax(7rem, 9rem) 1fr;
    gap: 0.5rem;
    align-items: center;
}

.dyn-sub-label[b-0hhdin7xfk] {
    font-size: 0.78rem;
    color: var(--crm-text-2, #4b5563);
    font-weight: 500;
    margin: 0;
}

@media (prefers-reduced-motion: reduce) {
    .dyn-sub-grid[b-0hhdin7xfk],
    .dyn-sub-chevron[b-0hhdin7xfk] { transition: none; }
}

/* ─────────────────────────────────────────────────────────
   Tiered Dropdown / MultiSelect (pills · popover · typeahead)
   ───────────────────────────────────────────────────────── */

/* Pill row — tiny option sets (≤5). Selectable buttons, active state lights up. */
.dyn-pill-row[b-0hhdin7xfk] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.dyn-pill[b-0hhdin7xfk] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 6px 14px;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--crm-text-2);
    background: var(--crm-white);
    border: 1px solid var(--crm-border-2);
    border-radius: 999px;
    cursor: pointer;
    line-height: 1.4;
    transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease, transform 120ms ease;
}

.dyn-pill:hover[b-0hhdin7xfk],
.dyn-pill:focus-visible[b-0hhdin7xfk] {
    color: var(--crm-text);
    background: var(--crm-surface-2);
    border-color: var(--crm-text-3);
    outline: none;
}

.dyn-pill:active[b-0hhdin7xfk] {
    transform: scale(0.98);
}

.dyn-pill.active[b-0hhdin7xfk] {
    color: var(--crm-white);
    background: var(--crm-teal, #0fb39e);
    border-color: var(--crm-teal, #0fb39e);
}

.dyn-pill-check[b-0hhdin7xfk] {
    font-size: 0.85rem;
}

/* Popover container — wraps trigger + chips + panel. Position root for absolute panel. */
.dyn-pop[b-0hhdin7xfk] {
    position: relative;
}

/* Selected-chips row (MultiSelect only). Sits above the trigger. */
.dyn-pop-chips[b-0hhdin7xfk] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 6px;
}

.dyn-pop-chip[b-0hhdin7xfk] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 4px 4px 10px;
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--crm-text);
    background: var(--crm-surface-2);
    border: 1px solid var(--crm-border);
    border-radius: 999px;
}

.dyn-pop-chip-x[b-0hhdin7xfk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.1rem;
    height: 1.1rem;
    padding: 0;
    color: var(--crm-text-3);
    background: transparent;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    transition: background-color 120ms ease, color 120ms ease;
}

.dyn-pop-chip-x:hover[b-0hhdin7xfk],
.dyn-pop-chip-x:focus-visible[b-0hhdin7xfk] {
    color: var(--crm-text);
    background: var(--crm-border);
    outline: none;
}

.dyn-pop-chip-x .bi[b-0hhdin7xfk] {
    font-size: 0.85rem;
}

/* Trigger — looks like an input. */
.dyn-pop-trigger[b-0hhdin7xfk] {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    padding: 0.4rem 0.7rem;
    font-size: 0.9rem;
    font-weight: 400;
    color: var(--crm-text);
    background: var(--crm-white);
    border: 1px solid var(--crm-border-2);
    border-radius: 0.5rem;
    cursor: pointer;
    text-align: left;
    transition: border-color 120ms ease, background-color 120ms ease, box-shadow 160ms ease;
}

.dyn-pop-trigger:hover[b-0hhdin7xfk] {
    border-color: var(--crm-text-3);
}

.dyn-pop-trigger:focus-visible[b-0hhdin7xfk] {
    border-color: var(--crm-teal, #0fb39e);
    box-shadow: 0 0 0 3px rgba(15, 179, 158, 0.15);
    outline: none;
}

.dyn-pop-trigger--empty .dyn-pop-trigger-text[b-0hhdin7xfk] {
    color: var(--crm-text-3);
}

.dyn-pop-trigger-text[b-0hhdin7xfk] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dyn-pop-trigger-icon[b-0hhdin7xfk] {
    flex: 0 0 auto;
    color: var(--crm-text-3);
    font-size: 0.85rem;
    transition: transform 160ms ease;
}

/* Backdrop — transparent click-capture. */
.dyn-pop-backdrop[b-0hhdin7xfk] {
    position: fixed;
    inset: 0;
    background: transparent;
    z-index: 900;
    animation: crm-fade-in 120ms ease;
}

/* Popover panel — anchored below the trigger. */
.dyn-pop-panel[b-0hhdin7xfk] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 901;
    min-width: 240px;
    max-height: 320px;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: 0.55rem;
    box-shadow:
        0 12px 28px rgba(13, 36, 71, 0.12),
        0 2px 6px rgba(13, 36, 71, 0.06);
    transform-origin: top left;
    animation: crm-pop-scale-b-0hhdin7xfk 140ms cubic-bezier(0.16, 0.84, 0.44, 1);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

@keyframes crm-pop-scale-b-0hhdin7xfk {
    from { opacity: 0; transform: scale(0.96) translateY(-4px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

.dyn-pop-search[b-0hhdin7xfk] {
    width: 100%;
    padding: 0.55rem 0.75rem;
    font-size: 0.88rem;
    color: var(--crm-text);
    background: var(--crm-white);
    border: none;
    border-bottom: 1px solid var(--crm-border);
    outline: none;
}

.dyn-pop-search[b-0hhdin7xfk]::placeholder {
    color: var(--crm-text-3);
}

.dyn-pop-search:focus[b-0hhdin7xfk] {
    background: var(--crm-surface-2);
}

.dyn-pop-list[b-0hhdin7xfk] {
    overflow-y: auto;
    flex: 1 1 auto;
    padding: 4px 0;
}

.dyn-pop-option[b-0hhdin7xfk] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
    padding: 0.45rem 0.85rem;
    font-size: 0.88rem;
    color: var(--crm-text);
    background: transparent;
    border: none;
    text-align: left;
    cursor: pointer;
    transition: background-color 100ms ease;
}

.dyn-pop-option:hover[b-0hhdin7xfk],
.dyn-pop-option:focus-visible[b-0hhdin7xfk] {
    background: var(--crm-surface-2);
    outline: none;
}

/* Label fills available row width so it sits immediately next to the check. */
.dyn-pop-option-label[b-0hhdin7xfk] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Trailing check icon on the Dropdown (single-select) selected row. */
.dyn-pop-option-trailing[b-0hhdin7xfk] {
    flex: 0 0 auto;
    color: var(--crm-teal, #0fb39e);
    font-size: 1rem;
}

.dyn-pop-option--selected[b-0hhdin7xfk] {
    color: var(--crm-text);
    font-weight: 500;
    background: var(--crm-surface-2);
}

.dyn-pop-option--selected:hover[b-0hhdin7xfk] {
    background: var(--crm-surface-2);
}

.dyn-pop-option--selected .bi-check-square-fill[b-0hhdin7xfk] {
    color: var(--crm-teal, #0fb39e);
}

.dyn-pop-option-check[b-0hhdin7xfk] {
    flex: 0 0 auto;
    width: 1.1rem;
    color: var(--crm-text-3);
    font-size: 1.05rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.dyn-pop-option--clear[b-0hhdin7xfk] {
    color: var(--crm-text-3);
    font-style: italic;
    border-bottom: 1px solid var(--crm-border);
    margin-bottom: 4px;
}

.dyn-pop-option--clear:hover[b-0hhdin7xfk] {
    color: var(--crm-text);
}

.dyn-pop-empty[b-0hhdin7xfk] {
    padding: 1rem 0.85rem;
    font-size: 0.85rem;
    color: var(--crm-text-3);
    text-align: center;
}

@media (prefers-reduced-motion: reduce) {
    .dyn-pop-panel[b-0hhdin7xfk],
    .dyn-pop-backdrop[b-0hhdin7xfk],
    .dyn-pop-trigger-icon[b-0hhdin7xfk] { animation: none; transition: none; }
}

/* ── Option rules ─────────────────────────────────────────
   A pick that swapped an option out says so quietly (navy, like
   the filter bar's structure); a value that breaks a rule says so
   in the danger palette, with the way out beside it. */

.dyn-rule-note[b-0hhdin7xfk] {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    margin-top: 0.4rem;
    font-size: 0.78rem;
    color: var(--crm-navy-600, #1E3D70);
}

.dyn-rule-note i[b-0hhdin7xfk] {
    color: var(--crm-navy-400, #3A5A96);
    font-size: 0.8rem;
}

.dyn-rule-conflict[b-0hhdin7xfk] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
    margin-top: 0.45rem;
    padding: 0.4rem 0.6rem;
    border-radius: 7px;
    font-size: 0.8rem;
    color: var(--bs-danger-text-emphasis, #58151c);
    background: var(--bs-danger-bg-subtle, #f8d7da);
    box-shadow: inset 3px 0 0 var(--bs-danger, #dc3545);
}

.dyn-rule-conflict > i[b-0hhdin7xfk] {
    color: var(--bs-danger, #dc3545);
}

.dyn-rule-text[b-0hhdin7xfk] {
    flex: 1 1 12rem;
}

.dyn-rule-fix[b-0hhdin7xfk] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.15rem 0.55rem;
    border: 1px solid var(--bs-danger-border-subtle, #f1aeb5);
    border-radius: 6px;
    background: var(--crm-white, #fff);
    font-size: 0.76rem;
    color: var(--bs-danger-text-emphasis, #58151c);
    cursor: pointer;
    transition: background-color 0.12s ease, border-color 0.12s ease;
}

.dyn-rule-fix:hover[b-0hhdin7xfk],
.dyn-rule-fix:focus-visible[b-0hhdin7xfk] {
    border-color: var(--bs-danger, #dc3545);
    background: #fff5f5;
}

.dyn-rule-fix:focus-visible[b-0hhdin7xfk] {
    outline: 2px solid var(--bs-danger, #dc3545);
    outline-offset: 1px;
}
/* /Shared/EffectiveDateInput.razor.rz.scp.css */
.crm-eff-date[b-scsxo6cy69] {
  position: relative;
  display: inline-flex;
}

/* ── Toggle chip ──────────────────────────────────────────── */

.crm-eff-date__toggle[b-scsxo6cy69] {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.9rem;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--crm-text-2);
  background: var(--crm-white);
  border: 1px dashed var(--crm-border-2);
  border-radius: 999px;
  cursor: pointer;
  transition: background-color 120ms ease,
              border-color 120ms ease,
              color 120ms ease,
              transform 120ms ease,
              box-shadow 160ms ease;
}

.crm-eff-date__toggle:hover[b-scsxo6cy69],
.crm-eff-date__toggle:focus-visible[b-scsxo6cy69] {
  color: var(--crm-text);
  background: var(--crm-surface-2);
  border-color: var(--crm-text-3);
  outline: none;
}

.crm-eff-date__toggle:active[b-scsxo6cy69] {
  transform: scale(0.98);
}

.crm-eff-date__toggle .bi[b-scsxo6cy69] {
  font-size: 1rem;
  color: var(--crm-text-3);
}

/* "Set" variant: chip becomes solid + navy when a date has been chosen,
   so the user can tell at a glance that this save will carry a backdate. */
.crm-eff-date__toggle--set[b-scsxo6cy69] {
  color: var(--crm-text);
  background: var(--crm-surface-2);
  border-style: solid;
  border-color: var(--crm-border-2);
  box-shadow: inset 0 0 0 1px var(--crm-border);
}

.crm-eff-date__toggle--set .bi[b-scsxo6cy69] {
  color: var(--crm-text);
}

.crm-eff-date__toggle-edit[b-scsxo6cy69] {
  font-size: 0.7rem !important;
  margin-left: 0.15rem;
  opacity: 0.6;
}

/* ── Backdrop & panel ─────────────────────────────────────── */

.crm-eff-date__backdrop[b-scsxo6cy69] {
  position: fixed;
  inset: 0;
  background: transparent;
  z-index: 900;
  cursor: default;
  animation: crm-fade-in 120ms ease;
}

.crm-eff-date__panel[b-scsxo6cy69] {
  position: absolute;
  top: calc(100% + 0.5rem);
  right: 0;
  z-index: 901;
  width: 360px;
  max-width: calc(100vw - 32px);
  padding: 0.95rem 1.05rem 1rem;
  background: var(--crm-white);
  border: 1px solid var(--crm-border);
  border-radius: 0.65rem;
  box-shadow:
    0 12px 28px rgba(13, 36, 71, 0.12),
    0 2px 6px rgba(13, 36, 71, 0.06);
  transform-origin: top right;
  animation: crm-eff-pop-b-scsxo6cy69 160ms cubic-bezier(0.16, 0.84, 0.44, 1);
}

@keyframes crm-eff-pop-b-scsxo6cy69 {
  from {
    opacity: 0;
    transform: scale(0.94) translateY(-4px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.crm-eff-date__panel-header[b-scsxo6cy69] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.7rem;
}

.crm-eff-date__panel-title[b-scsxo6cy69] {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--crm-text);
}

.crm-eff-date__close[b-scsxo6cy69] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  font-size: 0.7rem;
  color: var(--crm-text-3);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 0.4rem;
  cursor: pointer;
  transition: background-color 120ms ease, color 120ms ease;
}

.crm-eff-date__close:hover[b-scsxo6cy69],
.crm-eff-date__close:focus-visible[b-scsxo6cy69] {
  color: var(--crm-text);
  background: var(--crm-surface-2);
  outline: none;
}

.crm-eff-date__row + .crm-eff-date__row[b-scsxo6cy69] {
  margin-top: 0.7rem;
}

.crm-eff-date__label[b-scsxo6cy69] {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--crm-text-2);
}

.crm-eff-date__hint[b-scsxo6cy69] {
  margin-top: 0.7rem;
  font-size: 0.75rem;
  color: var(--crm-text-3);
  line-height: 1.45;
}

.crm-eff-date__footer[b-scsxo6cy69] {
  margin-top: 0.9rem;
  padding-top: 0.7rem;
  border-top: 1px solid var(--crm-border);
  display: flex;
  justify-content: flex-end;
}

.crm-eff-date__clear[b-scsxo6cy69] {
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--crm-text-3);
  background: transparent;
  border: 1px solid var(--crm-border);
  border-radius: 0.4rem;
  padding: 0.3rem 0.65rem;
  cursor: pointer;
  transition: color 120ms ease, border-color 120ms ease, background-color 120ms ease;
}

.crm-eff-date__clear:hover[b-scsxo6cy69],
.crm-eff-date__clear:focus-visible[b-scsxo6cy69] {
  color: var(--crm-text);
  border-color: var(--crm-text-3);
  background: var(--crm-surface-2);
  outline: none;
}
/* /Shared/EntitySearchSelect.razor.rz.scp.css */
.esp-container[b-cvogts9x6q] {
    position: relative;
}

/* ── Search ───────────────────────────────── */
.esp-search-wrap[b-cvogts9x6q] {
    position: relative;
}

.esp-search-icon[b-cvogts9x6q] {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.82rem;
    opacity: 0.4;
    color: var(--crm-text-3);
    pointer-events: none;
}

.esp-search-input[b-cvogts9x6q] {
    padding-left: 32px !important;
    font-size: 0.9rem;
    border-color: var(--crm-border-2);
    transition: border-color var(--crm-fast) ease, box-shadow var(--crm-fast) ease;
}

.esp-search-input:focus[b-cvogts9x6q] {
    border-color: var(--crm-teal);
    box-shadow: 0 0 0 3px var(--crm-teal-glow);
}

/* ── Dense: keep the default search-state height, but compact the *selected* chip so it
      doesn't balloon ~15px taller than the search box once a value is picked. ─── */
.esp-dense .esp-selected[b-cvogts9x6q] {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}

.esp-dense .esp-selected-avatar[b-cvogts9x6q] {
    width: 28px;
    height: 28px;
    font-size: 0.74rem;
}

/* Keep the label on one line (long "Name (email)" values otherwise wrap and re-inflate the chip). */
.esp-dense .esp-selected-name[b-cvogts9x6q] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.esp-spinner[b-cvogts9x6q] {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    border: 2px solid var(--crm-border);
    border-top-color: var(--crm-teal);
    border-radius: 50%;
    animation: esp-spin-b-cvogts9x6q 0.6s linear infinite;
}

@keyframes esp-spin-b-cvogts9x6q {
    to { transform: translateY(-50%) rotate(360deg); }
}

/* ── Dropdown ─────────────────────────────── */
.esp-dropdown[b-cvogts9x6q] {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1050;
    margin-top: 4px;
    max-height: 240px;
    overflow-y: auto;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    background: var(--crm-white);
    box-shadow: var(--crm-shadow);
    animation: esp-drop-in-b-cvogts9x6q var(--crm-fast) var(--crm-ease) both;
}

@keyframes esp-drop-in-b-cvogts9x6q {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ── Result Items ─────────────────────────── */
.esp-result-item[b-cvogts9x6q] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    cursor: pointer;
    border-bottom: 1px solid var(--crm-border);
    transition: background var(--crm-fast) ease;
}

.esp-result-item:last-child[b-cvogts9x6q] {
    border-bottom: none;
}

.esp-result-item:hover[b-cvogts9x6q] {
    background: var(--crm-teal-50);
}

.esp-result-item.highlighted[b-cvogts9x6q] {
    background: var(--crm-teal-50);
    border-left: 2px solid var(--crm-teal);
    padding-left: 10px;
}

.esp-result-avatar[b-cvogts9x6q] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--crm-navy);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 600;
    flex-shrink: 0;
    text-transform: uppercase;
}

.esp-result-avatar.esp-avatar-square[b-cvogts9x6q] {
    border-radius: var(--crm-r-sm);
    background: var(--crm-navy-600);
}

.esp-result-info[b-cvogts9x6q] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.esp-result-name[b-cvogts9x6q] {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--crm-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.esp-result-subtitle[b-cvogts9x6q] {
    font-size: 0.75rem;
    color: var(--crm-text-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Selected State ───────────────────────── */
.esp-selected[b-cvogts9x6q] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: var(--crm-teal-50);
    border: 1px solid color-mix(in srgb, var(--crm-teal) 30%, transparent);
    border-radius: var(--crm-r-sm);
    animation: esp-fade-in-b-cvogts9x6q var(--crm-fast) ease both;
}

.esp-selected.esp-disabled[b-cvogts9x6q] {
    opacity: 0.65;
    pointer-events: none;
}

@keyframes esp-fade-in-b-cvogts9x6q {
    from { opacity: 0; }
    to { opacity: 1; }
}

.esp-selected-avatar[b-cvogts9x6q] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--crm-teal);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 600;
    flex-shrink: 0;
    text-transform: uppercase;
}

.esp-selected-avatar.esp-avatar-square[b-cvogts9x6q] {
    border-radius: var(--crm-r-sm);
}

.esp-selected-info[b-cvogts9x6q] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.esp-selected-name[b-cvogts9x6q] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--crm-text);
}

.esp-selected-detail[b-cvogts9x6q] {
    font-size: 0.75rem;
    color: var(--crm-text-3);
}

.esp-clear-btn[b-cvogts9x6q] {
    background: none;
    border: none;
    color: var(--crm-text-3);
    cursor: pointer;
    font-size: 0.85rem;
    padding: 4px;
    border-radius: 4px;
    line-height: 1;
    transition: color var(--crm-fast) ease, background var(--crm-fast) ease;
}

.esp-clear-btn:hover[b-cvogts9x6q] {
    color: var(--crm-text);
    background: rgba(0, 0, 0, 0.06);
}

/* ── No Results ───────────────────────────── */
.esp-no-results[b-cvogts9x6q] {
    font-size: 0.8rem;
    color: var(--crm-text-3);
    padding: 12px;
    margin: 0;
}
/* /Shared/EntityTokenSearchSelect.razor.rz.scp.css */
.esp-container[b-8yedoqsqra] {
    position: relative;
}

/* ── Search ───────────────────────────────── */
.esp-search-wrap[b-8yedoqsqra] {
    position: relative;
}

.esp-search-icon[b-8yedoqsqra] {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.82rem;
    opacity: 0.4;
    color: var(--crm-text-3);
    pointer-events: none;
}

.esp-search-input[b-8yedoqsqra] {
    padding-left: 32px !important;
    font-size: 0.9rem;
    border-color: var(--crm-border-2);
    transition: border-color var(--crm-fast) ease, box-shadow var(--crm-fast) ease;
}

.esp-search-input:focus[b-8yedoqsqra] {
    border-color: var(--crm-teal);
    box-shadow: 0 0 0 3px var(--crm-teal-glow);
}

.esp-spinner[b-8yedoqsqra] {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    border: 2px solid var(--crm-border);
    border-top-color: var(--crm-teal);
    border-radius: 50%;
    animation: esp-spin-b-8yedoqsqra 0.6s linear infinite;
}

@keyframes esp-spin-b-8yedoqsqra {
    to { transform: translateY(-50%) rotate(360deg); }
}

/* ── Dropdown ─────────────────────────────── */
.esp-dropdown[b-8yedoqsqra] {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1050;
    margin-top: 4px;
    max-height: 240px;
    overflow-y: auto;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    background: var(--crm-white);
    box-shadow: var(--crm-shadow);
    animation: esp-drop-in-b-8yedoqsqra var(--crm-fast) var(--crm-ease) both;
}

@keyframes esp-drop-in-b-8yedoqsqra {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ── Result Items ─────────────────────────── */
.esp-result-item[b-8yedoqsqra] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    cursor: pointer;
    border-bottom: 1px solid var(--crm-border);
    transition: background var(--crm-fast) ease;
}

.esp-result-item:last-child[b-8yedoqsqra] {
    border-bottom: none;
}

.esp-result-item:hover[b-8yedoqsqra] {
    background: var(--crm-teal-50);
}

.esp-result-item.highlighted[b-8yedoqsqra] {
    background: var(--crm-teal-50);
    border-left: 2px solid var(--crm-teal);
    padding-left: 10px;
}

.esp-result-avatar[b-8yedoqsqra] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--crm-navy);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 600;
    flex-shrink: 0;
    text-transform: uppercase;
}

.esp-result-info[b-8yedoqsqra] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.esp-result-name[b-8yedoqsqra] {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--crm-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.esp-result-subtitle[b-8yedoqsqra] {
    font-size: 0.75rem;
    color: var(--crm-text-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Selected State ───────────────────────── */
.esp-selected[b-8yedoqsqra] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: var(--crm-teal-50);
    border: 1px solid color-mix(in srgb, var(--crm-teal) 30%, transparent);
    border-radius: var(--crm-r-sm);
    animation: esp-fade-in-b-8yedoqsqra var(--crm-fast) ease both;
}

@keyframes esp-fade-in-b-8yedoqsqra {
    from { opacity: 0; }
    to { opacity: 1; }
}

.esp-selected-avatar[b-8yedoqsqra] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--crm-teal);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 600;
    flex-shrink: 0;
    text-transform: uppercase;
}

.esp-selected-info[b-8yedoqsqra] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.esp-selected-name[b-8yedoqsqra] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--crm-text);
}

.esp-selected-detail[b-8yedoqsqra] {
    font-size: 0.75rem;
    color: var(--crm-text-3);
}

.esp-clear-btn[b-8yedoqsqra] {
    background: none;
    border: none;
    color: var(--crm-text-3);
    cursor: pointer;
    font-size: 0.85rem;
    padding: 4px;
    border-radius: 4px;
    line-height: 1;
    transition: color var(--crm-fast) ease, background var(--crm-fast) ease;
}

.esp-clear-btn:hover[b-8yedoqsqra] {
    color: var(--crm-text);
    background: rgba(0, 0, 0, 0.06);
}

/* ── No Results ───────────────────────────── */
.esp-no-results[b-8yedoqsqra] {
    font-size: 0.8rem;
    color: var(--crm-text-3);
    padding: 12px;
    margin: 0;
}
/* /Shared/ExtractionProgressIndicator.razor.rz.scp.css */
/* Extraction progress indicator — appears below the paste textarea while the
   server is calling the AI. Combines a phase label, an elapsed timer, a smooth
   progress bar, and ghost skeleton cards so the user feels real movement
   during the 8–15s wait instead of staring at a spinner. */

.epi-card[b-1n6ktz1nfw] {
    margin-top: 16px;
    padding: 16px 18px;
    border-radius: 12px;
    border: 1px solid var(--crm-border, #e6eaf0);
    background: linear-gradient(180deg, rgba(0, 197, 168, 0.05), transparent 60%);
}

.epi-head[b-1n6ktz1nfw] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.epi-phase[b-1n6ktz1nfw] {
    flex: 1 1 auto;
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    font-size: 0.95rem;
}

.epi-elapsed[b-1n6ktz1nfw] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.85rem;
    color: var(--crm-text-2, #4b5563);
    background: var(--crm-bg, #f5f7fa);
    border-radius: 999px;
    padding: 2px 10px;
}

/* ── Animated dots (lives next to the phase label) ───── */

.epi-dots[b-1n6ktz1nfw] {
    display: inline-flex;
    align-items: flex-end;
    gap: 3px;
    height: 14px;
}

.epi-dots span[b-1n6ktz1nfw] {
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: var(--crm-teal-600, #009E88);
    animation: epi-bounce-b-1n6ktz1nfw 1.2s infinite ease-in-out both;
}

.epi-dots span:nth-child(1)[b-1n6ktz1nfw] { animation-delay: -0.32s; }
.epi-dots span:nth-child(2)[b-1n6ktz1nfw] { animation-delay: -0.16s; }
.epi-dots span:nth-child(3)[b-1n6ktz1nfw] { animation-delay: 0s; }

@keyframes epi-bounce-b-1n6ktz1nfw {
    0%, 80%, 100% { transform: scale(0.4); opacity: 0.5; }
    40%           { transform: scale(1);   opacity: 1; }
}

/* ── Progress bar ─────────────────────────────────────── */

.epi-progress[b-1n6ktz1nfw] {
    height: 6px;
    border-radius: 999px;
    background: var(--crm-border, #e6eaf0);
    overflow: hidden;
    position: relative;
}

.epi-progress-fill[b-1n6ktz1nfw] {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--crm-teal-600, #009E88), #34d399);
    transition: width 280ms ease;
    position: relative;
    overflow: hidden;
}

/* Subtle sweeping shimmer on the bar so even tiny tick advances feel alive. */
.epi-progress-fill[b-1n6ktz1nfw]::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255, 255, 255, 0.35) 50%,
        transparent 100%);
    animation: epi-sweep-b-1n6ktz1nfw 1.6s linear infinite;
}

@keyframes epi-sweep-b-1n6ktz1nfw {
    from { transform: translateX(-100%); }
    to   { transform: translateX(100%); }
}

.epi-hint[b-1n6ktz1nfw] {
    margin-top: 8px;
    color: var(--crm-text-2, #4b5563);
    font-size: 0.85rem;
    line-height: 1.45;
}

/* ── Skeleton (ghost cards) ───────────────────────────── */

.epi-skeleton[b-1n6ktz1nfw] {
    margin-top: 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.epi-skel-group-header[b-1n6ktz1nfw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--crm-border, #e6eaf0);
    margin-bottom: 2px;
}

.epi-skel-card[b-1n6ktz1nfw] {
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px solid var(--crm-border, #e6eaf0);
    background: var(--crm-white, #fff);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.epi-skel-card-head[b-1n6ktz1nfw] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.epi-skel-chip[b-1n6ktz1nfw] {
    width: 70px;
    height: 18px;
    border-radius: 999px;
}

.epi-skel-pill[b-1n6ktz1nfw] {
    width: 110px;
    height: 18px;
    border-radius: 999px;
}

.epi-skel-bar[b-1n6ktz1nfw] {
    background: var(--crm-bg, #f5f7fa);
    border-radius: 6px;
}

.epi-skel-change[b-1n6ktz1nfw] {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 8px;
    align-items: stretch;
}

.epi-skel-change-box[b-1n6ktz1nfw] {
    padding: 10px 12px;
    border-radius: 8px;
    background: var(--crm-bg, #f5f7fa);
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 64px;
}

.epi-skel-change-box-strong[b-1n6ktz1nfw] {
    background: rgba(0, 197, 168, 0.06);
    border: 1px solid rgba(0, 197, 168, 0.18);
}

.epi-skel-arrow[b-1n6ktz1nfw] {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--crm-text-3, #9ca3af);
    font-size: 1rem;
    width: 32px;
}

@media (max-width: 700px) {
    .epi-skel-change[b-1n6ktz1nfw] {
        grid-template-columns: 1fr;
    }
    .epi-skel-arrow[b-1n6ktz1nfw] {
        transform: rotate(90deg);
    }
}

/* Shimmer animation for skeleton bars — moves an angled gradient across
   each bar so the whole skeleton breathes during the wait. */

.epi-skel-shimmer[b-1n6ktz1nfw] {
    position: relative;
    overflow: hidden;
    background-color: var(--crm-bg, #f5f7fa);
}

.epi-skel-shimmer[b-1n6ktz1nfw]::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(0, 0, 0, 0.05) 30%,
        rgba(0, 0, 0, 0.05) 50%,
        transparent 100%);
    transform: translateX(-100%);
    animation: epi-shimmer-b-1n6ktz1nfw 1.4s ease-in-out infinite;
}

@keyframes epi-shimmer-b-1n6ktz1nfw {
    from { transform: translateX(-100%); }
    to   { transform: translateX(100%); }
}

@media (prefers-reduced-motion: reduce) {
    .epi-dots span[b-1n6ktz1nfw],
    .epi-progress-fill[b-1n6ktz1nfw]::after,
    .epi-skel-shimmer[b-1n6ktz1nfw]::after {
        animation: none;
    }
}
/* /Shared/FieldDefinitionForm.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   FieldDefinitionForm — add/edit field card
   ═══════════════════════════════════════════════════════ */

.fdf-card[b-558vzc92hn] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-left: 3px solid var(--crm-teal);
    border-radius: var(--crm-r);
    padding: 1.15rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.fdf-row[b-558vzc92hn] {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    flex-wrap: wrap;
}

.fdf-row-secondary[b-558vzc92hn] {
    padding-top: 0.5rem;
    border-top: 1px solid var(--crm-border);
}

.fdf-field[b-558vzc92hn] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.fdf-field-label[b-558vzc92hn] { flex: 2; min-width: 160px; }
.fdf-field-type[b-558vzc92hn] { flex: 1; min-width: 120px; }
.fdf-field-applicable[b-558vzc92hn] { flex: 1; min-width: 120px; }
.fdf-field-key[b-558vzc92hn] { flex: 1; min-width: 140px; }
.fdf-field-options[b-558vzc92hn] { flex: 2; min-width: 200px; }

.fdf-field-required[b-558vzc92hn] {
    flex: 0 0 auto;
    min-width: 100px;
}

.fdf-label[b-558vzc92hn] {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--crm-text-2);
    margin: 0;
}

.fdf-required-mark[b-558vzc92hn] {
    color: #c0392b;
}

/* Key preview */
.fdf-key-preview[b-558vzc92hn] {
    display: flex;
    align-items: center;
    padding: 0.3rem 0.55rem;
    min-height: 1.875rem;
    background: var(--crm-bg);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    font-family: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace;
    font-size: 0.78rem;
    color: var(--crm-text-2);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fdf-hint[b-558vzc92hn] {
    font-size: 0.7rem;
    color: var(--crm-text-3);
    font-style: italic;
}

/* Toggle switch */
.fdf-toggle[b-558vzc92hn] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    cursor: pointer;
    padding-top: 0.3rem;
    user-select: none;
}

.fdf-toggle input[b-558vzc92hn] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.fdf-toggle-track[b-558vzc92hn] {
    position: relative;
    width: 2rem;
    height: 1.1rem;
    background: var(--crm-border-2);
    border-radius: 0.55rem;
    transition: background-color var(--crm-fast) ease;
    flex-shrink: 0;
}

.fdf-toggle input:checked + .fdf-toggle-track[b-558vzc92hn] {
    background: var(--crm-teal);
}

.fdf-toggle-thumb[b-558vzc92hn] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 0.85rem;
    height: 0.85rem;
    background: var(--crm-white);
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15);
    transition: transform var(--crm-fast) var(--crm-ease);
}

.fdf-toggle input:checked + .fdf-toggle-track .fdf-toggle-thumb[b-558vzc92hn] {
    transform: translateX(0.9rem);
}

.fdf-toggle-label[b-558vzc92hn] {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--crm-text-2);
}

/* Row 3 — feature opt-ins (Track changes / Add supporting details) */
.fdf-row-history[b-558vzc92hn] {
    padding-top: 0.5rem;
    border-top: 1px solid var(--crm-border);
    flex-direction: column;
    gap: 0.5rem;
}

.fdf-toggle-feature[b-558vzc92hn] {
    align-items: flex-start;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    background: var(--crm-bg);
    transition: background-color var(--crm-fast) ease, border-color var(--crm-fast) ease;
}

.fdf-toggle-feature:hover[b-558vzc92hn] {
    background: var(--crm-white);
    border-color: var(--crm-border-2);
}

.fdf-toggle-feature .fdf-toggle-track[b-558vzc92hn] {
    margin-top: 0.18rem;
}

.fdf-toggle-content[b-558vzc92hn] {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
}

.fdf-toggle-title[b-558vzc92hn] {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--crm-text);
}

.fdf-toggle-sub[b-558vzc92hn] {
    font-size: 0.72rem;
    color: var(--crm-text-2);
    line-height: 1.35;
}

/* Sub-property editor card */
.fdf-subprop-card[b-558vzc92hn] {
    border: 1px solid var(--crm-border);
    border-left: 3px solid var(--crm-teal);
    border-radius: var(--crm-r-sm);
    padding: 0.7rem 0.85rem;
    background: var(--crm-bg);
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    animation: crm-fade-in var(--crm-fast) var(--crm-ease) both;
}

.fdf-subprop-header[b-558vzc92hn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.fdf-subprop-title[b-558vzc92hn] {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--crm-text-2);
}

.fdf-subprop-add[b-558vzc92hn] {
    background: transparent;
    border: 1px dashed var(--crm-border-2);
    color: var(--crm-teal-600);
    padding: 0.25rem 0.6rem;
    border-radius: var(--crm-r-sm);
    font-size: 0.78rem;
    cursor: pointer;
    transition: background-color var(--crm-fast) ease, border-color var(--crm-fast) ease;
}

.fdf-subprop-add:hover[b-558vzc92hn] {
    background: rgba(var(--crm-teal-rgb), 0.08);
    border-color: var(--crm-teal);
}

.fdf-subprop-add i[b-558vzc92hn] {
    margin-right: 0.25rem;
    font-size: 0.85rem;
}

.fdf-subprop-empty[b-558vzc92hn] {
    font-size: 0.78rem;
    color: var(--crm-text-3);
    font-style: italic;
    padding: 0.4rem 0;
}

.fdf-subprop-table[b-558vzc92hn] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.fdf-subprop-row[b-558vzc92hn] {
    display: grid;
    grid-template-columns: 1.5rem minmax(0, 2fr) minmax(0, 1.2fr) 7rem 1.6rem;
    gap: 0.45rem;
    align-items: center;
    padding: 0.3rem 0.4rem;
    border-radius: var(--crm-r-sm);
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    animation: crm-slide-in-row var(--crm-fast) var(--crm-ease) both;
}

.fdf-subprop-order[b-558vzc92hn] {
    font-size: 0.7rem;
    color: var(--crm-text-3);
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.fdf-subprop-key[b-558vzc92hn] {
    font-family: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace;
    font-size: 0.72rem;
    color: var(--crm-text-3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fdf-subprop-remove[b-558vzc92hn] {
    width: 1.6rem;
    height: 1.6rem;
    border: none;
    background: transparent;
    color: var(--crm-text-3);
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color var(--crm-fast) ease, color var(--crm-fast) ease;
}

.fdf-subprop-remove:hover[b-558vzc92hn] {
    background: rgba(192, 57, 43, 0.1);
    color: #c0392b;
}

@media (prefers-reduced-motion: reduce) {
    .fdf-subprop-card[b-558vzc92hn],
    .fdf-subprop-row[b-558vzc92hn] { animation: none; }
}

/* Actions row */
.fdf-actions[b-558vzc92hn] {
    display: flex;
    gap: 0.4rem;
    padding-top: 0.35rem;
}
/* /Shared/FieldHistoryPanel.razor.rz.scp.css */
/* ═════════════════════════════════════════════════════════════════════
   FieldHistoryPanel — slide-in side panel for per-entity field history
   ═════════════════════════════════════════════════════════════════════ */

.cfhp-backdrop[b-s3gtxnhox8] {
    position: fixed;
    inset: 0;
    background: rgba(13, 25, 42, 0.32);
    backdrop-filter: blur(1.5px);
    z-index: 1040;
    animation: crm-fade-in var(--crm-fast) var(--crm-ease) both;
}

.cfhp-panel[b-s3gtxnhox8] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(420px, 96vw);
    background: var(--crm-white);
    border-left: 1px solid var(--crm-border);
    box-shadow: -16px 0 40px rgba(13, 25, 42, 0.12);
    z-index: 1041;
    display: flex;
    flex-direction: column;
    outline: none;
    animation: cfhp-slide-in-b-s3gtxnhox8 var(--crm-slow) var(--crm-ease) both;
}

@keyframes cfhp-slide-in-b-s3gtxnhox8 {
    from { transform: translateX(100%); opacity: 0; }
    to   { transform: translateX(0);     opacity: 1; }
}

.cfhp-header[b-s3gtxnhox8] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1.1rem 0.85rem;
    border-bottom: 1px solid var(--crm-border);
}

.cfhp-header-meta[b-s3gtxnhox8] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.cfhp-eyebrow[b-s3gtxnhox8] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-3);
}

.cfhp-title[b-s3gtxnhox8] {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--crm-text);
    line-height: 1.2;
}

.cfhp-close[b-s3gtxnhox8] {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    border: none;
    background: transparent;
    color: var(--crm-text-2);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background-color var(--crm-fast) ease, color var(--crm-fast) ease;
}

.cfhp-close:hover[b-s3gtxnhox8] {
    background: var(--crm-bg);
    color: var(--crm-text);
}

.cfhp-body[b-s3gtxnhox8] {
    padding: 0.85rem 1.1rem 1.5rem;
    overflow-y: auto;
    flex: 1;
}

.cfhp-section + .cfhp-section[b-s3gtxnhox8] {
    margin-top: 1.2rem;
}

.cfhp-section-title[b-s3gtxnhox8] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-3);
    margin: 0 0 0.4rem;
    font-weight: 600;
}

.cfhp-current[b-s3gtxnhox8] {
    font-size: 0.95rem;
    color: var(--crm-text);
    word-break: break-word;
}

.cfhp-empty[b-s3gtxnhox8] {
    color: var(--crm-text-3);
    font-style: italic;
    font-size: 0.85rem;
}

.cfhp-sub-list[b-s3gtxnhox8] {
    display: grid;
    grid-template-columns: 9rem 1fr;
    gap: 0.35rem 0.85rem;
    margin: 0;
    font-size: 0.85rem;
}

.cfhp-sub-list dt[b-s3gtxnhox8] {
    color: var(--crm-text-2);
    font-weight: 500;
}

.cfhp-sub-list dd[b-s3gtxnhox8] {
    margin: 0;
    color: var(--crm-text);
    word-break: break-word;
}

/* Timeline */
.cfhp-timeline[b-s3gtxnhox8] {
    list-style: none;
    margin: 0;
    padding: 0 0 0 1rem;
    border-left: 2px solid var(--crm-border);
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.cfhp-entry[b-s3gtxnhox8] {
    position: relative;
    animation: crm-slide-in-row var(--crm-fast) var(--crm-ease) both;
    animation-delay: var(--cfhp-entry-delay, 0ms);
}

.cfhp-entry[b-s3gtxnhox8]::before {
    content: "";
    position: absolute;
    left: -1.32rem;
    top: 0.35rem;
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: var(--crm-teal);
    box-shadow: 0 0 0 3px var(--crm-white);
}

.cfhp-entry-ts[b-s3gtxnhox8] {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    font-size: 0.72rem;
    color: var(--crm-text-3);
}

.cfhp-entry-when[b-s3gtxnhox8] { font-weight: 500; }
.cfhp-entry-by[b-s3gtxnhox8]  { color: var(--crm-text-2); }

.cfhp-entry-what[b-s3gtxnhox8] {
    font-size: 0.88rem;
    color: var(--crm-text);
    margin-top: 0.15rem;
    word-break: break-word;
}

.cfhp-added[b-s3gtxnhox8]   { color: var(--crm-teal-600, #097a6b); font-weight: 500; }
.cfhp-removed[b-s3gtxnhox8] { color: #c0392b; font-weight: 500; }
.cfhp-corr[b-s3gtxnhox8]    { color: #b58a17; font-weight: 500; }
.cfhp-was[b-s3gtxnhox8]     { color: var(--crm-text-3); font-size: 0.8em; }

.cfhp-entry-effective[b-s3gtxnhox8] {
    margin-top: 0.25rem;
    font-size: 0.74rem;
    color: var(--crm-text-2);
    padding: 0.25rem 0.5rem;
    background: var(--crm-bg);
    border-radius: var(--crm-r-sm);
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.cfhp-entry-effective i[b-s3gtxnhox8] { color: var(--crm-teal); }
.cfhp-entry-note[b-s3gtxnhox8] { color: var(--crm-text-3); }

.cfhp-skel[b-s3gtxnhox8] {
    height: 2.5rem;
    margin-bottom: 0.5rem;
}

@media (prefers-reduced-motion: reduce) {
    .cfhp-backdrop[b-s3gtxnhox8],
    .cfhp-panel[b-s3gtxnhox8],
    .cfhp-entry[b-s3gtxnhox8] { animation: none; }
}
/* /Shared/FieldOptionRulesEditor.razor.rz.scp.css */
/* Rules between options — a sibling of the field form's "Supporting details" card, on a navy rail
   (structure) rather than teal. Each rule reads back as the sentence staff will see. */

.for-card[b-vkzc3jftv7] {
    border: 1px solid var(--crm-border, #dee2e6);
    border-left: 3px solid var(--crm-navy-400, #3A5A96);
    border-radius: var(--crm-r-sm, 6px);
    padding: 0.7rem 0.85rem 0.8rem;
    background: var(--crm-bg, #f8fafc);
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
}

.for-title[b-vkzc3jftv7] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
    font-weight: 650;
    color: var(--crm-navy, #0D2447);
}

.for-title i[b-vkzc3jftv7] {
    color: var(--crm-navy-400, #3A5A96);
}

.for-sub[b-vkzc3jftv7] {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.76rem;
    color: var(--crm-text-3, #6c757d);
    max-width: 70ch;
}

.for-empty[b-vkzc3jftv7] {
    font-size: 0.78rem;
    color: var(--crm-text-3, #6c757d);
    font-style: italic;
}

.for-section[b-vkzc3jftv7] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.for-section-head[b-vkzc3jftv7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.for-section-title[b-vkzc3jftv7] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--crm-navy-600, #1E3D70);
}

.for-add[b-vkzc3jftv7] {
    background: transparent;
    border: 1px dashed var(--crm-border-2, #cfd6e0);
    color: var(--crm-navy-600, #1E3D70);
    padding: 0.2rem 0.55rem;
    border-radius: var(--crm-r-sm, 6px);
    font-size: 0.76rem;
    cursor: pointer;
    transition: background-color 0.12s ease, border-color 0.12s ease;
}

.for-add:hover[b-vkzc3jftv7],
.for-add:focus-visible[b-vkzc3jftv7] {
    background: rgba(58, 90, 150, 0.08);
    border-color: var(--crm-navy-400, #3A5A96);
}

.for-rule[b-vkzc3jftv7] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.55rem 0.6rem;
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 8px;
    background: var(--crm-white, #fff);
}

.for-rule-body[b-vkzc3jftv7] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.for-need[b-vkzc3jftv7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.45rem;
    font-size: 0.8rem;
    color: var(--crm-navy-600, #1E3D70);
}

.for-need select[b-vkzc3jftv7] {
    width: auto;
    min-width: 9rem;
    max-width: 16rem;
}

.for-chips[b-vkzc3jftv7] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.for-chip[b-vkzc3jftv7] {
    padding: 0.18rem 0.6rem;
    font-size: 0.78rem;
    border-radius: 6px;
    border: 1px solid var(--crm-border, #dee2e6);
    background: var(--crm-white, #fff);
    color: var(--crm-text-2, #495057);
    cursor: pointer;
    transition: background-color 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}

.for-chip:hover[b-vkzc3jftv7] {
    border-color: var(--crm-navy-400, #3A5A96);
}

.for-chip--on[b-vkzc3jftv7] {
    background: var(--crm-navy-600, #1E3D70);
    border-color: var(--crm-navy-600, #1E3D70);
    color: #fff;
}

.for-chip:focus-visible[b-vkzc3jftv7],
.for-remove:focus-visible[b-vkzc3jftv7] {
    outline: 2px solid var(--bs-primary, #0d6efd);
    outline-offset: 2px;
}

.for-foot[b-vkzc3jftv7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.75rem;
}

.for-preview[b-vkzc3jftv7],
.for-incomplete[b-vkzc3jftv7] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.35rem;
    font-size: 0.78rem;
    flex: 1 1 16rem;
}

.for-preview[b-vkzc3jftv7] {
    color: var(--crm-navy-600, #1E3D70);
}

.for-preview i[b-vkzc3jftv7] {
    color: var(--crm-navy-400, #3A5A96);
}

.for-incomplete[b-vkzc3jftv7] {
    color: var(--crm-text-3, #6c757d);
    font-style: italic;
}

.for-message[b-vkzc3jftv7] {
    flex: 0 1 15rem;
    font-size: 0.78rem;
}

.for-remove[b-vkzc3jftv7] {
    border: 0;
    background: transparent;
    color: var(--crm-text-3, #6c757d);
    padding: 0.15rem 0.3rem;
    border-radius: 5px;
    line-height: 1;
}

.for-remove:hover[b-vkzc3jftv7] {
    background: rgba(13, 36, 71, 0.06);
    color: var(--crm-navy, #0D2447);
}

@media (max-width: 576px) {
    .for-message[b-vkzc3jftv7] { flex-basis: 100%; }
    .for-need select[b-vkzc3jftv7] { max-width: 100%; flex: 1 1 100%; }
}
/* /Shared/FilterArranger.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   FilterArranger — which filters are on a bar, in order.
   The list is the bar: rows on it carry a teal rail (the
   app's "this is live" colour); filters off it wait in a
   dashed tray as one-click chips.
   ═══════════════════════════════════════════════════════ */

.fa[b-86c2rgekjg] {
    --fa-rail: var(--crm-teal, #00C5A8);
    --fa-rail-soft: var(--crm-teal-50, rgba(0, 197, 168, 0.08));
    --fa-ink: var(--crm-navy, #0D2447);
    --fa-muted: var(--crm-text-3, #6c757d);
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.fa--embedded[b-86c2rgekjg] {
    padding: 0.25rem 0.1rem 0.1rem;
}

.fa-head[b-86c2rgekjg] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.25rem;
}

.fa-title[b-86c2rgekjg] {
    font-size: 1rem;
    font-weight: 650;
    color: var(--fa-ink);
    margin: 0 0 0.15rem;
}

.fa-intro[b-86c2rgekjg] {
    margin: 0;
    max-width: 62ch;
    font-size: 0.82rem;
    color: var(--fa-muted);
    line-height: 1.45;
}

.fa-source[b-86c2rgekjg] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.76rem;
    color: var(--fa-ink);
    background: var(--fa-rail-soft);
    border: 1px solid rgba(0, 197, 168, 0.28);
    border-radius: 999px;
    padding: 0.2rem 0.65rem;
    white-space: nowrap;
}

.fa-section-label[b-86c2rgekjg] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--fa-ink);
    margin-top: 0.15rem;
}

.fa-section-label--tray[b-86c2rgekjg] {
    color: var(--fa-muted);
    margin-top: 0.4rem;
}

.fa-count[b-86c2rgekjg] {
    font-size: 0.7rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    min-width: 1.35rem;
    text-align: center;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: var(--crm-surface-2, #eef2f7);
    color: var(--fa-muted);
}

/* ── On the bar ─────────────────────────────────────── */

.fa-shown[b-86c2rgekjg]  .sl-item {
    border-left: 3px solid var(--fa-rail);
    padding-left: 0.6rem;
}

.fa-shown[b-86c2rgekjg]  .sl-item:hover {
    background: var(--fa-rail-soft);
}

/* The row's own actions are the point of arranging: keep them in reach, not hover-only. */
.fa-shown[b-86c2rgekjg]  .sl-actions {
    opacity: 0.75;
}

.fa-row[b-86c2rgekjg] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    min-width: 0;
    width: 100%;
    border-radius: 6px;
}

.fa-kind[b-86c2rgekjg] {
    color: var(--crm-navy-400, #3A5A96);
    opacity: 0.55;
    font-size: 0.85rem;
    flex-shrink: 0;
}

.fa-text[b-86c2rgekjg] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    min-width: 0;
    flex-wrap: wrap;
}

.fa-label[b-86c2rgekjg] {
    font-weight: 600;
    font-size: 0.86rem;
    color: var(--fa-ink);
}

.fa-hint[b-86c2rgekjg] {
    font-size: 0.76rem;
    color: var(--fa-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 46ch;
}

.fa-hide[b-86c2rgekjg] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    border: 1px solid transparent;
    background: transparent;
    color: var(--fa-muted);
    font-size: 0.76rem;
    padding: 0.15rem 0.45rem;
    border-radius: 5px;
    margin-left: 0.25rem;
}

.fa-hide:hover[b-86c2rgekjg],
.fa-hide:focus-visible[b-86c2rgekjg] {
    color: var(--fa-ink);
    border-color: var(--crm-border, #dee2e6);
    background: var(--crm-white, #fff);
}

/* A filter just brought back glows once, so the eye finds where it landed. */
.fa-row--added[b-86c2rgekjg] {
    animation: fa-landed-b-86c2rgekjg 1.2s ease-out 1;
}

@keyframes fa-landed-b-86c2rgekjg {
    0%   { box-shadow: 0 0 0 0 rgba(0, 197, 168, 0.55); background: rgba(0, 197, 168, 0.16); }
    100% { box-shadow: 0 0 0 10px rgba(0, 197, 168, 0); background: transparent; }
}

.fa-empty[b-86c2rgekjg] {
    font-size: 0.82rem;
    color: var(--fa-muted);
    margin: 0;
    padding: 0.75rem;
    border: 1px dashed var(--crm-border-2, #cfd6e0);
    border-radius: 8px;
}

/* ── Not on the bar ─────────────────────────────────── */

.fa-tray[b-86c2rgekjg] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    padding: 0.6rem;
    border: 1px dashed var(--crm-border-2, #cfd6e0);
    border-radius: 8px;
    background: repeating-linear-gradient(
        -45deg,
        transparent 0 6px,
        rgba(13, 36, 71, 0.018) 6px 12px);
    min-height: 2.6rem;
    align-items: center;
}

.fa-tray-empty[b-86c2rgekjg] {
    font-size: 0.78rem;
    color: var(--fa-muted);
}

.fa-add[b-86c2rgekjg] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8rem;
    color: var(--fa-ink);
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 999px;
    padding: 0.2rem 0.7rem 0.2rem 0.5rem;
    transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.fa-add i[b-86c2rgekjg] {
    color: var(--fa-rail);
    font-size: 0.8rem;
}

.fa-add:hover[b-86c2rgekjg],
.fa-add:focus-visible[b-86c2rgekjg] {
    border-color: var(--fa-rail);
    background: var(--fa-rail-soft);
}

/* ── A group of its own (the Accounts page's people filters) ──
   Framed in the navy the bar uses for the same section, so the arranger
   reads like the bar: these filters ask "does someone hold this seat?",
   not "what is this account?". */

.fa-section[b-86c2rgekjg] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.fa-section--group[b-86c2rgekjg] {
    --fa-rail: var(--crm-navy-400, #3A5A96);
    --fa-rail-soft: rgba(58, 90, 150, 0.07);
    margin-top: 0.6rem;
    padding: 0.75rem 0.85rem 0.85rem;
    border-radius: 10px;
    background: rgba(13, 36, 71, 0.025);
    border: 1px solid rgba(13, 36, 71, 0.08);
    box-shadow: inset 3px 0 0 var(--crm-navy-400, #3A5A96);
}

.fa-group-head[b-86c2rgekjg] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.35rem 0.6rem;
}

.fa-group-head > i[b-86c2rgekjg] {
    color: var(--crm-navy-400, #3A5A96);
    font-size: 0.95rem;
    align-self: center;
}

.fa-group-title[b-86c2rgekjg] {
    font-weight: 650;
    font-size: 0.9rem;
    color: var(--fa-ink);
}

.fa-group-hint[b-86c2rgekjg] {
    font-size: 0.76rem;
    color: var(--fa-muted);
}

.fa-section--group .fa-kind[b-86c2rgekjg] {
    opacity: 0.8;
}

.fa-tray-search[b-86c2rgekjg] {
    position: relative;
    margin-left: auto;
    font-weight: 400;
}

.fa-tray-search > i[b-86c2rgekjg] {
    position: absolute;
    left: 0.55rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.72rem;
    color: var(--fa-muted);
    pointer-events: none;
}

.fa-tray-search input[b-86c2rgekjg] {
    width: 12rem;
    padding-left: 1.6rem;
    font-size: 0.78rem;
}

/* ── Footer ─────────────────────────────────────────── */

.fa-foot[b-86c2rgekjg] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--crm-border, #dee2e6);
}

.fa-foot-spacer[b-86c2rgekjg] { flex: 1; }

.fa-reset[b-86c2rgekjg] {
    color: var(--fa-muted);
    text-decoration: none;
    padding-left: 0;
}

.fa-reset:hover[b-86c2rgekjg] { color: var(--fa-ink); }

@media (max-width: 576px) {
    .fa-tray-search[b-86c2rgekjg] { margin-left: 0; width: 100%; }
    .fa-tray-search input[b-86c2rgekjg] { width: 100%; }
    .fa-hint[b-86c2rgekjg] { display: none; }
    .fa-hide span[b-86c2rgekjg] { display: none; }
    .fa-foot[b-86c2rgekjg] { flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
    .fa-row--added[b-86c2rgekjg] { animation: none; background: var(--fa-rail-soft); }
}

/* In a list page's panel the footer sits at the page's right edge, under the floating
   assistant button: keep Save clear of it. */
.fa--embedded .fa-foot[b-86c2rgekjg] {
    padding-right: 4.5rem;
}

@media (max-width: 576px) {
    .fa--embedded .fa-foot[b-86c2rgekjg] { padding-right: 0; padding-bottom: 4.5rem; }
}
/* /Shared/FilterSelect.razor.rz.scp.css */
/* Animated dropdown that replaces native <select> inside filter panes.
   Uses the same grid-template-rows: 0fr → 1fr trick as the parent
   ListFilters component so the open animates to natural content height
   without us hard-coding a max-height. */

.fs-wrapper[b-7m00rw3b6h] {
    position: relative;
    display: block;
}

.fs-trigger[b-7m00rw3b6h] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 0.5rem;
    padding: 0.375rem 0.75rem;
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color, #ced4da);
    border-radius: var(--bs-border-radius, 0.375rem);
    color: var(--bs-body-color);
    font-size: 0.875rem;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease;
}

.fs-wrapper--sm .fs-trigger[b-7m00rw3b6h] {
    padding: 0.25rem 0.5rem;
    font-size: 0.8125rem;
}

.fs-trigger:hover[b-7m00rw3b6h] {
    border-color: var(--bs-secondary, #6c757d);
}

.fs-trigger:focus-visible[b-7m00rw3b6h],
.fs-trigger--open[b-7m00rw3b6h] {
    outline: 0;
    border-color: var(--bs-primary, #0d6efd);
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.18);
}

.fs-trigger-label[b-7m00rw3b6h] {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fs-placeholder[b-7m00rw3b6h] {
    color: var(--bs-secondary-color, #6c757d);
}

.fs-chevron[b-7m00rw3b6h] {
    color: var(--bs-secondary-color, #6c757d);
    font-size: 0.75rem;
    flex-shrink: 0;
    transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.fs-trigger--open .fs-chevron[b-7m00rw3b6h] {
    transform: rotate(180deg);
}

/* The animated panel — collapsed = 0fr, open = 1fr. The inner
   wrapper hides overflow so content doesn't peek during the transition. */
.fs-collapse[b-7m00rw3b6h] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 1050;
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.18s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
}

.fs-open .fs-collapse[b-7m00rw3b6h] {
    grid-template-rows: 1fr;
    pointer-events: auto;
}

.fs-collapse-inner[b-7m00rw3b6h] {
    overflow: hidden;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity 0.14s ease, transform 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.fs-open .fs-collapse-inner[b-7m00rw3b6h] {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.18s ease 0.04s, transform 0.18s cubic-bezier(0.4, 0, 0.2, 1) 0.04s;
}

.fs-menu[b-7m00rw3b6h] {
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: var(--bs-border-radius, 0.375rem);
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.1), 0 2px 6px rgba(0, 0, 0, 0.06);
    padding: 0.25rem 0;
    max-height: 320px;
    overflow-y: auto;
}

/* Click-outside backdrop. Transparent + full-viewport so any click off
   the menu closes it. Below the menu (z-index 1049 < 1050) so options
   still receive clicks. */
.fs-backdrop[b-7m00rw3b6h] {
    position: fixed;
    inset: 0;
    z-index: 1049;
    background: transparent;
}

[b-7m00rw3b6h] .fs-option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    padding: 0.4rem 0.75rem;
    background: transparent;
    border: 0;
    color: var(--bs-body-color);
    font-size: 0.875rem;
    text-align: left;
    cursor: pointer;
    transition: background-color 0.1s ease;
}

[b-7m00rw3b6h] .fs-option:hover {
    background: rgba(13, 110, 253, 0.08);
}

[b-7m00rw3b6h] .fs-option--selected {
    background: rgba(13, 110, 253, 0.12);
    color: var(--bs-primary, #0d6efd);
    font-weight: 500;
}

[b-7m00rw3b6h] .fs-option-check {
    color: var(--bs-primary, #0d6efd);
    font-size: 0.875rem;
    flex-shrink: 0;
}

@media (prefers-reduced-motion: reduce) {
    .fs-chevron[b-7m00rw3b6h],
    .fs-collapse[b-7m00rw3b6h],
    .fs-collapse-inner[b-7m00rw3b6h] {
        transition: none;
    }
}
/* /Shared/Ga/BillChangeSummaryView.razor.rz.scp.css */
/* The written account of a comparison.

   The citation is styled as a link and put first on every line, because following it is the only
   way a reader can check the claim — and checking is the entire reason this is allowed to exist. */

.bcs[b-u3ti7qpfee] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.bcs-quiet[b-u3ti7qpfee] {
    margin: 0;
    font-size: 0.8rem;
    color: var(--crm-text-muted, #6b7280);
}

.bcs-group[b-u3ti7qpfee] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.bcs-title[b-u3ti7qpfee] {
    margin: 0;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--crm-text-muted, #6b7280);
}

.bcs-list[b-u3ti7qpfee] {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.bcs-list li[b-u3ti7qpfee] {
    display: flex;
    gap: 0.45rem;
    align-items: baseline;
    font-size: 0.85rem;
    line-height: 1.5;
}

.bcs-cite[b-u3ti7qpfee] {
    flex: 0 0 auto;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--crm-primary, #0f766e);
    text-decoration: none;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.bcs-cite:hover[b-u3ti7qpfee] {
    text-decoration: underline;
}

.bcs-text[b-u3ti7qpfee] {
    color: var(--crm-text, #111827);
}

.bcs-foot[b-u3ti7qpfee] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    border-top: 1px solid var(--crm-border, #e5e7eb);
    padding-top: 0.4rem;
}

/* Not a footnote in tone: what was dropped is part of the result, not a disclaimer under it. */
.bcs-dropped[b-u3ti7qpfee] {
    font-size: 0.75rem;
    color: var(--crm-warning-text, #92400e);
}

.bcs-dropped-why[b-u3ti7qpfee] {
    color: var(--crm-text-muted, #6b7280);
}

.bcs-prov[b-u3ti7qpfee] {
    font-size: 0.7rem;
    color: var(--crm-text-muted, #6b7280);
}
/* /Shared/Ga/BillTextCompare.razor.rz.scp.css */
/* What changed between two printings.

   The palette is the app's own (--crm-*), not Bootstrap's, so branding follows. Added and removed
   text are given weight rather than only colour: a colour-only diff is unreadable to a reader with
   a colour vision deficiency, and this is a document people make decisions from. */

.btc[b-zr52tf61k4] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.btc-quiet[b-zr52tf61k4] {
    color: var(--crm-text-muted, #6b7280);
    font-size: 0.875rem;
}

.btc-warn[b-zr52tf61k4] {
    color: var(--crm-warning-text, #92400e);
}

/* ── the two pickers ─────────────────────────────────────────────────── */

.btc-picker[b-zr52tf61k4] {
    display: flex;
    align-items: flex-end;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.btc-picker label[b-zr52tf61k4] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    font-size: 0.75rem;
    color: var(--crm-text-muted, #6b7280);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.btc-picker select[b-zr52tf61k4] {
    min-width: 11rem;
}

.btc-arrow[b-zr52tf61k4] {
    padding-bottom: 0.35rem;
    color: var(--crm-text-muted, #6b7280);
}

/* ── the counts ──────────────────────────────────────────────────────── */

.btc-counts[b-zr52tf61k4] {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    align-items: baseline;
}

.btc-count[b-zr52tf61k4] {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
}

.btc-n[b-zr52tf61k4] {
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--crm-text, #111827);
    font-variant-numeric: tabular-nums;
}

.btc-count--lead .btc-n[b-zr52tf61k4] {
    font-size: 1.6rem;
    color: var(--crm-primary, #0f766e);
}

.btc-count--muted .btc-n[b-zr52tf61k4],
.btc-count--muted .btc-l[b-zr52tf61k4] {
    color: var(--crm-text-muted, #6b7280);
}

.btc-l[b-zr52tf61k4] {
    font-size: 0.8rem;
    color: var(--crm-text-muted, #6b7280);
}

/* ── signals ─────────────────────────────────────────────────────────── */

.btc-signals[b-zr52tf61k4] {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.btc-signal[b-zr52tf61k4] {
    font-size: 0.7rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: var(--crm-accent-soft, #fef3c7);
    color: var(--crm-accent-text, #92400e);
    white-space: nowrap;
}

.btc-signal--sm[b-zr52tf61k4] {
    font-size: 0.65rem;
}

/* ── the honesty rail ────────────────────────────────────────────────── */

.btc-rail[b-zr52tf61k4] {
    display: flex;
    gap: 0.9rem;
    flex-wrap: wrap;
    font-size: 0.72rem;
    color: var(--crm-text-muted, #6b7280);
    border-top: 1px solid var(--crm-border, #e5e7eb);
    padding-top: 0.45rem;
}

.btc-rail-item--soft[b-zr52tf61k4] {
    font-style: italic;
}

.btc-caveat[b-zr52tf61k4] {
    font-size: 0.78rem;
    color: var(--crm-text-muted, #6b7280);
    margin: 0;
}

/* ── the model button ────────────────────────────────────────────────── */

.btc-ai[b-zr52tf61k4] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.6rem 0.75rem;
    border: 1px dashed var(--crm-border, #e5e7eb);
    border-radius: 0.5rem;
}

.btc-ai-note[b-zr52tf61k4] {
    font-size: 0.72rem;
    color: var(--crm-text-muted, #6b7280);
}

/* ── sections and provisions ─────────────────────────────────────────── */

.btc-section[b-zr52tf61k4] {
    border: 1px solid var(--crm-border, #e5e7eb);
    border-radius: 0.5rem;
    overflow: hidden;
}

.btc-section--added[b-zr52tf61k4] {
    border-left: 3px solid var(--crm-success, #16a34a);
}

.btc-section--removed[b-zr52tf61k4] {
    border-left: 3px solid var(--crm-danger, #dc2626);
}

.btc-section-head[b-zr52tf61k4] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.4rem 0.65rem;
    background: var(--crm-surface-muted, #f9fafb);
    border-bottom: 1px solid var(--crm-border, #e5e7eb);
}

.btc-secnum[b-zr52tf61k4] {
    font-weight: 600;
    font-size: 0.85rem;
}

.btc-key[b-zr52tf61k4] {
    font-size: 0.7rem;
    color: var(--crm-text-muted, #6b7280);
    font-variant-numeric: tabular-nums;
}

.btc-key--soft[b-zr52tf61k4] {
    font-style: italic;
}

.btc-prov[b-zr52tf61k4] {
    padding: 0.5rem 0.65rem;
    border-top: 1px solid var(--crm-border-soft, #f3f4f6);
}

.btc-prov:first-of-type[b-zr52tf61k4] {
    border-top: 0;
}

.btc-prov-head[b-zr52tf61k4] {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 0.2rem;
}

.btc-anchor[b-zr52tf61k4] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--crm-primary, #0f766e);
    font-variant-numeric: tabular-nums;
}

.btc-text[b-zr52tf61k4] {
    margin: 0;
    font-size: 0.85rem;
    line-height: 1.55;
    /* Legislative text runs long and is full of citations that must not be broken across lines
       silently; wrapping normally and letting the panel scroll is safer than any clever hyphenation. */
    overflow-wrap: break-word;
}

/* Weight and decoration carry the meaning, colour reinforces it. */
.btc-text ins[b-zr52tf61k4] {
    text-decoration: none;
    font-weight: 600;
    background: var(--crm-success-soft, #dcfce7);
    color: var(--crm-success-text, #14532d);
    border-radius: 0.15rem;
    padding: 0 0.1rem;
}

.btc-text del[b-zr52tf61k4] {
    text-decoration: line-through;
    background: var(--crm-danger-soft, #fee2e2);
    color: var(--crm-danger-text, #7f1d1d);
    border-radius: 0.15rem;
    padding: 0 0.1rem;
}
/* /Shared/Ga/RuleTextChanges.razor.rz.scp.css */
/*
    Insertions and deletions are the whole point of this panel, so they are distinguished by
    colour *and* by a leading +/− glyph. Colour alone would leave the two indistinguishable to a
    reader with a red/green deficiency, on a panel whose entire content is that distinction.
*/

.rule-text-summary[b-9da1r1jsyl] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    padding-bottom: 0.75rem;
    margin-bottom: 0.75rem;
    border-bottom: 1px solid var(--crm-border, #e5e7eb);
}

.rule-text-count[b-9da1r1jsyl] {
    font-size: 0.8125rem;
    font-weight: 600;
    padding: 0.125rem 0.5rem;
    border-radius: 999px;
    white-space: nowrap;
}

.rule-text-count--insert[b-9da1r1jsyl] {
    color: var(--crm-success-emphasis, #14532d);
    background: var(--crm-success-subtle, #dcfce7);
}

.rule-text-count--delete[b-9da1r1jsyl] {
    color: var(--crm-danger-emphasis, #7f1d1d);
    background: var(--crm-danger-subtle, #fee2e2);
}

.rule-text-wac[b-9da1r1jsyl] {
    font-size: 0.8125rem;
    color: var(--crm-text-muted, #6b7280);
    font-variant-numeric: tabular-nums;
}

.rule-text-section + .rule-text-section[b-9da1r1jsyl] {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--crm-border, #e5e7eb);
}

.rule-text-section__head[b-9da1r1jsyl] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.rule-text-section__heading[b-9da1r1jsyl] {
    font-weight: 600;
    font-size: 0.9375rem;
}

.rule-text-section__amending[b-9da1r1jsyl],
.rule-text-section__none[b-9da1r1jsyl] {
    font-size: 0.8125rem;
    color: var(--crm-text-muted, #6b7280);
}

.rule-text-section__none[b-9da1r1jsyl] {
    margin: 0;
}

.rule-text-changes[b-9da1r1jsyl] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.rule-text-change[b-9da1r1jsyl] {
    display: flex;
    gap: 0.5rem;
    padding: 0.1875rem 0;
    font-size: 0.875rem;
    line-height: 1.45;
}

.rule-text-change__mark[b-9da1r1jsyl] {
    flex: 0 0 1rem;
    font-weight: 700;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

/* The text itself wraps; long struck clauses are common and must not force a scrollbar. */
.rule-text-change__text[b-9da1r1jsyl] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.rule-text-change.is-insert .rule-text-change__mark[b-9da1r1jsyl] {
    color: var(--crm-success-emphasis, #14532d);
}

.rule-text-change.is-insert .rule-text-change__text[b-9da1r1jsyl] {
    background: var(--crm-success-subtle, #dcfce7);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.rule-text-change.is-delete .rule-text-change__mark[b-9da1r1jsyl] {
    color: var(--crm-danger-emphasis, #7f1d1d);
}

.rule-text-change.is-delete .rule-text-change__text[b-9da1r1jsyl] {
    background: var(--crm-danger-subtle, #fee2e2);
    text-decoration: line-through;
}
/* /Shared/IconPicker.razor.rz.scp.css */
/* ── Wrapper ── */
.icon-picker[b-57iequcg4x] {
    position: relative;
    display: inline-block;
    width: 100%;
    z-index: 1;
}

.icon-picker.is-open[b-57iequcg4x] {
    z-index: 500;
}

/* ── Trigger — form-control look ── */
.icon-picker-toggle[b-57iequcg4x] {
    -webkit-appearance: none;
    appearance: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.5rem 0.875rem;
    font-family: 'Outfit', sans-serif;
    font-size: 0.9rem;
    font-weight: 400;
    color: var(--crm-text);
    background: var(--crm-white);
    border: 1px solid var(--crm-border-2);
    border-radius: var(--crm-r-sm);
    cursor: pointer;
    transition: border-color var(--crm-fast) ease,
                box-shadow var(--crm-fast) ease;
    text-align: left;
}

.icon-picker-toggle:hover[b-57iequcg4x] {
    border-color: var(--crm-navy-400);
}

.icon-picker-toggle:focus[b-57iequcg4x] {
    outline: none;
    border-color: var(--crm-teal);
    box-shadow: 0 0 0 3px var(--crm-teal-glow);
}

.icon-picker.is-open .icon-picker-toggle[b-57iequcg4x] {
    border-color: var(--crm-teal);
    box-shadow: 0 0 0 3px var(--crm-teal-glow);
}

.icon-picker-value[b-57iequcg4x] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1;
    min-width: 0;
}

.icon-picker-preview[b-57iequcg4x] {
    font-size: 1rem;
    color: var(--crm-navy-600);
    flex-shrink: 0;
}

.icon-picker-placeholder[b-57iequcg4x] {
    color: var(--crm-text-3);
}

.icon-picker-chevron[b-57iequcg4x] {
    font-size: 0.75rem;
    color: var(--crm-text-3);
    flex-shrink: 0;
    margin-left: 0.5rem;
    transition: transform var(--crm-fast) var(--crm-ease);
}

.icon-picker.is-open .icon-picker-chevron[b-57iequcg4x] {
    transform: rotate(180deg);
}

/* ── Dropdown panel ── */
.icon-picker-panel[b-57iequcg4x] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 1050;
    width: 340px;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: 0.875rem;
    box-shadow: var(--crm-shadow-lg);
    animation: iconPickerIn-b-57iequcg4x var(--crm-fast) var(--crm-ease);
}

@keyframes iconPickerIn-b-57iequcg4x {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Search input ── */
.icon-picker-search[b-57iequcg4x] {
    margin-bottom: 0.625rem !important;
}

/* ── Icon grid ── */
.icon-picker-grid[b-57iequcg4x] {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 3px;
    max-height: 256px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--crm-border-2) transparent;
}

/* ── Individual icon cell — full appearance reset ── */
.icon-picker-item[b-57iequcg4x] {
    -webkit-appearance: none;
    appearance: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 3px;
    padding: 7px 3px 5px;
    border: none;
    border-radius: var(--crm-r-sm);
    background: transparent;
    color: var(--crm-text-2);
    font-family: 'Outfit', sans-serif;
    font-size: 0.6rem;
    cursor: pointer;
    transition: background var(--crm-fast) ease,
                color var(--crm-fast) ease;
    overflow: hidden;
    outline: none;
}

.icon-picker-item i[b-57iequcg4x] {
    font-size: 1.1rem;
    line-height: 1;
    flex-shrink: 0;
}

.icon-picker-item span[b-57iequcg4x] {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
    line-height: 1.2;
}

.icon-picker-item:hover[b-57iequcg4x] {
    background: var(--crm-surface-2);
    color: var(--crm-navy);
}

.icon-picker-item:focus-visible[b-57iequcg4x] {
    outline: none;
    box-shadow: 0 0 0 2px var(--crm-teal);
}

.icon-picker-item.is-selected[b-57iequcg4x] {
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
}

.icon-picker-item.is-selected i[b-57iequcg4x] {
    color: var(--crm-teal-600);
}

/* ── Empty state ── */
.icon-picker-empty[b-57iequcg4x] {
    grid-column: 1 / -1;
    color: var(--crm-text-3);
    font-size: 0.8rem;
    padding: 0.5rem;
    margin: 0;
}
/* /Shared/Invoicing/AccountBillingPanel.razor.rz.scp.css */
/* The account's ledger. Rows are a fixed grid rather than a table so the reference,
   status, date and amount align down the page whatever the row carries — and the
   amount column is monospace so a column of figures reads as a column. */

.ab-panel[b-sti0vi9afb] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    padding: 1.25rem;
}

.ab-head[b-sti0vi9afb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--crm-border);
}

.ab-figures[b-sti0vi9afb] {
    display: flex;
    gap: 2.25rem;
}

.ab-figure[b-sti0vi9afb] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.ab-figure__label[b-sti0vi9afb] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--crm-text-3);
}

.ab-figure__value[b-sti0vi9afb] {
    font-family: var(--bs-font-monospace, ui-monospace, monospace);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--crm-text-2);
    font-variant-numeric: tabular-nums;
}

.ab-figure__value--owed[b-sti0vi9afb] { color: var(--crm-navy); }
.ab-figure__value--credit[b-sti0vi9afb] { color: var(--crm-teal-600); }

.ab-actions[b-sti0vi9afb] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.ab-actions .btn:active[b-sti0vi9afb] { transform: translateY(1px); }

.ab-section[b-sti0vi9afb] { padding-top: 1.1rem; }

.ab-section__title[b-sti0vi9afb] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--crm-text-3);
    margin-bottom: 0.5rem;
}

.ab-list[b-sti0vi9afb] { border-top: 1px solid var(--crm-border); }

.ab-row[b-sti0vi9afb] {
    display: grid;
    grid-template-columns: 8.5rem 7.5rem 1fr auto 7rem;
    gap: 0.75rem;
    align-items: center;
    padding: 0.6rem 0.35rem;
    border-bottom: 1px solid var(--crm-border);
    text-decoration: none;
    color: inherit;
    transition: background var(--crm-fast) var(--crm-ease);
}

.ab-row:hover[b-sti0vi9afb] { background: var(--crm-surface-2); }

@media (max-width: 720px) {
    .ab-row[b-sti0vi9afb] {
        grid-template-columns: 1fr auto;
        row-gap: 0.2rem;
    }
    .ab-row__po[b-sti0vi9afb] { display: none; }
}

.ab-row__ref[b-sti0vi9afb] {
    font-weight: 600;
    font-size: 0.82rem;
    color: var(--crm-navy);
}

.ab-row__date[b-sti0vi9afb],
.ab-row__po[b-sti0vi9afb] {
    font-size: 0.78rem;
    color: var(--crm-text-3);
}

.ab-row__amount[b-sti0vi9afb] {
    text-align: right;
    font-family: var(--bs-font-monospace, ui-monospace, monospace);
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--crm-navy);
}

.ab-list--muted .ab-row__ref[b-sti0vi9afb],
.ab-list--muted .ab-row__amount[b-sti0vi9afb] { color: var(--crm-text-3); font-weight: 500; }

.ab-late[b-sti0vi9afb] {
    font-style: normal;
    color: var(--crm-danger, #b42318);
    margin-left: 0.4rem;
}

.ab-muted[b-sti0vi9afb] { font-size: 0.8rem; color: var(--crm-text-3); }

/* ── Status ──────────────────────────────────────────────────────────────── */

.ab-status[b-sti0vi9afb] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    border: 1px solid var(--crm-border-2);
    color: var(--crm-text-2);
    white-space: nowrap;
}

.ab-status--issued[b-sti0vi9afb] { color: var(--crm-navy-600); border-color: rgba(var(--crm-navy-rgb), 0.25); }
.ab-status--partiallypaid[b-sti0vi9afb] { color: #8A6100; border-color: rgba(138, 97, 0, 0.28); background: rgba(255, 193, 7, 0.06); }
.ab-status--paid[b-sti0vi9afb] { color: var(--crm-teal-600); border-color: rgba(var(--crm-teal-rgb), 0.35); background: var(--crm-teal-50); }
.ab-status--overdue[b-sti0vi9afb] { color: #B4232A; border-color: rgba(180, 35, 42, 0.3); background: rgba(180, 35, 42, 0.05); }
.ab-status--writtenoff[b-sti0vi9afb] { color: var(--crm-text-3); border-color: var(--crm-border); }

/* ── Unapplied payments ──────────────────────────────────────────────────── */

.ab-unapplied[b-sti0vi9afb] {
    margin-top: 1rem;
    border: 1px solid rgba(var(--crm-teal-rgb), 0.3);
    background: var(--crm-teal-50);
    border-radius: var(--crm-r-sm);
    padding: 0.75rem 0.9rem;
}

.ab-unapplied__head[b-sti0vi9afb] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--crm-teal-600);
    margin-bottom: 0.4rem;
}

.ab-unapplied__row[b-sti0vi9afb] {
    display: grid;
    grid-template-columns: 1fr auto 7rem;
    gap: 0.75rem;
    align-items: baseline;
    font-size: 0.82rem;
    padding: 0.2rem 0;
}

.ab-unapplied__row b[b-sti0vi9afb] {
    text-align: right;
    font-family: var(--bs-font-monospace, ui-monospace, monospace);
    font-variant-numeric: tabular-nums;
}

/* ── Empty + loading ─────────────────────────────────────────────────────── */

.ab-empty[b-sti0vi9afb] {
    text-align: center;
    padding: 2.5rem 1rem;
}

.ab-empty i[b-sti0vi9afb] {
    font-size: 1.9rem;
    color: var(--crm-text-3);
    display: block;
    margin-bottom: 0.6rem;
}

.ab-empty h5[b-sti0vi9afb] { font-weight: 600; color: var(--crm-navy); font-size: 1rem; }
.ab-empty p[b-sti0vi9afb] { font-size: 0.85rem; color: var(--crm-text-2); margin: 0; }

.ab-skeleton__row[b-sti0vi9afb] {
    height: 46px;
    border-bottom: 1px solid var(--crm-border);
    background: linear-gradient(90deg,
        var(--crm-surface-2) 25%,
        var(--crm-surface) 37%,
        var(--crm-surface-2) 63%);
    background-size: 400% 100%;
    animation: ab-shimmer-b-sti0vi9afb 1.4s ease infinite;
}

.ab-skeleton__row:last-child[b-sti0vi9afb] { border-bottom: 0; }

@keyframes ab-shimmer-b-sti0vi9afb {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}
/* /Shared/Invoicing/ArAgingRowView.razor.rz.scp.css */
/* Body rows for the aging table. Scoped here rather than on the page because the
   rows are this component's markup and carry its scope id — the page's stylesheet
   cannot reach them without ::deep on every rule. */

.ar-num[b-bmwck6cs3u] {
    text-align: right;
    font-family: var(--bs-font-monospace, ui-monospace, monospace);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ar-num--total[b-bmwck6cs3u] { font-weight: 600; color: var(--crm-navy); }
.ar-num--hot[b-bmwck6cs3u] { color: var(--crm-danger, #b42318); font-weight: 600; }
.ar-num--credit[b-bmwck6cs3u] { color: var(--crm-teal-600); }

.ar-org[b-bmwck6cs3u] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 500;
    color: var(--crm-navy);
    text-decoration: none;
}

.ar-org:hover[b-bmwck6cs3u] { text-decoration: underline; }
.ar-org__nest[b-bmwck6cs3u] { color: var(--crm-text-3); font-size: 0.75rem; }

.ar-org__meta[b-bmwck6cs3u] {
    font-size: 0.72rem;
    color: var(--crm-text-3);
}

.ar-late[b-bmwck6cs3u] { color: var(--crm-danger, #b42318); }

/* A rolled-up child is already counted in the row above it. Muting the whole row is
   the cheapest way to say "this explains the parent, it does not add to it". */
.ar-row--child td[b-bmwck6cs3u] { background: var(--crm-surface-2); }
.ar-row--child .ar-num[b-bmwck6cs3u] { color: var(--crm-text-2); }
/* /Shared/Invoicing/InvoiceSettlementPanel.razor.rz.scp.css */
/* What settled an invoice. Payments and credits share one list because the question
   this answers — "why do you say I still owe X?" — is answered by both together. */

.inv-settle[b-53f6i8t4bp] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-lg);
    box-shadow: var(--crm-shadow-sm);
    padding: 1.1rem 1.25rem;
}

.inv-settle h6[b-53f6i8t4bp] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
}

/* The panel lives in a ~330px column, so the heading and the actions stack. Side by side
   the buttons shrink until the label runs under its own icon. */
.inv-settle-head[b-53f6i8t4bp] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin-bottom: 0.9rem;
}

.inv-settle-actions[b-53f6i8t4bp] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    position: relative;
}

.inv-settle-actions .btn[b-53f6i8t4bp] { white-space: nowrap; }

.inv-settle-menu[b-53f6i8t4bp] {
    position: absolute;
    right: 0;
    left: auto;
    min-width: 220px;
    border: 1px solid var(--crm-border);
    box-shadow: var(--crm-shadow);
}

.inv-settle-table[b-53f6i8t4bp] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.84rem;
}

.inv-settle-table td[b-53f6i8t4bp] {
    padding: 0.5rem 0.4rem;
    border-bottom: 1px solid var(--crm-border);
    vertical-align: middle;
}

.inv-settle-table tr:last-child td[b-53f6i8t4bp] { border-bottom: 0; }

.inv-settle-icon[b-53f6i8t4bp] {
    width: 28px;
    color: var(--crm-text-3);
}

.inv-settle-main[b-53f6i8t4bp] {
    font-weight: 600;
    color: var(--crm-text);
}

.inv-settle-sub[b-53f6i8t4bp] {
    font-size: 0.72rem;
    color: var(--crm-text-3);
    font-variant-numeric: tabular-nums;
}

.inv-num[b-53f6i8t4bp] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--crm-text-2);
    white-space: nowrap;
}

.inv-settle-state[b-53f6i8t4bp] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.1rem 0.4rem;
    border-radius: var(--crm-r-sm);
    border: 1px solid var(--crm-border-2);
    color: var(--crm-text-3);
    white-space: nowrap;
}

/* Cleared recedes; anything not yet money, or gone backwards, is what needs the eye. */
.inv-settle-state--cleared[b-53f6i8t4bp] { color: var(--crm-teal-600); border-color: rgba(var(--crm-teal-rgb), 0.35); }
.inv-settle-state--pending[b-53f6i8t4bp] { color: #8A6100; border-color: rgba(138, 97, 0, 0.3); background: rgba(255, 193, 7, 0.06); }
.inv-settle-state--failed[b-53f6i8t4bp] { color: #B4232A; border-color: rgba(180, 35, 42, 0.3); background: rgba(180, 35, 42, 0.05); }
.inv-settle-state--disputed[b-53f6i8t4bp] { color: #B4232A; border-color: rgba(180, 35, 42, 0.3); background: rgba(180, 35, 42, 0.05); }
.inv-settle-state--refunded[b-53f6i8t4bp] { color: var(--crm-text-3); }
.inv-settle-state--partiallyrefunded[b-53f6i8t4bp] { color: var(--crm-text-3); }
.inv-settle-state--credit[b-53f6i8t4bp] { color: var(--crm-navy-600); border-color: rgba(var(--crm-navy-rgb), 0.25); }

/* The pay link is shown exactly once — only its hash is stored — so it gets a box of its
   own rather than a line that scrolls away. */
.inv-paylink[b-53f6i8t4bp] {
    background: var(--crm-bg);
    border: 1px solid var(--crm-border-2);
    border-radius: var(--crm-r);
    padding: 0.75rem 0.9rem;
    margin-bottom: 0.9rem;
}

.inv-doc-label[b-53f6i8t4bp] {
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--crm-text-3);
    margin-bottom: 0.3rem;
}
/* /Shared/KanbanBoard.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   KanbanBoard — horizontal pipeline lane container
   ═══════════════════════════════════════════════════════ */

.kb-board[b-4yh0zcgprf] {
    display: flex;
    align-items: flex-start;
    gap: 0;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0.25rem 0.25rem 1rem;
    min-height: 55vh;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
}

/* ── Flow connector between columns ── */

.kb-connector[b-4yh0zcgprf] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 1.25rem;
    color: var(--crm-border-2);
    font-size: 0.65rem;
    opacity: 0.7;
    align-self: stretch;
    padding-top: 2.5rem;
}

/* Subtle scrollbar that matches the design system */
.kb-board[b-4yh0zcgprf]::-webkit-scrollbar {
    height: 6px;
}

.kb-board[b-4yh0zcgprf]::-webkit-scrollbar-track {
    background: transparent;
}

.kb-board[b-4yh0zcgprf]::-webkit-scrollbar-thumb {
    background: var(--crm-border-2);
    border-radius: 3px;
}

.kb-board[b-4yh0zcgprf]::-webkit-scrollbar-thumb:hover {
    background: var(--crm-text-3);
}
/* /Shared/KanbanCard.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   KanbanCard — individual lead card in the pipeline
   ═══════════════════════════════════════════════════════ */

.kk-card[b-gzik5odgf6] {
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-left: 3px solid var(--crm-border-2);
    border-radius: var(--crm-r-sm);
    padding: 0.65rem 0.75rem;
    cursor: grab;
    user-select: none;
    position: relative;
    overflow: hidden;
    transition: transform var(--crm-mid) var(--crm-ease),
                box-shadow var(--crm-mid) var(--crm-ease),
                border-color var(--crm-fast) ease,
                opacity var(--crm-fast) ease;
}

/* ── Temperature left stripe ── */

.kk-card.kk-temp-hot[b-gzik5odgf6] { border-left-color: #ef4444; }
.kk-card.kk-temp-warm[b-gzik5odgf6] { border-left-color: #f59e0b; }
.kk-card.kk-temp-cold[b-gzik5odgf6] { border-left-color: #60a5fa; }

/* ── Stale lead glow ── */

.kk-card.kk-stale[b-gzik5odgf6] {
    box-shadow: inset 3px 0 0 0 rgba(245, 158, 11, 0.15),
                0 0 0 1px rgba(245, 158, 11, 0.08);
}

.kk-card:hover[b-gzik5odgf6] {
    border-color: var(--crm-border-2);
    box-shadow: var(--crm-shadow-sm);
    transform: translateY(-2px);
}

.kk-card:active[b-gzik5odgf6] {
    cursor: grabbing;
}

/* Dragging state */
.kk-card.kk-dragging[b-gzik5odgf6] {
    opacity: 0.35;
    border-style: dashed;
    border-color: var(--crm-navy-400);
    transform: scale(0.97);
}

/* ── Top row: name + score ── */

.kk-top[b-gzik5odgf6] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.4rem;
    margin-bottom: 0.15rem;
}

.kk-name[b-gzik5odgf6] {
    font-weight: 600;
    font-size: 0.82rem;
    color: var(--crm-text);
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* ── Company ── */

.kk-company[b-gzik5odgf6] {
    font-size: 0.72rem;
    color: var(--crm-text-3);
    margin-bottom: 0.35rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.kk-company-icon[b-gzik5odgf6] {
    font-size: 0.62rem;
    opacity: 0.6;
    flex-shrink: 0;
}

/* ── Meta rows ── */

.kk-meta[b-gzik5odgf6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    margin-bottom: 0.3rem;
    flex-wrap: wrap;
}

.kk-meta-left[b-gzik5odgf6] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.kk-meta-right[b-gzik5odgf6] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.kk-value[b-gzik5odgf6] {
    font-weight: 600;
    font-size: 0.78rem;
    color: var(--crm-navy);
    font-variant-numeric: tabular-nums;
}

.kk-days[b-gzik5odgf6] {
    display: inline-flex;
    align-items: baseline;
    gap: 1px;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--crm-text-3);
    padding: 0.1rem 0.4rem;
    border-radius: 99px;
    background: var(--crm-bg);
    font-variant-numeric: tabular-nums;
}

.kk-days-unit[b-gzik5odgf6] {
    font-size: 0.58rem;
    font-weight: 500;
    opacity: 0.7;
}

.kk-days-warn[b-gzik5odgf6] {
    color: #dc2626;
    background: #fef2f2;
}

/* ── Follow-up pill ── */

.kk-followup[b-gzik5odgf6] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-size: 0.62rem;
    font-weight: 600;
    color: var(--crm-text-3);
    padding: 0.1rem 0.35rem;
    border-radius: 99px;
    background: var(--crm-bg);
}

.kk-followup-overdue[b-gzik5odgf6] {
    color: #dc2626;
    background: #fef2f2;
}

.kk-followup-soon[b-gzik5odgf6] {
    color: #d97706;
    background: #fffbeb;
}

/* ── Footer: avatar + owner name ── */

.kk-footer[b-gzik5odgf6] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding-top: 0.3rem;
    border-top: 1px solid var(--crm-border);
}

.kk-avatar[b-gzik5odgf6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 50%;
    background: var(--crm-navy);
    color: var(--crm-white);
    font-size: 0.55rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    flex-shrink: 0;
}

.kk-owner[b-gzik5odgf6] {
    font-size: 0.68rem;
    color: var(--crm-text-3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Quick action bar (hover) ── */

.kk-actions[b-gzik5odgf6] {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    padding: 0.35rem;
    background: linear-gradient(transparent, var(--crm-white) 20%);
    opacity: 0;
    transform: translateY(4px);
    transition: opacity var(--crm-fast) ease,
                transform var(--crm-fast) ease;
    pointer-events: none;
}

.kk-card:hover .kk-actions[b-gzik5odgf6] {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.kk-action[b-gzik5odgf6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    border: 1px solid var(--crm-border-2);
    background: var(--crm-white);
    color: var(--crm-text-2);
    font-size: 0.68rem;
    cursor: pointer;
    transition: all var(--crm-fast) ease;
}

.kk-action:hover[b-gzik5odgf6] {
    background: var(--crm-navy);
    color: var(--crm-white);
    border-color: var(--crm-navy);
}
/* /Shared/KanbanColumn.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   KanbanColumn — single pipeline stage lane
   ═══════════════════════════════════════════════════════ */

.kc-column[b-gv8oqg5or8] {
    min-width: 280px;
    max-width: 300px;
    flex: 0 0 280px;
    display: flex;
    flex-direction: column;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-top: 4px solid var(--kc-accent, var(--crm-teal));
    border-radius: var(--crm-r);
    transition: border-color var(--crm-mid) var(--crm-ease),
                box-shadow var(--crm-mid) var(--crm-ease),
                background-color var(--crm-mid) var(--crm-ease),
                transform var(--crm-mid) var(--crm-ease);
    max-height: calc(100vh - 220px);
    position: relative;
}

/* ── Drop target state ── */

.kc-column.kc-drop-target[b-gv8oqg5or8] {
    border-color: var(--crm-teal);
    border-top-color: var(--kc-accent, var(--crm-teal));
    box-shadow: inset 0 0 0 1px var(--crm-teal),
                0 0 24px var(--crm-teal-glow);
    background: rgba(0, 197, 168, 0.03);
    transform: scale(1.01);
    animation: kc-pulse-b-gv8oqg5or8 1.5s ease-in-out infinite;
}

@keyframes kc-pulse-b-gv8oqg5or8 {
    0%, 100% { box-shadow: inset 0 0 0 1px var(--crm-teal), 0 0 20px var(--crm-teal-glow); }
    50% { box-shadow: inset 0 0 0 1px var(--crm-teal), 0 0 32px rgba(0, 197, 168, 0.28); }
}

/* ── Terminal stage accents ── */

.kc-column.kc-won .kc-stage-name[b-gv8oqg5or8] { color: #16a34a; }
.kc-column.kc-lost .kc-stage-name[b-gv8oqg5or8] { color: #dc2626; }

/* ── Header ── */

.kc-header[b-gv8oqg5or8] {
    padding: 0.75rem 0.875rem 0.625rem;
    border-bottom: 1px solid var(--crm-border);
    flex-shrink: 0;
}

.kc-header-top[b-gv8oqg5or8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.kc-title-group[b-gv8oqg5or8] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
}

.kc-stage-name[b-gv8oqg5or8] {
    font-family: 'Outfit', sans-serif;
    font-weight: 600;
    font-size: 0.8rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--crm-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.kc-count[b-gv8oqg5or8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4rem;
    height: 1.4rem;
    padding: 0 0.4rem;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--crm-text-2);
    background: var(--crm-bg);
    border-radius: 99px;
    letter-spacing: 0.01em;
    flex-shrink: 0;
}

/* ── Ring probability indicator ── */

.kc-ring[b-gv8oqg5or8] {
    flex-shrink: 0;
}

.kc-value[b-gv8oqg5or8] {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--crm-navy);
    margin-top: 0.3rem;
    font-variant-numeric: tabular-nums;
}

.kc-weighted[b-gv8oqg5or8] {
    font-size: 0.68rem;
    font-weight: 500;
    color: var(--crm-text-3);
    margin-top: 0.1rem;
    font-variant-numeric: tabular-nums;
    font-style: italic;
}

/* ── Card body / scroll area ── */

.kc-body[b-gv8oqg5or8] {
    flex: 1;
    overflow-y: auto;
    padding: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.kc-body[b-gv8oqg5or8]::-webkit-scrollbar {
    width: 4px;
}

.kc-body[b-gv8oqg5or8]::-webkit-scrollbar-track {
    background: transparent;
}

.kc-body[b-gv8oqg5or8]::-webkit-scrollbar-thumb {
    background: var(--crm-border);
    border-radius: 2px;
}

/* ── Drop placeholder ── */

.kc-drop-placeholder[b-gv8oqg5or8] {
    min-height: 56px;
    border: 2px dashed var(--crm-teal);
    border-radius: var(--crm-r-sm);
    background: var(--crm-teal-50, rgba(0, 197, 168, 0.06));
    animation: kc-placeholder-fade-b-gv8oqg5or8 0.8s ease-in-out infinite alternate;
}

@keyframes kc-placeholder-fade-b-gv8oqg5or8 {
    from { opacity: 0.4; }
    to { opacity: 0.8; }
}

/* ── Empty state ── */

.kc-empty[b-gv8oqg5or8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: 90px;
    color: var(--crm-text-3);
    font-size: 0.74rem;
    border: 2px dashed var(--crm-border);
    border-radius: var(--crm-r-sm);
    margin: 0.25rem;
    padding: 0.75rem;
    text-align: center;
}

.kc-empty-icon[b-gv8oqg5or8] {
    font-size: 1.1rem;
    opacity: 0.5;
}
/* /Shared/LabelMultiSelectPicker.razor.rz.scp.css */
.lmsp-wrapper[b-wggnf5nfwl] {
    margin-bottom: 0.5rem;
}

.lmsp-row[b-wggnf5nfwl] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.lmsp-label[b-wggnf5nfwl] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #6B7280;
    margin-right: 4px;
}

/* ── Chips ─────────────────────────────────────────────────────────── */

.lmsp-chip[b-wggnf5nfwl] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    font-size: 0.78rem;
    line-height: 1.2;
    border-radius: 999px;
    border: 1px solid #E5E7EB;
    background: #FFFFFF;
    color: #374151;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s, color 0.12s;
}

.lmsp-chip:hover[b-wggnf5nfwl] {
    background: #F3F4F6;
}

.lmsp-chip-include[b-wggnf5nfwl] {
    background: #ECFDF5;
    color: #065F46;
    border-color: #6EE7B7;
}

.lmsp-chip-include:hover[b-wggnf5nfwl] {
    background: #D1FAE5;
}

.lmsp-chip-exclude[b-wggnf5nfwl] {
    background: #FEF2F2;
    color: #991B1B;
    border-color: #FCA5A5;
}

.lmsp-chip-exclude:hover[b-wggnf5nfwl] {
    background: #FEE2E2;
}

.lmsp-chip-name[b-wggnf5nfwl] {
    font-weight: 500;
}

/* ── More-roles button + popover anchor ───────────────────────────── */

.lmsp-more-wrap[b-wggnf5nfwl] {
    position: relative;
}

.lmsp-more-btn[b-wggnf5nfwl] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    font-size: 0.78rem;
    line-height: 1.2;
    border-radius: 999px;
    border: 1px dashed #94A3B8;
    background: transparent;
    color: #4338CA;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s;
}

.lmsp-more-btn:hover[b-wggnf5nfwl] {
    background: #EEF2FF;
    border-color: #6366F1;
}

/* ── Popover ──────────────────────────────────────────────────────── */

.lmsp-popover[b-wggnf5nfwl] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    min-width: 320px;
    max-width: 420px;
    background: #FFFFFF;
    border: 1px solid #E5E7EB;
    border-radius: 10px;
    box-shadow: 0 14px 40px rgba(15, 23, 42, 0.18);
    z-index: 100;
    display: flex;
    flex-direction: column;
    max-height: 480px;
}

.lmsp-popover-search[b-wggnf5nfwl] {
    position: relative;
    border-bottom: 1px solid #E5E7EB;
    padding: 8px 36px 8px 32px;
    display: flex;
    align-items: center;
}

.lmsp-popover-search > .bi-search[b-wggnf5nfwl] {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #94A3B8;
    font-size: 0.85rem;
}

.lmsp-popover-search > input[b-wggnf5nfwl] {
    width: 100%;
    border: none;
    outline: none;
    font-size: 0.85rem;
    color: #111827;
}

.lmsp-search-clear[b-wggnf5nfwl] {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    color: #94A3B8;
    cursor: pointer;
    font-size: 0.9rem;
    line-height: 1;
    padding: 2px 4px;
    border-radius: 4px;
}

.lmsp-search-clear:hover[b-wggnf5nfwl] {
    background: #F3F4F6;
    color: #1F2937;
}

.lmsp-popover-list[b-wggnf5nfwl] {
    overflow-y: auto;
    flex: 1;
    padding: 4px 0;
}

.lmsp-group-header[b-wggnf5nfwl] {
    padding: 6px 14px 2px;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #94A3B8;
    font-weight: 600;
}

.lmsp-row[b-wggnf5nfwl] {
    /* Note: a sibling .lmsp-row class above is used for the outer chip row.
       Inside the popover, .lmsp-popover-list .lmsp-row scopes to popover rows. */
}

.lmsp-popover-list .lmsp-row[b-wggnf5nfwl] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    width: 100%;
    background: transparent;
    border: none;
    text-align: left;
    cursor: pointer;
    transition: background 0.1s;
    font-size: 0.85rem;
    color: #1F2937;
}

.lmsp-popover-list .lmsp-row:hover[b-wggnf5nfwl] {
    background: #F3F4F6;
}

.lmsp-popover-list .lmsp-row-active[b-wggnf5nfwl] {
    background: #F5F3FF;
}

.lmsp-row-state[b-wggnf5nfwl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 999px;
    border: 1px solid #D1D5DB;
    color: #9CA3AF;
    font-size: 0.7rem;
    flex-shrink: 0;
}

.lmsp-row-state-include[b-wggnf5nfwl] {
    background: #10B981;
    border-color: #10B981;
    color: #FFFFFF;
}

.lmsp-row-state-exclude[b-wggnf5nfwl] {
    background: #EF4444;
    border-color: #EF4444;
    color: #FFFFFF;
}

.lmsp-row-name[b-wggnf5nfwl] {
    flex: 1;
    display: inline-flex;
    align-items: center;
}

.lmsp-row-count[b-wggnf5nfwl] {
    font-size: 0.7rem;
    color: #94A3B8;
    background: #F3F4F6;
    border-radius: 999px;
    padding: 1px 8px;
    min-width: 24px;
    text-align: center;
}

.lmsp-empty[b-wggnf5nfwl] {
    padding: 14px;
    color: #6B7280;
    font-size: 0.85rem;
    text-align: center;
}

.lmsp-popover-footer[b-wggnf5nfwl] {
    border-top: 1px solid #E5E7EB;
    padding: 6px 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #FAFAFB;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
}

.lmsp-popover-hint[b-wggnf5nfwl] {
    font-size: 0.7rem;
    color: #94A3B8;
}

/* ── Match-mode toggle + clear ────────────────────────────────────── */

.lmsp-match-toggle[b-wggnf5nfwl] {
    margin-left: 6px;
}

.lmsp-clear[b-wggnf5nfwl] {
    font-size: 0.78rem;
    padding: 0 6px;
    color: #6B7280;
}

.lmsp-clear:hover[b-wggnf5nfwl] {
    color: #1F2937;
}
/* /Shared/LeadAccountPicker.razor.rz.scp.css */
.lpk-container[b-9ascilw53y] {
    position: relative;
}

/* ── Tabs ─────────────────────────────────── */
.lpk-tabs[b-9ascilw53y] {
    display: flex;
    gap: 4px;
    margin-bottom: 10px;
}

.lpk-tab[b-9ascilw53y] {
    background: none;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    padding: 4px 12px;
    font-size: 0.8rem;
    color: var(--crm-text-3);
    cursor: pointer;
    transition: all var(--crm-fast) ease;
}

.lpk-tab.active[b-9ascilw53y] {
    background: var(--crm-navy);
    color: white;
    border-color: var(--crm-navy);
}

.lpk-tab:hover:not(.active)[b-9ascilw53y] {
    background: var(--crm-bg);
}

/* ── Search ───────────────────────────────── */
.lpk-search-wrap[b-9ascilw53y] {
    position: relative;
}

.lpk-search-icon[b-9ascilw53y] {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.82rem;
    opacity: 0.45;
    pointer-events: none;
}

.lpk-search-input[b-9ascilw53y] {
    padding-left: 32px !important;
    font-size: 0.875rem;
    border-color: var(--crm-border);
    transition: border-color var(--crm-fast) ease, box-shadow var(--crm-fast) ease;
}

.lpk-search-input:focus[b-9ascilw53y] {
    border-color: var(--crm-teal);
    box-shadow: 0 0 0 3px var(--crm-teal-glow);
}

.lpk-spinner[b-9ascilw53y] {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    border: 2px solid var(--crm-border);
    border-top-color: var(--crm-teal);
    border-radius: 50%;
    animation: lpk-spin-b-9ascilw53y 0.6s linear infinite;
}

@keyframes lpk-spin-b-9ascilw53y {
    to { transform: translateY(-50%) rotate(360deg); }
}

/* ── Results ──────────────────────────────── */
.lpk-results[b-9ascilw53y] {
    max-height: 200px;
    overflow-y: auto;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    background: white;
    margin-top: 6px;
    box-shadow: var(--crm-shadow-sm);
}

.lpk-result-item[b-9ascilw53y] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    cursor: pointer;
    border-bottom: 1px solid var(--crm-border);
    transition: background var(--crm-fast) ease;
}

.lpk-result-item:last-child[b-9ascilw53y] {
    border-bottom: none;
}

.lpk-result-item:hover[b-9ascilw53y] {
    background: var(--crm-teal-50);
}

.lpk-result-avatar[b-9ascilw53y] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--crm-navy);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 600;
    flex-shrink: 0;
    text-transform: uppercase;
}

.lpk-result-avatar.apk-acct[b-9ascilw53y] {
    border-radius: var(--crm-r-sm);
    background: var(--crm-navy-600);
}

.lpk-result-info[b-9ascilw53y] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.lpk-result-name[b-9ascilw53y] {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--crm-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lpk-result-subtitle[b-9ascilw53y] {
    font-size: 0.75rem;
    color: var(--crm-text-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Selected state ───────────────────────── */
.lpk-selected[b-9ascilw53y] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: var(--crm-teal-50);
    border: 1px solid color-mix(in srgb, var(--crm-teal) 30%, transparent);
    border-radius: var(--crm-r-sm);
}

.lpk-selected-avatar[b-9ascilw53y] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--crm-teal);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 600;
    flex-shrink: 0;
    text-transform: uppercase;
}

.lpk-selected-avatar.apk-acct[b-9ascilw53y] {
    border-radius: var(--crm-r-sm);
}

.lpk-selected-info[b-9ascilw53y] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.lpk-selected-name[b-9ascilw53y] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--crm-text);
}

.lpk-selected-detail[b-9ascilw53y] {
    font-size: 0.75rem;
    color: var(--crm-text-3);
}

.lpk-clear-btn[b-9ascilw53y] {
    background: none;
    border: none;
    color: var(--crm-text-3);
    cursor: pointer;
    font-size: 0.85rem;
    padding: 4px;
    border-radius: 4px;
    line-height: 1;
    transition: color var(--crm-fast) ease, background var(--crm-fast) ease;
}

.lpk-clear-btn:hover[b-9ascilw53y] {
    color: var(--crm-text);
    background: rgba(0,0,0,0.06);
}

/* ── Suggestions ──────────────────────────── */
.apk-suggestions[b-9ascilw53y] {
    margin-bottom: 12px;
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, var(--crm-teal) 25%, var(--crm-border));
    border-radius: var(--crm-r-sm);
    background: color-mix(in srgb, var(--crm-teal) 4%, white);
}

.apk-suggestion-label[b-9ascilw53y] {
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-teal-600);
    margin-bottom: 6px;
}

.apk-suggestion-item[b-9ascilw53y] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    cursor: pointer;
    border-radius: 4px;
    transition: background var(--crm-fast) ease;
}

.apk-suggestion-item:hover[b-9ascilw53y] {
    background: var(--crm-teal-50);
}

/* ── No results / create link ─────────────── */
.lpk-no-results[b-9ascilw53y] {
    font-size: 0.8rem;
    color: var(--crm-text-3);
    margin: 10px 0 0;
}

.lpk-link-btn[b-9ascilw53y] {
    background: none;
    border: none;
    color: var(--crm-teal-600);
    cursor: pointer;
    font-size: inherit;
    padding: 0;
    text-decoration: underline;
}

.lpk-link-btn:hover[b-9ascilw53y] {
    color: var(--crm-teal);
}

/* ── Create actions ───────────────────────── */
.lpk-create-actions[b-9ascilw53y] {
    display: flex;
    justify-content: flex-end;
    margin-top: 10px;
}
/* /Shared/LeadContactPicker.razor.rz.scp.css */
.lpk-container[b-mtoa0lse7f] {
    position: relative;
}

/* ── Tabs ─────────────────────────────────── */
.lpk-tabs[b-mtoa0lse7f] {
    display: flex;
    gap: 4px;
    margin-bottom: 10px;
}

.lpk-tab[b-mtoa0lse7f] {
    background: none;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    padding: 4px 12px;
    font-size: 0.8rem;
    color: var(--crm-text-3);
    cursor: pointer;
    transition: all var(--crm-fast) ease;
}

.lpk-tab.active[b-mtoa0lse7f] {
    background: var(--crm-navy);
    color: white;
    border-color: var(--crm-navy);
}

.lpk-tab:hover:not(.active)[b-mtoa0lse7f] {
    background: var(--crm-bg);
}

/* ── Search ───────────────────────────────── */
.lpk-search-wrap[b-mtoa0lse7f] {
    position: relative;
}

.lpk-search-icon[b-mtoa0lse7f] {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.82rem;
    opacity: 0.45;
    pointer-events: none;
}

.lpk-search-input[b-mtoa0lse7f] {
    padding-left: 32px !important;
    font-size: 0.875rem;
    border-color: var(--crm-border);
    transition: border-color var(--crm-fast) ease, box-shadow var(--crm-fast) ease;
}

.lpk-search-input:focus[b-mtoa0lse7f] {
    border-color: var(--crm-teal);
    box-shadow: 0 0 0 3px var(--crm-teal-glow);
}

.lpk-spinner[b-mtoa0lse7f] {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    border: 2px solid var(--crm-border);
    border-top-color: var(--crm-teal);
    border-radius: 50%;
    animation: lpk-spin-b-mtoa0lse7f 0.6s linear infinite;
}

@keyframes lpk-spin-b-mtoa0lse7f {
    to { transform: translateY(-50%) rotate(360deg); }
}

/* ── Results ──────────────────────────────── */
.lpk-results[b-mtoa0lse7f] {
    max-height: 200px;
    overflow-y: auto;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    background: white;
    margin-top: 6px;
    box-shadow: var(--crm-shadow-sm);
}

.lpk-result-item[b-mtoa0lse7f] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    cursor: pointer;
    border-bottom: 1px solid var(--crm-border);
    transition: background var(--crm-fast) ease;
}

.lpk-result-item:last-child[b-mtoa0lse7f] {
    border-bottom: none;
}

.lpk-result-item:hover[b-mtoa0lse7f] {
    background: var(--crm-teal-50);
}

.lpk-result-avatar[b-mtoa0lse7f] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--crm-navy);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 600;
    flex-shrink: 0;
    text-transform: uppercase;
}

.lpk-result-info[b-mtoa0lse7f] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.lpk-result-name[b-mtoa0lse7f] {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--crm-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lpk-result-subtitle[b-mtoa0lse7f] {
    font-size: 0.75rem;
    color: var(--crm-text-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Selected state ───────────────────────── */
.lpk-selected[b-mtoa0lse7f] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: var(--crm-teal-50);
    border: 1px solid color-mix(in srgb, var(--crm-teal) 30%, transparent);
    border-radius: var(--crm-r-sm);
}

.lpk-selected-avatar[b-mtoa0lse7f] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--crm-teal);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 600;
    flex-shrink: 0;
    text-transform: uppercase;
}

.lpk-selected-info[b-mtoa0lse7f] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.lpk-selected-name[b-mtoa0lse7f] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--crm-text);
}

.lpk-selected-detail[b-mtoa0lse7f] {
    font-size: 0.75rem;
    color: var(--crm-text-3);
}

.lpk-clear-btn[b-mtoa0lse7f] {
    background: none;
    border: none;
    color: var(--crm-text-3);
    cursor: pointer;
    font-size: 0.85rem;
    padding: 4px;
    border-radius: 4px;
    line-height: 1;
    transition: color var(--crm-fast) ease, background var(--crm-fast) ease;
}

.lpk-clear-btn:hover[b-mtoa0lse7f] {
    color: var(--crm-text);
    background: rgba(0,0,0,0.06);
}

/* ── No results / create link ─────────────── */
.lpk-no-results[b-mtoa0lse7f] {
    font-size: 0.8rem;
    color: var(--crm-text-3);
    margin: 10px 0 0;
}

.lpk-link-btn[b-mtoa0lse7f] {
    background: none;
    border: none;
    color: var(--crm-teal-600);
    cursor: pointer;
    font-size: inherit;
    padding: 0;
    text-decoration: underline;
}

.lpk-link-btn:hover[b-mtoa0lse7f] {
    color: var(--crm-teal);
}

/* ── Create actions ───────────────────────── */
.lpk-create-actions[b-mtoa0lse7f] {
    display: flex;
    justify-content: flex-end;
    margin-top: 10px;
}
/* /Shared/LeadScoreBadge.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   LeadScoreBadge — numeric score with color coding
   ═══════════════════════════════════════════════════════ */

.ls-badge[b-v4z4v1oz6b] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.6rem;
    height: 1.25rem;
    padding: 0 0.35rem;
    font-size: 0.65rem;
    font-weight: 700;
    border-radius: 99px;
    letter-spacing: 0.01em;
    font-variant-numeric: tabular-nums;
    flex-shrink: 0;
    line-height: 1;
}

.ls-high[b-v4z4v1oz6b] {
    color: #15803d;
    background: #dcfce7;
}

.ls-mid[b-v4z4v1oz6b] {
    color: #a16207;
    background: #fef9c3;
}

.ls-low[b-v4z4v1oz6b] {
    color: #dc2626;
    background: #fef2f2;
}
/* /Shared/ListFilterAddMenu.razor.rz.scp.css */
/* "Add a role" — a dashed seat tag that opens a short searchable list. */

.lfam[b-z7lqkt5fi5] {
    position: relative;
    display: inline-flex;
}

.lfam-trigger[b-z7lqkt5fi5] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.65rem;
    font-size: 0.8125rem;
    line-height: 1.25;
    border-radius: 6px;
    border: 1px dashed var(--crm-navy-400, #3A5A96);
    background: transparent;
    color: var(--crm-navy-600, #1E3D70);
    cursor: pointer;
    transition: background-color 0.12s ease, border-color 0.12s ease;
}

.lfam-trigger:hover:not(:disabled)[b-z7lqkt5fi5],
.lfam-trigger[aria-expanded="true"][b-z7lqkt5fi5] {
    background: rgba(58, 90, 150, 0.08);
    border-style: solid;
}

.lfam-trigger:focus-visible[b-z7lqkt5fi5] {
    outline: 2px solid var(--bs-primary, #0d6efd);
    outline-offset: 2px;
}

.lfam-trigger:disabled[b-z7lqkt5fi5] {
    opacity: 0.5;
    cursor: default;
}

.lfam-trigger .spinner-border[b-z7lqkt5fi5] {
    width: 0.8rem;
    height: 0.8rem;
    border-width: 0.12em;
}

.lfam-scrim[b-z7lqkt5fi5] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
    border: 0;
    padding: 0;
    cursor: default;
}

.lfam-panel[b-z7lqkt5fi5] {
    position: absolute;
    top: calc(100% + 0.35rem);
    left: 0;
    z-index: 1041;
    width: min(20rem, calc(100vw - 2rem));
    background: var(--crm-white, #fff);
    border: 1px solid rgba(13, 36, 71, 0.12);
    border-radius: 10px;
    box-shadow: 0 10px 28px rgba(13, 36, 71, 0.16);
    overflow: hidden;
}

.lfam-search[b-z7lqkt5fi5] {
    position: relative;
    padding: 0.55rem 0.55rem 0.4rem;
    border-bottom: 1px solid rgba(13, 36, 71, 0.07);
}

.lfam-search > i[b-z7lqkt5fi5] {
    position: absolute;
    left: 1.05rem;
    top: 50%;
    transform: translateY(-40%);
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #6c757d);
    pointer-events: none;
}

.lfam-search input[b-z7lqkt5fi5] {
    padding-left: 1.65rem;
}

.lfam-list[b-z7lqkt5fi5] {
    max-height: 16rem;
    overflow-y: auto;
    padding: 0.3rem;
}

.lfam-item[b-z7lqkt5fi5] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    text-align: left;
    border: 0;
    background: transparent;
    padding: 0.4rem 0.55rem;
    border-radius: 6px;
}

.lfam-item:hover[b-z7lqkt5fi5],
.lfam-item:focus-visible[b-z7lqkt5fi5] {
    background: rgba(58, 90, 150, 0.08);
    outline: none;
}

.lfam-item-label[b-z7lqkt5fi5] {
    font-size: 0.84rem;
    color: var(--crm-navy, #0D2447);
}

.lfam-caption[b-z7lqkt5fi5] {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--crm-navy-400, #3A5A96);
    padding: 0.45rem 0.55rem 0.15rem;
}

.lfam-caption:not(:first-child)[b-z7lqkt5fi5] {
    margin-top: 0.25rem;
    border-top: 1px solid rgba(13, 36, 71, 0.07);
    padding-top: 0.55rem;
}

.lfam-empty[b-z7lqkt5fi5] {
    font-size: 0.8rem;
    color: var(--bs-secondary-color, #6c757d);
    padding: 0.5rem 0.55rem;
}

.lfam-foot[b-z7lqkt5fi5] {
    font-size: 0.72rem;
    color: var(--bs-secondary-color, #6c757d);
    padding: 0.45rem 0.75rem 0.55rem;
    border-top: 1px solid rgba(13, 36, 71, 0.07);
    background: rgba(13, 36, 71, 0.02);
}
/* /Shared/ListFilterBar.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   The arranged filters. No rules between rows: every chip row
   hangs its label in one gutter, so the column itself is the
   structure, and rows part by rhythm alone. A row that is
   narrowing the list lights up — a teal rail (the arranger's
   "live" colour) and a wash that fades out across it — so the
   panel reads, at a glance, which questions are being asked.
   ═══════════════════════════════════════════════════════ */

.lfb-group[b-cel8vtm1jw],
.lfb-section-row[b-cel8vtm1jw] {
    --lfb-label-w: 7rem;
    --lfb-live: var(--crm-teal, #00C5A8);
    --lfb-live-ink: var(--crm-teal-600, #009E88);
    position: relative;
}

.lfb-row + .lfb-wide[b-cel8vtm1jw],
.lfb-wide + .lfb-row[b-cel8vtm1jw] {
    margin-top: 0.55rem;
}

.lfb-row:not(:last-child)[b-cel8vtm1jw] {
    margin-bottom: 0.15rem;
}

/* A chip row: label in the gutter, chips wrapping in their own column. */
.lfb-wide[b-cel8vtm1jw],
.lfb-section-row[b-cel8vtm1jw] {
    padding: 0.3rem 0.5rem;
    margin-inline: -0.5rem;
    border-radius: 8px;
    transition: background-color 0.15s ease;
}

.lfb-wide + .lfb-wide[b-cel8vtm1jw] {
    margin-top: 0.1rem;
}

.lfb-wide:hover[b-cel8vtm1jw],
.lfb-section-row:hover[b-cel8vtm1jw] {
    background-color: rgba(13, 36, 71, 0.028);
}

.lfb-group.lfb-wide[b-cel8vtm1jw]  .cf-chipbar:has(> .cf-chips),
.lfb-section[b-cel8vtm1jw]  .cf-chipbar:has(> .cf-chips) {
    display: grid;
    grid-template-columns: var(--lfb-label-w) minmax(0, 1fr);
    column-gap: 0.75rem;
    align-items: start;
}

.lfb-group.lfb-wide[b-cel8vtm1jw]  .cf-chipbar > .cf-label,
.lfb-section[b-cel8vtm1jw]  .cf-chipbar > .cf-label {
    position: relative;
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    /* Tight leading, centred on the first line of chips, so a two-line label stays compact. */
    line-height: 1.25;
    padding-block: 0.3rem;
    color: var(--crm-navy-600, #1E3D70);
    overflow-wrap: anywhere;
}

.lfb-group.lfb-wide[b-cel8vtm1jw]  .cf-chipbar > .cf-chips,
.lfb-section[b-cel8vtm1jw]  .cf-chipbar > .cf-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
    min-width: 0;
}

/* Live: this row is narrowing the list. */
.lfb-wide.lfb-active[b-cel8vtm1jw],
.lfb-section-row.lfb-active[b-cel8vtm1jw] {
    background-image: linear-gradient(90deg, rgba(0, 197, 168, 0.1), rgba(0, 197, 168, 0) 60%);
    box-shadow: inset 3px 0 0 var(--lfb-live);
}

.lfb-group.lfb-active[b-cel8vtm1jw]  .cf-chipbar > .cf-label,
.lfb-section-row.lfb-active[b-cel8vtm1jw]  .cf-chipbar > .cf-label,
.lfb-chiprow.lfb-active > .cf-label[b-cel8vtm1jw] {
    color: var(--lfb-live-ink);
}


.lfb-row[b-cel8vtm1jw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: flex-start;
}

.lfb-compact[b-cel8vtm1jw] {
    flex: 0 1 15rem;
    min-width: 11rem;
    position: relative;
}

/* Off the bar but set: shown so the list never narrows out of sight, and said plainly. */
.lfb-from-link[b-cel8vtm1jw] {
    background: var(--crm-teal-50, rgba(0, 197, 168, 0.08));
    border-radius: 8px;
    outline: 1px dashed rgba(0, 197, 168, 0.45);
    outline-offset: 2px;
    padding: 0.35rem 0.45rem 0.25rem;
}

.lfb-link-tag[b-cel8vtm1jw] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-size: 0.7rem;
    color: var(--crm-teal-600, #009E88);
    margin-bottom: 0.2rem;
}

/* ── A group's own section (the Accounts page's people filters) ──
   These ask "does someone hold this seat at the account?" — has someone,
   or nobody — rather than "what is this account?". A navy frame and rail
   set them apart, the heading says how they work once, and their chips
   are squarer seat tags rather than the round value pills above. */

.lfb-section[b-cel8vtm1jw] {
    margin-top: 0.85rem;
    padding: 0.7rem 0.85rem 0.75rem;
    border-radius: 10px;
    background: rgba(13, 36, 71, 0.025);
    border: 1px solid rgba(13, 36, 71, 0.08);
    box-shadow: inset 3px 0 0 var(--crm-navy-400, #3A5A96);
}

.lfb-section-head[b-cel8vtm1jw] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.25rem 0.6rem;
    margin-bottom: 0.55rem;
}

.lfb-section-head > i[b-cel8vtm1jw] {
    color: var(--crm-navy-400, #3A5A96);
    font-size: 0.95rem;
    align-self: center;
}

.lfb-section-title[b-cel8vtm1jw] {
    font-weight: 650;
    font-size: 0.875rem;
    color: var(--crm-navy-700, #162F5A);
}

.lfb-section-hint[b-cel8vtm1jw] {
    font-size: 0.76rem;
    color: var(--bs-secondary-color, #6c757d);
}

.lfb-section-row + .lfb-section-row[b-cel8vtm1jw] {
    margin-top: 0.1rem;
}

.lfb-section-row[b-cel8vtm1jw] {
    padding: 0.25rem 0.45rem;
    margin-inline: -0.45rem;
}

/* One chip column down the whole panel: the section's padding and border come off its gutter. */
.lfb-section .lfb-section-row[b-cel8vtm1jw] {
    --lfb-label-w: calc(7rem - 0.85rem - 1px);
}

.lfb-inline[b-cel8vtm1jw] {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
}

.lfb-inline--from-link[b-cel8vtm1jw] {
    border-radius: 7px;
    outline: 1px dashed rgba(0, 197, 168, 0.55);
    outline-offset: 2px;
}

.lfb-inline-link[b-cel8vtm1jw] {
    color: var(--crm-teal-600, #009E88);
    font-size: 0.8rem;
}

/* Seat tags: the same three states as every chip, in a squarer shape. */
.lfb-section[b-cel8vtm1jw]  .cf-chip {
    border-radius: 6px;
}

.lfb-section[b-cel8vtm1jw]  .cf-chip-neutral {
    background: var(--crm-white, #fff);
}

/* "No CEO" says it in words; a strike-through on top would read as a double negative. */
.lfb-section[b-cel8vtm1jw]  .cf-chip-exclude {
    text-decoration: none;
    border-style: dashed;
}

@media (max-width: 576px) {
    .lfb-compact[b-cel8vtm1jw] { flex: 1 1 100%; }

    /* On a phone the label sits above its chips. */
    .lfb-group.lfb-wide[b-cel8vtm1jw]  .cf-chipbar:has(> .cf-chips),
    .lfb-section[b-cel8vtm1jw]  .cf-chipbar:has(> .cf-chips) {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 0.2rem;
    }

    .lfb-group.lfb-wide[b-cel8vtm1jw]  .cf-chipbar > .cf-label,
    .lfb-section[b-cel8vtm1jw]  .cf-chipbar > .cf-label {
        padding-block: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lfb-wide[b-cel8vtm1jw], .lfb-section-row[b-cel8vtm1jw] { transition: none; }
}

@media (max-width: 576px) {
    .lfb-section[b-cel8vtm1jw] { padding: 0.6rem 0.65rem 0.65rem; }
    .lfb-section-hint[b-cel8vtm1jw] { flex-basis: 100%; }
}
/* /Shared/ListFilters.razor.rz.scp.css */
.lf-wrapper[b-nvfuc88lu7] {
    border: 1px solid var(--bs-border-color-translucent, #dee2e6);
    border-radius: 8px;
    background: var(--bs-body-bg, #fff);
    margin-bottom: 1rem;
    /* Default overflow:hidden so the body's white background gets clipped
       to the rounded corners during the slide animation. We flip to
       visible after the open transition so child popups (FilterSelect's
       absolutely-positioned menu) can escape this clipping context. */
    overflow: hidden;
}

.lf-wrapper--open[b-nvfuc88lu7] {
    background: var(--bs-tertiary-bg, #f8f9fa);
    /* Delay the overflow snap until the height transition completes (0.22s)
       so content doesn't peek past the rounded bottom mid-animation. On
       close, the closed-state rule has no overflow transition, so overflow
       snaps back to hidden instantly when the user collapses the panel. */
    overflow: visible;
    transition: overflow 0s linear 0.22s;
}

.lf-header[b-nvfuc88lu7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.55rem 0.85rem;
    background: transparent;
    border: 0;
    color: var(--bs-body-color);
    font-size: 0.875rem;
    cursor: pointer;
    text-align: left;
    user-select: none;
}

.lf-header:hover[b-nvfuc88lu7] {
    background: rgba(13, 36, 71, 0.04);
}

.lf-header:focus-visible[b-nvfuc88lu7] {
    outline: 2px solid var(--bs-primary, #0d6efd);
    outline-offset: -2px;
}

.lf-header-left[b-nvfuc88lu7],
.lf-header-right[b-nvfuc88lu7] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.lf-header-left > i.bi-funnel[b-nvfuc88lu7] {
    color: var(--bs-secondary-color, #6c757d);
    font-size: 0.95rem;
}

.lf-title[b-nvfuc88lu7] {
    font-weight: 600;
    letter-spacing: 0.01em;
}

.lf-count[b-nvfuc88lu7] {
    font-size: 0.7rem;
    padding: 0.2rem 0.45rem;
}

.lf-clear[b-nvfuc88lu7] {
    font-size: 0.78rem;
    color: var(--bs-secondary-color, #6c757d);
    cursor: pointer;
    padding: 0.1rem 0.35rem;
    border-radius: 4px;
}

.lf-clear:hover[b-nvfuc88lu7] {
    color: var(--bs-body-color);
    background: rgba(13, 36, 71, 0.06);
    text-decoration: underline;
}

/* Inline natural-language summary of applied filters. Shown next to the
   "Filters" title when the panel is collapsed so the user sees what's
   active without expanding. Each value is a removable chip — clicking the
   × invokes the per-chip callback supplied by the page. */
.lf-summary[b-nvfuc88lu7] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    margin-left: 0.25rem;
    font-size: 0.8125rem;
    font-weight: 400;
    color: var(--bs-body-color);
    /* Keep the header on a single visual line on tight headers, but allow
       chip wrapping for long summaries. The min-width:0 lets the flex item
       shrink past its intrinsic width so the chevron stays glued to the right. */
    min-width: 0;
}

.lf-summary-item[b-nvfuc88lu7] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.lf-summary-label[b-nvfuc88lu7] {
    color: var(--bs-secondary-color, #6c757d);
    font-weight: 500;
}

.lf-summary-sep[b-nvfuc88lu7] {
    color: var(--bs-secondary-color, #6c757d);
    opacity: 0.6;
}

.lf-summary-chip[b-nvfuc88lu7] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.1rem 0.45rem 0.1rem 0.55rem;
    background: rgba(13, 110, 253, 0.10);
    color: var(--bs-primary, #0d6efd);
    border-radius: 999px;
    cursor: pointer;
    font-weight: 500;
    transition: background-color 0.12s ease, color 0.12s ease;
    user-select: none;
}

.lf-summary-chip:hover[b-nvfuc88lu7],
.lf-summary-chip:focus-visible[b-nvfuc88lu7] {
    background: rgba(220, 53, 69, 0.12);
    color: var(--bs-danger, #dc3545);
    outline: 0;
}

.lf-summary-x[b-nvfuc88lu7] {
    font-size: 0.7rem;
    opacity: 0.7;
    line-height: 1;
}

.lf-summary-chip:hover .lf-summary-x[b-nvfuc88lu7],
.lf-summary-chip:focus-visible .lf-summary-x[b-nvfuc88lu7] {
    opacity: 1;
}

.lf-summary-value[b-nvfuc88lu7] {
    /* Wraps a non-removable summary value (no OnRemove callback). Inherits
       parent color so it visually integrates with the label. */
    color: var(--bs-body-color);
}

.lf-chevron[b-nvfuc88lu7] {
    color: var(--bs-secondary-color, #6c757d);
    font-size: 0.85rem;
    /* Single icon that rotates on open, so the chevron sweeps instead of
       hard-swapping between two glyphs. */
    transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.lf-wrapper--open .lf-chevron[b-nvfuc88lu7] {
    transform: rotate(180deg);
}

/* Grid-template-rows: 0fr → 1fr trick. The collapsed state has zero rows
   of "1fr" content, the open state has one full row. Animating between
   these is the cleanest way to do an auto-height collapse without
   measuring max-height at runtime. The inner wrapper has overflow:hidden
   so the body doesn't peek out during the transition. */
.lf-collapse[b-nvfuc88lu7] {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.lf-wrapper--open .lf-collapse[b-nvfuc88lu7] {
    grid-template-rows: 1fr;
}

.lf-collapse-inner[b-nvfuc88lu7] {
    overflow: hidden;
    /* Fade the body alongside the height change — without this the content
       blinks in at the start of the transition because it's already at full
       opacity before its height makes room. */
    opacity: 0;
    transition: opacity 0.18s ease;
}

.lf-wrapper--open .lf-collapse-inner[b-nvfuc88lu7] {
    opacity: 1;
    /* Same delayed-overflow trick as .lf-wrapper--open: keep clipping
       during the 0.22s height animation so content doesn't peek out, then
       snap to visible once the panel is fully open so child popups
       (FilterSelect's absolutely-positioned menu) aren't clipped. */
    overflow: visible;
    transition: opacity 0.22s ease 0.05s, overflow 0s linear 0.22s;
}

.lf-body[b-nvfuc88lu7] {
    padding: 0.75rem 0.85rem 0.85rem;
    border-top: 1px solid var(--bs-border-color-translucent, #dee2e6);
    background: var(--bs-body-bg, #fff);
}

/* Honor the user's reduce-motion preference: skip the animations entirely
   when the OS asks for less motion. */
@media (prefers-reduced-motion: reduce) {
    .lf-chevron[b-nvfuc88lu7],
    .lf-collapse[b-nvfuc88lu7],
    .lf-collapse-inner[b-nvfuc88lu7] {
        transition: none;
    }
}

/* Tighter padding inside filter inputs so the body doesn't feel cavernous when
   it holds 1-2 inputs. The :deep wraps any `.row.g-2.mb-3` used by callers
   to ensure the bottom margin doesn't double up against `.lf-body` padding. */
.lf-body[b-nvfuc88lu7]  .row.g-2.mb-3:last-child,
.lf-body[b-nvfuc88lu7]  .mb-3:last-child {
    margin-bottom: 0 !important;
}

/* ── Arranging ───────────────────────────────────────────
   "Customize" turns the panel itself into the arranger: the
   panel takes a teal edge and a faint wash so it reads as a
   different mode of the same thing, not a dialog on top. */
.lf-arrange[b-nvfuc88lu7] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.78rem;
    color: var(--bs-secondary-color, #6c757d);
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    border: 1px solid transparent;
    cursor: pointer;
    transition: color 0.12s ease, background-color 0.12s ease, border-color 0.12s ease;
}

.lf-arrange:hover[b-nvfuc88lu7],
.lf-arrange:focus-visible[b-nvfuc88lu7] {
    color: var(--crm-navy, #0D2447);
    border-color: var(--bs-border-color, #dee2e6);
    background: var(--bs-body-bg, #fff);
    outline: 0;
}

.lf-arrange--on[b-nvfuc88lu7] {
    color: var(--crm-navy, #0D2447);
    background: var(--crm-teal-50, rgba(0, 197, 168, 0.08));
    border-color: rgba(0, 197, 168, 0.45);
}

.lf-wrapper--arranging[b-nvfuc88lu7] {
    border-color: rgba(0, 197, 168, 0.55);
    box-shadow: inset 3px 0 0 var(--crm-teal, #00C5A8);
}

.lf-wrapper--arranging.lf-wrapper--open[b-nvfuc88lu7] {
    background: linear-gradient(180deg, rgba(0, 197, 168, 0.05), transparent 5rem), var(--bs-tertiary-bg, #f8f9fa);
}

@media (max-width: 576px) {
    .lf-arrange-text[b-nvfuc88lu7] { display: none; }
}
/* /Shared/LivePolls/DistrictPollBriefPanel.razor.rz.scp.css */
.dpb-muted[b-3h5uysb5iw] { color: var(--crm-text-3, #9ca3af); font-size: 0.85rem; }
.dpb-lead[b-3h5uysb5iw] { font-size: 0.875rem; color: var(--crm-text-2, #4b5563); margin-bottom: 10px; }
.dpb-list[b-3h5uysb5iw] { list-style: none; padding: 0; margin: 0 0 10px; display: flex; flex-direction: column; gap: 8px; }
.dpb-list li[b-3h5uysb5iw] { border-left: 3px solid var(--crm-teal, #00C5A8); padding-left: 10px; }
.dpb-finding[b-3h5uysb5iw] { font-size: 0.875rem; color: var(--crm-navy, #0f172a); }
.dpb-q[b-3h5uysb5iw] { font-size: 0.75rem; color: var(--crm-text-3, #9ca3af); margin-top: 2px; }
.dpb-link[b-3h5uysb5iw] { font-size: 0.85rem; color: var(--crm-teal-700, #00735f); text-decoration: none; }
.dpb-link:hover[b-3h5uysb5iw] { text-decoration: underline; }
/* /Shared/LivePolls/PollCoveragePanel.razor.rz.scp.css */
.pcv[b-1ktcjab5kg] { display: flex; flex-direction: column; gap: 16px; }
.pcv-loading[b-1ktcjab5kg] { padding: 32px; text-align: center; color: var(--crm-text-3, #9ca3af); font-size: 0.875rem; }

.pcv-head[b-1ktcjab5kg] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 16px 40px;
    padding: 18px 20px;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: var(--crm-r, 10px);
}

.pcv-figure[b-1ktcjab5kg] { display: flex; align-items: baseline; gap: 8px; }
.pcv-big[b-1ktcjab5kg] { font-size: 2rem; font-weight: 700; line-height: 1; color: var(--crm-navy, #0f172a); font-variant-numeric: tabular-nums; }
.pcv-of[b-1ktcjab5kg] { font-size: 0.875rem; color: var(--crm-text-2, #4b5563); }
.pcv-switch[b-1ktcjab5kg] { margin: 0 0 0 auto; font-size: 0.85rem; }
.pcv-note[b-1ktcjab5kg] { margin: -8px 0 0; font-size: 0.78rem; color: var(--crm-text-3, #9ca3af); }

.pcv-grid[b-1ktcjab5kg] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 16px;
    align-items: start;
}

.pcv-card[b-1ktcjab5kg] {
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: var(--crm-r, 10px);
    padding: 16px 20px;
}

.pcv-h[b-1ktcjab5kg] { font-size: 0.95rem; font-weight: 600; color: var(--crm-navy, #0f172a); margin: 0 0 12px; }
.pcv-sub[b-1ktcjab5kg] { font-size: 0.82rem; color: var(--crm-text-2, #4b5563); margin: 0 0 10px; }

.pcv-row + .pcv-row[b-1ktcjab5kg] { margin-top: 10px; }
.pcv-row-label[b-1ktcjab5kg] { display: flex; justify-content: space-between; gap: 8px; font-size: 0.85rem; color: var(--crm-navy, #0f172a); }
.pcv-row-n[b-1ktcjab5kg] { color: var(--crm-text-2, #4b5563); font-variant-numeric: tabular-nums; white-space: nowrap; }

.pcv-track[b-1ktcjab5kg] { position: relative; height: 6px; margin-top: 4px; border-radius: 3px; background: var(--crm-border, #d8dee7); }
.pcv-bar[b-1ktcjab5kg] { position: absolute; inset: 0 auto 0 0; border-radius: 3px; background: var(--crm-teal, #00C5A8); }
.pcv-bar.is-none[b-1ktcjab5kg] { width: 0 !important; }

.pcv-chips[b-1ktcjab5kg] { display: flex; flex-wrap: wrap; gap: 6px; }

.pcv-chip[b-1ktcjab5kg] {
    padding: 2px 9px;
    border-radius: 999px;
    border: 1px dashed var(--crm-border-2, #c5d3e8);
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.78rem;
    font-variant-numeric: tabular-nums;
}

.pcv-chip.is-heard[b-1ktcjab5kg] {
    border: 1px solid var(--crm-teal, #00C5A8);
    background: color-mix(in srgb, var(--crm-teal, #00C5A8) 10%, transparent);
    color: var(--crm-teal-700, #00735f);
    font-weight: 600;
}

.pcv-table a[b-1ktcjab5kg] { color: var(--crm-teal-700, #00735f); text-decoration: none; }
.pcv-table a:hover[b-1ktcjab5kg] { text-decoration: underline; }
.pcv-roles[b-1ktcjab5kg] { font-size: 0.8rem; color: var(--crm-text-2, #4b5563); }

@media (max-width: 600px) {
    .pcv-head[b-1ktcjab5kg] { padding: 14px; gap: 12px 24px; }
    .pcv-switch[b-1ktcjab5kg] { margin-left: 0; }
}

.pcv-switch[b-1ktcjab5kg] { display: flex; align-items: center; gap: 0.5rem; padding-left: 0; }
.pcv-switch .form-check-input[b-1ktcjab5kg] { float: none; flex: 0 0 auto; width: 2em; min-width: 2em; height: 1em; min-height: 1em; margin: 0; }
/* /Shared/LivePolls/PollCrossTab.razor.rz.scp.css */
.pct-scroll[b-oom052fdn8] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.pct-table[b-oom052fdn8] {
    width: 100%;
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
    font-size: 0.85rem;
}

.pct-table th[b-oom052fdn8],
.pct-table td[b-oom052fdn8] {
    padding: 7px 10px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
    vertical-align: middle;
    text-align: left;
}

.pct-table thead th[b-oom052fdn8] {
    font-weight: 600;
    font-size: 0.78rem;
    color: var(--crm-text-2, #4b5563);
    border-bottom-width: 2px;
    white-space: nowrap;
}

.pct-col-h[b-oom052fdn8] {
    max-width: 11rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pct-group-h[b-oom052fdn8] { min-width: 10rem; }
.pct-n-h[b-oom052fdn8], .pct-n[b-oom052fdn8] { width: 4.5rem; text-align: right !important; color: var(--crm-text-2, #4b5563); }

.pct-table tbody th[b-oom052fdn8] {
    font-weight: 500;
    color: var(--crm-navy, #0f172a);
}

/* The room is the baseline every group is read against. */
.pct-room th[b-oom052fdn8],
.pct-room td[b-oom052fdn8] {
    background: var(--crm-bg, #f5f7fa);
    font-weight: 600;
}

.pct-group-btn[b-oom052fdn8] {
    background: none;
    border: 0;
    padding: 0;
    color: var(--crm-teal-700, #00735f);
    font-weight: 500;
    text-align: left;
    cursor: pointer;
}

.pct-group-btn:hover[b-oom052fdn8] { text-decoration: underline; }
.pct-group-btn:focus-visible[b-oom052fdn8] { outline: 2px solid var(--crm-teal, #00C5A8); outline-offset: 2px; border-radius: 2px; }

.pct-note[b-oom052fdn8] {
    display: block;
    font-size: 0.7rem;
    color: var(--crm-text-3, #9ca3af);
    font-weight: 400;
}

.is-small td[b-oom052fdn8] { opacity: 0.45; }

.pct-withheld[b-oom052fdn8] {
    color: var(--crm-text-3, #9ca3af);
    font-style: italic;
    font-size: 0.78rem;
}

.pct-cell[b-oom052fdn8] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 5.5rem;
    padding: 2px 4px;
    border-radius: 4px;
    border: 1.5px solid transparent;
}

.pct-cell.is-standout[b-oom052fdn8] {
    border-color: var(--crm-teal-700, #00735f);
    background: color-mix(in srgb, var(--crm-teal, #00C5A8) 8%, transparent);
}

.pct-cell.is-standout .pct-value[b-oom052fdn8] { font-weight: 700; color: var(--crm-teal-700, #00735f); }

.pct-value[b-oom052fdn8] { line-height: 1.1; }

.pct-track[b-oom052fdn8] {
    position: relative;
    height: 6px;
    border-radius: 3px;
    background: var(--crm-border, #d8dee7);
}

.pct-bar[b-oom052fdn8] {
    position: absolute;
    inset: 0 auto 0 0;
    border-radius: 3px;
    background: var(--crm-teal, #00C5A8);
}

.pct-bar.is-room[b-oom052fdn8] { background: var(--crm-navy, #0f172a); opacity: 0.55; }

/* Where the whole room landed. */
.pct-tick[b-oom052fdn8] {
    position: absolute;
    top: -3px;
    width: 2px;
    height: 12px;
    margin-left: -1px;
    background: var(--crm-navy, #0f172a);
}

.pct-words[b-oom052fdn8] { display: flex; flex-wrap: wrap; gap: 4px; }

.pct-word[b-oom052fdn8] {
    padding: 1px 7px;
    border-radius: 999px;
    background: var(--crm-bg, #f5f7fa);
    border: 1px solid var(--crm-border, #d8dee7);
    font-size: 0.78rem;
}

.pct-word small[b-oom052fdn8] { color: var(--crm-text-3, #9ca3af); }
.pct-dim[b-oom052fdn8] { color: var(--crm-text-3, #9ca3af); }
.pct-empty[b-oom052fdn8], .pct-foot[b-oom052fdn8] { font-size: 0.78rem; color: var(--crm-text-3, #9ca3af); margin: 6px 0 0; }
/* /Shared/LivePolls/PollInsightsTab.razor.rz.scp.css */
.pit[b-ukp43d34hq] { display: flex; flex-direction: column; gap: 16px; }

.pit-toolbar[b-ukp43d34hq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 20px;
    padding: 12px 16px;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: var(--crm-r, 10px);
}

.pit-pick[b-ukp43d34hq] { display: flex; align-items: center; gap: 8px; flex: 1 1 18rem; }
.pit-pick-label[b-ukp43d34hq] { font-size: 0.85rem; color: var(--crm-text-2, #4b5563); white-space: nowrap; margin: 0; }
.pit-pick .form-select[b-ukp43d34hq] { max-width: 22rem; }
.pit-switch[b-ukp43d34hq] { margin: 0; font-size: 0.85rem; }
.pit-actions[b-ukp43d34hq] { display: flex; gap: 8px; margin-left: auto; }

.pit-caption[b-ukp43d34hq] { margin: 0; font-size: 0.875rem; color: var(--crm-text-2, #4b5563); max-width: 80ch; }
.pit-provisional[b-ukp43d34hq] { color: var(--crm-navy, #0f172a); font-weight: 500; margin-left: 4px; }
.pit-loading[b-ukp43d34hq] { padding: 32px; text-align: center; color: var(--crm-text-3, #9ca3af); font-size: 0.875rem; }
.pit-none[b-ukp43d34hq] { margin: 0; color: var(--crm-text-3, #9ca3af); font-size: 0.85rem; }

.pit-summary[b-ukp43d34hq] {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.pit-findings[b-ukp43d34hq],
.pit-caveats[b-ukp43d34hq],
.pit-question[b-ukp43d34hq] {
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: var(--crm-r, 10px);
    padding: 16px 20px;
}

.pit-caveats[b-ukp43d34hq] { background: var(--crm-bg, #f5f7fa); }
.pit-caveats ul[b-ukp43d34hq] { margin: 0; padding-left: 1.1rem; font-size: 0.82rem; color: var(--crm-text-2, #4b5563); }
.pit-caveats li + li[b-ukp43d34hq] { margin-top: 6px; }

.pit-h[b-ukp43d34hq] { font-size: 0.95rem; font-weight: 600; color: var(--crm-navy, #0f172a); margin: 0 0 10px; }
.pit-h2[b-ukp43d34hq] { font-size: 0.85rem; font-weight: 600; color: var(--crm-text-2, #4b5563); margin: 16px 0 8px; }

.pit-list[b-ukp43d34hq] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }

.pit-finding[b-ukp43d34hq] { border-left: 3px solid var(--crm-border, #d8dee7); padding-left: 12px; }
.pit-finding.is-diff[b-ukp43d34hq] { border-left-color: var(--crm-teal, #00C5A8); }

.pit-finding-btn[b-ukp43d34hq] {
    display: block;
    width: 100%;
    background: none;
    border: 0;
    padding: 4px 0;
    text-align: left;
    color: inherit;
    cursor: pointer;
}

.pit-finding-btn:hover .pit-finding-text[b-ukp43d34hq] { text-decoration: underline; text-decoration-color: var(--crm-teal, #00C5A8); }
.pit-finding-btn:focus-visible[b-ukp43d34hq] { outline: 2px solid var(--crm-teal, #00C5A8); outline-offset: 2px; border-radius: 3px; }

.pit-finding-text[b-ukp43d34hq] { display: block; font-size: 0.92rem; color: var(--crm-navy, #0f172a); line-height: 1.4; }
.pit-finding.is-alike .pit-finding-text[b-ukp43d34hq] { color: var(--crm-text-2, #4b5563); font-size: 0.875rem; }
.pit-finding-q[b-ukp43d34hq] { display: block; font-size: 0.75rem; color: var(--crm-text-3, #9ca3af); margin-top: 2px; }

.pit-q-head[b-ukp43d34hq] { display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; }
.pit-q-num[b-ukp43d34hq] { font-variant-numeric: tabular-nums; font-weight: 700; color: var(--crm-teal-700, #00735f); font-size: 0.85rem; }
.pit-q-prompt[b-ukp43d34hq] { margin: 0; font-size: 1rem; font-weight: 600; color: var(--crm-navy, #0f172a); overflow-wrap: anywhere; }

/* People in a group */
.pit-scrim[b-ukp43d34hq] { position: fixed; inset: 0; background: rgba(15, 23, 42, 0.25); z-index: 1040; }

.pit-drawer[b-ukp43d34hq] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(26rem, 100vw);
    background: var(--crm-white, #fff);
    border-left: 1px solid var(--crm-border, #d8dee7);
    box-shadow: -8px 0 24px rgba(15, 23, 42, 0.12);
    z-index: 1045;
    display: flex;
    flex-direction: column;
    animation: pit-drawer-in-b-ukp43d34hq 160ms ease-out;
}

@keyframes pit-drawer-in-b-ukp43d34hq { from { transform: translateX(24px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .pit-drawer[b-ukp43d34hq] { animation: none; } }

.pit-drawer-head[b-ukp43d34hq] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
}

.pit-drawer-sub[b-ukp43d34hq] { font-size: 0.78rem; color: var(--crm-text-3, #9ca3af); margin-top: 2px; }

.pit-people[b-ukp43d34hq] { list-style: none; margin: 0; padding: 8px 20px 20px; overflow-y: auto; }
.pit-people li[b-ukp43d34hq] { padding: 10px 0; border-bottom: 1px solid var(--crm-border, #d8dee7); }
.pit-person[b-ukp43d34hq] { font-weight: 500; font-size: 0.9rem; }
.pit-person a[b-ukp43d34hq] { color: var(--crm-teal-700, #00735f); text-decoration: none; }
.pit-person a:hover[b-ukp43d34hq] { text-decoration: underline; }
.pit-person-sub[b-ukp43d34hq] { font-size: 0.78rem; color: var(--crm-text-3, #9ca3af); }
.pit-person-answer[b-ukp43d34hq] { margin-top: 4px; font-size: 0.85rem; color: var(--crm-navy, #0f172a); overflow-wrap: anywhere; }

.pit-tag[b-ukp43d34hq] {
    margin-left: 6px;
    padding: 0 6px;
    border-radius: 999px;
    border: 1px solid var(--crm-border, #d8dee7);
    font-size: 0.68rem;
    color: var(--crm-text-2, #4b5563);
    font-weight: 400;
}

@media (max-width: 900px) {
    .pit-summary[b-ukp43d34hq] { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .pit-toolbar[b-ukp43d34hq] { padding: 12px; }
    .pit-actions[b-ukp43d34hq] { margin-left: 0; }
    .pit-findings[b-ukp43d34hq], .pit-caveats[b-ukp43d34hq], .pit-question[b-ukp43d34hq] { padding: 14px; }
}
.pit-dim[b-ukp43d34hq] { color: var(--crm-text-3, #9ca3af); }

/* Keep the switch its own size when the toolbar wraps on a phone. */
.pit-switch[b-ukp43d34hq] { display: flex; align-items: center; gap: 0.5rem; padding-left: 0; }
.pit-switch .form-check-input[b-ukp43d34hq] { float: none; flex: 0 0 auto; width: 2em; min-width: 2em; height: 1em; min-height: 1em; margin: 0; }

.pit-trend-btn[b-ukp43d34hq] { margin-left: auto; padding: 0; font-size: 0.8rem; white-space: nowrap; color: var(--crm-teal-700, #00735f); text-decoration: none; }
.pit-trend-btn:hover[b-ukp43d34hq] { text-decoration: underline; }

.pit-findings-head[b-ukp43d34hq] { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.pit-findings-head .pit-h[b-ukp43d34hq] { margin: 0; }
.pit-summary-text[b-ukp43d34hq] { background: var(--crm-bg, #f5f7fa); border-radius: 8px; padding: 12px 14px; margin-bottom: 14px; }
.pit-summary-text p[b-ukp43d34hq] { margin: 0; font-size: 0.92rem; line-height: 1.55; color: var(--crm-navy, #0f172a); max-width: 80ch; }
.pit-summary-meta[b-ukp43d34hq] { margin-top: 6px; font-size: 0.72rem; color: var(--crm-text-3, #9ca3af); }
.pit-cite[b-ukp43d34hq] { font-size: 0.65rem; color: var(--crm-teal-700, #00735f); margin-left: 1px; cursor: help; }
.pit-fid[b-ukp43d34hq] { font-size: 0.7rem; font-weight: 600; color: var(--crm-text-3, #9ca3af); margin-right: 4px; font-variant-numeric: tabular-nums; }
/* /Shared/LivePolls/PollTrendDialog.razor.rz.scp.css */
.ptd-scrim[b-4uaxzu1igj] { position: fixed; inset: 0; background: rgba(15, 23, 42, 0.3); z-index: 1040; }

.ptd[b-4uaxzu1igj] {
    position: fixed;
    z-index: 1045;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(46rem, calc(100vw - 24px));
    max-height: calc(100vh - 48px);
    display: flex;
    flex-direction: column;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #d8dee7);
    border-radius: var(--crm-r, 10px);
    box-shadow: 0 20px 48px rgba(15, 23, 42, 0.18);
}

.ptd-head[b-4uaxzu1igj] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--crm-border, #d8dee7);
}

.ptd-title[b-4uaxzu1igj] { margin: 0; font-size: 1rem; font-weight: 600; color: var(--crm-navy, #0f172a); }
.ptd-sub[b-4uaxzu1igj] { font-size: 0.82rem; color: var(--crm-text-2, #4b5563); margin-top: 2px; overflow-wrap: anywhere; }
.ptd-body[b-4uaxzu1igj] { padding: 16px 20px 20px; overflow-y: auto; }
.ptd-muted[b-4uaxzu1igj] { color: var(--crm-text-3, #9ca3af); }

.ptd-pick[b-4uaxzu1igj] { display: inline-flex; align-items: center; gap: 8px; font-size: 0.85rem; color: var(--crm-text-2, #4b5563); margin-bottom: 8px; }
.ptd-pick .form-select[b-4uaxzu1igj] { width: auto; max-width: 20rem; }

.ptd-chart[b-4uaxzu1igj] { width: 100%; height: auto; display: block; }
.ptd-grid[b-4uaxzu1igj] { stroke: var(--crm-border, #d8dee7); stroke-width: 1; }
.ptd-axis[b-4uaxzu1igj] { font-size: 10px; fill: var(--crm-text-3, #9ca3af); font-variant-numeric: tabular-nums; }
.ptd-line[b-4uaxzu1igj] { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }

.ptd-legend[b-4uaxzu1igj] { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 16px; padding: 0; margin: 8px 0 14px; font-size: 0.8rem; color: var(--crm-text-2, #4b5563); }
.ptd-swatch[b-4uaxzu1igj] { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 6px; vertical-align: -1px; }

.ptd-table[b-4uaxzu1igj] { font-size: 0.82rem; font-variant-numeric: tabular-nums; }

.ptd-link[b-4uaxzu1igj] { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--crm-border, #d8dee7); }
.ptd-link-btn[b-4uaxzu1igj] { background: none; border: 0; padding: 0; cursor: pointer; font-size: 0.85rem; color: var(--crm-teal-700, #00735f); }
.ptd-link-btn:focus-visible[b-4uaxzu1igj] { outline: 2px solid var(--crm-teal, #00C5A8); outline-offset: 2px; }
.ptd-suggest[b-4uaxzu1igj] { list-style: none; padding: 0; margin: 10px 0 0; }
.ptd-suggest li[b-4uaxzu1igj] { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--crm-border, #d8dee7); font-size: 0.85rem; }
/* /Shared/MultiStateChipFilter.razor.rz.scp.css */
.cf-wrapper[b-nj29osuzdt] {
    width: 100%;
}

.cf-chipbar[b-nj29osuzdt] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.cf-label[b-nj29osuzdt] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--bs-secondary-color, #6c757d);
    letter-spacing: 0.02em;
    text-transform: uppercase;
    margin-right: 0.25rem;
}

.cf-chip[b-nj29osuzdt] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.65rem;
    font-size: 0.8125rem;
    line-height: 1.25;
    border-radius: 999px;
    border: 1px solid transparent;
    transition: background-color 0.12s ease, border-color 0.12s ease, color 0.12s ease;
    cursor: pointer;
    user-select: none;
}

.cf-chip:focus-visible[b-nj29osuzdt] {
    outline: 2px solid var(--bs-primary, #0d6efd);
    outline-offset: 2px;
}

.cf-chip i[b-nj29osuzdt] {
    font-size: 0.875rem;
    line-height: 1;
}

.cf-chip-neutral[b-nj29osuzdt] {
    background: transparent;
    border-color: var(--bs-border-color, #dee2e6);
    color: var(--bs-body-color, #212529);
}

.cf-chip-neutral:hover[b-nj29osuzdt] {
    background: var(--bs-tertiary-bg, #f8f9fa);
    border-color: var(--bs-secondary, #6c757d);
}

.cf-chip-neutral i[b-nj29osuzdt] {
    color: var(--bs-tertiary-color, #adb5bd);
}

.cf-chip-include[b-nj29osuzdt] {
    background: var(--bs-primary, #0d6efd);
    border-color: var(--bs-primary, #0d6efd);
    color: #fff;
}

.cf-chip-include:hover[b-nj29osuzdt] {
    filter: brightness(1.08);
}

.cf-chip-exclude[b-nj29osuzdt] {
    background: var(--bs-danger-bg-subtle, #f8d7da);
    border-color: var(--bs-danger-border-subtle, #f1aeb5);
    color: var(--bs-danger-text-emphasis, #58151c);
    text-decoration: line-through;
}

.cf-chip-exclude:hover[b-nj29osuzdt] {
    background: var(--bs-danger, #dc3545);
    border-color: var(--bs-danger, #dc3545);
    color: #fff;
}

.cf-match-toggle[b-nj29osuzdt] {
    margin-left: 0.5rem;
}

.cf-clear[b-nj29osuzdt] {
    padding: 0 0.25rem;
    color: var(--bs-secondary-color, #6c757d);
    text-decoration: none;
}

.cf-clear:hover[b-nj29osuzdt] {
    color: var(--bs-body-color, #212529);
    text-decoration: underline;
}

.cf-chip-name[b-nj29osuzdt] {
    white-space: nowrap;
}

.cf-chip-count[b-nj29osuzdt] {
    font-size: 0.72em;
    font-variant-numeric: tabular-nums;
    opacity: 0.7;
    margin-left: 0.1rem;
}

/* A value no record has, shown on request: there to be seen, not clicked. */
.cf-chip-empty[b-nj29osuzdt] {
    border: 1px dashed var(--bs-border-color, #dee2e6);
    background: transparent;
    color: var(--bs-secondary-color, #6c757d);
    opacity: 0.75;
    cursor: default;
}

.cf-chip-empty i[b-nj29osuzdt] {
    color: var(--bs-tertiary-color, #adb5bd);
}

/* "+2 with no records" — the hidden values, counted, one click from view. */
.cf-empty-toggle[b-nj29osuzdt] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.45rem;
    border: 0;
    border-radius: 6px;
    background: transparent;
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #6c757d);
    cursor: pointer;
    transition: background-color 0.12s ease, color 0.12s ease;
}

.cf-empty-toggle i[b-nj29osuzdt] {
    font-size: 0.8rem;
}

.cf-empty-toggle:hover[b-nj29osuzdt],
.cf-empty-toggle:focus-visible[b-nj29osuzdt] {
    background: rgba(13, 36, 71, 0.05);
    color: var(--bs-body-color, #212529);
}

.cf-empty-toggle:focus-visible[b-nj29osuzdt] {
    outline: 2px solid var(--bs-primary, #0d6efd);
    outline-offset: 1px;
}

/* Every option is empty: say so, rather than leave a bare label. */
.cf-none[b-nj29osuzdt] {
    font-size: 0.78rem;
    color: var(--bs-secondary-color, #6c757d);
    font-style: italic;
}
/* /Shared/NarrativeChangeReview.razor.rz.scp.css */
/* Narrative paste review — staff-facing layout mirroring the visual language
   of the data-accuracy SuggestionReview page (teal + navy + soft borders,
   side-by-side change cards, confidence bars, source-excerpt callout) so the
   feature feels familiar to anyone who's used the suggestions inbox. */

/* ── Summary header ──────────────────────────────────── */

.npr-summary[b-5bc2iev8gm] {
    margin-bottom: 16px;
    padding: 14px 18px;
    border-radius: 12px;
    border: 1px solid var(--crm-border, #e6eaf0);
    background: linear-gradient(180deg, rgba(0, 197, 168, 0.04), transparent);
}

.npr-summary-label[b-5bc2iev8gm] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--crm-teal-600, #009E88);
    margin-bottom: 4px;
}

.npr-summary-body[b-5bc2iev8gm] {
    color: var(--crm-text-2, #4b5563);
    font-size: 0.95rem;
    line-height: 1.5;
}

/* ── Control bar ─────────────────────────────────────── */

.npr-control-bar[b-5bc2iev8gm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.npr-control-counts[b-5bc2iev8gm] {
    color: var(--crm-text-2, #4b5563);
    font-size: 0.9rem;
}

.npr-control-counts strong[b-5bc2iev8gm] {
    color: var(--crm-navy, #0f172a);
}

/* ── Account groups ──────────────────────────────────── */

.npr-group[b-5bc2iev8gm] {
    margin-bottom: 22px;
}

.npr-group-header[b-5bc2iev8gm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--crm-border, #e6eaf0);
}

.npr-group-title[b-5bc2iev8gm] {
    display: inline;
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
}

.npr-group-badge[b-5bc2iev8gm] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 8px;
    padding: 2px 10px;
    border-radius: 999px;
    background: rgba(245, 158, 11, 0.16);
    color: #92400e;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.npr-group-count[b-5bc2iev8gm] {
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.82rem;
}

.npr-group-other .npr-group-title[b-5bc2iev8gm]::before {
    content: "↗ ";
    color: #f59e0b;
    margin-right: 2px;
}

/* ── Proposal card ───────────────────────────────────── */

.npr-card[b-5bc2iev8gm] {
    padding: 16px 18px 14px 18px;
    border-radius: 12px;
    border: 1px solid var(--crm-border, #e6eaf0);
    background: var(--crm-white, #fff);
    margin-bottom: 12px;
    transition: border-color 140ms ease, box-shadow 140ms ease, background 140ms ease;
}

.npr-card.is-selected[b-5bc2iev8gm] {
    border-color: rgba(0, 197, 168, 0.45);
    box-shadow: 0 1px 3px rgba(0, 197, 168, 0.10);
}

.npr-card.is-failed[b-5bc2iev8gm] {
    border-color: rgba(239, 68, 68, 0.45);
    background: rgba(239, 68, 68, 0.02);
}

/* ── No-op (already-applied) card style ──────────────── */

.npr-card.is-noop[b-5bc2iev8gm] {
    background: var(--crm-bg, #f5f7fa);
    border-style: dashed;
    padding-top: 10px;
    padding-bottom: 10px;
    opacity: 0.85;
}

.npr-card.is-noop .npr-card-title[b-5bc2iev8gm] {
    color: var(--crm-text-2, #4b5563);
    font-weight: 500;
    font-size: 0.95rem;
}

.npr-card.is-noop .npr-scope-chip[b-5bc2iev8gm] {
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-text-3, #9ca3af);
}

.npr-noop-pill[b-5bc2iev8gm] {
    grid-column: 2;
    grid-row: 1 / span 2;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(16, 185, 129, 0.14);
    color: #047857;
    font-weight: 600;
    font-size: 0.75rem;
    border: 1px solid rgba(16, 185, 129, 0.30);
    height: fit-content;
}

.npr-noop-reason[b-5bc2iev8gm] {
    margin-top: 4px;
    padding: 6px 12px;
    color: var(--crm-text-2, #4b5563);
    font-size: 0.85rem;
    background: var(--crm-white, #fff);
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.npr-noop-reason .bi[b-5bc2iev8gm] {
    color: var(--crm-text-3, #9ca3af);
    flex-shrink: 0;
}

.npr-noop-count[b-5bc2iev8gm] {
    margin-left: 6px;
    color: #047857;
    font-size: 0.85rem;
}

.npr-noop-count .bi[b-5bc2iev8gm] {
    margin-right: 2px;
}

.npr-card-head[b-5bc2iev8gm] {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    column-gap: 12px;
    row-gap: 4px;
    align-items: start;
    margin-bottom: 12px;
}

.npr-card-eyebrow[b-5bc2iev8gm] {
    grid-column: 1;
    grid-row: 1;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.npr-include[b-5bc2iev8gm] {
    grid-column: 2;
    grid-row: 1 / span 2;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--crm-text-2, #4b5563);
    font-size: 0.78rem;
    font-weight: 500;
    cursor: pointer;
    user-select: none;
    padding: 6px 10px;
    border-radius: 8px;
    border: 1px solid var(--crm-border, #e6eaf0);
    background: var(--crm-bg, #f5f7fa);
}

.npr-include input[type="checkbox"][b-5bc2iev8gm] {
    margin: 0;
    accent-color: var(--crm-teal-600, #009E88);
}

.npr-card.is-selected .npr-include[b-5bc2iev8gm] {
    background: rgba(0, 197, 168, 0.08);
    border-color: rgba(0, 197, 168, 0.35);
    color: var(--crm-teal-600, #009E88);
}

.npr-scope-chip[b-5bc2iev8gm] {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    background: rgba(0, 197, 168, 0.10);
    color: #00867a;
    font-weight: 600;
    font-size: 0.7rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* ── Operation badge (Create new / Update existing) ──── */

.npr-op-badge[b-5bc2iev8gm] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: 999px;
    font-weight: 600;
    font-size: 0.72rem;
    letter-spacing: 0.02em;
    border: 1px solid transparent;
}

.npr-op-badge .bi[b-5bc2iev8gm] {
    font-size: 0.85rem;
}

.npr-op-create[b-5bc2iev8gm] {
    background: rgba(59, 130, 246, 0.12);
    color: #1d4ed8;
    border-color: rgba(59, 130, 246, 0.30);
}

.npr-op-update[b-5bc2iev8gm] {
    background: rgba(0, 197, 168, 0.10);
    color: #00867a;
    border-color: rgba(0, 197, 168, 0.30);
}

.npr-op-remove[b-5bc2iev8gm] {
    background: rgba(239, 68, 68, 0.10);
    color: #b91c1c;
    border-color: rgba(239, 68, 68, 0.30);
}

/* ── Duplicate warning ───────────────────────────────── */

.npr-dup-warn[b-5bc2iev8gm] {
    margin-bottom: 12px;
    padding: 10px 14px;
    border-radius: 10px;
    border: 1px solid rgba(245, 158, 11, 0.45);
    background: rgba(245, 158, 11, 0.07);
}

.npr-dup-warn-head[b-5bc2iev8gm] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    flex-wrap: wrap;
    color: #92400e;
    font-size: 0.85rem;
}

.npr-dup-warn-head .bi[b-5bc2iev8gm] {
    color: #d97706;
    flex-shrink: 0;
}

.npr-dup-warn-head strong[b-5bc2iev8gm] {
    color: #78350f;
}

.npr-dup-list[b-5bc2iev8gm] {
    margin: 8px 0 0 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.npr-dup-item[b-5bc2iev8gm] {
    padding: 6px 10px;
    background: var(--crm-white, #fff);
    border: 1px solid rgba(245, 158, 11, 0.30);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.npr-dup-link[b-5bc2iev8gm] {
    color: var(--crm-navy, #0f172a);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex: 1 1 auto;
    min-width: 0;
}

.npr-dup-link:hover .npr-dup-name[b-5bc2iev8gm] {
    color: var(--crm-teal-600, #009E88);
    text-decoration: underline;
}

.npr-dup-name[b-5bc2iev8gm] {
    font-weight: 600;
}

.npr-dup-secondary[b-5bc2iev8gm] {
    color: var(--crm-text-2, #4b5563);
    font-size: 0.85rem;
}

.npr-dup-go[b-5bc2iev8gm] {
    margin-left: 4px;
    color: var(--crm-text-3, #9ca3af);
    font-size: 0.75rem;
}

.npr-dup-reasons[b-5bc2iev8gm] {
    display: inline-flex;
    gap: 4px;
    flex-wrap: wrap;
}

.npr-dup-pill[b-5bc2iev8gm] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--crm-bg, #f5f7fa);
    color: var(--crm-text-2, #4b5563);
    font-size: 0.7rem;
    font-weight: 500;
    border: 1px solid var(--crm-border, #e6eaf0);
}

.npr-dup-pill-strong[b-5bc2iev8gm] {
    background: rgba(245, 158, 11, 0.18);
    color: #92400e;
    border-color: rgba(245, 158, 11, 0.45);
    font-weight: 600;
}

.npr-dup-use[b-5bc2iev8gm] {
    flex-shrink: 0;
    margin-left: 8px;
}

.npr-dup-chosen-pill[b-5bc2iev8gm] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 8px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(16, 185, 129, 0.14);
    color: #047857;
    font-weight: 600;
    font-size: 0.78rem;
    flex-shrink: 0;
}

.npr-dup-item.is-chosen[b-5bc2iev8gm] {
    background: rgba(16, 185, 129, 0.06);
    border-color: rgba(16, 185, 129, 0.45);
}

/* ── Generic per-card warning (no account resolved, etc.) ── */

.npr-warn[b-5bc2iev8gm] {
    margin-bottom: 12px;
    padding: 10px 14px;
    border-radius: 10px;
    border: 1px solid rgba(239, 68, 68, 0.45);
    background: rgba(239, 68, 68, 0.06);
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: #7f1d1d;
    font-size: 0.9rem;
}

.npr-warn .bi[b-5bc2iev8gm] {
    color: #b91c1c;
    flex-shrink: 0;
    font-size: 1.05rem;
    margin-top: 2px;
}

.npr-warn strong[b-5bc2iev8gm] {
    color: #7f1d1d;
}

.npr-card-title[b-5bc2iev8gm] {
    grid-column: 1;
    grid-row: 2;
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    line-height: 1.3;
}

/* ── Change cards (current → proposed) ───────────────── */

.npr-change[b-5bc2iev8gm] {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 10px;
    align-items: stretch;
    margin-bottom: 14px;
}

.npr-change-card[b-5bc2iev8gm] {
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px solid var(--crm-border, #e6eaf0);
    background: var(--crm-white, #fff);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.npr-change-current[b-5bc2iev8gm] {
    background: var(--crm-bg, #f5f7fa);
}

.npr-change-proposed[b-5bc2iev8gm] {
    border-color: rgba(0, 197, 168, 0.40);
    background: linear-gradient(180deg, rgba(0, 197, 168, 0.05), rgba(0, 197, 168, 0.01));
    box-shadow: 0 1px 2px rgba(0, 197, 168, 0.08);
}

.npr-change-label[b-5bc2iev8gm] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--crm-text-3, #9ca3af);
}

.npr-change-proposed .npr-change-label[b-5bc2iev8gm] {
    color: var(--crm-teal-600, #009E88);
}

.npr-change-value[b-5bc2iev8gm] {
    min-height: 32px;
}

.npr-value-primary[b-5bc2iev8gm] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    word-break: break-word;
    line-height: 1.3;
}

.npr-value-secondary[b-5bc2iev8gm] {
    margin-top: 2px;
    color: var(--crm-text-2, #4b5563);
    font-size: 0.82rem;
}

.npr-change-empty[b-5bc2iev8gm] {
    color: var(--crm-text-3, #9ca3af);
    font-style: italic;
    font-size: 0.9rem;
}

.npr-change-arrow[b-5bc2iev8gm] {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--crm-text-3, #9ca3af);
    font-size: 1rem;
}

.npr-change-arrow .bi[b-5bc2iev8gm] {
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #e6eaf0);
    border-radius: 999px;
    padding: 5px 7px;
}

@media (max-width: 700px) {
    .npr-change[b-5bc2iev8gm] {
        grid-template-columns: 1fr;
    }
    .npr-change-arrow[b-5bc2iev8gm] {
        transform: rotate(90deg);
    }
}

/* ── Reasoning / source excerpt ──────────────────────── */

.npr-reasoning[b-5bc2iev8gm] {
    padding: 12px 14px;
    border-radius: 10px;
    background: var(--crm-bg, #f5f7fa);
    margin-bottom: 10px;
}

.npr-reasoning-head[b-5bc2iev8gm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 6px;
}

.npr-section-title[b-5bc2iev8gm] {
    margin: 0;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--crm-navy, #0f172a);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.npr-section-title .bi[b-5bc2iev8gm] {
    color: var(--crm-teal-600, #009E88);
}

.npr-reasoning-body[b-5bc2iev8gm] {
    margin: 0;
    color: var(--crm-text-2, #374151);
    line-height: 1.5;
    font-size: 0.92rem;
    font-style: italic;
}

/* ── Confidence bars (matches SuggestionReview style) ── */

.npr-confidence[b-5bc2iev8gm] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.npr-confidence-label[b-5bc2iev8gm] {
    font-size: 0.75rem;
    color: var(--crm-text-2, #4b5563);
    font-weight: 500;
}

.npr-confidence-bars[b-5bc2iev8gm] {
    display: inline-flex;
    gap: 3px;
    align-items: flex-end;
}

.npr-confidence-bars > span[b-5bc2iev8gm] {
    display: inline-block;
    width: 5px;
    background: var(--crm-border, #e6eaf0);
    border-radius: 2px;
}

.npr-confidence-bars > span:nth-child(1)[b-5bc2iev8gm] { height: 7px; }
.npr-confidence-bars > span:nth-child(2)[b-5bc2iev8gm] { height: 10px; }
.npr-confidence-bars > span:nth-child(3)[b-5bc2iev8gm] { height: 13px; }
.npr-confidence-bars > span:nth-child(4)[b-5bc2iev8gm] { height: 16px; }
.npr-confidence-bars > span:nth-child(5)[b-5bc2iev8gm] { height: 19px; }

.npr-confidence-5 > span[b-5bc2iev8gm] { background: #10b981; }
.npr-confidence-4 > span:nth-child(-n+4)[b-5bc2iev8gm] { background: #10b981; }
.npr-confidence-3 > span:nth-child(-n+3)[b-5bc2iev8gm] { background: #f59e0b; }
.npr-confidence-2 > span:nth-child(-n+2)[b-5bc2iev8gm] { background: #f59e0b; }
.npr-confidence-1 > span:nth-child(1)[b-5bc2iev8gm] { background: #ef4444; }

/* ── Leadership-note editor ──────────────────────────── */

.npr-leadership[b-5bc2iev8gm] {
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px dashed var(--crm-border-2, #c5d3e8);
    background: var(--crm-white, #fff);
    margin-bottom: 6px;
}

/* ── Per-row apply result ────────────────────────────── */

.npr-result[b-5bc2iev8gm] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    padding: 6px 10px;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 500;
}

.npr-result.is-ok[b-5bc2iev8gm] {
    background: rgba(16, 185, 129, 0.12);
    color: #047857;
}

.npr-result.is-failed[b-5bc2iev8gm] {
    background: rgba(239, 68, 68, 0.12);
    color: #b91c1c;
}

/* ── Footer ──────────────────────────────────────────── */

.npr-footer[b-5bc2iev8gm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 16px;
    padding: 14px 16px;
    background: var(--crm-bg, #f5f7fa);
    border-radius: 12px;
    flex-wrap: wrap;
}

.npr-footer-status[b-5bc2iev8gm] {
    flex: 1 1 280px;
}

.npr-footer-actions[b-5bc2iev8gm] {
    display: flex;
    gap: 8px;
    align-items: center;
}

.npr-btn-primary[b-5bc2iev8gm] {
    padding: 7px 18px;
    font-weight: 600;
}

.npr-status-ok[b-5bc2iev8gm] {
    color: #047857;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.npr-status-partial[b-5bc2iev8gm] {
    color: #92400e;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.npr-status-failed[b-5bc2iev8gm] {
    color: #b91c1c;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
/* /Shared/Navigation/NavCustomizeDialog.razor.rz.scp.css */
.ncd-intro[b-r8ynpjavg2] {
  font-size: 0.85rem;
  color: var(--crm-text-2);
  margin-bottom: 0.75rem;
}

.ncd-footer[b-r8ynpjavg2] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  width: 100%;
}

.ncd-reset[b-r8ynpjavg2] {
  margin-right: auto;
  padding-left: 0;
}

.ncd-confirm[b-r8ynpjavg2] {
  margin-right: auto;
  font-size: 0.85rem;
  color: var(--crm-text);
}

.ncd-error[b-r8ynpjavg2] {
  flex-basis: 100%;
  font-size: 0.8rem;
  color: #B42318;
  text-align: right;
}
/* /Shared/Navigation/NavLayoutEditorView.razor.rz.scp.css */
.nle[b-vha1e30xxy] {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  position: relative;
}

.nle-error[b-vha1e30xxy] {
  padding: 0.45rem 0.75rem;
  border-radius: 6px;
  background: #FEF3C7;
  color: #78350F;
  font-size: 0.8rem;
}

/* ── Section ── */

.nle-section[b-vha1e30xxy] {
  border: 1px solid var(--crm-border);
  border-radius: 10px;
  background: #fff;
  position: relative;
}

.nle-section-head[b-vha1e30xxy] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.5rem 0.5rem 0.65rem;
  background: var(--crm-surface-2);
  border-bottom: 1px solid var(--crm-border);
  border-radius: 10px 10px 0 0;
  position: relative;
}

.nle-section-label[b-vha1e30xxy] {
  font-family: 'Outfit', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--crm-text-2);
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nle-nodes[b-vha1e30xxy] {
  padding: 0.35rem;
}

.nle-empty[b-vha1e30xxy] {
  padding: 0.6rem 0.75rem;
  font-size: 0.8rem;
  color: var(--crm-text-3);
}

/* ── Rows ── */

.nle-row[b-vha1e30xxy] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.5rem;
  padding: 0.2rem 0.35rem 0.2rem 0.25rem;
  border-radius: 7px;
  position: relative;
  cursor: grab;
}

.nle-row:hover[b-vha1e30xxy] {
  background: var(--crm-surface-2);
}

.nle-row.is-group[b-vha1e30xxy] {
  font-weight: 600;
}

.nle-row.is-child[b-vha1e30xxy] {
  margin-left: 2.1rem;
}

.nle-children[b-vha1e30xxy] {
  border-left: 1px solid var(--crm-border);
  margin-left: 1.1rem;
  padding-left: 0;
}

.nle-row.is-hidden .nle-label[b-vha1e30xxy],
.nle-row.is-hidden .nle-icon[b-vha1e30xxy] {
  opacity: 0.45;
}

.nle-row.is-hidden .nle-label[b-vha1e30xxy] {
  text-decoration: line-through;
  text-decoration-color: var(--crm-text-3);
}

.nle-row.is-drag-source[b-vha1e30xxy] {
  opacity: 0.4;
}

.nle-grip[b-vha1e30xxy] {
  color: var(--crm-text-3);
  width: 1rem;
  flex-shrink: 0;
  text-align: center;
}

.nle-row:hover .nle-grip[b-vha1e30xxy],
.nle-section-head:hover .nle-grip[b-vha1e30xxy] {
  color: var(--crm-text-2);
}

.nle-chevron[b-vha1e30xxy] {
  border: 0;
  background: transparent;
  color: var(--crm-text-2);
  width: 1.4rem;
  height: 1.4rem;
  padding: 0;
  margin-left: -0.35rem;
  border-radius: 4px;
  flex-shrink: 0;
}

.nle-chevron:hover[b-vha1e30xxy] {
  background: var(--crm-border);
}

.nle-icon[b-vha1e30xxy] {
  color: var(--crm-navy);
  width: 1.1rem;
  text-align: center;
  flex-shrink: 0;
}

.nle-icon-btn[b-vha1e30xxy] {
  border: 0;
  background: transparent;
  padding: 0;
  width: 1.6rem;
  height: 1.6rem;
  margin: 0 -0.25rem;
  border-radius: 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.nle-icon-btn:hover[b-vha1e30xxy],
.nle-icon-btn:focus-visible[b-vha1e30xxy] {
  background: var(--crm-border);
  box-shadow: inset 0 0 0 1px var(--crm-border-2);
}

.nle-icon-strip[b-vha1e30xxy] {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin: 0.15rem 0 0.35rem 2.1rem;
}

.nle-icon-picker[b-vha1e30xxy] {
  width: 14rem;
  max-width: 100%;
}

.nle-label[b-vha1e30xxy] {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.875rem;
  color: var(--crm-text);
}

.nle-tag[b-vha1e30xxy] {
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--crm-text-3);
  border: 1px solid var(--crm-border);
  border-radius: 999px;
  padding: 0.05rem 0.45rem;
  flex-shrink: 0;
}

.nle-count[b-vha1e30xxy] {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--crm-text-3);
  min-width: 1.2rem;
  text-align: right;
  flex-shrink: 0;
}

.nle-eye[b-vha1e30xxy],
.nle-menu-btn[b-vha1e30xxy] {
  border: 0;
  background: transparent;
  width: 2rem;
  height: 2rem;
  border-radius: 6px;
  color: var(--crm-text-3);
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.nle-eye:hover[b-vha1e30xxy],
.nle-menu-btn:hover[b-vha1e30xxy] {
  background: var(--crm-border);
  color: var(--crm-text);
}

.nle-eye.is-visible[b-vha1e30xxy] {
  color: var(--crm-teal-600);
}

.nle-eye:disabled[b-vha1e30xxy] {
  opacity: 0.35;
}

.nle-rename[b-vha1e30xxy] {
  flex: 1;
  min-width: 0;
  font-size: 0.85rem;
  padding: 0.15rem 0.4rem;
  border: 1px solid var(--crm-teal);
  border-radius: 5px;
  outline: none;
  text-transform: none;
  letter-spacing: 0;
}

/* ── Drop feedback ──
   Nothing here may take space: a drag that shifts the rows under the pointer lands somewhere
   other than where it was aimed. Bands and indicators are all absolutely positioned. */

.nle-band[b-vha1e30xxy] {
  position: absolute;
  left: 0;
  right: 0;
  z-index: 5;
}

.is-drop-before[b-vha1e30xxy]::before,
.is-drop-after[b-vha1e30xxy]::after,
.is-drop-after-section[b-vha1e30xxy]::after {
  content: '';
  position: absolute;
  left: 0.25rem;
  right: 0.25rem;
  height: 3px;
  border-radius: 2px;
  background: var(--crm-teal);
  pointer-events: none;
  z-index: 6;
}

.is-drop-before[b-vha1e30xxy]::before { top: -2px; }
.is-drop-after[b-vha1e30xxy]::after { bottom: -2px; }

.nle-section-head.is-drop-before[b-vha1e30xxy]::before { top: -0.45rem; }
.is-drop-after-section[b-vha1e30xxy]::after { bottom: -0.45rem; }

/* Dropping on the bottom edge of a group's last page puts the item after the group, so the
   line reaches back out to the group's own indent. */
.nle-row.is-child.is-drop-outdent[b-vha1e30xxy]::after { left: -2.1rem; }

.is-drop-into[b-vha1e30xxy] {
  background: rgba(0, 197, 168, 0.12) !important;
  box-shadow: inset 0 0 0 2px var(--crm-teal);
}

.nle-empty-group[b-vha1e30xxy] {
  position: relative;
  margin: 0.2rem 0.25rem 0.2rem 2.1rem;
  padding: 0.35rem 0.6rem;
  border: 1px dashed var(--crm-border-2);
  border-radius: 6px;
  font-size: 0.75rem;
  color: var(--crm-text-3);
}

/* ── Menu ── */

.nle-menu-backdrop[b-vha1e30xxy] {
  position: fixed;
  inset: 0;
  z-index: 10;
}

.nle-menu[b-vha1e30xxy] {
  position: absolute;
  right: 0.25rem;
  top: calc(100% - 0.2rem);
  z-index: 11;
  min-width: 14rem;
  max-height: 20rem;
  overflow-y: auto;
  padding: 0.3rem;
  background: #fff;
  border: 1px solid var(--crm-border);
  border-radius: 8px;
  box-shadow: 0 10px 28px rgba(13, 36, 71, 0.16);
  cursor: default;
  font-weight: 400;
}

.nle-menu button[b-vha1e30xxy] {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
  font-size: 0.83rem;
  color: var(--crm-text);
  padding: 0.4rem 0.55rem;
  border-radius: 5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.nle-menu button:hover:not(:disabled)[b-vha1e30xxy],
.nle-menu button:focus-visible[b-vha1e30xxy] {
  background: var(--crm-surface-2);
}

.nle-menu button:disabled[b-vha1e30xxy] {
  color: var(--crm-text-3);
}

.nle-menu button.is-danger[b-vha1e30xxy] {
  color: #B42318;
}

.nle-menu-heading[b-vha1e30xxy] {
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--crm-text-3);
  padding: 0.5rem 0.55rem 0.2rem;
}

.nle-menu-divider[b-vha1e30xxy] {
  height: 1px;
  background: var(--crm-border);
  margin: 0.3rem 0;
}

.nle-add-section[b-vha1e30xxy] {
  align-self: flex-start;
  border: 1px dashed var(--crm-border-2);
  background: transparent;
  color: var(--crm-text-2);
  font-size: 0.83rem;
  padding: 0.4rem 0.8rem;
  border-radius: 8px;
}

.nle-add-section:hover:not(:disabled)[b-vha1e30xxy] {
  border-color: var(--crm-teal);
  color: var(--crm-teal-600);
}

@media (max-width: 575.98px) {
  .nle-grip[b-vha1e30xxy] { display: none; }
  .nle-row.is-child[b-vha1e30xxy] { margin-left: 0.9rem; }
  .nle-empty-group[b-vha1e30xxy] { margin-left: 0.9rem; }
  .nle-row.is-child.is-drop-outdent[b-vha1e30xxy]::after { left: -0.9rem; }
  .nle-children[b-vha1e30xxy] { margin-left: 0.4rem; }
  .nle-tag[b-vha1e30xxy] { display: none; }
}
/* /Shared/Navigation/NavTreeView.razor.rz.scp.css */
/* The sidebar page tree, moved out of NavMenu with its markup. Selectors keep the shape they had in
   NavMenu.razor.css (`.nav-tree ::deep .nav-link` for the same specificity as
   `.nav ::deep .nav-link`) so the collapsed-sidebar rules in MainLayout resolve exactly as
   before. `::deep` is needed only where NavLink renders the element itself. */

/* ─────────────────────────────────────────────────────────
   Nav Links
   ───────────────────────────────────────────────────────── */

.nav-tree[b-9wxlddq02j]  .nav-link {
  color: rgba(255,255,255,0.58);
  border-radius: 8px;
  height: 2.35rem;
  display: flex;
  align-items: center;
  padding: 0 0.875rem;
  font-family: 'Outfit', sans-serif;
  font-size: 0.84rem;
  font-weight: 500;
  text-decoration: none;
  border-left: 3px solid transparent;
  margin-bottom: 0.05rem;
  white-space: nowrap;
  overflow: hidden;
  /* Must not shrink. `overflow: hidden` above cancels the automatic minimum size
     a flex item normally gets, so without this the links squash towards zero
     height — text still painting at full size — instead of letting .nav-scroll
     scroll. Expanding a nav group on a short viewport made every other item
     collapse into an unreadable overlapping stack. */
  flex-shrink: 0;
  position: relative;
  transition: background-color var(--crm-fast) ease,
              color var(--crm-fast) ease,
              border-color var(--crm-fast) ease,
              box-shadow var(--crm-mid) var(--crm-ease);
}

/* Animated left bar via pseudo-element */
.nav-tree[b-9wxlddq02j]  .nav-link::before {
  content: '';
  position: absolute;
  left: 0;
  top: 20%;
  height: 60%;
  width: 3px;
  border-radius: 2px;
  background: rgba(255,255,255,0.3);
  transform: scaleY(0);
  transform-origin: center;
  transition: transform var(--crm-mid) var(--crm-ease),
              background var(--crm-fast) ease,
              box-shadow var(--crm-fast) ease;
}

.nav-tree[b-9wxlddq02j]  .nav-link:hover {
  color: rgba(255,255,255,0.92);
  background: rgba(255,255,255,0.07);
  border-left-color: transparent;
}

.nav-tree[b-9wxlddq02j]  .nav-link:hover::before {
  transform: scaleY(1);
}

.nav-tree[b-9wxlddq02j]  .nav-link.active {
  color: #fff;
  background: rgba(255,255,255,0.06);
  border-left-color: transparent;
  font-weight: 600;
}

.nav-tree[b-9wxlddq02j]  .nav-link.active::before {
  transform: scaleY(1);
  background: var(--crm-teal);
}

/* ─────────────────────────────────────────────────────────
   Nav Labels
   ───────────────────────────────────────────────────────── */

.nav-label[b-9wxlddq02j] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: opacity 0.18s ease;
}

/* ─────────────────────────────────────────────────────────
   Nav Icons
   ───────────────────────────────────────────────────────── */

.bi[b-9wxlddq02j] {
  display: inline-block;
  position: relative;
  width: 1.05rem;
  height: 1.05rem;
  min-width: 1.05rem;
  margin-right: 0.7rem;
  top: -1px;
  background-size: cover;
  opacity: 0.5;
  flex-shrink: 0;
  transition: opacity var(--crm-fast) ease,
              margin var(--crm-fast) ease,
              transform var(--crm-mid) var(--crm-ease);
}

.nav-tree[b-9wxlddq02j]  .nav-link:hover .bi,
.nav-tree[b-9wxlddq02j]  .nav-link.active .bi {
  opacity: 1;
  transform: scale(1.08);
}

.bi-building-nav-menu[b-9wxlddq02j] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M4 2.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1Zm3 0a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1Zm3.5-.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1ZM4 5.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1ZM7.5 5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1Zm2.5.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1ZM4.5 8a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1Zm2.5.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1Zm3.5-.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1Z'/%3E%3Cpath d='M2 1a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V1Zm11 0H3v14h3v-2.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5V15h3V1Z'/%3E%3C/svg%3E");
}

.bi-person-fill-nav-menu[b-9wxlddq02j] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3Zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z'/%3E%3C/svg%3E");
}

.bi-person-badge-fill-nav-menu[b-9wxlddq02j] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 2a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3zM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0z'/%3E%3Cpath d='M4.5 0A2.5 2.5 0 0 0 2 2.5V14a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2.5A2.5 2.5 0 0 0 11.5 0h-7zM3 2.5A1.5 1.5 0 0 1 4.5 1h7A1.5 1.5 0 0 1 13 2.5v10.795a4.2 4.2 0 0 0-.776-.492C11.392 12.387 10.063 12 8 12s-3.392.387-4.224.803a4.2 4.2 0 0 0-.776.492V2.5z'/%3E%3C/svg%3E");
}

.bi-people-fill-nav-menu[b-9wxlddq02j] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M7 14s-1 0-1-1 1-4 5-4 5 3 5 4-1 1-1 1H7Zm4-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z'/%3E%3Cpath fill-rule='evenodd' d='M5.216 14A2.238 2.238 0 0 1 5 13c0-1.355.68-2.75 1.936-3.72A6.325 6.325 0 0 0 5 9c-4 0-5 3-5 4s1 1 1 1h4.216Z'/%3E%3Cpath d='M4.5 8a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z'/%3E%3C/svg%3E");
}

.bi-geo-fill-nav-menu[b-9wxlddq02j] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4 4a4 4 0 1 1 4.5 3.969V13.5a.5.5 0 0 1-1 0V7.97A4 4 0 0 1 4 3.999zm2.493 8.574a.5.5 0 0 1-.411.575c-.712.118-1.28.295-1.655.493a1.319 1.319 0 0 0-.37.265.301.301 0 0 0-.057.09V14l.002.008a.147.147 0 0 0 .016.033.617.617 0 0 0 .145.15c.165.13.435.27.813.395.751.25 1.82.414 3.024.414s2.273-.163 3.024-.414c.378-.126.648-.265.813-.395a.619.619 0 0 0 .146-.15.148.148 0 0 0 .015-.033L12 14v-.004a.301.301 0 0 0-.057-.09 1.318 1.318 0 0 0-.37-.264c-.376-.198-.943-.375-1.655-.493a.5.5 0 1 1 .164-.986c.77.127 1.452.328 1.957.594C12.5 13 13 13.4 13 14c0 .426-.26.752-.544.977-.29.228-.68.413-1.116.558-.878.293-2.059.465-3.34.465-1.281 0-2.462-.172-3.34-.465-.436-.145-.826-.33-1.116-.558C3.26 14.752 3 14.426 3 14c0-.599.5-1 .961-1.243.505-.266 1.187-.467 1.957-.594a.5.5 0 0 1 .575.411z'/%3E%3C/svg%3E");
}

/* Bootstrap Icons "briefcase-fill" — the partner program is commercial. */
.bi-handshake-nav-menu[b-9wxlddq02j] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 1A1.5 1.5 0 0 0 5 2.5V3H1.5A1.5 1.5 0 0 0 0 4.5v1.384l7.614 2.03a1.5 1.5 0 0 0 .772 0L16 5.884V4.5A1.5 1.5 0 0 0 14.5 3H11v-.5A1.5 1.5 0 0 0 9.5 1h-3zm0 1h3a.5.5 0 0 1 .5.5V3H6v-.5a.5.5 0 0 1 .5-.5z'/%3E%3Cpath d='M0 12.5A1.5 1.5 0 0 0 1.5 14h13a1.5 1.5 0 0 0 1.5-1.5V6.85L8.129 8.947a.5.5 0 0 1-.258 0L0 6.85v5.65z'/%3E%3C/svg%3E");
}

/* Bootstrap Icons "patch-check-fill" — a CMS certification. */
.bi-patch-check-fill-nav-menu[b-9wxlddq02j] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M10.067.87a2.89 2.89 0 0 0-4.134 0l-.622.638-.89-.011a2.89 2.89 0 0 0-2.924 2.924l.01.89-.636.622a2.89 2.89 0 0 0 0 4.134l.637.622-.011.89a2.89 2.89 0 0 0 2.924 2.924l.89-.01.622.636a2.89 2.89 0 0 0 4.134 0l.622-.637.89.011a2.89 2.89 0 0 0 2.924-2.924l-.01-.89.636-.622a2.89 2.89 0 0 0 0-4.134l-.637-.622.011-.89a2.89 2.89 0 0 0-2.924-2.924l-.89.01-.622-.636zm.287 5.984-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 1 1 .708-.708L7 8.793l2.646-2.647a.5.5 0 0 1 .708.708z'/%3E%3C/svg%3E");
}

.bi-calendar-check-fill-nav-menu[b-9wxlddq02j] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M4 .5a.5.5 0 0 0-1 0V1H2a2 2 0 0 0-2 2v1h16V3a2 2 0 0 0-2-2h-1V.5a.5.5 0 0 0-1 0V1H4V.5zM16 14V5H0v9a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2zm-5.146-5.146-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 0 1 .708-.708L7.5 10.793l2.646-2.647a.5.5 0 0 1 .708.708z'/%3E%3C/svg%3E");
}

.bi-bar-chart-fill-nav-menu[b-9wxlddq02j] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M4 11H2v3h2zm5-4H7v7h2zm5-5h-2v12h2zm-2-1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1zM6 7a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1zm-5 4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1z'/%3E%3C/svg%3E");
}

/* ─────────────────────────────────────────────────────────
   Collapsible Group Header (normal mode)
   ───────────────────────────────────────────────────────── */

.nav-group-header[b-9wxlddq02j] {
  display: flex;
  align-items: center;
  width: 100%;
  color: rgba(255,255,255,0.58);
  background: transparent;
  border: none;
  border-left: 3px solid transparent;
  border-radius: 8px;
  height: 2.35rem;
  padding: 0 0.875rem;
  margin-bottom: 0.05rem;
  font-family: 'Outfit', sans-serif;
  font-size: 0.84rem;
  font-weight: 500;
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  transition: background-color var(--crm-fast) ease, color var(--crm-fast) ease;
}

.nav-group-header:hover[b-9wxlddq02j] {
  background: rgba(255,255,255,0.06);
  color: rgba(255,255,255,0.92);
}

.nav-group-header .nav-custom-obj-icon[b-9wxlddq02j] {
  font-size: 1rem;
  margin-right: 0.7rem;
  opacity: 0.55;
  transition: opacity var(--crm-fast) ease;
}

.nav-group-header:hover .nav-custom-obj-icon[b-9wxlddq02j] {
  opacity: 1;
}

.nav-group-chevron[b-9wxlddq02j] {
  margin-left: auto;
  font-size: 0.75rem !important;
  opacity: 0.5;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  margin-right: 0 !important;
  background-image: none !important;
  transition: transform var(--crm-mid) var(--crm-ease), opacity var(--crm-fast) ease;
}

.nav-group-header:not(.is-expanded) .nav-group-chevron[b-9wxlddq02j] {
  transform: rotate(-90deg);
}

.nav-group-header.is-expanded .nav-group-chevron[b-9wxlddq02j] {
  opacity: 0.75;
}

.nav-group-children[b-9wxlddq02j] {
  animation: crm-fade-in 0.22s var(--crm-ease) both;
}

/* Indented child links under a group header */
.nav-tree[b-9wxlddq02j]  .nav-link.is-group-child {
  padding-left: 2rem;
  height: 2.35rem;
  font-size: 0.82rem;
}

/* ── Second level: a hub's own pages ──
   Budget at the 264px sidebar: 264 − 24 (nav-body padding) − 4 (scrollbar) = 236 usable;
   less 14 right padding, less 28 for the icon block, less this 48px indent leaves ~146px
   of label. The longest label here ("Legislators") needs ~72px, so nothing has to give.
   The tight one is depth 1, not depth 2: "People & committees" at 0.82rem is ~130px
   against the ~144px a row has once it grows a chevron. Re-measure that in a browser
   before adding any longer level-1 label. */
.nav-tree[b-9wxlddq02j]  .nav-link.is-sub-child {
  padding-left: 3rem;
  height: 2.2rem;
  font-size: 0.78rem;
}

/* A hub rendered as a disclosure rather than a link. */
.nav-group-header.is-group-child[b-9wxlddq02j] {
  padding-left: 2rem;
  font-size: 0.82rem;
}

.nav-group-children.is-sub[b-9wxlddq02j] {
  margin-left: 2.35rem;
  border-left: 1px solid rgba(255,255,255,0.08);
}

/* A disclosure never receives NavLink's .active, so without this the "you are inside here"
   cue vanishes the moment a hub grows children. */
.nav-group-header.is-active-ancestor[b-9wxlddq02j] {
  color: rgba(255,255,255,0.9);
}

.nav-group-header.is-active-ancestor .nav-custom-obj-icon[b-9wxlddq02j] {
  opacity: 1;
}

/* ─────────────────────────────────────────────────────────
   Section labels — chunk the groups + items into Workspace /
   Advocacy / Programs so the eye can scan the nav as a few
   blocks rather than one long list.
   ───────────────────────────────────────────────────────── */

.nav-section-label[b-9wxlddq02j] {
  padding: 0.75rem 0.875rem 0.3rem;
  margin-top: 0.35rem;
  font-family: 'Outfit', sans-serif;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.34);
  border-top: 1px solid rgba(255,255,255,0.06);
  white-space: nowrap;
  overflow: hidden;
}

/* The first section label sits right under Dashboard — nothing to divide from. */
.nav-section-label:first-of-type[b-9wxlddq02j] {
  border-top: 0;
  margin-top: 0;
}

/* ─────────────────────────────────────────────────────────
   Collapsed sidebar (icon-only) — drop chevrons + labels, center
   group icons, and slim the section labels to a divider. The
   .sidebar-collapsed class lives on MainLayout's .sidebar ancestor.
   ───────────────────────────────────────────────────────── */

.sidebar-collapsed .nav-group-chevron[b-9wxlddq02j] { display: none; }

.sidebar-collapsed .nav-group-header[b-9wxlddq02j] {
  justify-content: center;
  padding-left: 0;
  padding-right: 0;
}

.sidebar-collapsed .nav-group-header .nav-custom-obj-icon[b-9wxlddq02j] {
  margin-right: 0;
}

.sidebar-collapsed .nav-tree[b-9wxlddq02j]  .nav-link.is-group-child {
  padding-left: 0;
}

/* Icon-only mode cannot show a hierarchy, so the tree flattens to a centred icon column.
   It stays legible because every row keeps its title tooltip, only one top-level group is
   ever open, and the GA sub-page icons were picked to not repeat a neighbouring glyph. */
.sidebar-collapsed .nav-tree[b-9wxlddq02j]  .nav-link.is-sub-child {
  padding-left: 0;
}

.sidebar-collapsed .nav-group-header.is-group-child[b-9wxlddq02j] {
  justify-content: center;
  padding-left: 0;
  padding-right: 0;
}

.sidebar-collapsed .nav-group-children.is-sub[b-9wxlddq02j] {
  margin-left: 0;
  border-left: 0;
}

.sidebar-collapsed .nav-section-label[b-9wxlddq02j] {
  font-size: 0;
  padding: 0.4rem 0;
  margin-top: 0.25rem;
  letter-spacing: 0;
}

/* Custom object icons use Bootstrap Icons font (not SVG background) */
.nav-custom-obj-icon[b-9wxlddq02j] {
  background-image: none !important;
  font-size: 1rem;
  line-height: 1.05rem;
  color: white;
  text-align: center;
}
/* /Shared/Newsletters/NewsletterHistoryPanel.razor.rz.scp.css */
.nlh[b-sbmdczfke7] { font-size: 0.9rem; }
.nlh-save[b-sbmdczfke7] { display: flex; gap: 0.4rem; padding: 0.9rem 1rem; border-bottom: 1px solid #edf1f7; }
.nlh-empty[b-sbmdczfke7] { padding: 1rem; margin: 0; font-size: 0.84rem; color: #6b7a92; line-height: 1.5; }

.nlh-list[b-sbmdczfke7] { list-style: none; margin: 0; padding: 0.4rem; }
.nlh-item[b-sbmdczfke7] { display: grid; gap: 0.15rem; width: 100%; border: 0; background: transparent; text-align: left; padding: 0.6rem 0.65rem; border-radius: 8px; }
.nlh-item:hover[b-sbmdczfke7] { background: #f3f7fc; }
.nlh-item__top[b-sbmdczfke7] { display: flex; align-items: center; gap: 0.4rem; }
.nlh-item__name[b-sbmdczfke7] { font-weight: 600; color: #0d2447; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nlh-item__meta[b-sbmdczfke7] { font-size: 0.76rem; color: #6b7a92; }
.nlh-item .nlr-badge[b-sbmdczfke7], .nlh-item[b-sbmdczfke7]  .nlr-badge { margin-left: auto; }

.nlh-detail[b-sbmdczfke7] { padding: 0.6rem 1rem 1rem; }
.nlh-detail__bar[b-sbmdczfke7] { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.4rem; }
.nlh-detail__title[b-sbmdczfke7] { font-size: 1rem; font-weight: 600; margin: 0.2rem 0 0; }
.nlh-detail__meta[b-sbmdczfke7] { font-size: 0.78rem; color: #6b7a92; margin: 0 0 0.8rem; }

.nlh-read[b-sbmdczfke7] { font-size: 0.92rem; border: 1px solid #edf1f7; border-radius: 10px; padding: 1rem 1.1rem; max-height: 55vh; overflow-y: auto; }
.nlh-read__title[b-sbmdczfke7] { font-family: 'Fraunces', Georgia, serif; font-size: 1.3rem; margin: 0 0 0.3rem; }
.nlh-read__dek[b-sbmdczfke7] { color: #4a5a73; margin-bottom: 1rem; }

.nlh-legend[b-sbmdczfke7] { font-size: 0.78rem; color: #6b7a92; margin-bottom: 0.5rem; }
.nlh-add[b-sbmdczfke7] { background: #dcf5ea; color: #0b6b47; padding: 0 0.3rem; border-radius: 3px; }
.nlh-del[b-sbmdczfke7] { background: #fde8e8; color: #9b1c1c; padding: 0 0.3rem; border-radius: 3px; text-decoration: line-through; }
.nlh-diff[b-sbmdczfke7] { white-space: pre-wrap; font-size: 0.86rem; line-height: 1.6; border: 1px solid #edf1f7; border-radius: 10px; padding: 0.9rem 1rem; max-height: 55vh; overflow-y: auto; color: #3c4a63; }
.nlh-diff ins[b-sbmdczfke7] { background: #dcf5ea; color: #064e3b; text-decoration: none; border-radius: 2px; }
.nlh-diff del[b-sbmdczfke7] { background: #fde8e8; color: #7f1d1d; border-radius: 2px; }

.nlh-restore[b-sbmdczfke7] { margin-top: 0.9rem; }
/* /Shared/Newsletters/NewsletterReviewPanel.razor.rz.scp.css */
.nlr[b-11sc7vbfxo] { font-size: 0.9rem; }

.nlr-status[b-11sc7vbfxo] { padding: 1rem 1rem 0.9rem; border-bottom: 1px solid #edf1f7; background: #f8fafc; }
.nlr-status__line[b-11sc7vbfxo] { display: flex; align-items: center; gap: 0.5rem; font-size: 0.95rem; color: #0d2447; }
.nlr-status__detail[b-11sc7vbfxo] { margin: 0.3rem 0 0; font-size: 0.82rem; color: #5a6a82; line-height: 1.45; }
.nlr-dot[b-11sc7vbfxo] { width: 0.6rem; height: 0.6rem; border-radius: 50%; background: #94a3b8; flex: 0 0 auto; }
.nlr-status--inreview .nlr-dot[b-11sc7vbfxo] { background: #f59e0b; }
.nlr-status--approved .nlr-dot[b-11sc7vbfxo] { background: #16a34a; }
.nlr-status--published .nlr-dot[b-11sc7vbfxo] { background: #2563eb; }

.nlr-section[b-11sc7vbfxo] { padding: 0.9rem 1rem; border-bottom: 1px solid #edf1f7; }
.nlr-action[b-11sc7vbfxo] { background: #fff; }
.nlr-h[b-11sc7vbfxo] { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #6b7a92; margin: 0 0 0.55rem; }
.nlr-hint[b-11sc7vbfxo] { font-size: 0.78rem; color: #6b7a92; margin: 0.4rem 0 0; line-height: 1.45; }
.nlr-hint--warn[b-11sc7vbfxo] { color: #92400e; }
.nlr-allgood[b-11sc7vbfxo] { margin: 0; font-size: 0.84rem; color: #0f7a52; }
.nlr-site__line[b-11sc7vbfxo] { display: flex; align-items: center; margin: 0 0 0.5rem; font-size: 0.84rem; line-height: 1.45; }

.nlr-checks[b-11sc7vbfxo] { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.45rem; }
.nlr-check[b-11sc7vbfxo] { display: flex; gap: 0.5rem; align-items: flex-start; font-size: 0.84rem; line-height: 1.4; }
.nlr-check i[b-11sc7vbfxo] { margin-top: 0.12rem; flex: 0 0 auto; }
.nlr-check--error i[b-11sc7vbfxo] { color: #dc2626; }
.nlr-check--error[b-11sc7vbfxo] { color: #7f1d1d; }
.nlr-check--warning i[b-11sc7vbfxo] { color: #d97706; }

.nlr-reviews[b-11sc7vbfxo] { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.nlr-reviews li[b-11sc7vbfxo] { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 0.5rem; }
.nlr-reviews__who[b-11sc7vbfxo] { font-weight: 500; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nlr-reviews__note[b-11sc7vbfxo] { grid-column: 2 / -1; margin: 0; font-size: 0.82rem; color: #4a5a73; font-style: italic; }

.nlr-avatar[b-11sc7vbfxo] { display: inline-grid; place-items: center; width: 1.65rem; height: 1.65rem; border-radius: 50%; background: #e1ebf8; color: #0d2447; font-size: 0.66rem; font-weight: 700; flex: 0 0 auto; }

.nlr-badge[b-11sc7vbfxo] { display: inline-block; padding: 0.08rem 0.5rem; border-radius: 999px; font-size: 0.7rem; font-weight: 600; background: #eef2f8; color: #4a5a73; white-space: nowrap; }
.nlr-badge--approved[b-11sc7vbfxo] { background: #dcf5ea; color: #0b6b47; }
.nlr-badge--changesrequested[b-11sc7vbfxo] { background: #fde8e8; color: #9b1c1c; }
.nlr-badge--pending[b-11sc7vbfxo] { background: #fff4d6; color: #8a5a00; }
.nlr-badge--published[b-11sc7vbfxo] { background: #dbeafe; color: #1d4ed8; }

.nlr-people[b-11sc7vbfxo] { max-height: 13rem; overflow-y: auto; display: grid; gap: 0.1rem; border: 1px solid #e3e9f2; border-radius: 8px; padding: 0.3rem; }
.nlr-person[b-11sc7vbfxo] { display: flex; align-items: center; gap: 0.5rem; padding: 0.3rem 0.4rem; border-radius: 6px; cursor: pointer; margin: 0; }
.nlr-person:hover[b-11sc7vbfxo] { background: #f3f7fc; }
.nlr-person__name[b-11sc7vbfxo] { font-size: 0.86rem; }
/* /Shared/NoAccessNote.razor.rz.scp.css */
.no-access-note[b-vi57gb5xfx] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    padding: 0.35rem 0;
    font-size: 0.8125rem;
    color: var(--crm-text-3);
}

.no-access-note i[b-vi57gb5xfx] {
    font-size: 0.8rem;
    color: var(--crm-text-3);
    flex-shrink: 0;
}
/* /Shared/NotificationBell.razor.rz.scp.css */
/* =====================================================
   Notification Bell + Drawer
   ===================================================== */

.notif-bell[b-n9ds9lqmhg] {
    position: relative;
    display: inline-flex;
    align-items: center;
    margin-right: 0.5rem;
}

/* Bell button — matches the visual weight of the user-menu toggle next door */
.notif-bell-button[b-n9ds9lqmhg] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    background: none;
    border: 1px solid transparent;
    border-radius: 50%;
    color: var(--crm-text-2);
    cursor: pointer;
    transition: background-color var(--crm-fast) ease,
                border-color var(--crm-fast) ease,
                color var(--crm-fast) ease;
}

.notif-bell-button:hover[b-n9ds9lqmhg] {
    background: var(--crm-bg);
    color: var(--crm-navy);
}

.notif-bell-button.active[b-n9ds9lqmhg] {
    background: var(--crm-bg);
    border-color: var(--crm-border-2);
    color: var(--crm-navy);
}

.notif-bell-button i[b-n9ds9lqmhg] {
    font-size: 1.15rem;
    line-height: 1;
}

.notif-bell-badge[b-n9ds9lqmhg] {
    position: absolute;
    top: 2px;
    right: 2px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    background: #dc2626;
    color: #fff;
    border: 2px solid var(--crm-white, #fff);
    border-radius: 9px;
    font-family: 'Outfit', sans-serif;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 14px;
    letter-spacing: -0.01em;
    text-align: center;
    box-sizing: content-box;
    pointer-events: none;
}

/* ── Dropdown drawer ─────────────────────────────────── */

.notif-bell-backdrop[b-n9ds9lqmhg] {
    position: fixed;
    inset: 0;
    z-index: 100;
}

.notif-drawer[b-n9ds9lqmhg] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 101;
    width: 380px;
    max-width: calc(100vw - 16px);
    max-height: 560px;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    box-shadow: var(--crm-shadow-lift);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: notif-drawer-in-b-n9ds9lqmhg 0.15s var(--crm-ease) both;
}

@keyframes notif-drawer-in-b-n9ds9lqmhg {
    0%   { opacity: 0; transform: translateY(-6px) scale(0.98); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

.notif-drawer-header[b-n9ds9lqmhg] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.65rem 0.9rem;
    background: var(--crm-bg);
    border-bottom: 1px solid var(--crm-border);
}

.notif-drawer-title[b-n9ds9lqmhg] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--crm-navy);
    letter-spacing: -0.01em;
}

.notif-drawer-actions[b-n9ds9lqmhg] {
    display: flex;
    gap: 0.15rem;
}

.notif-drawer-action[b-n9ds9lqmhg] {
    width: 28px;
    height: 28px;
    border: 1px solid transparent;
    border-radius: var(--crm-r-sm);
    background: transparent;
    color: var(--crm-text-3);
    font-size: 0.9rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color var(--crm-fast) ease, color var(--crm-fast) ease;
}

.notif-drawer-action:hover[b-n9ds9lqmhg] {
    background: var(--crm-white);
    border-color: var(--crm-border-2);
    color: var(--crm-navy);
}

/* ── List + empty state ─────────────────────────────── */

.notif-drawer-list[b-n9ds9lqmhg] {
    overflow-y: auto;
    flex: 1 1 auto;
    -webkit-overflow-scrolling: touch;
}

.notif-drawer-empty[b-n9ds9lqmhg] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 2.5rem 1rem;
    color: var(--crm-text-3);
}

.notif-drawer-empty-icon[b-n9ds9lqmhg] {
    font-size: 2rem;
    opacity: 0.35;
}

.notif-drawer-empty-text[b-n9ds9lqmhg] {
    font-size: 0.85rem;
}

.notif-drawer-spinner[b-n9ds9lqmhg] {
    width: 24px;
    height: 24px;
    border: 3px solid var(--crm-border);
    border-top-color: var(--crm-navy);
    border-radius: 50%;
    animation: notif-spin-b-n9ds9lqmhg 0.8s linear infinite;
}

@keyframes notif-spin-b-n9ds9lqmhg {
    to { transform: rotate(360deg); }
}

/* ── Individual row ─────────────────────────────────── */

.notif-row[b-n9ds9lqmhg] {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.65rem 0.9rem;
    border-bottom: 1px solid var(--crm-border);
    cursor: pointer;
    transition: background-color var(--crm-fast) ease;
    position: relative;
}

.notif-row:last-child[b-n9ds9lqmhg] { border-bottom: none; }

.notif-row:hover[b-n9ds9lqmhg] {
    background: var(--crm-bg);
}

.notif-row.unread[b-n9ds9lqmhg] {
    background: color-mix(in srgb, var(--crm-navy) 4%, transparent);
}

.notif-row.unread[b-n9ds9lqmhg]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--crm-navy);
}

.notif-row-icon[b-n9ds9lqmhg] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--crm-surface-2);
    color: var(--crm-text-2);
    font-size: 0.9rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.notif-row-info .notif-row-icon[b-n9ds9lqmhg],
.notif-row-info[b-n9ds9lqmhg] { /* .notif-row-info is unused — keeping structure simple */ }

.notif-row.notif-row-info .notif-row-icon[b-n9ds9lqmhg]    { background: #eff6ff; color: #1d4ed8; }
.notif-row.notif-row-success .notif-row-icon[b-n9ds9lqmhg] { background: #ecfdf5; color: #047857; }
.notif-row.notif-row-warning .notif-row-icon[b-n9ds9lqmhg] { background: #fffbeb; color: #b45309; }
.notif-row.notif-row-critical .notif-row-icon[b-n9ds9lqmhg] { background: #fef2f2; color: #b91c1c; }

.notif-row-body[b-n9ds9lqmhg] {
    flex: 1;
    min-width: 0;
}

.notif-row-title[b-n9ds9lqmhg] {
    font-size: 0.83rem;
    font-weight: 600;
    color: var(--crm-text);
    line-height: 1.35;
    margin-bottom: 0.1rem;
}

.notif-row-text[b-n9ds9lqmhg] {
    font-size: 0.78rem;
    color: var(--crm-text-2);
    line-height: 1.4;
    margin-bottom: 0.2rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.notif-row-time[b-n9ds9lqmhg] {
    font-size: 0.7rem;
    color: var(--crm-text-3);
}

.notif-row-actions[b-n9ds9lqmhg] {
    display: flex;
    align-items: flex-start;
    flex-shrink: 0;
}

.notif-row-dismiss[b-n9ds9lqmhg] {
    width: 24px;
    height: 24px;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--crm-text-3);
    font-size: 0.85rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity var(--crm-fast) ease, background-color var(--crm-fast) ease;
}

.notif-row:hover .notif-row-dismiss[b-n9ds9lqmhg] {
    opacity: 1;
}

.notif-row-dismiss:hover[b-n9ds9lqmhg] {
    background: var(--crm-white);
    color: var(--crm-navy);
}

/* ── Responsive ─────────────────────────────────────── */

@media (max-width: 480px) {
    .notif-drawer[b-n9ds9lqmhg] {
        width: calc(100vw - 16px);
        right: -8px;
    }
}
/* /Shared/Notifications/NotificationPreferencesPanel.razor.rz.scp.css */
/* Notifications tab. The control columns are fixed widths shared by every card, so the bell and email
   choices line up down the whole page and read as one grid you can scan. */

.np[b-k0kfhqzbqn] {
    --np-bell: 96px;
    --np-email: 310px;
    --np-teams: 76px;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* ── Delivery line ── */
.np-delivery[b-k0kfhqzbqn] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: .75rem;
    align-items: start;
    padding: .9rem 1.1rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
}

.np-delivery > i[b-k0kfhqzbqn] { font-size: 1.1rem; color: var(--crm-teal-600); margin-top: .1rem; }
.np-delivery p[b-k0kfhqzbqn] { margin: 0; font-size: .9rem; color: var(--crm-text); }
.np-delivery p + p[b-k0kfhqzbqn] { margin-top: .25rem; }
.np-note[b-k0kfhqzbqn] { font-size: .8rem !important; color: var(--crm-text-2) !important; }

/* ── Digest times: a quiet two-line schedule under the delivery note ── */
.np-digests[b-k0kfhqzbqn] {
    grid-column: 2;
    margin-top: .8rem;
    padding-top: .8rem;
    border-top: 1px dashed var(--crm-border);
}

.np-digest-lines[b-k0kfhqzbqn] { margin: 0; display: grid; gap: .35rem; }
.np-digest-lines > div[b-k0kfhqzbqn] { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: .75rem; align-items: baseline; }
.np-digest-lines dt[b-k0kfhqzbqn] { font-size: .82rem; font-weight: 600; color: var(--crm-text); }
.np-digest-lines dd[b-k0kfhqzbqn] { margin: 0; display: flex; flex-wrap: wrap; column-gap: .6rem; align-items: baseline; }
.np-digest-when[b-k0kfhqzbqn] { font-size: .88rem; color: var(--crm-navy); font-variant-numeric: tabular-nums; }
.np-digest-meta[b-k0kfhqzbqn] { font-size: .78rem; color: var(--crm-text-2); }

.np-digest-actions[b-k0kfhqzbqn] { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-top: .7rem; }

.np-digest-editor[b-k0kfhqzbqn] { display: grid; gap: .7rem; }
.np-digest-editor fieldset[b-k0kfhqzbqn] { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin: 0; padding: 0; border: 0; }
.np-digest-editor legend[b-k0kfhqzbqn] { float: left; width: 7.5rem; margin: 0; font-size: .82rem; font-weight: 600; color: var(--crm-text); }
.np-digest-editor select[b-k0kfhqzbqn] { width: auto; }
.np-at[b-k0kfhqzbqn] { display: inline-flex; align-items: center; gap: .4rem; font-size: .82rem; color: var(--crm-text-2); margin: 0; }

.np-days[b-k0kfhqzbqn] { display: inline-flex; }

.np-day[b-k0kfhqzbqn] {
    min-width: 2.6rem;
    padding: .28rem .5rem;
    border: 1px solid var(--crm-border-2);
    background: var(--crm-white);
    font-size: .78rem;
    font-weight: 500;
    color: var(--crm-text-2);
    cursor: pointer;
}

.np-day + .np-day[b-k0kfhqzbqn] { margin-left: -1px; }
.np-day:first-child[b-k0kfhqzbqn] { border-radius: var(--crm-r-sm) 0 0 var(--crm-r-sm); }
.np-day:last-child[b-k0kfhqzbqn] { border-radius: 0 var(--crm-r-sm) var(--crm-r-sm) 0; }
.np-day:hover[b-k0kfhqzbqn] { color: var(--crm-text); background: var(--crm-bg); }
.np-day-on[b-k0kfhqzbqn], .np-day-on:hover[b-k0kfhqzbqn] {
    position: relative;
    background: var(--crm-teal-50);
    border-color: var(--crm-teal-600);
    color: var(--crm-navy);
}
.np-day:focus-visible[b-k0kfhqzbqn] { outline: 2px solid var(--crm-teal); outline-offset: 1px; position: relative; z-index: 1; }

/* ── Groups ── */
.np-group[b-k0kfhqzbqn] {
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
    overflow: hidden;
}

.np-group-head[b-k0kfhqzbqn] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .75rem;
    align-items: center;
    padding: .85rem 1.1rem;
    background: var(--crm-bg);
    border-bottom: 1px solid var(--crm-border);
}

.np-group-head > i[b-k0kfhqzbqn] { font-size: 1.05rem; color: var(--crm-navy-400); }
.np-group-head h3[b-k0kfhqzbqn] { margin: 0; font-size: .95rem; font-weight: 600; color: var(--crm-text); }
.np-group-head p[b-k0kfhqzbqn] { margin: .1rem 0 0; font-size: .8rem; color: var(--crm-text-2); }

.np-cols[b-k0kfhqzbqn] {
    display: grid;
    grid-template-columns: var(--np-bell) var(--np-email);
    font-size: .75rem;
    font-weight: 600;
    color: var(--crm-text-2);
}

.np-cols-teams[b-k0kfhqzbqn] { grid-template-columns: var(--np-bell) var(--np-email) var(--np-teams); }
.np-cols span[b-k0kfhqzbqn] { display: inline-flex; align-items: center; gap: .3rem; }

/* ── Rows ── */
.np-row[b-k0kfhqzbqn] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) var(--np-bell) var(--np-email);
    gap: .75rem;
    align-items: center;
    padding: .8rem 1.1rem;
    border-top: 1px solid var(--crm-border);
    transition: background-color var(--crm-mid) var(--crm-ease);
}

.np-row-teams[b-k0kfhqzbqn] { grid-template-columns: minmax(0, 1fr) var(--np-bell) var(--np-email) var(--np-teams); }
.np-group-head + .np-row[b-k0kfhqzbqn] { border-top: 0; }
.np-row:hover[b-k0kfhqzbqn] { background: var(--crm-bg); }

/* Arrived from an email's "Manage notification settings" link. */
.np-row-highlight[b-k0kfhqzbqn] { background: var(--crm-teal-50); box-shadow: inset 3px 0 0 var(--crm-teal); }

.np-label[b-k0kfhqzbqn] { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.np-name[b-k0kfhqzbqn] { font-size: .9rem; font-weight: 500; color: var(--crm-text); }
.np-hint[b-k0kfhqzbqn] { font-size: .78rem; color: var(--crm-text-2); line-height: 1.4; }

.np-reset[b-k0kfhqzbqn] {
    align-self: flex-start;
    margin-top: .2rem;
    padding: 0;
    border: 0;
    background: none;
    font-size: .76rem;
    color: var(--crm-teal-600);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

.np-reset:hover[b-k0kfhqzbqn] { color: var(--crm-navy); }
.np-error[b-k0kfhqzbqn] { font-size: .78rem; color: #B42318; margin: .25rem 0 0; }

.np-bell[b-k0kfhqzbqn], .np-teams[b-k0kfhqzbqn] { display: flex; align-items: center; }
.np-bell .form-check-input[b-k0kfhqzbqn], .np-teams .form-check-input[b-k0kfhqzbqn] { width: 2.4em; height: 1.3em; cursor: pointer; }
.np-bell .form-check-input:checked[b-k0kfhqzbqn], .np-teams .form-check-input:checked[b-k0kfhqzbqn] { background-color: var(--crm-teal-600); border-color: var(--crm-teal-600); }

.np-locked[b-k0kfhqzbqn], .np-na[b-k0kfhqzbqn] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: .78rem;
    color: var(--crm-text-2);
    cursor: help;
}

.np-locked i[b-k0kfhqzbqn] { color: var(--crm-navy-400); }

/* ── Email choice: segmented, so the current choice is visible without opening anything ── */
.np-email[b-k0kfhqzbqn] { display: flex; align-items: center; gap: .5rem; min-width: 0; }

.np-email .np-seg[b-k0kfhqzbqn] {
    padding: .3rem .65rem;
    border: 1px solid var(--crm-border-2);
    background: var(--crm-white);
    font-size: .78rem;
    font-weight: 500;
    color: var(--crm-text-2);
    white-space: nowrap;
    cursor: pointer;
    transition: background-color var(--crm-fast) var(--crm-ease), color var(--crm-fast) var(--crm-ease), border-color var(--crm-fast) var(--crm-ease);
}

/* Join the buttons into one control. */
.np-email .np-seg + .np-seg[b-k0kfhqzbqn] { margin-left: -.5rem; border-left: 0; }
.np-email .np-seg:first-child[b-k0kfhqzbqn] { border-radius: var(--crm-r-sm) 0 0 var(--crm-r-sm); }
.np-email .np-seg:nth-last-child(2)[b-k0kfhqzbqn] { border-radius: 0 var(--crm-r-sm) var(--crm-r-sm) 0; }

.np-email .np-seg:hover:not(:disabled)[b-k0kfhqzbqn] { color: var(--crm-text); background: var(--crm-bg); }
.np-email .np-seg-on[b-k0kfhqzbqn],
.np-email .np-seg-on:hover:not(:disabled)[b-k0kfhqzbqn] {
    background: var(--crm-teal-50);
    border-color: var(--crm-teal-600);
    color: var(--crm-navy);
    box-shadow: inset 0 0 0 1px var(--crm-teal-600);
    position: relative;
}

.np-email .np-seg:focus-visible[b-k0kfhqzbqn] { outline: 2px solid var(--crm-teal); outline-offset: 1px; position: relative; z-index: 1; }
.np-email .np-seg:disabled[b-k0kfhqzbqn] { cursor: progress; }

/* The one moment of motion: a quiet confirmation on the row that changed. */
.np-saved[b-k0kfhqzbqn] {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    font-size: .76rem;
    color: var(--crm-teal-600);
    opacity: 0;
    transition: opacity var(--crm-mid) var(--crm-ease);
}

.np-saved-show[b-k0kfhqzbqn] { opacity: 1; }

/* ── Teams ── */
.np-teams-card[b-k0kfhqzbqn] {
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
}

.np-teams-card summary[b-k0kfhqzbqn] {
    padding: .85rem 1.1rem;
    font-size: .9rem;
    font-weight: 500;
    color: var(--crm-text);
    cursor: pointer;
}

.np-teams-card summary i[b-k0kfhqzbqn] { color: #5059C9; margin-right: .35rem; }
.np-teams-body[b-k0kfhqzbqn] { padding: 0 1.1rem 1rem; }
.np-teams-body > p[b-k0kfhqzbqn] { font-size: .82rem; color: var(--crm-text-2); margin: 0 0 .6rem; }
.np-teams-form[b-k0kfhqzbqn] { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.np-teams-form input[b-k0kfhqzbqn] { flex: 1 1 22rem; max-width: 34rem; }

/* ── Loading and failure ── */
.np-skeleton[b-k0kfhqzbqn] { display: flex; flex-direction: column; gap: 1rem; }

.np-skeleton-card[b-k0kfhqzbqn] {
    display: flex;
    flex-direction: column;
    gap: .6rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
}

.np-skeleton-card span[b-k0kfhqzbqn] { height: .8rem; border-radius: 4px; background: var(--crm-surface-2); }
.np-skeleton-card span:first-child[b-k0kfhqzbqn] { width: 30%; }
.np-skeleton-card span:nth-child(2)[b-k0kfhqzbqn] { width: 75%; }
.np-skeleton-card span:nth-child(3)[b-k0kfhqzbqn] { width: 60%; }

.np-state[b-k0kfhqzbqn] {
    display: flex;
    gap: .9rem;
    align-items: flex-start;
    padding: 1.2rem 1.25rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
}

.np-state > i[b-k0kfhqzbqn] { font-size: 1.4rem; color: var(--crm-text-3); }
.np-state-error[b-k0kfhqzbqn] { border-color: #F4C7C3; background: #FFFBFA; }
.np-state-error > i[b-k0kfhqzbqn] { color: #B42318; }
.np-state-title[b-k0kfhqzbqn] { margin: 0; font-weight: 600; color: var(--crm-text); }
.np-state-body[b-k0kfhqzbqn] { margin: .25rem 0 .7rem; font-size: .88rem; color: var(--crm-text-2); }

@media (prefers-reduced-motion: no-preference) {
    .np-skeleton-card span[b-k0kfhqzbqn] { animation: np-pulse-b-k0kfhqzbqn 1.4s ease-in-out infinite; }
}

@keyframes np-pulse-b-k0kfhqzbqn { 50% { opacity: .55; } }

/* Narrow screens: the choices sit under each label. */
@media (max-width: 760px) {
    .np-cols[b-k0kfhqzbqn] { display: none; }
    .np-row[b-k0kfhqzbqn], .np-row-teams[b-k0kfhqzbqn] { grid-template-columns: auto minmax(0, 1fr); row-gap: .5rem; }
    .np-label[b-k0kfhqzbqn] { grid-column: 1 / -1; }
    .np-bell[b-k0kfhqzbqn]::before { content: "In the app"; font-size: .75rem; color: var(--crm-text-2); margin-right: .5rem; }
    .np-teams[b-k0kfhqzbqn]::before { content: "Teams"; font-size: .75rem; color: var(--crm-text-2); margin-right: .5rem; }
    .np-email[b-k0kfhqzbqn] { flex-wrap: wrap; }
    .np-digests[b-k0kfhqzbqn] { grid-column: 1 / -1; }
    .np-digest-lines > div[b-k0kfhqzbqn] { grid-template-columns: 1fr; gap: .1rem; }
    .np-digest-editor legend[b-k0kfhqzbqn] { float: none; width: 100%; }
}
/* /Shared/Portal/PortalDirectory.razor.rz.scp.css */
.md-toolbar[b-v8rs2hi8xe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 0.75rem;
}

.md-toolbar-actions[b-v8rs2hi8xe] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.md-tabs[b-v8rs2hi8xe] {
    display: flex;
    gap: 4px;
}

.md-tab[b-v8rs2hi8xe] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--crm-text-2, #495057);
    background: transparent;
    border: 1px solid transparent;
    border-radius: 999px;
    cursor: pointer;
}

.md-tab:hover[b-v8rs2hi8xe] { background: var(--crm-bg, #f5f7fa); }

.md-tab.active[b-v8rs2hi8xe] {
    color: var(--crm-navy, #0d2447);
    background: var(--crm-white, #fff);
    border-color: var(--crm-border, #dee2e6);
    font-weight: 600;
}

.md-tab-count[b-v8rs2hi8xe] {
    font-size: 0.72rem;
    font-variant-numeric: tabular-nums;
    color: var(--crm-text-3, #6c757d);
}

/* ── Search ────────────────────────────────────────────────────── */

.md-search-wrap[b-v8rs2hi8xe] { position: relative; }

.md-search[b-v8rs2hi8xe] {
    width: 18rem;
    max-width: 100%;
    padding-left: 2rem;
}

.md-search-icon[b-v8rs2hi8xe] {
    position: absolute;
    left: 0.65rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.8rem;
    color: var(--crm-text-3, #adb5bd);
    pointer-events: none;
}

/* ── Segmented controls (Cards|Table, Organizations|People) ─────── */

.md-segmented[b-v8rs2hi8xe] {
    display: inline-flex;
    background: var(--crm-bg, #f5f7fa);
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 999px;
    padding: 2px;
}

.md-seg[b-v8rs2hi8xe] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 13px;
    font-size: 0.84rem;
    font-weight: 500;
    color: var(--crm-text-2, #495057);
    background: transparent;
    border: none;
    border-radius: 999px;
    cursor: pointer;
    white-space: nowrap;
}

.md-seg:hover[b-v8rs2hi8xe] { color: var(--crm-navy, #0d2447); }

.md-seg.active[b-v8rs2hi8xe] {
    background: var(--crm-white, #fff);
    color: var(--crm-navy, #0d2447);
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}

.md-segmented-sm .md-seg[b-v8rs2hi8xe] { padding: 4px 11px; font-size: 0.8rem; }

/* ── Filter bar ─────────────────────────────────────────────────── */

.md-filterbar[b-v8rs2hi8xe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px 14px;
    padding-bottom: 0.9rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--crm-border, #dee2e6);
}

.md-filters[b-v8rs2hi8xe],
.md-filterbar-actions[b-v8rs2hi8xe] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.md-filter-select[b-v8rs2hi8xe] { width: auto; min-width: 9rem; max-width: 14rem; }
.md-sort[b-v8rs2hi8xe] { width: auto; min-width: 8.5rem; }

.md-chipset[b-v8rs2hi8xe] { display: flex; gap: 5px; flex-wrap: wrap; }

.md-chip[b-v8rs2hi8xe] {
    padding: 4px 11px;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--crm-text-2, #495057);
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 999px;
    cursor: pointer;
    white-space: nowrap;
}

.md-chip:hover[b-v8rs2hi8xe] { border-color: var(--crm-teal, #00C5A8); }

.md-chip.active[b-v8rs2hi8xe] {
    color: var(--crm-teal-600, #009E88);
    background: var(--crm-teal-50, rgba(0, 197, 168, 0.08));
    border-color: var(--crm-teal, #00C5A8);
    font-weight: 600;
}

.md-check[b-v8rs2hi8xe] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    color: var(--crm-text-2, #495057);
    cursor: pointer;
    white-space: nowrap;
}

.md-clear[b-v8rs2hi8xe] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    font-size: 0.82rem;
    font-weight: 500;
    border-radius: 7px;
    cursor: pointer;
    white-space: nowrap;
}

.md-clear[b-v8rs2hi8xe] {
    color: var(--crm-text-3, #6c757d);
    background: transparent;
    border: 1px solid transparent;
}

.md-clear:hover[b-v8rs2hi8xe] { color: var(--crm-navy, #0d2447); background: var(--crm-bg, #f5f7fa); }

.md-noresults[b-v8rs2hi8xe] { margin-top: 1.5rem; }

.md-year[b-v8rs2hi8xe] {
    font-size: 0.82rem;
    color: var(--crm-text-3, #6c757d);
    margin-bottom: 0.6rem;
}

/* Cards rather than a table: an organization plus its leadership is a block of
   related facts, and it has to read on a phone as well as a desk.

   Columns rather than a grid, because the cards vary enormously in height — a
   hospital listing eight named executives sits next to one listing none. A grid
   row stretches every card to the tallest in it, so a two-line entry ends up
   holding a screen of white space. Columns pack each card to its own height and
   read top-to-bottom down the page, which is how the printed directory set it. */
.md-grid[b-v8rs2hi8xe] {
    column-width: 21rem;
    column-gap: 14px;
}

.md-card[b-v8rs2hi8xe] {
    /* Never split a listing across a column break — a name in one column and its
       CFO in the next is unreadable. */
    break-inside: avoid;
    margin-bottom: 14px;
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 8px;
    background: var(--crm-white, #fff);
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
}

.md-card-head[b-v8rs2hi8xe] {
    flex: 1 1 auto;   /* fills the row beside a logo */
    min-width: 0;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
}

.md-name[b-v8rs2hi8xe] {
    font-size: 1.02rem;
    font-weight: 600;
    color: var(--crm-navy, #0d2447);
    margin: 0;
    line-height: 1.25;
}

.md-kind[b-v8rs2hi8xe] {
    flex: none;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--crm-text-3, #6c757d);
    background: var(--crm-bg, #f5f7fa);
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 999px;
    padding: 1px 8px;
}

.md-parent[b-v8rs2hi8xe] {
    font-size: 0.78rem;
    color: var(--crm-text-3, #6c757d);
    margin-top: 2px;
}

.md-facts[b-v8rs2hi8xe] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-top: 8px;
    font-size: 0.82rem;
}

.md-fact[b-v8rs2hi8xe] {
    display: flex;
    align-items: baseline;
    gap: 7px;
    color: var(--crm-text-2, #495057);
}

.md-fact i[b-v8rs2hi8xe] {
    flex: none;
    font-size: 0.75rem;
    color: var(--crm-text-3, #adb5bd);
}

.md-fact a[b-v8rs2hi8xe] {
    color: var(--crm-text-2, #495057);
    text-decoration: none;
    overflow-wrap: anywhere;
}

.md-fact a:hover[b-v8rs2hi8xe] { color: var(--crm-teal-600, #04a58c); text-decoration: underline; }

/* ── Logo row (member and partner cards) · Partner cards ───────── */

.md-logo-head[b-v8rs2hi8xe] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.md-logo[b-v8rs2hi8xe] {
    flex: 0 0 auto;
    width: 68px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 5px;
    background: var(--crm-white, #fff);
    padding: 4px;
    overflow: hidden;
}

/* ::deep because DirectoryLogo renders the <img>, and scoped rules stop at a child component. */
.md-logo[b-v8rs2hi8xe]  img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.md-partner-ident[b-v8rs2hi8xe] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.md-badges[b-v8rs2hi8xe] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.md-level[b-v8rs2hi8xe] {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 1px 9px;
    border: 1px solid var(--crm-border, #dee2e6);
    color: var(--crm-text-2, #495057);
    background: var(--crm-bg, #f5f7fa);
}

.md-level--platinum[b-v8rs2hi8xe] { background: #EEF0F4; border-color: #C6CCD6; color: #3E4756; }
.md-level--gold[b-v8rs2hi8xe]     { background: #FBF2DC; border-color: #E3C77E; color: #7A5B12; }
.md-level--silver[b-v8rs2hi8xe]   { background: #F1F3F5; border-color: #CBD2D9; color: #4B5563; }
.md-level--bronze[b-v8rs2hi8xe]   { background: #F7EDE4; border-color: #DDBB9B; color: #7A5030; }

.md-preferred[b-v8rs2hi8xe] {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--crm-teal-600, #04a58c);
    background: var(--crm-teal-50, #e8f7f4);
    border: 1px solid var(--crm-teal, #04cdaf);
    border-radius: 999px;
    padding: 1px 9px;
}

.md-orgtype[b-v8rs2hi8xe] {
    font-size: 0.85rem;
    color: var(--crm-text-2, #495057);
    margin: 10px 0 0;
}

/* Label prefix on a staff-defined custom field, so "Trauma level II" doesn't read
   as free-floating text next to the address and phone. */
.md-fact-label[b-v8rs2hi8xe] {
    color: var(--crm-text-2, #495057);
    font-weight: 500;
}

/* ── Table view ──────────────────────────────────────────────────────
   The dense read. Cards stay the default because a listing is a block of related facts,
   but "every hospital and its city on one screen" is a different job and a table does it
   better. */

/* The table scrolls in here, never the page: a portal page that scrolls sideways is a defect,
   and the shell clips horizontal overflow rather than offering a scrollbar.

   The height bound is not decoration — it is what makes the sticky header work. `overflow-x`
   alone already makes this element the nearest scroll container, so a sticky <thead> binds to
   it on BOTH axes; without a height the box never scrolls vertically, so the header sits still
   relative to a container that is itself moving up the page, and pins to nothing. Bounding the
   height gives it a scrollport to pin against. (Measured: without this the header was 604px
   above the viewport after a 900px scroll.) */
.md-tablewrap[b-v8rs2hi8xe] {
    overflow: auto;
    max-height: 74dvh;
    background: var(--crm-white, #fff);
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 8px;
}

.md-table[b-v8rs2hi8xe] {
    width: 100%;
    /* Mandatory with a sticky header: a collapsed border belongs to the table, so the
       header's bottom border detaches and stays behind when the row pins. */
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.85rem;
}

/* Stick the row, not each cell — a wrapped header label makes per-cell offsets drift, and
   correcting for that needs a ResizeObserver. */
.md-table thead[b-v8rs2hi8xe] {
    position: sticky;
    top: 0;
    z-index: 2;
}

.md-table thead th[b-v8rs2hi8xe] {
    background: var(--crm-bg, #f5f7fa);
    border-bottom: 1px solid var(--crm-border, #dee2e6);
    padding: 9px 12px;
    text-align: left;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--crm-text-3, #6c757d);
    white-space: nowrap;
}

.md-table tbody td[b-v8rs2hi8xe] {
    padding: 9px 12px;
    border-bottom: 1px solid var(--crm-border, #eef1f4);
    color: var(--crm-text-2, #495057);
    vertical-align: top;
}

.md-table tbody tr:last-child td[b-v8rs2hi8xe] { border-bottom: none; }
.md-table tbody tr:hover td[b-v8rs2hi8xe] { background: var(--crm-bg, #f8fafc); }

.md-td-strong[b-v8rs2hi8xe] {
    font-weight: 600;
    color: var(--crm-navy, #0d2447);
    min-width: 12rem;
}

.md-td-none[b-v8rs2hi8xe] { color: var(--crm-text-3, #adb5bd); }

/* A phone number broken across two lines is unreadable and, worse, un-copyable. These columns
   are fixed-width by nature, so they never earn the wrap that long names and addresses do. */
.md-td-nowrap[b-v8rs2hi8xe] { white-space: nowrap; }

.md-table a[b-v8rs2hi8xe] { color: var(--crm-text-2, #495057); text-decoration: none; overflow-wrap: anywhere; }
.md-table a:hover[b-v8rs2hi8xe] { color: var(--crm-teal-600, #009E88); text-decoration: underline; }

.md-th-expand[b-v8rs2hi8xe], .md-td-expand[b-v8rs2hi8xe] { width: 3.2rem; padding-right: 0 !important; }

.md-expand[b-v8rs2hi8xe] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 6px;
    font-size: 0.72rem;
    color: var(--crm-text-3, #6c757d);
    background: transparent;
    border: 1px solid transparent;
    border-radius: 6px;
    cursor: pointer;
}

.md-expand:hover[b-v8rs2hi8xe] {
    color: var(--crm-navy, #0d2447);
    border-color: var(--crm-border, #dee2e6);
}

.md-expand-count[b-v8rs2hi8xe] { font-variant-numeric: tabular-nums; }

.md-tr-open td[b-v8rs2hi8xe] { background: var(--crm-bg, #f8fafc); }

/* The leadership panel unfurled under its organization. Reuses StaffList so the roster reads
   identically in both views. */
.md-tr-detail td[b-v8rs2hi8xe] {
    background: var(--crm-bg, #f8fafc);
    padding: 4px 12px 14px 3.2rem;
    border-bottom: 2px solid var(--crm-border, #dee2e6);
}

.md-badgestack[b-v8rs2hi8xe] { display: inline-flex; flex-wrap: wrap; gap: 4px; }

/* Shown to a reader whose organization holds no grant. Deliberately says nothing about
   whether the directory has anything in it. */
.md-empty[b-v8rs2hi8xe] {
    max-width: 34rem;
    margin: 2.5rem auto;
    padding: 2rem;
    text-align: center;
    background: var(--crm-surface, #fff);
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 12px;
}

.md-empty-icon[b-v8rs2hi8xe] {
    font-size: 2rem;
    color: var(--crm-text-3, #6c757d);
}

.md-empty-title[b-v8rs2hi8xe] {
    margin: 0.75rem 0 0.5rem;
    font-size: 1.15rem;
    font-weight: 600;
}

/* ── Loading and arrival ─────────────────────────────────────────────────────
   The page used to say "Loading…" and then drop the whole directory in one frame. Now a
   skeleton in the directory's own shapes holds the space, and when the data lands the
   toolbar settles and the cards rise in a short cascade (first visit only — .md-reveal is
   removed once it has played, so filtering doesn't replay it). Switching tab or view swaps
   the results with a quick fade. Fill mode is `backwards`, never `both`: a held transform
   makes each card a stacking context and traps its popovers under the next card. */

.md-skel-bar[b-v8rs2hi8xe] { display: flex; gap: 10px; align-items: center; margin-bottom: 18px; }

.md-skel-block[b-v8rs2hi8xe],
.md-skel-line[b-v8rs2hi8xe] {
    display: block;
    border-radius: 8px;
    background: linear-gradient(90deg, #E9EEF6 0%, #F5F8FC 40%, #E9EEF6 80%);
    background-size: 300% 100%;
}

.md-skel-block[b-v8rs2hi8xe] { height: 38px; }
.md-skel-line[b-v8rs2hi8xe] { height: 12px; margin-top: 10px; }
.md-skel-line:first-child[b-v8rs2hi8xe] { height: 16px; margin-top: 2px; }
.md-skel-short[b-v8rs2hi8xe] { width: 34%; margin-bottom: 6px; }
.md-skel-card[b-v8rs2hi8xe] { gap: 0; }

@keyframes md-shimmer-b-v8rs2hi8xe { from { background-position: 100% 0; } to { background-position: -50% 0; } }
@keyframes md-rise-b-v8rs2hi8xe { from { opacity: 0; transform: translateY(14px); } }
@keyframes md-fade-b-v8rs2hi8xe { from { opacity: 0; } }
@keyframes md-logo-in-b-v8rs2hi8xe { from { opacity: 0; transform: scale(.94); } }

@media (prefers-reduced-motion: no-preference) {
    .md-skel-block[b-v8rs2hi8xe],
    .md-skel-line[b-v8rs2hi8xe] { animation: md-shimmer-b-v8rs2hi8xe 1.4s ease-in-out infinite; }
    .md-skel-card[b-v8rs2hi8xe] { animation: md-fade-b-v8rs2hi8xe .3s ease backwards; animation-delay: calc(var(--i, 0) * 40ms); }

    .md-reveal .md-toolbar[b-v8rs2hi8xe],
    .md-reveal .md-filterbar[b-v8rs2hi8xe] { animation: md-fade-b-v8rs2hi8xe .35s ease backwards; }
    /* --dly comes from crmPortalMotion.sweep (a diagonal wave by on-screen position); the index
       cascade is only the fallback if that script hasn't run. */
    .md-reveal .md-card[b-v8rs2hi8xe] { animation: md-rise-b-v8rs2hi8xe .45s cubic-bezier(.2, .8, .2, 1) backwards; animation-delay: var(--dly, calc(var(--i, 0) * 26ms)); }
    .md-reveal .md-tablewrap[b-v8rs2hi8xe] { animation: md-rise-b-v8rs2hi8xe .5s cubic-bezier(.2, .8, .2, 1) .08s backwards; }

    .md-results[b-v8rs2hi8xe] { animation: md-fade-b-v8rs2hi8xe .25s ease backwards; }
    /* On first arrival the cards bring their own entrance; a second fade on top just delays them. */
    .md-reveal .md-results[b-v8rs2hi8xe] { animation: none; }

    /* Logos arrive one by one after the listing; ease each in rather than popping. */
    .md-logo[b-v8rs2hi8xe]  img { animation: md-logo-in-b-v8rs2hi8xe .45s ease backwards; }
}
/* /Shared/PortalLaunchpad.razor.rz.scp.css */
/* Launchpad tiles layer onto the shared .member-account-tile card. */

.launchpad-tile[b-uj8blnnflz] {
    height: 100%;
}

.launchpad-tile-head[b-uj8blnnflz] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.launchpad-tile-name[b-uj8blnnflz] {
    font-size: 1.02rem;
    font-weight: 600;
    color: var(--crm-navy, #14213d);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.launchpad-tile-icon[b-uj8blnnflz] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 9px;
    background: rgba(42, 157, 143, 0.10);
    color: var(--crm-teal, #2a9d8f);
    font-size: 1.05rem;
    flex-shrink: 0;
}

.launchpad-tile-logo[b-uj8blnnflz] {
    width: 2.1rem;
    height: 2.1rem;
    object-fit: contain;
    border-radius: 6px;
    flex-shrink: 0;
}

.launchpad-tile-ext[b-uj8blnnflz] {
    margin-left: auto;
    color: #9aa3b2;
    font-size: 0.85rem;
    flex-shrink: 0;
}

.launchpad-tile-desc[b-uj8blnnflz] {
    margin-top: 0.6rem;
    color: #6b7280;
    font-size: 0.85rem;
    line-height: 1.35;
}
/* /Shared/RelatedObjectsPanel.razor.rz.scp.css */
/* No `overflow: hidden` — the inline-create form renders DynamicFieldInput,
   whose Dropdown/MultiSelect popovers are absolutely positioned and must
   escape this box. Same defect as CollapsibleCard; rounding moved to the
   header so the grey header background still clips to the corners. */
.rop-container[b-ag6c17wihd] {
    border: 1px solid #dee2e6;
    border-radius: 8px;
}

.rop-header[b-ag6c17wihd] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    background: #f8f9fa;
    border-bottom: 1px solid #dee2e6;
    border-radius: 8px 8px 0 0;
}

.rop-title[b-ag6c17wihd] {
    font-weight: 600;
    font-size: 0.875rem;
    color: #344054;
}

.rop-empty[b-ag6c17wihd] {
    padding: 12px 14px;
    margin: 0;
}

.rop-list[b-ag6c17wihd] {
    padding: 4px 0;
}

.rop-item[b-ag6c17wihd] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-bottom: 1px solid #f0f0f0;
    transition: background 0.1s;
}

.rop-item:last-child[b-ag6c17wihd] {
    border-bottom: none;
}

.rop-item:hover[b-ag6c17wihd] {
    background: #f8f9fa;
}

.rop-item-editing[b-ag6c17wihd] {
    background: #f0f7ff;
}

.rop-item-main[b-ag6c17wihd] {
    flex: 1;
    min-width: 0;
}

.rop-item-name[b-ag6c17wihd] {
    font-size: 0.875rem;
    font-weight: 500;
    color: #0f2d5c;
    text-decoration: none;
}

.rop-item-name:hover[b-ag6c17wihd] {
    text-decoration: underline;
}

.rop-item-subtitle[b-ag6c17wihd] {
    font-size: 0.75rem;
    color: #6c757d;
    margin-left: 6px;
}

.rop-item-labels[b-ag6c17wihd] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    flex: 1;
}

.rop-edit-labels-btn[b-ag6c17wihd] {
    color: #adb5bd;
    padding: 0 2px;
    line-height: 1;
    font-size: 0.75rem;
}

.rop-edit-labels-btn:hover[b-ag6c17wihd] {
    color: #0f2d5c;
}

.rop-done-btn[b-ag6c17wihd] {
    font-size: 0.75rem;
    padding: 0 4px;
    color: #0f2d5c;
}

.rop-remove-btn[b-ag6c17wihd] {
    flex-shrink: 0;
    padding: 0 6px;
    line-height: 1.4;
    font-size: 1rem;
}

.rop-label-check[b-ag6c17wihd] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.8rem;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 4px;
    border: 1px solid #dee2e6;
    background: white;
    margin: 2px;
}

.rop-label-check:hover[b-ag6c17wihd] {
    background: #f8f9fa;
}

/* Add panel */
.rop-add-panel[b-ag6c17wihd] {
    padding: 12px 14px;
    border-top: 1px solid #dee2e6;
    background: #fafbfc;
}

.rop-add-tabs[b-ag6c17wihd] {
    display: flex;
    gap: 4px;
    margin-bottom: 10px;
}

.rop-add-tab[b-ag6c17wihd] {
    background: none;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    padding: 3px 10px;
    font-size: 0.8rem;
    color: #6c757d;
    cursor: pointer;
    transition: all 0.15s;
}

.rop-add-tab.active[b-ag6c17wihd] {
    background: #0f2d5c;
    color: white;
    border-color: #0f2d5c;
}

.rop-add-tab:hover:not(.active)[b-ag6c17wihd] {
    background: #f0f0f0;
}

.rop-search-row[b-ag6c17wihd] {
    position: relative;
    margin-bottom: 8px;
}

.rop-searching-indicator[b-ag6c17wihd] {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.75rem;
    color: #6c757d;
}

.rop-results[b-ag6c17wihd] {
    max-height: 180px;
    overflow-y: auto;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    background: white;
    margin-bottom: 8px;
}

.rop-result-item[b-ag6c17wihd] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    cursor: pointer;
    border-bottom: 1px solid #f0f0f0;
    transition: background 0.1s;
}

.rop-result-item:last-child[b-ag6c17wihd] {
    border-bottom: none;
}

.rop-result-item:hover[b-ag6c17wihd] {
    background: #f8f9fa;
}

.rop-result-item.selected[b-ag6c17wihd] {
    background: #e8f0fe;
    border-color: #c0d4fc;
}

/* Confirmed selection — replaces the search box + result list so the choice
   is unambiguous. The old pale-blue row tint read as hover, not "selected". */
.rop-selected-chip[b-ag6c17wihd] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    margin-bottom: 8px;
    background: var(--crm-teal-50, #e8f7f4);
    border: 1px solid var(--crm-teal, #04cdaf);
    border-radius: 6px;
}

.rop-selected-check[b-ag6c17wihd] {
    flex: 0 0 auto;
    font-size: 0.9rem;
    color: var(--crm-teal, #04cdaf);
}

.rop-selected-name[b-ag6c17wihd] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--crm-navy, #0d2447);
}

.rop-selected-subtitle[b-ag6c17wihd] {
    flex: 1 1 auto;
    font-size: 0.75rem;
    color: #6c757d;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rop-selected-clear[b-ag6c17wihd] {
    flex: 0 0 auto;
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    font-size: 0.7rem;
    color: #6c757d;
    background: transparent;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.1s, color 0.1s;
}

.rop-selected-clear:hover[b-ag6c17wihd] {
    background: rgba(13, 36, 71, 0.08);
    color: var(--crm-navy, #0d2447);
}

.rop-result-name[b-ag6c17wihd] {
    font-size: 0.875rem;
    font-weight: 500;
}

.rop-result-subtitle[b-ag6c17wihd] {
    font-size: 0.75rem;
    color: #6c757d;
}

.rop-label-section[b-ag6c17wihd] {
    margin: 10px 0 8px;
}

.rop-label-section-title[b-ag6c17wihd] {
    font-size: 0.8rem;
    font-weight: 500;
    color: #344054;
    display: block;
    margin-bottom: 6px;
}

.rop-label-options[b-ag6c17wihd] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.rop-add-actions[b-ag6c17wihd] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 12px;
}

/* ── Tag-style label picker ──────────────────────────────────────────── */

.rop-role-chip[b-ag6c17wihd] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    margin: 2px 4px 2px 0;
    background: #EEF2FF;
    color: #3730A3;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.5;
    white-space: nowrap;
}

.rop-role-chip-x[b-ag6c17wihd] {
    background: transparent;
    border: none;
    color: #4338CA;
    font-size: 0.95rem;
    line-height: 1;
    padding: 0 2px;
    cursor: pointer;
    border-radius: 50%;
}

.rop-role-chip-x:hover[b-ag6c17wihd] {
    background: #C7D2FE;
    color: #1E1B4B;
}

.rop-tag-input-wrap[b-ag6c17wihd] {
    position: relative;
    display: inline-block;
    margin: 2px 0;
}

.rop-tag-input[b-ag6c17wihd] {
    border: 1px dashed #94A3B8;
    background: transparent;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 0.75rem;
    color: #1F2937;
    min-width: 120px;
    outline: none;
}

.rop-tag-input:focus[b-ag6c17wihd] {
    border-color: #4338CA;
    border-style: solid;
    background: #FFFFFF;
}

.rop-tag-suggest[b-ag6c17wihd] {
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 4px;
    background: #FFFFFF;
    border: 1px solid #E5E7EB;
    border-radius: 6px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
    min-width: 220px;
    max-width: 320px;
    z-index: 20;
    padding: 4px 0;
    display: flex;
    flex-direction: column;
}

.rop-tag-suggest-item[b-ag6c17wihd] {
    background: transparent;
    border: none;
    text-align: left;
    padding: 6px 12px;
    font-size: 0.8rem;
    color: #111827;
    cursor: pointer;
}

.rop-tag-suggest-item:hover[b-ag6c17wihd] {
    background: #F3F4F6;
}

.rop-tag-suggest-create[b-ag6c17wihd] {
    border-top: 1px solid #E5E7EB;
    color: #1D4ED8;
}
/* /Shared/RoleAudienceEditor.razor.rz.scp.css */
.rae-chips[b-5kyzuhmcj5] {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-bottom: .5rem;
    min-height: 1.75rem;
    align-items: center;
}

.rae-chip[b-5kyzuhmcj5] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .2rem .25rem .2rem .55rem;
    border-radius: 999px;
    font-size: .8rem;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
}

.rae-chip-level[b-5kyzuhmcj5] {
    background: var(--bs-secondary-bg-subtle);
    color: var(--bs-secondary-text-emphasis);
}

.rae-x[b-5kyzuhmcj5] {
    border: 0;
    background: transparent;
    color: inherit;
    line-height: 1;
    padding: 0 .3rem;
    border-radius: 999px;
    font-size: 1rem;
}

.rae-x:hover:not(:disabled)[b-5kyzuhmcj5] {
    background: rgba(0, 0, 0, .08);
}
/* /Shared/RoleChangeDialog.razor.rz.scp.css */
.rcd-backdrop[b-5u44mzixtm] {
    background: rgba(13, 36, 71, .45);
}

.rcd-dialog[b-5u44mzixtm] {
    max-width: 620px;
}

.rcd-content[b-5u44mzixtm] {
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    box-shadow: var(--crm-shadow-lift);
}

.rcd-header[b-5u44mzixtm] {
    background: var(--crm-bg);
    border-bottom: 1px solid var(--crm-border);
    border-radius: var(--crm-r) var(--crm-r) 0 0;
    padding: .875rem 1.25rem;
}

.rcd-title[b-5u44mzixtm] {
    font-size: .98rem;
    font-weight: 600;
    color: var(--crm-navy);
    line-height: 1.35;
}

.rcd-body[b-5u44mzixtm] {
    padding: 1.1rem 1.25rem 1.25rem;
    font-size: .875rem;
}

.rcd-loading[b-5u44mzixtm] {
    color: var(--crm-text-2);
    padding: .5rem 0;
}

/* The date is the decision this dialog exists for, so it leads, and its band changes with it:
   neutral for today, navy for a backdate being recorded, teal for a change being staged. */
.rcd-when[b-5u44mzixtm] {
    display: grid;
    grid-template-columns: auto 11rem 1fr;
    align-items: center;
    gap: .35rem .875rem;
    padding: .75rem .875rem;
    border: 1px solid var(--crm-border);
    border-left: 3px solid var(--crm-border-2);
    border-radius: var(--crm-r-sm);
    background: var(--crm-surface-2);
    margin-bottom: 1rem;
    transition: border-color var(--crm-fast) var(--crm-ease), background var(--crm-fast) var(--crm-ease);
}

.rcd-when-past[b-5u44mzixtm] {
    border-left-color: var(--crm-navy-400);
}

.rcd-when-future[b-5u44mzixtm] {
    border-left-color: var(--crm-teal);
    background: var(--crm-teal-50);
}

.rcd-when-label[b-5u44mzixtm] {
    font-weight: 600;
    color: var(--crm-navy);
    margin: 0;
}

.rcd-date[b-5u44mzixtm] {
    font-variant-numeric: tabular-nums;
}

.rcd-when-text[b-5u44mzixtm] {
    color: var(--crm-text-2);
    font-size: .82rem;
    line-height: 1.4;
}

.rcd-note[b-5u44mzixtm],
.rcd-warning[b-5u44mzixtm] {
    display: flex;
    gap: .5rem;
    align-items: baseline;
    padding: .5rem .75rem;
    border-radius: var(--crm-r-sm);
    margin-bottom: .5rem;
    font-size: .82rem;
    line-height: 1.4;
}

.rcd-note[b-5u44mzixtm] {
    background: var(--crm-bg);
    color: var(--crm-text-2);
}

.rcd-warning[b-5u44mzixtm] {
    background: #fff7e6;
    color: #7a4b00;
}

.rcd-reason[b-5u44mzixtm] {
    margin: .25rem 0 1rem;
}

.rcd-related[b-5u44mzixtm] {
    margin: .25rem 0 1rem;
}

.rcd-related-heading[b-5u44mzixtm] {
    font-weight: 600;
    color: var(--crm-navy);
    margin-bottom: .5rem;
}

.rcd-person + .rcd-person[b-5u44mzixtm] {
    margin-top: .875rem;
    padding-top: .875rem;
    border-top: 1px solid var(--crm-border);
}

.rcd-person-name[b-5u44mzixtm] {
    font-weight: 600;
    color: var(--crm-text);
    margin-bottom: .35rem;
}

.rcd-person-role[b-5u44mzixtm] {
    font-weight: 400;
    color: var(--crm-text-3);
    margin-left: .35rem;
}

.rcd-group[b-5u44mzixtm] {
    margin: .35rem 0 .5rem;
}

.rcd-group-name[b-5u44mzixtm] {
    font-size: .78rem;
    color: var(--crm-text-3);
    margin-bottom: .2rem;
}

.rcd-option[b-5u44mzixtm] {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    padding: .4rem .5rem;
    border-radius: var(--crm-r-sm);
    cursor: pointer;
}

.rcd-option:hover[b-5u44mzixtm] {
    background: var(--crm-bg);
}

.rcd-option .form-check-input[b-5u44mzixtm] {
    margin-top: .15rem;
    flex-shrink: 0;
}

.rcd-option-text[b-5u44mzixtm] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.rcd-option-label[b-5u44mzixtm] {
    color: var(--crm-text);
}

.rcd-option-context[b-5u44mzixtm] {
    font-size: .78rem;
    color: var(--crm-text-3);
}

.rcd-focus-tag[b-5u44mzixtm] {
    flex-shrink: 0;
    font-size: .7rem;
    font-weight: 600;
    color: var(--crm-teal-600);
    background: var(--crm-teal-50);
    border: 1px solid rgba(var(--crm-teal-rgb), .35);
    border-radius: 999px;
    padding: .05rem .5rem;
    align-self: center;
}

.rcd-footer[b-5u44mzixtm] {
    border-top: 1px solid var(--crm-border);
    padding: .75rem 1.25rem;
}

@media (max-width: 575.98px) {
    .rcd-when[b-5u44mzixtm] {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rcd-when[b-5u44mzixtm] {
        transition: none;
    }
}
/* /Shared/RolePrincipalPicker.razor.rz.scp.css */
.rpp-head[b-hjp00gkyg7] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .5rem;
}

.rpp-switch[b-hjp00gkyg7] {
    font-size: .75rem;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
}

.rpp-switch:hover[b-hjp00gkyg7] {
    text-decoration: underline;
}
/* /Shared/Security/AccountSecurityBanner.razor.rz.scp.css */
.mfa-nudge[b-7e6xb4he9m] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    padding: 0.35rem 1rem;
    background: linear-gradient(90deg, #1d4ed8, #2563eb);
    color: #eff6ff;
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.4;
    position: sticky;
    top: 58px;
    z-index: 19;
    text-align: center;
}

.mfa-nudge-icon[b-7e6xb4he9m] {
    font-size: 0.95rem;
    opacity: 0.9;
}

.mfa-nudge-action[b-7e6xb4he9m] {
    color: #ffffff;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

    .mfa-nudge-action:hover[b-7e6xb4he9m] {
        color: #dbeafe;
    }

.mfa-nudge-dismiss[b-7e6xb4he9m] {
    background: transparent;
    border: none;
    color: #dbeafe;
    font-size: 1.1rem;
    line-height: 1;
    padding: 0 0.25rem;
    cursor: pointer;
    margin-left: 0.25rem;
}

    .mfa-nudge-dismiss:hover[b-7e6xb4he9m] {
        color: #ffffff;
    }

/* In a portal page: part of the page, not pinned under the staff header. */
.mfa-nudge--inline[b-7e6xb4he9m] {
    position: static;
    border-radius: 8px;
    margin-bottom: 1rem;
}

/* /Shared/Security/AccountSecurityPanel.razor.rz.scp.css */
.as-trusted[b-o94z9kxrec] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    border-top: 1px solid var(--crm-border);
    font-size: 0.875rem;
    color: var(--crm-text-2);
}
/* /Shared/Security/ActiveSessionsSection.razor.rz.scp.css */
.as-session-list[b-2xj1muiyfb] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.as-session[b-2xj1muiyfb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.65rem 0;
    border-bottom: 1px solid var(--crm-border);
}

.as-session:last-child[b-2xj1muiyfb] {
    border-bottom: none;
}

.as-session-main[b-2xj1muiyfb] {
    min-width: 0;
}

.as-session-device[b-2xj1muiyfb] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 600;
    color: var(--crm-text);
}

.as-session-badge[b-2xj1muiyfb] {
    font-weight: 500;
    font-size: 0.7rem;
}

.as-session-meta[b-2xj1muiyfb] {
    font-size: 0.8rem;
    color: var(--crm-text-3);
    margin-top: 0.15rem;
    overflow-wrap: anywhere;
}
/* /Shared/Security/ForgotPasswordPanel.razor.rz.scp.css */
.fp-desc[b-nabt8rddx8] {
    font-size: 0.88rem;
    color: var(--crm-text-2);
    line-height: 1.55;
    margin-bottom: 1.25rem;
}

.fp-sent[b-nabt8rddx8] {
    text-align: center;
    padding: 1rem 0 0.5rem;
}

.fp-sent-icon[b-nabt8rddx8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
    margin-bottom: 1rem;
}

.fp-sent-text[b-nabt8rddx8] {
    font-size: 0.92rem;
    color: var(--crm-text);
    line-height: 1.5;
    margin-bottom: 0.25rem;
}

.fp-sent-hint[b-nabt8rddx8] {
    font-size: 0.8rem;
    color: var(--crm-text-3);
}

.fp-back[b-nabt8rddx8] {
    text-align: center;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--crm-border);
}

.fp-back-link[b-nabt8rddx8] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.84rem;
    color: var(--crm-text-2);
    text-decoration: none;
    transition: color var(--crm-fast) ease;
}

.fp-back-link:hover[b-nabt8rddx8] {
    color: var(--crm-navy);
}
/* /Shared/Security/PasskeysSection.razor.rz.scp.css */
.pk-list[b-lc9bu51jwc] {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
}

.pk-item[b-lc9bu51jwc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.6rem 0.85rem;
    border-bottom: 1px solid var(--crm-border);
}

.pk-item:last-child[b-lc9bu51jwc] {
    border-bottom: none;
}

.pk-main[b-lc9bu51jwc] {
    min-width: 0;
}

.pk-name[b-lc9bu51jwc] {
    font-weight: 600;
    color: var(--crm-text);
}

.pk-meta[b-lc9bu51jwc] {
    font-size: 0.8rem;
    color: var(--crm-text-3);
}

.pk-name-input[b-lc9bu51jwc] {
    max-width: 16rem;
}
/* /Shared/Security/RecoveryCodesDisplay.razor.rz.scp.css */
.rc-list[b-ppopih7ak7] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.35rem 1.5rem;
    margin: 0 0 1rem;
    padding: 0.85rem 1rem 0.85rem 2.25rem;
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    background: var(--crm-bg);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.9rem;
    letter-spacing: 0.04em;
}

.rc-list li[b-ppopih7ak7]::marker {
    color: var(--crm-text-3);
    font-size: 0.75rem;
}

@media (max-width: 480px) {
    .rc-list[b-ppopih7ak7] {
        grid-template-columns: 1fr;
    }
}
/* /Shared/Security/ResetPasswordPanel.razor.rz.scp.css */
.rp-success[b-58fcw00m92] {
    text-align: center;
    padding: 1rem 0 0.5rem;
}

.rp-success-icon[b-58fcw00m92] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--crm-teal-50);
    color: var(--crm-teal-600);
    margin-bottom: 1rem;
}

.rp-success-text[b-58fcw00m92] {
    font-size: 0.92rem;
    color: var(--crm-text);
    line-height: 1.5;
    margin-bottom: 0.25rem;
}
/* /Shared/Security/StepUpDialog.razor.rz.scp.css */
.stepup-code[b-xdivyhgmd2] {
    font-size: 1.25rem;
    letter-spacing: 0.3em;
    text-align: center;
}

.stepup-others[b-xdivyhgmd2] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.25rem 1rem;
    margin-top: 0.75rem;
}
/* /Shared/Security/TotpQrPanel.razor.rz.scp.css */
.totp-qr[b-w1t5ux8xp7] {
    display: flex;
    justify-content: center;
    margin-bottom: 0.75rem;
}

.totp-qr img[b-w1t5ux8xp7] {
    width: 184px;
    height: 184px;
    border-radius: 8px;
    border: 1px solid var(--crm-border);
    background: #fff;
    padding: 6px;
}

.totp-manual summary[b-w1t5ux8xp7] {
    cursor: pointer;
    font-size: 0.85rem;
    color: var(--crm-text-2);
}

.totp-key[b-w1t5ux8xp7] {
    margin-top: 0.5rem;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    background: var(--crm-bg);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.85rem;
    letter-spacing: 0.12em;
    text-align: center;
    overflow-wrap: anywhere;
}

.totp-code[b-w1t5ux8xp7] {
    max-width: 12rem;
    font-size: 1.25rem;
    letter-spacing: 0.3em;
    text-align: center;
}
/* /Shared/SendEmailForm.razor.rz.scp.css */
.em-compose-btn[b-njvlutmnfp] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    font-weight: 500;
}

.em-compose-card[b-njvlutmnfp] {
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
    box-shadow: var(--crm-shadow-xs);
    overflow: hidden;
    margin-bottom: 1rem;
}

.em-compose-header[b-njvlutmnfp] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 0.9rem;
    background: var(--crm-bg);
    border-bottom: 1px solid var(--crm-border);
}

.em-compose-title[b-njvlutmnfp] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-navy);
}

.em-compose-close[b-njvlutmnfp] {
    font-size: 0.75rem;
    padding: 0.15rem 0.5rem;
}

.em-compose-body[b-njvlutmnfp] {
    padding: 0.9rem;
}

.em-compose-label[b-njvlutmnfp] {
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
    margin-bottom: 0.2rem;
}

.em-compose-actions[b-njvlutmnfp] {
    display: flex;
    justify-content: flex-end;
    padding-top: 0.5rem;
}
/* /Shared/Sheets/ColumnManagerModal.razor.rz.scp.css */
.colmgr-item[b-o9mu9jno81] {
    border-radius: .4rem;
    padding-left: .25rem;
    padding-right: .25rem;
}

/* Compact color swatch used in the conditional-format rule builder. */
.colmgr-swatch[b-o9mu9jno81] {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    margin: 0;
    cursor: pointer;
    color: var(--crm-text-2, #4A5B78);
}
.colmgr-swatch input[type="color"][b-o9mu9jno81] {
    width: 1.7rem;
    height: 1.6rem;
    padding: 0;
    border: 1px solid var(--crm-border, #ccc);
    border-radius: .25rem;
    background: none;
    cursor: pointer;
}

.colmgr-item:hover[b-o9mu9jno81] {
    background: var(--bs-tertiary-bg, #f6f8fb);
}

.colmgr-item.dragging[b-o9mu9jno81] {
    opacity: .5;
}

.colmgr-item.editing[b-o9mu9jno81] {
    background: var(--bs-primary-bg-subtle, #e7f1ff);
}

.colmgr-grip[b-o9mu9jno81] {
    color: var(--bs-secondary-color, #adb5bd);
    cursor: grab;
}

.colmgr-item[draggable="true"]:active .colmgr-grip[b-o9mu9jno81] {
    cursor: grabbing;
}

.colmgr-name[b-o9mu9jno81] {
    border: 0;
    background: none;
}

.colmgr-chip[b-o9mu9jno81] {
    font-weight: 500;
    font-size: .68rem;
}

.colmgr-form[b-o9mu9jno81] {
    background: var(--bs-tertiary-bg, #f8f9fa);
}
/* /Shared/Sheets/EntityRefPicker.razor.rz.scp.css */
.entity-ref-picker[b-nd4y9an7cx] { position: relative; }

.entity-ref-picker__chips[b-nd4y9an7cx] {
    display: flex;
    flex-wrap: wrap;
    gap: .2rem;
    margin-bottom: .2rem;
}

.entity-ref-picker__chip[b-nd4y9an7cx] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-weight: 500;
}

.entity-ref-picker__x[b-nd4y9an7cx] {
    font-size: .5rem;
    padding: .15rem;
}

/* In-flow (not absolute) so it never fights the data table's cell stacking — the edit cell simply
   grows to fit while searching. */
.entity-ref-picker__menu[b-nd4y9an7cx] {
    max-height: 11rem;
    overflow-y: auto;
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .35rem;
    box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .15);
    margin-top: .15rem;
}

.entity-ref-picker__opt[b-nd4y9an7cx] {
    display: block;
    width: 100%;
    text-align: left;
    padding: .3rem .55rem;
    border: 0;
    background: transparent;
    font-size: .82rem;
}

.entity-ref-picker__opt:hover[b-nd4y9an7cx] { background: var(--bs-tertiary-bg, #f1f3f5); }

.entity-ref-picker__empty[b-nd4y9an7cx] {
    padding: .3rem .55rem;
    font-size: .8rem;
    color: var(--bs-secondary-color, #6c757d);
}
/* /Shared/Sheets/SheetFolderShareDialog.razor.rz.scp.css */
/* Keep the per-row level select narrow enough that the person's name still gets the room, but wide
   enough that "Can manage sheets" isn't clipped. */
.folder-share-level[b-sluvbsemsh] {
    width: 11.5rem;
}

@media (max-width: 575.98px) {
    .folder-share-level[b-sluvbsemsh] {
        width: 9rem;
    }
}
/* /Shared/Sheets/SheetGrid.razor.rz.scp.css */
.sheet-grid[b-7tr2ptgz3x] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    /* Claim the leftover height when the host bounds us (the sheet workspace on desktop); inert
       when it doesn't (the portal), where the scroll box falls back to its own max-height. */
    flex: 1 1 auto;
    min-height: 0;
}

.sheet-grid__toolbar[b-7tr2ptgz3x] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
    padding: .25rem 0 .5rem;
}

.sheet-grid__toolbar-spacer[b-7tr2ptgz3x] { flex: 1 1 auto; }

.sheet-grid__viewselect[b-7tr2ptgz3x] { width: auto; min-width: 9rem; }

/* Column show/hide popover */
.sheet-grid__colmenu-wrap[b-7tr2ptgz3x] { position: relative; display: inline-block; }
/* Invisible click-catcher behind the popover so clicking away dismisses it. */
.sheet-grid__menu-backdrop[b-7tr2ptgz3x] { position: fixed; inset: 0; z-index: 15; background: transparent; }
.sheet-grid__colmenu[b-7tr2ptgz3x] {
    position: absolute;
    z-index: 20;
    top: calc(100% + .25rem);
    left: 0;
    min-width: 12rem;
    max-height: 16rem;
    overflow-y: auto;
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .5rem;
    box-shadow: 0 .5rem 1rem rgba(0,0,0,.15);
    padding: .35rem;
}
.sheet-grid__colmenu-item[b-7tr2ptgz3x] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .25rem .4rem;
    font-size: .85rem;
    border-radius: .35rem;
    cursor: pointer;
}
.sheet-grid__colmenu-item:hover[b-7tr2ptgz3x] { background: var(--bs-tertiary-bg, #f8f9fa); }
.sheet-grid__colmenu-hint[b-7tr2ptgz3x] { font-size: .72rem; color: var(--bs-secondary-color, #6c757d); padding: .15rem .4rem .35rem; }
.sheet-grid__colmenu-label[b-7tr2ptgz3x] { flex: 1 1 auto; }
.sheet-grid__width-input[b-7tr2ptgz3x] { width: 4.5rem; flex: 0 0 auto; padding: .1rem .3rem; font-size: .75rem; }

.sheet-grid__wrap-toggle[b-7tr2ptgz3x] {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    flex: 0 0 auto;
    font-size: .7rem;
    color: var(--crm-text-2, #4b5563);
    cursor: pointer;
    user-select: none;
}

.sheet-grid__wrap-toggle input[b-7tr2ptgz3x] { margin: 0; }

/* Draggable column headers (reorder) */
.sheet-grid__col-head[b-7tr2ptgz3x] { cursor: grab; }
.sheet-grid__col-head:active[b-7tr2ptgz3x] { cursor: grabbing; }

/* Advanced (and/or/not) filter panel */
.sheet-grid__filterpanel[b-7tr2ptgz3x] { background: var(--bs-tertiary-bg, #f8f9fa); }

/* Filter row under the header */
.sheet-grid__filterrow th[b-7tr2ptgz3x] { padding: .25rem .4rem; background: var(--bs-tertiary-bg, #f8f9fa); }
.sheet-grid__filterrow input[b-7tr2ptgz3x] { min-width: 6rem; }

/* Bulk action bar */
.sheet-grid__bulkbar[b-7tr2ptgz3x] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
    padding: .4rem .6rem;
    margin-bottom: .5rem;
    background: var(--bs-primary-bg-subtle, #cfe2ff);
    border: 1px solid var(--bs-primary-border-subtle, #9ec5fe);
    border-radius: .5rem;
    font-size: .85rem;
}

.sheet-grid__count[b-7tr2ptgz3x] {
    font-size: .8rem;
    color: var(--bs-secondary-color, #6c757d);
    font-variant-numeric: tabular-nums;
}

/* Scroll host for BOTH axes, so the horizontal scrollbar sits at the bottom of the visible grid
   instead of below the last row of a 2000px-tall table, and so the header has a bounded box to
   stick inside. max-height is the fallback for hosts that give the grid no bounded flex chain —
   the member/vendor portal and mobile; a host that does bound it overrides this to `none`. */
.sheet-grid__scroll[b-7tr2ptgz3x] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    max-height: 70vh;
    max-height: 70dvh; /* dvh where supported: a mobile URL bar shouldn't clip the grid */
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .5rem;
}

/* nowrap sits on the cells, not the table. On the table it inherited to every cell and there was
   no way to opt a single column out of it — which is what made word wrap impossible. Auto table
   layout is kept deliberately: switching to table-layout:fixed would make widths authoritative
   but would also re-lay-out every existing sheet, and wrapping is opt-in per column. */
.sheet-grid__table[b-7tr2ptgz3x] {
    margin-bottom: 0;
    /* Collapsed borders belong to the TABLE, not the cell, so the header's 2px bottom border
       (app.css .table thead th) stays behind when the header pins. Separate borders travel with
       the cell. Safe here: Bootstrap's reboot zeroes every table border width and only re-adds
       border-bottom, so there are no adjacent borders to double up. */
    border-collapse: separate;
    border-spacing: 0; /* mandatory — the initial value is 2px */
}

.sheet-grid__table th[b-7tr2ptgz3x],
.sheet-grid__table td[b-7tr2ptgz3x] {
    white-space: nowrap;
}

/* Applied to every cell of a column that wraps — which now includes every column with an explicit
   width, since a width the user dragged is a contract the layout has to keep.
   overflow-wrap:anywhere is the load-bearing half: unlike break-word it actually reduces the
   cell's min-content width, which is the only thing the auto table algorithm respects. Without it
   a long unbroken token (a URL, an ID) holds the column open and defeats both. */
.sheet-grid__table td.sheet-grid__wrap[b-7tr2ptgz3x],
.sheet-grid__table th.sheet-grid__wrap[b-7tr2ptgz3x] {
    white-space: normal;
    overflow-wrap: anywhere;
}

/* Form controls carry an intrinsic width (~20ch for a bare input) that becomes the cell's
   min-content contribution and would drag a narrow sized column back open. width:1px collapses
   that contribution to nothing while min-width:100% keeps the used width filling the cell.
   Scoped to wrapping cells so an unsized column keeps its comfort floor below. */
.sheet-grid__table td.sheet-grid__wrap[b-7tr2ptgz3x]  .form-control,
.sheet-grid__table td.sheet-grid__wrap[b-7tr2ptgz3x]  .form-select,
.sheet-grid__table th.sheet-grid__wrap[b-7tr2ptgz3x]  .form-control,
.sheet-grid__table th.sheet-grid__wrap[b-7tr2ptgz3x]  .form-select {
    width: 1px;
    min-width: 100%;
}

/* Number/date filters put two controls side by side; in a narrow column let them stack rather
   than splitting 60px between them. */
.sheet-grid__filterrow th.sheet-grid__wrap .d-flex[b-7tr2ptgz3x] {
    flex-wrap: wrap;
}

/* Both header rows pin as one box. Sticking the <thead> rather than each <th> means the optional
   filter row needs no measured top offset — it can't drift out of sync when the header height
   changes (a wrapped column label makes it genuinely variable). Stays under the column menu's
   backdrop (z-15) so the menu still covers the header. */
.sheet-grid__table thead[b-7tr2ptgz3x] {
    position: sticky;
    top: 0;
    z-index: 7;
}

/* Resize gutter on the trailing edge of each header. */
.sheet-grid__col-head[b-7tr2ptgz3x] {
    position: relative;
}

.sheet-grid__col-head[b-7tr2ptgz3x] {
    /* Keep a wrapped label clear of the 7px gutter. */
    padding-right: .55rem;
}

.sheet-grid__resizer[b-7tr2ptgz3x] {
    position: absolute;
    top: 0;
    bottom: 0; /* inset-based, not height:100%: percentage heights on a table cell are unreliable,
                  and this tracks a header that grew because its label wrapped */
    right: 0;
    width: 7px;
    cursor: col-resize;
    /* Sits above the header's own drag surface so grabbing the edge resizes rather than
       starting a column reorder. */
    z-index: 1;
    touch-action: none;
    user-select: none;
}

.sheet-grid__resizer:hover[b-7tr2ptgz3x],
.sheet-grid__resizer:active[b-7tr2ptgz3x] {
    background: var(--crm-teal, #00C5A8);
    opacity: .5;
}

/* Full-screen catcher active only while dragging — the pointer leaves the 7px gutter instantly,
   so moves have to be tracked somewhere that covers the viewport. */
.sheet-grid__resize-catcher[b-7tr2ptgz3x] {
    position: fixed;
    inset: 0;
    z-index: 1080;
    cursor: col-resize;
    touch-action: none;
}

/* Compact, Smartsheet-like density. The global `.table tbody td` padding (.875rem) is far taller than a
   spreadsheet grid needs; tighten rows + headers here (scoped selectors win on specificity). */
.sheet-grid__table tbody td[b-7tr2ptgz3x] {
    padding: .3rem .5rem;
    /* Top, not middle: once a column wraps, a row is as tall as its tallest cell, and centring the
       short cells against a multi-line one reads ragged. */
    vertical-align: top;
}
.sheet-grid__table thead th[b-7tr2ptgz3x] {
    padding: .3rem .5rem;
    vertical-align: bottom;
}

/* app.css staggers every `tbody tr` with `animation: … both`. Fill-mode `both` retains the final
   `transform: translateX(0)`, which makes every row a permanent stacking context — the exact trap
   app.css documents for cards. That confines the z-index:5 rules below to their own row (so they
   have never actually worked) and would paint all 50 rows over the sticky header. A spreadsheet
   has no business doing an entrance animation anyway. */
.sheet-grid__table tbody tr[b-7tr2ptgz3x] {
    animation: none;
}

/* Narrow pinned checkbox column — only used when a sheet has no primary/name column but bulk-select is on. */
.sheet-grid__check-col[b-7tr2ptgz3x] {
    width: 2.5rem;
    min-width: 2.5rem;
    text-align: center;
}

/* Focused (selected-not-editing) cell — the formatting target. */
.sheet-grid__focused[b-7tr2ptgz3x] {
    box-shadow: inset 0 0 0 2px var(--crm-teal, #00C5A8) !important;
}

/* Manual-formatting toolbar. */
.sheet-grid__formatbar[b-7tr2ptgz3x] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .4rem;
    padding: .4rem .6rem;
    margin-bottom: .5rem;
    background: var(--crm-surface-2, #E6EEF8);
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: .5rem;
}

/* No target yet (nothing focused/selected): the bar keeps its space so clicking a cell can't shift
   the grid out from under the pointer, but it reads as inert. */
.sheet-grid__formatbar--idle[b-7tr2ptgz3x] {
    opacity: .45;
    background: var(--crm-surface-1, #f4f7fb);
}

.sheet-grid__colorpick[b-7tr2ptgz3x] {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    margin: 0;
    cursor: pointer;
    color: var(--crm-text-2, #4A5B78);
}
.sheet-grid__colorpick input[type="color"][b-7tr2ptgz3x] {
    width: 1.7rem;
    height: 1.5rem;
    padding: 0;
    border: 1px solid var(--crm-border, #ccc);
    border-radius: .25rem;
    background: none;
    cursor: pointer;
}

.sheet-grid__table th[b-7tr2ptgz3x] {
    user-select: none;
    cursor: pointer;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--bs-secondary-color, #6c757d);
}

.sheet-grid__sort[b-7tr2ptgz3x] {
    font-size: .7rem;
    margin-left: .15rem;
}

/* Frozen first column: pinned with a subtle shadow that only shows once scrolled. */
.sheet-grid__frozen[b-7tr2ptgz3x] {
    position: sticky;
    left: 0;
    /* Above the z-5 editor cells, or an open inline editor in a scroll column paints over the
       pinned column once the grid is scrolled sideways. Still below the sticky thead (7). */
    z-index: 6;
    background: var(--bs-body-bg, #fff);
    box-shadow: 6px 0 6px -6px rgba(0, 0, 0, .18);
}

/* Local to thead's own stacking context — this only has to beat its sibling <th>s, so it doesn't
   compete with the 7 above. The header/frozen intersection needs no rule of its own: it inherits
   top:0 from the sticky thead and left:0 from the rule above. */
.sheet-grid__table thead .sheet-grid__frozen[b-7tr2ptgz3x] {
    z-index: 3;
}

.sheet-grid__name-cell[b-7tr2ptgz3x] { font-weight: 600; }
.sheet-grid__actions-col[b-7tr2ptgz3x] { width: 5rem; text-align: right; white-space: nowrap; }

/* Edit row gets a faint tint so it reads as "live". position+z-index so an inline picker's
   absolute dropdown overlays the rows below it (table cells otherwise paint over it). */
.sheet-grid__edit-row > td[b-7tr2ptgz3x] {
    background: var(--bs-primary-bg-subtle, #e7f1ff);
    vertical-align: top;
    position: relative;
    z-index: 5;
}
.sheet-grid__edit-row .sheet-grid__frozen[b-7tr2ptgz3x] {
    background: var(--bs-primary-bg-subtle, #e7f1ff);
}

.sheet-grid__locked[b-7tr2ptgz3x] {
    color: var(--bs-secondary-color, #6c757d);
    background-image: repeating-linear-gradient(
        45deg,
        transparent,
        transparent 6px,
        rgba(0, 0, 0, .025) 6px,
        rgba(0, 0, 0, .025) 12px);
}

.sheet-grid__err[b-7tr2ptgz3x] {
    color: var(--bs-danger, #dc3545);
    font-size: .72rem;
    margin-top: .15rem;
    white-space: normal;
}

/* Comfort floor for editors in a column nobody has sized. A sized column overrides this — see the
   .sheet-grid__wrap rules above. */
.sheet-grid__table td .form-control-sm[b-7tr2ptgz3x],
.sheet-grid__table td .form-select-sm[b-7tr2ptgz3x] {
    min-width: 8rem;
}

/* Inline (Smartsheet-style) editing: editable cells invite a click; the active cell needs a
   stacking context so an entity-ref picker's absolute dropdown overlays the rows below it. */
.sheet-grid__editable-cell[b-7tr2ptgz3x] { cursor: text; position: relative; }
.sheet-grid__editable-cell:hover[b-7tr2ptgz3x] { background: var(--bs-tertiary-bg, #f3f6fb); box-shadow: inset 0 0 0 1px var(--bs-border-color, #dee2e6); }
.sheet-grid__editable-cell:has(.entity-ref-picker)[b-7tr2ptgz3x],
.sheet-grid__editable-cell:has(input)[b-7tr2ptgz3x],
.sheet-grid__editable-cell:has(select)[b-7tr2ptgz3x] { z-index: 5; }
.sheet-grid__name-cell .sheet-grid__editable:hover[b-7tr2ptgz3x] { text-decoration: underline dotted; }

/* Column-menu drag handles (the reliable reorder affordance the hint points to) */
.sheet-grid__colmenu-grip[b-7tr2ptgz3x] { color: var(--bs-secondary-color, #adb5bd); cursor: grab; flex: 0 0 auto; }
.sheet-grid__colmenu-item[draggable="true"]:active[b-7tr2ptgz3x] { cursor: grabbing; }
.sheet-grid__colmenu-item.dragging[b-7tr2ptgz3x] { opacity: .5; }

.sheet-grid__viewlabel[b-7tr2ptgz3x] {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--bs-secondary-color, #6c757d);
    margin-left: .25rem;
}
/* /Shared/Sheets/SheetSharingPanel.razor.rz.scp.css */
/* Line the "Add" button up with the row of small selects (which render ~37px tall in this app). */
.sheet-share-add[b-np3cgs2nwl] {
    min-height: 37px;
    font-size: 0.875rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Small section labels ("Owner" / "From the folder" / "Shared with"). */
.sheet-share-section[b-np3cgs2nwl] {
    font-size: 0.7rem;
    letter-spacing: 0.04em;
}

/* Inherited rows are read-only here — sit them back so the editable list reads as the active one. */
.sheet-share-inherited[b-np3cgs2nwl] {
    opacity: 0.75;
}
/* /Shared/SortableHeader.razor.rz.scp.css */
.bd-sort-header[b-emrhih020p] {
    background: transparent;
    border: 0;
    padding: 0.5rem 0.5rem;
    font-weight: 600;
    color: inherit;
    text-align: left;
    width: 100%;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    cursor: pointer;
}

.bd-sort-header:hover[b-emrhih020p] {
    color: var(--bs-primary);
}

.bd-sort-header--active[b-emrhih020p] {
    color: var(--bs-primary);
}

.bd-sort-icon--inactive[b-emrhih020p] {
    opacity: 0.25;
}

.bd-sort-header:hover .bd-sort-icon--inactive[b-emrhih020p] {
    opacity: 0.6;
}
/* /Shared/SortableList.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════
   SortableList — drag-and-drop reorder
   ═══════════════════════════════════════════════════════ */

.sl-list[b-pvfopqpf3e] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sl-item[b-pvfopqpf3e] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.75rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    transition: background-color var(--crm-fast) ease,
                border-color var(--crm-fast) ease,
                box-shadow var(--crm-fast) ease,
                opacity var(--crm-fast) ease,
                transform var(--crm-fast) var(--crm-ease);
    position: relative;
}

.sl-item:hover[b-pvfopqpf3e] {
    border-color: var(--crm-border-2);
    background: var(--crm-bg);
}

/* Drag handle */
.sl-handle[b-pvfopqpf3e] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    cursor: grab;
    color: var(--crm-text-3);
    border-radius: 4px;
    flex-shrink: 0;
    background: var(--crm-bg);
    border: 1px solid transparent;
    transition: color var(--crm-fast) ease,
                background-color var(--crm-fast) ease,
                border-color var(--crm-fast) ease;
}

.sl-handle:hover[b-pvfopqpf3e] {
    color: var(--crm-navy);
    background: var(--crm-surface-2);
    border-color: var(--crm-border);
}

.sl-handle:active[b-pvfopqpf3e] { cursor: grabbing; }

.sl-handle svg[b-pvfopqpf3e] {
    width: 14px;
    height: 14px;
}

/* Item content */
.sl-content[b-pvfopqpf3e] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

/* Action buttons area */
.sl-actions[b-pvfopqpf3e] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex-shrink: 0;
    opacity: 0.35;
    transition: opacity var(--crm-fast) ease;
}

.sl-item:hover .sl-actions[b-pvfopqpf3e] { opacity: 1; }

/* Up/down arrow buttons */
.sl-arrow[b-pvfopqpf3e] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    padding: 0;
    border: 1px solid var(--crm-border-2);
    border-radius: 3px;
    background: var(--crm-white);
    color: var(--crm-text-3);
    cursor: pointer;
    font-size: 0.75rem;
    transition: color var(--crm-fast) ease,
                border-color var(--crm-fast) ease,
                background-color var(--crm-fast) ease;
}

.sl-arrow:hover[b-pvfopqpf3e] {
    color: var(--crm-navy);
    border-color: var(--crm-navy);
    background: var(--crm-surface-2);
}

.sl-arrow:disabled[b-pvfopqpf3e] {
    opacity: 0.3;
    cursor: default;
    pointer-events: none;
}

/* ── Drag states ── */

.sl-item.sl-dragging[b-pvfopqpf3e] {
    opacity: 0.55;
    border-style: dashed;
    border-color: var(--crm-navy-400);
    background: var(--crm-surface-2);
    box-shadow: var(--crm-shadow);
}

.sl-item.sl-dragging .sl-handle[b-pvfopqpf3e] { cursor: grabbing; }

.sl-item.sl-drop-above[b-pvfopqpf3e]::before,
.sl-item.sl-drop-below[b-pvfopqpf3e]::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--crm-teal);
    border-radius: 2px;
    z-index: 2;
    box-shadow: 0 0 8px rgba(0, 197, 168, 0.45);
}

.sl-item.sl-drop-above[b-pvfopqpf3e]::before { top: -5px; }
.sl-item.sl-drop-below[b-pvfopqpf3e]::after  { bottom: -5px; }

.sl-item.sl-drop-target[b-pvfopqpf3e] {
    background: var(--crm-teal-50);
    border-color: var(--crm-teal);
}

/* Settle animation after drop */
@keyframes sl-settle-b-pvfopqpf3e {
    0%   { transform: scale(1.03); box-shadow: var(--crm-shadow-sm); }
    100% { transform: scale(1);    box-shadow: none; }
}

.sl-item.sl-just-dropped[b-pvfopqpf3e] {
    animation: sl-settle-b-pvfopqpf3e 0.25s var(--crm-ease) both;
    border-color: var(--crm-teal);
    background: var(--crm-teal-50);
}

/* ── Compact variant (for table-like field lists) ── */

.sl-compact .sl-item[b-pvfopqpf3e] {
    padding: 0.4rem 0.6rem;
    border-radius: 3px;
    gap: 0.4rem;
}

.sl-compact .sl-handle[b-pvfopqpf3e] {
    width: 1.35rem;
    height: 1.35rem;
}

.sl-compact .sl-handle svg[b-pvfopqpf3e] {
    width: 12px;
    height: 12px;
}

.sl-compact .sl-arrow[b-pvfopqpf3e] {
    width: 1.35rem;
    height: 1.35rem;
    font-size: 0.68rem;
}
/* /Shared/StaffList.razor.rz.scp.css */
.sl[b-wn0m0hbcgc] {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--crm-border, #dee2e6);
    margin-top: 12px;
    padding-top: 10px;
    gap: 8px;
}

/* Role in a fixed left gutter so the names line up down the card — the way the
   printed directory set its leadership blocks. */
.sl-person[b-wn0m0hbcgc] {
    display: grid;
    grid-template-columns: 4.5rem 1fr;
    gap: 10px;
    align-items: baseline;
}

/* A tier can withhold the role. Drop the empty leading column rather than leaving a
   4.5rem gutter that reads as a layout bug. */
.sl--no-role .sl-person[b-wn0m0hbcgc] {
    grid-template-columns: 1fr;
    gap: 2px;
}

.sl-extra[b-wn0m0hbcgc] {
    font-size: 0.78rem;
    color: var(--crm-text-3, #6c757d);
}

.sl-extra-label[b-wn0m0hbcgc] {
    color: var(--crm-text-2, #495057);
    font-weight: 500;
}

.sl-role[b-wn0m0hbcgc] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--crm-teal-600, #04a58c);
}

.sl-body[b-wn0m0hbcgc] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.sl-name[b-wn0m0hbcgc] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--crm-navy, #0d2447);
}

.sl-title[b-wn0m0hbcgc] {
    font-size: 0.78rem;
    color: var(--crm-text-2, #495057);
}

.sl-contact[b-wn0m0hbcgc] {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 12px;
    font-size: 0.78rem;
}

.sl-contact a[b-wn0m0hbcgc] {
    color: var(--crm-text-3, #6c757d);
    text-decoration: none;
    overflow-wrap: anywhere;
}

.sl-contact a:hover[b-wn0m0hbcgc] {
    color: var(--crm-teal-600, #04a58c);
    text-decoration: underline;
}

@media (max-width: 480px) {
    /* Stack rather than squeeze the name into a sliver on a phone. */
    .sl-person[b-wn0m0hbcgc] {
        grid-template-columns: 1fr;
        gap: 2px;
    }
}
/* /Shared/Surveys/SurveySharingPanel.razor.rz.scp.css */
/* Line the "Add" button up with the row of small selects (which render ~37px tall in this app). */
.survey-share-add[b-l7cms0uc19] {
    min-height: 37px;
    font-size: 0.875rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Small section labels ("Owner" / "From the folder" / "Shared with"). */
.survey-share-section[b-l7cms0uc19] {
    font-size: 0.7rem;
    letter-spacing: 0.04em;
}

/* Inherited rows are read-only here — sit them back so the editable list reads as the active one. */
.survey-share-inherited[b-l7cms0uc19] {
    opacity: 0.75;
}
/* /Shared/TagInput.razor.rz.scp.css */
.tag-input-wrap[b-ib0a5131gz] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.5rem;
    min-height: 2.15rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border-2);
    border-radius: var(--crm-r-sm);
    cursor: text;
    transition: border-color var(--crm-fast) ease, box-shadow var(--crm-fast) ease;
}

.tag-input-wrap:focus-within[b-ib0a5131gz] {
    border-color: var(--crm-teal);
    box-shadow: 0 0 0 3px var(--crm-teal-glow);
}

.tag-chip[b-ib0a5131gz] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.15rem 0.25rem 0.15rem 0.5rem;
    background: var(--crm-surface-2);
    border: 1px solid var(--crm-border);
    border-radius: 4px;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--crm-text);
    line-height: 1.3;
    animation: tag-pop-b-ib0a5131gz 0.15s var(--crm-ease) both;
}

@keyframes tag-pop-b-ib0a5131gz {
    0%   { transform: scale(0.85); opacity: 0; }
    100% { transform: scale(1);    opacity: 1; }
}

.tag-chip-text[b-ib0a5131gz] {
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tag-chip-remove[b-ib0a5131gz] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.15rem;
    height: 1.15rem;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--crm-text-3);
    border-radius: 3px;
    cursor: pointer;
    font-size: 0.85rem;
    transition: color var(--crm-fast) ease, background-color var(--crm-fast) ease;
}

.tag-chip-remove:hover[b-ib0a5131gz] {
    color: #c0392b;
    background: rgba(192, 57, 43, 0.1);
}

.tag-input-field[b-ib0a5131gz] {
    flex: 1;
    min-width: 80px;
    border: none;
    outline: none;
    background: transparent;
    font-size: 0.8rem;
    color: var(--crm-text);
    padding: 0.1rem 0;
}

.tag-input-field[b-ib0a5131gz]::placeholder {
    color: var(--crm-text-3);
}
/* /Shared/TicketAttachmentPicker.razor.rz.scp.css */
.tap-drop[b-w49wqhq063] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    padding: 0.85rem;
    border: 1.5px dashed var(--crm-border-2);
    border-radius: var(--crm-r);
    background: var(--crm-bg);
    color: var(--crm-text-2);
    font-size: 0.82rem;
    text-align: center;
    cursor: pointer;
    transition: border-color var(--crm-fast) var(--crm-ease), background var(--crm-fast) var(--crm-ease), color var(--crm-fast) var(--crm-ease);
}

.tap-drop:hover[b-w49wqhq063] {
    border-color: var(--crm-teal);
    background: var(--crm-teal-50, rgba(0,197,168,0.06));
    color: var(--crm-teal-600);
}

.tap-drop i[b-w49wqhq063] {
    font-size: 1.1rem;
    color: var(--crm-text-3);
}

.tap-drop:hover i[b-w49wqhq063] { color: var(--crm-teal-600); }

/* The InputFile-rendered input covers the zone so click AND drop both work. */
.tap-drop[b-w49wqhq063]  input[type=file] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.tap-browse[b-w49wqhq063] {
    color: var(--crm-teal-600);
    font-weight: 600;
    text-decoration: underline;
}

.tap-hint[b-w49wqhq063] {
    font-size: 0.7rem;
    color: var(--crm-text-3);
}

.tap-list[b-w49wqhq063] {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.tap-chip[b-w49wqhq063] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    padding: 0.3rem 0.5rem;
}

.tap-chip > i[b-w49wqhq063] { color: var(--crm-text-3); }

.tap-name[b-w49wqhq063] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--crm-text);
}

.tap-size[b-w49wqhq063] {
    color: var(--crm-text-3);
    font-size: 0.72rem;
    white-space: nowrap;
}

.tap-remove[b-w49wqhq063] {
    border: none;
    background: none;
    color: var(--crm-text-3);
    cursor: pointer;
    padding: 0 0.15rem;
    line-height: 1;
    font-size: 0.75rem;
}

.tap-remove:hover[b-w49wqhq063] { color: var(--bs-danger, #dc3545); }

.tap-warn[b-w49wqhq063] {
    margin: 0.4rem 0 0;
    font-size: 0.75rem;
    color: #C2410C;
}
/* /Shared/TicketAttachments.razor.rz.scp.css */
.ticket-att[b-zkvfipsvv0] { margin-top: 1rem; }

.ticket-att-head[b-zkvfipsvv0] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}

.ticket-att-title[b-zkvfipsvv0] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: 'Outfit', sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
}

.ticket-att-count[b-zkvfipsvv0] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--crm-surface-2, #E6EEF8);
    color: var(--crm-text-2);
    font-size: 0.66rem;
    font-weight: 700;
}

.ticket-att-empty[b-zkvfipsvv0] {
    margin: 0;
    font-size: 0.82rem;
    color: var(--crm-text-3);
}

.ticket-att-list[b-zkvfipsvv0] {
    list-style: none;
    margin: 0 0 0.5rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.ticket-att-item[b-zkvfipsvv0] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.55rem;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r-sm);
    background: var(--crm-white);
    transition: border-color var(--crm-fast) var(--crm-ease);
}

.ticket-att-item:hover[b-zkvfipsvv0] { border-color: var(--crm-border-2); }

.ticket-att-icon[b-zkvfipsvv0] {
    color: var(--crm-text-3);
    font-size: 1rem;
    flex: 0 0 auto;
}

.ticket-att-name[b-zkvfipsvv0] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left;
    background: none;
    border: none;
    padding: 0;
    color: var(--crm-navy-600, #1E3D70);
    font-weight: 500;
    cursor: pointer;
}

.ticket-att-name:hover[b-zkvfipsvv0] { color: var(--crm-teal-600, #009E88); text-decoration: underline; }

.ticket-att-size[b-zkvfipsvv0] {
    color: var(--crm-text-3);
    font-size: 0.72rem;
    white-space: nowrap;
}

.ticket-att-badge[b-zkvfipsvv0] {
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.05rem 0.35rem;
    border-radius: 3px;
    background: var(--crm-surface-2, #E6EEF8);
    color: var(--crm-text-2);
}

.ticket-att-del[b-zkvfipsvv0] {
    border: none;
    background: none;
    color: var(--crm-text-3);
    cursor: pointer;
    padding: 0 0.2rem;
    flex: 0 0 auto;
}

.ticket-att-del:hover[b-zkvfipsvv0] { color: var(--bs-danger, #dc3545); }

/* Dropzone */
.ticket-att-drop[b-zkvfipsvv0] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    padding: 0.7rem;
    border: 1.5px dashed var(--crm-border-2);
    border-radius: var(--crm-r);
    background: var(--crm-bg);
    color: var(--crm-text-3);
    font-size: 0.8rem;
    cursor: pointer;
    transition: border-color var(--crm-fast) var(--crm-ease), background var(--crm-fast) var(--crm-ease), color var(--crm-fast) var(--crm-ease);
}

.ticket-att-drop:hover[b-zkvfipsvv0] {
    border-color: var(--crm-teal);
    color: var(--crm-teal-600);
    background: var(--crm-teal-50, rgba(0,197,168,0.06));
}

.ticket-att-drop i[b-zkvfipsvv0] { font-size: 1rem; }

.ticket-att-browse[b-zkvfipsvv0] { color: var(--crm-teal-600, #009E88); font-weight: 600; text-decoration: underline; }

.ticket-att-hint[b-zkvfipsvv0] { color: var(--crm-text-3); font-size: 0.7rem; }

/* Full-cover input → click + native drag-drop both land on the zone. */
.ticket-att-drop[b-zkvfipsvv0]  input[type=file] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.ticket-att-drop.is-busy[b-zkvfipsvv0] { cursor: default; }
.ticket-att-drop.is-busy[b-zkvfipsvv0]  input[type=file] { display: none; }

.ticket-att-error[b-zkvfipsvv0] {
    margin: 0.4rem 0 0;
    font-size: 0.78rem;
    color: var(--bs-danger, #dc3545);
}
/* /Shared/TicketConversation.razor.rz.scp.css */
/* Ticket conversation timeline + compose. Built on the app design tokens
   (--crm-*) so it reads as part of the same system as ActivityCommentThread,
   but with a two-sided "support thread" treatment: requester vs staff vs
   internal note are each visually distinct (not by color alone — every kind
   carries a text label too). */

.ticket-thread[b-d1n5tojw20] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.ticket-empty[b-d1n5tojw20] {
    margin: 0;
    padding: 1.25rem;
    text-align: center;
    font-size: 0.85rem;
    color: var(--crm-text-3);
    background: var(--crm-bg);
    border: 1px dashed var(--crm-border);
    border-radius: var(--crm-r);
}

/* ── Message list ───────────────────────────── */
.ticket-msg-list[b-d1n5tojw20] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.ticket-msg[b-d1n5tojw20] {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
}

.ticket-msg-avatar[b-d1n5tojw20] {
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Outfit', sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #fff;
    user-select: none;
}

.ticket-msg--requester .ticket-msg-avatar[b-d1n5tojw20] { background: var(--crm-navy-400, #3A5A96); }
.ticket-msg--staff .ticket-msg-avatar[b-d1n5tojw20]     { background: var(--crm-teal-600, #009E88); }

.ticket-msg-main[b-d1n5tojw20] {
    flex: 1 1 auto;
    min-width: 0;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
    padding: 0.55rem 0.7rem;
}

/* Staff = "our side": a quiet teal accent. */
.ticket-msg--staff .ticket-msg-main[b-d1n5tojw20] {
    border-color: var(--crm-teal-glow, rgba(0,197,168,0.18));
    background: var(--crm-teal-50, rgba(0,197,168,0.06));
}

/* Internal note: clearly off-the-record (amber), never shown to requesters. */
.ticket-msg--internal .ticket-msg-main[b-d1n5tojw20] {
    border-color: #FDBA74;
    background: #FFF8F0;
}

.ticket-msg-head[b-d1n5tojw20] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 0.15rem;
}

.ticket-msg-author[b-d1n5tojw20] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--crm-text);
}

.ticket-msg-role[b-d1n5tojw20] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.05rem 0.35rem;
    border-radius: 3px;
    background: var(--crm-surface-2, #E6EEF8);
    color: var(--crm-text-2);
}

.ticket-msg--staff .ticket-msg-role[b-d1n5tojw20] {
    background: var(--crm-teal-glow, rgba(0,197,168,0.18));
    color: var(--crm-teal-600, #009E88);
}

.ticket-msg-note[b-d1n5tojw20] {
    font-family: 'Outfit', sans-serif;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.05rem 0.35rem;
    border-radius: 3px;
    background: #FFF7ED;
    color: #C2410C;
    border: 1px solid #FDBA74;
}

.ticket-msg-time[b-d1n5tojw20] {
    margin-left: auto;
    font-size: 0.68rem;
    color: var(--crm-text-3);
    white-space: nowrap;
}

.ticket-msg-body[b-d1n5tojw20] {
    font-size: 0.85rem;
    line-height: 1.55;
    color: var(--crm-text-2);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

/* ── System event line (auto-ack, status changes) ── */
.ticket-msg--system[b-d1n5tojw20] {
    justify-content: center;
}

.ticket-sys[b-d1n5tojw20] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.72rem;
    color: var(--crm-text-3);
    background: var(--crm-bg);
    border: 1px solid var(--crm-border);
    border-radius: 999px;
    padding: 0.15rem 0.6rem;
}

/* ── Compose ────────────────────────────────── */
.ticket-compose[b-d1n5tojw20] {
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
    background: var(--crm-white);
    padding: 0.6rem 0.7rem;
    transition: border-color var(--crm-fast) var(--crm-ease), background var(--crm-fast) var(--crm-ease);
}

.ticket-compose--internal[b-d1n5tojw20] {
    border-color: #FDBA74;
    background: #FFFBF5;
}

.ticket-compose-tabs[b-d1n5tojw20] {
    display: inline-flex;
    gap: 0.25rem;
    margin-bottom: 0.5rem;
    background: var(--crm-bg);
    border: 1px solid var(--crm-border);
    border-radius: 999px;
    padding: 0.15rem;
}

.ticket-compose-tab[b-d1n5tojw20] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-family: 'Outfit', sans-serif;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--crm-text-3);
    background: none;
    border: none;
    border-radius: 999px;
    padding: 0.2rem 0.7rem;
    cursor: pointer;
    transition: all var(--crm-fast) var(--crm-ease);
}

.ticket-compose-tab:hover[b-d1n5tojw20] { color: var(--crm-text); }

.ticket-compose-tab.is-active[b-d1n5tojw20] {
    background: var(--crm-white);
    color: var(--crm-navy);
    box-shadow: var(--crm-shadow-xs);
}

.ticket-compose-tab.is-internal.is-active[b-d1n5tojw20] {
    color: #C2410C;
}

.ticket-compose-input[b-d1n5tojw20] {
    font-size: 0.85rem;
    resize: vertical;
    min-height: 70px;
}

.ticket-compose-hint[b-d1n5tojw20] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin: 0.4rem 0 0;
    font-size: 0.72rem;
    color: #C2410C;
}

.ticket-compose-error[b-d1n5tojw20] {
    margin: 0.4rem 0 0;
    font-size: 0.78rem;
    color: var(--bs-danger, #dc3545);
}

.ticket-compose-actions[b-d1n5tojw20] {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.5rem;
}

/* Focus visibility (quality floor). */
.ticket-compose-tab:focus-visible[b-d1n5tojw20] {
    outline: 2px solid var(--crm-teal, #00C5A8);
    outline-offset: 1px;
}

/* Rich-text message body — tidy the spacing of server-sanitized HTML. */
.ticket-msg-body--rich[b-d1n5tojw20]  p { margin: 0 0 0.5rem; }
.ticket-msg-body--rich[b-d1n5tojw20]  p:last-child { margin-bottom: 0; }
.ticket-msg-body--rich[b-d1n5tojw20]  ul,
.ticket-msg-body--rich[b-d1n5tojw20]  ol { margin: 0 0 0.5rem 1.2rem; padding: 0; }
.ticket-msg-body--rich[b-d1n5tojw20]  blockquote {
    margin: 0 0 0.5rem;
    padding-left: 0.75rem;
    border-left: 3px solid var(--crm-border, #e5e7eb);
    color: var(--crm-text-2, #4b5563);
}
.ticket-msg-body--rich[b-d1n5tojw20]  pre {
    background: var(--crm-bg, #f8f9fb);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    overflow-x: auto;
}
.ticket-msg-body--rich[b-d1n5tojw20]  img { max-width: 100%; height: auto; }

/* Rich compose editor sits in a bordered box matching the plain input. */
.ticket-compose-rte[b-d1n5tojw20]  .ql-container {
    min-height: 96px;
    font-size: 0.9rem;
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
}
.ticket-compose-rte[b-d1n5tojw20]  .ql-toolbar {
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
}
/* /Shared/TourHost.razor.rz.scp.css */
/* Positioned by wwwroot/js/help-tour.js (left/top in px); these are the pre-measure
   defaults. Above the spotlight ring (1300) and the command palette (1200). */
.tour-bubble[b-f6z2oliyv7] {
    position: fixed;
    z-index: 1310;
    left: calc(50% - 170px);
    top: 38%;
    width: 340px;
    max-width: calc(100vw - 24px);
    padding: 14px 16px 12px;
    background: var(--crm-white);
    color: var(--crm-text);
    border: 1px solid var(--crm-border);
    border-top: 3px solid var(--crm-teal);
    border-radius: var(--crm-r);
    box-shadow: var(--crm-shadow-lift);
    transition: left var(--crm-mid) var(--crm-ease), top var(--crm-mid) var(--crm-ease);
}

.tour-head[b-f6z2oliyv7] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.tour-kicker[b-f6z2oliyv7] {
    flex: 1;
    min-width: 0;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--crm-text-3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tour-close[b-f6z2oliyv7] {
    border: 0;
    background: transparent;
    color: var(--crm-text-2);
    padding: 2px 4px;
    border-radius: var(--crm-r-sm);
    line-height: 1;
}

.tour-close:hover[b-f6z2oliyv7],
.tour-close:focus-visible[b-f6z2oliyv7] {
    background: var(--crm-surface-2);
    color: var(--crm-text);
}

.tour-title[b-f6z2oliyv7] {
    margin: 6px 0 4px;
    font-size: 1rem;
    font-weight: 700;
    color: var(--crm-navy);
}

.tour-body[b-f6z2oliyv7] {
    margin: 0 0 6px;
    font-size: 0.9rem;
    line-height: 1.45;
    color: var(--crm-text);
}

.tour-hint[b-f6z2oliyv7] {
    margin: 0 0 6px;
    font-size: 0.8rem;
    line-height: 1.4;
    color: var(--crm-text-2);
}

.tour-actions[b-f6z2oliyv7] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
}

.tour-spacer[b-f6z2oliyv7] {
    flex: 1;
}

.tour-guide[b-f6z2oliyv7] {
    font-size: 0.8rem;
    color: var(--crm-teal-600);
    text-decoration: none;
}

.tour-guide:hover[b-f6z2oliyv7],
.tour-guide:focus-visible[b-f6z2oliyv7] {
    text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
    .tour-bubble[b-f6z2oliyv7] { transition: none; }
}
/* /Shared/UserMenu.razor.rz.scp.css */
/* Component-owned styles so the menu renders correctly wherever it's used —
   the staff top row, and the Member/Vendor portal top bars. (Previously these
   lived in MainLayout.razor.css and only applied inside the staff shell, leaving
   the portal user menu unstyled.) Light-surface defaults; the portal top bars
   override the toggle colors for their navy background. */

.user-menu[b-4580ovkxao] { position: relative; }

.user-menu-toggle[b-4580ovkxao] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: none;
  border: 1px solid transparent;
  cursor: pointer;
  padding: 0.3rem 0.55rem 0.3rem 0.4rem;
  border-radius: var(--crm-r-sm);
  color: var(--crm-text);
  font-family: 'Outfit', sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  transition: background-color var(--crm-fast) ease,
              border-color var(--crm-fast) ease;
}

.user-menu-toggle:hover[b-4580ovkxao] {
  background-color: var(--crm-bg);
  border-color: var(--crm-border);
}

.user-avatar[b-4580ovkxao] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--crm-navy) 0%, var(--crm-navy-600) 100%);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 700;
  flex-shrink: 0;
  letter-spacing: 0;
}

.user-avatar-lg[b-4580ovkxao] {
  width: 2.75rem;
  height: 2.75rem;
  font-size: 1rem;
  border: 2px solid var(--crm-teal);
}

.user-display-name[b-4580ovkxao] {
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--crm-text);
}

.user-caret[b-4580ovkxao] {
  font-size: 0.5rem;
  color: var(--crm-text-3);
  margin-left: 0.1rem;
}

.user-menu-backdrop[b-4580ovkxao] {
  position: fixed;
  inset: 0;
  z-index: 99;
}

.user-menu-dropdown[b-4580ovkxao] {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  min-width: 248px;
  background: var(--crm-white);
  border: 1px solid var(--crm-border);
  border-radius: var(--crm-r);
  box-shadow: var(--crm-shadow-lg);
  z-index: 100;
  padding: 0.375rem 0;
  animation: crm-slide-up 0.2s var(--crm-ease) both;
}

.user-menu-header[b-4580ovkxao] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.875rem 1rem;
}

.user-menu-item[b-4580ovkxao] {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  width: 100%;
  padding: 0.5rem 1rem;
  background: none;
  border: none;
  border-left: 3px solid transparent;
  text-align: left;
  text-decoration: none;
  color: var(--crm-text-2);
  font-family: 'Outfit', sans-serif;
  font-size: 0.875rem;
  font-weight: 400;
  cursor: pointer;
  transition: background-color var(--crm-fast) ease,
              color var(--crm-fast) ease,
              border-color var(--crm-fast) ease;
}

.user-menu-item:hover[b-4580ovkxao] {
  background-color: var(--crm-bg);
  color: var(--crm-navy);
  border-left-color: var(--crm-teal);
}

.user-menu-item-danger[b-4580ovkxao] { color: #DC2626; }
.user-menu-item-danger:hover[b-4580ovkxao] {
  background-color: #FEF2F2;
  color: #B91C1C;
  border-left-color: #EF4444;
}
/* /Shared/VisitAttendeesPanel.razor.rz.scp.css */
.vap-root[b-nr1ccflgoe] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.vap-section[b-nr1ccflgoe] {
    display: flex;
    flex-direction: column;
    gap: .65rem;
}

.vap-section-head[b-nr1ccflgoe] {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
}

.vap-section-head-contacts[b-nr1ccflgoe] {
    justify-content: space-between;
}

.vap-section-title[b-nr1ccflgoe] {
    font-size: 1rem;
    font-weight: 600;
    margin: 0;
    color: var(--crm-navy);
    display: inline-flex;
    align-items: baseline;
    gap: .4rem;
}

.vap-count[b-nr1ccflgoe] {
    font-size: .78rem;
    font-weight: 500;
    color: var(--crm-text-3);
}

.vap-contact-tools[b-nr1ccflgoe] {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    margin-left: auto;
}

.vap-search[b-nr1ccflgoe] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    background: var(--crm-surface-2);
    border: 1px solid var(--crm-border);
    border-radius: 6px;
    padding: .25rem .5rem;
    min-width: 200px;
}

.vap-search i[b-nr1ccflgoe] {
    color: var(--crm-text-3);
}

.vap-search input[b-nr1ccflgoe] {
    border: 0;
    background: transparent;
    outline: none;
    font-size: .85rem;
    width: 100%;
    color: var(--crm-text);
}

.vap-add-row[b-nr1ccflgoe] {
    background: var(--crm-surface-2);
    border: 1px dashed var(--crm-border-2);
    border-radius: 6px;
    padding: .5rem;
}

.vap-empty[b-nr1ccflgoe] {
    color: var(--crm-text-3);
    font-size: .85rem;
    margin: 0;
    padding: .25rem 0;
}

/* ── Staff strip ─────────────────────────────────────────── */

.vap-staff-strip[b-nr1ccflgoe] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.vap-staff-pill[b-nr1ccflgoe] {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: 999px;
    padding: .3rem .5rem .3rem .3rem;
    max-width: 240px;
    position: relative;
}

.vap-staff-info[b-nr1ccflgoe] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.vap-staff-name[b-nr1ccflgoe] {
    font-weight: 600;
    font-size: .82rem;
    color: var(--crm-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vap-staff-title[b-nr1ccflgoe] {
    font-size: .7rem;
    color: var(--crm-text-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Contact tile grid ───────────────────────────────────── */

.vap-contact-grid[b-nr1ccflgoe] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: .5rem;
}

.vap-contact-tile[b-nr1ccflgoe] {
    position: relative;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    padding: .5rem .6rem;
    transition: border-color .15s, box-shadow .15s;
}

.vap-contact-tile:hover[b-nr1ccflgoe] {
    border-color: var(--crm-teal);
    box-shadow: var(--crm-shadow-xs);
}

.vap-tile-link[b-nr1ccflgoe] {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    text-decoration: none;
    color: inherit;
}

.vap-tile-info[b-nr1ccflgoe] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
    gap: .1rem;
}

.vap-tile-name[b-nr1ccflgoe] {
    font-weight: 600;
    font-size: .85rem;
    color: var(--crm-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vap-tile-title[b-nr1ccflgoe] {
    font-size: .72rem;
    color: var(--crm-text-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Avatars (initials) — match the workgroup palette so the two
       panels feel like siblings. ── */

.vap-avatar[b-nr1ccflgoe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    font-size: .68rem;
    font-weight: 700;
    color: var(--crm-white);
    flex-shrink: 0;
}

.vap-avatar-staff[b-nr1ccflgoe] {
    background: var(--crm-navy);
}

.vap-avatar-contact[b-nr1ccflgoe] {
    background: var(--crm-teal);
}

/* ── Remove button (×) on pills + tiles ──────────────────── */

.vap-remove[b-nr1ccflgoe] {
    background: transparent;
    border: 0;
    color: var(--crm-text-3);
    font-size: 1rem;
    line-height: 1;
    padding: 0 .25rem;
    cursor: pointer;
    border-radius: 4px;
    transition: background .15s, color .15s;
}

.vap-staff-pill .vap-remove[b-nr1ccflgoe] {
    margin-left: .15rem;
}

.vap-contact-tile .vap-remove[b-nr1ccflgoe] {
    position: absolute;
    top: .25rem;
    right: .35rem;
    opacity: 0;
    transition: opacity .15s, background .15s, color .15s;
}

.vap-contact-tile:hover .vap-remove[b-nr1ccflgoe],
.vap-contact-tile:focus-within .vap-remove[b-nr1ccflgoe] {
    opacity: 1;
}

.vap-remove:hover[b-nr1ccflgoe] {
    background: #fef2f2;
    color: #b91c1c;
}
/* /Shared/WorkgroupFocusPanel.razor.rz.scp.css */
.wfp[b-sqmnizua3z] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.wfp-rule-head[b-sqmnizua3z] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: .5rem;
}

.wfp-title[b-sqmnizua3z] {
    font-size: .95rem;
    font-weight: 600;
    color: var(--crm-navy);
    margin: 0;
}

.wfp-count[b-sqmnizua3z] {
    font-weight: 400;
    font-size: .82rem;
    color: var(--crm-text-3);
    margin-left: .5rem;
}

/* The rule is the one sentence this tab is about; it reads like a sentence, not a chip row. */
.wfp-summary[b-sqmnizua3z] {
    font-size: 1.02rem;
    color: var(--crm-text);
    margin: 0;
    padding-left: .75rem;
    border-left: 3px solid var(--crm-teal);
    max-width: 70ch;
}

.wfp-list[b-sqmnizua3z] {
    list-style: none;
    padding: 0;
    margin: 0;
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-r);
}

.wfp-lapse[b-sqmnizua3z] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: .5rem 1rem;
    padding: .6rem .85rem;
}

.wfp-lapse + .wfp-lapse[b-sqmnizua3z] {
    border-top: 1px solid var(--crm-border);
}

.wfp-lapse-dismissed[b-sqmnizua3z] {
    opacity: .65;
}

.wfp-lapse-main[b-sqmnizua3z] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .2rem .7rem;
    min-width: 0;
    flex: 1 1 22rem;
}

.wfp-kind[b-sqmnizua3z] {
    font-size: .72rem;
    font-weight: 600;
    border-radius: 999px;
    padding: .05rem .5rem;
    background: var(--crm-bg);
    color: var(--crm-text-2);
    border: 1px solid var(--crm-border);
}

.wfp-kind-notamember[b-sqmnizua3z],
.wfp-kind-accountuncovered[b-sqmnizua3z] {
    color: var(--crm-teal-600);
    background: var(--crm-teal-50);
    border-color: rgba(var(--crm-teal-rgb), .35);
}

.wfp-who[b-sqmnizua3z] {
    font-weight: 600;
    color: var(--crm-navy);
}

.wfp-detail[b-sqmnizua3z] {
    font-size: .84rem;
    color: var(--crm-text-2);
}

.wfp-scheduled[b-sqmnizua3z] {
    font-size: .8rem;
    color: var(--crm-teal-600);
}

.wfp-dismissed-note[b-sqmnizua3z] {
    font-size: .78rem;
    color: var(--crm-text-3);
    flex-basis: 100%;
}

.wfp-actions[b-sqmnizua3z],
.wfp-form[b-sqmnizua3z] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
}

.wfp-form .form-control[b-sqmnizua3z] {
    max-width: 18rem;
}

.wfp-date[b-sqmnizua3z] {
    max-width: 10.5rem;
}

.wfp-role[b-sqmnizua3z] {
    max-width: 12rem;
}
/* /Shared/WorkgroupMembersPanel.razor.rz.scp.css */
.wmp-root[b-w4geemwyvo] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.wmp-section[b-w4geemwyvo] {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.wmp-section-head[b-w4geemwyvo] {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
}

.wmp-section-head-contacts[b-w4geemwyvo] {
    justify-content: space-between;
}

.wmp-section-title[b-w4geemwyvo] {
    font-size: 1rem;
    font-weight: 600;
    margin: 0;
    color: var(--crm-navy);
    display: inline-flex;
    align-items: baseline;
    gap: .4rem;
}

.wmp-count[b-w4geemwyvo] {
    font-size: .78rem;
    font-weight: 500;
    color: var(--crm-text-3);
}

.wmp-contact-tools[b-w4geemwyvo] {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    margin-left: auto;
}

.wmp-search[b-w4geemwyvo] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    background: var(--crm-surface-2);
    border: 1px solid var(--crm-border);
    border-radius: 6px;
    padding: .25rem .5rem;
    min-width: 220px;
}

.wmp-search i[b-w4geemwyvo] {
    color: var(--crm-text-3);
}

.wmp-search input[b-w4geemwyvo] {
    border: 0;
    background: transparent;
    outline: none;
    font-size: .85rem;
    width: 100%;
    color: var(--crm-text);
}

.wmp-add-row[b-w4geemwyvo] {
    background: var(--crm-surface-2);
    border: 1px dashed var(--crm-border-2);
    border-radius: 6px;
    padding: .5rem;
}

.wmp-empty[b-w4geemwyvo] {
    color: var(--crm-text-3);
    font-size: .85rem;
    margin: 0;
    padding: .5rem 0;
}

/* ── Staff strip ─────────────────────────────────────────── */

.wmp-staff-strip[b-w4geemwyvo] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.wmp-staff-pill[b-w4geemwyvo] {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: 999px;
    padding: .35rem .5rem .35rem .35rem;
    max-width: 260px;
    position: relative;
}

.wmp-staff-info[b-w4geemwyvo] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.wmp-staff-name[b-w4geemwyvo] {
    font-weight: 600;
    font-size: .85rem;
    color: var(--crm-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wmp-staff-title[b-w4geemwyvo] {
    font-size: .72rem;
    color: var(--crm-text-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wmp-staff-roles[b-w4geemwyvo] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .2rem;
    margin-top: .15rem;
}

/* ── Contact tile grid ───────────────────────────────────── */

.wmp-contact-grid[b-w4geemwyvo] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: .5rem;
}

.wmp-contact-tile[b-w4geemwyvo] {
    position: relative;
    background: var(--crm-white);
    border: 1px solid var(--crm-border);
    border-radius: 8px;
    padding: .55rem .65rem;
    transition: border-color .15s, box-shadow .15s;
}

.wmp-contact-tile:hover[b-w4geemwyvo] {
    border-color: var(--crm-teal);
    box-shadow: var(--crm-shadow-xs);
}

.wmp-tile-link[b-w4geemwyvo] {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    text-decoration: none;
    color: inherit;
}

.wmp-tile-info[b-w4geemwyvo] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
    gap: .15rem;
}

.wmp-tile-name[b-w4geemwyvo] {
    font-weight: 600;
    font-size: .88rem;
    color: var(--crm-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wmp-tile-title[b-w4geemwyvo] {
    font-size: .75rem;
    color: var(--crm-text-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wmp-tile-roles[b-w4geemwyvo] {
    display: flex;
    flex-wrap: wrap;
    gap: .2rem;
    margin-top: .2rem;
}

/* ── Role chips (shared between staff strip + contact tiles) ── */

.wmp-role-chip[b-w4geemwyvo] {
    display: inline-block;
    background: var(--crm-teal-50, color-mix(in srgb, var(--crm-teal) 8%, transparent));
    color: var(--crm-navy);
    border: 1px solid color-mix(in srgb, var(--crm-teal) 25%, transparent);
    border-radius: 999px;
    padding: .05rem .45rem;
    font-size: .65rem;
    font-weight: 500;
    line-height: 1.4;
    white-space: nowrap;
}

/* ── Avatars (initials) — use the brand palette so an admin
       swapping primary/accent in Branding settings flows through. ── */

.wmp-avatar[b-w4geemwyvo] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    font-size: .7rem;
    font-weight: 700;
    color: var(--crm-white);
    flex-shrink: 0;
}

.wmp-avatar-staff[b-w4geemwyvo] {
    background: var(--crm-navy);
}

.wmp-avatar-contact[b-w4geemwyvo] {
    background: var(--crm-teal);
}

/* ── Remove button (×) on pills + tiles ──────────────────── */

.wmp-remove[b-w4geemwyvo] {
    background: transparent;
    border: 0;
    color: var(--crm-text-3);
    font-size: 1rem;
    line-height: 1;
    padding: 0 .25rem;
    cursor: pointer;
    border-radius: 4px;
    transition: background .15s, color .15s;
}

.wmp-staff-pill .wmp-remove[b-w4geemwyvo] {
    margin-left: .15rem;
}

.wmp-contact-tile .wmp-remove[b-w4geemwyvo] {
    position: absolute;
    top: .25rem;
    right: .35rem;
    opacity: 0;
    transition: opacity .15s, background .15s, color .15s;
}

.wmp-contact-tile:hover .wmp-remove[b-w4geemwyvo],
.wmp-contact-tile:focus-within .wmp-remove[b-w4geemwyvo] {
    opacity: 1;
}

.wmp-remove:hover[b-w4geemwyvo] {
    background: #fef2f2;
    color: #b91c1c;
}

/* ── Role groups (accordion-style sections) ──────────────── */

.wmp-role-group[b-w4geemwyvo] {
    margin-bottom: 1rem;
}

.wmp-role-group-head[b-w4geemwyvo] {
    display: inline-flex;
    align-items: baseline;
    gap: .5rem;
    margin-bottom: .35rem;
    color: var(--crm-text-2);
}

.wmp-role-group-name[b-w4geemwyvo] {
    font-weight: 600;
    font-size: .82rem;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--crm-navy);
}

.wmp-role-group-count[b-w4geemwyvo] {
    font-size: .72rem;
    color: var(--crm-text-3);
}

/* ── Role assignment ────────────────────────────────── */

/* The add form stages a person, then asks for a role. It used to add on selection with an
   empty LabelIds, so every member arrived with no role at all. */
.wmp-role-picker[b-w4geemwyvo] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.625rem;
}

.wmp-role-picker-label[b-w4geemwyvo] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--crm-text-3);
}

.wmp-role-picker-empty[b-w4geemwyvo] {
    font-size: 0.8125rem;
    color: var(--crm-text-3);
}

.wmp-role-picker-options[b-w4geemwyvo] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.wmp-role-option[b-w4geemwyvo] {
    display: inline-flex;
    align-items: center;
    gap: 0.3125rem;
    padding: 0.1875rem 0.5rem;
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 999px;
    font-size: 0.8125rem;
    cursor: pointer;
    user-select: none;
    background: var(--crm-surface-1, #fff);
}

.wmp-role-option:hover[b-w4geemwyvo] {
    border-color: var(--crm-primary, #0d6efd);
}

.wmp-role-option.is-on[b-w4geemwyvo] {
    border-color: var(--crm-primary, #0d6efd);
    background: var(--crm-primary-subtle, rgba(13, 110, 253, 0.1));
}

.wmp-role-option input[b-w4geemwyvo] {
    margin: 0;
}

.wmp-add-actions[b-w4geemwyvo] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.625rem;
}

/* Inline role editing. The tile carried role chips but no way to change them — the only
   route was through the contact record on another page. */
.wmp-edit-roles[b-w4geemwyvo] {
    position: absolute;
    top: 6px;
    right: 28px;
    border: 0;
    background: transparent;
    color: var(--crm-text-3);
    font-size: 0.8125rem;
    line-height: 1;
    padding: 2px 4px;
    cursor: pointer;
    opacity: 0;
    transition: opacity 120ms ease;
}

.wmp-contact-tile:hover .wmp-edit-roles[b-w4geemwyvo],
.wmp-edit-roles:focus-visible[b-w4geemwyvo] {
    opacity: 1;
}

.wmp-edit-roles:hover[b-w4geemwyvo] {
    color: var(--crm-primary, #0d6efd);
}

.wmp-role-editor[b-w4geemwyvo] {
    padding: 0.5rem 0.625rem;
    border-top: 1px solid var(--crm-border, #dee2e6);
    background: var(--crm-surface-2, rgba(0, 0, 0, 0.02));
}

/* ── Vacant seats ───────────────────────────────────── */

.wmp-role-group-vacant .wmp-role-group-head[b-w4geemwyvo] {
    opacity: 0.7;
}

.wmp-role-vacant-note[b-w4geemwyvo] {
    font-size: 0.75rem;
    font-style: italic;
    color: var(--crm-text-3);
}

.wmp-role-vacant-add[b-w4geemwyvo] {
    border: 1px dashed var(--crm-border, #dee2e6);
    background: transparent;
    color: var(--crm-text-2);
    border-radius: 4px;
    line-height: 1;
    padding: 0 6px;
    cursor: pointer;
}

.wmp-role-vacant-add:hover[b-w4geemwyvo] {
    border-color: var(--crm-primary, #0d6efd);
    color: var(--crm-primary, #0d6efd);
}

/* ── Term block in the add form ─────────────────────── */

.wmp-term-block[b-w4geemwyvo] {
    margin-top: 0.625rem;
}

.wmp-term-toggle[b-w4geemwyvo],
.wmp-term-voting[b-w4geemwyvo] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8125rem;
    cursor: pointer;
}

.wmp-term-fields[b-w4geemwyvo] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.wmp-term-label[b-w4geemwyvo] {
    display: block;
    font-size: 0.75rem;
    color: var(--crm-text-3);
    margin-bottom: 0.125rem;
}

/* Staff role editor: a panel under the strip, since a pill cannot expand. */
.wmp-role-editor-standalone[b-w4geemwyvo] {
    margin-top: 0.5rem;
    border: 1px solid var(--crm-border, #dee2e6);
    border-radius: 8px;
    background: var(--crm-surface-2, rgba(0, 0, 0, 0.02));
}

.wmp-role-editor-head[b-w4geemwyvo] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.8125rem;
    color: var(--crm-text-2);
    margin-bottom: 0.5rem;
}

.wmp-pill-edit[b-w4geemwyvo] {
    border: 0;
    background: transparent;
    color: var(--crm-text-3);
    font-size: 0.75rem;
    line-height: 1;
    padding: 2px 3px;
    cursor: pointer;
}

.wmp-pill-edit:hover[b-w4geemwyvo],
.wmp-pill-edit.is-open[b-w4geemwyvo] {
    color: var(--crm-primary, #0d6efd);
}
